李毕鹏,谢宏,夏斌,姚楠,杨文璐
(上海海事大学 信息工程学院,上海 201306)
摘要:设计了一套新型便携式脑功能近红外信号采集传输系统。根据功能近红外光谱技术(functional Near-infrared Spectroscopy, fNIRS)检测脑血氧浓度原理,使用双波长的LED和光电传感器作为探头,可以对脑功能近红外信号进行实时采集传输,并对数据进行显示保存。该系统下位机采用STM32F407单片机和TI公司的ADS1299模拟前端集成构成,体积小,功耗低,精度高,通过USB HID协议与上位机进行数据传输,方便快速,避免了驱动程序的开发。上位机程序利用VS2010进行开发,调用与USB HID设备相关的Windows API函数,实现上位机与下位机之间的通信。
关键词:脑功能近红外信号;功能近红外光谱技术;STM32F407;ADS1299;USB HID协议
0引言
功能近红外光谱技术(functional Nearinfrared Spectroscopy,fNIRS)作为一种非侵入式脑功能成像技术,不仅具有安全、体积小、易于与其他设备集成等特点,还具有较高的时间、空间分辨率等优点,可以对脑血氧进行无损、实时、连续的检测,在医疗、康复、运动生理等领域的应用研究越来越受到重视[12]。
信号采集传输模块是便携式fNIRS系统的重要组成部分,蓝牙、ZigBee、WiFi、RF等无线数字传输技术被广泛采用。如美国fNIR Devices公司的fNIR 1100W系统采用的是ZigBee技术日本日立公司2009年发布的11通道WOT系统采用的是802.11b无线局域网,日本DynaSense与荷兰Artinis公司分别基于蓝牙技术开发了双通道与单通道设备[2]。参考文献[3]与[4]分别基于无线射频(RF)技术(工作最高速率仅20 kb/s)与GPRS技术针对肌氧检测的便携式设备进行了研制。参考文献[5]的设计中采用低功耗的集成有802.11协议(WiFi)的无线传输芯片GS1011对信号进行无线传输。然而,对于多通道系统应用以上无线传输技术的速率都有一定的瓶颈,例如采用802.11协议的WiFi速率为2 Mb/s,而其他的都不超过1 Mb/s,相比而言有线传输技术如USB2.0就更有优势[6]。
作为对参考文献[5]中研究系统的补充,本文采用USB2.0作为有线数据传输方式。由于其最高传输速率可达480 Mb/s,可满足多通道系统的需要,结合高精度的模数转换芯片ADS1299可提高便携式fNIRS系统的数据传输系统的性能。
1系统总框架
本文设计的系统中选用760 nm、850 nm波长的近红外LED作为发射光源,为提高抗干扰性分别采用频率为0.8 kHz和1.2 kHz的正弦波作为调制信号,实现双波长的频分复用。由于脑功能近红外光探头获取的信号比较微弱,进行模数转换前一般需要放大滤波等环节,本文设计中模数转换采用TI公司的低功耗ADS1299芯片,一方面其最大采样率可达到16 kS/s,满足对0.8 kHz和1.2 kHz调制信号采样率的要求;另一方面该芯片各通道内置有可编程增益放大器(PGA),最高放大倍数可达到24倍,结合24 bit的模数转换精度,其电压分辨率达到0.119 μV,这样可以省去对信号的放大滤波环节,简化系统结构,降低复杂性。控制模块采用STM32F407,可以通过SPI总线对ADS1299进行控制,同时将采集到的数字信号通过USB接口高速传输至上位机。上位机接收并存储采集的数据,以便进一步处理分析。完整的系统框图如图1所示。
2硬件设计
2.1模拟前端ADS1299
本系统的模拟前端采用的是芯片ADS1299,其原本是为脑电信号采集应用而设计的,具有低噪声、低功耗、多通道、高精度等优点,主要特性参见参考文献[7]。其内部结构框图如图2所示。
ADS1299与外界通信是通过SPI接口来完成的,这就需要配置主机符合从机的时序协议,图3是ADS1299的SPI接口工作时序图。
图3中,CS是SPI接口的片选信号,SCLK是主机提供通信时钟的信号线,DIN是数据输入端口,DOUT是数据输出端口。ADS1299芯片的数据输入输出是边沿工作方式,存在信号建立时间(setup time)和信号保持时间(hold time)。从其工作时序图可知,ADS1299芯片在上升沿时输出数据,下降沿时锁存数据, SPI接口工作模式选用模式1(CPOL=0,CPHA=1)。确定ADS1299从机的SPI接口的工作模式后,相应配置好主机的工作模式,相互之间就可以通过SPI通信。
2.2MCU控制实现
选用ST的STM32F407芯片作为整个系统的MCU,该芯片是以CortexM4为内核的32位微处理器,支持USB OTG HS/FS,高性能、具有丰富的外设。对于模拟前端ADS1299,MCU作为主机。当系统上电后, 芯片ADS1299通过SPI接口与主机模块进行通信,实现数据发送接收。该接口包含4个信号线:CS、SCLK、DIN、DOUT。在与主机通过SPI通信时,CS信号必须为低电平。由于从机ADS1299 SPI接口工作模式选用模式1,与之对应设置好MCU工作模式,主要线路连接如图4所示。
主要线路连接图根据信号采集的具体要求,通过MCU配置ADS1299的多路选择器各个输入端、放大器(PGA1PGA8)的放大倍数和A/D转换器(ADC1ADC8)的采样频率。当一次采集完成时,DRDY引脚变为低电平,数据准备完毕,MCU可以通过SPI接口来读取数据。
而对于PC上位机,MCU作为从机,采用USB与上位机进行通信,接收到数据后,将其转化成USB数据包传送给上位机。
3软件程序设计
3.1下位机程序设计
本采集系统每通道的最大采样率为16 kS/s,采样精度24 bit,若通道数为8,则数据传输速度为3 072 kb/s,采用普通的串口并不能实时有效地传输近红外脑信号数据,因此系统选用USB来实现下位机与PC的通信。
人机接口设备(Human Interface Device,HID)是USB设备中常用的设备类型,将程序设计为HID类型,可以省去比较复杂的USB驱动程序的编写,直接利用Windows内置的HID驱动程序与设备进行通信。HID设备交换的数据储存在报表(Report)的结构体中,主机通过发送和请求报表来传送和接收数据[8]。HID设备全速端点速度可达64 KB/s,高速端点速度可达24.576 MB/s,满足系统传输速率要求。
下位机程序是基于ST公司提供的USB驱动库中的HID例程经修改移植到STM32F407开发板上的。将单片机描述成PC主机能识别的设备,待设备通过USB连接到PC主机后,主机会发送Get_Descriptor请求读取HID设备的描述符。枚举完成后,初始化ADS1299,将采集到的数据首先放在USB缓冲区,通过使能USB端点将数据发送到上位机,基本流程如图5所示。
3.2上位机程序设计
上位机程序设计使用VS2010开发,通过调用Windows API函数,实现与HID设备的通信。Windows系统提供有几千个API函数,作为应用程序和操作系统的接口,与HID相关的API函数被封装在hid.dll、setuppapi.dll文件中[8]。上位机程序的开发实现数据采集传输,包含数据发送、显示等功能,其基本流程如图6所示。
程序流程中,打开USB,查找特定的HID设备具体过程如下:(1)调用HidD_GetHidGuid函数,获得USB设备的GUID;(2)调用SetupDiGet ClassDevs函数,获得全部的HID信息;(3)调用SetupDiEnum DeviceInterfaces函数,识别特定的HID设备接口;(4)调用SetupDiEnumDeviceInterfaceDetail函数,获取一个指向该设备的路径名;(5)调用CreateFile,获取设备句柄;(6)调用HidD_GetAttributes函数,获取特定HID的厂商ID、产品ID。
4数据抓取测试
系统搭建完成后,可以利用BusHound对数据进行抓取,它是一款专用于各种总线数据包监视和控制的软件,可以采集到数据发送过程。经测试上位机向下位机发送采集指令,下位机可以通过USB端点将采集到的数据发送到PC端。BusHound数据采集显示界面如图7所示。
以上数据抓取测试,说明数据可以传输成功。待数据传输完成后,点击BusHound界面上Save保存为TXT格式至硬盘,供后续分析。
5结论
脑功能近红外信号极其微弱,是不容易被检测到的[9]。本文基于ADS1299的模拟前端24位ADC技术,能够对模拟信号进行准确高分辨采样。控制器STM32F407能够通过SPI实现对ADS1299的控制,并将前端采集到的脑功能近红外信号通过USB2.0快速传送到上位机PC端,实现数据实时传输、显示,提高了系统数据传输速度,增强了系统的安全性、便携性,在便携式医疗设备中会得到广泛应用。
参考文献
[1] 钱志余, 李韪韬. 功能近红外光谱技术(fNIRs)临床应用综述[J]. 生命科学仪器, 2013, 11(3):4552.
[2] FERRARI M, QUARESIMA V. A brief review on the history of human functional nearinfrared spectroscopy (fNIRS) development and fields of application[J]. Neuroimage, 2012, 63(2): 921935.
[3] 刘方, 骆清铭, 李鹏程,等. 基于RF无线数据传输技术的近红外血氧监测仪的研制[J]. 中国医疗器械杂志, 2003(3):162166.
[4] 周娟. 基于RF的近红外无线肌氧检测系统的研制[D]. 武汉:华中科技大学, 2008.
[5] 谢宏,王光明,姚楠,等. 可穿戴式的功能近红外光谱成像系统的前端设计[J]. 微型机与应用, 2015, 34(10):2933.
[6] PIPER S K, KRUEGER A, KOCH S P, et al. A wearable multichannel fNIRS system for brain imaging in freely moving subjects[J]. NeuroImage, 2014, 85(6): 6471.
[7] TEXAS INSTRUMENTS. ADS1299用于生物电势测量的低噪声、8通道、24位模拟前端[EB/OL].(201207xx)[20160228].http://www.ti.com.cn/cn/lit/ds/symlink/ads1299.pdf.
[8] 周洪利. 计算机高级接口技术[M]. 北京:清华大学出版社, 2008.
[9] 徐刚, 李小俚, 刘晓民. 简易脑功能近红外光谱系统设计[J]. 光谱学与光谱分析,2015,35(2):552556.