• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于UDSonCAN的Bootloader設(shè)計(jì)

      2022-09-30 01:58:54陳祖銳廖振偉谷城劉志軍劉虎山
      汽車零部件 2022年9期
      關(guān)鍵詞:電控內(nèi)存總線

      陳祖銳,廖振偉,谷城,劉志軍,劉虎山

      柳州賽克科技發(fā)展有限公司,廣西柳州 545005

      0 引言

      由于TCU在汽車中的安裝環(huán)境復(fù)雜,拆卸TCU硬件十分困難,再加上利用串口、JTAG等交互手段均需要給TCU增加額外的硬件電路,增加開發(fā)成本。所以本文參照ISO14229標(biāo)準(zhǔn)的UDS(unified diagnostic services)診斷規(guī)范,結(jié)合整車廠的診斷規(guī)范和軟件升級(jí)規(guī)范需求。設(shè)計(jì)一套UDSonCAN為基礎(chǔ)的TCU軟件升級(jí)方案,即TCU的Bootloader方案設(shè)計(jì)。該方案以CAN(controller area network)網(wǎng)絡(luò)通信為基礎(chǔ),基于UDS診斷服務(wù)規(guī)范,實(shí)現(xiàn)對(duì)TCU特定的Flash地址區(qū)域進(jìn)行程序刷新。此方案的實(shí)現(xiàn),在不需要對(duì)TCU進(jìn)行硬件拆卸就可以快速、可靠、穩(wěn)定地進(jìn)行TCU軟件更新,大大縮短軟件開發(fā)周期,減少開發(fā)成本,提高軟件程序的交付質(zhì)量。

      1 Bootloader的介紹

      1.1 Bootloader應(yīng)用UDS服務(wù)

      ISO 14229標(biāo)準(zhǔn)中準(zhǔn)確定義了UDSonCAN的全部診斷服務(wù),包括數(shù)據(jù)傳輸服務(wù)、通信管理服務(wù)、上傳下載服務(wù)、例程控制模式,且每個(gè)服務(wù)都有特定的SID(service identify)。

      此方案是基于UDSonCAN的Bootloader設(shè)計(jì)方案,主要用到的UDS服務(wù)及其功能概述如下:

      (1)診斷會(huì)話控制:控制電控單元處于不同的診斷會(huì)話模式中。

      (2)通過標(biāo)識(shí)符讀數(shù)據(jù):向電控單元讀取特定的信息。

      (3)通過標(biāo)識(shí)符寫數(shù)據(jù):向電控單元寫入特定的信息。

      (4)例程控制:啟動(dòng)或停止特定的程序。

      似乎所有津津樂道的故事都有類似這樣一個(gè)“風(fēng)騷”的開始:初識(shí)只作乍見之歡。我們似乎都是習(xí)慣了喜新厭舊的人,喜歡去新的城市,喜歡探索新的事物,喜歡更換新的物品,喜歡接觸新的人……世間的美好,多數(shù)在于初見,初見你初妝、初見你笑顏……然而好的事物容易有一個(gè)通病,那就是都不長遠(yuǎn)。越是璀璨,就越是脆弱。花前月下,塵夢(mèng)如煙,似曾相識(shí),曇花一現(xiàn)!其實(shí),人生難得的是日后久處不厭,如果是,那么,有生之年,有幸遇見。

      (5)安全訪問:向電控單元請(qǐng)求種子和發(fā)送秘鑰。

      (6)通信控制:開啟或關(guān)閉電控單元特定報(bào)文的接收或發(fā)送。

      (7)DTC設(shè)置控制:停止或恢復(fù)電控單元的故障診斷功能。

      (8)請(qǐng)求下載:向電控單元請(qǐng)求進(jìn)行下載服務(wù)。

      (9)傳輸數(shù)據(jù):向電控單元傳輸數(shù)據(jù)。

      (10)請(qǐng)求退出傳輸:向電控單元請(qǐng)求退出數(shù)據(jù)傳輸。

      (11)ECU復(fù)位:向電控單元請(qǐng)求復(fù)位操作。

      UDS服務(wù)對(duì)應(yīng)的SID見表1。

      表1 UDS服務(wù)對(duì)應(yīng)的SID

      1.2 Bootloader應(yīng)用CAN總線

      CAN是基于開放式系統(tǒng)互聯(lián)通信參考模型(OSI)設(shè)計(jì)的一種通信協(xié)議。CAN協(xié)議采用CRC檢驗(yàn)和相應(yīng)的錯(cuò)誤處理功能,保證數(shù)據(jù)傳輸?shù)目煽啃?。CAN的通信介質(zhì)為雙絞線、同軸電纜或光導(dǎo)纖維,速率可達(dá)1 MB/S,性價(jià)比極高。所以CAN總線是當(dāng)前汽車領(lǐng)域廣泛使用的一種通信方式,實(shí)現(xiàn)了整車電控單元之間的信息交互,以及電控單元和上位機(jī)之間的數(shù)據(jù)傳輸和命令交互。其中UDSonCAN在OSI模型中的分層結(jié)構(gòu)見表2。

      表2 UDSonCAN在OSI模型中的分層結(jié)構(gòu)

      1.3 Bootloader和APP框架設(shè)計(jì)

      Bootloader是嵌入式系統(tǒng)在加電后執(zhí)行的第一段代碼,所以也稱為引導(dǎo)程序,主要用于軟件刷新。在一個(gè)成熟的嵌入式系統(tǒng)方案中,Bootloader和APP(應(yīng)用層程序)是分開的,分別存放于不同的內(nèi)存區(qū)域中。

      此方案設(shè)計(jì)了多級(jí)Bootloader,如圖1所示。上電之后默認(rèn)進(jìn)入Boot1,逐級(jí)跳轉(zhuǎn)至APP,各級(jí)Bootloader和APP互不干擾。

      圖1 多級(jí)Bootloader的設(shè)計(jì)

      FlashDriver是一段具備擦除內(nèi)存數(shù)據(jù)功能的程序,出于功能安全考慮,Bootloader中不能包含F(xiàn)lashDriver(刷新驅(qū)動(dòng)),避免程序跑飛運(yùn)行至FlashDriver中,對(duì)TCU程序造成不可逆的破壞。為了避免上述情況,F(xiàn)lashDriver一般存放于上位機(jī)中,在編程過程中才將FlashDriver下載至特定的內(nèi)存區(qū)域中,通過Bootloader調(diào)用FlashDriver程序,實(shí)現(xiàn)內(nèi)存擦除功能。

      2 Bootloader的設(shè)計(jì)

      2.1 預(yù)編程設(shè)計(jì)

      在程序刷新之前,需要通知整車其他的電控單元TCU即將進(jìn)行程序刷新,所以功能尋址需要進(jìn)入擴(kuò)展會(huì)話模式;利用UDS的28服務(wù),通過功能尋址禁止其他節(jié)點(diǎn)的報(bào)文發(fā)送,使整個(gè)CAN總線處于安靜的狀態(tài),降低總線的負(fù)載率,提高程序刷寫速度;利用UDS的85服務(wù),禁止整車其他電控單元的故障診斷,防止程序刷新過程中其他電控單元誤觸發(fā)故障碼;利用UDS的22服務(wù),讀取當(dāng)前TCU的特定信息(如標(biāo)定數(shù)據(jù)版本、軟件版本、硬件版本)保證軟件版本的匹配性。預(yù)編程設(shè)計(jì)流程如圖2所示。

      圖2 預(yù)編程設(shè)計(jì)流程

      2.2 編程設(shè)計(jì)

      在預(yù)編程結(jié)束之后,進(jìn)入編程階段。首先進(jìn)入編程會(huì)話模式,然后通過安全訪問。

      由于FlashDriver是不存儲(chǔ)于TCU內(nèi)部中的,所以第一步是將FlashDriver下載至指定內(nèi)存區(qū)域中。下載完畢利用UDS的31服務(wù)進(jìn)行數(shù)據(jù)校驗(yàn),校驗(yàn)無誤之后通過Bootloader開始調(diào)用FlashDriver程序。

      接下來是根據(jù)需求擦除特定的內(nèi)存區(qū)域并傳輸新的數(shù)據(jù)。傳輸完畢利用UDS的31服務(wù)進(jìn)行數(shù)據(jù)校驗(yàn),校驗(yàn)無誤TCU才保存至特定的內(nèi)存區(qū)域中。編程設(shè)計(jì)流程如圖3所示。

      圖3 編程設(shè)計(jì)流程

      該方案可對(duì)各級(jí)Bootloader進(jìn)行更新,在擦除Bootloader內(nèi)存前會(huì)對(duì)最基礎(chǔ)的Bootloader做備份,防止下載過程中出錯(cuò)導(dǎo)致最基礎(chǔ)的Bootloader丟失。

      2.3 后編程設(shè)計(jì)

      在預(yù)編程和編程結(jié)束之后,功能尋址進(jìn)入擴(kuò)展會(huì)話模式,利用UDS中的28服務(wù),恢復(fù)其他節(jié)點(diǎn)的報(bào)文發(fā)送;利用UDS中的85服務(wù),恢復(fù)其他電控單元的故障診斷。

      根據(jù)整車廠的刷新規(guī)范,還要利用UDS中的2E服務(wù),寫入一些特定的信息(如軟件版本號(hào)、供應(yīng)商號(hào)等),便于保持軟件刷新的可追溯性。后編程設(shè)計(jì)流程如圖4所示。

      圖4 后編程設(shè)計(jì)流程

      3 Bootloader測(cè)試驗(yàn)證

      為了驗(yàn)證此方案的可行性和可靠性,利用了INCA軟件和ETAS582硬件工具進(jìn)行測(cè)試。根據(jù)設(shè)計(jì)的刷新流程,編寫INCA軟件的Prof(INCA軟件的刷新流程)文件,Prof界面如圖5所示。通過Prof界面選擇要刷新的區(qū)域,對(duì)整個(gè)Bootloader方案進(jìn)行多次測(cè)試和驗(yàn)證,INCA刷新界面如圖6所示。

      圖5 Prof界面

      圖6 INCA刷新界面

      測(cè)試結(jié)果表明,該方案能滿足對(duì)TCU的程序刷新,并且整個(gè)過程方便、快速、穩(wěn)定。即使人為操作導(dǎo)致刷新過程失敗,也可以通過上位機(jī)界面或CAN總線數(shù)據(jù)中判斷出失敗的原因所在。

      4 結(jié)論

      基于UDSonCAN服務(wù)的Bootloader的設(shè)計(jì),實(shí)現(xiàn)了只需要與TCU進(jìn)行CAN總線連接,不需要對(duì)TCU硬件拆卸,就可以隨時(shí)隨地進(jìn)行軟件刷新。在前期的開發(fā)設(shè)計(jì)中,節(jié)約了開發(fā)人員的時(shí)間成本;在后期的功能升級(jí)中,提高了售后服務(wù)的工作效率。該方案在整個(gè)刷新過程中穩(wěn)定、防錯(cuò)能力強(qiáng)、可靠性極高,并且嚴(yán)格遵循整車廠的診斷規(guī)范和刷新流程,可拓展于OTA軟件升級(jí)流程中。

      猜你喜歡
      電控內(nèi)存總線
      上海電控所: 三心同繪創(chuàng)新景 電控電抗競(jìng)爭輝
      “春夏秋冬”的內(nèi)存
      基于PCI Express總線的xHC與FPGA的直接通信
      機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
      電控發(fā)動(dòng)機(jī)點(diǎn)火控制系統(tǒng)的原理與診斷
      多通道ARINC429總線檢查儀
      電控氣動(dòng)步進(jìn)系統(tǒng)的PLC實(shí)現(xiàn)
      基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計(jì)
      河南科技(2014年16期)2014-02-27 14:13:22
      空分設(shè)備電控回路的改良
      河南科技(2014年11期)2014-02-27 14:09:54
      基于內(nèi)存的地理信息訪問技術(shù)
      海兴县| 镇雄县| 靖西县| 赣榆县| 剑阁县| 甘南县| 连州市| 黑龙江省| 论坛| 柘城县| 泰顺县| 德化县| 长治县| 青浦区| 泸溪县| 青神县| 石林| 南投县| 淳化县| 长武县| 郓城县| 绥宁县| 儋州市| 惠安县| 南澳县| 奎屯市| 赤峰市| 马山县| 万宁市| 蓬溪县| 黎平县| 麦盖提县| 荔波县| 东安县| 峨眉山市| 马尔康县| 宾川县| 观塘区| 新津县| 图木舒克市| 绥德县|