一种为通信总线上相同节点自动分配地址的方法技术

技术编号:17544363 阅读:39 留言:0更新日期:2018-03-25 00:37
本发明专利技术涉及一种为通信总线上相同节点自动分配地址的方法,包括:步骤S1、设置全局变量地址分配标志,初始化地址分配标志为地址未分配,判断本节点地址分配标志是否未分配,否,执行步骤S2,是,执行步骤S3;步骤S2、判断本节点地址是否与已存储地址冲突,是,执行步骤S3,否执行步骤S5;步骤S3、为本节点分配初始地址为总线上的最小地址号“1”;步骤S4、判断本节点地址是否与已存储地址冲突,否,执行步骤S5,是,本节点地址+1,并再次执行步骤S4;步骤S5、地址分配标志改为地址已分配,并保持不变。本发明专利技术因节点移动导致设备更换CAN总线时,避免地址重新分配,及时自动重排重复的地址,避免地址重复引发总线数据错误。

A method of assigning the address automatically to the same node on the communication bus

The invention relates to a method for communication on the bus the same node automatic address assignment comprises the following steps: step S1, set the global variable address assignment symbol, initialization of address assignment mark is not assigned to determine the node address, address assignment signs are not allocated, not do the steps S2, step S3; step S2, to determine the node address whether with the stored address conflict, step S3, otherwise executing step S5; step S3, assign the initial address of the node for the minimum address bus number 1; step S4, determine the node address whether with the stored address conflict, not executing S5 is the node address, +1, and once again step S4; step S5, address assignment mark to address has been assigned, and remain unchanged. The invention avoids the address redistribution when the device changes the CAN bus due to the node movement, and automatically replaces the duplicate address in time, and avoids the bus data error caused by the address repetition.

【技术实现步骤摘要】
一种为通信总线上相同节点自动分配地址的方法
本专利技术涉及自动变速箱换挡控制领域,尤其涉及一种为通信总线上相同节点自动分配地址的方法。
技术介绍
多个相同设备通过同一CAN总线相连,按一定周期定时发送报文。一个接入CAN总线的设备即为当前总线上的一个节点。本节点向总线发送的报文供其他节点应用。总线中的每个节点应有唯一地址。总线上各节点遵循同一通信协议规定各报文的格式、数据含义及发送周期,各节点发送的报文格式、数据含义、及发送周期相同。通信协议规定报文中的某些数据应为发送该报文的节点地址,各报文根据节点地址区分来自哪一个节点,因此在使用前,需要对各节点分配地址。传统的相同节点在同一CAN总线的地址分配方式为人为手工分配,需要对总线上每个节点的地址分别分配。其缺点为:1.节点更换CAN总线时,该节点在后接入CAN总线上的地址需要重新分配;2.增加人工成本;3.易发生人为误操作,出现地址冲突,导致CAN总线上报文错误;4.总线上节点地址出现冲突后不易发现,更改时需人为手工更改地址。
技术实现思路
鉴于上述的分析,本专利技术旨在提供一种为通信总线上相同节点自动分配地址的方法,用以解决现有技术中同一CAN总线上接有多个相同设备节点,不能自动分配本节点在总线上的地址等诸多技术问题。本专利技术的目的主要是通过以下技术方案实现的:在基于本专利技术的一个实施例中,提供了一种为通信总线上相同节点自动分配地址的方法,包括:步骤S1、设置全局变量地址分配标志,初始化地址分配标志为地址未分配,判断本节点地址分配标志是否未分配,否,执行步骤S2,是,执行步骤S3;步骤S2、判断本节点地址是否与已存储地址冲突,是,执行步骤S3,否执行步骤S5;步骤S3、为本节点分配初始地址为总线上的最小地址号“1”;步骤S4、判断本节点地址是否与已存储地址冲突,否,执行步骤S5,是,本节点地址+1,并再次执行步骤S4;步骤S5、地址分配标志改为地址已分配,并保持不变。在基于本专利技术方法的另一个实施例中,还包括:报文接收并存储步骤。在基于本专利技术方法的另一个实施例中,还包括:报文发送的步骤。在基于本专利技术方法的另一个实施例中,步骤S5还包括:判断是否接收到总线上的报文,是,处理接收报文并解析报文地址,然后执行步骤S6,否,执行步骤S7;步骤S6、判断接收到的报文地址与已存储的报文地址是否相同,是,更新该存储空间的报文数据,并执行步骤S7,否,开辟新空间存储报文及地址,并执行步骤S7;步骤S7、判断首次分配地址时间是否大于T,是,本节点按周期发送报文,并执行步骤S1,否,本节点不向通信总线发送报文,只接收报文,并执行步骤S1。在基于本专利技术方法的另一个实施例中,步骤S5还包括:判断首次分配地址时间是否大于T,是,本节点按周期发送报文,并执行步骤S1,否,本节点不向CAN总线发送报文,只接收报文,并执行步骤S1。在基于本专利技术方法的另一个实施例中,报文接收并存储步骤在中断程序中同时执行。在基于本专利技术方法的另一个实施例中,步骤S5还包括:当多个相同设备通过同一CAN总线相连,按一定周期定时发送报文时,如果总线上已经存在其他相同节点,则解析出发送该报文的节点地址,开辟空间存储该地址及报文。在基于本专利技术方法的另一个实施例中,步骤S7中,T应至少为通信协议规定的各节点报文发送周期的2倍,在T时间内,本节点不向CAN总线发送报文,只接收各报文。本专利技术有益效果如下:1.因节点移动导致设备更换CAN总线时,避免地址重新分配;2.减少人工操作步骤,提高设备的自动化与智能化能力;3.避免人为误操作造成的CAN总线上地址重复,引发总线数据错误;4.地址重复纠错机制,及时自动重排重复的地址,避免地址重复引发总线数据错误。本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明附图仅用于示出具体实施例的目的,而并不认为是对本专利技术的限制,在整个附图中,相同的参考符号表示相同的部件。图1为本专利技术方法一个实施例的流程图;图2为本专利技术方法另一个实施例的流程图。具体实施方式下面结合附图来具体描述本专利技术的优选实施例,其中,附图构成本申请一部分,并与本专利技术的实施例一起用于阐释本专利技术的原理。根据本专利技术的一个具体实施例,公开了一种为通信总线上相同节点自动分配地址的方法,包括:步骤S1、设置全局变量地址分配标志,初始化地址分配标志为地址未分配,判断本节点地址分配标志是否未分配,否,执行步骤S2,是,执行步骤S3;步骤S2、判断本节点地址是否与已存储地址冲突,是,执行步骤S3,否执行步骤S5;步骤S3、为本节点分配初始地址为总线上的最小地址号“1”;步骤S4、判断本节点地址是否与已存储地址冲突,否,执行步骤S5,是,本节点地址+1,并再次执行步骤S4;步骤S5、地址分配标志改为地址已分配,并保持不变,判断是否接收到总线上的报文,是,处理接收报文并解析报文地址,然后执行步骤S6,否,执行步骤S7;进一步地,通信总线为CAN总线,当多个相同设备通过同一CAN总线相连,按一定周期定时发送报文时,如果总线上已经存在其他相同节点,则解析出发送该报文的节点地址,开辟空间存储该地址及报文。步骤S6、判断接收到的报文地址与已存储的报文地址是否相同,是,更新该存储空间的报文数据,并执行步骤S7,否,开辟新空间存储报文及地址,并执行步骤S7;步骤S7、判断首次分配地址时间是否大于T,是,本节点按周期发送报文,并执行步骤S1,否,本节点不向通信总线发送报文,只接收报文,并执行步骤S1;其中,T应至少为通信协议规定的各节点报文发送周期的2倍,在T时间内,本节点不向CAN总线发送报文,只接收各报文。首次分配地址时间即从设备刚上电,到判断时间是否大于T这个时间段的时间。地址分配完成后,循环对已存储的报文地址进行检查,检查是否有与本节点相同的报文地址,如有相同地址,认为该地址与本节点地址冲突。如有地址冲突,本节点回到初始地址1重新与已存储地址进行比较,对本节点地址重新分配。在本专利技术的另一实施例中,一种自动分配通信总线上相同节点地址的方法,包括:步骤S21、设置全局变量地址分配标志,初始化地址分配标志为地址未分配,判断本节点地址分配标志是否未分配,否,执行步骤S22,是,执行步骤S23;步骤S22、判断本节点地址是否与已存储地址冲突,是,执行步骤S23,否执行步骤S25;步骤S23、为本节点分配初始地址为总线上的最小地址号“1”步骤S24、判断本节点地址是否与已存储地址冲突,否,执行步骤S25,是,本节点地址+1,并再次执行步骤S24;步骤S25、地址分配标志改为地址已分配,并保持不变,判断首次分配地址时间是否大于T,是,本节点按周期发送报文,并执行步骤S21,否,本节点不向CAN总线发送报文,只接收报文,并执行步骤S21;同时,在中断程序中判断是否接收到报文:步骤S31、判断是否接收到总线上的报文,是,处理接收报文并解析报文地址,然后执行步骤S32,步骤S32、判断接收到的报文地址与已存储的报文地址是否相同,是,更新该存储空间的报文数据,否,开辟新空间存储报文及地址;本专利技术的有益效果为:1本文档来自技高网...
一种为通信总线上相同节点自动分配地址的方法

【技术保护点】
一种为通信总线上相同节点自动分配地址的方法,其特征在于,包括:步骤S1、设置全局变量地址分配标志,初始化地址分配标志为地址未分配,判断本节点地址分配标志是否未分配,否,执行步骤S2,是,执行步骤S3;步骤S2、判断本节点地址是否与已存储地址冲突,是,执行步骤S3,否执行步骤S5;步骤S3、为本节点分配初始地址为总线上的最小地址号“1”;步骤S4、判断本节点地址是否与已存储地址冲突,否,执行步骤S5,是,本节点地址+1,并再次执行步骤S4;步骤S5、地址分配标志改为地址已分配,并保持不变。

【技术特征摘要】
1.一种为通信总线上相同节点自动分配地址的方法,其特征在于,包括:步骤S1、设置全局变量地址分配标志,初始化地址分配标志为地址未分配,判断本节点地址分配标志是否未分配,否,执行步骤S2,是,执行步骤S3;步骤S2、判断本节点地址是否与已存储地址冲突,是,执行步骤S3,否执行步骤S5;步骤S3、为本节点分配初始地址为总线上的最小地址号“1”;步骤S4、判断本节点地址是否与已存储地址冲突,否,执行步骤S5,是,本节点地址+1,并再次执行步骤S4;步骤S5、地址分配标志改为地址已分配,并保持不变。2.如权利要求1所述的方法,其特征在于,还包括:报文接收并存储步骤。3.如权利要求1或2所述的方法,其特征在于,还包括:报文发送的步骤。4.如权利要求3所述的方法,其特征在于,步骤S5还包括:判断是否接收到总线上的报文,是,处理接收报文并解析报文地址,然后执行步骤S6,否,执行步骤S7;步骤S6、判断接收到的报文地址与已存储的报文地址是否相同,是,更新该存储空间...

【专利技术属性】
技术研发人员:杨润宇徐晓彤袁红升
申请(专利权)人:北京机械设备研究所
类型:发明
国别省市:北京,11

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

1