带嵌入式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所示,则有,
式中,δ=α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所示。该系统用于一台涡轮转子动平衡机的改造,收到了预期的效果。
参考文献
1 叶能安,余汝生主编.动平衡原理与动平衡机.武汉:华中工学院出版社,1985
2 房小翠,王金凤编著.单片机实用系统设计技术.北京:国防工业出版社,1999
小米6发布会直播预告:小米6发布会直播地址、平台、亮点提前知道,小米6你值得等待
机器人对于儿童安全的教育与防护来说有很大的发展空间
基于体积图像数据剖面密度自动搜索路线的主动漫游
如何设计一个节约单片机端口资源的键盘电路
喷墨打印机打印头撞击故障的处理
带嵌入式MCU的8通道12位AD转换器ADuC812及其应用
农村为什么要发展光伏发电,有哪些优势?
大学毕业设计一席谈之四十八 词频统计(1)
如何利用apollo实现配置文件的灰度发布?
一图读懂北斗导航的关键数据与历史
TMC2160大功率步进电机驱动板-CAN总线
如何处理中性点接地电阻柜漏电现象
PS2键盘编码Verilog源程序分享
科学家成功开发出自旋转移矩-磁性随机存储器
FANUC系统的数控机床过热故障如何检修
北斗+人工智能,打造极致出行体验
示波器实现高速全方位分析
如何做好一名高级维修工
你知道医疗应用的爬电要求?
程序员怎样向自由职业过渡