位置:51电子网 » 技术资料 » 通信网络

高精度AD芯片ADS8364在生理信号数据采集中的应用

发布时间:2008/5/29 0:00:00 访问次数:498

由于生物体微弱的电信号和丰富的信息量,在生物体多参数测量中,高精度采集也就显得尤为重要。基于此我们研制的生理信号采集系统的采集电路部分采用了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设计的生理信号采集系统可同时采集多路信号,采集精度高,经初步临床验证完全满足临床要求

由于生物体微弱的电信号和丰富的信息量,在生物体多参数测量中,高精度采集也就显得尤为重要。基于此我们研制的生理信号采集系统的采集电路部分采用了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设计的生理信号采集系统可同时采集多路信号,采集精度高,经初步临床验证完全满足临床要求

相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!