<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 基于μC/OS-Ⅱ的線控轉(zhuǎn)向FlexRay通信控制

          基于μC/OS-Ⅱ的線控轉(zhuǎn)向FlexRay通信控制

          作者: 時(shí)間:2010-04-29 來源:網(wǎng)絡(luò) 收藏
          3.2通信任務(wù)設(shè)計(jì)
          以Freescale公司開發(fā)的針對該芯片的通訊傳輸層和表示層的驅(qū)動(dòng)程序?yàn)榛A(chǔ),進(jìn)行應(yīng)用層的程序設(shè)計(jì),即編寫通信任務(wù)程序,完成協(xié)議的運(yùn)行過程。
          3.2.1 通信啟動(dòng)任務(wù)
          按照上文介紹的協(xié)議中定義的協(xié)議運(yùn)行過程,當(dāng)對FlexRay通信進(jìn)行初始配置后,協(xié)議將進(jìn)入就緒狀態(tài),之后發(fā)送啟動(dòng)節(jié)點(diǎn)命令等待協(xié)議狀態(tài)由啟動(dòng)狀態(tài)變?yōu)檎V鲃?dòng)狀態(tài);在正常主動(dòng)狀態(tài)中,首先發(fā)送關(guān)鍵幀啟動(dòng)網(wǎng)絡(luò)中的其他節(jié)點(diǎn),發(fā)送完成后進(jìn)入到節(jié)點(diǎn)喚醒狀態(tài),然后開啟FlexRay通信的各種中斷,包括:傳輸中斷、接收中斷、存儲(chǔ)區(qū)中斷以及定時(shí)器中斷等,最后掛起任務(wù)等待檢測到通信故障時(shí)進(jìn)行喚醒;協(xié)議正常被動(dòng)狀態(tài)是在通信出現(xiàn)故障時(shí),重新配置協(xié)議,進(jìn)行協(xié)議的重啟。需要注意的是用戶必須在多任務(wù)系統(tǒng)啟動(dòng)以后再開啟時(shí)鐘節(jié)拍器,也就是在調(diào)用Osatart()之后,由任務(wù)優(yōu)先級(jí)最高的那個(gè)任務(wù)開啟RTI中斷,否則系統(tǒng)容易死鎖。程序流程圖如圖2所示。

          本文引用地址:http://www.ex-cimer.com/article/197684.htm


          3.2.2 數(shù)據(jù)接收發(fā)送任務(wù)
          FlexRay數(shù)據(jù)的接收發(fā)送是通過中斷服務(wù)程序進(jìn)行的,因此在該任務(wù)中,只需判斷POC狀態(tài)是否進(jìn)入正常主動(dòng)狀態(tài),如果是則使用全局變量對接收函數(shù)Fr_receive_da()和發(fā)送函數(shù)Fr_transmit_data()的消息緩沖區(qū)進(jìn)行數(shù)據(jù)的讀取和更新。
          3.2.3 故障檢測任務(wù)
          在通信過程中,當(dāng)其他節(jié)點(diǎn)因故障重啟或是通信線路中斷時(shí),可以利用故障檢測任務(wù)檢查POC狀態(tài),當(dāng)協(xié)議運(yùn)行在正常被動(dòng)狀態(tài)時(shí),則判斷為通信線路出現(xiàn)故障,將故障LED指示燈設(shè)定為閃爍狀態(tài);當(dāng)協(xié)議運(yùn)行在暫停狀態(tài)時(shí),則判斷為節(jié)點(diǎn)控制器故障,故障LED指示燈設(shè)定為常亮狀態(tài),并對FlexRay通信啟動(dòng)任務(wù)進(jìn)行解掛,重新對協(xié)議進(jìn)行配置,待故障解決,系統(tǒng)可以自動(dòng)啟動(dòng)節(jié)點(diǎn)運(yùn)行。程序流程圖如圖3所示。



          4 實(shí)驗(yàn)驗(yàn)證
          使用Vector公司的CANoe軟件,可以方便地觀察FlexRay總線上的數(shù)據(jù)流情況。實(shí)驗(yàn)中,將CANoe軟件提供的FlexRay接口板VN3600接入總線網(wǎng)絡(luò)中,之后參考MC9S12XF512芯片手冊中FlexRay通信的MicroTick定義為25 ns,因此在FlexRay初始化定義中,設(shè)置參數(shù)P_MICRO_PER_M-ACRO_NOM為40,則一個(gè)MareroTick等于40個(gè)MicroTick,也就是說,F(xiàn)lexRay通信配置的基準(zhǔn)時(shí)間片為lμs。據(jù)此,配置通信周期為5 000 μs;1個(gè)靜態(tài)時(shí)槽長度為24μs,共有91個(gè);1個(gè)動(dòng)態(tài)時(shí)槽為5μs,共有289個(gè);特征窗與網(wǎng)絡(luò)空閑時(shí)間為1 371μs。
          程序中對節(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幀,沒有出現(xiàn)無效幀與錯(cuò)誤幀,達(dá)到了實(shí)時(shí)性和穩(wěn)定性的要求。


          在通信過程中,分別進(jìn)行故障模擬實(shí)驗(yàn)。
          (1)突然斷開總線來模擬應(yīng)用現(xiàn)場出現(xiàn)線路故障的情況,可以發(fā)現(xiàn)數(shù)據(jù)停止更新,故障檢測LED指示燈閃爍,說明程序檢測到了線路故障問題并進(jìn)行報(bào)警。當(dāng)再次連接總線后,故障檢測LED熄滅,數(shù)據(jù)繼續(xù)更新,說明通信自動(dòng)重新啟動(dòng)。
          (2)將任意一個(gè)控制器進(jìn)行掉電,模擬單一控制器故障情況,可以發(fā)現(xiàn)數(shù)據(jù)停止更新,故障檢測LED指示燈開始常亮,說明程序檢測到了任意節(jié)點(diǎn)故障導(dǎo)致通信中斷的問題并進(jìn)行報(bào)警。當(dāng)再次開啟掉電控制器后,故障檢測LED熄滅,數(shù)據(jù)繼續(xù)更新,說明通信自動(dòng)重新啟動(dòng)。通過以上兩個(gè)實(shí)驗(yàn),驗(yàn)證了故障檢測報(bào)警功能良好。

          5 結(jié)語
          針對系統(tǒng)FlexRay通信過程中存在的問題,將實(shí)時(shí)操作系統(tǒng)μC/-Ⅱ應(yīng)用于系統(tǒng)中,進(jìn)行了代碼移植和通信任務(wù)設(shè)計(jì)。之后通過硬件實(shí)驗(yàn),對數(shù)據(jù)結(jié)果和故障檢測進(jìn)行了測試,從實(shí)驗(yàn)結(jié)果可以看出,該系統(tǒng)解決了FlexRay總線應(yīng)用的復(fù)雜問題,并利用μC/-Ⅱ操作系統(tǒng)保證了系統(tǒng)實(shí)時(shí)性、穩(wěn)定性和安全性的要求,為今后實(shí)現(xiàn)系統(tǒng)在汽車輔助駕駛和智能駕駛方面的應(yīng)用奠定了基礎(chǔ)。


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();