基于μC/OS-Ⅱ的Flexray線控轉(zhuǎn)向系統(tǒng)的實現(xiàn)
4 實驗驗證
使用Vector公司的CANoe軟件,可以方便地觀察FlexRay總線上的數(shù)據(jù)流情況。實驗中,將CANoe軟件提供的FlexRay接口板VN3600接入總線網(wǎng)絡(luò)中,之后參考MC9S12XF512芯片手冊中FlexRay通信的MicroTick定義為25 ns,因此在FlexRay初始化定義中,設(shè)置參數(shù)P_MICRO_PER_M-ACRO_NOM為40,則一個MareroTick等于40個MicroTick,也就是說,F(xiàn)lexRay通信配置的基準時間片為lμs。據(jù)此,配置通信周期為5 000 μs;1個靜態(tài)時槽長度為24μs,共有91個;1個動態(tài)時槽為5μs,共有289個;特征窗與網(wǎng)絡(luò)空閑時間為1 371μs。
程序中對節(jié)點Node_A和Node_B的時槽定義如表2所示。
實驗結(jié)果如圖4所示,運行時間2 289 s,時槽變化與周期數(shù)均與設(shè)計一致,數(shù)據(jù)收發(fā)正常。由圖5可知,幀速率為3 200幀/s,總計傳輸7 369 600幀,沒有出現(xiàn)無效幀與錯誤幀,達到了實時性和穩(wěn)定性的要求。
在通信過程中,分別進行故障模擬實驗。
(1)突然斷開總線來模擬應(yīng)用現(xiàn)場出現(xiàn)線路故障的情況,可以發(fā)現(xiàn)數(shù)據(jù)停止更新,故障檢測LED指示燈閃爍,說明程序檢測到了線路故障問題并進行報警。當再次連接總線后,故障檢測LED熄滅,數(shù)據(jù)繼續(xù)更新,說明通信自動重新啟動。
(2)將任意一個控制器進行掉電,模擬單一控制器故障情況,可以發(fā)現(xiàn)數(shù)據(jù)停止更新,故障檢測LED指示燈開始常亮,說明程序檢測到了任意節(jié)點故障導(dǎo)致通信中斷的問題并進行報警。當再次開啟掉電控制器后,故障檢測LED熄滅,數(shù)據(jù)繼續(xù)更新,說明通信自動重新啟動。通過以上兩個實驗,驗證了故障檢測報警功能良好。
5 結(jié)語
針對線控轉(zhuǎn)向系統(tǒng)FlexRay通信過程中存在的問題,將實時操作系統(tǒng)μC/OS-Ⅱ應(yīng)用于系統(tǒng)中,進行了代碼移植和通信任務(wù)設(shè)計。之后通過硬件實驗,對數(shù)據(jù)結(jié)果和故障檢測進行了測試,從實驗結(jié)果可以看出,該系統(tǒng)解決了FlexRay總線應(yīng)用的復(fù)雜問題,并利用μC/OS-Ⅱ操作系統(tǒng)保證了系統(tǒng)實時性、穩(wěn)定性和安全性的要求,為今后實現(xiàn)線控轉(zhuǎn)向系統(tǒng)在汽車輔助駕駛和智能駕駛方面的應(yīng)用奠定了基礎(chǔ)。
評論