基于實時操作系統(tǒng)的單片機應用系統(tǒng)設計
2.1 軟件設計
電子存包柜主要包括按鍵處理、顯示處理、通訊處理等模塊,由中斷處理條碼讀入和串口通訊。因此,可以把任務分為按鍵顯示、接收數(shù)據(jù)、命令處理、發(fā)送數(shù)據(jù)等4 個任務。
以主控單片機1 接收用戶按存包輸入密碼、鍵值處理、密碼顯示及箱子狀態(tài)顯示、發(fā)送開箱命令為例,說明主體設計思想。
主程序進行系統(tǒng)初始化以后,調(diào)用函數(shù)OSStart()設置多任務環(huán)境,為每一個任務建立任務堆棧,順序建立了4 個任務,等待相應任務的喚醒。用戶只需把自己想要實現(xiàn)的功能定義為任務,在cONfig.h 中聲明任務函數(shù)名和它的優(yōu)先級,并且編寫好自己的代碼段就可以了,完全沒有了傳統(tǒng)編程下的那種上下調(diào)用的關系,系統(tǒng)會自動運行代碼。Small RTOS51 的移植主要是要配置OS_CPU.H、OS_CFG.H 和CONFIG.H 三個文件,其中OS_CFG.H 文件主要用于對操作系統(tǒng)的裁減和時鐘等的相關配置。
在 CONFIG.H 文件中定義4 個任務
#ifndef …..
…………
#endif
限于篇幅,向單片機2、3 的發(fā)送及接收單片機2 數(shù)據(jù)的程序略
4.結(jié)論
采用實時多任務操作系統(tǒng)使得編程效率更高、維護及修改也更方便,所以目前得到廣泛應用,尤其是在嵌入系統(tǒng)中。在低端的51 單片機應用領域,利用實時多任務操作系統(tǒng)的思想,采用Small RTOS 多任務平臺進行系統(tǒng)應用設計及改進,同樣也有現(xiàn)實意義。
本文創(chuàng)新點:將Small RTOS 多任務的思想應用在一個具體的單片機控制的電子式存包柜系統(tǒng)的軟件設計中,介紹了基于消息隊列的任務通訊的編程方法。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論