| 高精度AD芯片ADS8364在生理信号数据采集中的应用 |
| 类别:电子综合 |
|
高精度AD芯片ADS8364在生理信号数据采集中的应用 华中科技大学电子与信息工程系 王忠友 吴鸿修 由于生物体微弱的电信号和丰富的信息量,在生物体多参数测量中,高精度采集也就显得尤为重要。基于此我们研制的生理信号采集系统的采集电路部分采用了ADS8364和DS87C520单片机。 ADS8364是美国TI公司的一种高速、低能耗、6通道同步采样转换,单+5V供电的16位高速并行接口的高性能模数转换芯片,片上带2.5V基准电压源,可用作ADS8364的参考电压。每片ADS8364实际由3个转换速率为250ksps(当外部时钟为5MHz)的ADC构成,每个ADC有2个模拟输入通道,每个通道都有采样保持器,3个ADC组成3对模拟输入端,可同时对其中的1~2对输入信号同时采样保持,然后逐个转换。由于6个通道可以同时采样,很适合用于需同时采集多种信号的场合。 ADS8364前端调理电路 由于输入的模拟信号变化范围较大,通常不是AD芯片所要求的范围,在高精度、高要求的AD采样电路中,为使输入的模拟信号与AD采样所需求的信号相匹配,通常在AD采样电路前加入前端调理电路,以缩放和平移要采样的信号,从而使调理后的信号适合A/D转换器的模拟输入要求。图1是ADS8364一个输入通道的前端调理电路。 ADS8364模拟输入通道+IN和-IN的最大电压输入范围为-0.3V~+6V(ADS8364用+5V供电)。图1电路中使用了2个运放,A2用作跟随器,用来缓冲ADS8364输出的2.5V基准电压;A1和四个电阻构成了信号调理网络,适当配置R1~R4电阻可以实现对输入信号Vi的缩放和平移,以适合ADS8364模拟通道的输入要求。由于R5 =R6则+IN端的输入电压为: 这样,在保证V+IN=0~5V的前提下,Vi可以是双极信号,调整R2、R4的比例使Vi有合适的输入范围。表1是针对不同双极性模拟输入的配置实例。 ADS8364与单片机连接电路 ADS8364与单片机连接电路见图2。ADS8364转换后的结果可通过两种方式输出:①当BYTE=0时,以DB0~DB15 16位输出;②当BYTE=1时,则转换结果分两个字节从DB0~DB7读出,此时采用8位单片机读取非常方便。 本系统中采用8位单片机,根据要求ADS8364的BYTE设为高电平,在第一个/RD信号里,输出低8位数据,第二个RD信号后读出高8位。ADS8364的/HOLDA、/HOLDA 、/HOLDC信号由单片机P1口的P1.0输出的信号控制;A0~A2通过DS87C520的P0口输出,控制线ADD硬件接低电平。图2是DS87C520与ADS8364的连接电路。 系统采用与DS87C520相连的GAL16V8时给出ADS8364的地址为5000H,当DS87C520的/WR=0,且ADS8364的/CS=0时DS87C520将通过数据口对ADS8364写入控制字;当DS87C520的P1.0=0时才开启ADS8364进行AD转换,转换结束后的信号/EOC对DS87C520发出中断请求,则DS87C520在/RD=0时响应中断请求,读取ADS8364的转换结果。 数据采集 ADS8364转换器初始化操作 AD转换前,首先要进行控制字的写入,信号ADD、A0、A1、A2的设置,配合TYPE确定了数据的输入和输出方式,/RESET、/HOLDA、 /HOLDB和/HOLDC的设置可对AD转换的数据输出寄存器进行清除操作和其 他复位操作。信号对应控制字的各位见表2。 写入控制字时,在软件命令控制下根据ADS8364的口地址,在/CS有效时将表中数据通过低8位数据线写入ADS8364内部寄存器。 软件命令时序如图3所示。 ADS8364的转换启动与数据读取 系统的最终目标是要获取数据,然后进行处理。根据TYPE、ADD、A0、A1和A2,DS87C520需三次读完一路转换的数据,DS87C520控制ADS8364转换和读取转换结果的C51程序如下(写入外部数据RAM的程序省略): #include <reg52.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #include <intrins.h> #include <absacc.h> : : sbit p10=P1^0; #define uint unsigned int #define uchar unsigned char #define ADS_A0 XBYTE[0X5000] : : #define ADS_C1 XBYTE[0X5005] uchar xdata *Sample; void delay(uchar n) //延时模块 { uchar i; for(i=0;i<n;i++) { _nop_(); } } void enable_int0(void) //开中断 { EA=1; EX0=1; IT0=1; } void Start_Conver(void) //启动6路AD转换 { p10=1; p10=0; delay(1); p10=1; } void main(void) { int i; p10=1; Start_Conver(); ADS_A0=0x07; //ADS8364写入控制字 ADS_A0=0x9e; EA=0; while(1){ delay(1); Start_Conver(); delay(10); //等待转换结束采集数据 for(i=0;i<18;i++) // 读取6路转换数据 { *Sample++=XBYTE[0X5006]; } } } 启动转换后,在读取数据前需要延迟的指令周期数需根据DS87C520和ADS8364的运行速度来调整。 结语 利用ADS8364设计的生理信号采集系统可同时采集多路信号,采集精度高,经初步临床验证完全满足临床要求。
|
- 海尔空调制冷故障维..
- 2008-1-25
- 大尺寸TFT显示器..
- 2008-1-27
- 利用DC/DC转换..
- 2008-1-27
- 电动车铅酸蓄电池的..
- 2008-1-27
- 大型搅拌站自动配料..
- 2008-1-27
- 城市和工业污水处理..
- 2008-1-27
- 开关电源的数字控制..
- 2008-1-27
- 精密的智能电池使充..
- 2008-1-27
- 基于DSP控制的2..
- 2008-1-27
- 增强型运营商级多服..
- 2008-1-27
- 高效CCD数码相机..
- 2008-1-27
- Atheros 单..
- 2008-1-27
- Philips 推..
- 2008-1-27
- Fujitsu 数..
- 2008-1-27
- 如何给PCI卡选用..
- 2008-1-27
- A/D转换芯片的测..
- 2008-1-27
- 基于CTl技术的交..
- 2008-1-27
- MMIC和RFIC..
- 2008-1-27
- 利用皮弹服务器进行..
- 2008-1-27
- 白色发光二极管及其..
- 2008-1-27



