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