一种CAN总线节点设备的高精度同步通讯方法技术

技术编号:27661106 阅读:23 留言:0更新日期:2021-03-12 14:30
本发明专利技术提出了一种CAN总线节点设备的高精度同步通讯方法,以解决多节点设备发送数据的精准性。总线上挂接的多个节点设备通信采用时分复用,所有总线节点共用同步信号源,通过可编程逻辑和软件配合的方式,避免多节点设备冲突竞争时间,本发明专利技术方法具备较好的灵活性和发送时刻的精准性、接收数据解析的方便性。

【技术实现步骤摘要】
一种CAN总线节点设备的高精度同步通讯方法
本专利技术属于总线数据通讯同步处理领域。尤其是CAN总线节点设备的高精度传输方法。
技术介绍
CAN总线是一种分布式控制的通信网络,特点是数据通信无主从之分。CAN总线上可挂载多个节点,任意一个节点可以向任何其他(一个或多个)节点发起数据通信。多个节点同时发起通信时,优先级低的避让优先级高的,不会对通信线路造成拥塞,但可能会出现低优先级的信息始终没有发送的机会。为解决此问题,可采用CAN总线多个节点共用一个同步时钟信号来发送数据的方法,各节点遵照网内通讯协议,在指定时刻发送指定信息。但节点设备如何做到指定时刻精准发送指定信息,对节点设备来说是个挑战。目前常采用软件响应同步信号中断,软件计时并发送数据的方法。该方法中的软件计时精确性容易受到系统调度的影响,表现为定时发送数据时刻不精确。对于同一节点、同时段内,需要在先后多个时刻发送数据,更难以精准定时发送数据,由于节点的定时不精准,造成节点的延时积累导致消息冲突,影响系统正常工作。
技术实现思路
鉴于现有技术的以上缺点,尤其是采用软件定时的不足,本专利技术采用可编程逻辑和软件配合,提出了一种解决节点高精度同步的方法,实现数据发送时刻的精准定位。其具体方法如下:一种CAN总线节点设备的高精度同步通讯方法,在一条CAN总线上各个节点设备之间基于CAN总线进行数据通讯。采用如下的手段:1)各个节点设备采用时分复用方式进行通讯,共享一条周期同步信号源,所有节点在同步周期信号到来时,开启周期定时并进入定时逻辑;2)所有发送数据帧采用可由软件实时更新的特殊格式,包括:发送时刻、起始标志、ID和数据。进一步地,所有节点设备依据同步周期信号起始点开始计时,到该节点待发送数据时刻到来时,发送CAN帧,以此类推,直到发送完该节点同步周期内所有数据帧。进一步地,所有CAN帧发送需要经过三个阶段,即帧写入阶段、帧准备阶段和帧送出阶段。所述CAN帧发送经过三个阶段,即帧写入阶段、帧准备阶段和帧送出阶段:帧写入阶段:软件按固定帧格式写入可编程逻辑提供的数据FIFO中。帧准备阶段:可编程逻辑器件捕获到同步信号的上升沿,开启该同步时段内的计时,计时精度为10ns;同时从FIFO中读取数据帧,读取帧时判断帧标志,是否同一同步时间段内数据帧,从开始直到该同步时段内的结尾帧,读取数据放入缓存内,准备发送数据。帧送出阶段:可编程逻辑计时到第一个帧发送时刻时,将数据帧的CAN帧ID和CAN帧数据写入CAN发送缓存,写入完整CAN帧后,启动CAN帧发送命令,CAN帧数据即刻出现在CAN总线上。以此类推,发送该同步时刻内其他CAN帧。采用本专利技术的方法,采用时分复用,所有总线节点共用同步信号源,通过可编程逻辑和软件配合的方式,避免多节点设备冲突竞争时间,具备较好的灵活性和发送时刻的精准性、接收数据解析的方便性,发送时刻精度可到10ns。本方法适用于多节点设备通信,对数据吞吐量高且发送时间需要严格控制的系统。附图说明图1为多节点同步CAN总线通讯示意图图2为CAN帧发送多级操作示意图图3为CAN帧组成结构示意图图4为同步信号示意图图5为CAN帧接收工作流程图图6为CAN帧发送工作流程图具体实施方式下面结合附图对本专利技术以同步周期为20ms为例,作进一步的说明。本专利技术提出了一种解决节点指定时刻精准发送数据的方法。如图1所示的CAN总线多节点通讯架构示意图中,一条CAN总线上有多个节点设备,各节点通过硬件连接至同步信号源。所有发送CAN帧(数据帧)采用可由软件实时更新的特殊格式,包括:发送时刻、起始标志、ID和数据。如图2,CAN帧发送数据分三个阶段进行。第一阶段为帧写入阶段,该阶段由软件将帧信息写入可编程逻辑器件提供的数据FIFO。第二阶段为数据准备阶段,该阶段由可编程逻辑实现数据FIFO中的数据读取,逻辑按照固定的帧信息结构(如图3)提取帧信息数据,获取发送标志、发送时刻、CAN数据等信息。在数据FIFO未空的情况下,同步信号零时刻和帧数据发送完成后,进入数据准备阶段以提取帧信息。第三阶段为帧送出阶段,该阶段由逻辑控制CAN数据发送。待同步信号零时刻到来后,逻辑开始定时,定时到帧发送时刻后逻辑送出CAN帧数据。待CAN数据发送完成后再获取下一帧信息,逻辑定时到下一帧的发送时刻后再次发送CAN数据,一直循环上述流程直至数据FIFO空为止。如图3,数据帧的帧结构由8个字节组成。其中帧标志、帧发送时刻均为1个字节,CAN帧ID占用4个字节,CAN帧数据占用8个字节。(1)帧标志包含帧开始发送标志、帧结束发送标志、同步周期内要发送的帧个数。每个同步周期内,逻辑程序判断开始和结束标志位是否置位,并获取同步周期要发送的帧个数,从而在同步周期内发送指定时刻、指定个数的CAN帧数据。(2)帧发送时刻为该帧数据在同步信号同步周期内的发送时间,帧发送时刻有效数值范围为0至同步周期(毫秒值)。(3)CAN帧ID包含RTR控制位、CAN帧数据字节个数、CAN发送ID信息。(4)CAN帧数据包含CAN总线上发送的帧数据,最长8个字节。当发送数据字节个数不足8时,逻辑取有效字节的CAN帧数据发送至CAN总线。写入数据FIFO的帧信息数据包含多种信息,除必要的CAN总线帧ID和帧数据以外,还为逻辑提供了准时发送CAN帧数据的发送时刻。同时,数据FIFO中的帧信息数据也给逻辑提供了开始和结束标志信息,使得同步周期内发送多帧CAN总线数据成为可能。该数据帧结构简单,软件写入数据、逻辑提取数据信息方便。帧结构中包含信息充足,软件能从多方面控制逻辑发送CAN帧数据。如图4,同步信号源输出的同步信号为周期信号,在逻辑收到同步信号的上升沿(即同步信号零时刻)后,各节点定时器开始计时;下一周期的同步信号零时刻到来后,定时器重新开始计时。各节点逻辑具备精确定时计数的功能。各定时器的计时频率为100MHz,能够为CAN总线上数据的发送提供高精度的计时时间。如图5,节点在同步时钟的任意时刻可接收总线上的数据,当节点接收到CAN总线数据后,逻辑将CAN数据存储至接收缓存。当节点接收到CAN帧数据后,节点将定时器的定时值暂存为时标数据,时标数据将存储至接收缓存供各节点软件访问。如图6,各节点软件将发送时刻和CAN帧传输至各节点。节点在接收到同步时钟的零时刻标志后将清零定时器并启动定时器定时功能,逻辑程序将同时获取数据FIFO中的帧信息数据。若帧信息中的帧开始发送标志置位,则逻辑程序在该帧的发送时刻送出CAN数据。若当前帧信息中的帧结束发送标志未置位,当前帧的CAN数据发送完后,逻辑程序将获取数据FIFO中的下一帧帧信息。再执行下一帧的定时及发送数据的逻辑程序,直至获取的帧结束标志置位。若当前帧信息中的帧结束标志置位,当前帧的CAN数据发送完后,逻辑程序不再读取数据FI本文档来自技高网...

【技术保护点】
1.一种CAN总线节点设备的高精度同步通讯方法,在一条CAN总线上各个节点设备之间基于CAN总线进行数据通讯,其特征在于,采用如下的手段:1)各个节点设备采用时分复用方式进行通讯,共享一条周期同步信号源,所有节点在同步周期信号到来时,开启周期定时并进入定时逻辑;2)所有发送数据帧采用可由软件实时更新的特殊格式,包括:发送时刻、起始标志、ID和数据。/n

【技术特征摘要】
1.一种CAN总线节点设备的高精度同步通讯方法,在一条CAN总线上各个节点设备之间基于CAN总线进行数据通讯,其特征在于,采用如下的手段:1)各个节点设备采用时分复用方式进行通讯,共享一条周期同步信号源,所有节点在同步周期信号到来时,开启周期定时并进入定时逻辑;2)所有发送数据帧采用可由软件实时更新的特殊格式,包括:发送时刻、起始标志、ID和数据。


2.根据权利要求1所述的CAN总线节点设备的高精度同步通讯方法,其特征在于,所有节点设备依据同步周期信号起始点开始计时,到该节点待发送数据时刻到来时,发送CAN帧,以此类推,直到发送完该节点同步周期内所有数据帧。


3.根据权利要求2所述的CAN总...

【专利技术属性】
技术研发人员:段芙蓉李洋龚辉斌李刚
申请(专利权)人:成都曦曜仪器有限公司
类型:发明
国别省市:四川;51

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

1