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