国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

車載毫米波雷達(dá)Bootloader的設(shè)計與實現(xiàn)

2021-04-25 15:05:37凌露露趙芬
電腦知識與技術(shù) 2021年9期
關(guān)鍵詞:車載

凌露露 趙芬

摘要:毫米波雷達(dá)用于盲區(qū)監(jiān)測系統(tǒng)時,一種連接方法是僅一個雷達(dá)掛接在車身網(wǎng)絡(luò)上,而另一個雷達(dá)無法直接與車身網(wǎng)絡(luò)通信,因此也無法通過OBD直接升級軟件。該文提出一套基于UDS的軟件升級方案,在傳統(tǒng)下位機(jī)Bootloader中增加主從通訊功能,使得兩個雷達(dá)能同時完成軟件升級。經(jīng)實際應(yīng)用,設(shè)計的Bootloader在盲區(qū)監(jiān)測系統(tǒng)和前碰撞預(yù)警系統(tǒng)中都能可靠地升級應(yīng)用軟件。

關(guān)鍵詞:Bootloader;毫米波雷達(dá);車載;盲區(qū)監(jiān)測系統(tǒng);UDS

中圖分類號:TP368? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2021)09-0218-03

開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

The Design and Implementation of a CAN Bootloader in Vehicle Millimeter Wave Radar

LING Lu-lu, ZHAO Fen

(The 38th Research Institute of China Electronics Technology Group Corporation, Hefei 230088, China)

Abstract: When millimeter wave radars are used in a blind spot detection (BSD) system, where only one radar working as the main radar is connected to the vehicle network directly, the sub radar that cannot communicate with vehicle network cannot be programed by OBD interface. In order to achieve the program upgrade of two radars, a program upgrade method based on unified diagnostic services (UDS) is proposed. The method adds a master-slave communication function in traditional Bootloader. The Bootloader designed is proved that it can upgrade software correctly and reliably in BSD system and forward collision warning (FCW) system.

Key words: Bootloader ; Millimeter wave radar; Vehicle-mounted; BSD; UDS

1 背景

為了解決因汽車外后視鏡存在視覺盲區(qū)易導(dǎo)致交通事故的問題,越來越多的汽車裝配了盲區(qū)監(jiān)測系統(tǒng),通過在汽車后保險杠內(nèi)安裝2個毫米波雷達(dá)傳感器,監(jiān)測側(cè)后方車輛[1]。當(dāng)雷達(dá)系統(tǒng)有功能改進(jìn)時,需要進(jìn)行軟件升級,這就要求雷達(dá)控制器具備在線刷寫能力。Bootloader是運行于主程序之前的一段小程序,主要完成應(yīng)用程序下載和更新任務(wù)[2-3]。現(xiàn)有的Bootloader方案大都是針對單一控制器,對于有兩個控制器的系統(tǒng),需要在傳統(tǒng)Bootloader中增加一部分功能以達(dá)到兩個控制器同時更新軟件的目的。

UDS(unified diagnostic services)診斷服務(wù)協(xié)議有一套完善的國際體系標(biāo)準(zhǔn),可以提升整車廠汽車電子產(chǎn)品的管理能力和效率,也為零部件廠商開發(fā)診斷部分功能提高復(fù)制性,減少開發(fā)周期和成本[4]。

本文基于UDS設(shè)計了一套應(yīng)用于車載毫米波雷達(dá)的軟件升級方案,可以用于配備兩個毫米波雷達(dá)的盲區(qū)檢監(jiān)測系統(tǒng),也適用于僅有一個雷達(dá)的前碰撞預(yù)警系統(tǒng)。

2 車載毫米波雷達(dá)系統(tǒng)介紹

毫米波雷達(dá)用于盲區(qū)監(jiān)測時,一般需要兩個雷達(dá)模塊,分別安裝在車尾兩側(cè)。若僅一個雷達(dá)模塊(主雷達(dá))連接到車身網(wǎng)絡(luò)上,則另一個雷達(dá)模塊(從雷達(dá))與主雷達(dá)需通過內(nèi)部私有CAN連接。從雷達(dá)所需的車速、方向盤轉(zhuǎn)角等車身信息都由主雷達(dá)轉(zhuǎn)發(fā)。

盲區(qū)監(jiān)測雷達(dá)系統(tǒng)進(jìn)行軟件升級時,主雷達(dá)能通過OBD口按照正常的Bootloader流程進(jìn)行在線升級,由于從雷達(dá)未連接到車身網(wǎng)絡(luò),所以無法接收到刷新上位機(jī)的刷新數(shù)據(jù),此時,需要主雷達(dá)在FLASH數(shù)據(jù)接收完畢并且通過校驗后將刷新數(shù)據(jù)轉(zhuǎn)發(fā)給從雷達(dá)。

3 CAN Bootloader的下位機(jī)設(shè)計

3.1 Flash存儲空間分配

在線升級需要編寫兩個項目程序,分別寫在FLASH的不同區(qū)域,一個項目是應(yīng)用程序,是產(chǎn)品正常工作時執(zhí)行的程序,另一個是Boot引導(dǎo)程序,用于引導(dǎo)程序啟動和程序更新。以TI公司的DSP芯片TMS320F28335為例,該芯片有8塊FLASH空間A~H,每塊FLASH大小為32KB[5],其中,應(yīng)用程序占據(jù)其中3個(E、F、G),地址從0x308000到0x31FFFF;為了避免引導(dǎo)程序被誤擦除而不能進(jìn)行應(yīng)用程序刷新的情況,給Bootloader代碼分配單獨的一塊FLASH空間A,地址從0x338000到0x33FFFF;應(yīng)用程序是否有效等信息占據(jù)另一塊單獨的FLASH空間B,地址從0x330000到0x337FFF。

雷達(dá)系統(tǒng)上電復(fù)位后,首先運行在Bootloader中,根據(jù)車廠要求,可設(shè)置在Bootloader中需要停留的時間Tstay,Tstay時間后,讀取FLASH中的應(yīng)用程序有效標(biāo)志,若應(yīng)用程序有效則跳轉(zhuǎn)到應(yīng)用程序,否則一直運行在Bootloader中。

3.2 下位機(jī)Bootloader流程

ISO15765-3中對刷新流程及相關(guān)診斷服務(wù)進(jìn)行了定義,不同車廠可能對其有些許改動,一般的刷新流程依次為:進(jìn)入刷新模式、安全校驗、擦除、請求數(shù)據(jù)傳輸、傳輸程序數(shù)據(jù)、請求退出傳輸、程序一致性校驗、復(fù)位。

下位機(jī)Bootloader程序的整體流程如圖1所示。下位機(jī)Bootloader在CAN中斷中接收刷新上位機(jī)發(fā)送的診斷報文,報文的解析與響應(yīng)的組裝由診斷服務(wù)處理模塊執(zhí)行。對于擦除、傳輸程序數(shù)據(jù)以及程序一致性校驗服務(wù),診斷服務(wù)處理模塊只是分別發(fā)起對FLASH的擦除、寫以及校驗請求,真正的擦寫、校驗操作由FLASH任務(wù)管理模塊執(zhí)行。

3.3 主從通訊管理

主從通訊管理模塊是為了實現(xiàn)主從雷達(dá)的交互,若檢測到從雷達(dá)的存在,主雷達(dá)則在自身軟件升級成功后將刷新數(shù)據(jù)傳遞給從雷達(dá)。

該模塊的功能是依據(jù)主從屬性執(zhí)行各自的狀態(tài)機(jī)函數(shù),在Bootloader中接收到診斷報文的雷達(dá)模塊將自身設(shè)為“主”,主雷達(dá)的主從交互狀態(tài)機(jī)狀態(tài)就會從“空閑”切換到“發(fā)送復(fù)位命令”,通過私有CAN發(fā)送數(shù)個控制報文(報文頭為0x00)幀(若從雷達(dá)收到該報文,會從應(yīng)用程序跳到Bootloader,并回饋響應(yīng)報文),發(fā)送完成后狀態(tài)機(jī)自動切換到“等待復(fù)位響應(yīng)”,主從雷達(dá)交互邏輯如圖2所示。

主雷達(dá)在“等待復(fù)位的響應(yīng)”狀態(tài)只停留1s,若在這期間內(nèi)收到控制信息幀的響應(yīng)報文,主從交互狀態(tài)機(jī)就會從“等待復(fù)位響應(yīng)”切換到“空閑”,否則狀態(tài)機(jī)切換到“刷新成功”,主從屬性設(shè)為“單一”,表明只有一個雷達(dá)存在,該系統(tǒng)為前碰撞預(yù)警系統(tǒng)。

主雷達(dá)檢驗程序一致性成功才會開始做刷新數(shù)據(jù)傳輸?shù)臏?zhǔn)備工作,將主從交互狀態(tài)機(jī)直接切換到“請求FLASH數(shù)據(jù)傳輸”。該狀態(tài)下,主雷達(dá)將存儲應(yīng)用程序代碼的各連續(xù)FLASH塊的起始地址、大小和總的連續(xù)數(shù)據(jù)塊個數(shù)發(fā)給從雷達(dá)。從雷達(dá)收到“請求FLASH數(shù)據(jù)傳輸”命令后,會對當(dāng)前的下載條件進(jìn)行檢查,檢查成功才會反饋正響應(yīng),同時,從雷達(dá)第一次收到該命令時還會擦除存儲應(yīng)用程序的所有FLASH區(qū)域。

“開始發(fā)送FLASH數(shù)據(jù)”“FLASH數(shù)據(jù)發(fā)送中”“等待傳輸FLASH數(shù)據(jù)的響應(yīng)”三個狀態(tài)配合完成一個連續(xù)數(shù)據(jù)塊的刷新數(shù)據(jù)的發(fā)送,“開始發(fā)送FLASH數(shù)據(jù)”狀態(tài)下發(fā)送數(shù)據(jù)報文,每發(fā)送100幀數(shù)據(jù)報文就會進(jìn)入“等待數(shù)據(jù)發(fā)送響應(yīng)”狀態(tài)等待從雷達(dá)將800個字節(jié)成功寫入FLASH的響應(yīng),數(shù)據(jù)的分包傳輸保證了傳輸?shù)挠行?,一方面能避免因一次性?shù)據(jù)傳輸過多導(dǎo)致的從雷達(dá)寫FLASH時間久而錯失后續(xù)的數(shù)據(jù)報文,另一方面,若出現(xiàn)丟幀或者從雷達(dá)未能及時處理這些報文,主雷達(dá)能及時發(fā)現(xiàn),進(jìn)而中止傳輸。

刷新數(shù)據(jù)全部傳輸完畢后,狀態(tài)機(jī)會轉(zhuǎn)到“發(fā)送校驗命令”,主雷達(dá)發(fā)送校驗命令幀,從雷達(dá)收到該報文會進(jìn)行全部刷新數(shù)據(jù)的校驗。

主雷達(dá)收到從雷達(dá)校驗成功的響應(yīng)報文就會將狀態(tài)機(jī)切換到“刷新成功”,此時,主雷達(dá)才會給刷新上位機(jī)回饋校驗程序一致性成功的正響應(yīng)報文,進(jìn)而結(jié)束整個系統(tǒng)的軟件升級過程。

主從雷達(dá)交互的整個過程中,若從雷達(dá)在某一階段未能成功往后執(zhí)行,如接收到的FLASH數(shù)據(jù)塊起始地址不正確、未成功寫入FLASH等,均會回饋一條“負(fù)響應(yīng)”報文。

4 CAN Bootloader的上位機(jī)實現(xiàn)

上位機(jī)主要配合下位機(jī)完成HEX格式的升級文件的下載,主要模塊構(gòu)成如下:

1)文件加載模塊:為了保證升級系統(tǒng)的適用性,該模塊應(yīng)能解析任意的符合HEX標(biāo)準(zhǔn)格式的文件。需要解析出的內(nèi)容包括連續(xù)數(shù)據(jù)塊個數(shù)、各數(shù)據(jù)塊的起始地址、數(shù)據(jù)長度以及每個數(shù)據(jù)塊的有效數(shù)據(jù)。

2)網(wǎng)絡(luò)狀態(tài)管理模塊:網(wǎng)絡(luò)狀態(tài)分為主狀態(tài)和子狀態(tài),主狀態(tài)包括多幀發(fā)送/接收、單幀發(fā)送/接收、空閑和超時,為了滿足ISO15765標(biāo)準(zhǔn),每個主狀態(tài)根據(jù)當(dāng)前報文類型(首幀、流控幀、連續(xù)幀)又進(jìn)行了劃分。

網(wǎng)絡(luò)狀態(tài)管理模塊根據(jù)當(dāng)前主/子狀態(tài)類型、網(wǎng)絡(luò)定時器是否超時來切換主狀態(tài),同時重設(shè)網(wǎng)絡(luò)定時器以及子狀態(tài),以保證請求中各幀的有序發(fā)送以及響應(yīng)的接收。

3)報文接收處理模塊:Can模塊每次只接收一幀報文,報文接收處理模塊需要根據(jù)報文類型(單幀、首幀、連續(xù)幀、流控幀)切換網(wǎng)絡(luò)狀態(tài),與網(wǎng)絡(luò)狀態(tài)管理模塊配合完成請求與響應(yīng)的發(fā)送和接收。

4)響應(yīng)處理模塊:負(fù)責(zé)處理響應(yīng)報文,同時也是下一條請求發(fā)送前的預(yù)處理。

若收到的是0x78負(fù)響應(yīng),不做任何處理,重新設(shè)置響應(yīng)接收超時時間后繼續(xù)等待下一條響應(yīng)。

為了避免接收到的報文并非上次請求對應(yīng)的響應(yīng)、響應(yīng)格式錯誤等問題,每一條請求服務(wù)都事先設(shè)定了正確的響應(yīng)內(nèi)容,若收到的響應(yīng)內(nèi)容與設(shè)定不符,則清除本次所有請求服務(wù)序列、恢復(fù)網(wǎng)絡(luò)狀態(tài)至空閑,同時提示用戶。

每條請求都對應(yīng)一個響應(yīng)處理函數(shù)的接口,該函數(shù)有可能是對本次響應(yīng)進(jìn)行解析,也有可能是填充下一條請求報文內(nèi)容。若響應(yīng)內(nèi)容正確,則根據(jù)請求直接進(jìn)入與之對應(yīng)的響應(yīng)處理函數(shù)。例如收到請求傳輸?shù)捻憫?yīng)后就可以根據(jù)響應(yīng)中最大塊數(shù)據(jù)長度以及本次計劃傳輸?shù)倪B續(xù)數(shù)據(jù)塊大小計算后續(xù)需要的傳輸程序數(shù)據(jù)請求的個數(shù),根據(jù)文件加載模塊讀取的有效數(shù)據(jù)填充這些傳輸數(shù)據(jù)請求,并確定與之對應(yīng)的響應(yīng),同時確定收到正確響應(yīng)后的回調(diào)函數(shù),即計算數(shù)據(jù)傳輸進(jìn)度。

5 結(jié)束語

本文基于車載毫米波雷達(dá)對應(yīng)用程序更新的需求,提出了一套基于UDS的Bootloader方案,該方案不僅適用于單個雷達(dá)的前碰撞預(yù)警系統(tǒng),也適用于兩個雷達(dá)的盲區(qū)監(jiān)測系統(tǒng)。測試表明,開發(fā)的Bootloader能穩(wěn)定擦寫FLASH,正確下載應(yīng)用程序,能很好地應(yīng)用在兩種雷達(dá)系統(tǒng)中。

參考文獻(xiàn):

[1] 李華俊.盲區(qū)監(jiān)測變道輔助系統(tǒng)標(biāo)定方法的研究[J].汽車電器,2017(9):7-11.

[2] 楊勝兵,萬宏偉,薛冰,等.基于CCP協(xié)議的車載控制器軟件刷新系統(tǒng)設(shè)計[J].自動化與儀表,2017,32(7):39-44.

[3] 樂志國,金啟前.電動汽車整車控制器 BootLoader 功能開發(fā)[J].佳木斯大學(xué)學(xué)報(自然科學(xué)版),2014,32(2):237-241,261.

[4] 汪春華,白穩(wěn)峰,劉胤博,等.基于CAN總線UDS服務(wù)BootLoader應(yīng)用開發(fā)[J].電子測量技術(shù),2017,40(2):166-170.

[5] 張卿杰,徐友,左楠.手把手教你學(xué)DSP:基于TMS320F28335[M].北京:北京航空航天大學(xué)出版社,2015.

【通聯(lián)編輯:謝媛媛】

猜你喜歡
車載
一種車載可折疊宿營住房
高速磁浮車載運行控制系統(tǒng)綜述
奔馳S級48V車載電氣系統(tǒng)(下)
車載GSM-R外置抗干擾設(shè)備
CTCS3-YH型ATP車載設(shè)備的驗證確認(rèn)研究
智能互聯(lián)勢不可擋 車載存儲需求爆發(fā)
升降壓PFC車載充電機(jī)的研究
基于ZVS-PWM的車載隔離DC-DC的研究
車載洗鞋機(jī)
車載ATP子系統(tǒng)緊急制動限制速度計算
堆龙德庆县| 建始县| 内乡县| 普安县| 乌拉特中旗| 嫩江县| 抚宁县| 秦安县| 沙湾县| 蓝山县| 长白| 祁门县| 临夏县| 龙井市| 万州区| 高台县| 武清区| 红安县| 民勤县| 贵南县| 彝良县| 石泉县| 曲水县| 独山县| 遂宁市| 贵港市| 团风县| 西乌珠穆沁旗| 衡水市| 哈密市| 沁阳市| 融水| 义马市| 页游| 民权县| 南宫市| 苍梧县| 涿鹿县| 仙游县| 礼泉县| 镇巴县|