那曲檬骨新材料有限公司

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

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

3天內不再提示

簡述基于UDS的BootLoader架構設計及規范

汽車工程師 ? 來源:CSDN技術社區 ? 作者: 摸魚的攻城獅 ? 2021-10-20 09:43 ? 次閱讀

01

BootLoader概述

1.1 Boot Loader設計目的

車載控制器軟件需要滿足兩方面的要求:

1)、功能方面的需求:用戶需要的基本功能實現;

2)、更新及升級需求:對于售后的要求,車輛上市后針對軟件缺陷修復及后續功能擴展等要求。

刷寫App程序存在兩種方式:

1)、使用仿真器或燒錄器直接燒錄Application;

2)、將Application數據通過總線(CAN、LIN、CANFD或以太網)按照一定格式傳輸給ECU。

對于實車,直接連接燒錄器或仿真器這種方式極不方便且花費較大,再者安全性不高。因此,產品很少存在燒錄接口。從經濟使用的角度來講,普遍采用第二種方式。

1.2 Boot Loader基本功能

Boot Loader又稱為引導加載程序,引導加載程序是系統上電后運行的第一段軟件代碼,常被用來加載系統或者更新系統等。因此,大部分的Boot Loader存在兩種不同的操作模式:

1)啟動模式

啟動加載(BootLoading)模式也稱為自主模(Autonmous)式,即BootLoader從目標機上某個固態存儲設備上將操作系統加載至RAM中運行,整個過程中并沒有用戶的介入。

2)下載模式

在下載(DownLoading)模式下,目標機上的Boot Loader將通過串口連接或者網絡連接等通信手段下載文件,如下載內核映像和根文件系統映像等。通常文件會保存在RAM中,然后將其寫入目標地址完后系統的更新等。

02

BootLoader基本需求設計

2.1 Boot Loader功能概述

兩個SWC:

1)、啟動管理——控制器的啟動管理等

2)、應用程序——ECU軟件下載升級及標定數據再編程

四個服務模塊:

1)、內存管理——軟件更新主要是將Flash中的Application及標定數據重編程,內存擦除與重寫驅動必不可少的模塊;

2)、CAN協議棧——軟件更新媒介

3)、看門狗模塊——軟件運行保護

4)、安全模塊——軟件數據保護,下載數據校驗等

2.2 ECU啟動時序

Bootloader是所有支持重編程的ECU必須具備的軟件功能,在ECU運行過程中,執行的是應用軟件和應用數據,僅當應用軟件或應用數據無效時,或者要求對其進行升級或特殊測試時,Bootloader軟件才被激活。啟動過程如下圖所示:

2.3 軟件執行安全機制設計

2.3.1 應用軟件運行安全性

應用軟件和應用數據可以同時編程或者相互獨立編程,不允許Boot Loader在軟件運行時被非法修改。因此,Bootloader軟件存儲于被保護的存儲器區域,即使發生潛在錯誤時,控制器始終保證可重新編程。

基于軟件運行安全性考慮,flash diver不會存在放在flash中,避免正常程序在發生錯誤時可能的非法修改。在需要執行應用程序或應用數據需要時,首先將flash diver下載至ram中,然后執行相應的更新。

基于以上考慮,將Boot Loader劃分為:

PBL(Primary Boot Loader):用于啟動過程中的狀態管理及下載軟件等,下載 SBL、更新應用軟件及應用數據

SBL(Secondary Boot Loader):本質為Flash Diver(可被用來修改寫在flash中生產信息校驗信息等),下載完成后重新啟動將會被清除

##SBL也可是運行在RAM中的另一個完整Boot Loader,以上將其認為flash driver

2.3.2 軟件更新安全機制設計

為確保下載的安全,ECU需設計安全機制,避免以下幾種情況:a. 來自非法源的下載動作;b. 當前編程條件不滿足;c. 下載錯誤的應用軟件或應用數據到ECU;d. 軟件之間不兼容;

解決措施:

1)、安全訪問——ECU通過SEED&KEY機制進行安全訪問服務限制,保證ECU免遭未授權的編程動作影響。

2)、預編程條件——ECU確保編程時處于安全狀態,條件不滿足(如高壓上電或車輛運行)時,編程服務請求將被拒絕。

3)、完整性校驗——ECU對即將下載到存儲器的程序或數據進行完整性檢查,當一個邏輯模塊下載后,使用CRC32算法驗證當前邏輯塊的所有數據字節是否被正確傳輸和寫入。通過“檢查編程完整性”例程控制激活ECU完整性校驗。當ECU接收到此服務請求時,Bootloader將計算下載數據字節的CRC32值,并將計算結果與診斷儀請求報文中發送的校驗值進行比較。

4)、一致性檢查——不兼容的軟件不能配合使用,如果配合使用可能會使功能異常或產生致命性錯誤。為此,ECU通過驗證軟件兼容性來檢查編程程序的一致性,包括應用軟件與Bootloader軟件、應用數據與應用軟件檢驗等。

5)、有效性檢查——ECU內部有一個標志位,用于標識應用軟件是否有效。如果編程完整性檢查和一致性檢查都正確時,ECU才會設置應用軟件的標志位為有效。只有標志位為有效時,應用軟件才可以運行。

03

BootLoader重編程流程設計

3.1 BootLoader重編程會話跳轉設計

在應用模式下,使用了兩種不同的診斷會話模式:默認會話模式和擴展會話模式。

在Bootloader模式下,使用了三種不同的診斷會話模式:默認會話模式,擴展會話模式和編程會話模式。

如果ECU在正確的條件下收到“$10 $02”指令,ECU將重編程請求標志狀態位設為有效,并執行ECU重啟。

上電/復位后,ECU首先執行Bootloader引導代碼,然后檢查外部編程請求標志位:

1)、如果外部編程請求標志位為有效,那么即使應用程序是有效的,Bootloader也會繼續進一步執行,在此情況下,ECU直接進入編程會話模式。

2)、如果外部重編程請求標志位為無效,則繼續檢查應用軟件的標志位狀態:(a)、 如果應用軟件是有效的,則啟動應用模式;(b)、如果應用軟件無效,ECU停留在Bootloader模式下的默認會話模式。

在Bootloader模式下,ECU重啟方式:

1)、無論當前處于何種會話模式,“$11 $01”都會引導ECU重啟;

2)、 在擴展會話模式或編程會話模式下,S3定時器超時會導致ECU重啟;

3)、在編程會話模式下,“$10 $01”會導致ECU重啟。

3.2 BootLoader重編程時序設計

編程時序分為三個編程步驟:

預編程步驟:編程前的CAN網絡準備;

主編程步驟:下載應用軟件或應用數據;

后編程步驟:重同步CAN網絡。

如果在預編程、主編程和后編程步驟過程中,任何物理尋址的請求及響應不滿足要求,則全部時序需再次執行。

3.2.1 預編程步驟

預編程步驟用來為要下載的ECU做重編程前的CAN網絡準備。此步驟也包含了提高下載速度的準備。此步驟的請求報文能采用的是物理尋址,或功能尋址。如下圖所示:

a)、診斷會話控制 $10 $03:為了禁止ECU間的正常通信和控制DTC設置,預編程需要啟動非默認會話模式。通過使用會話類型為擴展會話模式的診斷會話控制($10)服務來完成。此請求使用一個單幀請求報文,通過功能尋址發送給所有的ECU。

b)、例程控制“檢查編程預條件” $31 $01 $XXXX:通過此例程來檢查ECU編程條件,從而確保系統安全,如果有任何不安全的因素,ECU將拒絕編程。

注意:如果ECU在未收到“檢查編程預條件”例程($31 $01 $XXXX)的情況下,收到“$10 $02”請求,ECU將拒絕進入Bootloader模式,并且發送否定響應。

c)、控制DTC設置 $85 $02:診斷儀通過DTC設置類型設為“關閉”的控制DTC設置服務請求。此請求使用一個單幀請求報文,通過功能尋址發送給所有的ECU。

d)、通信控制 $28 $03 $03:診斷儀通過通信控制($28)服務請求,禁止非診斷報文的發送和接收。請求中的控制類型參數置為“disable the transmission and the reception”,通信類型置為“application and network management messages”。此請求使用一個單幀請求報文,通過功能尋址發送給所有的ECU。

3.2.2 主編程步驟

在預編程步驟之后,是主編程步驟。主編程時序是單個ECU編程事件的應用,因此所有服務的請求都使用物理尋址。

a)、診斷會話控制 $10 $02:在收到一個尋址方式為物理尋址,子功能為編程會話的診斷會話控制($10)服務后,ECU啟動Bootloader,并分配編程所需的所有資源。ECU需先發送肯定響應,再執行跳轉到編程模式動作。

b)、安全訪問 $27 $XX/XX:編程事件必須通過安全訪問。安全訪問($27)服務在排放相關和安全系統中是強制的。其它系統不要求使用該服務。下載前,通過安全訪問過程是強制的,確保只有合法的診斷儀能對ECU進行下載操作。

c)、驅動下載 $34,$36,$37,$31:當ECU的非易失性存儲單元中沒有存儲內存驅動時,將執行內存驅動的下載。下載應該按照如下時序來進行:請求下載、傳輸數據、請求傳輸退出。下載完所有字節后,用“檢查編程完整性”例程($31 $01 $XX $XX)來檢查所有的字節都正確傳輸。

d)、寫入數據 $2E $XXXX:在擦除內存例程之前,將“指紋”寫到ECU內存中是強制的。“指紋”標識了是哪個診斷儀對ECU內存做了修改。使用XXXX數據標識符而不是引導軟件指紋、應用軟件指紋、應用數據指紋這些數據標識符。每個邏輯塊(除了驅動)下載前,診斷儀將首先寫“指紋”,在下載完邏輯塊后,ECU將識別之前下載的程序是哪個邏輯塊(即邏輯塊序號),并根據邏輯塊的序號將它存儲。在追蹤指紋信息時,診斷儀將發報文“$22 $XXXX”,ECU將通過“$62 $XXXX”,返回每一個邏輯塊的指紋信息。

e)、例程控制——“擦除內存” $31 $01 $XXXX:為了允許應用軟件和數據下載,ECU的內存將被擦除。此步驟通過例程控制服務($31)來執行擦除內存。如果擦除內存例程被調用執行,那么應用軟件的標志位將被置為無效。

f)、下載過程 $34 $36 $37:應用軟件或者數據的每一個連續的數據塊(也叫段,可能是一個完整的應用軟件或者數據,也可能是應用軟件或者數據的一部分)下載到ECU非易失性內存中,都是遵循下面的服務順序完成數傳輸:請求下載($34)、傳輸數據($36)、請求退出傳輸($37)。

注:單個應用軟件或數據塊可能需要多個數據傳輸($36)請求報文來完成傳輸(當數據塊長度超出網絡層緩存大小時,就會出現這種情況)。

g)、例程控制——“檢查編程完整性” $31 $01 $XXXX:此例程用來檢查邏輯塊的完整性。

h)、例程控制——“檢查編程一致性” $31 $01 $XXXX:一旦完成所有的應用軟件或數據塊/模塊的下載,診斷儀將開始一個例程來觸發ECU檢查重編程的一致性。

i) 、電控單元復位 $11 $01:診斷儀使用物理尋址,發送一個復位類型為硬復位的ECU復位($11)服務請求報文到CAN網絡上。

備注:通過ECU復位服務請求將使ECU結束重編程過程,返回到正常的操作模式。內存驅動代碼必須從RAM緩存中完全清除,避免意外激活這些可能會進行非預期的內存擦除或程序操作的代碼。

3.2.3 后編程步驟

a)、診斷會話控制 $10 $01:診斷儀發送一個會話類型為默認會話的診斷會話控制($10)服務請求報文到CAN網絡上。所有的ECU接收到診斷會話控制($10),而進入到默認會話模式。此請求通過功能尋址發送,請求發送給所有包含在編程事件中或因此而進入非默認會話模式的ECU。跳轉到默認會話模式,表示通信控制($28)服務和控制DTC設置($85)服務也將復位到默認狀態。

b)、清除診斷信息 $14 FF FF FF:如果重編程ECU在編程步驟被重啟,當編程ECU運行在默認會話模式時,網絡上其它的ECU仍然在不能正常通信狀態,此時,一些可能被存儲在編程ECU中的診斷信息就應該通過物理尋址的清除診斷信息($14)服務來清除。

版權聲明:本文為CSDN博主「摸魚的攻城獅」的原創文章,轉載請附上原文出處鏈接及本聲明。

編輯:jq

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

    關注

    88

    文章

    3637

    瀏覽量

    93989
  • ecu
    ecu
    +關注

    關注

    14

    文章

    892

    瀏覽量

    54756
  • CAN網絡
    +關注

    關注

    1

    文章

    44

    瀏覽量

    17006

原文標題:技術|基于UDS的BootLoader設計——架構設計及規范

文章出處:【微信號:e700_org,微信公眾號:汽車工程師】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    軟件架構設計教程

    軟件架構設計教程
    發表于 09-26 15:27

    【汽車電氣架構設計軟件】

    因工作需要,求整車電氣架構設計軟件——PREEvision(盜版),價格可議,WetChat/***,非誠勿擾
    發表于 04-18 14:20

    STM32軟件架構設計的意義

    STM32軟件架構1、架構設計的意義(1)應用代碼邏輯清晰,且避免代碼冗余;(2)代碼通用性,方便軟件高速、有效的移植;(3)各功能獨立,低耦合高內聚;2、總體架構圖3、結構層說明4、遵循規則5、優劣評估6、STM32實例說明
    發表于 08-04 07: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

    系統架構設計的詳細講解

    上一篇,我們討論了故障度量和安全機制的ASIL等級。本篇我們來聊一聊系統架構設計相關內容。01系統架構設計和TSC當我們開始寫TSC時,會涉及到下圖中一系列的內容:當我們完成前三期(鏈接見文末)提到的安全機制規范后,我們就要開始
    的頭像 發表于 12-24 14:33 ?1772次閱讀

    SWE.2的軟件架構設

    過程ID:SWE.2 過程名稱:軟件架構設計 過程目的:軟件架構設計過程目的是建立一個架構設計,識別哪些軟件需求應該分配給軟件的哪些要素,并根據已定義的標準評估軟件架構設計。 ? 過程
    的頭像 發表于 01-11 10:36 ?2830次閱讀

    SYS.3的系統架構設

    系統架構設計 過程ID:SYS.3 過程名稱:系統架構設計 ? 過程目的:系統架構設計過程目的,是建立系統架構設計,并確定將哪些系統需求分配給系統的哪些要素,以及根據已定義的準則評估系
    的頭像 發表于 02-13 16:02 ?2751次閱讀

    架構與微架構設

    下面將從芯片的架構設計、微架構設計、使用設計文檔、設計分區、時鐘域和時鐘組、架構調整與性能改進、處理器微架構設計策略等角度進行說明,并以視頻H.264編碼器設計為例。
    的頭像 發表于 05-08 10:42 ?1261次閱讀
    <b class='flag-5'>架構</b>與微<b class='flag-5'>架構設</b>計

    無線收發系統架構簡述

    無線收發系統架構簡述
    的頭像 發表于 05-09 11:15 ?1255次閱讀
    無線收發系統<b class='flag-5'>架構</b><b class='flag-5'>簡述</b>

    UDS常用診斷服務

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

    圖解基于UDS的Flash BootLoader

    這張圖和恒潤教程中的BootLoader流程大體是一致的。
    的頭像 發表于 08-14 10:49 ?1284次閱讀
    圖解基于<b class='flag-5'>UDS</b>的Flash <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工具

    SWE.2軟件架構設

    過程ID : SWE.2 過程名稱 : 軟件架構設計 過程目的 : 軟件架構設計過程目的是建立一個架構設計,識別哪些軟件需求應該分配給軟件的哪些要素,并根據已定義的標準評估軟件架構設
    的頭像 發表于 08-24 09:43 ?994次閱讀

    基于MM32F0140的UDS Bootloader學習筆記

    基于MM32F0140的UDS Bootloader學習筆記
    的頭像 發表于 10-30 17:11 ?822次閱讀
    基于MM32F0140的<b class='flag-5'>UDS</b> <b class='flag-5'>Bootloader</b>學習筆記
    大发888最新版本下载| 开心8百家乐官网现金网| 百家乐单跳双跳| 博彩老头排列三| 环球百家乐官网娱乐城| 棋牌游戏源码| 时时博百家乐官网的玩法技巧和规则 | 江山百家乐官网的玩法技巧和规则| 太阳城御园| 至尊百家乐官网赌场娱乐网规则 | 涂山百家乐的玩法技巧和规则| 百家乐官网游戏平台架设| 百家乐庄闲排| 澳门百家乐官网打法百家乐官网破解方法 | 娱网棋牌官方网站| 百家乐官网下注法| 海港城娱乐城| 真人百家乐是啥游戏| 百家乐官网规则技法| 利都百家乐国际娱乐场开户注册 | 至尊百家乐| 宝博百家乐娱乐城| 真人百家乐官网怎么对冲| 百家乐太阳娱乐网| 免费玩百家乐官网的玩法技巧和规则 | 澳门开户| 百家乐平台开户哪里优惠多| 奔驰百家乐官网游戏| 百家乐官网博赌城| 皇城国际| 网上百家乐怎么赌能赢钱| 百家乐官网之三姐妹赌博机| 二八杠游戏平台| 百家乐加牌规则| 百家乐官网有哪些注| 正品百家乐的玩法技巧和规则| 网上百家乐官网是假还是真的| 六合彩特码| 赌场百家乐是如何| 不夜城百家乐官网的玩法技巧和规则| 六合彩开奖日期|