賈俊偉
(上海海事大學 信息工程學院,上海 201306)
腦電信號是人體重要的生理信號,近年來,隨著腦機接口的逐步興起和使用,腦電信號的實時性處理要求也越來越高,腦電信號實時處理的應用,使人們可以直接通過腦來表達想法或操作其他設備,而不需要通過語言或肢體的動作,這對肢體殘缺的人來說有著極其重要的意義。
目前,國內外對腦電信號的處理基本上都是基于上位機進行處理。文中提出了一種全新的設計方案:基于SOPC的腦電信號實時處理。SOPC(System on a Programmable Chip)稱為可編程片上系統,是基于可編程邏輯器件(FPGA或CPLD)的可重構的SOC。利用FPGA的可編程邏輯資源,按照系統功能需求來添加接口功能模塊,既能實現目標系統功能,又能降低系統的成本和功耗。這樣就使得FPGA靈活的硬件設計與處理器的強大軟件功能有機地結合在一起,高效地實現SOPC系統;同時,嵌入式NiosⅡ軟核又可以方便的完成對數字信號處理模塊的控制和數據的讀寫和存儲。
文中的設計系統主要有信號預處理模塊、A/D轉換模塊和數據處理與存儲模塊3大部分組成。其中A/D轉換模塊和數據處理與存儲模塊是基于SOPC系統實現,是本文重點。核心控制芯片采用ALTERA公司生產的CycloneⅡ系列的FPGA,它實現對外圍電路的控制和數據的處理與存儲。系統總體結構如圖1所示。

圖1 系統總體結構圖Fig.1 Overall system structure diagram
腦電信號是很微弱的差模信號,具有低頻率,低幅度的特點。并且具有很強的背景噪聲和干擾,因此在采集前必須經過必要的預處理,使其達到AD轉換的精度要求。所以前端預處理模塊有:前置放大器、50 Hz陷波器、高低通濾波器和主放大器等組成。人腦神經活動自發產生的生物電信號通過腦電極進入儀器的前置放大器,在經過低通濾波器濾波,50 Hz陷波器和固定增益放大,最終抑制50 Hz以上的干擾信號,提取腦電信號。
本系統選用ADS1258作為模數轉換器,ADS1258是TI公司推出的一款高精度、低功耗、低噪聲的16通道(多路復用的)24位Δ-∑型模數轉換器 (ADC),其內部集成了輸入多路復用器、模擬低通濾波器、數字濾波器等功能。內部有多種控制寄存器,用戶通過不同的配置得到不同的A/D采樣速率、采樣模式、A/D轉換精度等。
ADSl258在自動通道掃描工作模式下最高轉換速率可達每通道23.7 kSPS,是目前轉換速率極高的模數轉換器;轉換時功耗僅42 mW,24位分辨率,可在5 V單電源條件下工作,參考電壓可以設置為0~5 V。 模擬輸入多路復用器可配置成8路差分輸入或16路單極輸入,多路復用器的輸出可通過外部獲得,這就能在ADC輸入之前采用共享的信號調節通道。使用SPI接口進行功能配置和數據傳輸,實驗證明它能滿足信號采集與處理的系統需求 。
腦電信號傳統處理方法有Wigner分布、小波分析、神經網絡、非線性動力學以及獨立分量,而腦電信號通常還會產生基線漂移和50 Hz交流及高次諧波干擾,因此還需要對信號進行數字濾波,以增強抗干擾能力。與傳統的DSP相比,FPGA具有可重構、低成本和低功耗的優勢,尤其是在多通道數據的采集和處理上,FPGA利用天然的并行架構,將發揮出一個至幾個數量級的優勢。ALTERA公司的SOPCBuilder可以幫助開發者很容易完成系統的SOPC硬件平臺。用戶根據已有的硬件系統結構編寫信號處理的算法程序,最終在FPGA上實現。
文中的核心控制芯片采用ALTERA公司的CycloneⅡ系列型號為EP2C8Q208I8N的FPGA芯片。該芯片有8 256個邏輯單元,內置 18個嵌入式 18×18乘法器,2個 PLLs,完全滿足本設計的需要。此系列芯片支持NiosⅡ32位嵌入式軟核處理器,該處理器系統包括一個可配置NiosⅡCPU軟核、與CPU相連接的片內外設和存儲器以及與片外存儲器和外設相連的接口等。所有組件在一個FPGA芯片上實現。SOPC硬件系統結構如圖2所示。

圖2 SOPC硬件系統電路圖Fig.2 SOPChardware system diagram
整個系統以 NiosⅡ軟核處理器為主,Avalon總線為核心,各個外設端口掛接在Avalon總線上。通過Avalon總線,NiosⅡ主設備控制各從設備。Avalon總線支持多個總線主外設,允許在單個總線事務中在外設之間傳輸多個數據單元。這一多主設備結構為構建SOPC系統提供了極大的靈活性,并且能夠適應高帶寬的外設。
在設計過程中,充分考慮SOPC系統的特色,充分發揮了SOPC系統在數字信號處理中的并行運算優勢和NiosⅡ自定義指令加快程序運行速度的優勢。圖3為本系統的SOPC builder組件列表圖:主要是用SOPC Builder選取合適的CPU、存儲器、及外圍器件,外圍器件包含系統自帶的如定時器,SPI接口核等,也包含用戶自定義的外設組件(AD,DA)。
本系統的軟件設計包括兩個部分,一部分是基于Verilog的用戶自定義外設組件,另一部分是基于NiosⅡIDE開發環境的各外設組件的驅動和配置程序,以及處理腦電信號的FFT算法程序。
用戶自定義外設組件包括AD轉換和DA轉換模塊,用Verilog語言編寫AD和DA的控制模塊,編譯、綜合后實現其功能并留下與Avalon interface的寄存器接口。
軟件開發使用NiosⅡIDE,它是一個基于Eclipse IDE構架的集成開發環境,包括:
1)GNU開發工具(標準GCC編譯器、連接器、匯編器和makefile工具等);
2)基于GDB的調試器,包括軟件仿真和硬件調試;
3)提供用戶一個硬件抽象層HAL(Hardware Abstraction Layer);
4)提供嵌入式操作系統MicroC/OS-Ⅱ和LwTCP/IP協議棧的支持;
5)提供幫助用戶快速入門的軟件模板;
6)提供 Flash下載支持(Flash Programmer和 QuartusⅡProgrammer)。
NiosⅡIDE可以完成NiosⅡ處理器系統的所有軟件開發任務。SOPCBuilder生成系統后,可以直接使用NiosⅡIDE開始設計C應用程序代碼。Altera提供外設驅動程序和硬件抽象層 (HAL),使用戶能夠快速編寫與低級硬件細節無關的NiosⅡ程序。除了應用代碼,用戶還可以在NiosⅡIDE工程中設計和重新使用定制庫。
基于C編寫的算法程序是腦電信號數字處理的核心程序。該程序包括6個相關文件,分別是math.h,register.h,LF2407.CMD,RTS2XX.LIB,process.c和 cvectors.asm。 其中需要用到的數學公式庫文件是math.h,CPU內部的寄存器及其相關定義文件是register.h,連接命令文件是LF2407.CMD,指示編譯器如何進行程序空間和數據空間的分配,系統提供RTS2XX.LIB庫文件,向量表文件cvectors.asm定義所需的復位和中斷向量,process.c主要是完成用戶期望的功能,是整個程序的核心部分。
FFT部分算法如下:

圖3 SOPCbuilder組件列表圖Fig.3 SOPCbuilder component list in figure
Fs=1000; %Fs是采樣頻率,值越大,得到的圖像越清晰
Read X(1,1024); % 將要處理的腦電數據讀入到X中,共1 024個數據
% 以下是對原始的腦電數據進行1 024點的快速傅里葉變換:
for m=1:Fs
w(m)=m*2*pi/Fs;
y(m)=0;
temp=0;
for n=1:1024
y(m)=temp+x(n)*exp(-j*(w(m)*(n-1)));
temp=y(m);
end % n循環結束
h(m)=abs(y(m));
end % m循環結束
fre=w*Fs/(2*pi); % 得到頻率陣 fre(1,1000)
Am=h/max(h); % 得到原始信號的歸一化譜幅度
相關算法的說明:
1)采樣頻率Fs根據實際情況調整,仿真時為1 000 Hz;2)快速傅里葉變換的計算公式為:

N是傅里葉變換的點數,此處為1 024點。
3)由于只計算相對功率,故在計算功率時沒有除點數N;
4)本計算的步長取1 ms,將與采樣頻率對應,給計算帶來方便。
系統軟件流程圖如圖4所示。

圖4 系統軟件流程圖Fig.4 System software flow chart
腦電信號是一種低頻且極其微弱的信號,一般為5~1 000μV。腦電信號的采集又常常伴隨著很大的噪聲干擾,尤其是50 Hz的工頻干擾。實驗結果如圖5所示。
經實驗結果分析,本設計可以有效完成對腦電信號的去噪及濾除50 Hz的工頻干擾,并能精確提取腦電信號的特征,為腦電信號的進一步研究做準備。

圖5 實驗前后結果圖Fig.5 Before and after the experiment results in figure
本設計的硬件實現都是在SOPC Builder環境下完成的,SOPCBuilder提供的圖形化系統架構平臺極為方便地給設計人員提供了系統構建的優越性。SOPCBuilder采用軟件搭建硬件系統的方法,突破了硬件系統難裁剪,不易升級,開發周期長,維護困難等諸多缺陷。而且SOPC Builder可根據搭建的硬件系統自動生成對應的代碼,可使各部件通過Avalon總線有序的連接和工作,將設計人員解放到系統框架的總體設計和用戶程序的設計,大大地促進了開發效率,縮短了開發流程。此外SOPC中也極為方便的為設計人員提供了加入自己設計的組建和自己定制的指令的功能,這樣可使開發人員可以通過自己定制的指令更加高效地完成設計。SOPC系統具有在硬件的可重構與可重配置,這是FPGA在硬件開發過程中獨一無二的特點。
[1]肖志俊,朱國懷.基于DSP的腦電信號處理系統設計[J].微計算機信息,2007(10):3-5.XIAOZhi-jun,ZHUGuo-huai.Based on EEGsignal processing in DSP system design[J].Conrol and Automation Pubilcation Group,2007(10):3-5.
[2]方煒圓,陳亞光.基于SOPC的多通道動態腦電采集系統[J].現代科學儀器,2008(12):11-12.FANG Wei-yuan,CHEN Ya-guang.Multi-channel dynamic EEG acquisition system based on SOPC[J].Modern Scientific Instruments,2008(12):11-12.
[3]馬登程.基于實時嵌入式系統的腦電信號采集儀器設計[D].山東:山東大學,2006.
[4]謝松云,張振中,楊金,等.腦電信號的若干處理方法研究與評價[J].計算機仿真,2007(2):15-17.XIE Song-yun,ZHANG Zhen-zhong,YANG Jin,et al.EEG and processing methods research and evaluation[J].Computer Simularion,2007(2):15-17.
[5]徐棟君.腦電信號采集系統設計與研究[D].江蘇:江蘇大學,2006.
[6]古良玲.基于可編程邏輯器件的腦電信號自適應濾波技術的研究[D].重慶:重慶大學,2006.