陳洋 杜彬 王學(xué)棟
【摘? 要】文章設(shè)計(jì)的協(xié)議方案通過建立虛擬設(shè)備節(jié)點(diǎn)的處理方式,在多個(gè)處理器、多臺(tái)車輛接入通信時(shí),在保證傳輸效率與正確性的同時(shí),還能夠顯著降低代碼量,提升代碼復(fù)用率,大幅降低維護(hù)成本,提高車輛通信的服務(wù)品質(zhì)。
【關(guān)鍵詞】車聯(lián)網(wǎng);板級(jí)通信協(xié)議;虛擬設(shè)備節(jié)點(diǎn);高效通信
中圖分類號(hào):U463.6? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號(hào):1003-8639( 2024 )05-0057-02
An Efficient Communication Method Between Board Level Multiprocessors
CHEN Yang,DU Bin,WANG Xuedong
(Shaanxi Tianxingjian Car Networking Information Technology Co.,Ltd.,Xi'an 710200,China)
【Abstract】The protocol scheme designed in the article establishes a processing method for virtual device nodes. When multiple processors and vehicles are connected to communication,while ensuring transmission efficiency and correctness,it can significantly reduce code volume,improve code reuse rate,significantly reduce maintenance costs,and improve the service quality of vehicle communication.
【Key words】internet of vehicles;board level communication protocol;virtual device nodes;efficient communication
作者簡(jiǎn)介
陳洋,男,助理工程師,嵌入式開發(fā)工程師;杜彬,男,工程師,主要從事車聯(lián)網(wǎng)終端產(chǎn)品項(xiàng)目管理及規(guī)劃工作;王學(xué)棟,男,助理工程師,主要從事車聯(lián)網(wǎng)終端項(xiàng)目開發(fā)、管理工作。
目前車載智能網(wǎng)聯(lián)設(shè)備的主控方案大多都是由強(qiáng)實(shí)時(shí)性的MCU、高性能的SOC、聯(lián)網(wǎng)模組構(gòu)成,這些主控模塊均都有數(shù)據(jù)處理能力。在處理如GPS、傳感器、CAN網(wǎng)絡(luò)設(shè)備等外設(shè)的信息時(shí),現(xiàn)有的通信協(xié)議中大部分情況都是通過定義命令碼來(lái)實(shí)現(xiàn)。當(dāng)設(shè)備和命令碼越來(lái)越多的時(shí)候代碼量會(huì)急劇增加且后期不易維護(hù),在交互過程中保證數(shù)據(jù)的傳輸效率與正確性是尤為重要的。
當(dāng)前隨著互聯(lián)網(wǎng)的飛速發(fā)展,車輛已經(jīng)不再是簡(jiǎn)單的代步工具,而是逐漸演變?yōu)榧瘖蕵放c交通一體的智能交通產(chǎn)品,使得車輛的應(yīng)用通信數(shù)據(jù)相比以前成倍增加。另外,由于公路網(wǎng)上車輛密度的影響,通信基站對(duì)數(shù)據(jù)的承載能力也是不同的,當(dāng)數(shù)據(jù)處理能力跟不上使用者的預(yù)計(jì)時(shí),就會(huì)讓使用者體驗(yàn)感下降。
1? 系統(tǒng)方案
1.1? 方案說明
本文設(shè)計(jì)一種板級(jí)多處理器間高效的通信協(xié)議,在協(xié)議中根據(jù)通信需求創(chuàng)建虛擬設(shè)備節(jié)點(diǎn),優(yōu)化以往定義命令碼的方式,當(dāng)不同設(shè)備之間通信時(shí),通過這層協(xié)議使得不同設(shè)備之間存在相同屬性的虛擬設(shè)備,不僅大幅度降低了維護(hù)難度,還提高了智能網(wǎng)聯(lián)設(shè)備間數(shù)據(jù)交互的準(zhǔn)確性及數(shù)據(jù)品質(zhì),為車輛安全保駕護(hù)航。
1.2? 方案實(shí)現(xiàn)
本技術(shù)方案的通信是基于數(shù)據(jù)通道實(shí)現(xiàn)的,每個(gè)通道都有一個(gè)唯一的名稱和一個(gè)與之相關(guān)聯(lián)的消息類型,每個(gè)通道代表了一種虛擬外設(shè)。通信協(xié)議中的各對(duì)象又分為消息發(fā)布者與消息訂閱者,發(fā)布者指將消息發(fā)送到特定通道以供訂閱者接收的單位,訂閱者則指從數(shù)據(jù)總線上接收特定通道消息的單位。數(shù)據(jù)總線上各對(duì)象關(guān)系如圖1所示。
每條完整的數(shù)據(jù)消息由標(biāo)識(shí)位、發(fā)送通道、操作類型、接收通道、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)內(nèi)容和校驗(yàn)碼組成,其中需要傳送的消息體位于數(shù)據(jù)內(nèi)容段。通信協(xié)議在對(duì)數(shù)據(jù)幀處理時(shí)采用分層處理,分為數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層及應(yīng)用層協(xié)議3部分,每層負(fù)責(zé)的功能如下。
1)數(shù)據(jù)鏈路層。主要負(fù)責(zé)數(shù)據(jù)幀發(fā)送、數(shù)據(jù)幀接收及數(shù)據(jù)的完整性校驗(yàn)。數(shù)據(jù)幀的發(fā)送與接收依靠當(dāng)前芯片的通信口實(shí)現(xiàn),協(xié)議中預(yù)留了解耦后的數(shù)據(jù)收發(fā)接口,使用時(shí)需要將實(shí)際的物理硬件接口驅(qū)動(dòng)添加到該接口中,如UART的收發(fā)接口、SPI的收發(fā)接口等;數(shù)據(jù)幀完整性校驗(yàn)通過提取數(shù)據(jù)幀中的標(biāo)識(shí)位、數(shù)據(jù)長(zhǎng)度、CRC16校驗(yàn)碼來(lái)保證;校驗(yàn)無(wú)誤后,數(shù)據(jù)鏈路層將數(shù)據(jù)幀傳送給網(wǎng)絡(luò)層。
2)網(wǎng)絡(luò)層。主要負(fù)責(zé)數(shù)據(jù)幀中數(shù)據(jù)內(nèi)容的路由及虛擬設(shè)備節(jié)點(diǎn)的管理。數(shù)據(jù)向上路由即為訂閱者收取訂閱消息的過程,向下路由即為發(fā)布者向消息總線發(fā)布消息的過程。
設(shè)計(jì)時(shí)預(yù)留了虛擬設(shè)備節(jié)點(diǎn)的添加接口,添加后程序在運(yùn)行時(shí),網(wǎng)絡(luò)層協(xié)議根據(jù)數(shù)據(jù)幀中的操作類型管理虛擬設(shè)備節(jié)點(diǎn)的打開、關(guān)閉以及多處理器之間虛擬設(shè)備節(jié)點(diǎn)間數(shù)據(jù)鏈路的暢通。
在虛擬設(shè)備節(jié)點(diǎn)之間的數(shù)據(jù)鏈路建立成功后,對(duì)應(yīng)用層而言,網(wǎng)絡(luò)層需要根據(jù)數(shù)據(jù)幀中的發(fā)送通道和接收通道將數(shù)據(jù)內(nèi)容段的數(shù)據(jù)分發(fā)到不同的虛擬設(shè)備節(jié)點(diǎn)中進(jìn)行緩存;對(duì)數(shù)據(jù)鏈路層而言,網(wǎng)絡(luò)層需要根據(jù)應(yīng)用層協(xié)議的發(fā)送需求將打包好的數(shù)據(jù)發(fā)送給數(shù)據(jù)鏈路層進(jìn)行發(fā)送。
3)應(yīng)用層協(xié)議。主要負(fù)責(zé)對(duì)數(shù)據(jù)內(nèi)容的解包、打包,通過對(duì)這段數(shù)據(jù)的解析即可明確這條消息體需要實(shí)現(xiàn)的具體功能。應(yīng)用層協(xié)議可以根據(jù)項(xiàng)目需求進(jìn)行高度自由化定義,比如添加CAN總線消息的處理協(xié)議包、物聯(lián)網(wǎng)設(shè)備的通信協(xié)議包,或是自定義解析協(xié)議到當(dāng)前的應(yīng)用層協(xié)議中統(tǒng)一進(jìn)行管理。這些協(xié)議會(huì)與網(wǎng)絡(luò)層的虛擬設(shè)備節(jié)點(diǎn)緩存區(qū)的操作接口進(jìn)行連接。
1.3? 方案有益效果
使用本方案多處理器間的通信協(xié)議,首先解耦了硬件與軟件的數(shù)據(jù)收發(fā)接口;其次通過數(shù)據(jù)路由功能將數(shù)據(jù)發(fā)送給指定的虛擬設(shè)備,可以提高設(shè)備間的通信效率,保證數(shù)據(jù)傳輸準(zhǔn)確性、穩(wěn)定性與數(shù)據(jù)安全等;最后應(yīng)用層協(xié)議的高度自由化定義使協(xié)議的擴(kuò)展能力更強(qiáng)。
2? 實(shí)際應(yīng)用
2.1? 當(dāng)本通信協(xié)議應(yīng)用到板級(jí)多處理器之間時(shí)
多處理器間通信架構(gòu)如圖2所示,圖中共有3個(gè)處理器,3個(gè)處理器之間的通信鏈路使用物理通道,如SPI、UART等接口進(jìn)行連接,在每個(gè)處理器中協(xié)議的網(wǎng)路層會(huì)根據(jù)項(xiàng)目需求虛擬出所有相關(guān)的處理器接口,對(duì)其狀態(tài)統(tǒng)一進(jìn)行管理。
2.2? 當(dāng)本通信協(xié)議應(yīng)用到車與車之間時(shí)
多車輛間通信架構(gòu)如圖3所示,圖中共有3輛車,當(dāng)車輛之間需要進(jìn)行數(shù)據(jù)交互時(shí),3輛車之間的通信鏈路使用車際網(wǎng)絡(luò)進(jìn)行連接,在每臺(tái)車輛內(nèi)部中控的網(wǎng)路層會(huì)虛擬出所有相關(guān)的車輛,這樣就可以方便地對(duì)每臺(tái)車輛的信息進(jìn)行管理。
3? 結(jié)束語(yǔ)
本方案將處理器之間通信協(xié)議分為3層,每一層之間都通過解耦后的接口進(jìn)行連接。網(wǎng)絡(luò)層中的虛擬設(shè)備節(jié)點(diǎn)技術(shù)及應(yīng)用協(xié)議層包管理方式,可以使多處理器、多設(shè)備、多車輛之間僅靠同一套通信協(xié)議就可以快速實(shí)現(xiàn)數(shù)據(jù)互通。
參考文獻(xiàn):
[1] 黃大榮. 車聯(lián)網(wǎng)信息安全傳輸?shù)臄?shù)據(jù)隱私保護(hù)方法[M]. 北京:科學(xué)出版社,2022.
[2] 中國(guó)通信學(xué)會(huì). 車聯(lián)網(wǎng)產(chǎn)業(yè)與技術(shù)發(fā)展路線圖[M]. 北京:中國(guó)科學(xué)技術(shù)出版社,2022.
[3] W.Richard Stevens. TCP/IP詳解卷1:協(xié)議[M]. 范建華,譯.北京:機(jī)械工業(yè)出版社,2011.
(編輯? 楊凱麟)
收稿日期:2023-09-05