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

?

基于LPC1768的車載以太網(wǎng)網(wǎng)關(guān)設(shè)計

2020-12-31 09:32張寶寶張友兵蘭建平周海鷹
關(guān)鍵詞:以太網(wǎng)網(wǎng)關(guān)數(shù)據(jù)包

張寶寶,張友兵,蘭建平,周海鷹

(湖北汽車工業(yè)學(xué)院 汽車工程師學(xué)院,湖北 十堰442002)

目前CAN總線以其性價比優(yōu)勢在整車通信市場上占據(jù)了較大的份額,它既可實現(xiàn)遠(yuǎn)距離通信,也能進(jìn)行多個節(jié)點之間的相互通信[1]。隨著自動駕駛技術(shù)的迅速發(fā)展,車用傳感器數(shù)量不斷增加,對應(yīng)的控制節(jié)點也越來越多,對整車的數(shù)據(jù)傳輸提出了更高的要求,CAN 總線在信息傳輸數(shù)量和實時性方面面臨巨大的挑戰(zhàn)[2]。以太網(wǎng)表現(xiàn)出的較高通信速率、組網(wǎng)方便靈活、安全可靠和實時等優(yōu)勢,得到汽車行業(yè)者的青睞[3]。CAN總線通信網(wǎng)絡(luò)應(yīng)用廣泛,短時間內(nèi)以太網(wǎng)不能完全將其取代,需要經(jīng)歷以太網(wǎng)通信網(wǎng)絡(luò)與傳統(tǒng)車載通信網(wǎng)絡(luò)并存的過渡階段。根據(jù)車輛控制模塊傳輸信息的特點,在信息量小、實時性要求低的控制模塊之間傳輸采用CAN總線通信;而在信息傳遞量大、實時性要求高的控制模塊之間采用以太網(wǎng)通信[4]。CAN 總線和以太網(wǎng)之間協(xié)議不兼容,因此設(shè)計基于LPC1768的車載網(wǎng)關(guān),實現(xiàn)CAN 總線協(xié)議和以太網(wǎng)協(xié)議之間的相互轉(zhuǎn)化,保證其安全性、可靠性和實時性等。

1 車載以太網(wǎng)網(wǎng)關(guān)

車載以太網(wǎng)采用單對非屏蔽雙絞線進(jìn)行通信,既解決了普通以太網(wǎng)的時延問題,又能適用于車載的惡劣工作環(huán)境[5]。普通以太網(wǎng)對應(yīng)的OSI 參考模型有7層,而車載以太網(wǎng)通常被認(rèn)為有4層:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層。車載以太網(wǎng)中可實現(xiàn)SOME/IP 面向服務(wù)的通信,彌補了CAN 總線面向信號的不足,同時還可實現(xiàn)基于IP 協(xié)議的DOIP 診斷,具備未來自動駕駛時代更高性能的潛力。目前車載以太網(wǎng)在汽車的動力域、底盤域、安全域和信息娛樂域都有應(yīng)用,適用場景比較多,但由于未完全普及,成本比較高[6]。

1.1 汽車整體架構(gòu)描述

隨著智能駕駛技術(shù)的迅速發(fā)展,汽車應(yīng)用傳感器和電氣設(shè)備越來越多,使用的總線通信網(wǎng)絡(luò)各種各樣。為了控制總線長度和降低ECU 數(shù)量,普遍采用以域控制器為主的開放式汽車整體架構(gòu),如圖1 所示。將汽車電子系統(tǒng)根據(jù)功能劃分為若干個功能塊,每個功能塊內(nèi)部的系統(tǒng)架構(gòu)以域控制器為主導(dǎo)進(jìn)行設(shè)計,中央網(wǎng)關(guān)進(jìn)行信息交互。車載網(wǎng)關(guān)相當(dāng)于信息樞紐,實現(xiàn)高低速CAN、LIN、FlexRay和以太網(wǎng)等不同協(xié)議通信網(wǎng)絡(luò)之間的信息交互,在原有傳統(tǒng)總線通信的基礎(chǔ)上增加以太網(wǎng)的通信接口,滿足整車的通信網(wǎng)絡(luò)架構(gòu)要求。車載網(wǎng)關(guān)除了進(jìn)行通信協(xié)議的轉(zhuǎn)換之外,還具有程序在線更新、整車通信網(wǎng)絡(luò)診斷等功能[7]。

圖1 開放式汽車整體架構(gòu)

1.2 車載網(wǎng)關(guān)系統(tǒng)架構(gòu)設(shè)計

車載網(wǎng)關(guān)通過單片機對車載局域網(wǎng)的信號進(jìn)行處理,達(dá)到信息共享和實現(xiàn)數(shù)據(jù)的無差錯傳輸,保證安全駕駛。車載網(wǎng)關(guān)由硬件電路和應(yīng)用程序2個部分組成,實現(xiàn)CAN總線通信協(xié)議和以太網(wǎng)協(xié)議的相互轉(zhuǎn)換,進(jìn)行CAN 總線和以太網(wǎng)間的雙向通信[8]。車載網(wǎng)關(guān)系統(tǒng)框圖如圖2 所示。CAN 收發(fā)模塊PCA82C251 接收CAN 總線上的數(shù)據(jù),轉(zhuǎn)換為以太網(wǎng)通信協(xié)議數(shù)據(jù)后,通過以太網(wǎng)控制模塊DP83848 上傳到網(wǎng)絡(luò)中;同時,以太網(wǎng)模塊接收網(wǎng)絡(luò)中的數(shù)據(jù),轉(zhuǎn)換為CAN 總線協(xié)議數(shù)據(jù)后,通過CAN收發(fā)模塊將轉(zhuǎn)換的CAN報文數(shù)據(jù)按照相應(yīng)的時間周期下發(fā)到汽車的總線上。

圖2 車載網(wǎng)關(guān)系統(tǒng)框圖

2 車載網(wǎng)關(guān)的硬件設(shè)計

2.1 核心處理器介紹

車載網(wǎng)關(guān)采用NXP 公司的LPC1768 作為中央處理器,以ARM Cortex-M3為內(nèi)核,通過AHB總線連接CPU 和CAN 控制模塊、以太網(wǎng)控制模塊的通信,可以進(jìn)行更高更快的信息傳輸。處理器具有3級流水線和哈佛結(jié)構(gòu),操作頻率可達(dá)100 MHZ,內(nèi)置可嵌套的向量中斷控制器(NVIC),支持多種中斷方式,并且能實現(xiàn)低功耗。LPC1768具有含系統(tǒng)編程(ISP)和應(yīng)用編程(IAP)功能的512 kB 片上Flash 存儲器、64 kB數(shù)據(jù)存儲器、以太網(wǎng)MAC、8通道通用DMA控制器、2條CAN通道、多個通用定時器和70余個通用I/O管腳等外設(shè)組件,滿足車載網(wǎng)關(guān)的功能需求。

2.2 CAN通信電路設(shè)計

CAN 通信電路如圖3 所示,主要由CAN 收發(fā)器驅(qū)動模塊和電路隔離模塊構(gòu)成。CAN 收發(fā)器采用NXP 公司的PCA82C251,在CAN 控制器和物理傳輸線之間起邏輯電平與差分電壓信號轉(zhuǎn)換的作用,接收來自CAN總線的差動信號,同時具有一定的抗共模干擾能力。隔離模塊采用ADI 公司的ADUM1201,運用iCoupler技術(shù),體積小,應(yīng)用靈活,基于電磁的隔離方法,性能優(yōu)于其他光電隔離器件,實現(xiàn)了真正意義上的電氣隔離,防止過流沖擊損壞主芯片。同時電路配有NUP2105L 管,實現(xiàn)CAN 總線上的浪涌保護(hù),可實現(xiàn)車輛復(fù)雜工作環(huán)境下的CAN總線通信。

圖3 CAN通信電路

2.3 以太網(wǎng)通信電路設(shè)計

LPC1768芯片自帶以太網(wǎng)模塊,集成了介質(zhì)訪問控制層(MAC),支持10 Mb·s-1或100 Mb·s-1PHY設(shè)備,配有對應(yīng)的8通道DMA控制器,通過標(biāo)準(zhǔn)RMII 接口連接外部PHY 芯片,能接收過濾,結(jié)合以太網(wǎng)通信電路,可實現(xiàn)車輛復(fù)雜工作環(huán)境下的以太網(wǎng)通信。以太網(wǎng)通信電路如圖4所示。

圖4 以太網(wǎng)通信電路

PHY芯片采用美國國家半導(dǎo)體(NS)公司生產(chǎn)的DP83848C 集成以太網(wǎng)控制芯片,該芯片魯棒性好、集成度高、功耗低,支持10/100 Mb·s-1的以太網(wǎng)通信,配合RMII(精簡的介質(zhì)無關(guān)接口)標(biāo)準(zhǔn)接口,減少MAC至PHY接口的引腳數(shù)目,使設(shè)計簡單靈活。同時,配有千兆以太網(wǎng)口HR911105A,內(nèi)含有以太網(wǎng)變壓器電路,實現(xiàn)阻抗匹配、信號整形、網(wǎng)絡(luò)隔離,以及濾除網(wǎng)絡(luò)和設(shè)備雙方面的噪音,適用于車輛復(fù)雜的工作環(huán)境。

3 車載網(wǎng)關(guān)的軟件設(shè)計

3.1 軟件整體架構(gòu)設(shè)計

文中主要實現(xiàn)CAN總線通信協(xié)議和以太網(wǎng)協(xié)議的相互轉(zhuǎn)換,同時利用二次開發(fā)的BootLoader程序?qū)崿F(xiàn)對網(wǎng)關(guān)應(yīng)用程序的遠(yuǎn)程更新。軟件由Boot-Loader程序和應(yīng)用程序組成,其中應(yīng)用程序分為協(xié)議轉(zhuǎn)換、CAN 收發(fā)通信和以太網(wǎng)收發(fā)通信3 個部分。車載網(wǎng)關(guān)的軟件設(shè)計框圖如圖5所示。

圖5 軟件設(shè)計框圖

對車載網(wǎng)關(guān)進(jìn)行ISP編程后,二次開發(fā)的Boot-Loader 程序被燒寫到指定Flash 區(qū)域,用撥碼開關(guān)將芯片P2.10引腳置為高電平。網(wǎng)關(guān)使用上電時,首先執(zhí)行BootLoader 程序,初始化IAP 端口(網(wǎng)口),通過判斷狀態(tài)確定是否需要從IAP 端口更新應(yīng)用程序,若需要更新則通過IAP命令將接收到暫存于SRAM 的應(yīng)用程序Bin 文件數(shù)據(jù)寫入到指定的Flash區(qū)域,更新完成后跳入到指定的Flash區(qū)域執(zhí)行最新的應(yīng)用程序;若不更新則直接跳入到指定的Flash區(qū)域執(zhí)行之前的應(yīng)用程序。跳轉(zhuǎn)到應(yīng)用程序后,利用LPC1768 的定時、中斷等功能保證網(wǎng)絡(luò)通信和數(shù)據(jù)的收發(fā)、協(xié)議的轉(zhuǎn)換實時運行。執(zhí)行系統(tǒng)的網(wǎng)絡(luò)通信功能是在無操作系統(tǒng)的環(huán)境下通過移植LwIP協(xié)議棧達(dá)到減少內(nèi)存占用的效果來實現(xiàn)的。主程序流程圖如圖6所示。

圖6 主程序流程

3.2 協(xié)議轉(zhuǎn)換設(shè)計

系統(tǒng)通過CAN 接收中斷、以太網(wǎng)接收中斷和定時器中斷來實現(xiàn)數(shù)據(jù)的收發(fā)和協(xié)議轉(zhuǎn)換。調(diào)用CAN 發(fā)送函數(shù)(CAN_send),將網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)換后的CAN 報文按照所設(shè)置的時鐘周期下發(fā)到車輛的CAN總線上;調(diào)用UDP發(fā)送函數(shù)(Udp_send_data),將CAN數(shù)據(jù)轉(zhuǎn)換后的網(wǎng)絡(luò)數(shù)據(jù)UDP包發(fā)送到網(wǎng)絡(luò)中。中斷程序流程如圖7所示。

通信過程中UDP 數(shù)據(jù)包的格式不固定,為了與CAN 報文幀有效無差錯地相互轉(zhuǎn)換,需要進(jìn)行定義,如表1 所示,校驗位是UDP 數(shù)據(jù)包在上層和下層被接收時進(jìn)行驗證,確保信息傳遞的安全性。

圖7 中斷程序流程

表1 UDP數(shù)據(jù)包格式

3.3 CAN通信軟件設(shè)計

LPC1768 設(shè)計CAN 總線通信時,在應(yīng)用程序的main 函數(shù)內(nèi)依次調(diào)用CAN_setup 函數(shù)(設(shè)置CAN 控制器)、CAN_start 函數(shù)(啟動CAN 控制器)、CAN_waitReady 函數(shù)(等待CAN 控制器就緒)、CAN_SetACCF 函數(shù)(初始化使能濾波選擇)后,根據(jù)CAN接收中斷和定時器中斷調(diào)用CAN_recive函數(shù)和CAN_send 函數(shù),實現(xiàn)CAN 報文的接收和發(fā)送。同時LPC1768提供512×32(2 kB)的濾波RAM空間,該RAM空間可以存放1024個標(biāo)準(zhǔn)標(biāo)識符或512 個擴展標(biāo)識符,填充好所需要濾波的標(biāo)識符(ID 號)后,在調(diào)用CAN_SetACCF 函數(shù)時選擇ACCF_ON參數(shù),實現(xiàn)濾波功能。

3.4 以太網(wǎng)通信軟件設(shè)計

在無操作系統(tǒng)下移植LwIP 協(xié)議棧,實現(xiàn)基于LwIP 協(xié)議棧的UDP 通信,達(dá)到網(wǎng)絡(luò)通信的目的。UDP 是無連接的傳輸層協(xié)議,沒有TCP/IP 協(xié)議的握手、確認(rèn)等機制,實時性很好,可傳輸大批量數(shù)據(jù)。使用UDP 協(xié)議,編程接口時采用回調(diào)函數(shù)的方式,綁定對應(yīng)的IP和端口號后,在接收到網(wǎng)絡(luò)數(shù)據(jù)時調(diào)用LwIP 協(xié)議棧注冊的回調(diào)函數(shù)UDP_recv,使編程大大簡化。系統(tǒng)會為應(yīng)用線程創(chuàng)建一個UDP 控制塊,里面含有源端口號、目標(biāo)端口號、源IP 地址、目標(biāo)IP 地址和回調(diào)函數(shù)等信息,當(dāng)收到UDP 數(shù)據(jù)時,控制塊之間互相匹配,找到對應(yīng)端口號,建立UDP 通信。為了UDP 通訊快速進(jìn)入監(jiān)聽狀態(tài),需進(jìn)行UDP服務(wù)器的初始化,源代碼如下:

4 功能測試與驗證

4.1 測試環(huán)境搭建

為了驗證系統(tǒng)的可靠性,對車載網(wǎng)關(guān)進(jìn)行測試驗證。建立實驗平臺,利用周立功公司生產(chǎn)的USBCAN-2E-U模擬CAN總線上的節(jié)點,利用配套上位機軟件CANTest 進(jìn)行CAN 報文的收發(fā)。用網(wǎng)線將網(wǎng)關(guān)的以太網(wǎng)網(wǎng)口與電腦的網(wǎng)口相連,用網(wǎng)絡(luò)調(diào)試助手模擬客戶端進(jìn)行UDP 數(shù)據(jù)包的接收和發(fā)送,用12 V直流電源對網(wǎng)關(guān)進(jìn)行供電,建立通信回路。車載網(wǎng)關(guān)的測試平臺如圖8所示。

搭建起測試平臺后,利用ping命令檢測網(wǎng)絡(luò)通信的連通情況。出現(xiàn)圖9 所示界面表明網(wǎng)絡(luò)通信正常,測試平臺搭建成功,車載網(wǎng)關(guān)的IP 地址為192.168.1.60。

圖8 車載網(wǎng)關(guān)的測試平臺

圖9 網(wǎng)絡(luò)通信正常界面

4.2 功能驗證

測試平臺搭建成功后進(jìn)行功能驗證。依次打開CANTest軟件和網(wǎng)絡(luò)調(diào)試助手,在CANTest中選擇對應(yīng)的設(shè)備,連接成功后以100 ms 的時間間隔發(fā)送ID 為0x219的CAN 報文,幀數(shù)據(jù)為0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07;在網(wǎng)絡(luò)調(diào)試助手中設(shè)置本地IP 地址為192.168.1.10,網(wǎng)關(guān)IP 地址為192.168.1.60,端口號為4001,根據(jù)定義的UDP 數(shù)據(jù)包格式發(fā)送ID 為0x383 的UDP 數(shù)據(jù)包,下發(fā)周期為200 ms,數(shù)據(jù)為0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88。

CANTest顯示界面如圖10所示,模擬節(jié)點每隔200 ms 接收到ID 號為0x383、數(shù)據(jù)為0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88 的CAN 報文;網(wǎng)絡(luò)調(diào)試助手顯示界面如圖11 所示,客戶端接收到ID號為0x219 轉(zhuǎn)換后的UDP 數(shù)據(jù)包,對應(yīng)數(shù)據(jù)為0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,接收數(shù)據(jù)與轉(zhuǎn)換前的發(fā)送數(shù)據(jù)相同。

圖10 CANTest界面顯示

圖11 網(wǎng)絡(luò)調(diào)試助手界面顯示

經(jīng)過多次數(shù)據(jù)測試,同時結(jié)合整車應(yīng)用,對數(shù)據(jù)分析表明CAN報文數(shù)據(jù)與UDP數(shù)據(jù)包轉(zhuǎn)換內(nèi)容一致,下發(fā)周期與設(shè)定相同,說明車載以太網(wǎng)網(wǎng)關(guān)工作正常,穩(wěn)定性、實時性和安全性高,滿足功能要求。

5 結(jié)論

車載以太網(wǎng)網(wǎng)關(guān)通過器件選型和隔離、防浪涌等保護(hù)電路設(shè)計,保證其在復(fù)雜工況下穩(wěn)定運行。開發(fā)BootLoader實現(xiàn)網(wǎng)關(guān)應(yīng)用程序的遠(yuǎn)程更新,便于后期維護(hù)升級。網(wǎng)關(guān)能夠準(zhǔn)確實現(xiàn)以太網(wǎng)數(shù)據(jù)和CAN 總線數(shù)據(jù)的相互轉(zhuǎn)換,有效解決了車載以太網(wǎng)不能與傳統(tǒng)CAN總線直接通信的難題。

猜你喜歡
以太網(wǎng)網(wǎng)關(guān)數(shù)據(jù)包
基于FPGA的工業(yè)TSN融合網(wǎng)關(guān)設(shè)計
二維隱蔽時間信道構(gòu)建的研究*
一種主從冗余網(wǎng)關(guān)的故障模式分析與處理
民用飛機飛行模擬機數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
C#串口高效可靠的接收方案設(shè)計
基于6LoWPAN的嵌入式多網(wǎng)關(guān)系統(tǒng)設(shè)計與實現(xiàn)
天地一體化網(wǎng)絡(luò)地面軟網(wǎng)關(guān)技術(shù)及其應(yīng)用
三大因素驅(qū)動創(chuàng)新提速以太網(wǎng)快步邁入“靈活”時代
三大因素驅(qū)動創(chuàng)新提速 以太網(wǎng)快步邁入“靈活”時代
談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用