一种基于CAN总线的上下位机的通信方法与系统技术方案

技术编号:37401875 阅读:20 留言:0更新日期:2023-04-30 09:29
本发明专利技术公开了一种基于CAN总线的上下位机的通信方法与系统,其中所述系统包括:一个上位机、多个下位机和CAN消息路由器,其中所述CAN消息路由器,其用于识别接收到CAN数据的源下位机编号,将识别出的不同源下位机CAN的数据部分推送到对应的消息队列,等待上位机对应消费线程消费;所述上位机,其用于与所述多个下位机进行通信,以管理所述多个下位机协同工作;所述下位机,其用于接收所述上位机指令进行相应的控制操作。通过本发明专利技术避免了的自定义通信协议的繁琐和不可控因素,在不具备MODBUS TCP协议通信的CAN协议上实现了使用标准的MODBUS TCP协议数据进行数据交换,保证数据交换的可靠性。换的可靠性。换的可靠性。

【技术实现步骤摘要】
一种基于CAN总线的上下位机的通信方法与系统


[0001]本专利技术属于自动控制
,尤其涉及一种基于CAN总线的上下位机的通信方法与系统。

技术介绍

[0002]对于很多已经实现MODBUS TCP协议的应用,在不改变业务逻辑和数据传输要求的基础上,迁移到CAN总线运行,由于MODBUS TCP协议数据段长度不固定,存在超过CAN总线数据部分规定的8个字节长度的情况,所以需要根据CAN总线的特点解决MODBUS TCP协议数据包开始结束标志的定义以及MODBUS TCP协议数据拆包、组包操作。

技术实现思路

[0003]针对上述现有技术中存在的缺陷,本专利技术提供一种基于CAN总线的上下位机的通信方法,其用于下位机,包括以下步骤:
[0004]步骤S101、获取将要上传的MODBUS TCP协议数据;
[0005]步骤S103、计算所述MODBUS TCP协议数据的数据长度;
[0006]步骤S105、基于所述MODBUS TCP协议数据的数据长度,确定分帧信息;
[0007]步骤S107、基于所述分帧信息,将所述MODBUS TCP协议数据通过CAN协议帧进行传输。
[0008]其中,所述MODBUS TCP协议数据包括从最前面的下位机地址至最后校验位的所有数据。
[0009]其中,所述步骤S105包括:
[0010]若所述MODBUS TCP协议数据的数据长度为L;
[0011]使用取整函数计算F=[L/8],其中[]表示取整;
[0012]若F<=1,则所述分帧信息为0;
[0013]若F>1,则将所述F

1转换为二进制数值B。
[0014]其中,所述步骤S107包括:
[0015]将所述MODBUS TCP协议数据划分为F段;
[0016]依次将每段MODBUS TCP协议数据封装在CAN的数据帧。
[0017]其中,所述CAN的帧头部分包括:请求应答标识、源地址、目的地址、最后一帧标识和分帧信息。
[0018]本专利技术另一个实施例还提供了一种基于CAN总线的上下位机的通信方法,其用于上位机,其特征在于,包括以下步骤:
[0019]步骤S201、为每一个下位机分配一个响应报文消费线程和一个响应报文接收队列;
[0020]步骤S203、接收某一下位机发送的CAN消息;
[0021]步骤S205、基于所述CAN消息的帧头部分,识别所述CAN消息的源下位机编号;
[0022]步骤S207、将相应的CAN消息的数据部分推送至对应的消息队列,等待上位机对应消费线程。
[0023]其中,所述方法还包括:
[0024]对需要发送的MODBUS TCP数据进行CAN协议封装;
[0025]将MODBUS TCP数据中的Slave

ID封装进帧头部分的目的地址;
[0026]设置请求标识,进行分帧处理,标记好是否最后一帧;
[0027]将CAN数据进行发送处理,CAN数据到了总线。
[0028]其中,所述方法还包括:下位机会根据所述帧头部分中的目的地址信息针对性接收。
[0029]其中,所述CAN的帧头部分包括:请求应答标识、源地址、目的地址、最后一帧标识和分帧信息。
[0030]本专利技术还提出了一种基于上述方法的基于CAN总线的上下位机的通信系统,包括一个上位机、多个下位机和CAN消息路由器,其特征在于,
[0031]所述CAN消息路由器,其用于识别接收到CAN数据的源下位机编号,将识别出的不同源下位机CAN的数据部分推送到对应的消息队列,等待上位机对应消费线程消费;
[0032]所述上位机,其用于与所述多个下位机进行通信,以管理所述多个下位机协同工作;
[0033]所述下位机,其用于接收所述上位机指令进行相应的控制操作。
[0034]与现有技术相比,本专利技术具备如下优点:避免了的自定义通信协议的繁琐和不可控因素,在不具备MODBUS TCP协议通信的CAN协议上实现了使用标准的MODBUS TCP协议数据进行数据交换,保证数据交换的可靠性。
附图说明
[0035]通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0036]图1是示出根据本专利技术某一实施例的一种基于CAN总线的上下位机的通信方法流程图;
[0037]图2是示出根据本专利技术另一实施例的一种基于CAN总线的上下位机的通信方法流程图;以及
[0038]图3是示出根据本专利技术实施例的一种基于CAN总线的上下位机的通信系统的示意图。
具体实施方式
[0039]为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。
[0040]在本专利技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制
本专利技术。在本专利技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
[0041]应当理解,尽管在本专利技术实施例中可能采用术语第一、第二、第三等来描述
……
,但这些
……
不应限于这些术语。这些术语仅用来将
……
区分开。例如,在不脱离本专利技术实施例范围的情况下,第一
……
也可以被称为第二
……
,类似地,第二
……
也可以被称为第一
……

[0042]应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0043]取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
[0044]还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CAN总线的上下位机的通信方法,其用于下位机,其特征在于,包括以下步骤:步骤S101、获取将要上传的MODBUS TCP协议数据;步骤S103、计算所述MODBUS TCP协议数据的数据长度;步骤S105、基于所述MODBUS TCP协议数据的数据长度,确定分帧信息,其中,所述分帧信息包含分帧序号和最后一帧标识;步骤S107、基于所述分帧信息,将所述MODBUS TCP协议数据通过CAN协议帧进行传输。2.如权利要求1所述方法,其中所述MODBUS TCP协议数据包括从最前面的下位机地址至最后校验位的所有数据。3.如权利要求1所述方法,其中所述步骤S105包括:若所述MODBUS TCP协议数据的数据长度为L;使用取整函数计算F=[L/8],其中[]表示取整;若F<=1,则所述分帧序号为0;若F>1,则将所述(F

1)转换为二进制数值B。4.如权利要求3所述方法,其中所述步骤S107包括:将所述MODBUS TCP协议数据划分为F段;依次将每段MODBUS TCP协议数据封装在CAN的数据帧。5.如权利要求4所述方法,其中所述CAN的帧头部分包括:请求应答标识、源地址、目的地址、最后一帧标识和分帧信息。6.一种基于CAN总线的上下位机的通信方法,其用于上位机,其特征在于,包括以下步骤:步骤S201、为每一个下位机分配一个响应报文...

【专利技术属性】
技术研发人员:李鹏郑亨举王华阳
申请(专利权)人:内蒙古蒙泰集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1