<acronym id="pokdi"><strong id="pokdi"></strong></acronym>
      <acronym id="pokdi"><label id="pokdi"><xmp id="pokdi"></xmp></label></acronym>

      <td id="pokdi"><ruby id="pokdi"></ruby></td>
      <td id="pokdi"><option id="pokdi"></option></td>
      <td id="pokdi"></td>

        1. 教育裝備采購網
          第八屆圖書館論壇 校體購2

          基于CANFD總線的車載Bootloader設計與實現

          教育裝備采購網 2016-11-01 13:42 圍觀2062次

          隨著市場對汽車安全性、智能性、環保性等要求越來越高,汽車裝配的電子控制單元數目迅速增加。因此汽車電子對車載總線的帶寬和傳輸速率提出了更高的要求,目前CAN(Controller Area Network)已經難以滿足日益增加的需求。CANFD(CAN with Flexible Data-Rate)從傳輸速率和數據長度兩方面優化了CAN總線的性能。本文實現了基于CANFD總線的速率為5Mbps的 Bootloader軟硬件的開發,提高了目前汽車電子控制器軟件下載更新的速率。

          CANFD介紹

          CANFD總線于2011年由博世公司首次提出,在2015年國際標準化組織(ISO)正式發布支持CANFD的11898-1協議。與CAN總線相比較,CANFD主要優化了以下方面:
          仲裁場和應答場速率可達1Mbps;數據場速率可變,根據具體的應用場景可以達到5Mbps或者更高;
          數據場的長度可變,數據長度為64個字節。
          綜合以上幾處優化,CANFD在以下幾方面應用較有優勢:
          與傳統CAN相比,更長的數據域,帶寬利用率更高;
          傳輸速率更快,就目前而言,正常通信時,可達到2Mbps的通信速率,如將原標準CAN網段替換為CANFD網段可有效降低原網段的負載率,下載時,可達5Mbps的通信速率,可有效提升下載效率;
          可用于長度大于8個字節的信號的傳輸,例如PEPS的身份認證信號,在標準CAN中,需使用多條CAN報文傳輸,在CANFD中,只需一條CANFD報文即可。

          CANFD報文與CAN報文格式的區別如圖1所示。
          CANFD報文新增了FDF(FD format)位,用于區分傳統CAN報文和CANFD報文。BRS(bit-rate switch)位表示數據場的速率切換;ESI(error state indicator)位表示目前節點的錯誤界定狀態;
          考慮到數據場長度增加,為了提高通信的可靠性,CANFD設計了新的冗余校驗機制;
          除了ISO11898,ISO15765-2也針對CANFD的應用進行了更新,當前的診斷協議的傳輸層已支持CANFD報文格式。

          圖1.CANFD報文與CAN報文格式對比

          Bootloader設計與實現
          系統概述
          如圖2所示,整套刷新系統主要包括Bootloader上位機、刷寫工具以及集成Bootloader下位機軟件的控制器。用戶通過上位機的交互界面進行傳輸速率、請求ID等設置并加載需要更新的控制器軟件程序。Bootloader下位機軟件接收上位機傳遞的數據并寫入到控制器的Flash存儲器中,實現控制器的在線刷新。刷寫工具主要用于CANFD報文傳輸。

          圖2.系統結構圖

          硬件實現
          本實驗中,開發了帶CANFD接口的控制器。圖3給出了控制器在CANFD收發器端的硬件原理框圖。系統控制器選用瑞薩RH850 F1H系列芯片,該芯片支持6路CANFD,CANFD收發器選用NXP公司的TJA1044GT。為保證控制器的EMC性能以及網絡系統要求,收發器需匹配合適的外圍電路,包括終端電阻、終端電容及共模電感等。

          圖3.RH850F1H端CANFD收發器原理圖

          軟件實現
          ♦ Bootloader下位機軟件
          Bootloader軟件基于HIS協議開發。Bootloader軟件架構采用分層模塊,能夠盡量降低模塊之間耦合,提高開發效率和質量。
          Bootloader軟件主要由CANFD Driver、CANFD TP和DCM三部分組成,CANFD Driver模塊實現CANFD控制器和收發器硬件初始化以及CANFD報文收發,CANFD TP主要實現ISO 15765-2協議以及診斷報文的處理,DCM模塊實現ISO14229中與程序下載相關的服務。

          圖4.Bootloader軟件架構

          Memory Operation Module負責控制器內存邏輯塊配置、分段處理和非易失性數據管理。Security Module負責安全訪問算法和數據完整性算法。Runtime Environment實現診斷協議的回調處理和控制整個系統的運行。上層的Bootloader Manager負責應用程序和Bootloader啟動處理及Stay In Boot功能。Bootloader Application實現時鐘配置、時間片處理及中斷重映射功能。

          ♦ Bootloader上位機軟件

          圖5.Bootloader上位機配置界面

          上位主要功能為系統設置和軟件升級兩部分。系統設置中可以進行仲裁場波特率設置、數據場波特率設置、通信通道選擇、請求和響應ID設置、ID類型選擇。為保證傳輸數據有效,上位機中設置有CRC校驗算法和安全訪問算法的輸入,CRC校驗用以保證數據傳輸的完整性,安全訪問算法與下位機中的安全訪問算法保持一致。軟件升級主要為驅動文件選擇和需要刷新的數據文件的添加。

          ECU刷新實驗
          為了驗證基于CANFD總線的軟件刷新效率,分別基于CANFD總線和CAN總線的Bootloader軟件進行了八組刷寫實驗。

          圖6.ECU軟件刷新實驗

          表1.基于CANFD和CAN總線的刷寫速率對比

          如表1所示,CANFD總線仲裁場設置速率為500kbps,數據場速率設置為5Mbps, CAN總線的通信速率設置為500kbps。 刷寫數據范圍從420kb到3392kb,對比實驗數據可知基于CANFD的刷寫效率相對普通CAN 分別提升保持在300%之上。

          總結
          本文介紹了基于CANFD的Bootloader軟硬件設計及實現,通過實驗驗證相對于傳統的基于CAN總線刷新方式,基于CANFD總線的刷新效率有較大的提高。目前車載網絡架構一般會根據控制器的功能分為多個網段,各個網段之間通過網關交互信息。在未來車載控制器刷新中可以充分利用CANFD的帶寬,實現基于網關的多路控制器同時刷新。

          點擊進入北京經緯恒潤科技股份有限公司展臺查看更多 來源:教育裝備采購網 作者:北京經緯恒潤科技有限公司 我要投稿
          校體購終極頁

          相關閱讀

          • 恒潤科技受邀宣講第23屆汽車工程學會年會
            教育裝備采購網11-01
            10月26日上午,第23屆中國汽車工程學會年會暨展覽會(2016SAECCE)在上海汽車會展中心隆重開幕。本屆年會由中國汽車工程學會主辦,匯集國內外整車和零部件企業技術領袖、科研院所專和學者、政府及...

          版權與免責聲明:

          ① 凡本網注明"來源:教育裝備采購網"的所有作品,版權均屬于教育裝備采購網,未經本網授權不得轉載、摘編或利用其它方式使用。已獲本網授權的作品,應在授權范圍內使用,并注明"來源:教育裝備采購網"。違者本網將追究相關法律責任。

          ② 本網凡注明"來源:XXX(非本網)"的作品,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,且不承擔此類作品侵權行為的直接責任及連帶責任。如其他媒體、網站或個人從本網下載使用,必須保留本網注明的"稿件來源",并自負版權等法律責任。

          ③ 如涉及作品內容、版權等問題,請在作品發表之日起兩周內與本網聯系,否則視為放棄相關權利。

          校體購產品
          99久久国产自偷自偷免费一区|91久久精品无码一区|国语自产精品视频在线区|伊人久久大香线蕉av综合

            <acronym id="pokdi"><strong id="pokdi"></strong></acronym>
              <acronym id="pokdi"><label id="pokdi"><xmp id="pokdi"></xmp></label></acronym>

              <td id="pokdi"><ruby id="pokdi"></ruby></td>
              <td id="pokdi"><option id="pokdi"></option></td>
              <td id="pokdi"></td>