基于嵌入式技術(shù)的表面肌電信號采集儀設(shè)計
運(yùn)動性肌疲勞是體育界和運(yùn)動醫(yī)學(xué)界十分關(guān)注的課題。目前,許多研究致力于尋找評定和預(yù)防肌肉疲勞產(chǎn)生的方法,大多數(shù)研究是從全身的生理、生化狀況來推斷肌肉的功能狀況,直接進(jìn)行局部肌肉的研究還很少。表面肌電信號(sEMG信號)是從皮膚表面通過電極引導(dǎo)、放大、顯示和記錄下來的神經(jīng)肌肉系統(tǒng)活動時的生物電信號,信號形態(tài)具有較大的隨機(jī)性和不穩(wěn)定性。它與肌肉的活動狀態(tài)和功能狀態(tài)之間存在著不同程度的關(guān)聯(lián)性,因而能在一定的程度上反映神經(jīng)肌肉的活動,在康復(fù)醫(yī)學(xué)領(lǐng)域的肌肉功能評價以及在體育科學(xué)中的疲勞判定、運(yùn)動技術(shù)合理性分析等方面均有重要的實(shí)用價值。表面肌電信號采集屬無創(chuàng)性,操作簡單,病人易接受,有著廣泛的應(yīng)用前景。
這里涉及到的便攜式肌電采集儀小巧方便,結(jié)構(gòu)簡單,性能穩(wěn)定,可以隨身攜帶,可由電池供電,一般用于運(yùn)動員的訓(xùn)練中。本文主要介紹表面肌電信號采集儀的軟硬件設(shè)計與實(shí)現(xiàn)。
1 硬件系統(tǒng)總體設(shè)計
該系統(tǒng)的控制核心選擇Atmel公司的AT91SAM7SE512處理器。AT91SAM7SE512是一款32位嵌入式微處理器,可針對交互式終端類和工業(yè)控制
類等多種嵌入式應(yīng)用。AT91SAM7SE512提供了豐富的外圍設(shè)備接口,包括USB,UART,SPI,TWI(I2C)和系統(tǒng)高速并行BUS等總線接口,從而減小了添加、配置附加外圍接口的困難與開銷,為用戶開發(fā)簡化了硬件和軟件設(shè)計,節(jié)省了系統(tǒng)成本。系統(tǒng)的整體結(jié)構(gòu)如圖1所示。
基于AT91SAM7SE512核心板的底板上配備了8 MB的SDRAM,l GB的NANFLASH等存儲芯片,對外提供SPI,UART,TWI(I2C),USB及高速并行BUS等通信接口,并對其余外部模塊(表面肌電信號采集模塊、人機(jī)接口模塊、Xbee無線通信模塊等)進(jìn)行統(tǒng)一調(diào)度。
整個系統(tǒng)的工作流程如下:兩個通道的表面肌電信號被表面電極拾取,首先通過硬件放大和模擬濾波后送入多通道16 b ADC中進(jìn)行2 500 Hz采樣與A/D轉(zhuǎn)換;轉(zhuǎn)換好的雙通道數(shù)據(jù)通過SPI總線接口送入AT91SAM7SE512中進(jìn)行處理。處理分兩種情況:在沒有連接使用PC端時,本地進(jìn)行實(shí)時濾波、簡單分析、顯示、存儲;在連接使用PC端時,通過USB接口或者Xbee無線通信模塊將數(shù)據(jù)實(shí)時傳輸給PC端處理。另外,在已有存儲數(shù)據(jù)的情況下,可以進(jìn)行表面肌電波形的回放。以上所有人機(jī)交換操作是通過采用帶觸摸功能的液晶顯示屏(320×240彩色分辨率)實(shí)現(xiàn)的。
2 軟件系統(tǒng)總體設(shè)計
隨著嵌入式系統(tǒng)的廣泛應(yīng)用,傳統(tǒng)的前/后臺程序開發(fā)機(jī)制已經(jīng)不能滿足日益復(fù)雜的需求,因而現(xiàn)在常采用嵌入式實(shí)時操作系統(tǒng)RTOS開發(fā)實(shí)時多任務(wù)系統(tǒng)。
嵌入式實(shí)時操作系統(tǒng)一般可以提供多任務(wù)的任務(wù)調(diào)度、時間管理、任務(wù)間通信和同步以及內(nèi)存管理等重要服務(wù),使得嵌入式應(yīng)用程序易于設(shè)計和擴(kuò)展。采用RTOS可以使嵌入式產(chǎn)品更可靠,開發(fā)周期更短。μC/OS-Ⅱ以其本身所具有的源碼開放,代碼規(guī)模極小,運(yùn)行穩(wěn)定,執(zhí)行效率高,實(shí)時性好等優(yōu)點(diǎn)在諸多RT0S中擁有自己的一席之地。代碼采用ANSIC編寫,具有很強(qiáng)的可移植性和較好的可裁剪性,在移植過程中只需對與處理器相關(guān)的一些代碼進(jìn)行修改。
同時為了進(jìn)一步增強(qiáng)軟件的可操作性,該系統(tǒng)在μC/OS-Ⅱ的基礎(chǔ)上移植了μC/GUI,用作用戶圖形界面設(shè)計。μC/GUI是由Micrium公司專門針對嵌入式系統(tǒng)開發(fā)的一款圖形開發(fā)系統(tǒng)。它用于為任何使用LCD圖形顯示的應(yīng)用提供高效的獨(dú)立于處理器及LCD控制器的圖形用戶接口,適用于單任務(wù)或者多任務(wù)系統(tǒng)環(huán)境,并適用于任意LCD控制器和CPU下任何尺寸的真實(shí)顯示或虛擬顯示。
另外,為了方便對于用戶資料和肌電數(shù)據(jù)的存儲與操作,在SD卡存儲機(jī)制上,移植了FATFS文件系統(tǒng)。FATFS是一種完全免費(fèi)開源的FAT文件系統(tǒng)模塊,是專門為小型嵌入式系統(tǒng)而設(shè)計的。它完全用標(biāo)準(zhǔn)C語言編寫,所以具有良好的硬件平臺獨(dú)立性,可以移植到多種平臺而只需做簡單的修改。需要使用者編寫移植代碼的是FATFS提供的底層接口,包括存儲介質(zhì)讀/寫接口DiskIO和供給文件創(chuàng)建修改時間的實(shí)時時鐘。
2.1 系統(tǒng)軟件架構(gòu)
軟件系統(tǒng)的整體架構(gòu)圍繞表面肌電采集儀的幾個基本功能來設(shè)計,結(jié)構(gòu)如圖2所示。主要分成下面幾個部分:
[!--empirenews.page--] (1)肌電采集顯示,用于控制對肌電信號的實(shí)時采集、分析處理、顯示和存儲;
(2)本地肌電回放,用于對已存儲在SD卡中的肌電數(shù)據(jù)進(jìn)行回放顯示,并支持對無用肌電數(shù)據(jù)文件的刪除操作;
(3)肌電采集傳輸,選擇傳輸模式向PC端實(shí)時發(fā)送采集的肌電數(shù)據(jù);
(4)用戶設(shè)置,用于設(shè)置用戶ID及實(shí)時時鐘初始值等參數(shù)。以上各功能均在μC/GUI用戶圖形界面上實(shí)現(xiàn)人機(jī)交互。
如圖2所示,依據(jù)表面肌電采集儀的功能要求,在μC/OS-Ⅱ下設(shè)計了肌電采集任務(wù);液晶屏顯示任務(wù);觸摸屏輸入任務(wù);肌電回放任務(wù)。其他所需功能均做成模塊,集成在上述某一任務(wù)中。
μC/OS-Ⅱ是基于優(yōu)先級搶占式調(diào)度的操作系統(tǒng),優(yōu)先權(quán)的設(shè)置非常重要。該系統(tǒng)根據(jù)整個系統(tǒng)運(yùn)行的時序,將對系統(tǒng)安全運(yùn)行較重要和對實(shí)時性要求較嚴(yán)格的任務(wù)設(shè)成較高的優(yōu)先級。以下分別介紹這幾個任務(wù)和功能模塊。
2.2 肌電采集任務(wù)
肌電采集任務(wù)用于對經(jīng)過硬件放大與濾波后的雙通道肌電信號進(jìn)行2 500 Hz采樣與A/D轉(zhuǎn)換,并將其通過SPI總線接口傳輸至主芯片中以進(jìn)行后續(xù)處理。基于肌電采集的實(shí)時性要求,在μC/0S-Ⅱ操作系統(tǒng)中,將肌電采集任務(wù)設(shè)置為除系統(tǒng)內(nèi)核使用的優(yōu)先級外最高的優(yōu)先級,同時為滿足肌電采集的精確性要求,通過啟動定時器中斷來運(yùn)行肌電采集任務(wù)。
肌電采集任務(wù)分兩種情況運(yùn)行:第一種,本地采集顯示,此時運(yùn)行該任務(wù)前會被要求輸入存儲文件名,然后在采集肌電同時,調(diào)用下文的肌電濾波模塊進(jìn)行濾波和調(diào)用文件存儲模塊進(jìn)行實(shí)時存儲數(shù)據(jù),濾波后的肌電數(shù)據(jù)和已采集的時間會送到下文液晶屏顯示任務(wù)中同步顯示出來;第二種,肌電采集并與PC端交互,此時啟動任務(wù)需先選擇USB通信與Xbee無線模塊通信中的一種,然后才能啟動肌電采集任務(wù),并將原始肌電數(shù)據(jù)傳輸給PC端進(jìn)行處理。
2.3 肌電回放任務(wù)
為了使用戶能隨時回放已保存的本地肌電數(shù)據(jù),設(shè)計了該肌電回放任務(wù)。通過采用定時器中斷來定時讀取文件中的肌電數(shù)據(jù),并發(fā)送給下文的液晶屏顯示任務(wù)來實(shí)現(xiàn)波形的復(fù)原顯示。同時,為了便于用戶反復(fù)觀看某一段波形,該任務(wù)支持對肌電波形的顯示與暫停,以及對波形顯示的前翻與回翻一屏操作。
2.4 液晶屏顯示任務(wù)
為了使用戶能夠了解系統(tǒng)的當(dāng)前狀態(tài),同時可使用戶與系統(tǒng)進(jìn)行交互,在μC/OS-Ⅱ和μC/GUI的基礎(chǔ)上設(shè)計了液晶屏顯示任務(wù)。液晶屏顯示任務(wù)負(fù)責(zé)通告當(dāng)前的系統(tǒng)狀態(tài)與運(yùn)行過程,包括μC/GUl支持下的各種圖形界面。具體來說,這里集成了肌電采集、顯示與回放、時間顯示、數(shù)據(jù)存儲、數(shù)據(jù)USB或Xbee傳輸?shù)鹊膱D形界面。
因為該任務(wù)實(shí)時性要求不高,故對其設(shè)計了最低的任務(wù)優(yōu)先級。
2.5 觸摸屏輸入任務(wù)
為了人機(jī)交互的方便與系統(tǒng)整體的簡潔,采用觸摸屏實(shí)現(xiàn)人機(jī)交互輸入。該任務(wù)在系統(tǒng)啟動時就開始工作,采集并處理用戶通過觸摸液晶屏輸入的信息,并將得到的用戶命令發(fā)送給μC/0S-Ⅱ與μC/GUl,以完成人機(jī)交互。
由于用戶輸入必須保證一定的實(shí)時性,以便使用戶不會感受到系統(tǒng)大的延時,在此對觸摸屏輸入任務(wù)設(shè)計了僅低于肌電采集任務(wù)與肌電回放任務(wù)的第三高優(yōu)先級。
2.6 其他功能模塊
除了以上幾個任務(wù)之外,設(shè)計了幾個功能模塊輔助以上幾個任務(wù),具體如下:
(1)實(shí)時時鐘模塊。在AT91SAM7SE512芯片外擴(kuò)展了一片實(shí)時時鐘PCF8563用來為系統(tǒng)提供實(shí)時時鐘值,以便記錄用戶肌電數(shù)據(jù)采集時的具體時刻。PCF8563通過TWI(I2C)接口與AT91SAM7SE512芯片通信。
(2)定時器中斷模塊。在AT91SAM7SE512芯片中啟動定時器中斷來支持肌電采集任務(wù)與肌電回放任務(wù)。定時器中斷頻率設(shè)計為2 500 Hz,用來在肌電采集任務(wù)中定時向ADC發(fā)送采樣轉(zhuǎn)換指令,并讀取雙通道肌電信號的數(shù)據(jù),或者在肌電回放任務(wù)中定時從肌電文件中讀取雙通道肌電數(shù)據(jù)。
(3)文件系統(tǒng)模塊。為了方便肌電數(shù)據(jù)在SD卡中的存儲和處理,在以SPI模式讀寫SD卡的基礎(chǔ)上移植了FATFS文件系統(tǒng)模塊來管理肌電數(shù)據(jù)。FATFS可以使用戶方便地存儲數(shù)據(jù)文件,讀取數(shù)據(jù)文件與刪除無用文件。
(4)通信模塊。為了使采集的肌電能實(shí)時傳輸給PC端處理,設(shè)計USB有線與Xbee無線兩種通信模塊。USB有線通信,利用片上USB外設(shè)接口實(shí)現(xiàn)與PC端的數(shù)據(jù)交互;Xbee無線通信,利用片上UART接口操作本地Xbee無線模塊與PC端的Xbee無線模塊通信,從而實(shí)現(xiàn)數(shù)據(jù)無線傳輸?shù)絇C端處理的功能。
(5)用戶設(shè)置模塊。對每一部設(shè)備而言,均有一些設(shè)置需要用戶更改,如用戶ID等。為便于在掉電狀態(tài)下保存此類信息,采用一片非易失性鐵電存儲器FM24CL64來保存此類信息。該存儲芯片通過TWI(I2C)接口與主芯片通信,可隨時讀取與保存用戶設(shè)置信息。每次系統(tǒng)啟動時,都會自動讀入用戶已存儲好的設(shè)置信息。
(6)肌電濾波與分析模塊。表面肌電信號的頻率范圍為10~500 Hz。由于50 Hz工頻噪聲干擾處于表面肌電信號能量集中的頻段,且幅值較大,如果不做處理,肌電信號將被工頻噪聲所淹沒。因此在本地采集顯示時,選用嵌入式環(huán)境中應(yīng)用廣泛的梳狀濾波器。梳狀濾波器可以有效濾除50 Hz工頻干擾和基線漂移,Q值足夠高,盡量少影響有效肌電信號,并且計算量很少,且沒有浮點(diǎn)運(yùn)算,非常適宜用于嵌入式環(huán)境中。另外,為讓用戶直觀地感受肌電信號,在肌電波形顯示窗口旁邊做了一個可以上下浮動的氣球,根據(jù)本地濾波后的肌電數(shù)據(jù)平滑平均并與參考值比較后的兩者差值上下浮動。
3 結(jié)語
肌電信號在基礎(chǔ)醫(yī)學(xué)研究、臨床診斷、康復(fù)工程等方面有著廣泛應(yīng)用,對它的檢測分析已成為醫(yī)學(xué)和生物醫(yī)學(xué)工程界研究的熱點(diǎn)問題之一。這里研制的表面肌電信號采集儀,基于嵌入式ARM技術(shù)構(gòu)建,體積小,重量輕,功耗低,通信方便,穩(wěn)定性較好,界面簡潔人性化,操作方便,在實(shí)踐中證明能夠滿足設(shè)計要求,能采集到清晰的肌電信號。采用μC/OS-Ⅱ操作系統(tǒng)與μC/GUI圖形用戶界面,便于后續(xù)研發(fā)中添加功能模塊與新任務(wù)。另外,若前端配用不同的傳感器,該系統(tǒng)還可以實(shí)現(xiàn)對其他生理信號的采集和分析處理。