近紅外光信號采集的FPGA控制接口設計與實現(xiàn)

2017-01-05 13:15

  謝宏,萬兵,楊文璐,夏斌,姚楠

 ?。ㄉ虾:J麓髮W 信息工程學院 上海 201306)

       摘要:介紹了一種近紅外信號采集模塊的設計方案,它主要采用ADS1299采樣芯片,利用FPGA的可編程邏輯控制的特點,采用狀態(tài)機編程思想,通過編程設計A/D的讀控制時序和寫控制時序,將采樣結(jié)果實時保存在雙口RAM里,并通過NiosII軟核處理器進行控制,從而實現(xiàn)高精度多通道A/D采樣系統(tǒng)采集模塊的設計。通過實驗表明,該設計是有效可行的。

  關鍵詞:近紅外信號;FPGA;NIOSII;ADS1299;A/D采集模塊;狀態(tài)機

0引言

  21世紀是生物科學與腦科學的時代,功能近紅外光譜技術(Functional NearInfrared Spectroscopy, FNIRS)是一種新興的腦功能檢測技術,它利用近紅外光波段700-900 nm在大腦中傳播的吸收特性,能夠提供基于血紅蛋白濃度變化的血液動力學信息,反映大腦皮質(zhì)的血氧代謝狀況,可用于腦功能活動的檢測。相比于傳統(tǒng)腦電信號(EEG)的檢測方法,它具有高的時間分辨率、實時性、抗干擾性以及高穩(wěn)定性等優(yōu)點[1]。

  目前的腦功能信號采集設備的體積往往較大,只能用于固定場所,不便于實時信號獲取,不能用于突發(fā)狀況,因此急需一種便捷式腦功能信號采集設備。在便捷式腦功能信號采集方面,國外研究較早,技術比較成熟,已做出產(chǎn)品,但售價昂貴。國內(nèi)方面大多處于數(shù)據(jù)處理、特征提取和應用研究上,對相關儀器的研發(fā)偏少,更沒能開發(fā)出相關的系統(tǒng)[2],因此研究便捷式腦功能信號采集的設備具有重要的意義。

  為了完整反映腦部的不同區(qū)域活動情況,需要同時采集多路數(shù)據(jù),因此對信號處理的實時性、抗干擾性與精度有很高的要求,而ADS1299的8路低噪聲24位同時采樣的特性能很好地滿足了這一需求。它是一款常用腦電信號的采集芯片,由于近紅外信號比腦電信號穩(wěn)定得多且受到的干擾較小,因此同樣也適合近紅外信號的采集,在同等條件下,采集的數(shù)據(jù)更加準確可靠,而且高度集成,其體積小、功耗低等優(yōu)點對便捷式系統(tǒng)的設計十分的有利[3]。在主控芯片的選取中,很多文獻都是采用單片機、ARM以及DSP作為主控制芯片,如文獻[4]、[5]等,使其在運行速度、數(shù)據(jù)處理、接口靈活性以及對功能的擴展方面都有各自的局限性,往往顧此失彼,不能兼得,而FPGA強大的功能不但綜合了它們的優(yōu)點,而且克服了這些不足,十分適合作為主控芯片。因此,本文提出了一種基于ADC+FPGA+PC架構(gòu)的方案,設計一個高度集成的便捷式近紅外光信號采集系統(tǒng)。

1總體設計

  基于功能近紅外光譜技術的原理,將近紅外LED的760 nm、850 nm波長的發(fā)射光強分別調(diào)制在0.8 KHz和1.2 KHz的正弦波上,實現(xiàn)了兩個波長的頻分復用,而在不同通道之間,采用時分復用進行傳輸,從而實現(xiàn)近紅外信號的多路傳輸。此后,發(fā)射出的近紅外信號經(jīng)過大腦反射后通過光電轉(zhuǎn)換芯片轉(zhuǎn)換為電信號,再經(jīng)過預處理(阻抗匹配和低通濾波)后,進入集成模擬前端。根據(jù)采集的信號頻率和奈奎斯特采樣定理,TI公司的A/D轉(zhuǎn)換芯片ADS1299的250~16 kS/s的采樣速度能夠很好地滿足要求,24位的極高采樣精度也大大降低了對信號預處理的要求,且信號穩(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所示。

圖像 001.png

2FPGA控制ADS1299的實現(xiàn)

  2.1ADC與FPGA接口模塊設計

  2.1.1SPI接口控制原理

  串行外圍設備接口(Serial Peripheral Interface,SPI)是一種高速、全雙工、同步的通信總線。它僅需四條信號線,不僅僅節(jié)約了管腳,而且對PCB的布局十分有利。正是由于這種簡單易用的特性,許多公司的芯片都集成了這種通信協(xié)議。而ADS1299正是采用了這種協(xié)議[6]。

  ADS1299的SPI接口由四條信號線組成,分別定義為CS、SCLK、DIN和DOUT。其中CS是芯片的片選信號,只有CS有效時(一般為低電平有效),對芯片的操作才可行有效,根據(jù)CS這一特性,可以在同一總線上連接多個SPI設備,而使其數(shù)據(jù)的傳輸不產(chǎn)生沖突。SCLK是SPI同步時鐘信號,該信號多由主機產(chǎn)生,數(shù)據(jù)信號往往在該時鐘的上升沿或下降沿逐位進行傳輸。DIN和DOUT是主從機進行通信的數(shù)據(jù)信號,DIN即主機的輸入或者說是從機的輸出,DOUT即主機的輸出或者說是從機的輸入。SPI的工作模式有兩種:主模式和從模式。SPI總線可以配置成單主單從、單主多從和互為主從三種通信方式。在設計中,將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寄存器,也是對其輸入工作時鐘進行分頻得到最終與外設接口的時鐘sclk。rxdata和txdata寄存器用于NIOSII處理器讀寫收發(fā)數(shù)據(jù),與它們直接接口的還有一個串并轉(zhuǎn)換的移位寄存器shifin和一個并串轉(zhuǎn)換的移位寄存器shifout。NIOSII可以從status寄存器讀取當前SPI組件的狀態(tài),slave select寄存器主要是在擁有多個從機時控制其片選。

圖像 002.png

  2.1.2有限狀態(tài)機編程思想與時序程序設計

  有限狀態(tài)機是一類很重要的時序電路,是許多數(shù)字電路的核心部分,且有限狀態(tài)機的編程設計具有高速性、可靠性、穩(wěn)定性的特點。因此,對于ADC與FPGA接口模塊與雙口RAM讀寫模塊,將采取有限狀態(tài)機進行編程。與傳統(tǒng)的用CPU按照指令逐條運行的操作方式相比,采用狀態(tài)機的形式,可以在每個狀態(tài)中并行同步完成許多運算和控制操作,而且一般用狀態(tài)機構(gòu)成的硬件系統(tǒ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)換的停止狀態(tài),此時ADC停止工作。

圖像 003.png

  2.2雙口RAM的讀寫

  所謂的雙口RAM就是在一個SRAM存儲器上具有兩套完全獨立的數(shù)據(jù)線、地址線和讀寫控制線,其最大的特點是存儲數(shù)據(jù)共享,并允許兩個獨立的CPU或控制器同時對該存儲器進行隨機性的讀寫訪問,即可以同時異步地對存儲器進行讀寫[8]?;谝陨咸攸c,可以將采樣結(jié)果實時儲存在雙口RAM里,處理器可實時讀取采樣結(jié)果,這樣能夠不占用處理器資源,大大提高了處理器的工作效率[9]。圖4是簡單的雙口RAM的接口配置電路。

圖像 004.png

  根據(jù)雙口RAM的工作原理和讀寫時序要求。其時序波形圖如圖5所示。

圖像 005.png

  2.3結(jié)果分析

  整個設計是在Altera公司提供的Quartus II、NIOS II Software Build Tools for Eclipse以及Modelsim等軟件平臺上完成的,整體采用VHDL硬件語言設計,F(xiàn)PGA通過Avalon_mm總線與各模塊進行通信,外部通過UART與PC之間進行數(shù)據(jù)交互。

  通過Modelsim仿真測試,測得用狀態(tài)機編寫ADS1299與FPGA接口的部分仿真時序如圖6所示。

圖像 006.png

  雙口RAM的讀寫時序如圖7所示。

圖像 007.png

3結(jié)論

  本文設計的基于FPGA 控制、雙口RAM存儲的高速數(shù)據(jù)采集系統(tǒng)具有可靠性高、數(shù)據(jù)不丟失、抗干擾性強、便于數(shù)據(jù)傳輸、存儲、顯示和處理及可擴展性好等優(yōu)點。其相比于傳統(tǒng)采集系統(tǒng)設計,一方面,簡化了硬件電路;另一方面,減少了對處理器資源的占用,對提高處理器的效率具有很大意義。實驗表明,系統(tǒng)的各項指標均達到要求,具有很強的工程實用價值。

  參考文獻

 ?。?] 張巖.基于近紅外光譜技術的腦功能活動信號提取方法研究[D].哈爾濱:哈爾濱工業(yè)大學, 2011.

  [2] 謝宏,王光明,姚楠,等.可穿戴式的功能近紅外光譜成像系統(tǒng)的前端設計[J].微型機與應用,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)設計[J].機械與電子,2014(1):73 74.

 ?。?] 宋勐翔,陳蘭嵐.基于ADS1298與STM32F407的心電采集與顯示系統(tǒng)設計[J].現(xiàn)代電子技術,2015(13):141 144.

 ?。?] 吳厚航.深入淺出玩轉(zhuǎn)FPGA[M].北京:北京航空航天大學出版社,2010.

 ?。?] 王小進, 涂煜. 基于AD7606的繼電保護數(shù)據(jù)處理設計[J].船電技術,2014,34(9):46 49.

 ?。?] 謝宏,李亞男,夏斌,等.基于ADSl299的可穿戴式腦電信號采集系統(tǒng)前端設計[J].電子技術應用,2014,40(3):86 89.

 ?。?] 唐永輝,徐鳴謙,烏建中.雙口RAM在嵌入式多CPU系統(tǒng)中的應用[J].制冷空調(diào)與電力機械,2005(1):49 52.