CN107612801A - 一种can总线动态组网的方法 - Google Patents

一种can总线动态组网的方法 Download PDF

Info

Publication number
CN107612801A
CN107612801A CN201710922814.4A CN201710922814A CN107612801A CN 107612801 A CN107612801 A CN 107612801A CN 201710922814 A CN201710922814 A CN 201710922814A CN 107612801 A CN107612801 A CN 107612801A
Authority
CN
China
Prior art keywords
terminal device
communication
network
node
controller
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
CN201710922814.4A
Other languages
English (en)
Other versions
CN107612801B (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.)
Shanghai Electric Control Research Institute Of China Ordnance Equipment Group
Original Assignee
Shanghai Electric Control Research Institute Of China Ordnance Equipment Group
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 Shanghai Electric Control Research Institute Of China Ordnance Equipment Group filed Critical Shanghai Electric Control Research Institute Of China Ordnance Equipment Group
Priority to CN201710922814.4A priority Critical patent/CN107612801B/zh
Publication of CN107612801A publication Critical patent/CN107612801A/zh
Application granted granted Critical
Publication of CN107612801B publication Critical patent/CN107612801B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明提供了一种CAN总线动态组网的方法,包括通过总线通道连接的多个终端设备,每个终端设备具有不同的唯一标识UID;这些终端设备竞争有限数量的通信ID;各个终端设备启动后,通过发送广播帧竞争获取通信ID;各个终端设备在没有分配到有效通信ID时,以控制器的状态存在,使用一个固定通信ID,检测网络状态,并实时获取有效通信ID并进入工作状态;控制器接收各个终端设备的节点主动发送的报文,获知网络中的终端设备数量、状态,需要时控制器与某个终端设备节点通信。本发明不需要设置控制器节点,省去了终端设备的通信ID配置,组网方便快捷;网络中若存在多个终端设备获取了同一通信ID,网络能自动从错误中恢复。

Description

一种CAN总线动态组网的方法
技术领域
本发明涉及CAN总线技术领域,具体地涉及到一种CAN总线动态组网的方法。
背景技术
CAN通信需要每个节点均包含CANID,CANID取值范围就决定了可用通信ID的取值范围。现有CAN组网方式基本基于这个模式:网络包含一个控制器和多个节点,由控制器负责与各个节点通信、记录状态。现有CAN网络各节点的通信ID由控制器分配或者由人工事先分配,。
申请号为CN200910079308.9的专利“CAN总线动态组网的方法”公开了CAN总线系统的多个终端设备中,每个终端设备具有不同的特征ID,多个终端设备通过特征ID竞争出总线控制器。可以不必人为的设置总线控制器,减少系统故障。
申请号为CN201210143500.1的专利“CAN总线网络的ID分配系统和方法”通过ID分配线配合CAN总线实现ID的在线分配,逻辑清晰,同时通过IO诊断线判断辅助控制的异常信息,安全可靠,整个系统结构简单、硬件资源少、成本低。
而申请号为201510260676.9的专利“一种基于CAN总线的系统通信方法”在组网前不需确定唯一ID,根据通信功能要求动态完成ID确定配置,免除人工的复杂操作和可能的错误,提高组网可靠性。
然而,目前的CAN网络节点有很多的不足,包括:网络中必须包含控制器,用于协调网络内各节点的工作,比如分配通信、查询节点信息、记录各节点的状态等;如果需要人工配置,尤其是当网络结构发生变化需要调整配置时,工作繁琐,容易出错;网络接入数量须不大于网络预先分配好的通信ID数,网络内没有有效的备份节点。
发明内容
针对现有技术中的缺陷,为了解决以下技术问题:网络对于控制器节点没有硬性要求,可有可无,组网灵活;不再需要事先设置每个终端设备节点的通信ID,使组网更加便捷;增加了终端设备节点的待命机制,当网络内正常工作的节点离线后,待命的终端设备可以上线工作,这一机制使网络更加健壮,可靠性提高;本发明的目的是提供一种CAN总线动态组网的方法。
本发明是根据以下技术方案实现的:
一种CAN总线动态组网的方法,包括通过总线通道连接的多个终端设备,其特征在于,每个终端设备具有不同的唯一标识UID;这些终端设备竞争有限数量的通信ID;各个终端设备启动后,通过发送广播帧竞争获取通信ID;各个终端设备在没有分配到有效通信ID时,以控制器的状态存在,使用一个固定通信ID,检测网络状态,并实时获取有效通信ID并进入工作状态;控制器接收各个终端设备的节点主动发送的报文,获知网络中的终端设备数量、状态,需要时控制器与某个终端设备节点通信。
当网络中加入新的终端设备时,该新的终端设备也完成ID申请流程,使网络情况进入正常工作状态或者待机状态;在规定时间内某终端设备没有发任何报文,控制器认为该终端设备故障或离线,将释放该终端设备占用的通信ID。
上述技术方案中,各终端设备节点的工作不依赖控制器,每个终端设备在工作之前都需要获取唯一的通信ID,网络动态添加或删除终端设备,不影响其他终端设备的工作状态,每个控制器都能获悉网络中所有终端设备节点的信息。
上述技术方案中,所有终端设备获取通信ID分为以下过程:首先广播申请指定通信ID;经过短暂延迟若收到拒绝报文,则换下一条可用通信ID申请,若没有拒绝报文,则声明已经获取指定通信ID;若多个终端设备同时申请同一通信ID,根据算法和终端设备的UID,决定只有一个终端设备获取该通信ID,其他终端设备将收到拒绝报文;而正常工作状态下的终端设备仍然接收广播报文,若发现有其他终端设备使用了和自身相同的通信ID,则再次根据算法和终端的UID,决定一个终端设备获取该通信ID,未获取的终端设备自动返回ID申请阶段重新申请通信ID。
与现有技术相比,本发明具有如下的有益效果:
本发明不需要设置控制器节点,省去了终端设备的通信ID配置,组网方便快捷;网络中接入终端设备数可以大于CAN网络可用通信ID数,多于的终端设备可以作为备份终端设备节点存在,提高网络的健壮性;网络中若存在多个终端设备获取了同一通信ID,网络能自动从错误中恢复,这是人工设置可能发生却无法解决的问题。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的终端设备节点工作状态流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
终端设备或终端设备节点均指CAN网络中需要获取通信ID,并向网络中上报数据的网络节点。
接收器指接入CAN网络,接收发给指定通信ID的数据包并作相应处理的网络节点。
ID或通信ID均指CAN终端设备用于在网络内通信时,使用的唯一标识,一个CAN网络中该唯一标识数量有限。
图1为本发明的终端设备节点工作状态流程图,如图1所示,本发明的一种CAN总线动态组网的方法,包括通过总线通道连接的多个终端设备,每个终端设备具有不同的唯一标识UID;这些终端设备竞争有限数量的通信ID;各个终端设备启动后,通过发送广播帧竞争获取通信ID;各个终端设备在没有分配到有效通信ID时,以控制器的状态存在,使用一个固定通信ID,检测网络状态,并实时获取有效通信ID并进入工作状态;控制器接收各个终端设备的节点主动发送的报文,获知网络中的终端设备数量、状态,需要时控制器与某个终端设备节点通信。
当网络中加入新的终端设备时,该新的终端设备也完成ID申请流程,使网络情况进入正常工作状态或者待机状态;在规定时间内某终端设备没有发任何报文,控制器认为该终端设备故障或离线,将释放该终端设备占用的通信ID。
各终端设备节点的工作不依赖控制器,每个终端设备在工作之前都需要获取唯一的通信ID,网络动态添加或删除终端设备,不影响其他终端设备的工作状态,每个控制器都能获悉网络中所有终端设备节点的信息。
终端设备节点在网络中一共存在三种状态:申请ID状态S0、正常工作状态S1、待机状态S2。网络内终端设备节点上电工作流程参考流程图,具体描述如下:上电时,终端设备使用随机ID向网络内广播“ID申请报文”,进入S0状态。发送“ID申请报文”后,终端设备处于接收状态,如果在规定时间t内没有接收到任何其他节点的“拒绝申请报文”,则认为ID申请成功,此时将发送“ID确认报文”,用于申明该通信ID已被使用,终端设备进入S1状态。倘若在时间t内收到了“拒绝申请报文”,则该终端设备将重新查找网络内未被使用的通信ID;如果存在未使用的通信ID,则重新发送“ID申请报文”,申请该ID,并重新等待时间t;如果不存在未使用的通信ID,则设置自身ID为控制器指定ID,进入待机状态S2,并保持检测通信ID使用情况,一旦有空闲的通信ID存在,将重新进入S0状态去申请通信ID。
其中涉及到一些具体的细节,举例描述如下:
一种由x个传感器组成的CAN网络中,最大可以有N个终端设备节点,其通信ID一共有N个,从0到N-1。指定M(M<N)为接收器ID,例如可以使M=N-1,那么剩余的N-1个ID[0,N-2]可以用来作为终端设备节点的通信ID。每个终端设备的唯一标识UID指定为Ui,i属于[0,x].
终端设备节点i的通信ID由计算公式f1(Ui)得出,这里对f1(Ui)不是一个具体的算法,它得功能是以终端设备UID为输入,计算得到初始通信ID。为了提高ID申请的效率,可以设计f1(Ui)针对同一组UID,计算得到每个通信ID的概率是相同的。对于两个不用的节点i1和i2,若同时申请同一个通信ID,则运用算法f2(i1,i2)确定优先级。f2(i1,i2)能根据i1和i2的UID得出哪个节点有更高的优先级,并获取该通信ID的使用权。假设优先级高的终端设备节点为ih,优先级低的终端设备节点为il。那么ih收到il的广播报文时,将发出拒绝报文,拒绝ih继续使用该通信ID;il在收到ih的申请广播或者发送给自己的拒绝报文时,得知该ID被优先级更高的节点申请,将尝试申请新的通信ID。il同时也接收其他节点的广播信息,了解其他终端设备节点的状态,可以确认正在被申请或使用的通信ID,重新申请时可以规避这些通信ID。当超过一定时间t后,若申请节点仍然没有收到针对自己的拒绝报文,则该节点发送通信ID确认报文,使用该通信ID进入正常工作状态,并定时发送心跳广播。直到所有的节点获取通信ID并进入工作状态,或者通信ID被分配完毕,通信ID分配结束。
此时存在两种情况:
当x<=N-2时,因为节点数不大于可用通信ID数,每个终端设备均含有有效的通信ID,所以终端设备均能正常工作。
当x>N-2时,因为节点数大于可用通信ID数,通信ID分配完毕,但仍然至少有一个终端设备无法获取有效通信ID。当节点发现所有ID都被使用时,将设置自身ID为接收器ID,即M,不进入工作状态,仅仅作为接收器,检测网络内有效节点状态,当发现有节点离线时,才申请离线的通信ID,即重新进入ID申请状态。
同时,为了防止有不同终端设备获取了同一个通信ID,正常工作状态时,对其他终端设备节点的心跳广播仍然会检查其通信ID是否和自身一致,如果一致,将通过f2来判断优先级,优先级低的节点将自动进入ID申请状态S0,重新申请ID。
另外,假设有终端设备in,in动态加入网络,它将发送ID申请,若其申请的ID已经有节点占用,占用节点将直接给出拒绝报文,而不通过f2的判定。这样的设置能减少新加入终端设备对原网络的影响。in只能找到网络中仍然空闲的ID,否则,它将只能进入接收器状态,等待通信ID的释放。
当有终端设备id离线时,使用该ID的心跳广播和数据传输都将停止,经过有限的等待时间,网络中所有接收器将能判断出通信ID的释放。如果此时存在待命的节点,它们将通过ID申请机制,获取通信ID并进入网络工作。
本发明的终端设备通信ID分配机制方法本身。该分配机制灵活,无需人工干预,结果可靠;对于超过通信ID的节点,进入待机状态S2,并监测通信ID的释放情况,一旦有通信ID被释放,将重新进入S0状态参与ID申请;这种机制能使网络中能加入备份设备节点,提高网络的健壮性。此外,本发明还提供了一种错误退出机制,即使竞争中不同设备获取了相同的通信ID,后续的工作过程中也能及时发现,优先级低的设备节点将退出S1状态,重新进入S0状态参与ID申请,并根据申请结果进入S1或S2状态。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (3)

1.一种CAN总线动态组网的方法,包括通过总线通道连接的多个终端设备,其特征在于,每个终端设备具有不同的唯一标识UID;这些终端设备竞争有限数量的通信ID;各个终端设备启动后,通过发送广播帧竞争获取通信ID;各个终端设备在没有分配到有效通信ID时,以控制器的状态存在,使用一个固定通信ID,检测网络状态,并实时获取有效通信ID并进入工作状态;控制器接收各个终端设备的节点主动发送的报文,获知网络中的终端设备数量、状态,需要时控制器与某个终端设备节点通信;
当网络中加入新的终端设备时,该新的终端设备也完成ID申请流程,使网络情况进入正常工作状态或者待机状态;在规定时间内某终端设备没有发任何报文,控制器认为该终端设备故障或离线,将释放该终端设备占用的通信ID。
2.根据权利要求1所述的CAN总线动态组网的方法,其特征在于,各终端设备节点的工作不依赖控制器,每个终端设备在工作之前都需要获取唯一的通信ID,网络动态添加或删除终端设备,不影响其他终端设备的工作状态,每个控制器都能获悉网络中所有终端设备节点的信息。
3.根据权利要求2所述的CAN总线动态组网的方法,其特征在于,所有终端设备获取通信ID分为以下过程:首先广播申请指定通信ID;经过短暂延迟若收到拒绝报文,则换下一条可用通信ID申请,若没有拒绝报文,则声明已经获取指定通信ID;若多个终端设备同时申请同一通信ID,根据算法和终端设备的UID,决定只有一个终端设备获取该通信ID,其他终端设备将收到拒绝报文;而正常工作状态下的终端设备仍然接收广播报文,若发现有其他终端设备使用了和自身相同的通信ID,则再次根据算法和终端的UID,决定一个终端设备获取该通信ID,未获取的终端设备自动返回ID申请阶段重新申请通信ID。
CN201710922814.4A 2017-09-30 2017-09-30 一种can总线动态组网的方法 Active CN107612801B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710922814.4A CN107612801B (zh) 2017-09-30 2017-09-30 一种can总线动态组网的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710922814.4A CN107612801B (zh) 2017-09-30 2017-09-30 一种can总线动态组网的方法

Publications (2)

Publication Number Publication Date
CN107612801A true CN107612801A (zh) 2018-01-19
CN107612801B CN107612801B (zh) 2020-05-22

Family

ID=61067401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710922814.4A Active CN107612801B (zh) 2017-09-30 2017-09-30 一种can总线动态组网的方法

Country Status (1)

Country Link
CN (1) CN107612801B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109586978A (zh) * 2018-12-28 2019-04-05 浙江中控研究院有限公司 总线拓扑网络自组网方法
CN109861893A (zh) * 2018-10-18 2019-06-07 珠海格力电器股份有限公司 一种基于系统总线的通信方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499946A (zh) * 2009-03-05 2009-08-05 北京云涌科技发展有限责任公司 Can总线动态组网的方法
CN102594642A (zh) * 2012-02-15 2012-07-18 山东师范大学 一种实现can通讯实时性的方法
CN104901858A (zh) * 2015-05-21 2015-09-09 艾德克斯电子(南京)有限公司 一种基于can总线的系统通信方法
EP2981028A1 (en) * 2014-07-28 2016-02-03 MyLaps B.V. Transponder module and access module for activating and configuring such transponder module over a CAN bus
CN107071811A (zh) * 2017-04-18 2017-08-18 长春师范大学 一种基于模糊控制的wsn容错非均匀分簇算法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499946A (zh) * 2009-03-05 2009-08-05 北京云涌科技发展有限责任公司 Can总线动态组网的方法
CN102594642A (zh) * 2012-02-15 2012-07-18 山东师范大学 一种实现can通讯实时性的方法
EP2981028A1 (en) * 2014-07-28 2016-02-03 MyLaps B.V. Transponder module and access module for activating and configuring such transponder module over a CAN bus
CN104901858A (zh) * 2015-05-21 2015-09-09 艾德克斯电子(南京)有限公司 一种基于can总线的系统通信方法
CN107071811A (zh) * 2017-04-18 2017-08-18 长春师范大学 一种基于模糊控制的wsn容错非均匀分簇算法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109861893A (zh) * 2018-10-18 2019-06-07 珠海格力电器股份有限公司 一种基于系统总线的通信方法、装置及系统
CN109861893B (zh) * 2018-10-18 2020-08-14 珠海格力电器股份有限公司 一种基于系统总线的通信方法、装置及系统
CN109586978A (zh) * 2018-12-28 2019-04-05 浙江中控研究院有限公司 总线拓扑网络自组网方法
CN109586978B (zh) * 2018-12-28 2022-03-18 浙江中控研究院有限公司 总线拓扑网络自组网方法

Also Published As

Publication number Publication date
CN107612801B (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN103001722B (zh) 一种基于时间触发以太网的数据传输方法及节点设备
CN102394787B (zh) 基于epa交换机的双链路冗余控制方法
EP1471661A1 (en) Packet communication between a collecting unit and a plurality of control devices over the power supply line
CN103973532A (zh) 通信网络和用于在通信网络中通信的方法
CN109218155A (zh) 基于Modbus RTU协议的地址自动分配系统及方法
CN106254199B (zh) 单向环形网络故障点定位方法、集中器、终端设备及系统
CN107612801A (zh) 一种can总线动态组网的方法
CN113726556B (zh) 边缘物联代理节点运维方法、系统、存储介质及计算设备
CN111262767A (zh) 一种光伏系统及其通信方法
CN104135391A (zh) 一种车载can局部网络的管理方法及装置
CN108848199A (zh) 一种对等网络自动寻主系统和方法
CN102904610A (zh) 电力线通信中节点恢复方法和设备
CN103701932A (zh) 一种物联网中数据传输的方法
CN110022253A (zh) 同时供电和通信二总线的应急通信装置、协议和方法
CN102244589A (zh) 处理虚拟交换单元系统中链路故障的方法及对端设备
CN110995889A (zh) 地址分配系统和方法
CN107483084B (zh) 一种宽带载波组网方法、站点及系统
CN100557652C (zh) 采集终端地址码自动生成的装置和方法
CN101686199B (zh) 以太网保护系统中控制报文的处理方法、装置及系统
CN114615337B (zh) 设备调度方法、系统、服务器及存储介质
CN101527643A (zh) 获取堆叠系统信息的方法、系统和主设备
CN210518417U (zh) 地址分配系统
JP2008011041A (ja) システム情報設定方法及び装置
JP3777809B2 (ja) 二重化通信システムの回線異常検出方法
CN107302481B (zh) 一种1553b总线网络及串行总线网络的跨网状态可靠切换方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant