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

?

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

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

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

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

中圖分類號:TP29 文獻標識碼:A 文章編號: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)進行局域網(wǎng)通信,但如今消費者愈發(fā)重視汽車駕駛的安全可靠以及車內(nèi)的娛樂化需求,汽車廠商不斷擴展汽車內(nèi)部集成的傳感器,導致CAN總線與T-Box通信的帶寬不足以匹配目前車內(nèi)傳感器數(shù)量[1],因而推動了以太網(wǎng)技術(shù)介入汽車內(nèi)部網(wǎng)絡的進程,車載以太網(wǎng)技術(shù)應運而生[2]。目前智能網(wǎng)聯(lián)汽車的數(shù)據(jù)傳輸方式如圖1所示。

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

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

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

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

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

1.1 通信軟件的需求分析

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

問題。

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

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

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

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

1.3 驅(qū)動層軟件設計

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

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

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

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

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

與RX。

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

1.4.1 FreeRTOS移植

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

1.4.2 LwIP移植

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

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

4個文件。

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

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

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

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

1.5 應用層軟件設計

應用層包括3個模塊6項任務。

1.5.1 采樣任務模塊

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

1.5.2 UDP任務模塊

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

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

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

(2)UDP網(wǎng)絡連接檢測任務

UDP連接檢測任務需要事先和T-Box約定好,即當T-Box接收到特定字符串后,需要向?qū)狪P地址的端口號返回一個ACK,具體模板如圖5所示。

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

1.5.3 DHCP獲取IP地址任務

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

2 系統(tǒng)OTA升級軟件設計

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

2.1 FLASH芯片介紹

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

2.2 Bootloader軟件設計

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

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

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

地址。

3 實驗測試

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

3.1 通信部分驗證

手動設定取代T-Box的網(wǎng)絡調(diào)試助手端IP地址192.168.1.11,端口號8089;通信硬件平臺分配的IP地址192.168.1.30,通信應用端口號8089,檢測連接應用端口號8090。通信網(wǎng)關為192.168.1.1,子網(wǎng)掩碼255.255.255.0。

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

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

3.2 OTA無線升級驗證

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

4 結(jié) 語

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

參考文獻

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

[2]呼布欽,秦貴和,劉穎,等.下一代汽車網(wǎng)絡:車載以太網(wǎng)技術(shù)現(xiàn)狀與發(fā)展[J].計算機工程與應用,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].合肥:中國科學技術(shù)大學, 2023.

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

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

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

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

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

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

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

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

作者簡介:彭圣凱(2000—),男,本科在讀,研究方向為汽車電子控制系統(tǒng)。

韓樹人(1983—),女,研究生,講師,研究方向為網(wǎng)絡化控制和嵌入式控制。

猜你喜歡
局域網(wǎng)
軌道交通車-地通信無線局域網(wǎng)技術(shù)應用
基于VPN的機房局域網(wǎng)遠程控制系統(tǒng)
電子制作(2019年16期)2019-09-27 09:35:04
基于虛擬局域網(wǎng)的收費系統(tǒng)網(wǎng)絡構(gòu)建
基于802.1Q協(xié)議的虛擬局域網(wǎng)技術(shù)研究與實現(xiàn)
電子制作(2017年17期)2017-12-18 06:40:48
局域網(wǎng)性能的優(yōu)化
電子制作(2017年8期)2017-06-05 09:36:15
湘西| 文昌市| 百色市| 吉水县| 红安县| 隆子县| 甘洛县| 永德县| 庆元县| 安塞县| 五大连池市| 育儿| 营口市| 吉隆县| 南开区| 汝州市| 二手房| 清苑县| 十堰市| 和平县| 金堂县| 汉中市| 洞口县| 界首市| 乌审旗| 红桥区| 云龙县| 宣恩县| 大安市| 永仁县| 呼伦贝尔市| 长阳| 龙口市| 弥渡县| 大安市| 湘阴县| 林芝县| 汽车| 涞源县| 迁西县| 伊通|