CN107835266A - 一种为通信总线上相同节点自动分配地址的方法 - Google Patents
一种为通信总线上相同节点自动分配地址的方法 Download PDFInfo
- Publication number
- CN107835266A CN107835266A CN201710865280.6A CN201710865280A CN107835266A CN 107835266 A CN107835266 A CN 107835266A CN 201710865280 A CN201710865280 A CN 201710865280A CN 107835266 A CN107835266 A CN 107835266A
- Authority
- CN
- China
- Prior art keywords
- address
- message
- node
- bus
- assignment flag
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及一种为通信总线上相同节点自动分配地址的方法,包括:步骤S1、设置全局变量地址分配标志,初始化地址分配标志为地址未分配,判断本节点地址分配标志是否未分配,否,执行步骤S2,是,执行步骤S3;步骤S2、判断本节点地址是否与已存储地址冲突,是,执行步骤S3,否执行步骤S5;步骤S3、为本节点分配初始地址为总线上的最小地址号“1”;步骤S4、判断本节点地址是否与已存储地址冲突,否,执行步骤S5,是,本节点地址+1,并再次执行步骤S4;步骤S5、地址分配标志改为地址已分配,并保持不变。本发明因节点移动导致设备更换CAN总线时,避免地址重新分配,及时自动重排重复的地址,避免地址重复引发总线数据错误。
Description
技术领域
本发明涉及自动变速箱换挡控制领域,尤其涉及一种为通信总线上相同节点自动分配地址的方法。
背景技术
多个相同设备通过同一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.因节点移动导致设备更换CAN总线时,避免地址重新分配;
2.减少人工操作步骤,提高设备的自动化与智能化能力;
3.避免人为误操作造成的CAN总线上地址重复,引发总线数据错误;
4.地址重复纠错机制,及时自动重排重复的地址,避免地址重复引发总线数据错误。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (8)
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、判断接收到的报文地址与已存储的报文地址是否相同,是,更新该存储空间的报文数据,并执行步骤S7,否,开辟新空间存储报文及地址,并执行步骤S7;
步骤S7、判断首次分配地址时间是否大于T,是,本节点按周期发送报文,并执行步骤S1,否,本节点不向通信总线发送报文,只接收报文,并执行步骤S1。
5.如权利要求3所述的方法,其特征在于,步骤S5还包括:判断首次分配地址时间是否大于T,是,本节点按周期发送报文,并执行步骤S1,否,本节点不向CAN总线发送报文,只接收报文,并执行步骤S1。
6.如权利要求5所述的方法,其特征在于,报文接收并存储步骤在中断程序中同时执行。
7.如权利要求4或5所述的方法,其特征在于,步骤S5还包括:当多个相同设备通过同一CAN总线相连,按一定周期定时发送报文时,如果总线上已经存在其他相同节点,则解析出发送该报文的节点地址,开辟空间存储该地址及报文。
8.如权利要求7所述的方法,其特征在于,步骤S7中,T应至少为通信协议规定的各节点报文发送周期的2倍,在T时间内,本节点不向CAN总线发送报文,只接收各报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710865280.6A CN107835266B (zh) | 2017-09-22 | 2017-09-22 | 一种为通信总线上相同节点自动分配地址的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710865280.6A CN107835266B (zh) | 2017-09-22 | 2017-09-22 | 一种为通信总线上相同节点自动分配地址的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107835266A true CN107835266A (zh) | 2018-03-23 |
CN107835266B CN107835266B (zh) | 2020-10-13 |
Family
ID=61643977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710865280.6A Active CN107835266B (zh) | 2017-09-22 | 2017-09-22 | 一种为通信总线上相同节点自动分配地址的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107835266B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881514A (zh) * | 2018-07-02 | 2018-11-23 | 京东方科技集团股份有限公司 | 总线系统的地址分配方法、通讯设备和总线系统 |
CN112887439A (zh) * | 2019-11-29 | 2021-06-01 | 株洲中车时代电气股份有限公司 | 一种用于空调机组变频器的can地址配置方法及系统 |
CN113923073A (zh) * | 2021-09-30 | 2022-01-11 | 深圳硕日新能源科技有限公司 | Can总线分配id的方法及can总线系统 |
CN114448744A (zh) * | 2022-01-28 | 2022-05-06 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
CN116155865A (zh) * | 2023-01-05 | 2023-05-23 | 惠州市德赛智储科技有限公司 | 一种bms从板地址自动分配方法,分配系统及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5029209A (en) * | 1990-06-13 | 1991-07-02 | The Boeing Company | Pseudorandom, iterative method and apparatus for automatically creating addresses |
CN103106142A (zh) * | 2011-11-10 | 2013-05-15 | 澜起科技(上海)有限公司 | 需要分配地址的器件、器件系统及地址分配方法 |
CN103825781A (zh) * | 2014-02-27 | 2014-05-28 | 全天自动化能源科技(东莞)有限公司 | 一种基于Canbus总线的系统通信调度算法 |
CN104201742A (zh) * | 2014-09-02 | 2014-12-10 | 中国东方电气集团有限公司 | 一种燃料电池逆变器实时监控系统 |
-
2017
- 2017-09-22 CN CN201710865280.6A patent/CN107835266B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5029209A (en) * | 1990-06-13 | 1991-07-02 | The Boeing Company | Pseudorandom, iterative method and apparatus for automatically creating addresses |
CN103106142A (zh) * | 2011-11-10 | 2013-05-15 | 澜起科技(上海)有限公司 | 需要分配地址的器件、器件系统及地址分配方法 |
CN103825781A (zh) * | 2014-02-27 | 2014-05-28 | 全天自动化能源科技(东莞)有限公司 | 一种基于Canbus总线的系统通信调度算法 |
CN104201742A (zh) * | 2014-09-02 | 2014-12-10 | 中国东方电气集团有限公司 | 一种燃料电池逆变器实时监控系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881514A (zh) * | 2018-07-02 | 2018-11-23 | 京东方科技集团股份有限公司 | 总线系统的地址分配方法、通讯设备和总线系统 |
CN108881514B (zh) * | 2018-07-02 | 2021-10-01 | 京东方科技集团股份有限公司 | 总线系统的地址分配方法、通讯设备和总线系统 |
CN112887439A (zh) * | 2019-11-29 | 2021-06-01 | 株洲中车时代电气股份有限公司 | 一种用于空调机组变频器的can地址配置方法及系统 |
CN113923073A (zh) * | 2021-09-30 | 2022-01-11 | 深圳硕日新能源科技有限公司 | Can总线分配id的方法及can总线系统 |
CN113923073B (zh) * | 2021-09-30 | 2023-05-16 | 深圳硕日新能源科技有限公司 | Can总线分配id的方法及can总线系统 |
CN114448744A (zh) * | 2022-01-28 | 2022-05-06 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
CN114448744B (zh) * | 2022-01-28 | 2024-05-03 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
CN116155865A (zh) * | 2023-01-05 | 2023-05-23 | 惠州市德赛智储科技有限公司 | 一种bms从板地址自动分配方法,分配系统及存储介质 |
CN116155865B (zh) * | 2023-01-05 | 2024-01-05 | 惠州市德赛智储科技有限公司 | 一种bms从板地址自动分配方法,分配系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107835266B (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107835266A (zh) | 一种为通信总线上相同节点自动分配地址的方法 | |
CN101557315B (zh) | 一种主备切换方法、装置及系统 | |
CN103209439B (zh) | 一种数据流量监控的方法、装置和设备 | |
CN109376197B (zh) | 一种数据同步方法、服务器及计算机存储介质 | |
CN103929492A (zh) | 业务链负载均衡方法及其装置、系统 | |
CN105245912A (zh) | 一种缓存视频数据及读取视频数据的方法及装置 | |
CN107968851B (zh) | 一种基于k8s平台的浮动IP绑定方法及装置 | |
CN102821114B (zh) | 分布式存储系统及其时间戳的实现方法 | |
CN102200901A (zh) | 图像转送方法、图像转送系统以及投影仪 | |
US9336022B2 (en) | Universal serial bus (USB) device and a USB system including the same | |
CN112416969B (zh) | 分布式数据库中的并行任务调度系统 | |
CN103152390A (zh) | 分布式存储系统的节点配置方法、装置、节点及系统 | |
CN105959078A (zh) | 一种集群时间同步方法、集群及时间同步系统 | |
CN102750249B (zh) | 上位机与下位机通信的方法、装置及系统 | |
CN109902056A (zh) | 一种串行传输的方法、装置、设备及计算机可读存储介质 | |
CN105515962A (zh) | 一种信息处理方法和智能家居设备 | |
CN104158683A (zh) | 一种跨设备聚合组快速收敛方法及装置 | |
CN102708063A (zh) | 磁盘空间管理方法及装置 | |
CN107967150B (zh) | 一种线程执行顺序确定方法、装置、设备及存储介质 | |
CN103733184A (zh) | 具有数据广播的装置编程系统及其操作方法 | |
CN103856511A (zh) | 数据包上传方法、客户端、节点、信息服务器及系统 | |
CN107547591A (zh) | 升级服务器、机顶盒、机顶盒升级文件下发方法及系统 | |
CN105306386A (zh) | 一种局域网中资源分配的方法和装置 | |
EP4207637A1 (en) | Time synchronization method and apparatus, device, and storage medium | |
CN105407087A (zh) | 消息发送方法和装置 |
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 |