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