在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

圖解基于UDS的Flash BootLoader

汽車ECU開發 ? 來源: 汽車電子嵌入式 ? 2023-08-14 10:49 ? 次閱讀

130eb3e0-3980-11ee-9e74-dac502259ad0.png

bootloader程序架構

1327a508-3980-11ee-9e74-dac502259ad0.jpg

略有簡化的bootloader圖

這張圖和恒潤教程中的BootLoader流程大體是一致的。

疑問點

Q:圖中的燒寫順序是34-36-34-36-34-36-37,但另一些材料中的順序是34-36-36-36-37。

A:這個問題這樣理解,34-36-36-36-37的前提是你要下載的數據是連續的數據,每個36所使用的地址信息,都是34中包含的地址信息再加上一定的偏移量。

如果需要下載不連續的數據,就需要重新進行34服務或31(擦除)-34服務。

1、為什么要搞Bootloader?為什么要基于UDS搞Bootloader

假如你的控制器有外殼,卻沒有設計bootloader的話,每次更新ECU的程序,你都需要把外殼拆開,用燒寫器來更新程序。有了bootloader,你就可以通過CAN線來更新程序了。更方便些的話,甚至可以通過OTA進行遠程升級。

那為什么使用UDS呢?主要是為了規范bootloader的全過程。比如燒寫小明牌ECU時,我們肯定希望其他牌子的ECU處于一個靜默的狀態,都歇一歇,這就需要一個大家共同執行的標準來進行規范,什么時候停發數據,什么時候不能再儲存DTC了等等。

又比如在調試時,大家肯定希望你的控制器經由CAN燒寫的過程是大家都能看得懂的,是滿足于某種規范的。由此,UDS在設計時考慮了bootloader的需求,專門為bootloader設計了幾個服務,供大家使用。主機廠在發需求時自然就要求大家要在UDS規范的基礎上完成bootloader功能了。

2、Bootloader應支持的UDS服務

顯然bootloader不需要支持19/14等故障類服務。

在boot程序中,10/27/11/3E這樣的基礎診斷服務需要支持,22/2E讀寫DID的服務需要支持,31/34/36/37這4個bootloader主打服務需要支持,共10個。

在app段程序中,85和28服務需要支持,保證暫停CAN正常通信,暫停記錄DTC,讓被升級設備專心升級。

13315562-3980-11ee-9e74-dac502259ad0.jpg

10種boot段服務+2種app段服務

3、Bootloader——三段式

(1)預編程階段

1. 3E TP報文。

2. 10服務切換到03擴展模式。

3. 85服務和28服務,關DTC和非診斷報文。使整個CAN網絡處于安靜的狀態。這是對整車網絡進行操作的,一般都是以功能尋址的方式來發送。注意先用85服務關閉DTC,再使用28服務關報文。

1348f050-3980-11ee-9e74-dac502259ad0.png

(2)主編程階段

1. 10服務切換到編程模式,這里要注意,正確的方式是App段程序回復0x78 NRC,接下來跳轉到boot段程序,最后由Boot段程序來回復10 02的肯定響應。錯誤的方式是由App段回復10 02的肯定響應,再進行跳轉。

2. 讀取一個DID,tester要判斷一下返回值。返回值里面可能包含密鑰的一部分信息。

3. 27服務,解鎖,通過安全驗證。

13640de0-3980-11ee-9e74-dac502259ad0.jpg

注意10 02服務不應直接進行肯定響應,存在風險

1370d78c-3980-11ee-9e74-dac502259ad0.jpg

4. 寫DID指紋,標記寫軟件人的身份,ECU回復寫指紋成功。(根據OEM要求來執行)

5. 31服務-擦除Flash。ECU肯定響應,擦除成功。

6. 34服務,請求數據下載,ECU回復確認最大塊大小。

7. 36服務,開始傳輸數據。每個塊傳輸完成后,ECU肯定響應。判斷是否還有更多塊需要下載。最多可以支持255個塊。

8. 37服務,請求退出傳輸。ECU肯定響應。

9. 31服務-校驗APP段程序,檢查編程一致性/完整性。ECU肯定響應。校驗成功。

10. 若有更多塊需要下載,重新執行31(擦除Flash區域)-34-36-37-31(校驗)服務。若無,往下執行。

11. 11服務,ECU復位。之后應直接跳轉到新下載的APP段程序中。

138fe19a-3980-11ee-9e74-dac502259ad0.jpg

31(擦Flash)-34-36

13aed8c0-3980-11ee-9e74-dac502259ad0.jpg

36-37-31(校驗)

(3)后編程狀態

1. 10服務切換到03擴展會話。

2. 執行28服務和85服務,使能非診斷報文和DTC。這是對整車網絡進行操作的,一般都是以功能尋址的方式來發送。注意先執行28,后執行85,避免DTC誤報。

13b8126e-3980-11ee-9e74-dac502259ad0.png

3. 27服務,安全校驗,準備寫入數據。

4. 2E服務,將編程信息寫入到ECU中。

5. 10服務,退回01默認會話。結束。

13d4b478-3980-11ee-9e74-dac502259ad0.jpg

4、BootLoader的啟動順序與轉換流程

以下流程僅作為參考,有很多不規范之處。歡迎大家留言探討。

1. ECU上電或復位后,先進入Boot段。從Flash/EEPROM中讀取 App有效標志,運行boot標志 。

2.判斷運行boot標志,若為1,則進入Boot段的編程會話(安全等級為上鎖),之后寫Flash/EEPROM(不安全操作),運行boot標志清零。若S3定時器超時則退回Boot段默認會話。

3. 經過安全訪問進入Level2解鎖狀態,開始執行App內存擦除,擦除后 App有效標志清零(不安全操作)。

4. 開始燒寫。燒寫成功后運行boot標志寫0,App有效標志 寫1。

2*. 判斷運行boot標志,若為0,則進入Boot段的默認會話。

3*. 50ms后判斷 App有效標志,若為1,則跳轉到 App段默認會話。實現時使用匯編指令執行APP段程序;若為0,退回Boot段默認會話,且不再判斷 App有效標志,不會再嘗試進入App段。

4*. App段程序若收到了編程會話請求,運行boot標志寫1 ,隨即執行ECU復位,這樣會重新進入boot段程序。

注:從BOOT跳入APP前需要判斷APP的數據完整性,例如進行CRC校驗。

5、問題點

Q:假如燒進去了不良App段程序,無法返回boot段程序怎么辦?

A:參照電腦的開機方式,在ECU開機之后,預留很短的一段時間維持在boot狀態,在這段時間內,若收到指定報文(比如,電腦是按住F8),那么就不跳轉到App段了。

Q:運行boot標志和App有效標志為了安全起見,應該保存到哪里?

A:運行boot標志可以放置在RAM中,由Boot和App共用。

Q:上文圖中的CAN數據實例,為什么出現了兩次CRC的校驗?CRC校驗是對哪些數據的校驗?

A:OEM不希望ECU中保存有可以擦寫Flash的代碼,所以BootLoader需要在燒錄App之前,先把擦寫Flash的代碼通過UDS燒寫到RAM中,燒完了之后進行一下31服務下的CRC校驗。之后燒錄ECU的App程序,App可能會因為地址不連續而分為很多段下載。下載完畢后需要進行總的CRC校驗。不管哪次校驗,CRC所校驗的數據是代碼的數據段,即36服務中傳輸的有效數據。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FlaSh
    +關注

    關注

    10

    文章

    1642

    瀏覽量

    148682
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2770

    瀏覽量

    464389
  • 通信
    +關注

    關注

    18

    文章

    6072

    瀏覽量

    136428
  • ecu
    ecu
    +關注

    關注

    14

    文章

    892

    瀏覽量

    54750
  • bootloader
    +關注

    關注

    2

    文章

    235

    瀏覽量

    45737

原文標題:圖解基于UDS的Flash BootLoader

文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TSMaster 的 CAN UDS 診斷操作指南(下)

    UDSonCAN/CANFD的功能以及詳細的使用操作。本文關鍵詞:UDSBootLoader,自動診斷流程,診斷系統變量目錄Catalog4.TSMaster診斷控制臺5.
    的頭像 發表于 06-18 08:21 ?2088次閱讀
    TSMaster 的 CAN <b class='flag-5'>UDS</b> 診斷操作指南(下)

    Flash bootloader 軟件免費體驗報名了,數量有限僅有5套測試板

    Flash bootloader 軟件免費體驗報名了,數量有限僅有5套測試板,先到先得。2015-04-21 15:36來源:深圳市富裕龍電子作者:Ken使用群體:汽車電子ECU開發人員,測試人員
    發表于 04-25 17:23

    STM32 Bootloader UDS技術要點是什么?

    STM32 Bootloader UDS技術要點是什么?
    發表于 02-11 07:26

    基于MM32F0140系列MCU實現UDS Bootloader的設計

    1、使用MM32F0140系列MCU實現UDS Bootloader  MM32F0140 使用高性能的 Arm?Cortex-M0 內核的 32 位微控制器,最高工作頻率可達 72MHz,內置
    發表于 09-15 16:35

    求分享S32K3xx UDS引導加載程序

    我的BootLoader工程是基于UDS協議實現燒寫的,燒寫功能是通過配置EB實現的,EB版本為28.2.0,RTD版本為2.0.2。 為了防止擦寫函數被誤觸發,我想直接在RAM區間內生成擦寫函數
    發表于 05-12 08:12

    BOOTLOADER (基于Platform Flash)

    Xilinx FPGA工程例子源碼:BOOTLOADER (基于Platform Flash)
    發表于 06-07 14:13 ?9次下載

    基于不同類型Flash-ROM的Bootloader設計

    基于不同類型Flash-ROM的Bootloader設計
    發表于 10-26 11:41 ?11次下載
    基于不同類型<b class='flag-5'>Flash</b>-ROM的<b class='flag-5'>Bootloader</b>設計

    加載flash并執行(LFAE)次級bootloader的示例

    這篇應用筆記描述了一個加載flash并執行(LFAE)次級bootloader的示例。這個應用是開發來增強AN2546中給出的加載RAM并執行主bootloader的,其中加入了允許隨意寫fl
    發表于 11-24 13:53 ?3224次閱讀

    STM32單片機bootloader掃盲

    BootLoader只不過是擁有從外部接收數據,更新Flash(也就是APP),跳轉至APP功能的特殊APP罷了。以STM32F103為例,如果沒有BootLoaderflash
    發表于 11-26 18:21 ?77次下載
    STM32單片機<b class='flag-5'>bootloader</b>掃盲

    STM32 Bootloader UDS 技術概要

    STM32在單片機領域因性價比高受到廣大工程師的青睞,筆者最近做了一個STM32 M3內核的BootLoader現在把技術的要點梳理如下:1、首先是對ROM分區的規劃,把ROM劃分為BOOT區
    發表于 12-08 16:21 ?18次下載
    STM32 <b class='flag-5'>Bootloader</b> <b class='flag-5'>UDS</b> 技術概要

    UDS常用診斷服務

    UDS診斷概述 UDS(Unified Diagnostic Services,統一的診斷服務)診斷協議是在汽車電子ECU環境下的一種診斷通訊協議。簡單來說,可以理解為UDS診斷協議就是ISO
    的頭像 發表于 06-12 10:36 ?1.3w次閱讀
    <b class='flag-5'>UDS</b>常用診斷服務

    STM32 UDS Bootloader開發需求

    本次使用的單片機為STM32F103RCT6,flash大小256k,一個扇區2k,SRAM:48KB
    發表于 06-12 15:44 ?1445次閱讀
    STM32 <b class='flag-5'>UDS</b> <b class='flag-5'>Bootloader</b>開發需求

    基于CAN總線的UDS診斷Bootloader升級MCU工具

    今日跟大家分享參加野火【瑞薩RA MCU創意氛圍賽】選手的項目——基于CAN總線的UDS診斷Bootloader升級MCU工具。
    的頭像 發表于 08-21 14:01 ?2490次閱讀
    基于CAN總線的<b class='flag-5'>UDS</b>診斷<b class='flag-5'>Bootloader</b>升級MCU工具

    基于MM32F0140的UDS Bootloader學習筆記

    基于MM32F0140的UDS Bootloader學習筆記
    的頭像 發表于 10-30 17:11 ?822次閱讀
    基于MM32F0140的<b class='flag-5'>UDS</b> <b class='flag-5'>Bootloader</b>學習筆記

    如何開發不帶Flash API 的Bootloader實現在線升級

    電子發燒友網站提供《如何開發不帶Flash API 的Bootloader實現在線升級.pdf》資料免費下載
    發表于 09-12 09:41 ?0次下載
    如何開發不帶<b class='flag-5'>Flash</b> API 的<b class='flag-5'>Bootloader</b>實現在線升級
    主站蜘蛛池模板: 欧美午夜精品一区二区三区 | 亚洲成人在线免费 | 正在播放亚洲一区 | 国产精品青草久久 | 亚洲五月综合缴情婷婷 | 97视频hd | 黄视频在线观看网站 | 亚洲综合激情九月婷婷 | 欧洲一卡二卡乱码新区 | 激情五月网站 | 久久久久国产 | 奇米影视7777 | 午夜影院在线观看免费 | 狂捣猛撞侍卫攻双性王爷受 | 在线观看精品国产入口 | 国产黄色网| 色吧综合网 | 一级福利视频 | 日本免费一区二区视频 | 国产激烈床戏无遮挡观看 | 五月婷婷色视频 | 免费91视频 | 国产精品一区在线观看你懂的 | 看全色黄大色大片免费久久怂 | a理论片| 天天天天天操 | 婷婷99视频精品全部在线观看 | 亚洲国产精品久久久久婷婷老年 | 中年艳妇乱小玩 | 好爽好黄的视频 | 九九99久久精品午夜剧场免费 | 成人午夜免费视频毛片 | 色综合天天射 | 手机亚洲第1页 | 日本色午夜 | 中文字幕精品一区影音先锋 | 青草青青产国视频在线 | 白丝丝袜高跟国产在线视频 | 欧美三级视频网 | 天堂视频在线视频观看2018 | 天天干天天舔天天射 |