基于S3C44B0和μCOS-II的CAN節點(diǎn)的設計
系統建立了兩個(gè)任務(wù)(不包括統計和空閑任務(wù)):起始任務(wù)Main_Task和發(fā)送任務(wù)CANSENDDATA_Task,優(yōu)先級分別為10,12。在CAN控制器初始化和OS初始化后,建立起始任務(wù)Main_Task,OS開(kāi)始運行,進(jìn)入起始任務(wù)Main_Task,起始任務(wù)啟動(dòng)時(shí)間節拍,并創(chuàng )建發(fā)送任務(wù),然后進(jìn)入掛起。發(fā)送任務(wù)進(jìn)入運行態(tài),當發(fā)送數據完成后,發(fā)送任務(wù)掛起。
兩個(gè)任務(wù)在各自的延時(shí)結束后按照優(yōu)先級先后進(jìn)入運行態(tài),若都在掛起狀態(tài)則系統的空閑任務(wù)進(jìn)入運行。此過(guò)程中如果有接收中斷發(fā)生,則中斷服務(wù)將掛起正在運行的任務(wù),并調用CAN數據接收函數,完成數據的接收,當此過(guò)程結束后恢復現場(chǎng),繼續進(jìn)行高優(yōu)先級的任務(wù)。圖3是CAN通信模塊在μCOS-II中運行的系統結構框圖:
評論