CN104486187A - 一种动态同步的can通讯设备和方法 - Google Patents

一种动态同步的can通讯设备和方法 Download PDF

Info

Publication number
CN104486187A
CN104486187A CN201510025388.5A CN201510025388A CN104486187A CN 104486187 A CN104486187 A CN 104486187A CN 201510025388 A CN201510025388 A CN 201510025388A CN 104486187 A CN104486187 A CN 104486187A
Authority
CN
China
Prior art keywords
frame
communication
queue
cpu
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510025388.5A
Other languages
English (en)
Other versions
CN104486187B (zh
Inventor
王建群
曹宁
薛晓卿
滕飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201510025388.5A priority Critical patent/CN104486187B/zh
Publication of CN104486187A publication Critical patent/CN104486187A/zh
Application granted granted Critical
Publication of CN104486187B publication Critical patent/CN104486187B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明涉及一种基于帧队列的动态自同步CAN通讯设备和方法,***包括若干个CPU,每个CPU都有独立的1个或多个帧ID,帧ID小的CAN帧具有比较高的优先级,帧ID大的CAN帧优先级较低。当多个CPU通过CAN通讯时,所有的CPU始终接收CAN总线上的数据,并在各自的内存中建立优先级从高到低的帧ID队列,并把自己的帧ID也排列在该队列中,当本帧ID前面的数据都接收到后,立即发送本帧ID信息,如果遇到没有发送成功,就立即将本帧ID后移一个帧间隔单元,在下一个单元时间启动发送。通过不断地监控CAN总线上的信息,动态调整帧队列,重新确定本帧数据发送的时间位置,实现自动同步的功能。

Description

一种动态同步的CAN通讯设备和方法
技术领域
本发明涉及CAN(控制器局域网)通讯方法,尤其涉及一种动态同步的CAN通讯设备和方法,通过动态同步的方式,实现准同步的通讯结果。
背景技术
目前,CAN通讯在车辆电控、工业现场等场合应用日益普遍,CAN通讯解决了多主通讯握手和仲裁等问题。
CAN通讯一般在车辆电控中广泛应用,CAN通讯的实时性对车辆的安全性非常重要,采用本方案对提高车辆的安全性有很好的作用,因此应用前景广泛。
当CAN通讯进行大量数据传输,通讯的频次较高时,由于各个CPU发送数据是随机的,有的是多帧连发,这样必然导致帧碰撞加剧,从而引起很多帧会丧失发送,通讯失败,造成通讯的实时性变差,如何解决多主通讯方式下,提高通讯的实时性的同时,减少帧冲突非常重要。
为了解决CAN总线的总线冲突问题,已经有大量的研究成果用于解决这个问题,例如采用网络总线负载均散就是一种比较有效的方法,但是,对于***总线节点变化和容错性方面问题,这些方法很难克服。
随着微电子技术的突飞猛进,CPU的速度越来越快,内存越来越大,特别是中断处理能力越来越强大,通过软件实现避免总线冲突完全可以实现。
发明内容
本发明的目的是通过建立准同步原则,让各个独立的CPU按照一个统一的顺序发送,从而减少冲突发生的可能性,避免各个CPU无序发送的局面,避免了帧的碰撞,大大提高通讯的有效数据流量和网络数据的实时性,从而解决CAN通讯效率低下和实时性不好的问题。
本发明涉及一种动态同步的CAN通讯设备及其方法,各个CPU之间没有主从关系,通讯顺序按照帧ID进行动态分配,最先发送的是最高优先级的帧,然后依次发送较低优先级的帧。每个参与通讯的CPU始终接收全部的CAN帧,并把接收到的帧按照帧ID的优先级进行排队,然后将本CPU的帧ID在这个队列的中自动定位,当轮到本帧ID发送时刻后,立即启动发送。
本发明的动态同步CAN通讯方法,参与通讯的CPU接收全部的CAN信息,并且根据接收到的CAN帧,在内存中动态建立一个帧发送队列,该队列按照接收帧ID的优先级从高到低排列,并且把本CPU要求发送的帧ID也定位在这个队列中,当到本帧ID时刻,就启动发送功能。
上电启动后,各个CPU都有一个缺省的帧队列,该队列是进行***设计时已经规划好的队列,作为起始发送数据顺序队列。
各个帧发送的时间间隔都有固定的时间长度。
当有一个新的帧ID参与通讯时,会自动在各个CPU的帧队列中自动分配一个位置,下一个通讯周期会自动把总线让给该帧,同时避免数据冲突。
当一个高级的帧ID或低级的帧ID由于某种原因不发送数据时,各个CPU的帧发送队列会自动从队列中剔除该帧,从而最大限度提高通讯效率。
同一个CPU有不同的CAN帧ID,可以实现不同的通讯速率,满足高效的通讯要求。
本发明可有效减少CAN通讯的帧碰撞次数,提高CAN通讯的数据流量,提高CAN通讯的实时性,且不必变更现有CAN***的硬件就可以实现,因此可以大量应用。
附图说明
图1为动态同步CAN通讯的工作原理图。图中上部是CAN总线的硬件说明和数据的流向,CAN总线的数据首先与各个节点的总线驱动器相连,驱动器把总线差分信号变为单端信号与CAN控制器相连,CPU通过查询或中断标志判断数据接收是否完成和发送是否完成,并读取或写入CAN数据帧。
图1中的下面的框内是CAN信息发送和接收软件,一般情况下,这部分软件在CAN接受中断中完成,也可以在查询软件中完成。本发明的核心内容就是在该部分的软件中实现的。
图2是动态帧ID实现的一种方法,在帧ID队列中增加帧ID的方法是,主要在接收程序中接收到一个新的帧ID,就自动添加到队列中;删除帧ID的方法是检测一定时间内目标帧ID没有到达就自动从队列中删除,删除帧ID的软件一般可以在最短服务程序中完成,也可以在查询查询的完成。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为了克服现有的CAN通讯中帧冲突问题,本发明提出基于帧ID队列方法实现准同步功能。
图1下面框中的程序是实现本发明的帧ID工作原理。图2说明的是帧ID增加和删除的方法。
CPU在完成对***CAN的初始化后,就用查询方式或接收中断方式进入图1所示的方框软件中。只要CAN总线上有CAN数据传输,CPU就会接收该帧的帧ID并存储在一个数组中(称该数组为帧ID队列)。按照帧ID的数据大小对帧队列进行排序,数据小的排列在前,数据大的排列在后,并且把本身需要发送的CAN帧的帧ID也按照大小顺序***在这个队列中,现成一个完整的帧队列;然后判断在这个队列中,本帧ID以前的帧是否已经全部接收完成,如果接收完成,就发送本帧CAN数据;如果本帧ID以前的帧没有全部接收,就等待一定时间,超过该时间仍然没有收到有效的帧ID数据,就把该帧的帧ID自动从队列中剔除,如果接收到其它的帧ID,就把该帧ID添加到帧ID队列中,其原理如图2所示。
图2中相邻两帧的时间间隔Tth的含义是:正常通讯时,完成一个最大帧数据传输所需要的时间间隔。Tth的最小值=帧数据位数*位时间,例如,CAN通讯的波特率是250kbps,最大的数据帧是8个字节,采用CAN2.0B模式,Tth=(32+64)*4=384us,其中32是帧ID需要的位数,64是8个字节需要的位数,4是为位时间。实际应用时,考虑到CPU的相应时间、发送和接收延迟等影响,该值可以适当增大,如设定为500us。Tth用于判断是否删除某个帧ID的时间长度,当某个帧ID在其应该到大的时间段没有发出数据帧,并且时间超过Tth时间长度,就认为该节点不存在。
对于一个已经删除的帧ID,可以随时再自动***到帧队列中,这个帧ID队列重新排列。
采用帧ID队列方式实现CAN多主通讯,每个CAN节点都明确知道网络中有哪些节点在通讯,并且各自的优先级有明确规定,各自CPU的帧ID都可以找到自己发送数据的时刻,只要全部的节点都严格按照这个方式通讯,就不会发生帧碰撞,大大减少帧冲突,提高CAN通讯的数据量。本发明在车辆电控***中,对提高CAN通讯效率的实时性非常有效。
在实际的CAN网络中,一般都是约定了各个节点的帧ID、帧数据、帧频率等参数,采用本发明后,不影响原来的通讯方式,但可以防止帧碰撞的发生。
本发明可以动态增加节点,也没有主从CPU要求。
本发明一个缺点是就是要求CPU接收全部的CAN信息,增加了CPU的负担。但是,随着微电子技术的发展,大多数情况下,对于最高速度只有1MHz的CAN通讯,CPU的速度可以满足要求。特别是在车辆实时网络领域,目前的CPU处理能力完全可以胜任这个要求。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (7)

1.一种动态同步的CAN通讯设备,其特征在于,各个CPU之间没有主从关系,通讯顺序按照帧ID优先级进行动态排序,最先发送的是最高优先级的帧,然后依次发送较低优先级的帧。每个参与通讯的CPU始终接收全部的CAN帧,并把接收到的帧按照帧ID的优先级进行排队,然后将本CPU的帧ID在这个队列的中自动定位,当轮到本帧ID发送时刻后,立即启动发送。
2.一种动态同步的CAN通讯方法,其特征在于,参与通讯的CPU接收全部的CAN信息,并且根据接收到的CAN帧,在内存中动态建立一个帧发送队列,该队列按照接收帧ID的优先级从高到低排列,并且把本CPU要求发送的帧ID也定位在这个队列中,当到本帧ID时刻,就启动发送功能。
3.如权利要求2所述的CAN通讯方法,其特征在于,上电启动后,各个CPU都有一个缺省的帧队列,该队列是进行***设计时已经规划好的队列,作为起始发送数据顺序队列。
4.如权利要求2所述的CAN通讯方法,其特征在于,每个帧发送都是按照帧ID的优先级顺序发送。
5.如权利要求2所述的CAN通讯方法,其特征在于,当有一个新的帧ID参与通讯时,会自动在各个CPU的帧队列中自动***,下次通讯周期会自动把总线让给该帧,从而避免避免数据冲突。
6.如权利要求2所述的CAN通讯方法,其特征在于,当一个高级的帧ID或低级的帧ID由于某种原因不发送数据时,各个CPU的帧发送队列会自动从队列中剔除该帧,从而最大限度提高通讯效率。
7.如权利要求2所述的CAN通讯方法,其特征在于,同一个CPU有不同的CAN帧ID,可以实现不同的通讯速率,满足高效的通讯要求。
CN201510025388.5A 2015-01-19 2015-01-19 一种动态同步的can通讯设备和方法 Expired - Fee Related CN104486187B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510025388.5A CN104486187B (zh) 2015-01-19 2015-01-19 一种动态同步的can通讯设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510025388.5A CN104486187B (zh) 2015-01-19 2015-01-19 一种动态同步的can通讯设备和方法

Publications (2)

Publication Number Publication Date
CN104486187A true CN104486187A (zh) 2015-04-01
CN104486187B CN104486187B (zh) 2018-10-02

Family

ID=52760693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510025388.5A Expired - Fee Related CN104486187B (zh) 2015-01-19 2015-01-19 一种动态同步的can通讯设备和方法

Country Status (1)

Country Link
CN (1) CN104486187B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105539196A (zh) * 2015-12-08 2016-05-04 北京理工大学 电动汽车的反馈式变优先级组合传输网络化控制装置
CN106157588A (zh) * 2016-08-15 2016-11-23 扬州恒隆软件有限公司 快速高精度光电直读式智能水表***
CN109471425A (zh) * 2018-12-14 2019-03-15 上海星融汽车科技有限公司 一种识别商用车obd口can通讯针脚波特率的方法
CN111106986A (zh) * 2018-10-29 2020-05-05 什维新能源有限公司 用于控制器局域网络的鲁棒性增强的路由器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105539196A (zh) * 2015-12-08 2016-05-04 北京理工大学 电动汽车的反馈式变优先级组合传输网络化控制装置
CN106157588A (zh) * 2016-08-15 2016-11-23 扬州恒隆软件有限公司 快速高精度光电直读式智能水表***
CN111106986A (zh) * 2018-10-29 2020-05-05 什维新能源有限公司 用于控制器局域网络的鲁棒性增强的路由器
CN109471425A (zh) * 2018-12-14 2019-03-15 上海星融汽车科技有限公司 一种识别商用车obd口can通讯针脚波特率的方法

Also Published As

Publication number Publication date
CN104486187B (zh) 2018-10-02

Similar Documents

Publication Publication Date Title
CN105512081B (zh) 用于以可转换的数据速率进行串行数据传输的方法和装置
CN104317765B (zh) 一种基于串口通讯的一对多通讯***和实现方法
CN105354159A (zh) 一种基于rs485分布式总线***的控制方法
CN104486187A (zh) 一种动态同步的can通讯设备和方法
CN106411740A (zh) 基于以太网控制器的网络端口扩展方法
CN102098113B (zh) 基于aloha和tdma的水声传感器网络mac层协议的实现方法
CN102857397A (zh) 一种多主异步双工差分总线及通讯方法
CN106155014A (zh) 一种工业互联网现场层宽带总线实时性实现方法
CN102811152B (zh) 一种多主总线网络通讯实时交易数据交换实现方法
US20180109398A1 (en) Master communication device for a token network
CN104426758A (zh) 传输控制***、装置及方法
CN104247354A (zh) 接口装置以及总线***
CN104035901A (zh) 一种ttcan总线对时及发送数据的方法
CN202617155U (zh) 多主机rs485通信装置
CN109889312A (zh) 多链路数据传输方法、装置及计算机可读存储介质
CN105991481A (zh) 一种报文转发方法及装置
CN113904762B (zh) 一种带环形缓冲区的全双工485总线通信***及方法
CN103441914B (zh) As5643总线中包含等时数据包的传输方法
CN107483308A (zh) 一种基于时间片令牌机制的以太网通讯方法
CN103618681A (zh) 一种弹性的网络带宽控制方法及其***
CN104243189B (zh) 一种基于同一信道的多设备通信方法及其通信***
CN107357756A (zh) 多设备在主模式下进行iic通信的***
CN105141483A (zh) 基于can总线的多节点网络最小通信间隔测定方法
CN102681969A (zh) 基于can总线的长帧数据传输卡和长帧数据传输方法
CN103023738B (zh) 一种车辆总线网络通讯控制的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181002

Termination date: 20200119

CF01 Termination of patent right due to non-payment of annual fee