2.2 下位机固件程序设计
下位机固件程序主要实现主控制器经I2C控制AD5933,E2PROM的存储,以及PCA9535的控制,通过USB与上位机通信,以及总的协调控制。
2.2.1 AD5933控制
该部分软件的主要是控制AD5933进行频率扫描并获取阻抗,测量温度等。AD5933的初始化设置参数由PC主机应用程序通过USB接口传递至下位机,下位机解析指令再通过I2C接口写入AD5933片内寄存器。
程序流程如图4所示:
图4 AD5933控制部分工作流程
2.2.2 USB数据通信
USB数据通信部分需要完成的任务包括:
(1)由主机向下位机发送各种控制命令,用于传输配置参数、启动各种操作等,并获取下位机当前的工作状态;
(2)当下位机完成扫频或温度测量时,由PC机通过USB读取测量结果。
2.3 主机设备驱动程序设计
主机端的设备驱动程序为WDM类型。USB设备的总线驱动程序主要由操作系统提供,本设计中编写的是功能驱动程序,基本组成包括:驱动程序入口例程(DriverEntry)、 即插即用例程、分发例程、 电源管理例程、卸载例程。其中分发例程主要用于处理用户软件发出的各种I/O请求,并为用户提供操纵设备的接口。用户的Win32应用程序将通过分发例程来与特定的设备进行通信。
2.4主机端应用程序设计
主机端应用程序提供了一个人机交互的界面,用于客户控制系统硬件设备,读取下位机的各种测量结果并进行分析计算,然后以图形化的方式予以表现。主要包括USB设备接口、界面控制、校准处理、数据分析、数据存储几个功能模块。
2.4.1 AD5933的校准处理
根据AD5933原理特性,在阻抗测量时首先必须确定阻抗的范围和测试频率范围,并进行校准,通常的校准方法是选择待测阻抗范围的中点值为校准电阻值,将校准频率设定为测试频率范围的中点,在该频点计算相应的幅度因子。但是实验中发现随着频率的变化,幅度因子的值会逐渐产生偏差。
由于考虑到每次扫频的最大点数不是很多(511个),在应用程序中,本设计采用了逐点校准的方法,即对于确定的扫频范围和间隔,使用校准电阻经过扫频,测量计算每个频率点的幅度因子,并存放在一个校准数组中,从而很好的减小了该频率范围内幅度因子的偏差,在实验中取得了较好的效果
3.实验结果
3.1 对人体左上肢+躯干+右下肢的阻抗进行测量
测量结果如图。
图5 人体阻抗测量结果
上述测量结果包含了两个测量结果,上面的曲线代表了人体阻抗模值随频率变化的情况,下面的曲线代表了人体阻抗相位随频率变化的情况,实验中频率变化的范围取为5KHz-100KHz,步进频率设为在1KHz。由图中可以发现出人体左上肢+躯干+右下肢的总阻抗在850Ω(5KHz处)到400Ω(100KHz)之间,且总阻抗值随着激励信号频率的升高而下降,与人体阻抗信息的常识是吻合的,实验结果也验证了本设计的有效性,图形化的界面也使得本设计使用操作方便,结果一目了然。测量的阻抗信息经过算法的计算,则可以测定人体的成分组成,比如脂类成分的含量多少等等[8]。
3.2 可靠性测试
由于人体阻抗在频率50KHz的阻值在200-800欧之间,因此选取如下表所示的电阻,利用本设计测量电阻值与使用惠普4284A型LCR分析仪测量结果做一个对比:
表1 测量电阻结果
从表1可以看出本设计测量仪器在测量过程中精度误差控制在1%以内。
4.结论
本文分析了基于USB2。0的小型生物阻抗分析仪硬件原理结构,同时分析了上位机显示控制软件、USB驱动程序以及嵌入式下位机固件软件的构建和实现。该阻抗分析仪采用四电极法的激励前端,并使用了高集成度的阻抗分析芯片,不仅在成本得到了有效控制,而且在测试结果的精度上有不错的表现。USB2。0接口的采用使得该仪器具有即插即用,测量迅速准确等优点,另外使用了隔离技术也保证测试人体的安全。总之,本文在小型化生物阻抗分析仪器的设计上提供了一个新的思路和较好的构建框架。