第七章 模数与数模转换PPT讲稿.ppt
第七章 模数与数模转换第1页,共47页,编辑于2022年,星期一概述nARM微处理器构成一个数据采集系统或过程控制系统时,采集的外部信号与被控对象的参数通常是一些模拟量,必须把这些模拟量转换为数字量,微处理器才能接收处理;n微处理器的处理结果是数字量,必须将数字信号再转换为模拟信号,才能控制被控对象。n将模拟量转换为数字量的过程称为模数(A/D)转换,完成这一转换的器件称为模数转换器(简称ADC);n将数字量转换为模拟量的过程称为数模(D/A)转换,完成这一转换的器件称为数模转换器(简称DAC)。第2页,共47页,编辑于2022年,星期一嵌入式实时控制系统组成框图 第3页,共47页,编辑于2022年,星期一一、D/A(数/模)转换介绍最常见的T形电阻网络结构图1.1 D/A转换的原理D/A转换的基本原理:数字量是由和数值位组合起来表示的。如果要将数字量转换成模拟量,必须先把数字量中每一位数值按其权的大小转换成相应的模拟分量,然后再将各模拟分量相加,其总和就是与数字量相应的模拟量。理想的D/A转换器的转换特性:输出模拟量与数字量成正比。第4页,共47页,编辑于2022年,星期一1.2 D/A转换器的主要参数1分辨率:表明DAC对模拟值的分辨能力,它是最低有效位所对应的模拟值,可确定由D/A产生的最小模拟值的变化,通常由二进制数的位数表示。2转换精度:转换精度是指D/A转换器实际输出的模拟电压与理论输出模拟电 压间的最大误差。3转换时间:转换时间是指D/A转换器在输入数字信号开始转换,到输出的模 拟电压达到稳定值所需 的时间。第5页,共47页,编辑于2022年,星期一1.3 常用D/A转换器名称输出类型极性通信接口位数通道数DAC0832电流双极性并行81DAC7512电压单极性串行(SPI)12 1DAC8574 电压单极性串行(I2C)164TLC5620电压单极性串行84常用的DAC器件 第6页,共47页,编辑于2022年,星期一二、D/A转换器应用DAC7512的主要特性:的主要特性:微功耗,5V时的工作电流消耗为135uA(DAC7512);在掉电模式时,如果采用5V电源供电,其电流消耗为135nA,而采用3V供电时,其电流消耗仅为50nA;供电电压范围为+2.7V+5.5V;上电输出复位后输出为0V;具有三种关断工作模式可供选择;带有低功耗施密特输入串行接口;内置满幅输出的缓冲放大器;具有SYNC中断保护机制。DAC7512是TI公司生产的具有内置缓冲放大器的低功耗单片12位数模转换器。其片内高精度的输出放大器可获得满幅(供电电源电压与地电压间)任意输出。第7页,共47页,编辑于2022年,星期一1.1 DAC7512引脚及功能DAC7512引脚定义如下:nVOUT:芯片模拟输出电压;n GND:器件内所有电路的地参考点;n VDD:供电电源,直流+2.7V+5.5V;n Din:串行数据输入;nSCLK:串行时钟输入;nSYNC:输入控制信号;(低电平有效)第8页,共47页,编辑于2022年,星期一1.2 DAC7512的内部结构第9页,共47页,编辑于2022年,星期一1.3 工作模式与操作时序 DAC7512具有四种工作:bit13bit12工作模式00正常模式01掉电模式输出端1k到地10输出端100k到地11高阻DAC7512的写操作时序 第10页,共47页,编辑于2022年,星期一1.4 实验内容n实验1内容:给DAC7512一个确切的数值,利用表笔检测Vout引脚的电平。n实验2内容:控制DAC7512产生锯齿波,利用示波器观察波形变化。第11页,共47页,编辑于2022年,星期一1.5 电路分析第12页,共47页,编辑于2022年,星期一驱动程序设计-初始化函数#define nSYNC (125)/*P1.25口为DAC7512的片选*/*名称:DAC7512_Init()*功能:初始化SPI接口,设置为主机。*/void DAC7512_Init(void)PINSEL2=PINSEL2&0 xFFFFFFF7;/设置nSYNC(P1.25)为GPIO口 PINSEL0=(PINSEL0&0 xffff00ff)|0 x00005500;/设置P0.4,P0.5,P0.6 /为SPI0引脚IO1DIR=nSYNC;S0PCCR=0 x52;/设置SPI时钟分频 S0PCR=0 x30;/设置SPI接口模式,/MSTR=1,主模式,LSBF=0,MSB在前CPOL=0;/设置SPI0的数据传输时序与DAC7512一致CPHA=1;第13页,共47页,编辑于2022年,星期一/*n名称:DAC7512_MSendData(uint8 data1,uint8 data2)*功能:向SPI总线发送数据,并接收从机发回的数据。*入口参数:data1,data2 待发送的数据*出口参数:无*/void DAC7512_MSendData(uint8 data1,uint8 data2)IO1CLR=nSYNC;/DAC7512片选选中 S0PDR=data1;/发送第1个字节数据给DAC7512寄存器的高8位 while(0=(S0PSR&0 x80);/等待SPIF置位,即等待数据发送完毕 S0PDR=data2;/发送第2个字节数据给DAC7512寄存器的低8位 while(0=(S0PSR&0 x80);/等待SPIF置位,即等待数据发送完毕 IO1SET=nSYNC;/DAC7512片选线置1,结束数据传输驱动程序设计-数据通信函数第14页,共47页,编辑于2022年,星期一实验1/*名称:main()*功能:主函数,控制DAC7512电平输出*/int main(void)DAC7512_Init();/初始化/bit11bit0为数据位,控制Vout输出电压最大值DAC7512_MSendData(0 x0F,0 xFF);单击全速运行按钮(快捷键F5),程序会运行并停留在main()主函数处;继续全速运行,然后用表笔在DA输出端测量DAC7512输出的电压信号。第15页,共47页,编辑于2022年,星期一实验2/*名称:main()*功能:主函数,控制DAC7512电平输出产生锯齿波*/int main(void)uint8 i;uint32 DAC7512_TAB=0 x00,0 x00,0 x03,0 x33,0 x06,0 x66,0 x09,0 x99,0 x0c,0 xcc,0 x0f,0 xff;DAC7512_Init();/初始化SPI接口与DAC7512输出口 while(1)for(i=0;i12;i=i+2)DAC7512_MSendData(DAC7512_TABi,DAC7512_TABi+1);DelayMS(50);/软件延时 单击全速运行按钮(快捷键F5),程序会运行并停留在main()主函数处;继续全速运行,根据数组中定义的内容,DAC7512输出锯齿波。在DA输出端口用示波器可以观察到输出的波形。第16页,共47页,编辑于2022年,星期一三、A/D(模/数)转换介绍n将现场模拟信号转变为数字信号并送入微处理器进行处理的系统称之为数据采集系统。数据采集系统由模拟信号采集、A/D转换、数字信号处理三大部分组成。1.1 模拟信号的采集与处理模拟信号采集示意图 第17页,共47页,编辑于2022年,星期一1.2 传感器n能够将非电信号转换成电模拟信号的敏感元件叫传感器。n按被测参量来分,传感器分为:被测类别被测参量热工量温度、热量、比热、压力、压差、真空度、流量、流速、风速机械量位移(线位移、角位移),尺寸、形状,力、力矩、应力,重量、质量,转速、线速度,震动幅度、频率、加速度、噪声物性和成分量气体化学成分、液体化学成分,酸碱度(PH值)、咸度、浓度、粘度,密度、比重状态量颜色、透明度、磨损量、材料内部裂纹或缺陷、气体泄漏、表面质量第18页,共47页,编辑于2022年,星期一序号工作原理序号工作原理1234567电阻式电感式电容式阻抗式(电涡流式)磁电式热电式压电式891011121314光电式(包括红外式、光导纤维式)谐振式霍尔式(磁式)超声式同位素式电化学式微波式n按被传感器的工作原理来分,传感器分为:传感器第19页,共47页,编辑于2022年,星期一1.3 信号调理电路n传感器将被测信息转换成电信号输出,一般称为第一次变换。n第一次变换后的电信号具有以下特点:1、输出电信号一般较微弱,如VmV级或nAmA级。2、输出电信号的信噪比较小,甚至有用信号淹没在噪声之中。3、传感器的输入/输出特性通常存在一定的非线性,并易受环境温度 及周围电、磁干扰的影响。4、传感器的输出特性与电源的稳定性等有关,通常要求恒压或恒流 供电。n所以,要对传感器信号进行信号调理,如:放大、滤波、线性化处理等。第20页,共47页,编辑于2022年,星期一1.4 多路模拟开关n多路模拟开关是A/D、D/A转换系统中的重要器件。n要求主要有以下三点:1、多路开关接通时,要求其静态导通电阻无穷小。2、多路开关断开时,要求开路静态电阻无穷大。3、开关的切换速度越快越好(延时通常小于1s)。q 常用的CMOS多路模拟开关有以下几种:1、四1对1双向开关4066 2、三2对1单向开关4053 3、双4对1单向开关4052 4、单8对1双向开关4051 5、单16对1双向开关4067第21页,共47页,编辑于2022年,星期一nADC4052包含2组4对1单向开关:X组和Y组。ADC4052引脚图 ADC4052双4对1结构图 1.5 多路模拟开关4052介绍第22页,共47页,编辑于2022年,星期一nADC4052中输入引脚与输出引脚的具体对应关系:A AB B输入引脚输出引脚X组Y组X组(INH=0)Y组(INH=1)00X0Y0XY01X1Y1XY10X2Y2XY11X3Y3XY多路模拟开关4052介绍第23页,共47页,编辑于2022年,星期一1.6 A/D(模/数)转换的原理-采样保持nA/D转换又称模/数转换,就是把模拟信号数字化。A/D转换器首先要对模拟信号进行采样,然后量化成数字信号输出,A/D转换中要完成采样保持和量化编码两个内容。n 在连续变化的模拟量上按一定的规律取出其中某一些瞬时值(样点)来 代表这个连续的模拟量。这个过程就是采样。香农采样定律:如果信号是带限的,并且采样频率高于信号最高频率的一倍,那么,原来的连续信号可以从采样样本中完全重建出来第24页,共47页,编辑于2022年,星期一n量化编码:以一定的量化单位,把数值上连续的模拟量而时间上离散的模拟信号通过量化装置转变为数值上离散的阶跃量的过程。n常见的量化编码技术有:1、计数式转换;2、双积分式转换;3、逐次逼近式转换;4、并联式转换。1.7 A/D(模/数)转换的原理-量化编码第25页,共47页,编辑于2022年,星期一1.8 A/D(模/数)转换的原理-计数式转换第26页,共47页,编辑于2022年,星期一具体工作过程如下:首先启动信号S由高电平变为低电平,使计数器的输出清0,当启动信号恢复高电平时,计数器准备计数。转换器的输出电压为0时,运算放大器在同相端的输入电压作用下,使计数信号C=l。计数器开始计数,在CLK时钟脉冲的驱动下,8位计数器输出的数字量不断增加,使得D/A转换器输出电压Vo不断上升。运算放大器的输出变为低电平时,计数器停止计数,这时候的数字输出量D7 D0就是与模拟输入电压对应的数字量。A/D(模/数)转换的原理-计数式转换第27页,共47页,编辑于2022年,星期一n主要部件包括积分器、比较器、计数器和标准电压源。n用标准的高频时钟脉冲测定反向积分所用的时间,就可以得到输入模拟电压所对应的数字量,实现了A/D转换。n双积分式转换的优点是精度高、干扰小,但是速度较慢。1.9 A/D(模/数)转换的原理-积分式转换第28页,共47页,编辑于2022年,星期一n逐次逼近式A/D转换是使用最广泛的一种A/D转换方法,A/D转换集成电路芯片通常都采用这种方式工作。2.0 A/D(模/数)转换的原理-逐步逼近式转换第29页,共47页,编辑于2022年,星期一2.1 A/D转换器的主要参数n分辨率分辨率是指A/D转换器输出数字量的最低位变化一个数码时,对应输入模拟量的变化量。n相对精度相对精度是指A/D转换器实际输出数字量与理论输出数字量之间的最大差值。n转换速度转换速度是指A/D转换器完成一次转换所需要的时间。第30页,共47页,编辑于2022年,星期一四、A/D转换器应用概述概述LPC2220系列自带采用逐次逼近式算法的A/D转换器,提供8个A/D转换输入脚:AIN0AIN7。A/D转换器的特性:1、10位逐次逼近式A/D转换器2、测量范围03.3V3、10位转换的时间2.44us4、一路或多路输入的Burst转换模式5、可选择由输入引脚的跳变或定时器的匹配信号触发转换6、具有掉电模式第31页,共47页,编辑于2022年,星期一1.1 A/D转换器的内部结构第32页,共47页,编辑于2022年,星期一1.2 A/D转换器寄存器描述nA/D转换器包括两个寄存器:A/D控制寄存器(ADCR);A/D数据寄存器(ADDR)。名称描述复位值访问ADCRA/D控制寄存器。在工作之前,必须写入ADCR控制寄存器来选择工作模式0 x00000001R/WADDRA/D数据寄存器。该寄存器包含ADC的DONE标志位和10位转换结果。NAR/W第33页,共47页,编辑于2022年,星期一A/D控制寄存器ADCRADCR名称描述复位值7:0SEL从输入引脚AIN7-AIN0中选择采样/转换输入脚。015:8CLKDIV将VIB时钟分频得到A/D转换时钟,该时钟必须小于等于4.5MHz016BURST该位为0,转换由软件控制,需要11个是中方能完成。如果该位为1,A/D转换器以CLKS字段选择的速率重复进行转换,并从SEL为1的引脚由低位到高位开始扫描。重复转换通过清零该位而终止。019:17CLKS该字段用来选择BURST模式下每次转换使用的时钟数和所得ADDR转换结果的LS为可确保精度的位的数目。000:=11个时钟(10位);001::=10个时钟(9位);111:=4个时钟(3位)X21PDN1:正常模式;0:掉电模式23:22TEST1:0用于器件测试,00:正常;01:数字测试模式;10:DAC测试模式;11:一次转换测试模式X26:24START当BURST为0时,这些为控制A/D转换是否启动和何时启动。000:不启动;001:立即启动:010:P0.6/EINT0/MAT0.2/CAP0.2引脚出现ADCRbit27位选择的边沿时启动;011:P0.22/MAT0.0/CAP0.0启动;100:MAT0.1;101;MAT0.3;110:MAT1.0:111:MAT1.1027EDGE该位只有在START字段为010111时有效,0:在选择MAT/CAP信号的下降沿有效:1:在选择MAT/CAP信号的上升沿有效第34页,共47页,编辑于2022年,星期一A/D数据寄存器ADDRADDR名称描述复位值31DONEA/D转换结束的标志,当A/D转换结束时该位置位。该位在ADDR被读出或ADCR被写入时清0。如果ADCR在转换过程中被写入,该位置位,并启动一次新的转换030OVERUNBURST模式下,如果在转换产生LS位的结果前一个或多个转换结果被丢失或覆盖,该位置位。该位通过读ADDR寄存器清0029:27这些位读出为0。它们用于未来CHN字段的扩展,使之兼容包含更多的通道的转换器026:24CHN这些位包含的是LS位的转换通道X23:16这些位读出为0。它们允许连续A/D值的累加,而不需要使用与门屏蔽处理,使得至少有256个值不会溢出到CHN字段15:6V/VDDA当DONE为1时,该字段包含一个二进制数,用来代表SEL字段选中的Ain脚的电压。该字段根据VDDA 脚上的电压对Ain脚的电压进行划分。该字段为0表明Ain脚的电压小于、等于或接近VSSA;该字段为0 x3FF表明Ain脚的电压接近于、等于或大于VDDA X5:0这些位读出为0。用于位的扩展和功能更为强大的A/D转换器0第35页,共47页,编辑于2022年,星期一第36页,共47页,编辑于2022年,星期一1.3 A/D转换器的操作n先将测量通道引脚设置为AINx功能,然后设置ADC的工作模式,ADC转换通道,转换时钟,并启动ADC转换。nADC的时钟频率不能大于4.5MHz。nADC转换时钟频率Fadclk的计算公式为:Fadclk=Fpclk/(CLKDIV+1)。AIN0初始化示例PINSEL1=0 x00400000;/设置P0.27为AIN0功能ADCR=(10)/SEL=1,选择通道0(Fpclk/1000000-1)8)/CLKDIV=Fpclk/1000000-1,即转换时钟为1MHz(016)/BURST=0,软件控制转换操作(017)/CLKS=0,使用11个时钟周期转换(121)/PDN=1,正常工作模式(非掉电模式)(022)/TEST1:0=00,正常工作模式(非测试模式)(124)/START=1,直接启动ADC转换(027);/EDGA=0第37页,共47页,编辑于2022年,星期一1.4 实验内容n实验内容实验内容1:手动调节电位器的大小,利用A/D转换器对电位器输出的电压进行测量,A/D测量后的结果通过数码管显示。n实验内容实验内容2:对于外部的电压信号(范围为05V)进行测量,控制数据电位器,使数字电位器x9015输出引脚上的电平最大输出为3.3V,测量后的结果通过数码管显示。第38页,共47页,编辑于2022年,星期一1.5 电路原理分析n电路图中有2路采样通道:ADC1和ADC2。第39页,共47页,编辑于2022年,星期一/*名称:AD_Init(void)*功能:AD初始化*/voidAD_Init(void)uint32 data,i;/*进行ADC模块设置,其中xn表示第n位设置为x(若x超过一位,则向高位顺延)*/ADCR=(1 0)|/SEL=1,选择通道0 (Fpclk/1000000-1)8)|/转换时钟为1MHz (0 16)|/BURST=0,软件控制转换操作 (0 17)|/CLKS=0,使用11clock转换 (1 21)|/PDN=1,正常工作模式(非掉电转换模式)(0 22)|/TEST1:0=00,正常工作模式(非测试模式)(1 24)|/START=1,直接启动ADC转换 (0 27);/EDGE=0(CAP/MAT引脚下降沿触发ADC转换)for(i=0;i5000;i+);/小段延时data=ADDR;/读取ADC结果,并清除DONE标志位 1.6 驱动程序-初始化程序第40页,共47页,编辑于2022年,星期一/*名称:AD_Read(uint8 channels)*功能:数据读取AD内部数据寄存器并转换*入口参数:channels通道。*出口参数:Data转换结果*/uint32AD_Read(uint8 channels)uint32 Data;/切换通道并进行第一次转换 ADCR=(ADCR&0 xFFFFFF00)|channels|(1 24);while(ADDR&0 x80000000)=0);/等待转换结束 ADCR=ADCR|(1 6)&0 x3FF;/进行数据换算 Data=Data*3300;Data=Data/1024;return(Data);驱动程序-AD数据读取程序第41页,共47页,编辑于2022年,星期一/-引脚定义-#definex9015_INC(129)/P2.29#definex9015_UpDown(128)/P2.28#definex9015_CS(118)/P1.18/*名称:x9015_Init()*功能:初始化x9015的引脚配置*/void x9015_Init(void)/设置引脚连接 x9015_CS(P1.18)为GPIOPINSEL2=PINSEL2&0 xfffffff7;IO2DIR=IO2DIR|x9015_INC|x9015_UpDown;IO1DIR=IO1DIR|x9015_CS;驱动程序-X9015的控制第42页,共47页,编辑于2022年,星期一/*名称:x9015_Step(uint8 UpDown,uint8 level)*功能:改变x9015数字电位器的内部档数*入口参数:UpDown增加档数或减少档数,level 变化的档数值*/void x9015_Step(uint8 UpDown,uint8 level)uint8 i;IO1CLR=x9015_CS;if(UpDown=1)IO2SET=x9015_UpDown;/内部挡数增加 elseIO2CLR=x9015_UpDown;/内部挡数减少 for(i=0;i0;level-)IO2SET=x9015_INC;for(i=0;i200;i+);IO2CLR=x9015_INC;for(i=0;i200;i+);IO1SET=x9015_CS;驱动程序-X9015的控制第43页,共47页,编辑于2022年,星期一实验1参考#defineAIN40 x10/AIN4引脚输入通道#defineAIN50 x20/AIN5引脚输入通道/*名称:main()*功能:主函数,读取AD采样结果利用数码管显示*/int main(void)uint32 data;NumbTube_Init();/数码管初始化AD_Init();while(1)data=AD_Read(AIN4);/AD转换(P2.30作AIN4引脚输入)NumbTube_Display(data,4);/数码管显示return(0);单击全速运行按钮(快捷键F5),程序会运行并停留在main()主函数处;继续全速运行,测量到的电压信号在数码管上进行显示。转动RP3电位器,数码管显示的内容进行相应的变化。第44页,共47页,编辑于2022年,星期一实验2参考/*名称:main()功能:主函数,将x9015设置为中间档位(16),则测量出来的值约为实际的电压信号的一半。*/int main(void)uint32 data;x9015_Init();NumbTube_Init();/数码管初始化AD_Init();x9015_Step(0,31);/先将数字电位器x9015的档数设为0 x9015_Step(1,16);/再将数字电位器x9015的档数设为16while(1)data=AD_Read(AIN4);/AD转换(AIN4)NumbTube_Display(data*2,1);/数码管显示return(0);单击全速运行按钮(快捷键F5),程序会运行并停留在main()主函数处;继续全速运行,测量到的电压信号在数码管上进行显示。第45页,共47页,编辑于2022年,星期一五、附录 几种常用的传感器1 1温度传感器温度传感器 n温度传感器是通过感知被测对象温度的变化而相应改变某种特性或参量的敏感元件。2光电传感器光电传感器 n光电传感器由能够完成光电转换的光电器件构成。3光纤传感器光纤传感器 n光纤传感器具有灵敏度高、电绝缘性能好、抗电磁干扰、耐腐蚀、耐高温、体积小、重量轻等优点,可广泛用于位移、速度、加速度、压力、温度、液位、流量、电流、磁场、放射性射线等物理量的测量。4霍尔传感器霍尔传感器 n霍尔传感器以磁场为媒介,可以测量多种物理量。5CCD图像传感器图像传感器 nCCD图像传感器也称为电荷耦合图像传感器,它是由电荷耦合技术组成,集光电转换、图像存储、电荷转移为一体的固态图像传感器。第46页,共47页,编辑于2022年,星期一思考与练习1、请问什么是模拟量,什么是数字量?请分别举例说明?2、在嵌入式系统中,模拟量与数字量如何转换的?3、D/A转换器有哪些常用的参数,在要求转换精确的场合下,我们应该关心哪些参数?4、DAC7512的哪些引脚用来与芯片进行通信,与标准的SPI通信标准有什么区别?5、DAC7512内部有几个寄存器,这些寄存器起什么作用?6、DAC7512芯片的SYNC引脚的作用是什么,什么电平是该引脚的有效电平?7、数据采集系统由哪些部分组成?8、一般来讲,模拟信号采集电路由哪些分电路组成?请问这些电路各自有什么作用?9、什么是采样,什么是量化编码?为什么模拟信号采样后要保持一段时间?10、什么是采样定理?明白采样定理对我们有什么作用?11、本书上讲了哪3种量化编码的方法,这些方法中哪种方法最快?12、如果外部信号的变化范围超过芯片可测量的电压范围,请问有什么解决办法?第47页,共47页,编辑于2022年,星期一