带嵌入式MCU的8通道12位AD转换器ADuC812及其应用
扫描二维码
随时随地手机看文章
介绍了带嵌入式MCU的8通道12位A/D转换器ADuC812的结构和使用方法,及其在动平衡机测量系统中的应用。
关键词:MCU,A/D转换器,ADuC812,动平衡机
1 引 言
A/D转换器的种类很多,不同的应用场合对其要求不同,有的要求高转换速率,有的要求有高精度,还有的用于便携式仪表中,需要低功耗等等。用于数据采集板的A/D转换器,一般是和计算机或微处理器结合在一起使用。随着单片机在各种智能仪器仪表中的广泛应用,出现了一些将A/D转换器和单片机内核集成在一块芯片上的数据采集芯片,ADuC812就是这样一种芯片。
ADuC812是8通道12位逐次逼近式A/D转换器,它具有如下特点(见Analog Devices公司的资料:MicroConverter,Multichannel 12-Bit ADC withEmbedded Flash MCU ADuC812,2002):
内含8通道高精度12位A/D转换器;高达200kHz的采样转换速率;可通过DMA控制器实现由ADC到外部数据存储器之间的高速数据存储;片内还包含2个12位D/A转换器;片内包含有温度传感器;片内集成有和8051兼容的MCU内核,工作频率为12MHz,最高可达16MHz,MCU上带有3个16位定时/计数器,9个中断源,两级中断优先级;片内带8K字节的FLASH程序存储器,640字节FLASH数据存储器,以及256字节的片内RAM数据存储器,同时还可扩展16M字节外部数据存储器以及64K字节的程序存储器;低电压3V或5V供电,有节电模式;带UART和SPI串行接口;带看门狗定时器。
2 管脚说明
ADuC812采用S-52封装,它的大部分管脚和8051相应管脚功能相同,几个主要管脚功能如下:
P1口:和8051的P1口功能不同,它只能作为模拟或数字信号的输入口,而不能作为输出口,缺省状态为8路模拟信号输入端,要使它们中的某位变为数字信号输入脚,应向P1口对应的特殊功能寄存器的相应位写入“0”信号,如果该特殊功能寄存器的相应位为“1”,则该位对应的管脚为模拟信号输入脚;
DAC0、DAC1:为两路D/A转换器的模拟信号输出脚;
SS、SCLK、MOSI、MISO:为串行设备接口(SPI)。
SS为SPI接口的从属设备选择,在多机通信中使用,SCLK为SPI接口时钟,MOSI以及MISO为输入/输出数据线;
D0、D1:和SPI接口复用的数字输出脚,通过DCON特殊功能寄存器控制从D0或D1脚输出数字信号;
T2:定时器2数字信号输入脚;
T2EX:数字输入脚,读取定时器2的计数器或重装该计数器的触发脚,负跳变时有效。
其它脚的功能和8051相应脚的功能相同。
3 使用方法
3.1 程序存储器
程序存储器分为片内程序存储器和片外程序存储器,片内含有8K字节的FLASH可编程程序存储器,可满足大部分数据采集系统的设计要求,该段程序存储器可以用两种方式写入,一种是通过标准的UART串行接口进行串行下载写入,当PSEN管脚通过外部电阻接地时,在上电后自动进入串行下载模式,通过串行口自动从外部开发系统中下载程序;第二种方式和E2PROM的编程方式相同,通过编程器进行并行写入。
3.2 数据存储器
ADuC812的用户数据存储器包含三部分,片内640字节的FLASH数据存储器、256字节的RAM以及片外可扩展到16M字节的数据存储器,其中640字节的数据存储器被分成160页,每页4字节,通过6个特殊功能寄存器来进行存取,即通过ECON、EADRL以及EDATA1~4来存取,EADRL寄存器指定要进行数据存取的页地址,ECON控制寄存器可控制EDATA1~4寄存器和EADRL指定的页内4个存储器之间进行数据交换,而ECON还可控制FLASH数据存储器的擦除、校验等操作,它的控制模式如表1所示。
外部数据存储器的寻址范围为000000H~0FFFFFFH,共有16M字节地址空间,低16位地址线的连接和8051单片机系统中的外部数据存储器的地址连接方式相同,高8位的连接方式是复用P2口,利用ALE地址锁存信号在锁存P0口的低8位地址信号的同时锁存高8位地址信号,来实现16M字节地址空间的寻址。它的数据指针和8051单片机不同,是由3个8位寄存器组成,即DPP(页字节)、DPH(高位字节)、DPL(低位字节)。
3.3 A/D转换器
ADuC812包含一个8通道单电源12位逐次逼近A/D转换器,A/D转换器的线性误差为±1/2 LSB,转换时间为5μs,可以提供内部2.5V参考电源,同时也可以外接从2.5V到AVDD的参考电源,通过ADCCON1~3三个特殊功能寄存器来控制A/D转换,转换结果可保存在ADCDATAH/L二个特殊功能寄存器中,转换数据的低8位保存在ADCDATAL寄存器中,而高4位保存在ADCDATAH的低4位中,ADCDATAH的高四位用来保存采样的通道号。如果采样数据较大,如以200kHz的速率对被输入的模拟信号进行连续采样,这时必须用DMA模式,将采样数据直接保存在外部数据存储器中,采样结束后再对数据进行处理。
三个控制寄存器的功能如下。
(1)ADCCON1控制采集和转换时间以及转换模式,各位的功能如下:
CK1、CK0选择主时钟分频系数,从主时钟分频来产生ADC时钟,CK1-0为00~11,分别按1、2、4、8分频。
AQ1、AQ0选择ADC采样保持时钟,分频系数从ADC时钟分频产生,AQ1-0为00~11时分别按1、2、4、8分频。
T2C:定时器2溢出触发位,通过置位该位,可使用定时器2的溢出信号作为ADC转换触发信号。
EXC:ADC转换外部触发使能位,通过置位该位,可由外部引脚(CONVST)来触发ADC转换。
(2)ADCCON2控制通道选择和转换模式:
其中,ADCI为中断标志位;DMA为DMA模式使能位;CCONV为连续转换模式使能位;SCONV为单次转换模式使能位;CS3、CS2、CS1、CS0为通道选择位,用户通过程序指定须进行A/D转换的通道。CS3-0为0000~0111时指示8个通道号,1000时指示温度传感器,1111为DMA终止信号,其他情况保留。
(3)ADCCON3用于给出ADC状态指示位,只有第7位为BUSY位,其它位保留,BUSY位为只读位,在一个有效的ADC转换或校验周期中,该位为“1”,当转换或校验结束后,该位清“0”。
3.4 D/A转换器
ADuC812包含两个12位的D/A转换器,每个D/A转换器可用于转换12位或8位数据,两个D/A转换器共用一个控制寄存器DACCON,每个转换器还有两个数据寄存器,实现A/D转换的12位数据在寄存器中是右调整,低8位在DACxL寄存器中,高4位在DACxH的低4位中,控制寄存器DACCON各位
的作用如下所示:
其中,MODE用于控制DAC转换的模式,“1”为8位模式,“0”为12位模式;RNG1、RNG0用于输出范围控制,“1”为0~VDD,“0”为0~VREF;CLR1、CLR0为输出清除位,“0”使输出强迫为0V,“1”使输出正常;SYNC为两通道输出同步控制位,为“1”时,改写DACxL寄存器,输出即产生变化,要使两通道同步变化,须在SYNC为“0”时,更新两个通道的DACxL/H寄存器,然后使SYNC位置“1”,两通道同步更新输出值;PD1、PD0为节电模式位,“0”关闭相应通道的D/A转换,“1”打开D/A转换。
D/A转换器的参考电压可由DACCON控制寄存器通过软件选择VREF或VDD,使输出电压范围分别为0~VREF或0~VDD,D/A转换的响应时间小于15μs。
4 应 用
基于ADuC812的诸多特点,如果加上必要的外部信号调理电路,就可以构成一个完整实用的数据采集及控制系统,并且系统的硬件结构非常简单。
图1是一个由ADuC812构成的动平衡机测量系统。
转子在旋转过程中,由于不平衡而产生离心力引起摆架系统振动,动平衡机通过传感器将此机械振动量变成电信号,然后经平面分离、衰减和定标调整、滤波放大等处理电路,最后由
指示仪表进行显示。动平衡机在平衡转子时,转子的任一平面上有不平衡量,必然要在左右两个支承上同时引起振动,振动的大小可以通过左、右两个传感器测量出来,设m1r1和m2r2为左右校正面上的不平衡量,左校正面上的单位不平衡量在左右两端引起的振动分别为αL1和αR1,右校正面上的单位不平衡量在左右两端引起的振动分别为αL2和αR2,左右两端总的振动为VL和VR,如图2所示,则有,
[!--empirenews.page--]
式中,Δ=αL1αR2-αR1αL2是方程组的系数行列式,如果通过分压电路,将右端的振动量取出和左端的振动量相减,则左端的不平衡量m1r1只与左端的振动VL有关,只是与左端不平衡量大小有关的一个标量,通过定标设定可以补偿它们。这样就消除了右端的不平衡量对左端的影响,同样也可以消除左端的不平衡量对右端的影响,通过信号调理电路,可完成对信号的衰减控制、平面分离、信号放大以及电平的偏置,使输出信号既包含交流的振动信号,又包含直流的偏置电平。因A/D转换电路是单电源器件,只能转换0~VREF的正电压,不能转换负电压,通过信号调理电路后的振动信号在经过相敏检波后,输出的是正的直流电压,满足A/D转换的要求。
经过R00和R900相敏检波,可将右端的振动信号VR在00和900方向上进行分解,设分别为VR0和VR90,而经过L00和L900相敏检波,可将左端的振动信号VL在00和900方向上进行分解,设分别为VL0和VL90,则左右两端的振动的幅值分别为:
因此,相敏检波后,得到了左右两端两个相位差为90°的分量,对它们进行A/D转换后,由MCU分别计算左右两端的幅值和相角,振动的幅值|VL|和|VR|反映了左右两端振动的大小,通过|VL|和|VR|的计算,可解算出左右两端不平衡量的大小,而振动的相位ΦL和ΦR反映了不平衡量所处的位置,相角的计算可求出不平衡量所在的相位,指示出重点或轻点的相位位置。
转子的转速由外部中断0脚控制定时/计数器0的计时时间来实现,由8051的定时/计数器在工作方式0和方式1的结构可看出,当TCON的TR0位为1,TMOD的GATE位为1,且T0工作于定时方式时,内部振荡信号经过12分频后给T0提供时钟信号,T0计数与否与外部中断0的电平高低有关,如果INT0=0,T0不计数,如果INT0=1,T0开始计数,这样就可测量脉冲宽度,通过光电头将转子的转速转换成脉冲信号后再2分频,得到频率为转子旋转频率一半的方波信号,通过方波信号的高电平去控制T0的计数,该数值为转子的旋转周期,由转子的旋转周期可得到转子的转速大小。
转子转速及不平衡量的计算通过外部中断0完成,光电头产生的脉冲信号经2分频后,得到频率为转子旋转频率一半的方波信号,该信号加到INT0上,将外部中断0设置成边缘触发,在每个方波的下降沿产生中断,MCU读取TL0和TH0寄存器值,并将TL0和TH0清零,开始下一次计时,然后根据TL0和TH0的数值,计算转子转速,并根据TL0和TH0中转子旋转周期值的四分之一配置定时/计数器1的TL1和TH1,定时/计数器1工作于定时方式,通过定时/计数器1的中断由两路DAC产生相位差为90°两路方波信号,用于对振动信号的相敏检波,MCU对ADC0~ADC3进行A/D转换,计算左右两平面的不平衡量的大小和相位,然后将转速及不平衡量的大小和相位送8279进行显示。不平衡量测量的流程图如图3所示。该系统用于一台涡轮转子动平衡机的改造,收到了预期的效果。