陳洋 杜彬 王學棟
【摘? 要】文章設計的協議方案通過建立虛擬設備節點的處理方式,在多個處理器、多臺車輛接入通信時,在保證傳輸效率與正確性的同時,還能夠顯著降低代碼量,提升代碼復用率,大幅降低維護成本,提高車輛通信的服務品質。
【關鍵詞】車聯網;板級通信協議;虛擬設備節點;高效通信
中圖分類號:U463.6? ? 文獻標識碼:A? ? 文章編號: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
作者簡介
陳洋,男,助理工程師,嵌入式開發工程師;杜彬,男,工程師,主要從事車聯網終端產品項目管理及規劃工作;王學棟,男,助理工程師,主要從事車聯網終端項目開發、管理工作。
目前車載智能網聯設備的主控方案大多都是由強實時性的MCU、高性能的SOC、聯網模組構成,這些主控模塊均都有數據處理能力。在處理如GPS、傳感器、CAN網絡設備等外設的信息時,現有的通信協議中大部分情況都是通過定義命令碼來實現。當設備和命令碼越來越多的時候代碼量會急劇增加且后期不易維護,在交互過程中保證數據的傳輸效率與正確性是尤為重要的。
當前隨著互聯網的飛速發展,車輛已經不再是簡單的代步工具,而是逐漸演變為集娛樂與交通一體的智能交通產品,使得車輛的應用通信數據相比以前成倍增加。另外,由于公路網上車輛密度的影響,通信基站對數據的承載能力也是不同的,當數據處理能力跟不上使用者的預計時,就會讓使用者體驗感下降。
1? 系統方案
1.1? 方案說明
本文設計一種板級多處理器間高效的通信協議,在協議中根據通信需求創建虛擬設備節點,優化以往定義命令碼的方式,當不同設備之間通信時,通過這層協議使得不同設備之間存在相同屬性的虛擬設備,不僅大幅度降低了維護難度,還提高了智能網聯設備間數據交互的準確性及數據品質,為車輛安全保駕護航。
1.2? 方案實現
本技術方案的通信是基于數據通道實現的,每個通道都有一個唯一的名稱和一個與之相關聯的消息類型,每個通道代表了一種虛擬外設。通信協議中的各對象又分為消息發布者與消息訂閱者,發布者指將消息發送到特定通道以供訂閱者接收的單位,訂閱者則指從數據總線上接收特定通道消息的單位。數據總線上各對象關系如圖1所示。
每條完整的數據消息由標識位、發送通道、操作類型、接收通道、數據長度、數據內容和校驗碼組成,其中需要傳送的消息體位于數據內容段。通信協議在對數據幀處理時采用分層處理,分為數據鏈路層、網絡層及應用層協議3部分,每層負責的功能如下。
1)數據鏈路層。主要負責數據幀發送、數據幀接收及數據的完整性校驗。數據幀的發送與接收依靠當前芯片的通信口實現,協議中預留了解耦后的數據收發接口,使用時需要將實際的物理硬件接口驅動添加到該接口中,如UART的收發接口、SPI的收發接口等;數據幀完整性校驗通過提取數據幀中的標識位、數據長度、CRC16校驗碼來保證;校驗無誤后,數據鏈路層將數據幀傳送給網絡層。
2)網絡層。主要負責數據幀中數據內容的路由及虛擬設備節點的管理。數據向上路由即為訂閱者收取訂閱消息的過程,向下路由即為發布者向消息總線發布消息的過程。
設計時預留了虛擬設備節點的添加接口,添加后程序在運行時,網絡層協議根據數據幀中的操作類型管理虛擬設備節點的打開、關閉以及多處理器之間虛擬設備節點間數據鏈路的暢通。
在虛擬設備節點之間的數據鏈路建立成功后,對應用層而言,網絡層需要根據數據幀中的發送通道和接收通道將數據內容段的數據分發到不同的虛擬設備節點中進行緩存;對數據鏈路層而言,網絡層需要根據應用層協議的發送需求將打包好的數據發送給數據鏈路層進行發送。
3)應用層協議。主要負責對數據內容的解包、打包,通過對這段數據的解析即可明確這條消息體需要實現的具體功能。應用層協議可以根據項目需求進行高度自由化定義,比如添加CAN總線消息的處理協議包、物聯網設備的通信協議包,或是自定義解析協議到當前的應用層協議中統一進行管理。這些協議會與網絡層的虛擬設備節點緩存區的操作接口進行連接。
1.3? 方案有益效果
使用本方案多處理器間的通信協議,首先解耦了硬件與軟件的數據收發接口;其次通過數據路由功能將數據發送給指定的虛擬設備,可以提高設備間的通信效率,保證數據傳輸準確性、穩定性與數據安全等;最后應用層協議的高度自由化定義使協議的擴展能力更強。
2? 實際應用
2.1? 當本通信協議應用到板級多處理器之間時
多處理器間通信架構如圖2所示,圖中共有3個處理器,3個處理器之間的通信鏈路使用物理通道,如SPI、UART等接口進行連接,在每個處理器中協議的網路層會根據項目需求虛擬出所有相關的處理器接口,對其狀態統一進行管理。
2.2? 當本通信協議應用到車與車之間時
多車輛間通信架構如圖3所示,圖中共有3輛車,當車輛之間需要進行數據交互時,3輛車之間的通信鏈路使用車際網絡進行連接,在每臺車輛內部中控的網路層會虛擬出所有相關的車輛,這樣就可以方便地對每臺車輛的信息進行管理。
3? 結束語
本方案將處理器之間通信協議分為3層,每一層之間都通過解耦后的接口進行連接。網絡層中的虛擬設備節點技術及應用協議層包管理方式,可以使多處理器、多設備、多車輛之間僅靠同一套通信協議就可以快速實現數據互通。
參考文獻:
[1] 黃大榮. 車聯網信息安全傳輸的數據隱私保護方法[M]. 北京:科學出版社,2022.
[2] 中國通信學會. 車聯網產業與技術發展路線圖[M]. 北京:中國科學技術出版社,2022.
[3] W.Richard Stevens. TCP/IP詳解卷1:協議[M]. 范建華,譯.北京:機械工業出版社,2011.
(編輯? 楊凱麟)
收稿日期:2023-09-05