本公开的实施例提供了一种CAN总线通信方法、装置、设备及可读存储介质,所述方法包括:主机与从机建立通信链路;所述主机向CAN总线上每一个从机发送周期同步帧;各个从机接收所述主机发送的周期同步帧,并向主机发送主动错误计数器或被动错误计数器的数据;所述主机根据各个从机发送的错误计数器数据决定各个从机的模式,并对每一个从机进行模式设置;各个从机根据主机设置的模式,主动进入相应的模式。以此方式,实现了主从模式和多主模式混合的CAN总线数据通信方式,可以在降低数据总线负载率的情况下,还能保证数据链路具有可靠的链接。链接。链接。
【技术实现步骤摘要】
一种CAN总线通信方法、装置、设备及可读存储介质
[0001]本公开涉及通信领域,尤其涉及CAN总线通信领域。
技术介绍
[0002]在CAN以及CAN FD(以下统称CAN)总线技术广泛应用在列车各种电子设备和系统上。CAN总线是一种多主式总线,参与组网的每个节点均可自主发送数据。
[0003]但是在列车上,电子设备和系统的架构一般是主机
→
从机式,从机周期性的接收主机的命令,并将各种数据发送给主机,CAN总线多主式的架构与主从式的控制系统在逻辑上并不匹配。同时,由于CAN总线最大仅能承担8字节或64字节(CAN FD)数据,难以承担复杂的校时消息,如果采用多主的协议,主机和多个从机之间没有时钟同步,由于各个主机或从机的时钟偏差,难以保证主机和从机的数据都式在同一控制周期内,数据的实时性难以保证。
[0004]使用CAN总线的另外一种方式是采用主从式,整个总线由主机控制。当主机需要控制从机式,主动将控制数据下发给从机,从机受到后执行命令,并将执行架构反馈给主机。主机和从机约定有效时间,如t0时间主机下发命令,从机在一个周期T内反馈执行结果,那么主机应当在t0+T的时间内收到反馈数据,否则定义为通信失败。当主机需要采集从机数据是,主机下发命令给从机,由于采集数据的实时性要求,从机应当立即将数据反馈给主机,如果不反馈,则主机持续向从机下发数据请求的命令。
技术实现思路
[0005]本公开提供了一种CAN总线通信方法、装置、设备及可读存储介质。
[0006]根据本公开的第一方面,提供了一种CAN总线通信方法,包括:
[0007]主机与从机建立通信链路;
[0008]所述主机向CAN总线上每一个从机发送周期同步帧;
[0009]各个从机接收所述主机发送的周期同步帧,并向主机发送主动错误计数器或被动错误计数器的数据;
[0010]所述主机根据各个从机发送的错误计数器数据决定各个从机的模式,并对每一个从机进行模式设置;
[0011]各个从机根据主机设置的模式,主动进入相应的模式。
[0012]在第一方面的一些实现方式中,主机与从机建立通信链路包括:
[0013]当从机上电正常运行后,若没有接收到主机的控制命令,则直接驱动CAN节点进入主模式,主动向主机发送注册帧并等待主机应答;
[0014]当主机上电正常运行后,若没有接收到任意一个从机的注册帧,则主动发起广播帧,要求每一个从机发送注册帧,并等待每一个从机都注册成功。
[0015]在第一方面的一些实现方式中,所述主机向CAN总线上每一个从机发送周期同步帧包括:
[0016]所述主机向CAN总线上每一个从机以广播帧的形式发送周期同步帧,以便从机接收到所述周期同步帧后与主机同步。
[0017]在第一方面的一些实现方式中,各个从机接收所述主机发送的周期同步帧,并向主机发送主动错误计数器或被动错误计数器的数据包括:
[0018]各个从机接收所述主机发送的周期同步帧,计算时间偏差,若从机的运行周期与所述主机发送的周期同步帧之间的时间偏差超出阈值时,所述从机将所述时间偏差和错误计数器数据发送至所述主机。
[0019]在第一方面的一些实现方式中,所述主机根据各个从机发送的错误计数器数据决定各个从机的模式,并对每一个从机进行模式设置包括:
[0020]正常情况下,CAN总线处于主动错误状态,当收到错误帧时,主动错误计数器根据错误类型累加相应的数值;
[0021]若所述主动错误计数器数值小于第一阈值,从机模式为主模式,否则,从机模式变为从模式;
[0022]从模式下,若所述主动错误计数器数值小于第二阈值,CAN总线为主动错误状态,否则,变为被动错误状态;
[0023]被动错误状态下,若所述被动错误计数器数值小于第三阈值,被动错误计数器继续累加相应的数值,否则,CAN总线关闭。
[0024]在第一方面的一些实现方式中,所述方法还包括:
[0025]若主机判断通信完毕,所述主机向CAN总线上每一个从机发送命令,各个从机接收所述主机发送的命令并停止数据发送;
[0026]若主机判断通信异常,断开通信链路,进行CAN总线状态检查并重新建立链接。
[0027]根据本公开的第二方面,提供了一种CAN总线通信装置,包括:
[0028]建链单元,用于主机与从机建立通信链路;
[0029]周期同步帧发送单元,用于所述主机向CAN总线上每一个从机发送周期同步帧;
[0030]主从同步单元,用于各个从机接收所述主机发送的周期同步帧,并向主机发送主动错误计数器或被动错误计数器的数据;
[0031]模式设置单元,用于所述主机根据各个从机发送的错误计数器数据决定各个从机的模式,并对每一个从机进行模式设置;
[0032]工作单元,用于各个从机根据主机设置的模式,主动进入相应的模式。
[0033]根据本公开的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
[0034]根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本公开的第一方面的方法。
[0035]本公开通过主机与多个从机之间建立通信链接,在主机与所有的从机都建立链路后,主机向总线上所有的设备发送特殊的数据帧,作为控制周期同步的标志,使得所有从机都能够与主机在同一个控制周期内,主机向从机发送同步标志后,各个从机将主动错误计数器或被动错误计数器的数据发送给主机作为应答,主机依据错误计数器决定该从机是主模式还是从模式,从机根据主机设置的模式,主动进入相应的模式。以此方式,实现了主从模式和多主模式混合的CAN总线数据通信方式,在降低数据总线负载率的情况下,还能保证
数据链路具有可靠的链接。
[0036]应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
[0037]结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。附图用于更好地理解本方案,不构成对本公开的限定在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
[0038]图1示出了根据本公开的实施例的一种CAN总线通信方法的流程示意图;
[0039]图2示出了根据本公开的实施例的一种CAN总线通信方法的流程图;
[0040]图3示出了根据本公开的实施例的一种CAN总线通信装置的框图;
[0041]图4示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
[0042]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种CAN总线通信方法,其特征在于,所述方法包括:主机与从机建立通信链路;所述主机向CAN总线上每一个从机发送周期同步帧;各个从机接收所述主机发送的周期同步帧,并向主机发送主动错误计数器或被动错误计数器的数据;所述主机根据各个从机发送的错误计数器数据决定各个从机的模式,并对每一个从机进行模式设置;各个从机根据主机设置的模式,主动进入相应的模式。2.根据权利要求1所述的CAN总线通信方法,其特征在于,主机与从机建立通信链路包括:当从机上电正常运行后,若没有接收到主机的控制命令,则直接驱动CAN节点进入主模式,主动向主机发送注册帧并等待主机应答;当主机上电正常运行后,若没有接收到任意一个从机的注册帧,则主动发起广播帧,要求每一个从机发送注册帧,并等待每一个从机都注册成功。3.根据权利要求1所述的CAN总线通信方法,其特征在于,所述主机向CAN总线上每一个从机发送周期同步帧包括:所述主机向CAN总线上每一个从机以广播帧的形式发送周期同步帧,以便从机接收到所述周期同步帧后与主机同步。4.根据权利要求1所述的CAN总线通信方法,其特征在于,各个从机接收所述主机发送的周期同步帧,并向主机发送主动错误计数器或被动错误计数器的数据包括:各个从机接收所述主机发送的周期同步帧,计算时间偏差,若从机的运行周期与所述主机发送的周期同步帧之间的时间偏差超出阈值时,所述从机将所述时间偏差和错误计数器数据发送至所述主机。5.根据权利要求1所述的CAN总线通信方法,其特征在于,所述主机根据各个从机发送的错误计数器数据决定各个从机的模式,并对每一个从机进行模式设置包括:正常情况下,CAN总线处于主动错误状态,当收到错误帧时,主动错误计数器根据错误类型累加相应的数值;若所述主动错误计数器数值小于第一阈值,从机模式为主模式,否则,从机模...
【专利技术属性】
技术研发人员:于银刚,王强,张世强,
申请(专利权)人:交控科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。