李畢鵬,謝宏,夏斌,姚楠,楊文璐
?。ㄉ虾:J麓髮W(xué) 信息工程學(xué)院,上海 201306)
摘要:設(shè)計(jì)了一套新型便攜式腦功能近紅外信號(hào)采集傳輸系統(tǒng)。根據(jù)功能近紅外光譜技術(shù)(functional Near-infrared Spectroscopy, fNIRS)檢測(cè)腦血氧濃度原理,使用雙波長(zhǎng)的LED和光電傳感器作為探頭,可以對(duì)腦功能近紅外信號(hào)進(jìn)行實(shí)時(shí)采集傳輸,并對(duì)數(shù)據(jù)進(jìn)行顯示保存。該系統(tǒng)下位機(jī)采用STM32F407單片機(jī)和TI公司的ADS1299模擬前端集成構(gòu)成,體積小,功耗低,精度高,通過USB HID協(xié)議與上位機(jī)進(jìn)行數(shù)據(jù)傳輸,方便快速,避免了驅(qū)動(dòng)程序的開發(fā)。上位機(jī)程序利用VS2010進(jìn)行開發(fā),調(diào)用與USB HID設(shè)備相關(guān)的Windows API函數(shù),實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的通信。
關(guān)鍵詞:腦功能近紅外信號(hào);功能近紅外光譜技術(shù);STM32F407;ADS1299;USB HID協(xié)議
0引言
功能近紅外光譜技術(shù)(functional Nearinfrared Spectroscopy,fNIRS)作為一種非侵入式腦功能成像技術(shù),不僅具有安全、體積小、易于與其他設(shè)備集成等特點(diǎn),還具有較高的時(shí)間、空間分辨率等優(yōu)點(diǎn),可以對(duì)腦血氧進(jìn)行無損、實(shí)時(shí)、連續(xù)的檢測(cè),在醫(yī)療、康復(fù)、運(yùn)動(dòng)生理等領(lǐng)域的應(yīng)用研究越來越受到重視[12]。
信號(hào)采集傳輸模塊是便攜式fNIRS系統(tǒng)的重要組成部分,藍(lán)牙、ZigBee、WiFi、RF等無線數(shù)字傳輸技術(shù)被廣泛采用。如美國(guó)fNIR Devices公司的fNIR 1100W系統(tǒng)采用的是ZigBee技術(shù)日本日立公司2009年發(fā)布的11通道WOT系統(tǒng)采用的是802.11b無線局域網(wǎng),日本DynaSense與荷蘭Artinis公司分別基于藍(lán)牙技術(shù)開發(fā)了雙通道與單通道設(shè)備[2]。參考文獻(xiàn)[3]與[4]分別基于無線射頻(RF)技術(shù)(工作最高速率僅20 kb/s)與GPRS技術(shù)針對(duì)肌氧檢測(cè)的便攜式設(shè)備進(jìn)行了研制。參考文獻(xiàn)[5]的設(shè)計(jì)中采用低功耗的集成有802.11協(xié)議(WiFi)的無線傳輸芯片GS1011對(duì)信號(hào)進(jìn)行無線傳輸。然而,對(duì)于多通道系統(tǒng)應(yīng)用以上無線傳輸技術(shù)的速率都有一定的瓶頸,例如采用802.11協(xié)議的WiFi速率為2 Mb/s,而其他的都不超過1 Mb/s,相比而言有線傳輸技術(shù)如USB2.0就更有優(yōu)勢(shì)[6]。
作為對(duì)參考文獻(xiàn)[5]中研究系統(tǒng)的補(bǔ)充,本文采用USB2.0作為有線數(shù)據(jù)傳輸方式。由于其最高傳輸速率可達(dá)480 Mb/s,可滿足多通道系統(tǒng)的需要,結(jié)合高精度的模數(shù)轉(zhuǎn)換芯片ADS1299可提高便攜式fNIRS系統(tǒng)的數(shù)據(jù)傳輸系統(tǒng)的性能。
1系統(tǒng)總框架
本文設(shè)計(jì)的系統(tǒng)中選用760 nm、850 nm波長(zhǎng)的近紅外LED作為發(fā)射光源,為提高抗干擾性分別采用頻率為0.8 kHz和1.2 kHz的正弦波作為調(diào)制信號(hào),實(shí)現(xiàn)雙波長(zhǎng)的頻分復(fù)用。由于腦功能近紅外光探頭獲取的信號(hào)比較微弱,進(jìn)行模數(shù)轉(zhuǎn)換前一般需要放大濾波等環(huán)節(jié),本文設(shè)計(jì)中模數(shù)轉(zhuǎn)換采用TI公司的低功耗ADS1299芯片,一方面其最大采樣率可達(dá)到16 kS/s,滿足對(duì)0.8 kHz和1.2 kHz調(diào)制信號(hào)采樣率的要求;另一方面該芯片各通道內(nèi)置有可編程增益放大器(PGA),最高放大倍數(shù)可達(dá)到24倍,結(jié)合24 bit的模數(shù)轉(zhuǎn)換精度,其電壓分辨率達(dá)到0.119 μV,這樣可以省去對(duì)信號(hào)的放大濾波環(huán)節(jié),簡(jiǎn)化系統(tǒng)結(jié)構(gòu),降低復(fù)雜性。控制模塊采用STM32F407,可以通過SPI總線對(duì)ADS1299進(jìn)行控制,同時(shí)將采集到的數(shù)字信號(hào)通過USB接口高速傳輸至上位機(jī)。上位機(jī)接收并存儲(chǔ)采集的數(shù)據(jù),以便進(jìn)一步處理分析。完整的系統(tǒng)框圖如圖1所示。
2硬件設(shè)計(jì)
2.1模擬前端ADS1299
本系統(tǒng)的模擬前端采用的是芯片ADS1299,其原本是為腦電信號(hào)采集應(yīng)用而設(shè)計(jì)的,具有低噪聲、低功耗、多通道、高精度等優(yōu)點(diǎn),主要特性參見參考文獻(xiàn)[7]。其內(nèi)部結(jié)構(gòu)框圖如圖2所示。
ADS1299與外界通信是通過SPI接口來完成的,這就需要配置主機(jī)符合從機(jī)的時(shí)序協(xié)議,圖3是ADS1299的SPI接口工作時(shí)序圖。
圖3中,CS是SPI接口的片選信號(hào),SCLK是主機(jī)提供通信時(shí)鐘的信號(hào)線,DIN是數(shù)據(jù)輸入端口,DOUT是數(shù)據(jù)輸出端口。ADS1299芯片的數(shù)據(jù)輸入輸出是邊沿工作方式,存在信號(hào)建立時(shí)間(setup time)和信號(hào)保持時(shí)間(hold time)。從其工作時(shí)序圖可知,ADS1299芯片在上升沿時(shí)輸出數(shù)據(jù),下降沿時(shí)鎖存數(shù)據(jù), SPI接口工作模式選用模式1(CPOL=0,CPHA=1)。確定ADS1299從機(jī)的SPI接口的工作模式后,相應(yīng)配置好主機(jī)的工作模式,相互之間就可以通過SPI通信。
2.2MCU控制實(shí)現(xiàn)
選用ST的STM32F407芯片作為整個(gè)系統(tǒng)的MCU,該芯片是以CortexM4為內(nèi)核的32位微處理器,支持USB OTG HS/FS,高性能、具有豐富的外設(shè)。對(duì)于模擬前端ADS1299,MCU作為主機(jī)。當(dāng)系統(tǒng)上電后, 芯片ADS1299通過SPI接口與主機(jī)模塊進(jìn)行通信,實(shí)現(xiàn)數(shù)據(jù)發(fā)送接收。該接口包含4個(gè)信號(hào)線:CS、SCLK、DIN、DOUT。在與主機(jī)通過SPI通信時(shí),CS信號(hào)必須為低電平。由于從機(jī)ADS1299 SPI接口工作模式選用模式1,與之對(duì)應(yīng)設(shè)置好MCU工作模式,主要線路連接如圖4所示。
主要線路連接圖根據(jù)信號(hào)采集的具體要求,通過MCU配置ADS1299的多路選擇器各個(gè)輸入端、放大器(PGA1PGA8)的放大倍數(shù)和A/D轉(zhuǎn)換器(ADC1ADC8)的采樣頻率。當(dāng)一次采集完成時(shí),DRDY引腳變?yōu)榈碗娖?,?shù)據(jù)準(zhǔn)備完畢,MCU可以通過SPI接口來讀取數(shù)據(jù)。
而對(duì)于PC上位機(jī),MCU作為從機(jī),采用USB與上位機(jī)進(jìn)行通信,接收到數(shù)據(jù)后,將其轉(zhuǎn)化成USB數(shù)據(jù)包傳送給上位機(jī)。
3軟件程序設(shè)計(jì)
3.1下位機(jī)程序設(shè)計(jì)
本采集系統(tǒng)每通道的最大采樣率為16 kS/s,采樣精度24 bit,若通道數(shù)為8,則數(shù)據(jù)傳輸速度為3 072 kb/s,采用普通的串口并不能實(shí)時(shí)有效地傳輸近紅外腦信號(hào)數(shù)據(jù),因此系統(tǒng)選用USB來實(shí)現(xiàn)下位機(jī)與PC的通信。
人機(jī)接口設(shè)備(Human Interface Device,HID)是USB設(shè)備中常用的設(shè)備類型,將程序設(shè)計(jì)為HID類型,可以省去比較復(fù)雜的USB驅(qū)動(dòng)程序的編寫,直接利用Windows內(nèi)置的HID驅(qū)動(dòng)程序與設(shè)備進(jìn)行通信。HID設(shè)備交換的數(shù)據(jù)儲(chǔ)存在報(bào)表(Report)的結(jié)構(gòu)體中,主機(jī)通過發(fā)送和請(qǐng)求報(bào)表來傳送和接收數(shù)據(jù)[8]。HID設(shè)備全速端點(diǎn)速度可達(dá)64 KB/s,高速端點(diǎn)速度可達(dá)24.576 MB/s,滿足系統(tǒng)傳輸速率要求。
下位機(jī)程序是基于ST公司提供的USB驅(qū)動(dòng)庫(kù)中的HID例程經(jīng)修改移植到STM32F407開發(fā)板上的。將單片機(jī)描述成PC主機(jī)能識(shí)別的設(shè)備,待設(shè)備通過USB連接到PC主機(jī)后,主機(jī)會(huì)發(fā)送Get_Descriptor請(qǐng)求讀取HID設(shè)備的描述符。枚舉完成后,初始化ADS1299,將采集到的數(shù)據(jù)首先放在USB緩沖區(qū),通過使能USB端點(diǎn)將數(shù)據(jù)發(fā)送到上位機(jī),基本流程如圖5所示。
3.2上位機(jī)程序設(shè)計(jì)
上位機(jī)程序設(shè)計(jì)使用VS2010開發(fā),通過調(diào)用Windows API函數(shù),實(shí)現(xiàn)與HID設(shè)備的通信。Windows系統(tǒng)提供有幾千個(gè)API函數(shù),作為應(yīng)用程序和操作系統(tǒng)的接口,與HID相關(guān)的API函數(shù)被封裝在hid.dll、setuppapi.dll文件中[8]。上位機(jī)程序的開發(fā)實(shí)現(xiàn)數(shù)據(jù)采集傳輸,包含數(shù)據(jù)發(fā)送、顯示等功能,其基本流程如圖6所示。
程序流程中,打開USB,查找特定的HID設(shè)備具體過程如下:(1)調(diào)用HidD_GetHidGuid函數(shù),獲得USB設(shè)備的GUID;(2)調(diào)用SetupDiGet ClassDevs函數(shù),獲得全部的HID信息;(3)調(diào)用SetupDiEnum DeviceInterfaces函數(shù),識(shí)別特定的HID設(shè)備接口;(4)調(diào)用SetupDiEnumDeviceInterfaceDetail函數(shù),獲取一個(gè)指向該設(shè)備的路徑名;(5)調(diào)用CreateFile,獲取設(shè)備句柄;(6)調(diào)用HidD_GetAttributes函數(shù),獲取特定HID的廠商ID、產(chǎn)品ID。
4數(shù)據(jù)抓取測(cè)試
系統(tǒng)搭建完成后,可以利用BusHound對(duì)數(shù)據(jù)進(jìn)行抓取,它是一款專用于各種總線數(shù)據(jù)包監(jiān)視和控制的軟件,可以采集到數(shù)據(jù)發(fā)送過程。經(jīng)測(cè)試上位機(jī)向下位機(jī)發(fā)送采集指令,下位機(jī)可以通過USB端點(diǎn)將采集到的數(shù)據(jù)發(fā)送到PC端。BusHound數(shù)據(jù)采集顯示界面如圖7所示。
以上數(shù)據(jù)抓取測(cè)試,說明數(shù)據(jù)可以傳輸成功。待數(shù)據(jù)傳輸完成后,點(diǎn)擊BusHound界面上Save保存為TXT格式至硬盤,供后續(xù)分析。
5結(jié)論
腦功能近紅外信號(hào)極其微弱,是不容易被檢測(cè)到的[9]。本文基于ADS1299的模擬前端24位ADC技術(shù),能夠?qū)δM信號(hào)進(jìn)行準(zhǔn)確高分辨采樣??刂破鱏TM32F407能夠通過SPI實(shí)現(xiàn)對(duì)ADS1299的控制,并將前端采集到的腦功能近紅外信號(hào)通過USB2.0快速傳送到上位機(jī)PC端,實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)傳輸、顯示,提高了系統(tǒng)數(shù)據(jù)傳輸速度,增強(qiáng)了系統(tǒng)的安全性、便攜性,在便攜式醫(yī)療設(shè)備中會(huì)得到廣泛應(yīng)用。
參考文獻(xiàn)
?。?] 錢志余, 李韙韜. 功能近紅外光譜技術(shù)(fNIRs)臨床應(yīng)用綜述[J]. 生命科學(xué)儀器, 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.
?。?] 劉方, 駱清銘, 李鵬程,等. 基于RF無線數(shù)據(jù)傳輸技術(shù)的近紅外血氧監(jiān)測(cè)儀的研制[J]. 中國(guó)醫(yī)療器械雜志, 2003(3):162166.
[4] 周娟. 基于RF的近紅外無線肌氧檢測(cè)系統(tǒng)的研制[D]. 武漢:華中科技大學(xué), 2008.
?。?] 謝宏,王光明,姚楠,等. 可穿戴式的功能近紅外光譜成像系統(tǒng)的前端設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用, 2015, 34(10):2933.
?。?] 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用于生物電勢(shì)測(cè)量的低噪聲、8通道、24位模擬前端[EB/OL].(201207xx)[20160228].http://www.ti.com.cn/cn/lit/ds/symlink/ads1299.pdf.
?。?] 周洪利. 計(jì)算機(jī)高級(jí)接口技術(shù)[M]. 北京:清華大學(xué)出版社, 2008.
?。?] 徐剛, 李小俚, 劉曉民. 簡(jiǎn)易腦功能近紅外光譜系統(tǒng)設(shè)計(jì)[J]. 光譜學(xué)與光譜分析,2015,35(2):552556.