一、引言
腦電信號EEG(Electroencephalogram)是一種微弱的低頻生理信號。它由腦部神經(jīng)活動產(chǎn)生的自發(fā)性電位活動,含有非常豐富的大腦活動信息,是進(jìn)行臨床腦疾病診斷的一種重要方法,因此獲取腦電信號具有重要的現(xiàn)實意義。目前的大多數(shù)腦電信號采集系統(tǒng)均采用單片機(jī)作為控制器,由于腦電信號是毫伏級或微伏級的信號,精度較低。本文根據(jù)腦電信號的特點,將電極采集到的模擬信號經(jīng)信號調(diào)理后,采用FPGA芯片EP2C8Q208C8來控制AD574A的轉(zhuǎn)換,給出了硬件連接電路和軟件實現(xiàn),并且在QuartusII9.0中進(jìn)行仿真驗證,從而提高系統(tǒng)的可靠性和通用性,具有實際應(yīng)用參考價值。
二、腦電信號采集系統(tǒng)概述
腦電信號監(jiān)測在臨床疾病診斷中具有一定的應(yīng)用價值。系統(tǒng)首先采用電極獲取大腦皮層的電信號,再通過信號調(diào)理電路進(jìn)行處理,然后以FPGA為核心控制AD574A進(jìn)行模數(shù)轉(zhuǎn)換與存儲,最后對采集的信號作進(jìn)一步的算法分析,并實現(xiàn)與上位機(jī)的通信從而實現(xiàn)在線監(jiān)測。系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
三、系統(tǒng)硬件設(shè)計
系統(tǒng)的硬件電路包括信號放大和濾波電路,A/D轉(zhuǎn)換電路,F(xiàn)PGA控制電路,F(xiàn)PGA與PC機(jī)通信電路構(gòu)成。本文主要介紹采用FPGA來控制AD574A的采樣過程。
1、AD574A簡介
AD574A是一種高速12位逐次比較型模數(shù)轉(zhuǎn)換器,它由美國AD公司推出,內(nèi)置混合集成轉(zhuǎn)換芯片,具有外接元器件較少、低功耗、高精度等優(yōu)點,還具有自動校零和極性轉(zhuǎn)換功能。其主要特性表現(xiàn)為:分辨率12位;非線性誤差小于±1/2LBS或±1LBS;轉(zhuǎn)換時間25μs;模擬輸入電壓有0~10V、1~20V、0~±10V和0~±5V四種;電源電壓為±15V和15V;數(shù)據(jù)輸出12位或8位;可工作在全速工作和單一工作兩種模式下。
AD574A的邏輯控制真值表和工作時序圖分別如表1和圖2所示。由圖表可知AD574A的工作過程包括:啟動轉(zhuǎn)換和讀出數(shù)據(jù)。
進(jìn)行啟動轉(zhuǎn)換時,先令CS/=0、CE=1,根據(jù)所需轉(zhuǎn)換的位數(shù)A0取1或0,然后使R/C=0,轉(zhuǎn)換開始。轉(zhuǎn)換完成時,STS由高電平變?yōu)榈碗娖?。通過讀入STS的狀態(tài),判斷轉(zhuǎn)換是否完成。進(jìn)行數(shù)據(jù)輸出時,先根據(jù)輸出數(shù)據(jù)的方式,來確定是接高電平還是低電平;接著令CE=1、CS/=1、R/C=1,確定A0的取值。如果分兩次輸出12位數(shù)據(jù),A0為0時輸出高8位,A0為1時輸出低4位;如果是12位并行輸出,A取值任意。
2、AD574A與FPGA的接口電路
系統(tǒng)采用FPGA來控制AD574A的工作時序,進(jìn)行A/D轉(zhuǎn)換,然后將轉(zhuǎn)換后的數(shù)據(jù)以十六進(jìn)制的數(shù)據(jù)顯示出來。選擇的FPGA芯片為Altera公司CycloneII系列的EP2C8Q208C8,其與AD574A的硬件連接圖如圖3所示。首先FPGA輸出使CS/、CE有效,處于轉(zhuǎn)換工作狀態(tài),然后使R/C啟動轉(zhuǎn)換。轉(zhuǎn)換結(jié)束,F(xiàn)PGA在STS由高電平變?yōu)榈碗娖街安荒茏x取轉(zhuǎn)換數(shù)據(jù)。當(dāng)STS變成低電平之后,F(xiàn)PGA便可將輸出信號拉高,這樣轉(zhuǎn)換的數(shù)據(jù)就會呈現(xiàn)在數(shù)據(jù)線上,F(xiàn)PAG讀入該數(shù)據(jù)后,在數(shù)碼管上顯示出來。
四、軟件實現(xiàn)
根據(jù)AD574A的工作原理,在QuartusII9.0中采用VHDL進(jìn)行程序設(shè)計。針對系統(tǒng)的高速和可靠性要求,軟件設(shè)計采用有限狀態(tài)機(jī)FSM控制,其原理圖如圖4所示。包括主控時序進(jìn)程(REG),主控組合進(jìn)程(COM)和輔助進(jìn)程(LATCH)。
其中主控組合進(jìn)程的VHDL如下:
COM1: PROCESS(c_st,STS)
?BEGIN CASE c_st IS
?WHEN s0=> n_st <= s1;
?WHEN s1=> n_st <= s2;
?WHEN s2=> IF (STS='1') THEN n_st<= s2;
?ELSE n_st <= s3;
?END IF;
?WHEN s3=> n_st <= s4;
?WHEN s4=> n_st <=s0;
?WHEN OTHERS => n_st <= s0;
?END CASE ;
?END PROCESS COM1 ;
COM2: PROCESS(c_st)
?BEGIN
?CASE c_st IS
?WHEN s0=>CS<='1';A0<='1';RC<='1';LOCK<='0'; --初始化
?WHEN s1=>CS<='0';A0<='0';RC<='0';LOCK<='0'; --啟動轉(zhuǎn)換
?WHEN s2=>CS<='0';A0<='0';RC<='0';LOCK<='0'; --等待轉(zhuǎn)換
?WHEN s3=>CS<='0';A0<='0';RC<='1';LOCK<='0';--12 位并行輸出有效
?WHEN s4=>CS<='0';A0<='0';RC<='1';LOCK<='1'; --鎖存數(shù)據(jù)
?WHEN OTHERS =>CS<='1';A0<='1';RC<='1';LOCK<='0'; -- 返回初始態(tài)
?END CASE ;
?END PROCESS COM2 ;主控時序進(jìn)程的 VHDL 如下:
?REG: PROCESS (CLK)
?BEGIN
?IF (CLK'EVENT AND CLK='1') THEN c_st <= n_st;
?END IF;
?END PROCESS REG ;
采樣后的數(shù)據(jù)可在FPGA中進(jìn)一步處理,并進(jìn)行實時控制,也可送至計算機(jī)進(jìn)行處理。
在QuartusII9.0中選擇Tools菜單中的RTLViewer項,可以打開系統(tǒng)的RTL電路圖,如圖5所示。通過雙擊有關(guān)模塊,可以逐層了解各模塊的電路結(jié)構(gòu)。
五、仿真結(jié)果
系統(tǒng)的仿真結(jié)果如圖6所示,首先初始化CS《=‘1’,A0《=‘1’,RC《=‘1’,LOCK《=‘0’;接著啟動轉(zhuǎn)換CS《=‘0’,A0《=‘0’,RC《=‘0’;然后保持該狀態(tài)直到RC《=‘1’時,轉(zhuǎn)換好的數(shù)據(jù)輸出,在STS由高電平變?yōu)榈碗娖街笞x取轉(zhuǎn)換數(shù)據(jù)。圖中,轉(zhuǎn)換好的數(shù)據(jù)235送到輸出端Q[11:0]。
六、結(jié)語
腦電信號采集可以為醫(yī)生提供可靠的診斷信息,有助于病人的準(zhǔn)確治療。而在腦電信號的獲取中的一個關(guān)鍵環(huán)節(jié)是采集的高效性?;贔PGA在高速數(shù)據(jù)采集方面的優(yōu)點,通過對AD574A的研究,設(shè)計了硬件連接電路,并進(jìn)行仿真驗證。實踐證明系統(tǒng)具有較高的可靠性和通用性,具有一定的實際應(yīng)用價值。
評論