技术新讯 > 电子通信装置的制造及其应用技术 > 基于CAN总线的虚拟串行通信方法与系统与流程  >  正文

基于CAN总线的虚拟串行通信方法与系统与流程

  • 国知局
  • 2024-09-11 15:11:14

本发明涉及数字信息的传输,电数字数据处理等,尤其涉及一种基于can总线的虚拟串行通信方法与系统。

背景技术:

1、传统串行通信接口,如uart、rs232、rs485、rs422等,工作在osi参考模型的物理层,仅支持单点通信。在串行通信技术中,还存在can(controller area network,控制器局域网)总线通信技术。can总线是一种用于实时应用的通信协议总线,工作在osi参考模型的物理层和数据链路层,它使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。相比于传统串行通信接口,can总线拥有更高的传输速率,更远的传输距离和更好的抗干扰能力,还可以支持多节点组网。然而,can总线协议工作在osi七层模型的物理层(phy)和数据链路层(mac),受限于标准can总线协议(例如,can1.0 a/b和can2.0 a/b)数据段最大8个字节的要求,很多产品直接基于can总线协议制定一套应用层通信协议,开发和维护很不方便。需要注意的是,标准can协议有多个版本。can 1.0a和can 2.0b是第一代can协议,数据传输速率最高只有1 mbps,每个数据帧的最大数据长度是8个字节,数据帧被分为11位标识符和四个附加的控制位。can 2.0a和can 2.0b是第二代can协议,数据传输速率最高可以达到1mbps,每个数据帧最大数据长度为8个字节。它们的主要区别在于数据帧的标识符的长度和结构,其中,can 2.0a使用了11位标识符,而can 2.0b使用了29位标识符。can fd(flexible data-rate,灵活数据速率)协议是2012年提出的一种高速can协议,支持数据传输速率高达5 mbps和64字节的数据长度。它使用类似can 2.0b 的标识符结构,并引入了一些新的功能,如位时间调制、抗干扰性能提高等。can fd协议硬件实现成本相对较高,应用场景没有can1.0和can 2.0广泛。另外,在支持串行通信接口的情况下,由于产品需求(如需要更好的速率、通信距离、抗干扰能力),将串行通信接口改为can总线接口或者直接增加can总线接口,需要基于can总线协议单独制定一套应用层通信协议,新增的应用层通信协议与原有串行总线协议完全没有关系,在两套协议支持的功能一样的情况下,需要开发和维护两套协议,增加了工作量,降低了开发效率。

2、综上所述,现有的串行通信技术存在can总线与传统的串行通信接口不兼容,需要单独制定一套应用层通信协议,应用层受到can基础协议单包数据长度的限制,通信开发难度大,开发效率低等技术问题。

技术实现思路

1、针对上述现有技术存在的不足,本发明提供一种基于can总线的虚拟串行通信方法与系统,以避免单独制定一套应用层通信协议,使得应用层可以摆脱can基础协议单包数据长度的限制,自由传输应用层数据,实现与传统串口通信应用层协议的无缝对接,降低开发难度,提升开发效率。

2、第一方面,本发明提供的基于can总线的虚拟串行通信方法,包括以下步骤:

3、在数据的发送方配置虚拟的发送方can适配层,并在数据的接收方配置虚拟的接收方can适配层;

4、当所述数据的发送方通过发送方应用层向所述数据的接收方发送数据时,所述发送方can适配层对所述发送方应用层下发的应用层数据包进行拆分处理,以得到若干个子数据包下发到can协议层,所述can协议层将所述若干个子数据包传输给所述接收方can适配层;

5、当所述接收方can适配层接收到所述若干个子数据包时,所述接收方can适配层对接收到的所述若干个子数据包进行组包,以得到完整的数据包后上报给所述数据的接收方的接收方应用层。

6、进一步,所述接收方can适配层对接收到的所述若干个子数据包进行组包,包括:所述接收方can适配层对所述若干个子数据包进行完整性判断,在判定所述若干个子数据包完整时,对接收到的所述若干个子数据包进行组包,以得到所述完整的数据包。

7、进一步,所述接收方can适配层对所述完整的数据包进行检验,并将通过校验的所述完整的数据包上报给所述数据的接收方的接收方应用层。

8、进一步,所述发送方can适配层和所述接收方can适配层对多路数据的传输进行多路会话并发管理。

9、进一步,每个所述子数据包具备控制信息和数据内容,所述控制信息和所述数据内容构成控制+数据帧。

10、进一步,所述应用层数据包直接复用传统串行接口应用层数据包,所述传统串行接口包括uart串行接口、rs232串行接口、rs485串行接口或rs422串行接口。其中,所述传统串行接口不限于uart串行接口、rs232串行接口、rs485串行接口、rs422串行接口等串行接口。

11、进一步,所述发送方can适配层和所述接收方can适配层采用相同的can适配层协议帧结构。

12、进一步,所述can适配层协议帧结构包括can总线上的消息标识符can id和can帧中的包数据承载体data。

13、进一步,所述can总线上的消息标识符can id包括发送方设备地址srcaddr、接收方设备地址dstaddr、帧类型标识packettype、设备间的会话id标识sessionid以及具体包信息承载体packetinfo。

14、第二方面,本发明提供一种基于can总线的虚拟串行通信系统,包括:连接通信的发送方应用层、发送方can适配层、接收方can适配层、can协议层以及接收方应用层;所述基于can总线的虚拟串行通信系统运行上述任一项所述的基于can总线的虚拟串行通信方法。

15、本发明与现有技术相比,其有益效果如下:

16、本发明提供一种基于can总线的虚拟串行通信方法与系统,通过在数据的发送方配置虚拟的发送方can适配层,并在数据的接收方配置虚拟的接收方can适配层,当所述数据的发送方通过发送方应用层向所述数据的接收方发送数据时,所述发送方can适配层对所述发送方应用层下发的应用层数据包进行拆分处理,以得到若干个子数据包下发到can协议层,所述can协议层将所述若干个子数据包传输给所述接收方can适配层,当所述接收方can适配层接收到所述若干个子数据包时,所述接收方can适配层对接收到的所述若干个子数据包进行组包,以得到完整的数据包后上报给所述数据的接收方的接收方应用层,从而避免单独制定一套应用层通信协议,使得应用层可以摆脱can基础协议单包数据长度的限制,自由传输应用层数据,实现与传统串口通信应用层协议的无缝对接,降低通信开发难度,提升开发效率。另外,对比于传统串行通信单播方案,基于can总线的虚拟串行通信方法可以有效利用can的总线特性,实现组网,组播以及广播通信,提高网络的应用灵活性以及通信效率。

技术特征:

1.一种基于can总线的虚拟串行通信方法,其特征在于,包括:

2.如权利要求1所述的基于can总线的虚拟串行通信方法,其特征在于,所述接收方can适配层对接收到的所述若干个子数据包进行组包,包括:所述接收方can适配层对所述若干个子数据包进行完整性判断,在判定所述若干个子数据包完整时,对接收到的所述若干个子数据包进行组包,以得到所述完整的数据包。

3.如权利要求2所述的基于can总线的虚拟串行通信方法,其特征在于,所述接收方can适配层对所述完整的数据包进行检验,并将通过校验的所述完整的数据包上报给所述数据的接收方的接收方应用层。

4.如权利要求1所述的基于can总线的虚拟串行通信方法,其特征在于,所述发送方can适配层和所述接收方can适配层对多路数据的传输进行多路会话并发管理。

5.如权利要求1所述的基于can总线的虚拟串行通信方法,其特征在于,每个所述子数据包具备控制信息和数据内容,所述控制信息和所述数据内容构成控制+数据帧。

6.如权利要求1所述的基于can总线的虚拟串行通信方法,其特征在于,所述应用层数据包直接复用传统串行接口应用层数据包,所述传统串行接口包括uart串行接口、rs232串行接口、rs485串行接口或rs422串行接口。

7.如权利要求1-6任一项所述的基于can总线的虚拟串行通信方法,其特征在于,所述发送方can适配层和所述接收方can适配层采用相同的can适配层协议帧结构。

8.如权利要求7所述的基于can总线的虚拟串行通信方法,其特征在于,所述can适配层协议帧结构包括can总线上的消息标识符can id和can帧中的包数据承载体data。

9.如权利要求8所述的基于can总线的虚拟串行通信方法,其特征在于,所述can总线上的消息标识符can id包括发送方设备地址srcaddr、接收方设备地址dstaddr、帧类型标识packettype、设备间的会话id标识sessionid以及具体包信息承载体packetinfo。

10.一种基于can总线的虚拟串行通信系统,其特征在于,包括:连接通信的发送方应用层、发送方can适配层、接收方can适配层、can协议层以及接收方应用层;所述基于can总线的虚拟串行通信系统运行如权利要求1-9任一项所述的基于can总线的虚拟串行通信方法。

技术总结本发明涉及数字信息的传输等技术领域,提供一种基于CAN总线的虚拟串行通信方法与系统,通过在数据的发送方配置虚拟的发送方CAN适配层,并在数据的接收方配置虚拟的接收方CAN适配层,当数据的发送方通过发送方应用层向数据的接收方发送数据时,发送方CAN适配层对发送方应用层下发的应用层数据包进行拆分处理,以得到若干个子数据包下发到CAN协议层,CAN协议层将若干个子数据包传输给接收方CAN适配层,当接收方CAN适配层接收到若干个子数据包时,接收方CAN适配层对接收到的若干个子数据包进行组包,以得到完整的数据包后上报给数据的接收方的接收方应用层,从而降低通信开发难度,提升开发效率。技术研发人员:冯丽莉,杨奎受保护的技术使用者:深圳市华芯控股有限公司技术研发日:技术公布日:2024/9/9

本文地址:https://www.jishuxx.com/zhuanli/20240911/293481.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。