一种基于CAN总线的自动ID分配的多机通讯系统及其方法技术方案

技术编号:38942993 阅读:13 留言:0更新日期:2023-09-25 09:40
本发明专利技术公开了一种基于CAN总线的自动ID分配的多机通讯系统及其方法,包括主机单元与从机单元,主机单元通过CAN收发装置与从机单元连接,从机单元包括多个目标设备单元。优点:从机单元使用相同的程序,无需为每个目标设备单元编写不同的程序,就能够由目标设备单元本身自动生成不重复的ID。主机单元分为全局控制和独立控制两种模式,能够实现主机单元对所有目标设备单元同时交互,或对任意目标设备单元进行点对点的交互,由主机单元实现对多设备连接、通讯的管理,目标设备单元作为从机只响应主机的交互,避免CAN总线上数据过多出现冲突或延时,保证多机通讯的可靠性、稳定性与快速性。性。性。

【技术实现步骤摘要】
一种基于CAN总线的自动ID分配的多机通讯系统及其方法


[0001]本专利技术涉及多机通讯
,具体是一种基于CAN总线的自动ID分配的多机通讯系统及其方法。

技术介绍

[0002]多机通讯技术主要是为了能够使用一条总线,同时与多个相同型号的目标设备进行控制,减少布线空间,提高通讯效率,可以同时对多个目标设备进行操作。CAN总线本身支持多机通讯,但是为了区分不同的相同型号目标设备,需要先手动为每个目标设备分配不同的地址,常规的做法有:1、通过外部硬件设定不同的地址,但是需要多余的硬件输入输出接口,在一些设备上没有预留的硬件接口,无法使用此方法。
[0003]2、为不同的设备烧录不同的程序,从而分配不同的ID进行区分,这种方法需要先编写多种不同的程序,然后分别为每个设备进行烧录,操作及其麻烦,而且烧录容易覆盖掉控制器中原有的数据,容易烧录错程序,只适用于控制器固定的使用场景。
[0004]3、通过外部通讯单独为每个设备设定不同的ID,这种方法只能在CAN总线上只有一台相同设备时进行设置,所以需要不断的断开连接其他控制器,操作也比较繁琐。

技术实现思路

[0005]本专利技术要解决的技术问题就是克服以上的技术缺陷,提供一种可以自动分配ID的基于CAN总线的自动ID分配的多机通讯系统及其方法。
[0006]为了解决上述问题,本专利技术的技术方案为:一种基于CAN总线的自动ID分配的多机通讯系统,包括主机单元与从机单元,所述主机单元通过CAN收发装置与从机单元连接,所述主机单元包括对从机单元进行管理的多机管理模块、对数据进行传输并检测数据正确性的数据传输模块、对从机单元ID进行修改的ID重分配模块及检测通讯问题的异常检测模块;所述从机单元包括多个目标设备单元,多个所述目标设备单元均包括根据设备内的信息自动生成随机ID的自动ID分配模块、响应主机单元不同的控制指令全局与独立控制模块、关闭目标设备单元响应的静默模式模块及对大量数据包管理的多包传输模块。
[0007]进一步,所述CAN收发装置为USB

CAN工具,所述CAN收发装置用于将主机单元上的CAN数据发送给从机单元且接收从机单元发送的CAN数据。
[0008]进一步,所述多个目标设备单元的数量小于或等于CAN总线所容纳的最大节点数。
[0009]进一步,所述多机管理模块用于根据目标设备单元的ID将其进行分类、周期性的检测与各个目标设备单元之间连接情况、控制各个目标设备单元的连接模式。
[0010]一种基于CAN总线的自动ID分配的多机通讯方法,其特征在于,在进行自动分配ID时,包括以下步骤:S1、首先,主机单元使用全局控制模块向从机单元上所有的目标设备单元发送ID
分配指令,若目标设备单元没有收到主机分配ID的指令则重新开始S1步骤;S2、目标设备单元采集控制器内部悬空引脚的AD值;S3、目标设备单元利用悬空的白噪声,作为随机数种子生成随机数;S4、目标设备单元读取MCU内部的序列号;S5、目标设备单元将控制器内部悬空引脚的AD值、利用悬空的白噪声生成的随机数与MCU内部的序列号组合生成随机ID;S6、然后目标设备单元通过全局ID将随机ID反馈给主机单元;S7、目标设备单元若没有收到CAN总线上其他目标设备单元冲突的ID则分配完成,若有冲突ID则进入S8;S8、目标设备单元记录CAN总线上冲突ID的报文时间戳;S9、目标设备单元利用报文时间戳生成随机数;S10、目标设备单元向主机单元发送重新分配ID指令;S11、主机单元收到重新分配ID的指令后进入S2

S7循环。
[0011]一种基于CAN总线的自动ID分配的多机通讯方法,其特征在于,所述主机单元向总线上的多个目标设备单元下发全局指令后,具体包括以下步骤:Sa.主机单元向总线上的多个目标设备单元下发全局指令;Sb.非静默设备单元1、非静默设备单元2分别响应主机单元的全局指令,并向主机单元发送全局或独立反馈;Sc.主机单元在依次接收完所有非静默设备单元的响应后,此次全局指令执行完成,CAN总线上的静默设备单元3由于处于静默模式,收到全局指令后不响应,而主机单元也会忽略静默设备单元的全局响应,除非控制其退出静默模式;Sd.主机单元下发全局指令后,任意非静默设备单元反馈错误指令,或超时未收到反馈时,主机单元根据需要来决定是否重新下发全局指令,或者向出现问题的目标设备单元发送独立指令。
[0012]一种基于CAN总线的自动ID分配的多机通讯方法,其特征在于,所述数据模块进行数据传输时,具体包括以下步骤:SA.主机单元向设备单元下发多包数据时,需要先发送多包首帧,表明需要发送的数据包个数以及数据长度,然后依次下发所有数据包,为了提高通讯效率,多帧数据包不再做校验;SB.多包传输完成后,发送0x30多包尾帧,并发送所有数据包的校验;SC.目标设备单元当收到多包首帧后开始进行多包通讯,存储数据包个数及数据长度,然后依次接收所有数据包;SD.目标设备单元收到多包尾帧时,对接收到的所有数据进行校验,如果数据包序号不连续、数据包个数错误、数据长度不匹配或数据校验错误等,都会导致此次多包传输失败;SE.目标设备单元向主机单元发送错误信息,由主机单元决定是否重新传输数据;SF.设备单元接收多包数据无误时,对所有数据进行打包,然后再进行处理。
[0013]本专利技术与现有的技术相比的优点在于:1、本专利技术使用的一种基于CAN总线的自动ID分配的多机通讯技术,从机单元使用
相同的程序,无需为每个目标设备单元编写不同的程序,就能够由目标设备单元本身自动生成不重复的ID。
[0014]2、主机单元分为全局控制和独立控制两种模式,能够实现主机单元对所有目标设备单元同时交互,或对任意目标设备单元进行点对点的交互,由主机单元实现对多设备连接、通讯的管理,目标设备单元作为从机只响应主机的交互,避免CAN总线上数据过多出现冲突或延时,保证多机通讯的可靠性、稳定性与快速性。
附图说明
[0015]图1是本专利技术中多机通讯系统框图;图2是本专利技术中ID自动分配的流程图;图3是本专利技术中全局、独立控制模式及静默模式示意图;图4是本专利技术全局和独立指令数据结构图;图5是单包传输和多包传输数据结构图。
具体实施方式
[0016]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。
实施例
[0017]如图1

5所示,一种基于CAN总线的自动ID分配的多机通讯系统,包括主机单元与从机单元,所述主机单元通过CAN收发装置与从机单元连接,所述主机单元包括对从机单元进行管理的多机管理模块、对数据进行传输并检测数据正确性的数据传输模块、对从机单元ID进行修改的ID重分配模块及检测通讯问题的异常检测模块;主机单元一般都由计算机和上位机软件组成,包括多机管理模块、数据传输模块、ID重分配模块、异常检测模块。多机管理模块的主要作用是检测CAN总线上所有连接的目标设备单元,并且根据ID将其进本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CAN总线的自动ID分配的多机通讯系统,包括主机单元与从机单元,所述主机单元通过CAN收发装置与从机单元连接,其特征在于:所述主机单元包括对从机单元进行管理的多机管理模块、对数据进行传输并检测数据正确性的数据传输模块、对从机单元ID进行修改的ID重分配模块及检测通讯问题的异常检测模块;所述从机单元包括多个目标设备单元,多个所述目标设备单元均包括根据设备内的信息自动生成随机ID的自动ID分配模块、响应主机单元不同的控制指令全局与独立控制模块、关闭目标设备单元响应的静默模式模块及对大量数据包管理的多包传输模块。2.根据权利要求1所述的一种基于CAN总线的自动ID分配的多机通讯系统,其特征在于:所述CAN收发装置为USB

CAN工具,所述CAN收发装置用于将主机单元上的CAN数据发送给从机单元且接收从机单元发送的CAN数据。3.根据权利要求1所述的一种基于CAN总线的自动ID分配的多机通讯系统,其特征在于:所述多个目标设备单元的数量小于或等于CAN总线所容纳的最大节点数。4.根据权利要求1所述的一种基于CAN总线的自动ID分配的多机通讯系统,其特征在于:所述多机管理模块用于根据目标设备单元的ID将其进行分类、周期性的检测与各个目标设备单元之间连接情况、控制各个目标设备单元的连接模式。5.根据权利要求1所述的一种基于CAN总线的自动ID分配的多机通讯方法,其特征在于,在进行自动分配ID时,包括以下步骤:S1、首先,主机单元使用全局控制模块向从机单元上所有的目标设备单元发送ID分配指令,若目标设备单元没有收到主机分配ID的指令则重新开始S1步骤;S2、目标设备单元采集控制器内部悬空引脚的AD值;S3、目标设备单元利用悬空的白噪声,作为随机数种子生成随机数;S4、目标设备单元读取MCU内部的序列号;S5、目标设备单元将控制器内部悬空引脚的AD值、利用悬空的白噪声生成的随机数与MCU内部的序列号组合生成随机ID;S6、然后目标设备单元通过全局ID将随机ID反馈给主机单元;S7、目标设备单元若没有收到CAN总线上其他目标...

【专利技术属性】
技术研发人员:白楠
申请(专利权)人:徐州芯源诚达传感科技有限公司
类型:发明
国别省市:

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

1