謝宏,萬兵,楊文璐,,夏斌,,姚楠
(上海海事大學(xué) 信息工程學(xué)院 上海 201306)
摘要:介紹了一種近紅外信號采集模塊的設(shè)計方案,它主要采用ADS1299采樣芯片,,利用FPGA的可編程邏輯控制的特點,,采用狀態(tài)機編程思想,通過編程設(shè)計A/D的讀控制時序和寫控制時序,,將采樣結(jié)果實時保存在雙口RAM里,,并通過NiosII軟核處理器進行控制,從而實現(xiàn)高精度多通道A/D采樣系統(tǒng)采集模塊的設(shè)計,。通過實驗表明,,該設(shè)計是有效可行的。
關(guān)鍵詞:近紅外信號,;FPGA,;NIOSII;ADS1299,;A/D采集模塊,;狀態(tài)機
0引言
21世紀(jì)是生物科學(xué)與腦科學(xué)的時代,功能近紅外光譜技術(shù)(Functional NearInfrared Spectroscopy, FNIRS)是一種新興的腦功能檢測技術(shù),,它利用近紅外光波段700-900 nm在大腦中傳播的吸收特性,能夠提供基于血紅蛋白濃度變化的血液動力學(xué)信息,,反映大腦皮質(zhì)的血氧代謝狀況,,可用于腦功能活動的檢測。相比于傳統(tǒng)腦電信號(EEG)的檢測方法,,它具有高的時間分辨率,、實時性、抗干擾性以及高穩(wěn)定性等優(yōu)點[1],。
目前的腦功能信號采集設(shè)備的體積往往較大,,只能用于固定場所,不便于實時信號獲取,,不能用于突發(fā)狀況,,因此急需一種便捷式腦功能信號采集設(shè)備。在便捷式腦功能信號采集方面,,國外研究較早,,技術(shù)比較成熟,已做出產(chǎn)品,,但售價昂貴,。國內(nèi)方面大多處于數(shù)據(jù)處理、特征提取和應(yīng)用研究上,對相關(guān)儀器的研發(fā)偏少,,更沒能開發(fā)出相關(guān)的系統(tǒng)[2],,因此研究便捷式腦功能信號采集的設(shè)備具有重要的意義。
為了完整反映腦部的不同區(qū)域活動情況,,需要同時采集多路數(shù)據(jù),,因此對信號處理的實時性、抗干擾性與精度有很高的要求,,而ADS1299的8路低噪聲24位同時采樣的特性能很好地滿足了這一需求,。它是一款常用腦電信號的采集芯片,由于近紅外信號比腦電信號穩(wěn)定得多且受到的干擾較小,,因此同樣也適合近紅外信號的采集,,在同等條件下,采集的數(shù)據(jù)更加準(zhǔn)確可靠,,而且高度集成,,其體積小、功耗低等優(yōu)點對便捷式系統(tǒng)的設(shè)計十分的有利[3],。在主控芯片的選取中,,很多文獻都是采用單片機、ARM以及DSP作為主控制芯片,,如文獻[4],、[5]等,使其在運行速度,、數(shù)據(jù)處理,、接口靈活性以及對功能的擴展方面都有各自的局限性,往往顧此失彼,,不能兼得,,而FPGA強大的功能不但綜合了它們的優(yōu)點,而且克服了這些不足,,十分適合作為主控芯片,。因此,本文提出了一種基于ADC+FPGA+PC架構(gòu)的方案,,設(shè)計一個高度集成的便捷式近紅外光信號采集系統(tǒng),。
1總體設(shè)計
基于功能近紅外光譜技術(shù)的原理,將近紅外LED的760 nm,、850 nm波長的發(fā)射光強分別調(diào)制在0.8 KHz和1.2 KHz的正弦波上,,實現(xiàn)了兩個波長的頻分復(fù)用,而在不同通道之間,,采用時分復(fù)用進行傳輸,,從而實現(xiàn)近紅外信號的多路傳輸,。此后,發(fā)射出的近紅外信號經(jīng)過大腦反射后通過光電轉(zhuǎn)換芯片轉(zhuǎn)換為電信號,,再經(jīng)過預(yù)處理(阻抗匹配和低通濾波)后,,進入集成模擬前端。根據(jù)采集的信號頻率和奈奎斯特采樣定理,,TI公司的A/D轉(zhuǎn)換芯片ADS1299的250~16 kS/s的采樣速度能夠很好地滿足要求,,24位的極高采樣精度也大大降低了對信號預(yù)處理的要求,且信號穩(wěn)定,無需采用差分輸入方式,。系統(tǒng)采用Altera公司的FPGA芯片EP2C20F484C7作為主控芯片,,利用硬件描述語言(VHDL)將GPIO口配置成通用串行SPI口,用SPI與ADS1299進行通信,。在FPGA內(nèi)部配置了一個雙口的RAM,,用于實時存儲ADS1299的輸出結(jié)果。FPGA內(nèi)部采用Avalon_MM總線進行通信,,CPU采用NIOSII軟核處理器,,處理后的數(shù)據(jù)通過UART總線傳輸至PC。其系統(tǒng)原理框圖如圖1所示,。
2FPGA控制ADS1299的實現(xiàn)
2.1ADC與FPGA接口模塊設(shè)計
2.1.1SPI接口控制原理
串行外圍設(shè)備接口(Serial Peripheral Interface,,SPI)是一種高速、全雙工,、同步的通信總線,。它僅需四條信號線,不僅僅節(jié)約了管腳,,而且對PCB的布局十分有利,。正是由于這種簡單易用的特性,許多公司的芯片都集成了這種通信協(xié)議,。而ADS1299正是采用了這種協(xié)議[6]。
ADS1299的SPI接口由四條信號線組成,,分別定義為CS,、SCLK、DIN和DOUT,。其中CS是芯片的片選信號,,只有CS有效時(一般為低電平有效),對芯片的操作才可行有效,,根據(jù)CS這一特性,,可以在同一總線上連接多個SPI設(shè)備,而使其數(shù)據(jù)的傳輸不產(chǎn)生沖突,。SCLK是SPI同步時鐘信號,,該信號多由主機產(chǎn)生,,數(shù)據(jù)信號往往在該時鐘的上升沿或下降沿逐位進行傳輸。DIN和DOUT是主從機進行通信的數(shù)據(jù)信號,,DIN即主機的輸入或者說是從機的輸出,,DOUT即主機的輸出或者說是從機的輸入。SPI的工作模式有兩種:主模式和從模式,。SPI總線可以配置成單主單從,、單主多從和互為主從三種通信方式。在設(shè)計中,,將FPGA作為SPI的主機,,ADS1299作為從機,使其處于單主單從的工作模式,。其中的信號CS和SCLK是由FPGA內(nèi)部信號控制產(chǎn)生的,。
圖2是FPGA的SPI組件的內(nèi)部結(jié)構(gòu)。SPI組件通過Avalone總線和中斷請求信號irq與NIOSII處理器相連,。內(nèi)部也有一個divisor寄存器,,也是對其輸入工作時鐘進行分頻得到最終與外設(shè)接口的時鐘sclk。rxdata和txdata寄存器用于NIOSII處理器讀寫收發(fā)數(shù)據(jù),,與它們直接接口的還有一個串并轉(zhuǎn)換的移位寄存器shifin和一個并串轉(zhuǎn)換的移位寄存器shifout,。NIOSII可以從status寄存器讀取當(dāng)前SPI組件的狀態(tài),slave select寄存器主要是在擁有多個從機時控制其片選,。
2.1.2有限狀態(tài)機編程思想與時序程序設(shè)計
有限狀態(tài)機是一類很重要的時序電路,,是許多數(shù)字電路的核心部分,且有限狀態(tài)機的編程設(shè)計具有高速性,、可靠性,、穩(wěn)定性的特點。因此,,對于ADC與FPGA接口模塊與雙口RAM讀寫模塊,,將采取有限狀態(tài)機進行編程。與傳統(tǒng)的用CPU按照指令逐條運行的操作方式相比,,采用狀態(tài)機的形式,,可以在每個狀態(tài)中并行同步完成許多運算和控制操作,而且一般用狀態(tài)機構(gòu)成的硬件系統(tǒng)比對應(yīng)的用CPU按照指令完成同樣功能的系統(tǒng)的工作速度要高出3~5個數(shù)量級,,是其高速性的具體體現(xiàn),。在可靠性與穩(wěn)定性方面,由于其運行不依賴軟件指令逐條執(zhí)行,,且是由FPGA中的純硬件電路構(gòu)成,,因此不存在CPU運行軟件過程中的許多缺陷,具有很高的可靠性與穩(wěn)定性[7],。
圖3是ADS1299串行接口的狀態(tài)轉(zhuǎn)換圖,。將其劃為24個有限狀態(tài),,S_Idle 為空閑狀態(tài),S_CS,、S_Wreg_1,、S_Wreg_2、S_ID,、S_config1,、S_config2、S_config3,、S_Loff,、S_CH1_set、S_CH2_set,、S_CH3_set,、S_CH4_set、S_CH5_set,、S_CH6_set,、S_CH7_set、S_CH8_set,、S_Bias_sensp,、S_Bias_sen、S_Loff_sensp,、S_Loff_sensn,、S_Loff_fli、S_Loff_statp,、S_Loff_statn,、S_Gpio、S_Misc1,、Misc2,、S_config4為ADC內(nèi)部寄存器配置的初始狀態(tài)。S_Start_c為指令控制ADC起始的轉(zhuǎn)換狀態(tài)(ADC由指令進行控制,,此時芯片上START引腳接低電平),。S_Start為ADC數(shù)據(jù)轉(zhuǎn)換狀態(tài),控制ADC的數(shù)據(jù)轉(zhuǎn)換,。S_DRDY是數(shù)據(jù)已經(jīng)轉(zhuǎn)換好,可以輸出的使能狀態(tài),,低電平有效,,在輸出時鐘的第一個上升沿時拉高。S_CS_Assert為片選狀態(tài),。S_RDATA控制其進入單口傳輸模式進行數(shù)據(jù)傳輸(ADC內(nèi)部數(shù)據(jù)傳輸有兩種模式:持續(xù)傳輸模式與單口傳輸模式,,其中單口傳輸模式更適合腦電信號的傳輸),。S_STAT、S_CH1,、S_CH2,、S_CH3、S_CH4,、S_CH5,、S_CH6,S_CH7,、S_CH8為ADC內(nèi)部狀態(tài)寄存器與八通道的數(shù)據(jù)輸出狀態(tài),。S_Stop_c為控制轉(zhuǎn)換的停止?fàn)顟B(tài),此時ADC停止工作,。
2.2雙口RAM的讀寫
所謂的雙口RAM就是在一個SRAM存儲器上具有兩套完全獨立的數(shù)據(jù)線,、地址線和讀寫控制線,其最大的特點是存儲數(shù)據(jù)共享,,并允許兩個獨立的CPU或控制器同時對該存儲器進行隨機性的讀寫訪問,,即可以同時異步地對存儲器進行讀寫[8]?;谝陨咸攸c,,可以將采樣結(jié)果實時儲存在雙口RAM里,處理器可實時讀取采樣結(jié)果,,這樣能夠不占用處理器資源,,大大提高了處理器的工作效率[9]。圖4是簡單的雙口RAM的接口配置電路,。
根據(jù)雙口RAM的工作原理和讀寫時序要求,。其時序波形圖如圖5所示。
2.3結(jié)果分析
整個設(shè)計是在Altera公司提供的Quartus II,、NIOS II Software Build Tools for Eclipse以及Modelsim等軟件平臺上完成的,,整體采用VHDL硬件語言設(shè)計,F(xiàn)PGA通過Avalon_mm總線與各模塊進行通信,,外部通過UART與PC之間進行數(shù)據(jù)交互,。
通過Modelsim仿真測試,測得用狀態(tài)機編寫ADS1299與FPGA接口的部分仿真時序如圖6所示,。
雙口RAM的讀寫時序如圖7所示,。
3結(jié)論
本文設(shè)計的基于FPGA 控制、雙口RAM存儲的高速數(shù)據(jù)采集系統(tǒng)具有可靠性高,、數(shù)據(jù)不丟失,、抗干擾性強、便于數(shù)據(jù)傳輸,、存儲,、顯示和處理及可擴展性好等優(yōu)點,。其相比于傳統(tǒng)采集系統(tǒng)設(shè)計,一方面,,簡化了硬件電路,;另一方面,減少了對處理器資源的占用,,對提高處理器的效率具有很大意義,。實驗表明,系統(tǒng)的各項指標(biāo)均達到要求,,具有很強的工程實用價值,。
參考文獻
[1] 張巖.基于近紅外光譜技術(shù)的腦功能活動信號提取方法研究[D].哈爾濱:哈爾濱工業(yè)大學(xué), 2011.
?。?] 謝宏,王光明,,姚楠,等.可穿戴式的功能近紅外光譜成像系統(tǒng)的前端設(shè)計[J].微型機與應(yīng)用,,2015,,34(10):29 31.
[3] TI.ADS1299EEG FE user’s guide[OL].(2012 01 XX)[2016 03 28]http://focus.ti.com.cn/cn/lit/ds/syml ink/slau443.pdf.
?。?] 孫廣金.基于ADS1299的新型腦電采集系統(tǒng)設(shè)計[J].機械與電子,2014(1):73 74.
?。?] 宋勐翔,陳蘭嵐.基于ADS1298與STM32F407的心電采集與顯示系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2015(13):141 144.
?。?] 吳厚航.深入淺出玩轉(zhuǎn)FPGA[M].北京:北京航空航天大學(xué)出版社,,2010.
[7] 王小進, 涂煜. 基于AD7606的繼電保護數(shù)據(jù)處理設(shè)計[J].船電技術(shù),2014,34(9):46 49.
?。?] 謝宏,李亞男,夏斌,等.基于ADSl299的可穿戴式腦電信號采集系統(tǒng)前端設(shè)計[J].電子技術(shù)應(yīng)用,,2014,40(3):86 89.
[9] 唐永輝,徐鳴謙,烏建中.雙口RAM在嵌入式多CPU系統(tǒng)中的應(yīng)用[J].制冷空調(diào)與電力機械,2005(1):49 52.