第十章单片机与A/D、D/A的接口 重点:掌握并行和串行A/D、D/A转换器与MCS-51单片机的接 口设计和软件设计 难点:AD、D/A转换器选取 学时:2 单片机作为嵌入式控制器可以灵活地嵌入在仪表、家电和各种智 能化设备中。在这些嵌入式系统中,单片机对输入的信号进行采集、 进行相应的分析、运算,产生对应的输出操作。在系统的输入端,往 往都是一些模拟信号或者是非电量的信号,同时系统输出的执行机构 也往往要用模拟量(电流、电压)来驱动。所以作为一个完整的嵌入 式系统就应当包含:AD转换、微控制器和D/A转换器等。AD、D/A 转换器的应用使CPU与输入、输出连成一个有机的整体,使单片机 具有了真正意义上的“微控制器”的作用。 10.1AD转换器及其接口电路 一、选择AD转换器时需要考虑的问题 1、AD转换器的分类 按输出的数字量的位数分:8位AD、10位AD、12位A/D、16 位AD等: 按输入的模拟量的路数分:单列AWD、多路AD: 按工作方式分:逐次逼近AWD、双积分型AD. 2、AD转换器的性能指标 (I)、分辨率一指AD转换器能分辩的最小输入模拟量(即数 字量变换1所代表的模拟量的变化大小),通常用转换的数字量的位
数来表示,如8位、10位、12位等,位数越高,分辨率越高,价格 越贵。(数字量的最小量化单位是1) 即, ,”s为输入模拟电压的满刻度值,n为输出数字量 的位数 通常用:R=2”来表示,n为输出数字量的位数 例:8位A/D,数字量变换范围0一255,当输入的满刻度为5V 时,其分辨率为: R=5V/256=19.5mv或R=1/256-0.39%≈0.4% (2)、量化误差(转换精度) 指量化值与实际值之间的差别,一般量化误差小于士2”(一位数 字表示的大小) (3)、转换时间(转换速率) 进行一次AD转换需要的时间(每秒钟转换出的数字信号 的位数bit/s) (4)、量程一允许输入的模拟信号的最大范围 P155:表7-8给出了常见AD的一些参数 3、AD的选择 在设计有关AD转换器的工程项目时,应首先注意以下几点: (I)、AD转换器的位数选择 例:要测量一组电源电压,其电压的输出范围是0-10V,如要求 精确到0.1V,即分辨率为0.1/10=0.01=1%,8位AD转换器的分辨率 为1/28=1/256-0.4%,选择8位的A/D转换器便可满足要求
AD转换器的分辨率应高于被测量对象的信号最低分辨率。当 然,AD转换器的位数越多,分辨率越高,但成本也愈高。因此在实 际电路的设计中选择AD转换器也不能一味强调位数,应在满足系 统性能指标的前提下,追求最高的性能价格比。 (2)转化器的转化速率 设计时:对实时系统中,如雷达识别、视频图像等要采用高速 AD转换器:对参数变化缓慢的系统,如温度、压力等系统,采用低 速的AD转换器即可。 一般:双积分型A/D主要用作低速场合,如常用的MC14433、 ICL7109、ICL7135等(100ms级):逐次逼近型A/D转换器一般用在 中、高速的数据采集系统中,如AD574、AD7552、AD0809(100us 级)等,但芯片的制做成本比较高。 (3)、输入信号的极性选择 AD转换器可以根据系统前向通道输出信号的极性采用双极性 或单极性芯片。 采用双极性芯片必然涉及到一个项目成本的问题,它不但包括 AD转换芯片自身的成本,还包括提供给芯片的电源的成本(通常要 增加一组负电源提供给芯片)。如果系统对被测信号精度的要求不高, 可以通过下图的方式一仅增加两个电阻便可使只能允许正电压信 号输入的AD芯片采集负电压信号。 VCC 模入 INO AD
图中AD转换芯片的模拟信号输入端N0分别连接两个阻值相 同的电阻R1、R2,R2一端接VCC,R1一端接模拟信号输入端。当 模拟信号的输入电压为0时,N0端的电压为1/2VCC,当输入模拟 信号的电压为-VCC时,IN0端的电压为OV。经过这样变化,使可将 简单地将-VCC0V的负极性信号转化为0~1/2VCC的正极性信号, 以满足AD转换芯片的极性要求。 (4)、AD转换器的抗干扰措施 为防止这种干扰,现在比较流行的一些AWD转换芯片TLC1543 TLC2543、TLC5510均有模拟地AGND、数字地DGND两个接地端。 AGND、DGND在芯片的内部一般不连接,只有通过外部引线相接。 在设计电路板时,AGND、DGND的使用: ①、AGND、DGND线应通过独立的电源线单独走线,可采用屏 蔽良好的双绞线,最后统一接到电源地。 ②、AGND、DGND应当分别用0.1微法的电容去耦,电容应尽 量靠近AGND和DGND引脚。 ③、模拟输入信号端、数字信号输出端应严格与AGND走线隔 离,不得交叉以防止AGND上的杂波信号对输入、输出端形成干扰。 ④、AGND的走线最好放在模拟信号输入端以形成屏薇。 二、并行AWD模数转换器及其软硬件设计 目前广泛使用的AD转换器从接口协议上又分为串行和并行两 种方式。 串行接口的AWD转换器占用较少的CPU的IVO资源,主要采用 的协议有SPI和I2C等方式,但程序设计较并行接口的芯片略显繁琐。 4
典型的串行接口的A/D转换芯片有TI公司的TLC2543、1543等等。 目前市场上,并行接口的AD芯片仍占多数,流行的有 ADC0809、AD574、ICL7135等等,但从芯片的发展趋势来看,串行 总线方式的芯片作为主流,而原先大量使用的低速的并行总线方式的 AD转换芯片必然会逐步退出市场。 注意:在一些高速应用场合,如雷达、虚拟仪表等,其电路设计 采用的AWD转换芯片仍然以并行方式为主,如TLC5510、TLC5540 等。这是由总线的速度决定的。 以8位8通道模数转换器ADC0809为例来说名: 1.特征参数 ADC0809是逐次逼近式8位8通道AD转换器,主要技术指标 如下: 分辩率:8位 转换精度:±1/2LSB 转换时间:(由时钟频率决定)典型值100μS(时钟频率为 640KHZ时) 模拟信号输入电压:8通道0-5V 电源电压:单电源5V 1 2 2、引脚及功能 ADC0809的引脚如下图所示, (28引脚双列直插结构) 2 引脚功能说明如下: ①、N0-N7:8个模拟通道输入端
②、Ref+)、ref-):参考电压输入端。 ③、CLOCK:时钟信号输入端,可与51单片机的ALE端直接 连接。 时钟的典型工作频率为640KHz,这时AD转换时间为100uS。 ④、ADD-A、ADD-B、ADD-C:通道地址输入端 通道地址选择表 ADDC ADDB ADDA通道ADDC ADDB ADDA通道 0 0 0 0 4 0 0 0 0 1 ALE:通道地址锁存输入端,在ALE脉冲的上开沿,将A、B、 C的通道地址锁存到内部地址锁存器中。 START:AD转换启动信号输入端,在START脉冲的上升沿复 位寄存器,而在下降沿启动AD开始新的转换 EOC:AD转换结束信号标志输出端。 Msb2-1一Lsb2-8:AWD转换结果数值输出端,即通常所说的 D0-D7。 3、ADC0809转换器与单片机的接口 ADC0809与51单片机的连接如下图:
说明:①、图中单片机的ALE端与ADC0809的CLOCK时钟输 入端连接。在通常情况下,ALE端输出信号为晶体振荡频率的1/6, 即晶振频率为6MHZ时,ALE分频为1MHZ,这时ADC08O9的A/D 转换时间为64μS。 ②、图中的ADC0809的ALE与START端相连,通过SST89C58 的P2.1和RD读信号来启动ADC0809并读取相应的结果。同时P2.1 配合WR写信号将A0-A3提供的3位地址锁存并选通ADC0809的某 个通道。 ③、转换结束后,E0C输出高电平,经非门后送至P1.4脚作为 单片机的中断和查询信号。 程序设计中,在启动ADC0809时后,应首先将被选择的通道 写入,然后查询EOC状态。当EOC为“0”电平时,读取相应的结 果。 DC0809的AWD转换源程序(C语言格式)(清华,谢维成也有 例) /预定义 #include #include
#define uchar unsigned char #define ad add XBYTE[OXFDF8]/定义O8O9的N0通道地址 sbit EOC-P14:/∥定义AWD转换结束信号标志EOC uchar ad result[8;∥定义数组ad result,存放采样结果 adc0809(uchar*p)∥adc0809转换子函数 { uchar i; uchar xdata *ad_address; ad address=&ad add; for(i=0;i<8;i++) *ad address=-i;∥启动转换 while(EOC); /判断EOC转换标志 *p-*ad_address;∥读入转换结果 ad address-+;/通道地址+1 p+: ∥主函数 void main( while(1)
adc0809(&ad result[O);/∥将数组名作为地址传递,将转换结果存 入/数组ad result0中 } 三、10位11通道SPI串行接口A/DTLC1543及其软硬件设计 1、特点 ①、TLC1543是美国TI公司生产的11通道SPI串行接口A/D ②、TLC1543为CMOS10位开关电容逐次逼近式AWD ③、与微处理器连接采用SPI串行总线方式,包括三个控制输入 端:片选(CS)、输入/输出时钟(VO CLOCK)、地址输入(ADDRESS) 和一个数据输出端(DATA OUT) ④、通过一个串行的三态输出端与微处理器或外围的串行口通 信。 ⑤、系统时钟由片内产生,内部转换器具有高速(10μS转换时 间),高精度(10位分辨率,最大不可调整误差±1LSB)和低噪声的 特点。 2、引脚及功能 TLC1543采用20脚DIP封装 DATA OU ①、A0-A10:11个模拟输入端, ②、REF+(通常为VCC)和REF.(通常为地)为基准电压正负 9
端, ③、ADDRESS为串行数据输入端,是一个4位的串行地址用来 选择下一个即将被转换的模拟输入或测试电压。 ④、DATA OUT为AD转换结束3态串行输出端。 ⑤、I/O CLOCK为数据输入/输出提供同步时钟。 ⑥、CS为片选端,在CS端的一个下降沿变化将复位内部计数 器并控制和使能DDRESS、I//O CLOCK和DATA OUT 3、TLC1543软硬件设计要点 ①、硬件连接一TLC1543的三个控制输入端CS、I/O CLOCK、 ADDRESS和一个数据输出端DATA OUT遵循串行外设接口SPI协 议,要求微处理器具有SPI接口。但大多数单片机均未内置SPI接口 (如月前国内广泛采用的MCS51和PIC系列单片机),需通过软件模 拟SPI协议以便和TLC1543接口。芯片的三个输入端和一个输出端 与51系列单片机的/O口可直接连接,具体连接方式可参下图: 软件设计中,应注意区分 TLC1543的11个模拟输入通道和3个 内部测试电压地址。下表为模拟通 道和内部电压测试地址。程序软件