基于S3C44B0和μCOS-II的CAN節點的設計
節點通信流程圖如圖2所示:
傳統的前后臺方式設計的單片機程序是一個無限循環,循環中調用相應函數來完成相應操作是其后臺行為,而中斷服務程序處
理異步事件是其前臺行為。μCOS-II是一個實時多任務操作系統,是一個基于占先式內核的多任務調度平臺。作為一個模塊的CAN總線程序,在嵌入 μCOS-II之中,相對于前后臺方式而言,CPU的運行時間被μCOS-II依據調度算法按照不同的優先級分配給不同的任務模塊,各個任務程序在自己的運行時間內訪問CPU,這樣CAN總線的實時性更容易得到保證,同時各任務相對獨立,相互影響小,也便于對程序的調試,更重要的是如果要實現更為復雜的通訊協議時不用改變原有的程序結構,只需增加擴展部分的程序就可以進行功能擴展。
本文中CAN總線如上所述采用主動方式發送和采用中斷方式接收數據,CAN中斷優先級高于其他任務的優先級。本文中數據發送建立一個獨立任務,它擁有自己的堆棧空間,可以被其他的任務和中斷服務子程序掛起或刪除。這個任務分配128個OS_STK的堆棧空間,在μCOS-II中OS_STK被定義為一個字長。
評論