1 引言
单片计算机应用系统在生物医学微信号的采集及处理方面具有广阔的应用前景。本文介绍我们根据实际需要研发的一款六通道数据采集及处理的单片计算机应用系统,共生产样机两台,都投入了实际应用。该系统分别对六个来自传感器的微弱电信号进行放大,经A/D转换器转换为数字信号,在PC机的控制下,用单片计算机对这些数据进行初步的处理,然后把这些数据传送给PC机。通过选择不同的传感器,系统可用于各种生物医学微信号的采集及处理,具有一定的通用性。
2 系统硬件电路的设计
图1 系统组成方框图
如图1所示,系统由传感器、微信号放大、A/D转换、单片计算机接口、串行通信等部分组成。来自传感器的微弱电信号经信号放大电路放大后送入A/D转换器,此电信号经A/D转换器转换成数字信号后送入单片计算机进行初步的数字处理,并经串行通信接口传送给PC机。同时,PC机的指令也可通过串行通信接口传送给单片计算机。
现将系统各部分分别介绍如下:
2.1 微信号放大电路
微信号放大电路采用美国Burr-Brown公司生产的精密数据放大器INA118。该运放具有精度高、温漂低的特点,其内部结构如图2所示[1]。
INA118有八只脚,第1、8脚间外接一放大倍数控制电阻Rg,3、2脚分别为正、反向输入端,7、4脚为+5V、-5V电源输入端,6脚为输出端,5脚为参考电压端,一般与地相接。
图2 INA118内部结构图
A1、A2、Ra、Rb和Rg组成第一级放大电路,根据运算放大器的“虚短”特性,有VA=VIN-,VB=VIN+。所以流过Rg的电流为
A3、Rc、Rd、Re和Rf组成第二级放大电路,此级为一差分放大电路,由于Rc=Rd,Re=Rf,故其电压放大倍数为[2]
由上式看出,要改变INA118的放大倍数,只要改变Rg的大小即可。在实际电路中,Rg采用一只1KΩ的精密电位器构成放大倍数可调的放大电路,如图3所示。
图3 微信号放大电路[page]
由于系统要对来自六个传感器的信号分别进行放大,所以使用了六片INA118(U1~U6)组成六通道信号放大电路。六片INA118的反向输入端 VIN-分别通过J1接线口的第1~6脚接六个传感器的信号输出端;正向输入端则并接在一起,通过J1口的第8~10脚接到六个传感器的另一端,同时通过一个1KΩ的电阻接地,以降低共模输入分量,提高放大器的放大精度。
电位器W1~W6是电压放大倍数调节电位器,可根据需要分别对U1~U6的放大倍数进行调节。本系统中分别把六个通道的放大倍数都预设为–200倍。 U1~U6的输出端Vo1~Vo6分别接到A/D转换器U7的AIN0~AIN5六个输入端,以便把放大后的电压信号转换成数字信号。
2.2 A/D转换电路
模数转换电路采用德州仪器公司开发的串行A/D转换器TLC2543,它是一种11通道、12位、高精度(最大±1/4096的线性误差)、快速(在工作温度范围内转换时间为10μs)的模数转换器[3],其内部结构如图4所示。
TLC2543内部由通道选择器、输入地址寄存器、采样保持电路、12位的模数转换器、输出寄存器、并→串转换器以及控制逻辑电路等7个部分组成。通道选择器根据输入地址寄存器中存放的地址选择输入通道,并将输入通道中的信号送到采样保持电路中,然后在12位数模转换器中将采样的模拟量转换成数字量,存放到输出寄存器中,这些数据经过并行→串行转换器转换成串行数据,由DOUT端输出到微处理器中。
图4 TLC2543内部结构方框图
模数转换电路如图5所示。TLC2543的模拟信号输入端AIN0~AIN5分别接六路来自INA118的电压信号Vo1~Vo6,各路信号的选择通过编程设定;AIN6~AIN10以及负参考电压端REF-都接地。 为片选信号输入端,片选信号来自单片计算机AT892051的P1.7脚(该信号由软件编程产生),当 为低电平时,允许TLC2543输入输出数据,当 为高电平时禁止其输入输出数据;DOUT为转换数据输出端,转换结果输出到单片计算机AT892051的P1.6端,输出方式可由高位到低位逐位输出,也可由低位到高位逐位输出,具体方式由编程确定;DIN为串行数据输入端,来自单片机P1.5脚的命令字(含通道选择、输出数据长度、输出顺序、极性选择等信息)由此端输入,输入方式为先高位后低位。SCLK为输入输出同步时钟端,该时钟信号来自AT892051的P1.4脚(信号通过软件编程产生);当数据传送开始后,每个SCLK信号的上升沿,由单片机向TLC2543输入一位命令字(前8个上升沿),同时由TLC2543向单片机输出一位转换结果(前 8、12或16个上升沿)。TLC2543的正参考电压端REF+接+3.0V标准电压。
标准电压+3.0V由电源集成电路TL431产生。由于TL431的第1、2脚间的电压差为标准电压2.5V,而第1脚的工作电流可以忽略,所以TL431的第3脚输出的标准电压为:
本系统中,转换结果采用12位输出的方式:当TLC2543输入端的模拟电压(对地电压)等于(或略低于)0V时,TLC2543输出结果为000H,当模拟电压等于(或略大于)3V时,输出结果为FFFH(为了不损坏TLC2543,应恰当选择传感器的接法并调节放大电路的放大倍数,使TLC2543的输入电压在-0.3V~+3.3V的范围内)。
图5 模数转换电路
2.3 单片计算机接口电路
单片计算机选用ATMEL公司生产的AT89C2051。它是一种低功耗、高性能的8位CMOS微控制芯片,与MCS-51指令系统兼容,且片内自带的2KB快闪可读写程序存储器已可满足本系统的需要,不需要扩展外部程序存储器。
图6 接口电路[page]
接口电路如图6所示。其中,C0与R4构成上电自动复位电路;K、R5和R4构成手动复位电路,X、C1、C2构成单片机的振荡电路。为了产生精确的串行通信波特率,晶振X的振荡频率选为11.0592MHz(它可使波特率发生器T1的初值为整数,从而消除初值误差)。
AT89C2051的P3.0脚为串行数据接收端,接收来自MAX232的R1OUT端的串行数据;P3.1脚为串行数据输出端,单片机发向PC机的串行数据由此传输到MAX232的T1IN端;P1.4脚输出同步时钟信号,此信号输入到TLC2543的SCLK端;P1.5脚与TLC2543的DIN端相连,单片机由此端向TLC2543输入命令字;P1.6脚是A/D转换结果输入端,接收来自TLC2543的DOUT端的转换结果;P1.7脚输出 TLC2543的片选信号,与TLC2543的 端相接。
2.4 串行通信电路
串行通信电路如图7所示。MAX232是双向电平转换芯片,完成TTL电平(0~5V)与EIA电平(-10V~+10V)之间的转换:发送数据时,TTL电平信号自单片机的TXD端传到MAX232的T1IN端,经MAX232转换成EIA电平信号后,由T1OUT端送出,通过RS-232C插座的TXD端到达PC机;接收数据时,来自PC机的EIA电平信号通过RS-232C插座的RXD端输入到MAX232的R1IN端,经MAX232转换成TTL电平信号后,由R1OUT端送到单片机的RXD端。
图7 串行通信电路
3 系统软件设计
系统主程序框图如图8所示。
系统主程序设计为一个循环程序,在一个循环中完成以下工作:①向A/D转换器发送命令字,读取A/D转换器的转换结果,并根据来自PC机的指令,将读取的转换结果进行初步处理;②将数据发送给PC机;③接收来自PC机的命令,并对命令做出反应。
本系统中,TLC2543输出结果设置成12位无符号整型数,输出顺序为高位在前。为了使采样结果更准确,采取如下采样方式:在每一个主程序循环中,由单片计算机依次读取AIN0~AIN5六个通道的采样数据,并将各通道的数据依次存放到单片机的RAM中,六个通道读完一次之后,再依次读取 AIN0~AIN5六个通道的采样数据,并将新读取的各通道的数据分别加入到前面读取的结果中,这样连续读取8次,得到各通道8次采样结果之和,然后将这些结果分别除以8,得到各通道8次采样结果的平均值,并把它们作为各通道的采样结果传送给PC机。由于A/D转换器输出的结果并不直接表示电压的大小(000H表示0V,FFFH表示3.0V),单片机可根据来自PC机的命令,将这些结果转换成电压值(如将FFFH转换成003H),结果的转换通过调用子程序完成。
图8 系统主程序框图
系统主程序每循环一次,单片机向PC机发送一组数据,这一组数据包含三个部分:①三个同步字节#55H、#0AAH、#01H(供PC机识别发送内容用);②AIN0~AIN5六个通道的采样结果;③采样结果的累加和(供PC机校验发送数据的正确性用)。数据的发送通过调用发送子程序实现。循环程序中有一个延时程序, PC机通过传送延时参数控制单片机完成一次循环所需的时间,从而控制单片机向PC机发送数据的频率。来自PC机的命令通过中断方式读入,每当PC机有信号传入,就引起单片机的串行口中断,单片机在中断服务程序中读入命令,并执行收到的命令。
单片机串行口的工作方式设置成方式1,串行通信的波特率设计为4800。设波特率发生器T1的初值为x,则[4]
即 x=250(十)=#0FAH(十六)
所以 TL1=#0FAH,TH1=#0FAH.
PC机的数据接收程序采用Visual C++ 6.0编写[5],并用安装程序制作软件InstallShield Professional制作成一个名为“高泽利—串口通信”的可安装应用软件,其运行界面如图9所示。
图9 “高泽利—串口通信”应用程序窗口
“高泽利—串口通信”完成的主要功能是:①通信参数的设置——鼠标单击“设置参数”按钮,弹出一个参数设置对话框,在该对话框内完成所使用的PC机的串口号、异步通信数据的桢格式、向单片机自动发送数据的时间间隔等参数的设置;②PC机向单片机发送控制指令——可将待发送的指令用手动或自动两种方式发送给单片机(待发送的内容通过键盘输入到“发送内容”编辑框中即可被发送出去);③接收来自单片机的数据——通过鼠标单击“开始接收/停止接收”按钮在接收与停止之间转换,接收到的数据显示在“接收回显”编辑框中;④接收回显数据的清除——鼠标单击“清除”按钮可清除接收回显编辑框中的数据,以使新接收的数据显示在编辑框中直接可见的位置。
4 应用
制作的两台样机在临床医学本科学生的“神经干动作电位”实验中用于测量神经干的动作电位。实验显示,该系统性能稳定,具有很高的测量精度,在医学信号的检测处理中取得了初步的成功。
参考文献:
[1] http://www.burr-brown.com.
[2] 王成华,王友仁,胡志忠编著.电子线路基础教程[M].北京:科学出版社,2000.133-134.
[3] 李群芳,黄建编著.单片微型计算机与接口技术[M].北京:电子工业出版社,2001.168-172.
[4] 杨恢先,黄辉先等编著.单片机原理及应用[M].长沙:国防科技大学出版社,2003.136-137.
[5] 求是科技,谭思亮,邹超群等编著.Viual C++ 串口通信工程开发实例导航[M].北京:人民邮电出版社,2003.73-130.
上一篇:基于MSP430和USB的数据采集系统
下一篇:温控系统中VB实现的PC机与单片机串行通迅
推荐阅读最新更新时间:2024-03-16 12:55
- 热门资源推荐
- 热门放大器推荐