日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于UDS协议的Bootloader

發(fā)布時(shí)間:2023/12/10 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于UDS协议的Bootloader 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考上汽標(biāo)準(zhǔn):SMTC 2 800 004 電控單元診斷開發(fā)的技術(shù)要求

一、概述

二、Bootloader要求

三、刷新流程

四、刷新示例

一、概述

Bootloader概述:使用UDS協(xié)議服務(wù)實(shí)現(xiàn)應(yīng)用軟件,應(yīng)用數(shù)據(jù)(包括網(wǎng)絡(luò)配置數(shù)據(jù)和標(biāo)定數(shù)據(jù))的更新。Bootloader主要用于:研發(fā)、生產(chǎn)、售后。

?

二、Bootloader要求

?總體要求:

1.bootloader應(yīng)支持刷新電控單元的應(yīng)用軟件、應(yīng)用數(shù)據(jù)(包括網(wǎng)絡(luò)配置數(shù)據(jù)和標(biāo)定據(jù))。

2.bootloader負(fù)責(zé)驗(yàn)證應(yīng)用軟件和應(yīng)用數(shù)據(jù)是否正確。

3.當(dāng)應(yīng)用軟件或應(yīng)用數(shù)據(jù)丟失或需要更新時(shí),電控單元須進(jìn)行刷新以恢復(fù)功能

4.數(shù)據(jù)傳輸基于CAN 總線并滿足 ISO 15765-2 和 ISO 14229-1 的要求

5.任何情況下電控單元都不應(yīng)支持?jǐn)?shù)據(jù)上傳功能

6.應(yīng)用軟件、網(wǎng)絡(luò)配置數(shù)據(jù)和標(biāo)定數(shù)據(jù)應(yīng)可單獨(dú)進(jìn)行刷新。引導(dǎo)加載程序禁止自更新

7.對(duì)于同一物流數(shù)據(jù)標(biāo)識(shí)符,分別從應(yīng)用軟件和引導(dǎo)加載程序獲取到的信息應(yīng)相同?

通信要求

1.引導(dǎo)加載程序應(yīng)使用固定的 CAN ID,與增強(qiáng)型診斷的 CAN ID相同

2.診斷請(qǐng)求和應(yīng)答報(bào)文的數(shù)據(jù)長(zhǎng)度固定 8字節(jié),不足填充0x00

3.網(wǎng)絡(luò)層時(shí)序參數(shù)要求遵照ISO 15765-2定義

4.流控要求

5.應(yīng)用層時(shí)序要求

安全要求

1.電控單元應(yīng)保證從應(yīng)用軟件跳轉(zhuǎn)至bootloader時(shí)的狀態(tài)是安全的

2.測(cè)試設(shè)備應(yīng)使用種子和密鑰進(jìn)行安全訪問,以防止未授權(quán)刷新。

3.bootloader應(yīng)使電控單元輸入輸出端口設(shè)置為安全狀態(tài)

4.bootloader程序應(yīng)被保護(hù),不可刷新,在刷新失敗時(shí)應(yīng)能再次刷新

5.電控單元應(yīng)將刷新計(jì)數(shù)存儲(chǔ)于非易失性存儲(chǔ)器,每次加1

6.電控單元應(yīng)計(jì)算每個(gè)數(shù)據(jù)塊CRC并在退出傳輸服務(wù)請(qǐng)求的肯定應(yīng)答中返回CRC(CRC遵守CTII-16)

7.電控單元應(yīng)對(duì)下載到存儲(chǔ)器的數(shù)據(jù)進(jìn)行完整性檢查

8.電控單元應(yīng)驗(yàn)證應(yīng)用軟件與引導(dǎo)加載程序是否兼容、應(yīng)用數(shù)據(jù)與應(yīng)用軟件是否兼容

9.電控單元退出刷新會(huì)話時(shí)應(yīng)根據(jù)軟件完整性狀態(tài)和軟件兼容性狀態(tài)的參數(shù)值更新軟件有效標(biāo)志位,都有效時(shí)置1,bootloader才能運(yùn)行

會(huì)話管理要求

1.電控單元應(yīng)在收到請(qǐng)求報(bào)文 DSC:02 后500 ms 內(nèi)進(jìn)入引導(dǎo)加載程序的刷新會(huì)話

2.流程

?a) 電控單元運(yùn)行在應(yīng)用軟件時(shí)接收到子功能為 0x02 的服務(wù)$10 請(qǐng)求報(bào)文,應(yīng)置刷新入口標(biāo)志位為真(1)并存儲(chǔ)于非易失性存儲(chǔ)器。

?b) 電控單元復(fù)位。

?c) 電控單元啟動(dòng),進(jìn)入引導(dǎo)加載程序的默認(rèn)會(huì)話,并檢查刷新入口標(biāo)志位的值判斷之前應(yīng)用軟件是否請(qǐng)求進(jìn)入刷新會(huì)話。(刷新入口標(biāo)志位判斷需在啟動(dòng)時(shí)間20 ms 內(nèi)完成。)

?d) 若為真,電控單元進(jìn)入刷新會(huì)話并將刷新入口標(biāo)志清零。

?e) 若為否,電控單元保持運(yùn)行在引導(dǎo)加載程序中的默認(rèn)會(huì)話。僅當(dāng)啟動(dòng)時(shí)間超過20 ms 且軟件有效標(biāo)志位為真時(shí),電控單元從引導(dǎo)加載程序跳轉(zhuǎn)到應(yīng)用軟件

存儲(chǔ)器分配要求

電控單元存儲(chǔ)器分為 4 個(gè)分區(qū)

1)應(yīng)用軟件

2)網(wǎng)絡(luò)配置數(shù)據(jù)

3)標(biāo)定數(shù)據(jù)

4)Bootloader程序

診斷服務(wù)要求

?

???? bootloader應(yīng)支持的服務(wù)

診斷服務(wù)要求

??? 請(qǐng)求下載服務(wù)($34)

n診斷服務(wù)要求

??? 傳輸數(shù)據(jù)服務(wù)($36)

注: 發(fā)生序號(hào)錯(cuò)誤,序號(hào)超過長(zhǎng)度都應(yīng)終止數(shù)據(jù)傳輸

注:將下載循環(huán)中傳輸?shù)臄?shù)據(jù)塊的循環(huán)冗余校驗(yàn)值發(fā)送給測(cè)試工具。校驗(yàn)算法為多項(xiàng)式 CRC16(CITT)。

多項(xiàng)式:0x1021

初始值:0xFFFF

三、刷新流程

刷新步驟

?

?步驟 a(標(biāo)準(zhǔn)步驟):

?????? 刷新事件由一個(gè)會(huì)話類型為刷新會(huì)話,物理尋址/功能尋址的診斷會(huì)話控制($10)服務(wù)開始。電控單元接收到請(qǐng)求報(bào)文后應(yīng)為程序刷新分配一切必須的資源。

步驟 b(標(biāo)準(zhǔn)步驟):

?????? 測(cè)試工具獲取電控單元的物流數(shù)據(jù),如車輛識(shí)別代碼、電控單元硬件號(hào)等。

步驟 c(標(biāo)準(zhǔn)步驟):

?????? 測(cè)試工具解鎖電控單元使能刷新相關(guān)的服務(wù)。 所有可刷新的電控單元應(yīng)支持安全訪問 ($27)服務(wù)。

步驟 d(備選步驟):

?????? 為了允許應(yīng)用軟件/應(yīng)用數(shù)據(jù)下載,電控單元應(yīng)擦除存儲(chǔ)器相應(yīng)的區(qū)域。該功能使用程序控制($31)服務(wù)執(zhí)行存儲(chǔ)器擦除程序。

注:該步驟可選且不推薦使用。電控單元應(yīng)在接收到一個(gè)有效的請(qǐng)求下載($34)服務(wù)請(qǐng)求報(bào)文時(shí)執(zhí)行存儲(chǔ)器擦除操作。

步驟 e(標(biāo)準(zhǔn)步驟):

???? 每次將連續(xù)的數(shù)據(jù)塊下載到非易失性存儲(chǔ)器時(shí)應(yīng)遵循下面的服務(wù)序列:

a) 請(qǐng)求下載($34) ;

b) 傳輸數(shù)據(jù)($36) ;

c) 請(qǐng)求退出傳輸($37)。

????? 在請(qǐng)求下載、傳輸數(shù)據(jù)和請(qǐng)求退出傳輸序列正確執(zhí)行時(shí),電控單元僅支持測(cè)試工具保持連接服務(wù),忽略其它服務(wù)。如果塊長(zhǎng)度超出了網(wǎng)絡(luò)層緩存大小,單個(gè)數(shù)據(jù)塊須使用多個(gè)傳輸數(shù)據(jù)($36)請(qǐng)求報(bào)文才能傳輸完全。

????? 電控單元接收到請(qǐng)求退出傳輸服務(wù)的請(qǐng)求報(bào)文時(shí),應(yīng)計(jì)算下載到非易失性存儲(chǔ)器的數(shù)據(jù)塊的CRC16 校驗(yàn)值,并在肯定應(yīng)答報(bào)文中將該值發(fā)送給測(cè)試工具。測(cè)試工具將電控單元計(jì)算的校驗(yàn)值與工具端的校驗(yàn)值相比較。若二者相等,則證明數(shù)據(jù)塊下載成功。電控單元與測(cè)試工具均采用表 23 中規(guī)定的多項(xiàng)式 CRC16(CITT)算法。刷新文件中的數(shù)據(jù)塊應(yīng)能按地址遞升序列向電控單元傳輸。

?步驟 f(標(biāo)準(zhǔn)步驟):

?????? 當(dāng)所有數(shù)據(jù)塊下載完成后,測(cè)試工具應(yīng)通過程序控制($31)服務(wù)啟動(dòng)完整性檢查程序驗(yàn)證下載是否成功,并更新軟件完整性狀態(tài)參數(shù)。

步驟 g(標(biāo)準(zhǔn)步驟):

?????? 若軟件完整性檢查的結(jié)果為真,則電控單元應(yīng)執(zhí)行刷新相關(guān)性檢查,并根據(jù)檢查結(jié)果更新軟件兼容性狀態(tài)參數(shù)。

步驟 h(標(biāo)準(zhǔn)步驟):

?????? 在應(yīng)用軟件/應(yīng)用數(shù)據(jù)下載之后, 測(cè)試工具應(yīng)更新物流數(shù)據(jù),如刷新信息域、電控單元零件號(hào)等。

步驟 i(標(biāo)準(zhǔn)步驟):

?????? 電控單元須復(fù)位使下載的應(yīng)用軟件/應(yīng)用數(shù)據(jù)生效。電控單元當(dāng)退出刷新會(huì)話時(shí)應(yīng)更新軟件有效標(biāo)志位。

刷新程序標(biāo)識(shí)符規(guī)定

?

0xDFFF:檢查刷新完整性

????? 該數(shù)值用于檢查電控單元存儲(chǔ)器刷新的完整性,包括應(yīng)用軟件、網(wǎng)絡(luò)配置數(shù)據(jù)和標(biāo)定數(shù)據(jù)等。

0xFF00:擦除存儲(chǔ)器

??? 該數(shù)值用于啟動(dòng)電控單元存儲(chǔ)器擦除程序

0xFF01:檢查刷新相關(guān)性

???? 該數(shù)值用于檢查電控單元存儲(chǔ)器刷新的相關(guān)性

引導(dǎo)加載程序特定數(shù)據(jù)標(biāo)識(shí)符

?

AFFC:刷新計(jì)數(shù)

AFFD:軟件完整性狀態(tài)

AFFE:軟件兼容性狀態(tài)

AFFF:軟件有效性標(biāo)志位

四、刷新示例

示例假電控單元物理請(qǐng)求CAN ID 為 0x7E0;電控單元物理應(yīng)答 CAN ID 為0x7E8;功能請(qǐng)求 CAN ID 為 0x7DF

使用子功能為 0x02 的服務(wù)$10 讓車輛 CAN總線上的所有電控單元進(jìn)入刷新會(huì)話。 不可刷新的電控單元應(yīng)進(jìn)入安靜模式,避免干擾刷新事件

使用服務(wù)$22 從電控單元獲取車輛識(shí)別代碼、車輛特征信息和電控單元硬件號(hào)

使用下載數(shù)據(jù)前使用服務(wù)$27 解鎖電控單元。沒有合法的訪問授權(quán),測(cè)試工具和電控單元均不能繼續(xù)刷新流程

測(cè)試工具請(qǐng)求開始下載數(shù)據(jù)并將該數(shù)據(jù)塊的起始地址和尺寸通知電控單元。多個(gè)數(shù)據(jù)庫(kù)需重復(fù)請(qǐng)求下載、傳輸數(shù)據(jù)和請(qǐng)求退出傳輸?shù)姆?wù)序列

使用服務(wù)$36 向電控單元下載所有數(shù)據(jù)。在服務(wù)$34 所描述的數(shù)據(jù)塊下載完成前,測(cè)試工具一直重復(fù)該服務(wù)。

在一個(gè)完整的數(shù)據(jù)塊下載后, 測(cè)試工具使用服務(wù)$37 退出數(shù)據(jù)傳輸。如果還有其它數(shù)據(jù)需要下 載 , 測(cè) 試 工 具 應(yīng) 重 復(fù) 該 服 務(wù) 序 列($34,$36,$37)下載下一數(shù)據(jù)塊

激活 0xDFFF 程序以檢查刷新完整性

激活 0xFF01 程序以檢查刷新相關(guān)性

電控單元刷新成功后,更新電控單元零件號(hào)、刷新信息域和網(wǎng)絡(luò)信息域-當(dāng)前數(shù)據(jù)

復(fù)位電控單元使新下載的應(yīng)用軟件或標(biāo)定數(shù)據(jù)生效

總結(jié)

以上是生活随笔為你收集整理的基于UDS协议的Bootloader的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。