一种基于CAN2.0B的CAN总线通信方法技术

技术编号:18292223 阅读:49 留言:0更新日期:2018-06-24 08:08
本发明专利技术公开了一种基于CAN2.0B的CAN总线通信方法,包括如下步骤:主设备基于CAN总线通信协议向从设备发送带有帧次序编码的通信帧;从设备接收通信帧,根据通信帧的命令类型到主设备的目标寄存器地址指定的寄存器位置进行操作,并向主设备返回带有相同帧次序编码的响应帧;主设备将接收的响应帧存储到从设备的目的寄存器地址指定的寄存器位置。该方法通过规定帧次序编码,可以区分不同命令帧的先后次序,同时配合命令类型确定了命令的应答关系,发送与接收端均可以根据识别码部分来判断报文的历史关系,用于判断总线收发成功状态,提高了应用软件的执行效率,并提高了信息交互的可靠性。

【技术实现步骤摘要】
一种基于CAN2.0B的CAN总线通信方法
本专利技术涉及一种CAN总线通信方法,尤其涉及一种基于CAN2.0B的CAN总线通信方法,属于网络通信

技术介绍
CAN(ControllerAreaNetwork,控制器局域网络)总线可以有效支持分布式控制或实时控制的串行通信,现已广泛应用于工业自动化、汽车、船舶、医疗设备、工业设备等方面。与一般通信总线相比,基于CAN总线的数据通信具有更强的可靠性、实时性及灵活性。在CAN2.0协议中,规定了29位的报文识别码用于判定优先级和接收滤波,8个字节的数据区域用来传递通信数据。但在实际应用中,需要利用报文识别码和数据区设计出合适的通信机制,用于具体实现CAN总线通信。在CAN总线的实际应用中,应用软件的处理不当会导致CAN总线通信效率的下降,降低了CAN总线的实时性,因此在CAN总线的架构下设计一套可靠性好、效率高和实时性优良的通信机制以实现高效、可靠的通信,是CAN总线应用中急需解决的技术问题。
技术实现思路
针对现有技术的不足,本专利技术所要解决的技术问题在于提供一种基于CAN2.0B的CAN总线通信方法。为实现上述专利技术目的,本专利技术采用下述的技术方案:一种基于CAN2.0B的CAN总线通信方法,包括如下步骤:主设备基于CAN总线通信协议向从设备发送带有帧次序编码的通信帧;从设备接收通信帧,根据通信帧的命令类型到主设备的目标寄存器地址指定的寄存器位置进行操作,并向主设备返回带有相同帧次序编码的响应帧;主设备将接收的响应帧存储到从设备的目的寄存器地址指定的寄存器位置。其中较优地,当通信帧的命令类型为写指令时,通信过程包括如下步骤:主设备基于CAN总线通信协议向从设备发送带有帧次序编码的通信帧;从设备接收通信帧,获取通信帧的命令类型为写指令,将通信帧中数据区的数据存储到主设备的目标寄存器地址指定的寄存器位置;并向主设备返回带有相同帧次序编码的响应帧;主设备将接收的响应帧存储到从设备的目的寄存器地址指定的寄存器位置。其中较优地,当通信帧的命令类型为写指令时,通信过程包括如下步骤:主设备基于CAN总线通信协议向从设备发送带有帧次序编码的写指令通信帧;从设备接收通信帧,获取通信帧的命令类型为读指令,获取主设备的目标寄存器地址,并获取主设备的目标寄存器地址指定的寄存器位置的数据信息,向主设备返回带有相同帧次序编码和数据信息的响应帧;主设备将接收的响应帧存储到从设备的目的寄存器地址指定的寄存器位置。其中较优地,当发生突发状态时,产生突发指令,从设备生成包含有突发指令的突发通信帧,根据突发通信帧的识别码部分的优先级,按照优先级顺序将突发通信帧发送到主设备;主设备根据从设备的目标寄存器地址,将突发通信帧的数据区内容存储到从设备的目标寄存器地址指定的寄存器位置。其中较优地,当通信帧的命令类型为广播帧时,主设备向所有设置有相同广播地址的从设备同时发送广播帧,从设备将收到的数据信息存储到广播帧的目标寄存器地址指定的寄存器位置中,广播帧无需回应。其中较优地,基于CAN2.0B的CAN总线通信协议包括识别码部分和数据部分。其中较优地,所述识别码部分代表着CAN通信的优先级;识别码部分的数值越小优先级越高。其中较优地,所述识别码部分包括命令等级、源设备地址、目标设备地址、命令类型和帧编码;所述命令等级为识别码部分的Bit28-25,表示通信优先级;所述源设备地址为识别码部分的Bit24-17,表示发送命令的源设备地址;所述目标设备地址为识别码部分的Bit16-9,表示接收命令的目标设备地址;所述命令类型为识别码部分的Bit8-6,表示本帧命令的命令类型;所述帧次序编码为识别码部分的Bit5-0,表示本帧命令的次序编码。其中较优地,所述源设备地址中最低16个地址留作广播帧使用,或作为调试设备地址使用,不作为常用设备地址;所述目标设备地址中最低16个地址留作广播帧使用,或作为调试设备地址使用,不作为常用设备地址。其中较优地,所述数据部分包括目标寄存器地址、源寄存器地址和数据区;其中,所述目标寄存器地址为数据部分的Byte0-1,表示命令要操作的目标设备的目标寄存器地址,主设备对目标寄存器地址指定的寄存器位置进行写操作或者读取该寄存器位置的内容;源寄存器地址为数据部分的Byte2-3,表示发送命令的主设备的源寄存器地址,响应帧将响应命令内容写入所述主设备的源寄存器地址对应的寄存器位置;所述数据区为数据部分的Byte4-7,是对寄存器操作的数据内容。本专利技术所提供的CAN总线通信方法中,通过规定帧次序编码,可以区分不同命令帧的先后次序,同时配合命令类型确定了命令的应答关系,发送与接收端均可以根据识别码部分来判断报文的历史关系,用于判断总线收发成功状态,提高了应用软件的执行效率,并提高了信息交互的可靠性。除此之外,该方法提供基于寄存器访问的数据通信机制,在数据部分规定了目标寄存器地址和源寄存器地址,从而便于实现RDMA(远程直接数据存取)功能。附图说明图1为本专利技术所提供的CAN总线通信方法的流程图。具体实施方式下面结合附图和具体实施例对本专利技术的
技术实现思路
进行详细具体的说明。本专利技术所提供的CAN总线通信方法,基于CAN2.0B通信帧实现,CAN2.0B帧格式见下表1所示。表1CAN2.0B通信帧的帧格式其中,字节1为帧信息,包含8bit。Bit7为FF:表示帧格式(在标准帧中FF=0,在扩展帧中FF=1),在本专利技术所提供的实施例中,扩展帧FF=1;Bit6为RTR:表示帧的类型(RTR=0表示为数据帧,RTR=1表示为远程帧),这里两种帧均使用;Bit3-0为DLC:表示在发送数据帧时实际的数据长度。字节2~5为报文识别码。报文识别码ID共4个字节,其中高29位有效,在实际使用中通过接收滤波器(ACR)和屏蔽滤波器(AMR)(或者两个均是ACR滤波器)实现报文过滤功能,只有与滤波器符合的报文才会被存储到相应接收缓存队列中,否则忽略该报文。字节6~13为数据帧的实际数据,远程帧时无效;X:帧格式中的X为无效位。在本专利技术所提供的CAN总线通信方法,规划了29位报文识别码中各字段的划分和具体的功能定义,规定了数据区各字节的功能定义,规定了基于寄存器访问的数据区具体访问机制。提高了通信过程中软件的执行效率、总线利用率,降低了应用软件开发的难度。在本专利技术所提供的实施例中,采用的基于CAN2.0B的CAN总线通信协议报文格式,如下表2所示。表2基于CAN2.0B的CAN总线通信协议报文格式下面结合表2对规划的报文格式进行详细说明。识别码ID:ID码代表着CAN通信的仲裁优先级,数值越小优先级越高。规划了29位报文识别码(识别码)中各字段的划分和具体的功能定义。其中,Bit28-25为LEVEL:命令等级。命令等级包括16个等级0-15,0代表等级最高的指令,15代表等级最低的指令。Bit24-17为DVSA:源设备地址。源设备地址表示发送命令的源设备地址,最多包含256个设备地址0-255,其中最低16个地址0-15留作广播帧使用,或作为调试设备地址使用,不作为常用设备地址。Bit16-9为DVTA:目标设备地址。目标设备地址表示接收命令的目标设备地址,最多包含256个设备地址0-255,其中最低16个本文档来自技高网
...
一种基于CAN2.0B的CAN总线通信方法

【技术保护点】
1.一种基于CAN2.0B的CAN总线通信方法,其特征在于包括如下步骤:主设备基于CAN总线通信协议向从设备发送带有帧次序编码的通信帧;从设备接收通信帧,根据通信帧的命令类型到主设备的目标寄存器地址指定的寄存器位置进行操作,并向主设备返回带有相同帧次序编码的响应帧;主设备将接收的响应帧存储到从设备的目的寄存器地址指定的寄存器位置。

【技术特征摘要】
1.一种基于CAN2.0B的CAN总线通信方法,其特征在于包括如下步骤:主设备基于CAN总线通信协议向从设备发送带有帧次序编码的通信帧;从设备接收通信帧,根据通信帧的命令类型到主设备的目标寄存器地址指定的寄存器位置进行操作,并向主设备返回带有相同帧次序编码的响应帧;主设备将接收的响应帧存储到从设备的目的寄存器地址指定的寄存器位置。2.如权利要求1所述的CAN总线通信方法,其特征在于当通信帧的命令类型为写指令时,通信过程包括如下步骤:主设备基于CAN总线通信协议向从设备发送带有帧次序编码的通信帧;从设备接收通信帧,获取通信帧的命令类型为写指令,将通信帧中数据区的数据存储到主设备的目标寄存器地址指定的寄存器位置;并向主设备返回带有相同帧次序编码的响应帧;主设备将接收的响应帧存储到从设备的目的寄存器地址指定的寄存器位置。3.如权利要求1所述的CAN总线通信方法,其特征在于当通信帧的命令类型为写指令时,通信过程包括如下步骤:主设备基于CAN总线通信协议向从设备发送带有帧次序编码的写指令通信帧;从设备接收通信帧,获取通信帧的命令类型为读指令,获取主设备的目标寄存器地址,并获取主设备的目标寄存器地址指定的寄存器位置的数据信息,向主设备返回带有相同帧次序编码和数据信息的响应帧;主设备将接收的响应帧存储到从设备的目的寄存器地址指定的寄存器位置。4.如权利要求1所述的CAN总线通信方法,其特征在于:当发生突发状态时产生突发指令,从设备生成包含有突发指令的突发通信帧,根据突发通信帧的识别码部分的优先级,按照优先级顺序将突发通信帧发送到主设备;主设备根据从设备的目标寄存器地址,将突发通信帧的数据区内容存储到从设备的目标寄存器地址指定的寄存器位置。5.如权利要求1所述的CAN总线通信方法,其特征在于:当通信帧的命令类型为广播帧时,主设备向所有设置有...

【专利技术属性】
技术研发人员:付天坤
申请(专利权)人:北京纳米维景科技有限公司
类型:发明
国别省市:北京,11

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

1