阅读以下关于某嵌入式系统设计方案的叙述,回答1至问题3,将答案填入答案纸的对应栏内。
【说明】
某公司承接了开发周期为6个月的某机载嵌入式系统软件的研制任务。该机载嵌入式系统硬件由数据处理模块、大容量模块、信号处理模块、FC网络交换模块和电源模块组成,如图1-1所示。数据处理模块和大容量处理模块的处理器为PowerPC7447,数据处理模块主要对记在数据处理模块进行处理,完成数据融合;大容量模块主要储存系统数据,同时也有数据处理的能力;信号处理模块的处理器为专用的数字信号处理器DSP,完成雷达数据处理,并将处理后的数据发送给数据处理模块;FC网络交换模块为开发的模块,本次不需要开发软件,主要负责的数据交换;电源模块主要负责给其他模块供电,电源模块上没有软件。
PowerPC7447和DSP是32位处理器,内存按字节码编址。PowerPC7447以大端方式(big_endian)储存数据,DSP以小端方式(little_endian)储存数据。
【问题1】在数据处理模块1中,需要使用A/D变换器对外部电源模块的电压进行检测。当前数据处理模块中的A/D边关器为10位,当A/D变换器的输入模拟电压最大为5.115V时,A/D输出为3FFH。通过配置A/D变换器的中断寄存器及比较寄存器(比较寄存器的值是用来和A/D转换结果进行比较),可以将A/D变换器配置为输入电压大于一定值时产生中断,也可以配置为输入电压小于一定值是产生中断,通过此种方式向系统报警。请回答一下三个问题。
(1)此A/D变换器的量化间隔为多少mV?(量化间隔为A/D变换器最低有效位1位所代表的模拟电压值)
(2)如果规定下限阈值为4.092V,要使用中断检测这个电压,此时A/D变换器的比较寄存器应配置为多少?
(3)如果采用查询方式实现电源电压超限报警功能,程序如何判断A/D变换器完成单次数据转换?
参考答案:
A/D变换器的量化间隔为A/D变换最低有效位所代表的模拟电压值,当前A/D变换器的模拟电压最大为5.115V,表示A/D输出的最大值为3FFH,因此。A/D变换器的量化间隔为5.115V/3FFH=5mV。
根据A/D变换器的量化间隔,可以根据需要控制的模拟电压来计算出对应的数字值。按照题意,如果当前阈值为4.092V,则可以计算出产生中断时候配置的A/D变换器的比较寄存器的值为4.092V/5mV,即818或者0x332。
一般嵌入式系统设计中,对于外部A/D变化报警事件的处理,可以采用查询方式,也可以采用中断方式。应当采用查询方式来检查电源电压是否超过一定阈值或者低于一定阈值的事件时,需要首先设置A/D变换的比较寄存器的阈值,然后开启对应的控制字,最后应采用程序通过不断查询寄存器中对应的标志位来判断是否对应的事件发生。