引言
针对某医疗装置中的人体生理信号采集和传输问题,本文设计了计算机近距离无线数据采集系统。采用Nodic公司的nRF2401作为无线收发核心器件。系统由一台PC、无线数据接收模块和无线数据采集发射模块组成。无线数据发射模块以C8051F021单片机为处理核心,采用单片机内部的12位ADC对现场的模拟信号进行采集和发送;无线数据接收模块以C8051F021单片机作为处理核心,接收与发射模块由nRF2401无线收发芯片完成,采用MAX5591实现12位D/A转换,采用 RS-485总线与PC进行通信,它负责现场数据的接收和初步处理,并转发给PC以供显示和监控,同时将数字量转换为模拟量,供示波器显示;PC有良好的人机界面,利用NI的虚拟示波器显示远端现场采集的数据,并可以向现场的采集模块发送控制命令,同时可以实现保存采集数据、打印、回放历史数据等功能。
系统分析及设计
计算机短距离无线数据采集系统组成如图1所示。
图 1 系统组成框图
系统分析及硬件设计
由于现场要采集的数据为医学人体实验数据,幅值大约在-1.0V~+1.0V之间,频率为
300Hz,要求测量误差低于10mV,C8051F021自带的12位ADC在精度上可以满足要求;但是单片机中的ADC要求输入为正电压,同时考虑到转换精度要求,故需要对信号进行转换,将原信号转换为幅值在0~3V、频率300Hz左右的信号。可以利用MAX4194组成信号转换电路,将模拟信号的零参考电平抬升到1.0V。这样,原先-1.0V~0V之间的电压信号转换为0~1.0V之间的电压,而原先0V~1.0V之间的电压转换为1.0V~2.0V之间的电压。这样就完成了原始信号的转换,适应了单片机的输入要求。单片机A/D转换参考电压选择外部3.3V,由MAX6013提供。
考虑到无线数据的发送与接收特点,故选用Nordic 公司的nRF2401芯片。nRF2401是单片射频收发芯片,工作于2.4GHz~2.5GHz ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片功耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA。其独有的DuoCeiver技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。nRF2401使用跳频技术,在2400MHz~2527MHz之间设立了128个频道(每个频道带宽1MHz),频道间的切换时间小于200ms。此外,nRF2401内置CRC编解码模块,可以在不增加编程难度的条件下减小误码率。
无线数据接收后,要进行D/A转换,供示波器观看;考虑到数据的采集精度要求,故采用了 MAX5591作为转换器件,一方面可以方便地与C8051F021单片机SPI接口连接,另一方面,它是12位DAC,与采集端的ADC匹配,可减小转换误差。
无线数据接收到终端后,要求能直观地观看,并且可以对现场的数据采集次数、采集启停时间进行控制,故需要将数据传到PC,进行显示;同时,通过人机界面,对现场进行远程控制。PC采用VC++编写程序,利用NI 的虚拟示波器和其它控件实现友好的人机界面,数据显示、存储和打印功能。
系统中的主要软件模块
系统软件主要由上位机软件和下位机软件组成。
上位机软件主要实现与单片机通信、波形显示、数据存储、数据回放、打印等功能。下位机的主要功能有:系统初始化、数据采集(A/D转换)、无线数据发射、无线数据接收、数据D/A转换、与PC串口通信等。下面重点介绍下位机的无线发射与接收部分软件。
无线数据收发主要通过对nRF2401进行操作实现,包括器件配置、发送数据、接收数据等。nRF2401的工作模式通过引脚PWR_UP、CE和CS选择。在RX/TX模式下,有两种工作方式:ShockBurs和Direct Mode。本系统选用了ShockBurst模式,这种模式下需要配置的内容有:接收数据长度、接收通道地址、CRC校验、工作方式、发送频率、传送速率、接收与发送等。需要15字节的配置内容,下面给出了16进制的配置内容:0x80,0x80,0x00,0xcc,0xcc,0xcc,0x00,0xcd,0xcd,0xcd,0xcd,0x83,0x4f,0x05。
难点分析及解决方法
nRF2401半双工通信方式与C8051全双工通信接口的转换
在数据的采集端,单片机与射频模块是双向通信,可以直接采用单片机自带的SPI 接口与射频模块单向通信,包括配置射频模块的工作方式、接收通道地址、接收数据长度、接收频率、发送功率等参数和要发送的采集数据;当单片机要读取远端发送的控制命令时,要将SPI模式关闭,同时将MOSI、DR1端口定义为输入方式,然后将射频模块接收的控制命令读到单片机内部,并根据控制命令进行相应的操作,如采集通道选择、采集次数设定、开始采集、停止采集、发送数据等。
表1 实验数据表
在接收端,单片机和射频模块之间也是双向通信,单片机首先关闭SPI 模式,将MISO定义为输入模式,通过模拟的SPI 操作,对射频模块进行配置;当有控制命令要发送时,仍将MISO端口定义为输出模式,将射频模块配置为发送模式,将控制命令发送到数据采集终端;当要接收采集终端传来的数据时,首先将射频模块配置为接收模式,然后打开SPI 功能,利用单片机的SPI接口,将数据读到单片机内部。
这样,就完成了射频模块的半双工通信接口与单片机全双工通信接口的转换。
单片机与MAX5591之间的SPI接口通信
C8051单片机的SPI 操作时序不能满足MAX5591的时序要求。要使单片机和MAX5591之间进行数据传输,必须根据MAX5591的时序要求将单片机的SPI时序进行转换。
实验结果及分析总结
实验
结果
现场模拟电压信号通过12位ADC转换为数字量,通过无线方式传送到远端监控室,一方面通过DAC转换为模拟量,供示波器观看;另一方面,通过RS-232传送到PC进行显示、存储和打印。表1是实验数据。
分析总结
从试验数据可以看到,系统实现了现场模拟电压信号的采集、无线传输以及模拟信号还原,误差不大于0.2%,满足了设计要求。同时系统还存在着不足之处:在数据量加大,传输速率为1MHz时,偶尔会出现数据丢失现象;当被测信号频率大于500Hz的时候,信号复现时会出现波形失真。
系统实现了远端现场采集8路人体生理信号,无线传送到监控中心并复现现场信号的功能。实验证明,系统在250Kbps速率下无线传输距离可达50米,采集信号误差低于0.5% 。数据传输中采用了16位CRC校验,降低了误码率。该系统已经在某医疗器械上得到应用。经改造,系统可以采集现场的数字量和一些开关量,实现设备状态监测和开关量控制等。
结语
本文采用软件切换的方式实现了半双工器件与全双工器件的通讯转换,采用软件模拟SPI操作,解决了多SPI器件之间的通信协议匹配问题。