摘要:為滿足腦電信號采集、處理設備具有便攜式,實時性,數(shù)據(jù)量大的實際需求,提出了一種基于SOPC的腦電信號實時處理設計方案。用腦電極采集到的腦電信號經(jīng)過前期預處理(放大,濾波)、A/D模數(shù)轉(zhuǎn)換后,經(jīng)過SOPC系統(tǒng)對腦電信號進行頻譜分析、特征提取,最后存儲或傳輸。整個設計圍繞SOPC系統(tǒng),以NiosⅡCPU為核心,并與其他外圍設備集成,實現(xiàn)整個系統(tǒng)的控制與處理能力。利用SOPC系統(tǒng)實現(xiàn)的腦電信號采集系統(tǒng),具有體積小、運算速度快、方案靈活的特點,為構建腦電信號實時處理系統(tǒng)提供了一個新技術方案。
關鍵詞:ADS1258;SOPC;腦電信號;實時處理
腦電信號是人體重要的生理信號,近年來,隨著腦機接口的逐步興起和使用,腦電信號的實時性處理要求也越來越高,腦電信號實時處理的應用,使人們可以直接通過腦來表達想法或操作其他設備,而不需要通過語言或肢體的動作,這對肢體殘缺的人來說有著極其重要的意義。
目前,國內(nèi)外對腦電信號的處理基本上都是基于上位機進行處理。文中提出了一種全新的設計方案:基于SOPC的腦電信號實時處理。SO PC(System on a Programmable Chip)稱為可編程片上系統(tǒng),是基于可編程邏輯器件(FPGA或CPLD)的可重構的SOC。利用FPGA的可編程邏輯資源,按照系統(tǒng)功能需求來添加接口功能模塊,既能實現(xiàn)目標系統(tǒng)功能,又能降低系統(tǒng)的成本和功耗。這樣就使得FPGA靈活的硬件設計與處理器的強大軟件功能有機地結合在一起,高效地實現(xiàn)SOPC系統(tǒng);同時,嵌入式NiosⅡ軟核又可以方便的完成對數(shù)字信號處理模塊的控制和數(shù)據(jù)的讀寫和存儲。
1 系統(tǒng)結構
文中的設計系統(tǒng)主要有信號預處理模塊、A/D轉(zhuǎn)換模塊和數(shù)據(jù)處理與存儲模塊3大部分組成。其中A/D轉(zhuǎn)換模塊和數(shù)據(jù)處理與存儲模塊是基于SOPC系統(tǒng)實現(xiàn),是本文重點。核心控制芯片采用ALTERA公司生產(chǎn)的CycloneⅡ系列的FPGA,它實現(xiàn)對外圍電路的控制和數(shù)據(jù)的處理與存儲。系統(tǒng)總體結構如圖1所示。
1.1 信號預處理
腦電信號是很微弱的差模信號,具有低頻率,低幅度的特點。并且具有很強的背景噪聲和干擾,因此在采集前必須經(jīng)過必要的預處理,使其達到AD轉(zhuǎn)換的精度要求。所以前端預處理模塊有:前置放大器、50 Hz陷波器、高低通濾波器和主放大器等組成。人腦神經(jīng)活動自發(fā)產(chǎn)生的生物電信號通過腦電極進入儀器的前置放大器,在經(jīng)過低通濾波器濾波,50 Hz陷波器和固定增益放大,最終抑制50 Hz以上的干擾信號,
提取腦電信號。
1.2 設置ADC采樣率
本系統(tǒng)選用ADS1258作為模數(shù)轉(zhuǎn)換器,ADS1258是TI公司推出的一款高精度、低功耗、低噪聲的16通道(多路復用的)24位△-∑型模數(shù)轉(zhuǎn)換器(ADC),其內(nèi)部集成了輸入多路復用器、模擬低通濾波器、數(shù)字濾波器等功能。內(nèi)部有多種控制寄存器,用戶通過不同的配置得到不同的A/D采樣速率、采樣模式、A/D轉(zhuǎn)換精度等。
ADS1258在自動通道掃描工作模式下最高轉(zhuǎn)換速率可達每通道23.7 kSPS,是目前轉(zhuǎn)換速率極高的模數(shù)轉(zhuǎn)換器;轉(zhuǎn)換時功耗僅42 mW,24位分辨率,可在5 V單電源條件下工作,參考電壓可以設置為0~5 V。模擬輸入多路復用器可配置成8路差分輸入或16路單極輸入,多路復用器的輸出可通過外部獲得,這就能在ADC輸入之前采用共享的信號調(diào)節(jié)通道。使用SPI接口進行功能配置和數(shù)據(jù)傳輸,實驗證明它能滿足信號采集與處理的系統(tǒng)需求。
1.3 FPGA處理
腦電信號傳統(tǒng)處理方法有Wigner分布、小波分析、神經(jīng)網(wǎng)絡、非線性動力學以及獨立分量,而腦電信號通常還會產(chǎn)生基線漂移和50 Hz交流及高次諧波干擾,因此還需要對信號進行數(shù)字濾波,以增強抗干擾能力。與傳統(tǒng)的DSP相比,F(xiàn)PGA具有可重構、低成本和低功耗的優(yōu)勢,尤其是在多通道數(shù)據(jù)的采集和處理上,F(xiàn)PGA利用天然的并行架構,將發(fā)揮出一個至幾個數(shù)量級的優(yōu)勢。ALTERA公司的SOPC Builder可以幫助開發(fā)者很容易完成系統(tǒng)的SOPC硬件平臺。用戶根據(jù)已有的硬件系統(tǒng)結構編寫信號處理的算法程序,最終在FPGA上實現(xiàn)。
[!--empirenews.page--]
2 SOPC硬件結構
文中的核心控制芯片采用ALTERA公司的CycloneⅡ系列型號為EP2C8020818N的FPGA芯片。該芯片有8 256個邏輯單元,內(nèi)置18個嵌入式18x18乘法器,2個PLLs,完全滿足本設計的需要。此系列芯片支持NiosⅡ32位嵌入式軟核處理器,該處理器系統(tǒng)包括一個可配置NiosⅡCPU軟核、與CPU相連接的片內(nèi)外設和存儲器以及與片外存儲器和外設相連的接口等。所有組件在一個FPGA芯片上實現(xiàn)。SOPC硬件系統(tǒng)結構如圖2所示。
整個系統(tǒng)以NiosⅡ軟核處理器為主,Avalon總線為核心,各個外設端口掛接在Avalon總線上。通過Avalon總線,NiosⅡ主設備控制各從設備。Avalon總線支持多個總線主外設,允許在單個總線事務中在外設之間傳輸多個數(shù)據(jù)單元。這一多主設備結構為構建SOPC系統(tǒng)提供了極大的靈活性,并且能夠適應高帶寬的外設。
在設計過程中,充分考慮SOPC系統(tǒng)的特色,充分發(fā)揮了SOPC系統(tǒng)在數(shù)字信號處理中的并行運算優(yōu)勢和NiosⅡ自定義指令加快程序運行速度的優(yōu)勢。圖3為本系統(tǒng)的SOPCbuilder組件列表圖:主要是用SOPC Builder選取合適的CPU、存儲器、及外圍器件,外圍器件包含系統(tǒng)自帶的如定時器,SPI接口核等,也包含用戶自定義的外設組件(AD,DA)。
[!--empirenews.page--]
3 軟件設計
本系統(tǒng)的軟件設計包括兩個部分,一部分是基于Verilog的用戶自定義外設組件,另一部分是基于NiosⅡIDE開發(fā)環(huán)境的各外設組件的驅(qū)動和配置程序,以及處理腦電信號的FFT算法程序。
用戶自定義外設組件包括AD轉(zhuǎn)換和DA轉(zhuǎn)換模塊,用Verilog語言編寫AD和DA的控制模塊,編譯、綜合后實現(xiàn)其功能并留下與Avalon interface的寄存器接口。
軟件開發(fā)使用NiosⅡIDE,它是一個基于Eclipse IDE構架的集成開發(fā)環(huán)境,包括:
1)GNU開發(fā)工具(標準GCC編譯器、連接器、匯編器和makefile工具等);
2)基于GDB的調(diào)試器,包括軟件仿真和硬件調(diào)試;
3)提供用戶一個硬件抽象層HAI。(Hardware Abstraction.Iayer);
4)提供嵌入式操作系統(tǒng)MicroC/OS一Ⅱ和Lwl"CP/IP協(xié)議棧的支持:
5)提供幫助用戶快速入門的軟件模板;
6)提供Flash下載支持(Flash。Programmer和QuartusⅡProgrammer)。
NiosⅡIDE可以完成NiosⅡ處理器系統(tǒng)的所有軟件開發(fā)任務。SOPC Builder生成系統(tǒng)后,可以直接使用NiosⅡIDE開始設計C應用程序代碼。Altera提供外設驅(qū)動程序和硬件抽象層(HAL),使用戶能夠快速編寫與低級硬件細節(jié)無關的NiosⅡ程序。除了應用代碼,用戶還可以在NiosⅡIDE工程中設計和重新使用定制庫。
基于C編寫的算法程序是腦電信號數(shù)字處理的核心程序。該程序包括6個相關文件,分別是math.h,register.h,LF2407.CMD.RIS2X X.UB,process.c和evectors.a(chǎn)sm。其中需要用到的數(shù)學公式庫文件是math.h,CPI_I內(nèi)部的寄存器及其相關定義文件是re面ster.h,連接命令文件是I~2407.CMD,指示編譯器如何進行程序空間和數(shù)據(jù)空間的分配,系統(tǒng)提供RTS2XX.UB庫文件,向量表文件cvectors.a(chǎn)sm定義所需的復位和中斷向量,process.c主要是完成用戶期望的功能,是整個程序的核心部分。
FFT部分算法如下:
相關算法的說明:
1)采樣頻率Fs根據(jù)實際情況調(diào)整,仿真時為1 000 Hz;
2)快速傅里葉變換的計算公式為:
[!--empirenews.page--]
N是傅里葉變換的點數(shù),此處為1 024點。
3)由于只計算相對功率,故在計算功率時沒有除點數(shù)N;
4)本計算的步長取1 ms,將與采樣頻率對應,給計算帶來方便。
系統(tǒng)軟件流程圖如圖4所示。
4 實驗結果
腦電信號是一種低頻且極其微弱的信號,一般為5~1 000μV。腦電信號的采集又常常伴隨著很大的噪聲干擾,尤其是50 Hz的工頻干擾。實驗結果如圖5所示。
經(jīng)實驗結果分析,本設計可以有效完成對腦電信號的去噪及濾除50 Hz的工頻干擾,并能精確提取腦電信號的特征,為腦電信號的進一步研究做準備。
5 結束語
本設計的硬件實現(xiàn)都是在SOPC Builder環(huán)境下完成的,SOPC Builder提供的圖形化系統(tǒng)架構平臺極為方便地給設計人員提供了系統(tǒng)構建的優(yōu)越性。SOPC Builder采用軟件搭建硬件系統(tǒng)的方法,突破了硬件系統(tǒng)難裁剪,不易升級,開發(fā)周期長,維護困難等諸多缺陷。而且SOPC Builder可根據(jù)搭建的硬件系統(tǒng)自動生成對應的代碼,可使各部件通過Avalon總線有序的連接和工作,將設計人員解放到系統(tǒng)框架的總體設計和用戶程序的設計,大大地促進了開發(fā)效率,縮短了開發(fā)流程。此外SOPC中也極為方便的為設計人員提供了加入自己設計的組建和自己定制的指令的功能,這樣可使開發(fā)人員可以通過自己定制的指令更加高效地完成設計。SOPC系統(tǒng)具有在硬件的可重構與可重配置,這是FPGA在硬件開發(fā)過程中獨一無二的特點。