亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FreeRTOS的車載終端以太網(wǎng)通信軟件設(shè)計(jì)

        2024-09-12 00:00:00彭圣凱韓樹人
        物聯(lián)網(wǎng)技術(shù) 2024年4期

        摘 要:針對(duì)目前控制器局域網(wǎng)(Controller Area Network, CAN)總線技術(shù)通信速度較慢、帶寬有限以及可擴(kuò)展性差等弊端,利用車載以太網(wǎng)技術(shù)實(shí)現(xiàn)車內(nèi)控制器與車聯(lián)網(wǎng)控制單元T-Box的局域網(wǎng)通信,以實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和收集。在嵌入式平臺(tái)STM32F429VIT6移植FreeRTOS操作系統(tǒng)和LwIP網(wǎng)絡(luò)協(xié)議棧,通過OTA技術(shù)完成系統(tǒng)軟件的遠(yuǎn)程升級(jí)。測(cè)試結(jié)果表明:系統(tǒng)能夠?yàn)橛脩魧?shí)時(shí)提供汽車電池各項(xiàng)數(shù)據(jù),系統(tǒng)響應(yīng)指令的時(shí)間約為6 ms,且具有局域網(wǎng)內(nèi)的OTA升級(jí)功能,實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。

        關(guān)鍵詞:車載以太網(wǎng);STM32;FreeRTOS;LwIP;OTA;局域網(wǎng)

        中圖分類號(hào):TP29 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2024)04-00-05

        DOI:10.16667/j.issn.2095-1302.2024.04.013

        0 引 言

        汽車的電子控制單元(Electronic Control Unit, ECU)在讀取車內(nèi)傳感器數(shù)據(jù)后,通常采用CAN總線和車聯(lián)網(wǎng)控制單元(Telematics-Box, T-Box)進(jìn)行局域網(wǎng)通信,但如今消費(fèi)者愈發(fā)重視汽車駕駛的安全可靠以及車內(nèi)的娛樂化需求,汽車廠商不斷擴(kuò)展汽車內(nèi)部集成的傳感器,導(dǎo)致CAN總線與T-Box通信的帶寬不足以匹配目前車內(nèi)傳感器數(shù)量[1],因而推動(dòng)了以太網(wǎng)技術(shù)介入汽車內(nèi)部網(wǎng)絡(luò)的進(jìn)程,車載以太網(wǎng)技術(shù)應(yīng)運(yùn)而生[2]。目前智能網(wǎng)聯(lián)汽車的數(shù)據(jù)傳輸方式如圖1所示。

        以太網(wǎng)自1973年提出后,憑借其簡(jiǎn)單和易擴(kuò)展性幾乎取代了所有計(jì)算機(jī)局域網(wǎng)技術(shù),并逐步運(yùn)用在汽車環(huán)境中。使用車載以太網(wǎng)有助于在車內(nèi)集成實(shí)時(shí)控制功能和非實(shí)時(shí)娛樂功能[3]。連接外部攝像頭或傳感器的ECU不但需要大帶寬傳輸視頻流等數(shù)據(jù),而且其對(duì)延時(shí)要求嚴(yán)格,需要ECU有較好的實(shí)時(shí)性;負(fù)責(zé)安全功能的ECU,如:防抱死系統(tǒng)ABS、電動(dòng)助力轉(zhuǎn)向系統(tǒng)EPS,不僅要保證數(shù)據(jù)的延時(shí)與可靠性,而且要避免系統(tǒng)誤操作造成駕駛事故;汽車的固件維護(hù)功能,如:OTA,需要保證更新速度合理并保障數(shù)據(jù)傳輸安全性,防止外部通信干擾更新過程。

        本文在上述背景下,將文獻(xiàn)[4]搭建的嵌入式硬件平臺(tái)視為車載控制器,研究設(shè)計(jì)了圖1中的局域網(wǎng)通信部分,將汽車電池的電壓和溫度參數(shù)借助車載以太網(wǎng)技術(shù)交付給T-Box收集和存儲(chǔ);T-Box下發(fā)命令指定控制器改變工作模式;控制器借助OTA技術(shù)完成系統(tǒng)軟件無線升級(jí)。

        1 車載以太網(wǎng)通信軟件設(shè)計(jì)

        車載以太網(wǎng)通信系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。

        MCU采用STM32F429芯片,并通過RMII接口與TJA1100連接。TJA1100通過MDI接口與網(wǎng)口連接,通過車載以太網(wǎng)轉(zhuǎn)換器實(shí)現(xiàn)控制器與T-Box的通信。本文重點(diǎn)介紹系統(tǒng)的軟件部分,硬件平臺(tái)的詳細(xì)設(shè)計(jì)請(qǐng)參考文獻(xiàn)[4]。

        1.1 通信軟件的需求分析

        從參數(shù)發(fā)送和數(shù)據(jù)接收2個(gè)方面分析通信軟件定量與定性需求,匯總見表1所列。發(fā)送的參數(shù)要保證精度高,即傳感器誤差范圍??;控制器接收指令后要保證實(shí)時(shí)性響應(yīng);通信軟件應(yīng)易于維護(hù)和管理,以便快速檢測(cè)和修復(fù)程序中的

        問題。

        傳感器誤差范圍是硬件指標(biāo),通過查閱溫敏電阻XH-T106的RT表,在15~75 ℃范圍內(nèi),XH-T106的誤差為(0.62±0.29)℃,滿足需求。

        1.2 通信軟件的整體結(jié)構(gòu)

        本文的車載終端以太網(wǎng)通信系統(tǒng)可分為硬件層和軟件層,軟件層可進(jìn)一步細(xì)分為驅(qū)動(dòng)層、操作系統(tǒng)層以及應(yīng)用

        層[5]。軟件的分層架構(gòu)如圖3所示。

        1.3 驅(qū)動(dòng)層軟件設(shè)計(jì)

        驅(qū)動(dòng)層包括以太網(wǎng)驅(qū)動(dòng)模塊、時(shí)鐘模塊、串口模塊、ADC模塊和I/O模塊。

        以太網(wǎng)驅(qū)動(dòng)模塊的初始化涉及硬件和軟件配置。硬件配置包括通過上拉或下拉電阻,配置TJA1100為從模式、自主工作模式以及采用外接25 MHz晶振的RMII電路連接STM32。軟件配置涉及在Reset引腳高電平條件下,通過TXEN引腳的上升沿觸發(fā)TJA1100的工作模式切換。最后配置引腳為以太網(wǎng)功能,設(shè)置I/O模式為推挽復(fù)用,并配置以太網(wǎng)工作模式為100 Mb/s帶寬傳輸、全雙工通信和中斷接收。

        時(shí)鐘模塊設(shè)置分配器M系數(shù)為25,倍頻器N為360,分頻器P為2,可得系統(tǒng)時(shí)鐘頻率為180 MHz。

        ADC模塊在軟件中設(shè)置ADC時(shí)鐘頻率為22.5 MHz,轉(zhuǎn)換頻率為1.5 MHz,配置對(duì)應(yīng)有復(fù)用成ADC功能的I/O引腳模式為模擬輸入模式。

        串口模塊在軟件中設(shè)置串口波特率為115 200 b/s,并定義數(shù)據(jù)格式和收發(fā)模式,最后初始化串口的收發(fā)引腳TX

        與RX。

        1.4 操作系統(tǒng)層軟件移植

        1.4.1 FreeRTOS移植

        為滿足本系統(tǒng)發(fā)送數(shù)據(jù)以及接收指令的實(shí)時(shí)性要求,本文引入了支持多任務(wù)調(diào)度的嵌入式實(shí)時(shí)操作系統(tǒng)作為控制器軟件層的關(guān)鍵組成部分[6]。官網(wǎng)獲取FreeRTOS的V9.0.0版本源碼包后,只需修改FreeRTOSConfig.h和stm32f4xx_it.c即可。前者是實(shí)現(xiàn)FreeRTOS功能可裁剪的關(guān)鍵,按照開發(fā)者的意愿自行剪裁操作系統(tǒng);最后刪除后者中重復(fù)定義的SysTick、PendSV、SVC中斷函數(shù)即可完成移植。其他文件夾include、portable中RVDS、MemMang以及主路徑下的若干.c文件對(duì)大多數(shù)編譯器均適用,保留即可。

        1.4.2 LwIP移植

        LwIP的架構(gòu)設(shè)計(jì)采用了模塊化思想,將協(xié)議棧分解成多個(gè)獨(dú)立模塊,各模塊之間采用API函數(shù)作為接口進(jìn)行交

        互[7]。在官網(wǎng)獲取LwIP的V2.1.0版本源碼包后,移植過程只需著重修改cc.h、sys_arch.h、sys_arch.c和lwipopts.h這

        4個(gè)文件。

        (1)修改cc.h中的臨界區(qū)代碼保護(hù)區(qū)域,主要是將保護(hù)與釋放的宏定義修改成定義FreeRTOS中進(jìn)出臨界區(qū)的函數(shù);

        (2)修改sys_arch.h和sys_arch.c中信號(hào)量、互斥量和消息郵箱的定義[7]以及信號(hào)量等變量的處理函數(shù);

        (3)修改LwIP中有關(guān)定時(shí)和獲取事件的函數(shù),分別用于LwIP的延時(shí)以及為L(zhǎng)wIP提供和FreeRTOS一致的時(shí)鐘;

        (4)依據(jù)工程需要,在opt.h定義的基礎(chǔ)上修改lwipopts.h。

        1.5 應(yīng)用層軟件設(shè)計(jì)

        應(yīng)用層包括3個(gè)模塊6項(xiàng)任務(wù)。

        1.5.1 采樣任務(wù)模塊

        采樣任務(wù)模塊包括采樣車載電池的電壓和溫度這2個(gè)任務(wù)。只需將ADC測(cè)量得到的電壓轉(zhuǎn)換成電池的電壓/溫度參數(shù),最后借助FreeRTOS的消息隊(duì)列資源將參數(shù)入列供其他任務(wù)讀取即可。

        1.5.2 UDP任務(wù)模塊

        UDP任務(wù)模塊包括UDP接收、發(fā)送以及網(wǎng)絡(luò)連接檢測(cè)3項(xiàng)任務(wù)。

        (1)UDP接收與發(fā)送任務(wù)

        接收和發(fā)送任務(wù)的詳細(xì)流程如圖4所示。UDP接收任務(wù)在創(chuàng)建并初始化Socket編程接口后,連接T-Box的IP地址和端口號(hào),即可通過recv()函數(shù)接收T-Box下發(fā)的指令,并對(duì)收到的指令進(jìn)行臨界區(qū)保護(hù);UDP發(fā)送任務(wù)則依次獲取接收任務(wù)傳入的Socket數(shù)據(jù)和電池參數(shù),并按順序?qū)㈦姵財(cái)?shù)據(jù)發(fā)送給T-Box進(jìn)行收集和存儲(chǔ)。

        (2)UDP網(wǎng)絡(luò)連接檢測(cè)任務(wù)

        UDP連接檢測(cè)任務(wù)需要事先和T-Box約定好,即當(dāng)T-Box接收到特定字符串后,需要向?qū)?yīng)IP地址的端口號(hào)返回一個(gè)ACK,具體模板如圖5所示。

        圖6展示了UDP網(wǎng)絡(luò)連接檢測(cè)任務(wù)流程。為避免參數(shù)混淆,連接檢測(cè)任務(wù)使用與發(fā)送接收任務(wù)不同的端口號(hào)。根據(jù)車內(nèi)局域網(wǎng)和大帶寬傳輸?shù)木W(wǎng)絡(luò)環(huán)境,如果50 ms內(nèi)接收到正確的ACK響應(yīng),則判斷當(dāng)前網(wǎng)絡(luò)正常;否則視為網(wǎng)絡(luò)已斷開。

        1.5.3 DHCP獲取IP地址任務(wù)

        獲取控制器IP地址任務(wù)為啟動(dòng)DHCP服務(wù)[8],通過DHCP服務(wù)器獲取IP地址、子網(wǎng)掩碼和默認(rèn)網(wǎng)關(guān),并將獲取的信息保存至lwipdev結(jié)構(gòu)體。任務(wù)流程如圖7所示。

        2 系統(tǒng)OTA升級(jí)軟件設(shè)計(jì)

        OTA(Over The Air, OTA)是一種通過無線網(wǎng)絡(luò)進(jìn)行車輛軟件更新的技術(shù),可以遠(yuǎn)程升級(jí)汽車的軟件和固件,提升功能和安全性。本文設(shè)計(jì)的OTA升級(jí)模塊包括Bootloader啟動(dòng)程序和APP功能程序,其中Bootloader通過UDP協(xié)議接收并存儲(chǔ)待更新的APP功能程序,然后將其燒錄到FLASH芯片的指定地址,實(shí)現(xiàn)功能程序的版本更新。這種遠(yuǎn)程更新技術(shù)提高了用戶體驗(yàn),加快了軟件新功能的推出,改善了車輛性能并解決了安全問題。

        2.1 FLASH芯片介紹

        STM32F4系列芯片內(nèi)部的FLASH存儲(chǔ)器分為4個(gè)存儲(chǔ)區(qū)域,即主存儲(chǔ)器、系統(tǒng)存儲(chǔ)區(qū)、單次可編程(One-time Programmable, OTP)區(qū)域和選項(xiàng)字節(jié)。主存儲(chǔ)區(qū)是用戶最常使用的區(qū),用于存儲(chǔ)代碼、常量以及初始化值不為0的全局變量,此區(qū)的結(jié)構(gòu)為雙塊架構(gòu),總體容量為2 MB[9]。主存儲(chǔ)區(qū)的起始地址為0x08000000,當(dāng)單片機(jī)的Boot0和Boot1引腳均為低電平時(shí),則從起始地址運(yùn)行代碼。

        2.2 Bootloader軟件設(shè)計(jì)

        要將代碼寫入FLASH的各個(gè)扇區(qū),需要了解FLASH寫操作的原理和流程[9],而后規(guī)劃FLASH存儲(chǔ)Bootloader引導(dǎo)程序和APP程序的空間,空間劃分如圖8所示。本文選擇將FLASH分為2段分別存儲(chǔ)Bootloader程序和APP程序,留給APP程序較大的擴(kuò)展區(qū)域,以供后續(xù)APP程序的功能延拓[10]。

        本文的Bootloader程序借助UDP協(xié)議接收待更新的APP程序源碼、燒錄程序至FLASH芯片以及執(zhí)行程序跳轉(zhuǎn)。將Bootloader程序分成空閑態(tài)、跳轉(zhuǎn)態(tài)以及升級(jí)接收態(tài)3種狀態(tài)予以分析,如圖9所示[10]。

        Bootloader程序流程如圖10所示。由于APP程序并非從FLASH起始地址存儲(chǔ),而是偏移了64 KB,因此APP程序的中斷向量表同樣須偏移以供程序查詢中斷服務(wù)程序位置,即APP程序從main函數(shù)起始處重設(shè)中斷向量表

        地址。

        3 實(shí)驗(yàn)測(cè)試

        圖11是本次實(shí)驗(yàn)的實(shí)驗(yàn)平臺(tái)實(shí)物,包括通信硬件平臺(tái)、路由器、可調(diào)電源等設(shè)備,其中T-Box采用PC端的網(wǎng)絡(luò)調(diào)試助手替代。

        3.1 通信部分驗(yàn)證

        手動(dòng)設(shè)定取代T-Box的網(wǎng)絡(luò)調(diào)試助手端IP地址192.168.1.11,端口號(hào)8089;通信硬件平臺(tái)分配的IP地址192.168.1.30,通信應(yīng)用端口號(hào)8089,檢測(cè)連接應(yīng)用端口號(hào)8090。通信網(wǎng)關(guān)為192.168.1.1,子網(wǎng)掩碼255.255.255.0。

        通信軟件將監(jiān)測(cè)的汽車電池的各參數(shù)按順序發(fā)送給網(wǎng)絡(luò)調(diào)試助手。由圖12可知,汽車電池的電壓/溫度參數(shù)均可測(cè)量,網(wǎng)絡(luò)調(diào)試助手能接收通信軟件發(fā)送的參數(shù)內(nèi)容。

        本文設(shè)定了若干服務(wù)器下發(fā)給控制器的指令。在網(wǎng)絡(luò)調(diào)試助手的消息發(fā)送欄發(fā)送對(duì)應(yīng)指令后,通信平臺(tái)會(huì)在短時(shí)間內(nèi)及時(shí)響應(yīng)并做出調(diào)整。圖13即指令發(fā)送后,單片機(jī)執(zhí)行命令的效果圖。指令發(fā)送和響應(yīng)的間隔時(shí)間為6 ms,定性分析本系統(tǒng)具有較好的實(shí)時(shí)性響應(yīng)能力。

        3.2 OTA無線升級(jí)驗(yàn)證

        當(dāng)Bootloader程序進(jìn)入“升級(jí)接收態(tài)”,網(wǎng)絡(luò)調(diào)試助手下發(fā)APP程序,Bootloader會(huì)接收程序源碼并將源碼寫入FLASH芯片對(duì)應(yīng)APP存儲(chǔ)位置。完成FLASH燒錄后,進(jìn)入“跳轉(zhuǎn)態(tài)”執(zhí)行更新的程序。

        4 結(jié) 語

        研究設(shè)計(jì)了基于FreeRTOS的車載終端以太網(wǎng)通信軟件,研究表明,此通信軟件能夠借助合適的電路結(jié)構(gòu)檢測(cè)車載電池的參數(shù);參數(shù)誤差、響應(yīng)實(shí)時(shí)性和可維護(hù)性都達(dá)到了預(yù)期的設(shè)計(jì)指標(biāo),對(duì)車內(nèi)控制器的設(shè)計(jì)提供了一定的參考和應(yīng)用價(jià)值。

        參考文獻(xiàn)

        [1]甄海川,牛玉嬌,路哲,等.車載以太網(wǎng)通信開發(fā)及應(yīng)用[J].汽車文摘,2022,60(1):40-44.

        [2]呼布?xì)J,秦貴和,劉穎,等.下一代汽車網(wǎng)絡(luò):車載以太網(wǎng)技術(shù)現(xiàn)狀與發(fā)展[J].計(jì)算機(jī)工程與應(yīng)用,2016,53(24):29-36.

        [3] DAOUD R M,AMER H H,ELSAYED H M,et al. Ethernet-Based Car Control Network [C]// Conference on Electrical amp; Computer Engineering. IEEE,2007.

        [4]鄧亮.基于以太網(wǎng)的車用太陽能電池控制器研發(fā)[D].合肥:中國科學(xué)技術(shù)大學(xué), 2023.

        [5]周浩. 基于改進(jìn)型實(shí)時(shí)內(nèi)核與LwIP協(xié)議棧的智能抄表系統(tǒng)的設(shè)計(jì)與開發(fā)[D].南京:南京郵電大學(xué),2015.

        [6]劉林.基于FreeRTOS的智能插座管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)沙:湖南大學(xué),2015.

        [7]董向陽.基于ARM的LwIP協(xié)議棧研究與移植[D].哈爾濱:哈爾濱理工大學(xué),2009.

        [8]汪赟.同一設(shè)備MAC地址自動(dòng)配置多IP地址的設(shè)計(jì)與實(shí)現(xiàn)[J].福建電腦,2013,30(11):150-151.

        [9]李露,謝映宏,許永軍,等. STM32的FLASH輕量級(jí)壞塊管理算法設(shè)計(jì)與應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2021,21(8):40-43.

        [10]文豐,溫倩,武慧軍.基于IAP的嵌入式系統(tǒng)在線編程設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2022,22(12):37-41

        收稿日期:2023-05-25 修回日期:2023-06-29

        基金項(xiàng)目:江西省教育廳項(xiàng)目:稀土永磁磁浮列車虛擬編組自適應(yīng)協(xié)同與避撞控制研究(GJJ2200847)

        作者簡(jiǎn)介:彭圣凱(2000—),男,本科在讀,研究方向?yàn)槠囯娮涌刂葡到y(tǒng)。

        韓樹人(1983—),女,研究生,講師,研究方向?yàn)榫W(wǎng)絡(luò)化控制和嵌入式控制。

        欧美三级超在线视频| 麻豆亚洲av熟女国产一区二| 国产黑丝美女办公室激情啪啪| 欧美老熟妇乱子| 老太脱裤子让老头玩xxxxx| 国产98在线 | 日韩| 人成午夜免费大片| 人妻人妻少妇在线系列| 日本av一区二区三区四区| 精品久久中文字幕系列| 麻豆免费观看高清完整视频| 99久久综合精品五月天| 国产成人无码精品久久99| 91在线观看国产自拍| 在线观看国产成人av天堂野外| 欧美中日韩免费观看网站| 欧美日本国产va高清cabal| 亚洲精品自拍视频在线观看 | 中文字幕一区二区三区日韩精品| 欧美午夜精品久久久久久浪潮| 精品无码av不卡一区二区三区| 日日噜噜噜夜夜爽爽狠狠视频| 日韩美腿丝袜三区四区| 亚洲无线码一区二区三区| 日韩精品无码区免费专区| 国产精品天天看大片特色视频| 伊人久久大香线蕉av色婷婷| 亚洲国产性夜夜综合另类| 国产成人精品无码一区二区三区 | 中文字幕无码人妻丝袜| 精品国产精品久久一区免费| 人人妻人人澡人人爽人人精品av| 久久国产亚洲高清观看| 藏春阁福利视频| 亚洲欧洲日产国码无码av野外| 国产精品亚洲一区二区麻豆| 国产老熟妇精品观看| 精品熟女日韩中文十区| 亚洲欧美日韩一区在线观看| 亚洲av成人永久网站一区| 亚洲一区二区三区中国|