基于ARM的胎兒心電信號數(shù)據(jù)采集系統(tǒng)
4.1 µC/OS-Ⅱ在S3C44BOX上的移植
µC/OS-Ⅱ是源代碼公開的嵌入式操作系統(tǒng),是基于優(yōu)先級的搶占式實時多任務(wù)內(nèi)核,代碼采用ANSIC編寫,具有很強的可移植性和較好的可裁剪性。µC/OS-Ⅱ提供了實時系統(tǒng)所需的基本功能包括任務(wù)調(diào)度、任務(wù)管理、時間管理、任務(wù)間的通信與同步及內(nèi)存管理等,總是執(zhí)行處于就緒條件下優(yōu)先級最高的任務(wù),最多可以管理64個任務(wù),它把連續(xù)的大塊內(nèi)存按分區(qū)來進行動態(tài)管理,可以有效地解決內(nèi)存碎片的問題。在移植過程中只需對與處理器相關(guān)的一些代碼進行修改,包括:
(1)處理器頭文件OS_ CPU.H ,其中包括了用#define定義的與處理器相關(guān)的變量、宏和定義類型;
(2)在OS_CPU_A.ASM中編寫4個簡單的匯編語言函數(shù):OSStartHighRdy(),OSCtxSw(),OSIntCtxSw()和OSTickISR(),分別用于啟動當(dāng)前就緒的優(yōu)先級最高的任務(wù)、任務(wù)間的切換,從ISR中執(zhí)行切換功能以及時鐘節(jié)拍ISR功能;
(3)在OS_ CPU_C. C中編寫任務(wù)堆棧初始化函數(shù)OSTaskStInit()和5個必須聲明但不需包含代碼的HOOK()函數(shù)。
4.2 應(yīng)用程序設(shè)計
根據(jù)胎兒心電采集系統(tǒng)的特性.將系統(tǒng)主要任務(wù)劃分如下:系統(tǒng)監(jiān)控任務(wù)(優(yōu)先級4),按鍵掃描任務(wù)(優(yōu)先級5),LCD顯示刷新任務(wù)(優(yōu)先級6)、存儲任務(wù)(優(yōu)先級7),優(yōu)先級0,1,2,3保留以供系統(tǒng)使用。系統(tǒng)初始化以后,µC/OS-Ⅱ根據(jù)優(yōu)先級和就緒狀態(tài)對任務(wù)進行調(diào)度和執(zhí)行。初始化工作包括初始化所有數(shù)據(jù)結(jié)構(gòu)、分配堆棧空間、建立任務(wù)及任務(wù)間通信的信號量、消息隊列和優(yōu)先級。在運行OSStart()函數(shù)后,最先運行優(yōu)先級最高的系統(tǒng)監(jiān)控任務(wù),查詢其他任務(wù)是否向其發(fā)送消息.如果沒有則將監(jiān)控任務(wù)掛起。此時,鍵盤掃描任務(wù)從就緒態(tài)切換到運行態(tài)。該任務(wù)執(zhí)行完畢,如果檢測到有按鍵操作,則向響應(yīng)任務(wù)發(fā)送消息,使它們進入就緒態(tài),同時向監(jiān)控任務(wù)發(fā)送消息以示此任務(wù)工作正常,并且調(diào)用延時函數(shù)OSTimedly()使該任務(wù)進入掛起態(tài)。由于監(jiān)控任務(wù)收到消息,將再次進入運行態(tài),重新查詢其他被監(jiān)視任務(wù)的運行信息,沒有則進入掛起態(tài)。此時其他處于就緒態(tài)中優(yōu)先級相對較高的任務(wù)開始執(zhí)行。當(dāng)鍵盤延時時間到,系統(tǒng)內(nèi)核自動將該任務(wù)轉(zhuǎn)入就緒態(tài)。如果在運行過程中出現(xiàn)異常,監(jiān)控任務(wù)將按照設(shè)定處理表對其進行相應(yīng)處理.使系統(tǒng)順利運行。
5結(jié)束語
本文設(shè)計的胎兒心電信號數(shù)據(jù)采集系統(tǒng)在Embest S3CEV4O開發(fā)板的基礎(chǔ)上進行改進和實驗,充分利用其本身提供的硬件資源,在實時操作系統(tǒng)µC/OS-Ⅱ基礎(chǔ)上進行應(yīng)用程序開發(fā),顯示與存儲胎兒心電數(shù)據(jù)。
本文作者創(chuàng)新點:合理有效設(shè)計胎兒心電信號提取電路,結(jié)合ARM微處理器自身的優(yōu)勢,進行算法分離,具有良好的工程意義。
評論