www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 汽車電子 > 汽車電子
[導(dǎo)讀]摘要:為克服車載嵌入式設(shè)備難以集中回收進(jìn)行軟件升級(jí)的缺點(diǎn),提出了一種基于WiFi通信的遠(yuǎn)程軟件升級(jí)方法。該方法對(duì)微控制器FLASH存儲(chǔ)空間進(jìn)行有效分配,設(shè)計(jì)IAP功能,利用WiFi通信接口采用TFTP協(xié)議下載新軟件到FLAS

摘要:為克服車載嵌入式設(shè)備難以集中回收進(jìn)行軟件升級(jí)的缺點(diǎn),提出了一種基于WiFi通信的遠(yuǎn)程軟件升級(jí)方法。該方法對(duì)微控制器FLASH存儲(chǔ)空間進(jìn)行有效分配,設(shè)計(jì)IAP功能,利用WiFi通信接口采用TFTP協(xié)議下載新軟件到FLASH,實(shí)現(xiàn)嵌入式軟件在線升級(jí)。給出了升級(jí)方法的詳細(xì)設(shè)計(jì)和程序流程,升級(jí)速度快,受環(huán)境影響小。該方法可應(yīng)用于移動(dòng)分布式嵌入式設(shè)備中。

引言

隨著對(duì)系統(tǒng)功能、性能要求的不斷提高,或?yàn)榱讼毕荩脩舫3P枰獙?duì)嵌入式終端設(shè)備軟件進(jìn)行升級(jí)。目前嵌入式終端軟件升級(jí)方法有專用工具燒寫、在系統(tǒng)編程(ISP)和在應(yīng)用編程(IAP)等。前兩種方式需要專門的人員到達(dá)現(xiàn)場(chǎng)、甚至拆卸設(shè)備才能進(jìn)行軟件升級(jí)。IAP方式可由開發(fā)人員根據(jù)實(shí)際應(yīng)用進(jìn)行靈活設(shè)計(jì),例如使用串口升級(jí)、USB升級(jí)等。

由于車載終端具有移動(dòng)性、分布廣泛、無法集中召回等特點(diǎn),傳統(tǒng)軟件升級(jí)方案顯得束手無策。遠(yuǎn)程軟件升級(jí)方案能夠?yàn)橄到y(tǒng)維護(hù)提供極大的方便,目前主流使用基于GPRS的IAP方式,但通常需要支付給運(yùn)營商一定的費(fèi)用。

根據(jù)某單位車輛管理系統(tǒng)的實(shí)際情況,本文設(shè)計(jì)出一種基于WiFi的遠(yuǎn)程軟件升級(jí)方法。具有簡(jiǎn)單、便捷、可靠、成本低等優(yōu)點(diǎn)。

1 系統(tǒng)原理

系統(tǒng)結(jié)構(gòu)如圖1所示。該單位有若干分部,每個(gè)分部獨(dú)立管轄所屬的車輛,每個(gè)車輛裝載一套終端,用于記錄車輛行駛信息。當(dāng)車輛外出執(zhí)行任務(wù)及返回經(jīng)過車場(chǎng)門口時(shí),與車場(chǎng)門口的數(shù)據(jù)采集設(shè)備通過WiFi進(jìn)行數(shù)據(jù)交互。各分部數(shù)據(jù)采集設(shè)備連接至互聯(lián)網(wǎng)與總部進(jìn)行數(shù)據(jù)交互。

終端設(shè)備MCU采用STM32F107芯片,該芯片是意法半導(dǎo)體公司基于ARM Cortex—M3的32位嵌入式處理器,主頻達(dá)72 MHz、90DMIPS。它具有256 KB閃存程序存儲(chǔ)器、20KB的數(shù)據(jù)存儲(chǔ)器及64 KB RAM。外圍接口豐富,價(jià)格僅與8位單片機(jī)相當(dāng),性價(jià)比極高。

WiFi模塊采用RedPine公司的RS9110-N-11-02模塊,該模塊通過SPI接口與MCU通信。RS9110-N11-02模塊為IEEE 802.11b/g/n WLAN設(shè)備,集成MAC、基帶處理器、幅值可調(diào)RF收發(fā)器、頻率參考和天線等。硬件模塊嵌入了網(wǎng)絡(luò)協(xié)議棧、WLAN協(xié)議和配置功能,構(gòu)成一個(gè)完整的802.11n WLAN解決方案。

系統(tǒng)軟件升級(jí)工作過程如下:

①通過以太網(wǎng)把編譯好的新軟件傳輸?shù)礁鞣植繑?shù)據(jù)采集設(shè)備上;

②車輛外出或返回時(shí)途經(jīng)車場(chǎng)門口數(shù)據(jù)采集設(shè)備WiFi網(wǎng)絡(luò)覆蓋區(qū)域;

③車輛終端設(shè)備通過WiFi網(wǎng)絡(luò)連接到數(shù)據(jù)采集設(shè)備,如需要?jiǎng)t進(jìn)行新軟件下載;

④車輛終端執(zhí)行新軟件。

2 軟件升級(jí)方法及流程

STM32F107內(nèi)部FLASH存儲(chǔ)器地址以0x08000000開始,共256K。為了在線升級(jí),將該FLASH存儲(chǔ)器如圖2所示劃分為BOOT區(qū)、應(yīng)用程序區(qū)、臨時(shí)區(qū)、參數(shù)存儲(chǔ)區(qū)。

其中BOOT區(qū)用于存放系統(tǒng)自舉程序,應(yīng)用程序區(qū)用于存放用戶應(yīng)用軟件,臨時(shí)區(qū)用于臨時(shí)存儲(chǔ)正在下載的軟件,參數(shù)存儲(chǔ)區(qū)用于存儲(chǔ)程序升級(jí)時(shí)所使用的標(biāo)志及其他系統(tǒng)參數(shù)。

軟件升級(jí)標(biāo)志定義如下:正常模式、升級(jí)模式及拷貝模式。正常模式標(biāo)志著無需進(jìn)行軟件升級(jí),直接跳轉(zhuǎn)到應(yīng)用程序區(qū)執(zhí)行;升級(jí)模式標(biāo)志著終端需要下載新的應(yīng)用程序;拷貝模式用于在軟件下載完畢后拷貝到應(yīng)用程序區(qū),將該部分功能獨(dú)立出來是為了在軟件下載完畢后拷貝到應(yīng)用程序區(qū)時(shí)出現(xiàn)突然斷電等故障時(shí)進(jìn)行故障恢復(fù)。

終端處于WiFi信號(hào)范圍時(shí),接入WiFi網(wǎng)絡(luò)與數(shù)據(jù)采集設(shè)備進(jìn)行信息交互。如圖3所示,軟件升級(jí)流程如下:

①接收到版本號(hào)查詢指令,回復(fù)本終端軟件版本號(hào)給數(shù)據(jù)采集設(shè)備;

②若版本號(hào)為最新,流程結(jié)束,否則會(huì)接收到數(shù)據(jù)采集設(shè)備發(fā)來的軟件升級(jí)指令;

③修改參數(shù)存儲(chǔ)區(qū)存儲(chǔ)的軟件升級(jí)標(biāo)志為升級(jí)模式,復(fù)位MCU;

④MCU從BOOT區(qū)啟動(dòng);

⑤讀取軟件升級(jí)標(biāo)志,如是“正常模式”,判斷應(yīng)用程序區(qū)是否有應(yīng)用程序,若有則跳轉(zhuǎn)到應(yīng)用程序區(qū)執(zhí)行,若無則置軟件升級(jí)標(biāo)志為“升級(jí)模式”,復(fù)位MCU,跳轉(zhuǎn)到步驟④;

⑥若軟件升級(jí)標(biāo)志是“拷貝模式”,拷貝臨時(shí)區(qū)軟件到應(yīng)用程序區(qū),修改軟件升級(jí)標(biāo)志為正常模式,復(fù)位MCU,跳轉(zhuǎn)到步驟④;

⑦若軟件升級(jí)標(biāo)志是“升級(jí)模式”,則掃描并接入WiFi網(wǎng)絡(luò);

⑧使用TFTP協(xié)議下載新軟件到臨時(shí)區(qū);

⑨校驗(yàn)新軟件是否正確,若不正確則跳轉(zhuǎn)到步驟⑧,若正確則執(zhí)行下一步;

⑩修改軟件升級(jí)標(biāo)志為“拷貝模式”,復(fù)位MCU,跳轉(zhuǎn)到步驟④。

3 軟件實(shí)現(xiàn)

升級(jí)軟件主要由版本號(hào)比較、軟件復(fù)位、軟件下載及校驗(yàn)、拷貝軟件到應(yīng)用程序區(qū)、軟件跳轉(zhuǎn)到應(yīng)用程序區(qū)幾部分組成。

(1)版本號(hào)比較

每個(gè)版本的軟件需要有不同的版本號(hào),按照一定規(guī)則遞增,如數(shù)據(jù)采集設(shè)備上有2.0版本軟件比本終端1.0版本高,則據(jù)此進(jìn)行軟件升級(jí)。

(2)軟件復(fù)位

根據(jù)本設(shè)計(jì),軟件需要復(fù)位進(jìn)入BOOT區(qū)進(jìn)行一系列操作。通過使STM32內(nèi)部中斷應(yīng)用和復(fù)位控制寄存器中的SYSRESETREQ位置1,即可實(shí)現(xiàn)軟件復(fù)位。

(3)軟件下載及校驗(yàn)

采用TFTP協(xié)議下載應(yīng)用軟件到MCU臨時(shí)區(qū)。TFTP用于發(fā)送較小的文件時(shí)實(shí)現(xiàn)簡(jiǎn)單,可靠性高。其下層使用UDP協(xié)議,發(fā)送使用UDP 69端口,每次發(fā)送的最大分組為512字節(jié),發(fā)送雙方采用超時(shí)重傳機(jī)制。數(shù)據(jù)傳輸模式可選為octet模式(二進(jìn)制模式)。

TFTP支持6種類型的數(shù)據(jù)包,分別是:

①Read rcquest(RRQ);

②Write rcquest(WRQ);

③Data(DATA);

④Acknowledgment(ACK);

⑤Error(ERROR);

⑥OACK。

目前常用的是前5種。由于系統(tǒng)只需實(shí)現(xiàn)終端從數(shù)據(jù)采集設(shè)備上下載軟件文件,無需實(shí)現(xiàn)完整的TFTP協(xié)議,僅實(shí)現(xiàn)上述第1、3、4、5類數(shù)據(jù)包功能即可。主要定義以下4個(gè)接口函數(shù):

①RRQ發(fā)送接口函數(shù)定義:

void tftpReadQuerry(void);

該函數(shù)用于終端發(fā)送讀文件請(qǐng)求,數(shù)據(jù)采集設(shè)備收到該包將發(fā)送文件數(shù)據(jù)包給終端;

②數(shù)據(jù)包接收接口函數(shù)定義:

void tftp_recvpacket(void);

該函數(shù)用于接收數(shù)據(jù)采集設(shè)備發(fā)送到的包,根據(jù)包類型分別對(duì)ERROR包、DATA包進(jìn)行處理。如果是ERROR包則需要重新傳輸文件,本次傳輸失敗。如果是DATA包,則校驗(yàn)后根據(jù)包號(hào)存儲(chǔ)到FLASH指定位置,然后調(diào)用發(fā)送ACK函數(shù)回復(fù)ACK。掉包、錯(cuò)包等的錯(cuò)誤處理也在該函數(shù)執(zhí)行;

③ACK發(fā)送接口函數(shù)定義:

void tftpSendAck(unsigned char BlockNo[2]);

該函數(shù)用于根據(jù)接收到的包的編號(hào)回復(fù)ACK。

④ERROR包接口函數(shù)定義:

void tftpSendErr(unsigned char BlockNo[2]);

該函數(shù)用于返回傳輸錯(cuò)誤信息。

文件傳輸實(shí)現(xiàn)流程如下:

①數(shù)據(jù)采集設(shè)備在端口為69的UDP上等待終端發(fā)出讀文件請(qǐng)求包;

②終端通過UDP發(fā)送符合TFTP請(qǐng)求格式的RRQ包給數(shù)據(jù)采集設(shè)備;

③數(shù)據(jù)采集設(shè)備收到終端的這個(gè)請(qǐng)求包后,將直接發(fā)送DATA包給終端,這個(gè)DATA包中含數(shù)據(jù)采集設(shè)備選擇的TID作為UDP的源端口和終端的TID作為UDP目標(biāo)端口,起始包號(hào)為1,往后包號(hào)逐次加1。

④終端接收來自數(shù)據(jù)采集設(shè)備的DATA包并回復(fù)ACK。直到請(qǐng)求完成。

傳輸過程中的掉包或包錯(cuò)誤會(huì)導(dǎo)致重傳,重傳不超過三次,否則認(rèn)為傳輸失敗。傳輸過程中的錯(cuò)誤,會(huì)觸發(fā)發(fā)送ERROR包。ERROR包的錯(cuò)誤代碼值供程序員分析使用。

(4)拷貝軟件到應(yīng)用程序區(qū)

軟件正確的下載到臨時(shí)區(qū)后,需要拷貝到應(yīng)用程序區(qū)。該部分關(guān)鍵部分在于STM32內(nèi)嵌FLASH的擦除與讀寫。

STM32F107內(nèi)嵌FLASH是通過分頁機(jī)制來實(shí)現(xiàn)對(duì)尋址空間的擴(kuò)展和FLASH頁面的使用和管理的。所以對(duì)FLASH的擦除操作需要按頁進(jìn)行擦除。即擦除FLASH不能擦除某一字節(jié)或一次擦除小于一頁(2048字節(jié))。

FLASH擦除的具體步驟:

①解鎖FLASH編程控制寄存器;

②定位要擦除的扇區(qū);

③寫扇區(qū)擦除命令;

④等待命令執(zhí)行完成;

⑤鎖定FLASH編程控制寄存器。

對(duì)FLASH執(zhí)行寫操作步驟如下:

①解鎖FLASH編程控制寄存器;

②向指定的地址寫若干字?jǐn)?shù)據(jù);

③等待上一條命令執(zhí)行完成;

④如果未寫完數(shù)據(jù),則遞增源地址和目標(biāo)地址,重復(fù)步驟②和③;

⑤鎖定FLASH編程控制寄存器。

(5)軟件跳轉(zhuǎn)應(yīng)用程序區(qū)

應(yīng)用程序準(zhǔn)備好后,程序需要從BOOT區(qū)跳轉(zhuǎn)到應(yīng)用程序區(qū)首地址處執(zhí)行應(yīng)用程序。這里分為兩步:

①修改中斷向量表位置。由于STM32F107采用ARM Cortex—M3內(nèi)核,該內(nèi)核的系統(tǒng)控制空間中寫中斷向量表的寄存器地址NVIC_VectTaD_ Addr為0xE000ED08,在該地址寫入應(yīng)用程序起始地址即可,本程序應(yīng)用程序起始地址APP_START_ADDRESS為0x08005000。設(shè)計(jì)如下:

ldr r0,=0x08005000

ldr r1,=0xe000ed08

Str r0, [r1]

②跳轉(zhuǎn)到應(yīng)用程序首地址處執(zhí)行應(yīng)用程序。該步驟完成堆棧指針和程序指針(PC)的修改。在上述匯編代碼之后,通過以下方式實(shí)現(xiàn):

;從應(yīng)用程序向量表中載入堆棧指針

ldr r1, [r0]

mov sp,r1

;從應(yīng)用程序向量表中初始化程序指針(PC),并跳轉(zhuǎn)到應(yīng)用程序

;入口

ldr r0, [r0,#4]

bx r0

為保證軟件升級(jí)錯(cuò)誤不導(dǎo)致系統(tǒng)崩潰,將終端程序隔離為引導(dǎo)程序(BOOT區(qū)程序)及應(yīng)用程序兩部分,如單次軟件升級(jí)失敗仍可進(jìn)行再次升級(jí)。兩部分程序分別在Keil中編譯,并把BOOT區(qū)程序燒寫在FLASH首地址0x08005000處,以便終端啟動(dòng)直接進(jìn)入BOOT區(qū)。用于應(yīng)用程序編譯吋需設(shè)定燒寫地址為應(yīng)用程序區(qū)首地址,并生成bin文件以便直接下載到FLASH中即可運(yùn)行。

結(jié)語

該方法實(shí)現(xiàn)了采用WiFi通信方式,通過TFTP協(xié)議將編譯后的軟件文件下載到終端設(shè)備,完成軟件升級(jí)的功能。在嵌入式系統(tǒng)領(lǐng)域,程序升級(jí)可以方便地對(duì)程序缺陷進(jìn)行彌補(bǔ)和修改,或?qū)Τ绦蚬δ苓M(jìn)行擴(kuò)充,運(yùn)用該方法可極大提高產(chǎn)品的生存周期,節(jié)省對(duì)項(xiàng)目的維護(hù)成本和提高了開發(fā)效率。

基于該方法已成功設(shè)計(jì)出可遠(yuǎn)程在線升級(jí)程序的車輛管理系統(tǒng)。使用情況表明,該系統(tǒng)能穩(wěn)定、可靠地工作,且為系統(tǒng)的維護(hù)節(jié)省了大量的工作量,對(duì)同類型的嵌入式設(shè)備軟件在線升級(jí)設(shè)汁有很好的參考價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉