基于嵌入式技術的表面肌電信號采集儀設計
(2)本地肌電回放,用于對已存儲在SD卡中的肌電數據進行回放顯示,并支持對無用肌電數據文件的刪除操作;
(3)肌電采集傳輸,選擇傳輸模式向PC端實時發送采集的肌電數據;
(4)用戶設置,用于設置用戶ID及實時時鐘初始值等參數。以上各功能均在μC/GUI用戶圖形界面上實現人機交互。
如圖2所示,依據表面肌電采集儀的功能要求,在μC/OS-Ⅱ下設計了肌電采集任務;液晶屏顯示任務;觸摸屏輸入任務;肌電回放任務。其他所需功能均做成模塊,集成在上述某一任務中。
μC/OS-Ⅱ是基于優先級搶占式調度的操作系統,優先權的設置非常重要。該系統根據整個系統運行的時序,將對系統安全運行較重要和對實時性要求較嚴格的任務設成較高的優先級。以下分別介紹這幾個任務和功能模塊。
2.2 肌電采集任務
肌電采集任務用于對經過硬件放大與濾波后的雙通道肌電信號進行2 500 Hz采樣與A/D轉換,并將其通過SPI總線接口傳輸至主芯片中以進行后續處理。基于肌電采集的實時性要求,在μC/0S-Ⅱ操作系統中,將肌電采集任務設置為除系統內核使用的優先級外最高的優先級,同時為滿足肌電采集的精確性要求,通過啟動定時器中斷來運行肌電采集任務。
肌電采集任務分兩種情況運行:第一種,本地采集顯示,此時運行該任務前會被要求輸入存儲文件名,然后在采集肌電同時,調用下文的肌電濾波模塊進行濾波和調用文件存儲模塊進行實時存儲數據,濾波后的肌電數據和已采集的時間會送到下文液晶屏顯示任務中同步顯示出來;第二種,肌電采集并與PC端交互,此時啟動任務需先選擇USB通信與Xbee無線模塊通信中的一種,然后才能啟動肌電采集任務,并將原始肌電數據傳輸給PC端進行處理。
2.3 肌電回放任務
為了使用戶能隨時回放已保存的本地肌電數據,設計了該肌電回放任務。通過采用定時器中斷來定時讀取文件中的肌電數據,并發送給下文的液晶屏顯示任務來實現波形的復原顯示。同時,為了便于用戶反復觀看某一段波形,該任務支持對肌電波形的顯示與暫停,以及對波形顯示的前翻與回翻一屏操作。
2.4 液晶屏顯示任務
為了使用戶能夠了解系統的當前狀態,同時可使用戶與系統進行交互,在μC/OS-Ⅱ和μC/GUI的基礎上設計了液晶屏顯示任務。液晶屏顯示任務負責通告當前的系統狀態與運行過程,包括μC/GUl支持下的各種圖形界面。具體來說,這里集成了肌電采集、顯示與回放、時間顯示、數據存儲、數據USB或Xbee傳輸等的圖形界面。
因為該任務實時性要求不高,故對其設計了最低的任務優先級。
2.5 觸摸屏輸入任務
為了人機交互的方便與系統整體的簡潔,采用觸摸屏實現人機交互輸入。該任務在系統啟動時就開始工作,采集并處理用戶通過觸摸液晶屏輸入的信息,并將得到的用戶命令發送給μC/0S-Ⅱ與μC/GUl,以完成人機交互。
由于用戶輸入必須保證一定的實時性,以便使用戶不會感受到系統大的延時,在此對觸摸屏輸入任務設計了僅低于肌電采集任務與肌電回放任務的第三高優先級。
2.6 其他功能模塊
除了以上幾個任務之外,設計了幾個功能模塊輔助以上幾個任務,具體如下:
(1)實時時鐘模塊。在AT91SAM7SE512芯片外擴展了一片實時時鐘PCF8563用來為系統提供實時時鐘值,以便記錄用戶肌電數據采集時的具體時刻。PCF8563通過TWI(I2C)接口與AT91SAM7SE512芯片通信。
(2)定時器中斷模塊。在AT91SAM7SE512芯片中啟動定時器中斷來支持肌電采集任務與肌電回放任務。定時器中斷頻率設計為2 500 Hz,用來在肌電采集任務中定時向ADC發送采樣轉換指令,并讀取雙通道肌電信號的數據,或者在肌電回放任務中定時從肌電文件中讀取雙通道肌電數據。
(3)文件系統模塊。為了方便肌電數據在SD卡中的存儲和處理,在以SPI模式讀寫SD卡的基礎上移植了FATFS文件系統模塊來管理肌電數據。FATFS可以使用戶方便地存儲數據文件,讀取數據文件與刪除無用文件。
(4)通信模塊。為了使采集的肌電能實時傳輸給PC端處理,設計USB有線與Xbee無線兩種通信模塊。USB有線通信,利用片上USB外設接口實現與PC端的數據交互;Xbee無線通信,利用片上UART接口操作本地Xbee無線模塊與PC端的Xbee無線模塊通信,從而實現數據無線傳輸到PC端處理的功能。
(5)用戶設置模塊。對每一部設備而言,均有一些設置需要用戶更改,如用戶ID等。為便于在掉電狀態下保存此類信息,采用一片非易失性鐵電存儲器FM24CL64來保存此類信息。該存儲芯片通過TWI(I2C)接口與主芯片通信,可隨時讀取與保存用戶設置信息。每次系統啟動時,都會自動讀入用戶已存儲好的設置信息。
(6)肌電濾波與分析模塊。表面肌電信號的頻率范圍為10~500 Hz。由于50 Hz工頻噪聲干擾處于表面肌電信號能量集中的頻段,且幅值較大,如果不做處理,肌電信號將被工頻噪聲所淹沒。因此在本地采集顯示時,選用嵌入式環境中應用廣泛的梳狀濾波器。梳狀濾波器可以有效濾除50 Hz工頻干擾和基線漂移,Q值足夠高,盡量少影響有效肌電信號,并且計算量很少,且沒有浮點運算,非常適宜用于嵌入式環境中。另外,為讓用戶直觀地感受肌電信號,在肌電波形顯示窗口旁邊做了一個可以上下浮動的氣球,根據本地濾波后的肌電數據平滑平均并與參考值比較后的兩者差值上下浮動。
3 結語
肌電信號在基礎醫學研究、臨床診斷、康復工程等方面有著廣泛應用,對它的檢測分析已成為醫學和生物醫學工程界研究的熱點問題之一。這里研制的表面肌電信號采集儀,基于嵌入式ARM技術構建,體積小,重量輕,功耗低,通信方便,穩定性較好,界面簡潔人性化,操作方便,在實踐中證明能夠滿足設計要求,能采集到清晰的肌電信號。采用μC/OS-Ⅱ操作系統與μC/GUI圖形用戶界面,便于后續研發中添加功能模塊與新任務。另外,若前端配用不同的傳感器,該系統還可以實現對其他生理信號的采集和分析處理。本文引用地址:http://www.104case.com/article/151888.htm linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論