《医学信号数据采集系统.ppt》由会员分享,可在线阅读,更多相关《医学信号数据采集系统.ppt(162页珍藏版)》请在三一办公上搜索。
1、数字化医疗仪器,第二章 医学信号数据采集系统设计,第一章 医学信号数据采集系统学习要点,一、能力培养要点1、模拟量输入通道的结构与调试能力。2、模拟量输出通道的结构与调试能力。3、数字化医疗仪器医学信号数据采集系统(基于单片机和PC机)软硬件的构成与调试能力。,二、主要习题,1、A/D转换器的类型、质量评价水平的技术指标和特点是什么?2、ADC0809与8031单片机的接口电路与数据采集过程?3、12位AD574与8031单片机的接口电路特点?4、积分式MC14433 A/D转换器与8031单片机接口工作原理?5、并行比较式高速ADC结构有何特点?6、D/A转换器主要技术参数是什么?,二、主要
2、习题,7、DAC0832与8031单片机单、双缓冲接口电路工作原理?8、DAC0832与8031的输出接口电路应用方式?9、数据采集系统的基本组成和结构工作原理?10、采样定理的基本内容是什么?数据采集系统中为何要使用采样保持器?11、简述基于单片机的数据采集系统的工作原理。12、简述基于PC机的数据采集系统的工作原理。,本章内容,模拟量输入通道模拟量输出通道医学信号数据采集系统计,数据采集系统是医学信号数字化的基础,人体的各种物理量,如生物电位、心音、体温、血压、血流、肌电、脑电、神经传导速度等,采用各种传感器将其变成电信号,经由诸如放大、滤波、干扰抑制、多路转换等信号检测及预处理电路,将模
3、拟量的电压或电流送模/数转换器(A/D),变成适合于微处理机使用的数字量供系统处理。同样,微处理器处理后的数据往往又需要使用数/模转换器(D/A)及适应的接口将其变换成模拟量送出,如图2-1所示。,模拟量输入/输出通道示意,A/D转换器及其接口统称为模拟量输入通道;D/A转换器及相应接口称为模拟量输出通道。,D/A转换,2.1 模拟量输入通道2.1.1 A/D转换器概述,一概述A/D转换器是将模拟量转换为数字量的器件,这个模拟量泛指电压、电流、时间等参量,但通常情况下,模拟量是指电压参量。在A/D转换的过程中通常要完成采样、量化和编码三个步骤。,A/D转换的过程,1 采样,待采样的模拟信号是连
4、续的,可看成无限多个瞬时值组成,而A/D转换以及计算机处理需要一定的时间,不可能把每一个瞬时值都转换成数字量,必须在连续变化的模拟量上按周期取样的规律取出某一些瞬时值来代表这个模拟量,这个过程就是采样。,t,f(t),f(t),fs(t),S(t),采样器输入输出波形,采样是通过采样保持电路实现的,采样器(电子模拟开关)在控制脉冲s(t)的控制下,周期性地把随时间连续变化的模拟信号f(t)转变为时间上的离散的模拟信号fs(t)。,输出信号能否如实反映原始输入信号?,采样得到的信号fs(t)的值和原始输入信号f(t)在相应的瞬时值相同,因此采样后的信号在量值上仍然是连续的。可以证明:当采样器的采
5、样频率fS高于或至少等于输入信号最高频率fm的两倍时(即fS 2fm时),采样输出信号fs(t)(采样器脉冲序列)能代表或恢复成输入模拟信号f(t),这就是采样定理。,如何知道输入信号f(t)的频率,特别是它的最高频率fm?,信号“最高频率”指的是输入信号经频谱分析后得到的最高频率分量。“恢复”指的是样品序列fS(t)通过截止频率为fm的理想低通滤波器后,能得到的原始信号f(t)。在应用中,一般取采样频率fS为最高频率fm 的48倍。简单模拟信号的频谱范围是已知的,如温度低于1Hz,声音为20Hz20000Hz。复杂信号要用傅立叶变换算出,或用频谱分析仪测得,也可用试验的方法选取最合适的fS。
6、,2.量化,所谓量化,就是以一定的量化单位把数值上连续的模拟量转变为数值上离散的阶跃量的过程。量化相当于只取近似整数商的除法运算。量化单位用q表示,对于模拟量小于一个q的部分,可以用舍掉的方法使之整量化,通常为了减少误差采用“四舍五入”的方法使之整量化。这种量化方法的输入输出特性如图2-3所示,图中虚线表示量化单位为0时的特性,实线表示实际特性。,q/2,X(t),5q,4q,3q,2q,q,0,Y(t),q,2q,3q,4q,5q,X(t),Y(t),量化装置,(a),+q/2,q/2,X(t),(b),(c),量化过程舍入误差为量化误差。以=x(t)-y(t)表示量化误差,量化误差有正有负
7、(图2-3(c)),最大为q/2,平均误差为0。最大误差随量化单位而改变,q愈小也愈小。,量化单位用q表示,对于模拟量小于一个q的部分,可以用舍掉的方法使之整量化,通常为了减少误差采用“四舍五入”的方法使之整量化。这种量化方法的输入输出特性如图所示,图中虚线表示量化单位为0时的特性,实线表示实际特性。,3编码,编码往往涉及到A/D转换的具体应用,若考虑为双极性信号,可采用补码方式;若强化二进制数据的可靠性,可采用格雷码。,二A/D转换器的技术指标1分辨率,A/D转换器的分辨率指转换器能分辨最小的量化信号的能力。A/D转换器的分辨率取决于A/D转换器的位数,所以习惯上以输出二进制数或BCD码数的
8、位数来表示。如ADC0809的分辨率为8位,即表示该转换器可以用28个二进制数对输入模拟量进行量化,其分辨率为1LSB(最低有效位值),若最大允许输入电压为10V,则可计算出它能分辨输入模拟电压的最小变化量1LSB=39.06mV。,2.转换精度,转换精度反映实际A/D转换器与理想A/D转换器量化值上的差。用绝对或相对误差来表示(1)绝对精度 指的是在A/D输出端产生给定的数字代码,实际需要的模拟输入值与理论上要求的模拟输入值之差(中间模拟值)。(2)相对精度 指的是A/D满度值校准以后,任一数字输出所对应的实际模拟输入值(中间值)与理论值(中间值)之差。,3转换速率,转换速率是指A/D转换器
9、在每秒钟内所能完成的转换次数。这个指标也可以表述为转换时间,即A/D转换从启动到结束所需的时间,两者互为倒数。例如,某A/D转换器的转换速率为5KHz,则其转换时间是200s。,例题,某信号采集系统要求用一片A/D转换集成芯片在1s(秒)内对16个热电偶的输出电压分时进行A/D转换。已知热电偶输出电压范围为00.025V(对应于0450oC温度范围),需要分辨的温度为0.1oC,试问应选择多少位的A/D转换器,其转换时间是多少?,解:对于0450oC温度范围,信号电压为00.025V,分辨温度为0.1oC,这相当于 1/4500的分辨率。12位A/D转换器的分辨率为1/4096,所以必须选用1
10、3位的A/D转换器。系统的取样速率为每秒16次,取样时间为62.5ms。对于这样慢速的取样,任何一个A/D转换器都可达到。可选用带有取样-保持(S/H)的逐次比较A/D转换器或不带S/H的双积分式A/D转换器均可。,4.满刻度范围,满刻度范围是指A/D所允许输入电压范围。如(05)V,(010)V,(-5+5)V等。满刻度只是个名义值,实际的A/D转换器的最大输入值总比满刻度小1/2n(n为转换器的位数)。这是因为0值也是2n个转换器状态中的一个。例如12位的A/D转换器,其满刻度值为10V,而实际允许的最大输入电压值为:10V*212-1/212=9.9976V,A/D转换器的种类,常用的有
11、逐次逼近式、积分式、并行式等三类。逐次逼近式A/D转换器的转换时间与转换精度比较适中,转换时间一般在1100s之间,转换精度一般在0.1%上下,适用于一般场合。积分式A/D转换器速度较慢,其转换时间一般在ms级。适用于要求精度高,但转换速度较慢的仪器中使用。并行式又称闪烁式,采用并行比较,因而转换速率可以达到很高,其转换时间可达ns级,可用于医学图象处理等转换速度较快的仪器中。,2.1.2逐次逼近式ADC 逐次逼近式A/D原理概述,N位的逐次逼近式A/D转换器(见下页图),由N位寄存器、N位D/A转换器、比较器、逻辑控制电路、输出缓冲器等五部分组成。工作原理:启动信号作用后,时钟信号先通过逻辑
12、控制电路使N位寄存器的最高位DN-1为1,以下各位为0,这个二进制代码经D/A转换器转换成电压U0(此时为全量程电压的一半)送到比较器与输入模拟电压UX比较。若UXU0,则保留这一位;若UXU0,则DN-1 位置0。,逻辑控制,N位存储器,输出缓冲器,D/A转换器,-+,比较器,时钟,启动,EOC,OE,Ux,Uo,UR,DoDN-1,A/D转换器实际转换过程已不重要,目前,逐次逼近式A/D转换器大都做成单片集成电路的形式,因而A/D转换器的实际转换过程已不是非常重要。使用时只需发出A/D转换启动信号,然后在EOC端查知A/D转换过程结束后,取出数据即可。这类芯片有ADC0809、ADC121
13、0、ADC7574、AD574、TLC549、MAX1241等是应用得最多的A/D转换器类型。,ADC0809芯片及其接口,ADC0809是8路8位逐次逼近式A/D转换器。它能分时地对8路模拟量信号进行A/D转换,结果为8位二进制数据,结构如图2-5所示,它由三大部分组成:第一部分是:8路输入模拟量选择电路;第二部分是:一个逐次逼近式A/D转换器;第三部分是:三态输出缓冲锁存器。,ADC0809主要特性,主要特性1)8路8位AD转换器,即分辨率8位。2)具有转换起停控制端。3)转换时间为100s4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。6)工作温度范围为-4085
14、摄氏度 7)低功耗,约15mW。,ADC0809引脚功能,ALE:地址锁存允许信号,输入,高电平有效。START:AD转换启动信号,输入,高电平有效。EOC:AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-):基准电压。Vcc:电源,单一5V。GND:地。,图2-5 ADC0809原理结构图,ADC0809原理结构图,8路输入模拟量选择电路,8路输入模拟量选择电路:8
15、路输入模拟量信号分别接到IN0到IN7端,究竟选通哪一路去进行A/D转换由地址锁存器与译码器电路控制,见表2-1所示。A,B,C为输入地址选择线,地址信息由ALE的上升沿打入地址锁存器。,表2-1 ADC0809真值表,ADC0809工作过程,首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量
16、输出到数据总线上。,逐次逼近式A/D转换器工作原理,逐次逼近式A/D转换器的工作原理可用天平秤重过程作比喻来说明。若有四个砝码共重15克,每个重量分别为8、4、2、1克。设待秤重量Wx=13克,可以用下表步骤来秤量:,A/D转换流程框图,逐次逼近式A/D转换器,START为启动信号,要求输入正脉冲信号,在上升沿复位内部逐次逼近寄存器,在下降沿启动A/D转换。EOC为转换结束标志位,“0”表示正在转换,“1”表示一次A/D转换的结束。CLOCK为外部时钟输入信号,时钟频率决定了A/D转换器的转换速率,ADC0809每一通道的转换约需(6673)个时钟周期,当时钟频率取640KHz时,转换一次约需
17、100s时间,这是ADC0809所能允许的最短转换时间。,三态输出缓冲锁存器,A/D转换的结果就是由EOC信号打入三态输出缓冲锁存器。OE为输出允许信号,当向OE端输入一个高电平时,三态门电路被选通,这时便可读取结果。否则缓冲锁存器输出为高阻态。,ADC0809的时序图,ADC0809的时序图如图2-6所示。在启动ADC0809后,EOC约在10s后才变为低电平,因而在用START启动0809转换器后,不能立即通过检测EOC来判断转换是否结束,而应等待约10s再检测,否则会出现错误结果。编程时必须注意到这一点。,稳定,时钟ALE地址INxSTARTEOCOE输出,ADC0809时序图,稳定,A
18、DC0809与单片机8031接口电路,ADC0809输出带有三态输出缓冲锁存器,因而不加I/O接口芯片,可以直接接到微机系统的总线上。ADC0809的时钟信号(CLOCK)由8031的ALE端的输出脉冲(其频率为8031时钟频率的1/6)经二分频得到,8031由地址线P2.0和读写控制线启动ADC0809的START、地址锁存ALE和输出允许OE信号。A/D转换结束信号EOC反相后连至8031的INT1(P3.3)。模拟输入通道地址的译码输入信号A,B,C由P0.0P0.2提供。根据以上连接,0809的地址为FEFFH。,74LS373,C DQ Q,1,1,1,1,+5,IN0IN1IN2I
19、N3IN4IN5IN6IN7,ALE P0,INTRDP2.0WR,AB07,ABCD0,EOCOEALESTART,VCCR+R-,.,单周期指令的时序,A/D转换常用的软件控制方式,常用的控制方式主要有:程序查询方式、延时等待方式和中断方式。1程序查询方式微处理器向A/D转换器发出启动信号后,读入转换结束信号,查询转换是否结束;若转换结束,可以读入数据;否则再继续查询,直至转换结束再读入数据。这种方法微机“查询”消耗许多时间,因而效率低,但比较简单,可靠性高。实际应用还是比较普遍的。,A/D转换常用的软件控制方式,2延时等待方式启动A/D后,根据A/D转换所需的时间(如ADC0809为10
20、0s)软件延时等待,延时结束,读入数据。这种方法可靠性高,不占查询端口。3中断方式在中断方式中,微处理器启动A/D转换后可转去处理其他事情,A/D转换结束便向微处理器发出中断申请信号,微处理器响应中断后再来读入数据。微处理器与A/D转换器并行工作,提高了工作效率。,ADC0809与单片机8031接口实例,以下结合图2-7所示的ADC0809与单片机8031接口电路,给出查询、延时和中断这三种方式下的转换程序。转换程序的功能是将由IN0端输入的05V模拟信号转换为对应的数字量00HFFH,然后再存入8031内部RAM的30H单元中。,a.查询方式,MOV DPTR,#0FEFFH MOV A,#
21、00H;赋通道0地址 MOVX DPTR,A;启动IN0转换 MOV R2,#20H DLY:DJNZ R2,DLY;延时,等待EOC变低WAIT:JB P3.3,WAIT;查询,等待EOC变高 MOVX A,DPTR MOV 30H,A;结果存30H,b.延时等待方式,MOV DPTR,#0FEFFH MOV A,#00H;赋通道0地址 MOVX DPTR,A;启动IN0转换 MOV R2,#40H WAIT:DJNZ R2,DLY;延时约120uS MOVX A,DPTR MOV 30H,A;结果存30H,c.中断方式,主程序:MAIN:SETB IT1;选INT1为边沿触发SETB EX
22、1;允许INT1中断 SETB EA;打开中断MOV DPTR,#0FEFFHMOV A,#00H MOVX DPTR,A;启动A/D转换;执行其他任务,中断服务程序INT1:PUSH DPL;保护现场 PUSH DPH PUSH A MOVDPTR,#0FEFFH MOVX A,DPTR;读转换结果 MOV30H,A;结果存30H MOVA,00H MOVX DPTR,A;启动下一次转换 POP A POP DPH POP DPL;返回现场 RETI;返回,ADC0809与MCS-51单片机的接口,1硬件连接,汇编语言编程:ORG 0003HLJMP INT0ORG 0100H;主程序MOV
23、 R0,#30H;设立数据存储区指针MOV R2,#08H;设置8路采样计数值SETB IT0;设置外部中断0为边沿触发方式 SETB EA;CPU开放中断SETB EX0;允许外部中断0中断MOV DPTR,#0000H;送入口地址并指向IN0LOOP:MOVX DPTR,A;启动A/D转换,A的值无意义HERE:SJMP HERE;等待中断,2软件编程,设接口电路用于一个8路模拟量输入的巡回检测系统,使用中断方式采样数据,把采样转换所得的数字量按序存于片内RAM的30H37H单元中。采样完一遍后停止采集。,ORG 0200H;中断服务程序INT0:MOVX A,DPTR;读取转换后的数字量
24、MOV R0,A;存入片内RAM单元INC DPTR;指向下一模拟通道INC R0;指向下一个数据存储单元DJNZ R2,NEXT;8路未转换完,则继续CLR EA;已转换完,则关中断CLR EX0;禁止外部中断0中断RETI;中断返回NEXT:MOVX DPTR,A;再次启动A/D转换RETI;中断返回,C语言编程:#include#include/定义绝对地址访问#define uchar unsigned char#define IN0 XBYTE0 x0000/定义IN0为通道0的地址static uchar data x8;/定义8个单元的数组,存放结果uchar xdata*ad_
25、adr;/定义指向通道的指针uchar i=0;void main(void)IT0=1;/初始化EX0=1;EA=1;i=0;ad_adr=/等待中断,void int_adc(void)interrupt 0/中断函数xi=*ad_adr;/接收当前通道转换结果i+;ad_adr+;/指向下一个通道if(i8)*ad_adr=i;/8个通道未转换完,启动下一个通道返回elseEA=0;EX0=0;/8个通道转换完,关中断返回,AD574芯片及其接口,AD574是12位快速逐次逼近型A/D转换器,其最快转换时间为25s,转换误差为1LSB。AD574具有下述几个基本特点:片内含有电压基准和时
26、钟电路等,因而外围电路较少;数字量输出具有三态缓冲器,因而可直接与微处理器接口;模拟量输入有单极性和双极性两种方式,接成单极性方式时,输入电压范围为010V或020V,接成双极性方式时,输入电压范围为-5V5V,-10V10V。,图2-8 AD574原理与引脚图,AD574原理与主要引脚信号定义,CS:片选,低有效;CE:片允许,高有效;RC:读变换,高为读AD变换结果,低为启动AD变换;128:数据格式,高为12位并行输出,低为8位(或4位)并行输出本设计令其接地;A0:字节地址短周期,高为8位变换输出低4位,低为12位变换输出高8位;STS:变换状态,高为正在变换,低为变换结束;,REF
27、IN:基准输入;REF OUT:基准输出;BIP OFF:双极性方式时,偏置电压输入端;DBIIDB0:12位数据总线;10VIN:单极性010 V模拟量输入;双极性0 5 V模拟量输入。20VIN:单极性020 V模拟量输入;双极性0 10 V模拟量输入。AG:模拟地。,表2-2 AD574的操作,表2-2 AD574的操作,AD574与8031单片机的接口电路,8031单片机与AD574的各引脚的接口电路可按下页图29的电路来安排。由于8031的高8位地址P2.0P2.7没有使用,故可采用寄存器间接寻址方式。其中启动A/D的地址为1FH;读出低4位数地址为7FH;读出高8位数地址为3FH。
28、,图2-9 AD574与8031单片机的接口电路,AD574与8031单片机的接口电路,图中STS可有三种接法以对应三种控制方式:(1)如STS空着,单片机只能采取延时等待方式,在启动转换后,延时25s以上时间,再读入A/D转换结果;(2)如STS接单片机一条端口线,单片机就可以用查询的方法等待STS为低后再读入A/D转换结果;(3)如STS接单片机外部中断线,就可以在引起单片机中断后,再读入A/D转换结果。,采用延时等待方式的控制程序清单:MOVR0,#1FH;启动MOVXR0,AMOVR7,#10H;延时DJNZR7,$MOVR1,#7FH;读低4位MOVXA,R1MOVR2,A;存低4位
29、MOVR1,#3FH;读高8位MOVXA,R1MOVR3,A;存高8位SJMP$,单极性模拟输入方式接线的调整,单极性模入方式(图2-9)中,10VIN输入电压范围为0V10V,1LSB对应的模拟电压为2.44mV;2 0VIN输入电压范围为0V20V,1LSB对应的模拟电压为4.88mV。R1用于零点调整,R2用于满刻度校准。方法为:如输入电压接10VIN端,调整R1,使输入模拟电压为1.22mV(即 12LSB)时,输出数字量从0000 0000 0000变到0000 0000 0001;调整R2,使得输入电压为9.9963V时,数字量从1111 1111 1110变到1111 1111
30、1111。,双极性模拟输入方式的调整,对于双极性模入方式,把REF IN,REF OUT,和 BIP OFF三个引脚的接线按图2-10重新安排,双极性模入方式零点与满刻度校准方法与单极性方式近似。需要注意的是,输入模拟量与输出数字量之间的对应关系为:10VIN端输入时:5V0V5V 对应 000H800HFFFH20VIN端输入时:10V0V10V 对应 000H 800HFFFH,图2-10 AD574双极性模拟输入接线方式,MAX1241芯片及其接口,以串行数据形式输出的A/D转换器具有引脚少、体积小的特点;接口所需的IO位数也比较少。有利于提高仪器的集成度和减小体积,能方便、廉价地实现需
31、要进行模拟与数字隔离的场合。串行输出的AD转换器虽有多种型号,接口时序也有所不同。但接口的实现和控制方法还是基本相同的。现以MAX1241为例来说明串行输出ADC接口技术。,MAX1241串行输出单片ADC简介,MAX1241是一种低功耗、低电压的12位逐次逼近型ADC,最大非线性误差小于1LSB,转换时间9s。采用三线式串行接口,内置快速采样保持电路。其结构和引脚定义如图2-11所示。,图2-11 MAX1241内部结构和管脚定义,MAX1241串行输出单片ADC简介,MAX1241采用8引脚DIP或SO形式封装,完善的内部电路几乎不需要外围器件即能工作。内置采样/保持电路在AD转换开始时,
32、自动捕捉信号,最大捕捉时间 1.5s。12位逐次逼近型 ADC的并行输出经输出移位寄存器变换为串行输出,整个工作过程受控于三线串行接口。,表2-3 MAX1241管脚功能,MAX1241采用单电源供电,动态功耗在以每秒73K转换速率工作时,仅需09mA电流。在停止转换时,可通过控制端使其处于休眠状态,以降低静态功耗。休眠方式下,电源电流仅1A。,MAX 1241的工作时序,MAX1241的工作时序(图2-12):每次转换由芯片选通信号的下降沿触发,但此时驱动时钟 SCLK必须为低。AD转换启动后,内部控制逻辑切换采样保持电路为保持状态,并使输出数据线DOUT变低。在整个转换期内,SCLK应保持
33、低电平。转换结束时DOUT由低变高。一次转换结束,内部控制逻辑将自动把采样保持器切换为捕捉状态。,图2-12 MAX1241工作时序,MAX1241的工作时序,对MAX1241转换结果的输入在转换结束后进行,由驱动时钟SCLK的下降沿触发一位数据输出。在下一个SCLK脉冲下降沿到来前,该位数据将始终保持在DOUT输出端上。数据输出从最高位开始,每个SCLK脉冲下降沿输出一位。第12个SCLK的下降沿输出最低位。在数据输出周期内,必须保持低电平,若在第13个SCLK下降沿后,仍保持低电平,DOUT则一直保持为低电平。,2MAX1241 与 803151的接口,MAX1241与微机接口的实现有二种
34、选择,一是使用普通端口,利用程序实现串行输入。另一种则是直接使用串行接口。前者输入速度低,后者需占用串行通信口。(l)MAX1241与 8031/51的通用 IO方式接口:MAX1241与 8031/51的通用 IO接口如图2-13所示。接口使用三位通用 IO端口P1.0P1.2。其中P1.0用于片选信号,P1.2为数据输入,P1.1产生驱动脉冲SCLK。,控制程序如下:控制子程序完成一次A/D转换和输入,输入数据存放于R0,R1寄存器。;寄存器及端口定义:CS:BIT P1.0;片选信号位DOUT:BIT P1.2;串行数据输入位SCLK:BIT P1.1;驱动时钟位DATA_BH:EQU
35、R0;高字节数据存储单元DATA_BL:EQUR1;低字节数据存储单元CONT_H:EQUR0;高位取数计数器CONT_L:EQU R1;低8位取数计数器,;控制子程序SADC_R:XRLA,A;清A MOV CONT_H,04H;高8位计数 MOV CONT_L,08H;低8位计数 CLR SCLK;SCLK置“0”CLR CS;选中1241,启动转换SADC_ END:JNB DOUT,SADC_ END;检测A/D转换结束READ_H:SETBSCLK CLRSCLK;产生一个驱动时钟 MOV C,DOUT;输入一位数据”RLC A;数据移位至ACC0 DJNZ CONT_H,READ_
36、H;高 4位输入结束判别 MOV DATA_BH,A;高 4位数据送寄存器,READ_L:SETBSCLK CLRSCLK;产生一个驱动时钟 MOV C,DOUT;输入一位数据 RLC A;数据移位置ACC0 DJNZ CONT_L,READ_L;低8位输入结束判别 MOV DATA_BL,A;低8位数据送寄存器 SETBSCLK CLRSCLK;清 DOUT输出 SETB CS;撤消片选 RET,(2)MAX1241与803151串行接口,当使用803151串行口实现与MAX1241联接时,串行口应工作于同步移位寄存器方式(方式0)。此时,串行口的接受数据端RXD(P3.0)被用于接受MAX
37、1241的输出数据。而发送数据端TXD(P3.1)则被用于提供驱动时钟,为满足时序要求;应将其反相。片选信号仍使用P1.0。接口电路如图2-14所示。,8031/51串行接口控制程序,由于8031/51串行口一次只能接受8位数据,故12位AD转换结果必须分二次接受。同前述程序直接输入一样,控制程序必须检测AD转换结束信号,即DOUT的上跳变,只要当DOUT变为高电平后,方能启动串行接受。接口控制程序如下所示:,MAX1241 ADC串行接口控制子程序;寄存器及端口定义CS:BIT P1.0EOC:BIT P3.0DATA_BH:EQU R0;接受数据高位存储寄存器DATA_BL:EQU R1;
38、接受数据低位存储寄存器;串行口设置子程序SPOR_SET:CLR ES;禁止串行中断 MOV SCON,00H;串行口为方式0,停止接受 SETB CS;禁止 ADC RET,;接口控制子程序SAD_SR:CLR CS;启动 AD转换AD_NEND:JNB EOC,AD_NEND;等待转换结束 SETB REN;启动串行接收FR_NEND:JNB RI,FR_NEND;等待接收结束 MOV DATA_BH,SBUF;从串行数据缓冲器输 入高8位数据 CLR RI;启动第二次接收SR_NEND:JNB RI,SR _NEND;等待接收结束 MOV DATA_BL,SBUF;从串行数据缓冲器 输入
39、低4位数据 CLR REN;停止接收 SETB CS;禁止ADC RET,213 积分式ADC,大多用于低速、廉价的积分型AD转换器中,几乎无一例外地采用了十进制编码方式,每次输出一位并行十进制编码,整个转换结果分若干次输出。这种低速、廉价但高精度、强抗干扰的集成A/D转换器以其优良的性能价格比被广泛应用于低速测量领域。,1MC14433 3位双积分ADC,MC14433是具备零漂补偿和采用CMOS工艺制造的3位单片双积分A/D转换器,最大输出数码1999,具有功耗低、输入阻抗高和自动调零、自动极性转换功能。其转换精度为土(005 Vi 1LSB),输入电阻大于100M,对应时钟频率范围为 5
40、0150kHz,转换速度为每秒310次。内部结构框图及管脚功能如图2-15所示:,图2-15 MC14433 ADC结构框图及管脚功能,MC14433采用土5V供电电源,只需一个正基准电压VR,其与输入电压Vi成下列比例关系 输出读数=1999(2-1)当满量程时Vi=VR。Vi输入有2V和200mV两个量程挡。当满度电压为1999V时,VR取2000V;当满度电压为1999mV时,VR取2000mV。当然,也可根据需要在200mV2V之间任意选择VR的值,此时,读数的一个LSB所对应的输入电压则需通过式2-1求得。,MC14433输出时序,MC14433由内部电路自动控制转换,无需外加启动信
41、号,输出数据通过Q3Q1输出端,逐位输出BCD码,并不断重复。并通过 DS1DS4指明现行输出 BCD码是十进制位中的哪一位。A/D转换结束,在EOC端输出一正脉冲,宽度为一个时钟周期。输出数据更新需通过DV端的正跳变信号实现,通常将EOC与其短接。其整个输出时序如图2-16所示。在千位输出时,携带输出极性及超量程信息,如表2-4所示。,图2-16 MC14433输出时序,MC14433千位编码定义,表2-4 MC14433千位编码定义,2MC14433ADC与 803151接口,MC14433输出不具有三态缓冲,故必须通过接口方可挂接于微机总线。对于803151单片机而言,最简接的方法是直接
42、与其I/O端口相连。因 MC14433为低速 ADC,所以宜采用中断方式接口。图2-17给出了其与 8031/51的接口电路。,图2-17 MC14433ADC与 8031/51的接口,图2-18 数据格式,MC14433ADC与 803151接口,接口使用P1口,高4位输入BCD码,低4位输入位选信号DS1DS4。EOC的下跳沿触发中断。按MC14433的输出时序和接口形式,控制程序如下所示。控制程序由中断启动,每次输入一个完整的转换结果,并存入803151内部RAM。存入数据格式如图2-18所示。,214并行或特高速ADC,在高速数据采集领域,如图像处理、频谱分析等,双积分式和逐次逼近型A
43、D转换器的转换速度都不能满足要求。并行型AD转换器的速度高,它将输入模拟电压Vi与一系列标准电压同时进行比较,将比较的结果经过编码后得到二进制数据。,并行或特高速ADC原理,3位二进制并行型AD转换器(图2-19)由标准电压源经电阻分压后得到m(m2n-1)个标准电压(n是转换后得到二进制数位数);每一个分压后的标准电压与输入模拟电压Vi同时(并行)进行比较,若输入模拟电压大于标准电压,则相应的比较器输出为“真”(即为“1”),反之为“假”(即“0”);经数字编码后,输出即为等效于输入模拟量的二进制数据。一个n位二进制并行型AD转换器需要m(m2n-1)个比较器。,图2-19 并行型AD转换器
44、原理图,几点说明:,由图可知,并行型A/D转换器的精度取决于几个因素:分压电阻精度要高,主要是一致性要好;比较器的灵敏度要能鉴别两个相邻标准电压;标准电压源VR的精度也有一定的要求。并行ADC的速度主要取决于比较器的响应速度及数据寄存器(D触发器)的响应时间。n位并行型ADC转换器需要(2n 1)个比较器,成本相当昂贵。,并行型A/D转换器的应用,输入信号是双极性时,只需将参考电压的接地端改接为负电源端。这种转换器速度极快,但结构复杂,无法做到高精度,价格也非常昂贵,如图像处理及模式识别等领域。因为模式识别及图像处理一帧画面有数以2.2万计的像素,为了适应视觉的要求必须每秒钟处理几十帧画面。如
45、果每秒钟处理30个画面,则相当每秒钟要对6.6兆个像素进行处理,所以对A/D转换速度要求极高。,22模拟量输出通道,模拟量输出通道的作用是将经智能化医学仪器处理后的数据转换成模拟量送出,它是许多智能设备的重要组成部分。模拟量输出通道一般由DA转换器、多路模拟开关、采样保持器等组成。本节侧重讨论DA转换器及其与微处理器的接口。,221 DA转换器概述一、D/A转换原理,DA转换器是由电阻网络、开关及基准电源等部分组成,目前基本都已集成于一块芯片上。为了便于接口,有些 DA芯片内还含有锁存器。DA转换器的组成原理有多种,采用最多的是R2R梯形网络DA转换器,图2-20显示了一个4位DA转换器的原理
46、图。,D/A转换原理,一般由D/A转换器,多路模拟开关,采样/保持器等组成。作用是将经智能仪器处理后的数据转换成模拟量送出。一、D/A转换原理(图2-20)由电阻网络,开关及基准电源等组成。URU0=(23D3+22D2+21D1+20D0)24,R-2R梯形网络D/A转换器原理,图2-20 R-2R梯形网络D/A转换器原理,二、D/A转换器的主要技术指标,分辨率:当输入数字发生单位数码变化时所对应模拟量输出的变化量.转换精度:在整个工作区间实际的输出电压与理想输出电压之间的偏差.转换时间:通常为几十个纳秒.尖峰误差:指输入代码发生变化时刻,而使输出模拟量产生的尖峰所造成的误差.,D/A转换器
47、尖峰误差及消峰原理,三、DA转换电路输入与输出形式,D/A数字量输入端可以分为:1.不含数据锁存器(需外加数据锁存器).2.含单个数据锁存器.3.含双个数据锁存器(用于多个D/A同时转换的场合).D/A的输出电路分为:1.单极性电路图2-222.双极性电路 图2-23,UOUT=-(VREF/28)D,UOUT=-(2U1+VREF),222D/A转换器与微机接口8位D/A转换器DAC0832及其与微机接口,八位D/A转换器DAC0832及其与微机接口内部含有双输入数据锁存器的8位D/A器件(图2-24)。1、单缓冲接口电路(图2-25)程序:MOV DPTR,#0FEFFH MOV A,#D
48、ATA MOVX DPTR,A,双缓冲接口的程序,MOVDPTR,#0FEFFHMOVA,R2MOVXDPTR,A;数据送1#0832输入寄存器MOVDPTR,#0FDFFHMOVA,R3MOVXDPTR,A;另一数据送2#0832输入寄存器MOVDPTR,#0FBFFHMOVXDPTR,A;1#、2#D/A转换器同时输出,【例】根据下图编程从DAC0832输出端分别产生锯齿波、三角波和方波。根据单缓冲方式图的连接,DAC0832的口地址为7FFFH。,汇编语言编程:锯齿波MOV DPTR,#7FFFHCLR ALOOP:MOVX DPTR,AINC ASJMP LOOP三角波:MOV DPT
49、R,#7FFFHCLR ALOOP1:MOVX DPTR,AINC ACJNE A,#0FFH,LOOP1LOOP1:MOVX DPTR,ADEC AJNZ LOOP2,SJMP LOOP1方波:MOV DPTR,#7FFFHLOOP:MOV A,#00HMOVX DPTR,AACALL DELAYMOV A,#FFHMOVX DPTR,AACALL DELAYSJMP LOOPDELAY:MOV R7,#0FFHDJNZ R7,$RET,C语言编程:锯齿波:#include/定义绝对地址访问#define uchar unsigned char#define DAC0832 XBYTE0 x
50、7FFFvoid main()uchar i;while(1)for(i=0;i0 xff;i+)DAC0832=i;,三角波:#include/定义绝对地址访问#define uchar unsigned char#define DAC0832 XBYTE0 x7FFFvoid main()uchar i;while(1)for(i=0;i0;i-)DAC0832=i;,方波:#include/定义绝对地址访问#define uchar unsigned char#define DAC0832 XBYTE0 x7FFFvoid delay(void);void main()uchar i;w