《嵌入式系统设计与实例开发》
(2011-2012学年第2学期)
实 验 报 告
实验四 D/A与A/D接口的试验
2.4 D/A接口和A/D接口试验
一、实验目的
1.学习D/A转换原理
2.掌握MAX504D/A转换芯片的使用方法
3.掌握不带有D/A/的CPU扩展D/A功能的主要方法。 4.熟悉ARM本身自带的八路十位A/D控制器及相应寄存器。 5.编程实现ARM系统的A/D功能。
6.掌握带有A/D的CPU编程实现A/D功能的主要方法。
二、实验内容
学习D/A接口原理,了解实现D/A系统对于系统的软件和硬件要求。阅MAX504芯片文档,掌握其使用方法,编程实现正弦波信号的输出,利用示波器实验输出。学习A/D接口原理,了解实现A/D系统对于系统的软件和硬件要求。阅读ARM芯片文档,掌握ARM的A/D相关寄存器的功能,熟悉ARM系统硬件的A/D相关接口。利用外部模拟信号编程实现ARM循环采集全部前4路通道,并且在超级终端上显示。
三、预备知识
1.用ARM SDT 2.5或ADS1.2集成开发环境,编写和调试程序的基本过程。 2.ARM应用程序的框架结构。
3.能够自己完成在LCD上显示指定参量。
4、用ARM SDT 2.5或ADS1.2集成开发环境,编写和调试程序的基本过程。 5、ARM应用程序的框架结构。
四、实验设备及工具
硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、示波器。
软件:PC机操作系统win98、Win2000或WinXP、ARM SDT 2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。
五、实验原理及说明
D/A转换器
DA转换器的内部电路构成无太大差异,一般按输出是电流还是电压、能否作乘法运算等进行分类。大多数DA转换器由电阻阵列和n个电流开关(或电压开关)构成。按数字输入值切换开关,产生比例于输入的电流(或电压)。
1)电压输出型(如TLC5620)
电压输出型DA转换器虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以低阻抗输出。直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常作为高速DA转换器使用。
2)电流输出型(如THS5661A)
电流输出型DA转换器很少直接利用电流输出,大多外接电流—电压转换电路得到电压输出,转换有两种方法:一是只在输出引脚上接负载电阻而进行电流—电压转换,二是外接运算放大器。用负载电阻进行电流—电压转换的方法,虽可在电流输出引脚上出现电压,但必须在规定的输出电压范围内使用,而且由于输出阻抗高,所以一般外接运算放大器使用。此外,大部分CMOS DA转换器当输出电压不为零时不能正确动作,所以必须外接运算放大器。当外接运算放大器进行电流电压转换时,则电路构成基本上与内置放大器的电压输出型相同,这时由于在DA转换器的电流建立时间上加入了运算放入器的延迟,使响应变慢。此外,这种电路中运算放大器因输出引脚的内部电容而容易起振,有时必须作相位补偿。
3)乘算型(如AD7533)
DA转换器中有使用恒定基准电压的,也有在基准电压输入上加交流信号的,后者由于能得到数字输入和基准电压输入相乘的结果而输出,因而称为乘算型DA转换器。乘算型DA转换器一般不仅可以进行乘法运算,而且可以作为使输入信号数字化地衰减的衰减器及对输入信号进行调制的调制器使用。
4)一位DA转换器
一位DA转换器与前述转换方式全然不同,它将数字值转换为脉冲宽度调制或频率调制的输出,然后用数字滤波器作平均化而得到一般的电压输出(又称位流方式),用于音频等场合。
2.DA转换器的主要技术指标:
1)分辩率(Resolution) 指最小模拟输出量(对应数字量仅最低位为‘1’)与最大量(对应数字量所有有效位为‘1’)之比。
2)建立时间(Setting Time) 是将一个数字量转换为稳定模拟信号所需的时间,也可以认为是转换时间。DA中常用建立时间来描述其速度,而不是AD中常用的转换速率。一般地,电流输出DA建立时间较短,电压输出DA则较长。
其他指标还有线性度(Linearity),转换精度,温度系数/漂移。 3.本开发板上使用的MAX504是10位D/A转换器,其特点如下:
1)由单个5V电源供电; 2)电压输出缓冲;
3)内部2.048V参考电压;
14)INL=?2LSB(MAX);
5)电压不随温度变化;
6)可变的输出范围:0V~VDD,VSS~VDD; 7)上电复位; 8)串行输出。
MAX504的管脚定义如表2-23所示。
表2-23 MAX504的管脚定义
PIN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 名称 BIPOFF DIN CLR SCLK CS DOUT DGND AGND REFIN REFOUT VSS VOUT VDD RFB 双级性偏移/增益寄存器 串行数据输入 清零。异步使 DAC 寄存器所有位数设置为0 串行时钟输入 片选,低电平有效 菊花链串行数据输出 数字地 模拟地 参考输入 参考输出,2.048V,不使用时连接到VDD 负电源供电 DA输出DAC 正电源供电 反馈电阻 功能 4.MAX504在开发板中的连接
图2-14 Max504与ARM的连接
图2-14中,RFB连接VOUT、BIPOFF连接AGND,使得输出电压范围为0~2VREFIN,即0~4.069V。时钟和输入、输出信号分别与同步串口的时钟、发送和接收端相连。可以通过
WriteSDIO(data)函数(Uhal.h)向MAX504发送数据。发送数据时要注意,MAX504可接受12位的数据,但低两位不起作用。WriteSDIO(data)函数一次只能发送8位的数据,所以发送数据时应先将数据左移两位,然后先发送高八位,再发送低八位数据。CLR和CS分别由MAX504_CLEAR()和MAX504_ENABLE()、MAX504_DISABLE()函数(Max504.c)控制。
A/D转换器
A/D转换器是模拟信号源和CPU之间联系的接口,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。在工业控制和数据采集及许多其他领域中,A/D转换是不可缺少的。
A/D转换器有以下类型:逐位比较型、积分型、计数型、并行比较型、电压-频率型,主要应根据使用场合的具体要求,按照转换速度、精度、价格、功能以及接口条件等因素来决定选择何种类型。常用的有以下两种:
1)双积分型的A/D转换器
双积分式也称二重积分式,其实质是测量和比较两个积分的时间,一个是对模拟输入电压积分的时间T0,此时间往往是固定的;另一个是以充电后的电压为初值,对参考电源Vref反向积分,积分电容被放电至零所需的时间T1。模拟输入电压Vi与参考电压VRef之比,等于上述两个时间之比。由于VRef 、T0固定,而放电时间T1可以测出,因而可计算出模拟输入电压的大小(VRef与Vi符号相反)。
由于T0、VRef为已知的固定常数,因此反向积分时间T1与输入模拟电压Vi在T0时间内的平均值成正比。输入电压Vi愈高,VA愈大,T1就愈长。在T1开始时刻,控制逻辑同时打开计数器的控制门开始计数,直到积分器恢复到零电平时,计数停止。则计数器所计出的数字即正比于输入电压Vi在T0时间内的平均值,于是完成了一次A/D转换。
由于双积分型A/D转换是测量输入电压Vi在T。时间内的平均值,所以对常态干扰(串模干扰)有很强的抑制作用,尤其对正负波形对称的干扰信号,抑制效果更好。
双积分型的A/D转换器电路简单,抗干扰能力强,精度高,这是突出的优点。但转换速度比较慢,常用的A/D转换芯片的转换时间为毫秒级。例如12位的积分型A/D芯片ADCETl2BC,其转换时间为lms。因此适用于模拟信号变化缓慢,采样速率要求较低,而对精度要求较高,或现场干扰较严重的场合。例如在数字电压表中常被采用。
2)逐次逼近型的A/D转换器
逐次逼近型(也称逐位比较式)的A/D转换器,应用比积分型更为广泛,其原理框图如图2-17所示,主要由逐次逼近寄存器SAR、D/A转换器、比较器以及时序和控制逻辑等部分组成。它的实质是逐次把设定的SAR寄存器中的数字量经D/A转换后得到电压Vc与待转换模拟电压V。进行比较。比较时,先从SAR的最高位开始,逐次确定各位的数码应是“1”还是“0”,其工作过程如下:
转换前,先将SAR寄存器各位清零。转换开始时,控制逻辑电路先设定SAR寄存器的最高位为“1”,其余位为“0”,此试探值经D/A转换成电压Vc,然后将Vc与模拟输入电压Vx比较。如果Vx≥Vc,说明SAR最高位的“1”应予保留;如果Vx