一种板级多处理器间的高效通信方式
2024-06-08陈洋杜彬王学栋
陈洋 杜彬 王学栋
【摘 要】文章设计的协议方案通过建立虚拟设备节点的处理方式,在多个处理器、多台车辆接入通信时,在保证传输效率与正确性的同时,还能够显著降低代码量,提升代码复用率,大幅降低维护成本,提高车辆通信的服务品质。
【关键词】车联网;板级通信协议;虚拟设备节点;高效通信
中图分类号: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