本发明涉及通信技术领域,尤其涉及一种CAN网络报文的传输方法及传输装置。
背景技术:
控制器局域网(Controller Area Network,CAN)总线作为当前汽车内部通信的主干网络,承担着各个控制器之间数据交互的任务,其信息传递的实时性和可靠性关乎汽车的安全。
通常,汽车CAN网络设计主要包括确定总线拓扑结构、定义信号、分配报文ID、定义发送周期等。现有技术方案中,往往忽略了通信节点组成网络之后报文的实际发送由总线竞争与仲裁导致的报文延迟问题。
技术实现要素:
本发明要解决的技术问题是通信节点组成网络之后报文的实际发送由总线竞争与仲裁导致的报文延迟问题,提供一种适用于CAN网络报文的传输方法及传输装置,通过确定CAN网络报文的传输方法,评估具体波特率下CAN网络可以承载不同周期的报文数量,解决通信节点组成网络后报文的实际发送由总线竞争与仲裁导致的报文延迟问题,提高报文发送效率。
本发明的提供技术方案如下:
一种CAN网络报文的传输方法,包括:
确定CAN网络的总线波特率;
根据CAN网络的总线波特率和报文的周期确定CAN网络能够承载的最大报文数量;
在所述CAN网络内传输报文,传输的报文数量不大于所述最大报文数量。
进一步地,根据CAN网络的总线波特率和报文的周期确定CAN网络能够承载的最大报文数量包括:
利用公式确定CAN网络能够承载的最大报文数量;
其中,Ni为具有相同周期报文的个数(i=1……m),Ti为报文的周期(i=1……m),Baudrate为CAN总线波特率。
进一步地,在CAN网络内传输报文包括:
通过一通信节点周期性发送同步报文,并在通信节点发送完所述同步报文之后,将所述通信节点的计数器清零,并在其他通信节点接收到所述同步报文之后将其他通信节点的计数器清零。
此外,本发明还提供一种适用于CAN网络报文的传输装置,包括:
CAN总线波特率自动识别模块,用于确定CAN网络的总线波特率;
CAN网络参数计算模块,用于根据CAN网络的总线波特率和报文的周期确定CAN网络能够承载的最大报文数量;
网络参数逻辑定义模块,用于在所述CAN网络内传输报文,传输的报文数量不大于所述最大报文数量。
进一步地,所述CAN网络参数计算模块具体用于根据CAN网络的总线波特率和报文的周期确定CAN网络能够承载的最大报文数量,包括:
利用公式确定CAN网络能够承载不同周期的最大报文数量;
其中,Ni为具有相同周期报文的个数(i=1……m),Ti为报文的周期(i=1……m),Baudrate为CAN总线波特率。
进一步地,所述网络参数逻辑定义模块具体用于在所述CAN网络内传输报文,传输的报文数量不大于所述最大报文数量,包括:
通过一通信节点周期性发送同步报文,并在通信节点发送完所述同步报文之后,将所述通信节点的计数器清零,并在其他通信节点接收到所述同步报文之后将其他通信节点的计数器清零。
本发明所带来的有益效果如下:
本发明提供的CAN网络报文的传输方法,能够评估具体波特率下CAN网络可承载不同周期的报文数量,提高报文发送效率,解决通信节点组成网络之后报文的实际发送由总线竞争与仲裁导致的报文延迟问题,对CAN总线通信网络设计具有极大的指导意义。
附图说明
图1表示本发明CAN网络报文的传输方法的流程示意图;
图2表示本发明CAN网络报文的传输装置的结构示意图;
图3表示本发明标准帧格式示意图。
具体实施方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明的实施例针对现有技术中的通信节点组成网络之后报文的实际发送由总线竞争与仲裁导致的报文延迟的问题,提出了一种CAN网络报文的传输方法。本方案能够评估具体波特率下CAN网络可承载不同周期的报文数量,提高报文发送效率,对CAN总线通信网络设计具有极大的指导意义。
如图1所示,本发明的CAN网络报文的传输方法包括以下步骤:
S01、确定CAN网络的总线波特率;
S02、根据CAN网络的总线波特率和报文的周期确定CAN网络能够承载不同周期的最大报文数量;
S03、在所述CAN网络内传输报文,传输的报文数量不大于所述最大报文数量。
本发明实施例中,依据CAN网络的总线波特率与报文的周期,确定CAN网络能够承载的最大报文数量,从而在所述CAN网络内传输报文,并保证传输的报文数量不大于所述最大报文数量。本方案中,CAN网络报文的传输方法,能够评估具体波特率下CAN网络可承载不同周期的报文数量,提高报文发送效率。
进一步地,根据CAN网络的总线波特率和报文的周期确定CAN网络能够承载的最大报文数量包括:
利用公式确定CAN网络能够承载不同周期的最大报文数量;
其中,Ni为具有相同周期报文的个数(i=1……m),Ti为报文的周期(i=1……m),Baudrate为CAN总线波特率。
进一步地,在CAN网络内传输报文包括:
通过一通信节点周期性发送同步报文,并在通信节点发送完所述同步报文之后,将所述通信节点的计数器清零,并在其他通信节点接收到所述同步报文之后将其他通信节点的计数器清零。
如图2所示,本发明实施例还提供了一种适用于CAN网络报文的传输装置,包括:CAN总线波特率自动识别模块11、CAN网络参数计算模块12及网络参数逻辑定义模块13。CAN总线波特率自动识别模块11用于确定CAN网络的总线波特率;CAN网络参数计算模块12用于根据CAN网络的总线波特率和报文的周期确定CAN网络能够承载的最大报文数量;网络参数逻辑定义模块13用于在所述CAN网络内传输报文,传输的报文数量不大于所述最大报文数量。
进一步地,CAN网络参数计算模块12具体用于根据CAN网络的总线波特率和报文的周期确定CAN网络能够承载的最大报文数量,包括:
利用公式确定CAN网络能够承载不同周期的最大报文数量;
其中,Ni为具有相同周期报文的个数(i=1……m),Ti为报文的周期(i=1……m),Baudrate为CAN总线波特率。
进一步地,网络参数逻辑定义模块13具体用于在所述CAN网络内传输报文,传输的报文数量不大于所述最大报文数量,包括:
通过一通信节点周期性发送同步报文,并在通信节点发送完所述同步报文之后,将所述通信节点的计数器清零,并在其他通信节点接收到所述同步报文之后将其他通信节点的计数器清零。
本发明实施例中,CAN网络参数计算模块12根据CAN总线波特率自动识别模块11提供的CAN网络的总线波特率,与报文的周期,确定CAN网络能够承载不同周期的最大报文数量;网络参数逻辑定义模块13在所述CAN网络内传输报文,传输的报文数量不大于所述CAN网络参数计算模块12确定的最大报文数量。采用本方案,可以评估具体波特率下CAN网络可承载不同周期的报文数量,提高报文发送效率,对CAN总线通信网络设计具有极大的指导意义。
如图3所示,本发明提供的CAN总线标准帧的帧格式。假设数据场传输8个字节,则一条CAN报文包含的位数N=131。由于CAN总线存在位填充机制,发送时,控制器会根据实际发送的值添加相应的填充位。但是,CAN总线中最多每间隔5个位填充一个位。图3所示,需要填充的区域共包含118个位,最多有24个填充位,N≤155。为了确保报文理论最大长度Tseg的长度能够放置下一条报文,N取最大值155。因此,Tseg=TBit*155,式中TBit为CAN总线位时间,TBit=1/Baudrate。
通过一通信节点周期性发送同步报文,并在通信节点发送完所述同步报文之后,将所述通信节点的计数器清零,并在其他通信节点接收到所述同步报文之后将其他通信节点的计数器清零,使网络上所有通信节点每隔一定周期实现一次同步。
最大的报文周期包含有Tmax/Tseg个时间段,周期为Ti的报文在总线上传输的效果可以等效为Tmax/Ti个周期为Tmax的报文,其中,Ti为报文的周期(i=1…m),Tmax为Ti中最大值。不同周期的报文可以转换为周期为Tmax的报文,总数量为一个Tmax时间段内必须能够包含所有报文,即因此,CAN网络能够承载的最大报文数量为
在本发明各方法实施例中,各步骤的序号并不能用于限定各步骤的先后顺序,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,对各步骤的先后变化也在本发明的保护范围之内。
以上是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。