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