日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

FOTA技術(shù)專欄—UDS刷寫

 十一號(hào)組織 2023-02-07 發(fā)布于上海

公眾號(hào)前面幾篇文章,筆者已經(jīng)對(duì)FOTA、SOTA、信息安全等內(nèi)容進(jìn)行了系統(tǒng)性的綜述。從本期開始,筆者將開設(shè)技術(shù)專欄,分別對(duì)上述主題展開更詳細(xì)、深入的介紹,以饗讀者,也期望在和同行的交流中碰撞出更四射的火花。

首先推出的是FOTA技術(shù)專欄,專欄第一篇文章,筆者將介紹整車部分控制器FOTA技術(shù)實(shí)現(xiàn)所需仰賴的底層技術(shù)之一:UDS刷寫。

UDS刷寫簡(jiǎn)述

UDS(Unified Diagnostic Services,統(tǒng)一診斷服務(wù))刷寫,指的是基于應(yīng)用層協(xié)議(ISO 14229)和網(wǎng)絡(luò)層協(xié)議(與通信物理層相關(guān),如面對(duì)CAN總線的ISO 15765-2)定義的控制器軟件升級(jí)流程。

UDS刷寫應(yīng)用對(duì)象一般為采用ETH/CAN/LIN等總線通訊的車載傳統(tǒng)控制器。車載傳統(tǒng)控制器主芯片以MCU為主,MCU上主要運(yùn)行嵌入式實(shí)時(shí)操作系統(tǒng)。UDS刷寫主要是通過診斷上位機(jī)(Tester)給車載傳統(tǒng)控制器發(fā)送定義好的診斷服務(wù)命令實(shí)現(xiàn)。

與車載傳統(tǒng)控制器相對(duì)應(yīng)的是存在高算力芯片的控制器,民間常稱之為智能控制器。此類控制器一般存在雙分區(qū)結(jié)構(gòu)且具有滿足POSIX標(biāo)準(zhǔn)的操作系統(tǒng)(一般為Android、QNX或Linux等),其軟件升級(jí)流程一般自主實(shí)現(xiàn),本文介紹的UDS刷寫技術(shù)暫不適用此類控制器。

UDS線下刷寫的應(yīng)用歷史已有幾十年,最典型的應(yīng)用場(chǎng)景是在4S店。帥氣的技師們扛著電腦或者專用的診斷儀對(duì)車輛控制器進(jìn)行軟件升級(jí)便是UDS線下刷寫的最生動(dòng)體現(xiàn)。在這一場(chǎng)景中,電腦或診斷儀作為上位機(jī),通過車輛OBD口接入整車網(wǎng)絡(luò)總線,并將升級(jí)包(一般為hex,s19格式)按主機(jī)廠定義的的刷寫流程對(duì)車輛控制器進(jìn)行刷寫。

UDS線上刷寫的應(yīng)用伴隨著FOTA技術(shù)的成熟而得到不斷推廣。在FOTA的通用技術(shù)架構(gòu)下,一般由FOTA的升級(jí)主控(升級(jí)Master)作為上位機(jī),升級(jí)主控從云端下載升級(jí)包,并按照固定的刷寫流程或者升級(jí)包中配置的刷寫流程,對(duì)車輛上的對(duì)手件進(jìn)行刷寫。

UDS刷寫無論線下還是線上,都離不開控制器中Bootloader以及UDS協(xié)議的支持,在正式介紹UDS刷寫流程之前,筆者先簡(jiǎn)介上述兩部分內(nèi)容。

Bootloader

Bootloader稱為引導(dǎo)加載程序,是軟件執(zhí)行的第一步,無論是否使用操作系統(tǒng),Bootloader都是必須執(zhí)行的。

我們?nèi)粘^k公電腦中的Windows系統(tǒng)是由BIOS引導(dǎo)啟動(dòng)的,BIOS開機(jī)自檢并分配資源后,將Bootloader 讀到系統(tǒng)的內(nèi)存中。隨后Bootloader獲取電腦控制權(quán),將指針帶到系統(tǒng)內(nèi)核,開始啟動(dòng)操作系統(tǒng)。

上文介紹的車載傳統(tǒng)控制器啟動(dòng)過程同樣離不開Bootloader的幫助。Bootloader初始化硬件設(shè)備,建立內(nèi)存空間映射圖,將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。在控制器軟件升級(jí)過程中,Bootloader進(jìn)入編程會(huì)話后會(huì)擦除指定地址的程序,并寫入新的程序,從而實(shí)現(xiàn)控制器的軟件升級(jí),后文會(huì)詳細(xì)闡述該過程。

UDS協(xié)議

UDS協(xié)議就是ISO 14229標(biāo)準(zhǔn)的別名,全稱為統(tǒng)一診斷服務(wù)的應(yīng)用層協(xié)議,標(biāo)準(zhǔn)規(guī)范了基于Bootloader的刷寫過程。各家主機(jī)廠均是基于UDS協(xié)議制定企業(yè)的診斷刷寫規(guī)范,在控制器的SOR階段會(huì)一同釋放給供應(yīng)商。

對(duì)于各控制器的供應(yīng)商而言,刷寫流程的統(tǒng)一簡(jiǎn)化了開發(fā)復(fù)雜度。UDS協(xié)議可在不同的汽車網(wǎng)絡(luò)通信(例如CAN、LIN、 Flexray、 Ethernet 和 K-line)上實(shí)現(xiàn),最常用的為UDSonCAN和UDSonIP(DoIP)兩種。下圖為ISO 14229中各車內(nèi)總線實(shí)現(xiàn)UDS協(xié)議的網(wǎng)絡(luò)模型圖。

以UDSonCAN舉例, CAN總線協(xié)議是汽車內(nèi)最常使用的總線協(xié)議,每幀僅有8字節(jié),ISO 15765-2解決了ISO 11898協(xié)議中定義的經(jīng)典CAN數(shù)據(jù)鏈路層與ISO 14229協(xié)議中定義的應(yīng)用層數(shù)據(jù)長(zhǎng)度不一致的問題。ISO 15765-2中定義的內(nèi)容包括網(wǎng)絡(luò)層和傳輸層的協(xié)議,包括尋址方式(物理尋址、功能尋址),組包方式、協(xié)議控制信息、流量控制以及時(shí)間控制。

UDS協(xié)議是一種交互協(xié)議,呈現(xiàn)一問一答的通信方式,提供了26種服務(wù),各服務(wù)在報(bào)文中通過SID(Service Identifier,診斷服務(wù)ID)來區(qū)分。在UDS刷寫流程中,主要應(yīng)用的服務(wù)如下表所示。

22/2E讀寫DID的服務(wù)主要是為了讀取版本號(hào)、VIN等信息,同時(shí)寫入諸如指紋、VIN碼等相關(guān)信息(OEM自定義);10/27/11/3E等服務(wù)是基礎(chǔ)診斷和通信相關(guān)服務(wù),作用是切換系統(tǒng)的會(huì)話模式、安全模式解鎖、重啟ECU以及保持鏈接活躍;

85/28服務(wù)主要是為了暫停其他控制器網(wǎng)絡(luò)報(bào)文的發(fā)送和DTC的設(shè)置,使得刷寫條件和網(wǎng)絡(luò)帶寬能達(dá)到最佳的狀態(tài);

31/34/36/37則是數(shù)據(jù)下載相關(guān)服務(wù),負(fù)責(zé)數(shù)據(jù)下載的請(qǐng)求、傳輸和退出。

UDS刷寫流程

會(huì)話模式是診斷領(lǐng)域非常重要的一個(gè)狀態(tài)機(jī),不同的會(huì)話模式是用來區(qū)分診斷服務(wù)執(zhí)行權(quán)限。UDS協(xié)議定義了三種會(huì)話模式:默認(rèn)會(huì)話、編程會(huì)話、擴(kuò)展會(huì)話,不同的會(huì)話模式可以相互切換。在Application中可使用默認(rèn)會(huì)話模式和擴(kuò)展會(huì)話模式。在Bootloader中可使用默認(rèn)會(huì)話模式和刷新會(huì)話模式。

會(huì)話切換流程如下圖所示,主要通過0x10服務(wù)在三種會(huì)話模式之間切換。

UDS刷寫流程包括三部分:預(yù)編程階段、主編程階段后編程階段,如下圖所示。其中,白色框步驟為功能尋址,藍(lán)色框步驟為物理尋址。各家主機(jī)廠會(huì)根據(jù)實(shí)際情況對(duì)方案進(jìn)行微調(diào)。其中Client為升級(jí)客戶端,往往由診斷儀或FOTA master擔(dān)任。Server指的是升級(jí)控制器端。

一、預(yù)編程階段

此階段是刷寫前的網(wǎng)絡(luò)準(zhǔn)備工作,主要內(nèi)容包括(1)檢查升級(jí)前置條件;(2)提高刷寫網(wǎng)絡(luò)速度;(3)禁止其他ECU的網(wǎng)絡(luò)報(bào)文并關(guān)閉DTC設(shè)置。

1、Client功能尋址發(fā)送0x10服務(wù)將所有控制器切換至擴(kuò)展會(huì)話模式,以支持0x85服務(wù)和0x28服務(wù);

2、Client物理尋址發(fā)送0x31服務(wù)至Server,判斷當(dāng)前是否滿足升級(jí)的前置條件,如點(diǎn)火狀態(tài),車速等判斷;

3、Client功能尋址發(fā)送0x85和0x28服務(wù),禁用CAN總線上各Server的網(wǎng)絡(luò)報(bào)文和DTC設(shè)置;

4、Client通過0x22服務(wù)讀取控制器的DID數(shù)據(jù);

5、Client在會(huì)話過程中通過0x3E服務(wù)保持與Server的會(huì)話模式

二、主編程階段

此階段是控制器的刷寫主流程,在Bootloader的編程會(huì)話模式下進(jìn)行,步驟如下:

1、Client功能尋址發(fā)送0x10服務(wù)將待刷寫的Server切換到編程會(huì)話模式;

2、Client通過0x2E服務(wù)將指紋寫入Server,例如本次刷寫人的身份;

3、Client通過0x27服務(wù)向Server求安全模式的seed,并根據(jù)約定的算法得到key,Server驗(yàn)證通過后解鎖安全模式。安全模式的作用是以防電控單元被意外地擦除或未經(jīng)授權(quán)地刷新;

4、Client通過0x31服務(wù)擦除Server指定地址段的程序;

5、Client通過0x34服務(wù)請(qǐng)求數(shù)據(jù)下載,Server回復(fù)一次0x36服務(wù)傳輸數(shù)據(jù)的Block的最多字節(jié)數(shù);

6、如果0x34服務(wù)得到了正確響應(yīng),Client就開始使用0x36服務(wù)啟動(dòng)數(shù)據(jù)傳輸。下載的數(shù)據(jù)是連續(xù)的,可使用34-36-36…-37命令實(shí)現(xiàn)。如果數(shù)據(jù)不連續(xù),則需要重新進(jìn)行0x34服務(wù);

7、所有的0x36服務(wù)完成后,Client通過0x37服務(wù)請(qǐng)求退出傳輸;

8、Client通過0x31服務(wù)不同的子功能對(duì)程序的完整性和一致性進(jìn)行驗(yàn)證;

9、校驗(yàn)完成后0x11服務(wù)對(duì)Server復(fù)位。

三、后編程階段

1、Client通過0x10服務(wù)恢復(fù)控制器的默認(rèn)會(huì)話;

2、Client通過0x14服務(wù)清除Server中的故障碼,整個(gè)刷寫流程結(jié)束。

多路并行刷寫

當(dāng)前FOTA升級(jí)的一般策略是串行升級(jí),即每個(gè)控制器升級(jí)完成后再對(duì)下一個(gè)控制器進(jìn)行升級(jí),單一時(shí)間只對(duì)一個(gè)控制器進(jìn)行升級(jí)。如任務(wù)中有多個(gè)車輛控制器需要升級(jí),則會(huì)對(duì)本次任務(wù)的升級(jí)時(shí)長(zhǎng)和車輛電瓶電量提出挑戰(zhàn)。如果能夠在FOTA中并行刷寫多個(gè)控制器,充分利用總線帶寬,可減少OTA升級(jí)時(shí)長(zhǎng),實(shí)現(xiàn)整車的快速升級(jí)。

因此,并行刷寫在FOTA的應(yīng)用引起了各家主機(jī)廠的關(guān)注。產(chǎn)線的線下診斷儀刷寫其實(shí)已實(shí)現(xiàn)了并行刷寫,優(yōu)勢(shì)在于可縮減產(chǎn)線的工位數(shù),并提高生產(chǎn)效率。當(dāng)前并行刷寫常用的做法為上位機(jī)開啟多個(gè)刷寫線程。不同總線間的并行刷寫相對(duì)容易實(shí)現(xiàn),如同時(shí)對(duì)CAN總線上的控制器和車載以太網(wǎng)上的控制器在同一時(shí)間進(jìn)行刷寫,總線之間的干擾并不大。

而對(duì)連接在同一網(wǎng)關(guān)下,不同路CAN上的兩個(gè)控制器進(jìn)行刷寫,如Body CAN和Info CAN上的控制器并行刷寫。上位機(jī)開啟多個(gè)線程并且打開多個(gè)CAN通道 ,可通過通道號(hào)的不同對(duì)每個(gè)控制器進(jìn)行識(shí)別,防止報(bào)文傳輸過程中不同控制器的報(bào)文相互沖突造成的報(bào)文混亂問題,實(shí)現(xiàn)了一上位機(jī)對(duì)多控制器的CAN報(bào)文傳輸。

與此同時(shí),雖然開辟更多的RAM去處理診斷指令可以使得刷寫速率更快,但是資源開銷問題也不容小視。尤其當(dāng)總線轉(zhuǎn)換時(shí),傳輸層和網(wǎng)絡(luò)層的資源開銷也會(huì)上升。上位機(jī)的RAM資源的消耗,處理能力足夠與否,都需要O主機(jī)廠按實(shí)際情況和需求評(píng)估。

小結(jié)

本期簡(jiǎn)單介紹了UDS刷寫的基礎(chǔ)知識(shí),下一期,F(xiàn)OTA技術(shù)專欄將會(huì)介紹智能控制器常用的升級(jí)方式,A/B升級(jí)(汽車OTA領(lǐng)域的標(biāo)桿企業(yè)ABup,其英文名稱前兩個(gè)字母寓意也來源于此)。


往期精彩:

FOTA信息安全,一篇看不懂的綜述

SOTA技術(shù)概述

車聯(lián)網(wǎng)信息安全概述

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多