CN107835266A - 一种为通信总线上相同节点自动分配地址的方法 - Google Patents

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

Info

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
Application number
CN201710865280.6A
Other languages
English (en)
Other versions
CN107835266B (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 Machinery Equipment Research Institute
Original Assignee
Beijing Machinery Equipment Research Institute
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 Machinery Equipment Research Institute filed Critical Beijing Machinery Equipment Research Institute
Priority to CN201710865280.6A priority Critical patent/CN107835266B/zh
Publication of CN107835266A publication Critical patent/CN107835266A/zh
Application granted granted Critical
Publication of CN107835266B publication Critical patent/CN107835266B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller 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总线发送报文,只接收各报文。
CN201710865280.6A 2017-09-22 2017-09-22 一种为通信总线上相同节点自动分配地址的方法 Active CN107835266B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国东方电气集团有限公司 一种燃料电池逆变器实时监控系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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