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