CN114238189A - 一种自动分配地址的方法、装置和系统 - Google Patents
一种自动分配地址的方法、装置和系统 Download PDFInfo
- Publication number
- CN114238189A CN114238189A CN202111443807.9A CN202111443807A CN114238189A CN 114238189 A CN114238189 A CN 114238189A CN 202111443807 A CN202111443807 A CN 202111443807A CN 114238189 A CN114238189 A CN 114238189A
- Authority
- CN
- China
- Prior art keywords
- address
- host
- instruction
- feedback
- slave
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000001960 triggered effect Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 abstract description 9
- 230000009286 beneficial effect Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/376—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及通信技术领域,具体为一种自动分配地址的方法、装置和系统,其中方法通过连接步骤、主机启动分配步骤、查询步骤、从机启动分配步骤、第一未分配地址判断步骤、主机广播步骤、第一延时生成步骤、第一从机反馈步骤、第一反馈判断步骤、第一冲突判断步骤、反馈冲突调节步骤、分配地址步骤、第二未分配地址判断步骤、主机结束分配步骤和从机结束分配步骤,进行自动分配地址。本方案全程无需设置拨码开关等元器件,即可确定从机的地址,降低了成本,并且整个流程操作简单,无需人工逐一设置地址,自动的对所有从机进行地址分配,并且解决了分配过程中地址抢占冲突的问题,保证地址分配过程的快速进行。
Description
技术领域
本发明涉及通信技术领域,具体为一种自动分配地址的方法、装置和系统。
背景技术
主从式多机通信即是指主机发送的信息可以传送到各个从机或指定的从机,而各个从机的信息只能发送给主机。在工业控制、电力通讯、智能仪表等领域,通常情况下是采用RS485接口,进行主从式多机通信。
特别是随着物联网技术的发展,以及各种智能仪表的联网需求,RS485接口越来越被广泛的应用在智能仪表中。众所周知,在通过RS485接口进行通信的RS485系统中,一般是主从模式的通讯方式,即一个RS485系统中,包括一个主机和多个从机,主机作为指令的发起者,而从机作为指令的应答者。因为一个RS485系统中,一般包括多个从机,为了使主机发送的指令,能发送给指定的从机,所以每个从机都需要设置唯一的地址,才能保证正常的通信。
现有技术中主要是分别在每个从机设备上增加一个拨码开关或者拨码盘来设置每个从机的地址,需要人工手动操作,且操作复杂,成本高,并且多个从机同时进行地址分配请求,会产生地址抢占冲突,若冲突无法解决,则会影响地址分配的进程。
发明内容
本发明的目的之一在于提供一种自动分配地址的方法,操作简单,能降低成本,并解决地址抢占冲突的问题。
本发明提供的基础方案一:一种自动分配地址的方法,包括如下内容:
连接步骤:主机与若干个从机进行连接;
主机启动分配步骤:输入地址分配模式信号,主机接收到地址分配模式信号,主机进入地址分配模式;
查询步骤:主机查询地址分配情况;
从机启动分配步骤:完成查询后,主机广播分配指令,B类从机接收到分配指令后,进入地址分配模式,A类从机地址信息不改变;
第一未分配地址判断步骤:主机根据地址分配情况,判断主机是否还有未分配的地址,若是,则执行主机广播步骤;若否,则提示地址已分配完,并执行主机结束分配步骤;
主机广播步骤:主机广播地址抢占指令;
第一延时生成步骤:B类从机接收地址抢占指令,生成随机数,根据随机数,产生不同的第一延时时间;
第一从机反馈步骤:B类从机根据第一延时时间,进行反馈,若存在B类从机进行反馈,则其他B类从机停止本次反馈;
第一反馈判断步骤:判断主机在第一预设反馈时间内,是否接受到反馈指令,若是,则执行第一冲突判断步骤;若否,则执行主机结束分配步骤;
第一冲突判断步骤:主机判断是否接受到多条地址反馈指令,若是,则执行反馈冲突调节步骤;若否,则执行分配地址步骤;
反馈冲突调节步骤:对主机和C类从机分别进行轮次设置,并根据轮次,循环进行地址分配,每当一个C类从机均获得地址后,均根据地址分配情况,判断主机是否还有未分配的地址,若是,则继续循环进行地址分配;若否,则执行主机结束分配步骤;若发生反馈冲突的C类从机均获得地址,则执行第一未分配地址判断步骤;
分配地址步骤:主机根据地址分配情况,对发送反馈指令的B类从机分配地址,B类从机获得地址后,向主机反馈存储成功指令,主机更新地址分配情况;
第二未分配地址判断步骤:判断主机是否存在未分配的地址,若是,则执行主机广播步骤;若否,则执行主机结束分配步骤;
主机结束分配步骤:主机广播退出地址分配模式指令,并退出地址分配模式,进入正常工作模式;
从机结束分配步骤:B类从机接收退出分配指令,退出地址分配模式,进入正常工作模式。
说明:A类从机:已被分配地址的从机;
B类从机:未被分配地址的从机;
C类从机:收到主机下发的地址抢占指令且已经进行反馈但未被分配地址的从机。
基础方案一的有益效果:主机与若干个从机进行连接,组成一个主从式多机通信的RS485系统,对主机输入到地址分配模式信号,主机接收到地址分配模式信号,主机进入地址分配模式;地址分配模式下,主机查询地址分配情况,即哪些地址已经被分配占用,哪些地址未使用,先查清地址分配情况,防止后续进行地址分配时,分配地址已被占用。
完成查询后,主机广播分配指令,B类从机接收到分配指令后,进入地址分配模式,A类从机因为已经拥有地址,因此不进入地址分配模式,防止对A类从机进行地址分配造成地址冲突,增加地址自动分配工作量。主机根据地址分配情况,判断是否还有未分配的地址,若是,则执行主机广播步骤;若否,则提示地址已分配完,并执行主机结束分配步骤;主机广播地址抢占指令,B类从机接收到以后,会在第一预设反馈时间内发送反馈指令,即执行第一延时生成步骤接收到地址抢占指令的B类从机,生成随机数,根据随机数,产生不同的第一延时时间,根据第一延时时间进行反馈,一个B类从机反馈后,其他B类从机就停止反馈;如果主机在第一预设反馈时间内没有接收到反馈指令,则表示没有从机接收到广播的地址抢占指令,因此直接执行主机结束分配步骤,结束地址分配,如果主机在第一预设反馈时间内接收到反馈指令,则表示有从机接收到广播的地址抢占指令。
因为第一延时时间是根据产生的随机数进行确定的,不同B类从机可能会产生相同或者相近的随机数,此时产生的第一延时时间相同或相近,则不同的B类从机可能都会进行反馈,主机会接收到多个反馈信息,从而造成地址请求冲突,主机接收到的反馈为乱码,不能进行对应的地址分配,因此执行第一冲突判断步骤:主机判断是否接受到多条地址反馈指令,若是,则执行反馈冲突调节步骤,对主机和C类从机分别进行轮次设置,并根据轮次,循环进行地址分配,并且每当一个C类从机均获得地址后,均根据地址分配情况,判断主机是否还有未分配的地址,若是,则继续循环进行地址分配;若否,则执行主机结束分配步骤;若发生反馈冲突的C类从机均获得地址,则执行第一未分配地址判断步骤,从而对发生地址请求冲突的B内从机进行地址分配,解决地址请求冲突,保证在主机未分配地址充足的情况下,都能获得地址,;若否,则执行分配地址步骤,主机根据地址分配情况,对发送反馈指令的B类从机分配地址,B类从机获得地址后,向主机反馈存储成功指令,主机更新地址分配情况,更新完成后,再进行第二未分配地址判断步骤判断主机是否存在未分配的地址,以判断是否能继续进行地址分配,若能,则重复上述分配步骤,直至主机地址分配完或者B类从机都获得地址。
全程无需设置拨码开关等元器件,即可确定从机的地址,降低了成本,并且整个流程操作简单,无需人工逐一设置地址,自动的对所有从机进行地址分配,并且解决了分配过程中地址抢占冲突的问题,保证地址分配过程的快速进行。
进一步,所述地址分配模式信号,包括:地址扩展分配模式信号和地址重新分配模式信号;
所述分配指令,包括:地址扩展分配指令和地址重新分配指令;
所述主机启动分配步骤,还包括:根据地址分配模式信号不同,主机进入不同的地址分配模式;若主机接收到地址扩展分配模式信号,则进入地址扩展分配模式;若主机接收到地址重新分配模式信号,则进入地址重新分配模式;
所述从机启动分配步骤,还包括:完成查询后,处于地址扩展分配模式的主机广播地址扩展分配指令,B类从机接收到地址扩展分配指令后,进入地址扩展分配模式,A类从机地址信息不改变;处于地址重新分配模式的主机执行地址重新分配步骤;
地址重新分配步骤:地址重新分配模式下,主机向从机下发从机地址重新分配指令;
地址复位步骤:A类从机根据接收到的从机地址重新分配指令,清除地址信息,恢复为B类从机,且B类从机进入地址重新分配模式。
有益效果:两种模式满足不同的实际应用需求,对于已经有地址的从机,使从机进行地址复位,清除地址信息,防止主机给从机分配地址时与从机原本的有效地址发送地址冲突。
进一步,所述反馈冲突调节步骤,包括:
从机轮次设置步骤:C类从机的轮次m设置为预设从机轮次值;
第一地址抢占指令下发步骤:主机向C类从机下发地址抢占指令,且主机的轮次n设置为预设主机轮次值;
第一轮次判断步骤:接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则执行第二延时生成步骤;若否,则不进行反馈;
第二延时生成步骤:m大于等于n的C类从机生成随机数,根据随机数,产生不同的第二延时时间;
第二从机反馈步骤:C类从机根据第二延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且进行反馈的C类从机的轮次增加预设定值;
第二反馈判断步骤:判断主机在第二预设反馈时间内,是否接受到反馈指令,若是,则执行第二冲突判断步骤;若否,则执行主机广播步骤;
第二冲突判断步骤:主机判断是否接受到多条地址反馈指令,若是,则执行第二地址抢占指令下发步骤;若否,则执行第一地址分配步骤;
第二地址抢占指令下发步骤:主机向发送反馈指令的C类从机下发地址抢占指令,且主机的轮次增加预设定值;
第二轮次判断步骤:接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则执行第三延时生成步骤;若否,则不进行反馈;
第三延时生成步骤:m大于等于n的C类从机生成随机数,根据随机数,产生不同的第三延时时间;
第三从机反馈步骤:C类从机根据第三延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且进行反馈的C类从机的轮次增加预设定值;
第三反馈判断步骤:判断主机在第三预设反馈时间内,是否接受到反馈指令,若是,则执行第二冲突判断步骤;若否,则执行主机轮次判断步骤;
主机轮次判断步骤:判断主机轮次是否大于等于预设主机轮次值,若是,则执行第一未分配地址判断步骤;若否,则执行第三地址抢占指令下发步骤;
第三地址抢占指令下发步骤:主机向C类从机下发地址抢占指令,且主机的轮次减少预设定值,并执行第二轮次判断步骤;
第一地址分配步骤:主机给发送反馈指令的C类从机分配地址;
第一从机反馈步骤:C类从机获得地址,并存储获得的地址,向主机反馈存储成功指令;
第一地址更新步骤:主机更新地址分配情况;
第三未分配地址判断步骤:判断是否存在未分配的地址,若是,则执行第四地址抢占指令下发步骤;若否,则执行主机结束分配步骤;
第四地址抢占指令下发步骤:主机向未分配到地址的C类从机下发地址抢占指令,且主机的轮次不变n=n,并执行第二轮次判断步骤。
有益效果:主机和从机的轮次设置,以及轮次判断,保障了发生请求冲突的从机之间解决第一延时时间相同的问题,并能逐一获得地址。
进一步,所述分配地址步骤,包括:
第五未分配地址判断步骤:主机根据地址分配情况,判断是否还有未分配的地址,若是,则执行第二地址分配步骤;若否,则提示地址已分配完;
第二地址分配步骤:主机给发送反馈指令的B类从机分配地址;
第二从机反馈步骤:B类从机获得地址,并存储获得的地址,向主机反馈存储成功指令;
第二地址更新步骤:主机更新地址分配情况。
有益效果:一个B类从机获得地址后,及时反馈,从而使主机明确该B类从机已变为A类从机,完成一个从机的地址分配后,及时更新地址分配情况,防止主机重复分配相同地址,造成后续通讯故障。
进一步,所述进行反馈,包括:从机向主机发送请求地址分配指令。
有益效果:从机向主机发送请求地址分配指令,以便于主机明确需要对哪些从机分配地址。
进一步,所述B类从机未获得地址前,均设置有默认地址,所述默认地址为特殊值。
有益效果:每个RS485系统中的从机在出厂时,其地址都是默认值,该默认值可以是0xFF,或者其他厂家自定义的地址,都需要默认地址为特殊值,即RS485系统中正常分配地址时,不会被分配或者出现的地址。
本发明的目的之二在于提供一种自动分配地址的装置,操作简单,能降低成本,并解决地址抢占冲突的问题。
本发明提供基础方案二:一种自动分配地址的装置,应用于主机与若干个从机连接的主从系统中,包括:
输入模块,用于输入地址分配模式信号;
接收模块,用于接收地址分配模式信号,使主机进入地址分配模式;
查询模块,用于主机查询地址分配情况;
广播模块,用于主机完成查询后,广播分配指令;还用于广播退出地址分配模式指令,并使主机退出地址分配模式,进入正常工作模式;还用于广播地址抢占指令;
第一地址未分配判断模块,用于根据地址分配情况,判断主机是否还有未分配的地址,若是,则触发广播模块广播地址抢占指令;若否,则提示地址已分配完,并触发广播模块广播退出地址分配模式指令;
指令接收模块,用于B类从机接收分配指令,使B类从机进入地址分配模式;还用于接收地址抢占指令后触发第一延时生成模块;还B类从机接收退出分配模式指令,使B类从机退出地址分配模式,进入正常工作模式;
第一延时生成模块,用于B类从机接收地址抢占指令,生成随机数,根据随机数,产生不同的第一延时时间;
第一从机反馈模块,用于B类从机根据第一延时时间,进行反馈,若存在B类从机进行反馈,则其他B类从机停止本次反馈;
第一反馈判断模块,用于判断主机在第一预设反馈时间内,是否接受到反馈指令,若是,则触发第一冲突判断模块;若否,则触发广播模块广播退出地址分配模式指令;
第一冲突判断模块,用于判断主机是否接受到多条地址反馈指令,若是,则触发反馈冲突调节模块;若否,则触发分配地址模块;
反馈冲突调节模块,用于对主机和C类从机分别进行轮次设置,并根据轮次,循环进行地址分配,每当一个C类从机均获得地址后,均根据地址分配情况,判断主机是否还有未分配的地址,若是,则继续循环进行地址分配;若否,则触发广播模块广播退出地址分配模式指令;若发生反馈冲突的C类从机均获得地址,则触发第一地址未分配判断模块;
分配地址模块,用于主机根据地址分配情况,对发送反馈指令的B类从机分配地址;还用于根据反馈的存储成功指令,更新地址分配情况,并触发第二未分配地址判断模块;
存储模块,用于B类从机获得地址后,存储获得的地址,并向主机反馈存储成功指令,
第二未分配地址判断模块,用于根据地址分配情况,判断是否存在未分配的地址,若是,则触发广播模块广播地址抢占指令;若否,则触发广播模块广播退出地址分配模式指令。
基础方案二的有益效果:本装置应用于主机与若干个从机连接的主从系统中,通过输入模块对主机输入到地址分配模式信号,接收模块就接收到地址分配模式信号,使主机进入地址分配模式;地址分配模式下,查询模块查询地址分配情况,即哪些地址已经被分配占用,哪些地址未使用,先查清地址分配情况,防止后续进行地址分配时,分配地址已被占用。
完成查询后,广播模块广播分配指令,指令接收模块接收到分配指令,使从机进入地址分配模式,具体地,B类从机接收到分配指令后,进入地址分配模式,A类从机因为已经拥有地址,因此不进入地址分配模式,防止对A类从机进行地址分配造成地址冲突,增加地址自动分配工作量。
查询模块用于主机查询地址分配情况,第一地址未分配判断模块根据地址分配情况,判断主机是否还有未分配的地址,若是,则触发广播模块广播地址抢占指令;若否,则提示地址已分配完,并触发广播模块广播退出地址分配模式指令;广播模块广播地址抢占指令,B类从机接收到以后,会在第一预设反馈时间内发送反馈指令,即指令接收模块,还用于接收地址抢占指令后触发第一延时生成模块;第一延时生成模块,用于B类从机接收地址抢占指令,生成随机数,根据随机数,产生不同的第一延时时间;第一从机反馈模块,用于B类从机根据第一延时时间,进行反馈,若存在B类从机进行反馈,则其他B类从机停止本次反馈;
并且第一反馈判断模块进行判断,如果指令接收模块在第一预设反馈时间内没有接收到反馈指令,则表示没有从机接收到广播的地址抢占指令,因此直接触发广播模块广播退出地址分配模式指令,结束地址分配,如果指令接收模块在第一预设反馈时间内接收到反馈指令,则表示有从机接收到广播的地址抢占指令。
因为第一延时时间是根据产生的随机数进行确定的,不同B类从机可能会产生相同或者相近的随机数,此时产生的第一延时时间相同或相近,则不同的B类从机可能都会进行反馈,主机会接收到多个反馈信息,从而造成地址请求冲突,因此先设置第一冲突判断模块,用于主机判断是否接受到多条地址反馈指令,若是,则触发反馈冲突调节模块,对主机和C类从机分别进行轮次设置,并根据轮次,循环进行地址分配;每当一个C类从机均获得地址后,均根据地址分配情况,判断主机是否还有未分配的地址,若是,则继续循环进行地址分配;若否,则触发广播模块广播退出地址分配模式指令;若发生反馈冲突的C类从机均获得地址,则触发第一地址未分配判断模块,从而对发生地址请求冲突的B内从机进行地址分配,解决地址请求冲突,保证在主机未分配地址充足的情况下,都能获得地址;若否,则触发分配地址模块,主机根据地址分配情况,对发送反馈指令的B类从机分配地址,B类从机获得地址后,将地址存储到存储模块中,向主机反馈存储成功指令,主机的分配地址模块更新地址分配情况,更新完成后,再触发第二未分配地址判断模块,判断主机是否存在未分配的地址,以判断是否能继续进行地址分配,若能,则重复分配步骤,直至主机地址分配完或者B类从机都获得地址。
本装置各模块可设置多个,并分别设置在主机和从机中,可直接利用主机和从机线现有单片机进行设置,本装置进行地址分配无需设置拨码开关等元器件,即可确定从机的地址,降低了成本,并且整个流程操作简单,无需人工逐一设置地址,自动的对所有从机进行地址分配,并且解决了分配过程中地址抢占冲突的问题,保证地址分配过程的快速进行。
进一步,所述地址分配模式信号,包括:地址扩展分配模式信号和地址重新分配模式信号;
所述分配指令,包括:地址扩展分配指令和地址重新分配指令;
所述广播模块,还用于广播地址扩展分配指令和广播地址重新分配指令;
所述接收模块,还用于接收地址扩展分配模式信号,使主机进入地址扩展分配模式,并触发广播模块广播地址扩展分配指令;还用于接收地址重新分配模式信号,使主机进入地址重新分配模式,并触发广播模块广播地址重新分配指令;
所述指令接收模块,还用于B类从机接收地址扩展分配指令,使B类从机进入地址扩展分配模式;还用于A类从机接收地址重新分配指令,使A类从机清除地址信息,恢复为B类从机,且B类从机进入地址重新分配模式。
有益效果:两种模式满足不同的实际应用需求,对于已经有地址的从机,使从机进行地址复位,清除地址信息,防止主机给从机分配地址时与从机原本的有效地址发送地址冲突。
进一步,所述反馈冲突调节模块,包括:
从机轮次设置子模块,用于设置C类从机的轮次m等于预设从机轮次值;
第一地址抢占指令下发子模块,用于向C类从机下发地址抢占指令,并设置主机的轮次n等于预设主机轮次值;
第一轮次判断子模块,用于接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则触发第二延时生成子模块;若否,则不进行反馈;
第二延时生成子模块,用于使m大于等于n的C类从机生成随机数,根据随机数,产生不同的第二延时时间;
第二从机反馈子模块,用于C类从机根据第二延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且使进行反馈的C类从机的轮次增加预设定值;第二反馈判断子模块,用于判断主机在第二预设反馈时间内,是否接受到反馈指令,若是,则触发第二冲突判断子模块;若否,则触发广播模块广播地址抢占指令;
第二冲突判断子模块,用于判断主机是否接受到多条地址反馈指令,若是,则触发第二地址抢占指令下发子模块;若否,则触发第一地址分配子模;
第二地址抢占指令下发子模块,用于向发送反馈指令的C类从机下发地址抢占指令,且使主机的轮次增加预设定值;
第二轮次判断子模块,用于接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则触发第二延时生成子模块;若否,则不进行反馈;
第三延时生成子模块:用于使m大于等于n的C类从机生成随机数,根据随机数,产生不同的第三延时时间;
第三从机反馈子模块:用于C类从机根据第三延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且进行反馈的C类从机的轮次增加预设定值;
第三反馈判断子模块,用于判断主机在第三预设反馈时间内,是否接受到反馈指令,若是,则触发第二冲突判断子模块;若否,则触发主机轮次判断子模块;
主机轮次判断子模块,用于判断主机轮次是否大于等于一,若是,则触发第一地址未分配判断模块;若否,则触发第三地址抢占指令下发子模块;
第三地址抢占指令下发子模块,用于向C类从机下发地址抢占指令,且使主机的轮次减少预设定值,并触发第二轮次判断子模块;
第一地址分配子模,用于主机根据地址分配情况,主机给发送反馈指令的C类从机分配地址;还用于根据C类从机反馈的存储成功指令,更新地址分配情况;
存储模块,还用于C类从机获得地址后,并存储获得的地址,向主机反馈存储成功指令;
第三未分配地址判断子模块,用于根据判断是否存在未分配的地址,若是,则触发第四地址抢占指令下发模块;若否,则触发广播模块广播退出地址分配模式指令;
第四地址抢占指令下发子模块,用于主机向未分配到地址的C类从机下发地址抢占指令,且主机的轮次不变n=n,并触发第二轮次判断子模块;
所述分配地址模块,包括:
第五未分配地址判断子模块,用于根据地址分配情况,判断主机是否还有未分配的地址,若是,则触发第二地址分配子模块;若否,则提示地址已分配完;
第二地址分配子模块,用于主机根据地址分配情况,主机给发送反馈指令的B类从机分配地址;还用于根据B类从机反馈的存储成功指令,更新地址分配情况。
有益效果:主机和从机的轮次设置,以及轮次判断,保障了发生请求冲突的从机之间解决第一延时时间相同的问题,并能逐一获得地址。
本发明的目的之三在于提供一种自动分配地址的系统,操作简单,能降低成本。
本发明提供基础方案三:一种自动分配地址的系统,采用上述自动分配地址的方法。
基础方案三的有益效果:本系统进行地址自动分配,全程无需设置拨码开关等元器件,即可确定从机的地址,降低了成本,并且整个流程操作简单,无需人工逐一设置地址,自动的对所有从机进行地址分配,并且解决了分配过程中地址抢占冲突的问题,保证地址分配过程的快速进行。
附图说明
图1为本发明一种自动分配地址的方法实施例一的流程图;
图2为本发明一种自动分配地址的方法实施例一中反馈冲突调节步骤的流程图;
图3为主机与若干个从机连接的主从系统的逻辑框图。
具体实施方式
下面通过具体实施方式进一步详细说明:
从机可分为A类从机和B类从机;C类从机为处于一种状态下的从机。
实施例一
实施例基本如附图1所示:一种自动分配地址的方法,包括如下内容:
连接步骤:主机与若干个从机进行连接;即对RS485系统的主机和从机进行接线,并上电;
主机启动分配步骤:输入地址分配模式信号,主机接收到地址分配模式信号,主机进入地址分配模式;其中地址分配模式信号,包括:地址扩展分配模式信号和地址重新分配模式信号;具体地,根据地址分配模式信号不同,主机进入不同的地址分配模式;若主机接收到地址扩展分配模式信号,则进入地址扩展分配模式;若主机接收到地址重新分配模式信号,则进入地址重新分配模式;具体地,输入地址分配模式信号为用户通过操作主机上按键进行输入;
查询步骤:主机查询地址分配情况;即主机查询所有从机的地址信息,不包括默认地址的从机,主机通过从机反馈的地址信息,记录已经被分配的地址信息以及未被分配的地址信息,确定哪些地址已经被分配占用,哪些地址未使用,先查清地址分配情况,防止后续进行地址分配时,分配地址已被占用;
从机启动分配步骤:完成查询后,主机广播分配指令,B类从机接收到分配指令后,进入地址分配模式,A类从机地址信息不改变;其中分配指令,包括:地址扩展分配指令和地址重新分配指令,具体地,完成查询后,处于地址扩展分配模式的主机广播地址扩展分配指令,B类从机接收到地址扩展分配指令后,进入地址扩展分配模式,A类从机地址信息不改变;处于地址重新分配模式的主机执行地址重新分配步骤;从机未获得地址前,均设置有默认地址,所述默认地址为特殊值,其中默认地址即不会在地址分配中出现的地址;本实施例中具体为:判断RS485系统中从机是否有地址,若有则回复;每个RS485系统中的从机在出厂时,其地址都是默认值,该默认值可以是0xFF,或者其他厂家自定义的地址,都需要默认地址为特殊值,即RS485系统中正常分配地址时,不会被分配或者出现的地址;完成查询后,主机的指示灯的状态变换,以此提示用户查询完毕;从机进入地址分配模式后,从机的指示灯的状态也变换,以此提示用户从机已进入地址分配模式,不同地址分配模式设置不同的颜色的指示灯;
地址重新分配步骤:地址重新分配模式下,主机向从机下发从机地址重新分配指令;
地址复位步骤:A类从机根据接收到的从机地址重新分配指令,清除地址信息,恢复为B类从机,且B类从机进入地址重新分配模式;对于已经有地址的从机,从新连接主机或者连接新的主机时,可以输入从机地址重新分配指令,即按下复位开关,使从机进行地址复位,将当前地址更新为默认地址,防止主机给从机分配地址时与从机原本的有效地址发送地址冲突;地址重新分配模式和地址扩展分配模式下的B类从机都是等待分配地址的从机;
第一未分配地址判断步骤:主机根据地址分配情况,判断是否还有未分配的地址,若是,则执行主机广播步骤;若否,则提示地址已分配完,并执行主机结束分配步骤;RS485系统中主机的指示灯状态变换,提示用户地址已全部分配完;
主机广播步骤:主机广播地址抢占指令;
第一延时生成步骤:B类从机接收地址抢占指令,生成随机数,根据随机数,产生不同的第一延时时间;
第一从机反馈步骤:B类从机根据第一延时时间,进行反馈,若存在B类从机进行反馈,则其他B类从机停止本次反馈;其中本实施例中进行反馈是指从机向主机发送请求地址分配指令;
第一反馈判断步骤:判断主机在第一预设反馈时间内,是否接受到反馈指令,若是,则执行第一冲突判断步骤;若否,则执行主机结束分配步骤;
第一冲突判断步骤:主机判断是否接受到多条地址反馈指令,若是,则执行反馈冲突调节步骤;若否,则执行分配地址步骤;
反馈冲突调节步骤:对主机和C类从机分别进行轮次设置,并根据轮次,循环进行地址分配,每当一个C类从机均获得地址后,均根据地址分配情况,判断主机是否还有未分配的地址,若是,则继续循环进行地址分配;若否,则执行主机结束分配步骤;若发生反馈冲突的C类从机均获得地址,则执行第一未分配地址判断步骤;
如图2所示,反馈冲突调节步骤具体包括如下步骤:
从机轮次设置步骤:C类从机的轮次m设置为预设从机轮次值,本实施中为m=1;
第一地址抢占指令下发步骤:主机向C类从机下发地址抢占指令,且主机的轮次n设置为预设主机轮次值,本实施例中为n=1;
第一轮次判断步骤:接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则执行第二延时生成步骤;若否,则不进行反馈;
第二延时生成步骤:m大于等于n的C类从机生成随机数,根据随机数,产生不同的第二延时时间;
第二从机反馈步骤:C类从机根据第二延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且进行反馈的C类从机的轮次增加预设定值,本实施例中为m=m+1;
第二反馈判断步骤:判断主机在第二预设反馈时间内,是否接受到反馈指令,若是,则执行第一轮次判断步骤;若否,则执行主机广播步骤;
第二冲突判断步骤:主机判断是否接受到多条地址反馈指令,若是,则执行第二地址抢占指令下发步骤;若否,则执行第一地址分配步骤;
第二地址抢占指令下发步骤:主机向发送反馈指令的C类从机下发地址抢占指令,且主机的轮次增加预设定值,本实施例中为n=n+1;
第二轮次判断步骤:接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则执行第三延时生成步骤;若否,则不进行反馈;
第三延时生成步骤:m大于等于n的C类从机生成随机数,根据随机数,产生不同的第三延时时间;
第三从机反馈步骤:C类从机根据第三延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且进行反馈的C类从机的轮次增加预设定值,本实施例中为n=n+1;
第三反馈判断步骤:判断主机在第三预设反馈时间内,是否接受到反馈指令,若是,则执行第二冲突判断步骤;若否,则执行主机轮次判断步骤;
主机轮次判断步骤:判断主机轮次是否大于等于一,若是,则执行第一未分配地址判断步骤;若否,则执行第三地址抢占指令下发步骤;
第三地址抢占指令下发步骤:主机向C类从机下发地址抢占指令,且主机的轮次减少预设定值,本实施例中为n=n-1,并执行第二轮次判断步骤;
第一地址分配步骤:主机给发送反馈指令的C类从机分配地址;
第一从机反馈步骤:C类从机获得地址,并存储获得的地址,向主机反馈存储成功指令;
第一地址更新步骤:主机更新地址分配情况;
第三未分配地址判断步骤:判断是否存在未分配的地址,若是,则执行第四地址抢占指令下发步骤;若否,则执行主机结束分配步骤;
第四地址抢占指令下发步骤:主机向未分配到地址的C类从机下发地址抢占指令,且主机的轮次不变n=n,并执行第二轮次判断步骤。以一个主机连接四个从机为例:四个从机:D1、D2、D3和D4均为B类从机,主机第一次广播地址抢占指令,四个从机产生的随机数相同,因此产生的第一延时时间也相同,则进行反馈冲突调节步骤调节冲突;D1、D2、D3和D4的轮次分别为:m1=1、m2=1、m3=1和m4=1;主机的轮次为n=1;此时四个从机均为C类从机,主机向四个C类从机下发地址抢占指令;四个C类从机接收到地址抢占指令,此时m1=1、m2=1、m3=1和m4=1均大于等于n=1;则四个从机均生成随机数,产生不同的第二延时时间;假设D1和D2产生的第二延时时间相同且最短,则D1和D2进行反馈,且m1=1+1=2,m2=1+1=2;D3和D4不进行反馈;主机在1秒内接受到反馈指令,主机判断是否接受到多条地址反馈指令,若是,则执行第二地址抢占指令下发步骤;若否,则执行第一地址分配步骤;因为主机接收到D1和D2的地址反馈指令,所以主机向D1和D2下发地址抢占指令,且主机的轮次增加为n=1+1=2;判断D1和D2的m是否大于等于n,此时m1=2和m2=2均大于等于n=2,则D1和D2都生成随机数,产生不同的第二延时时间,假设D1产生的第二延时时间最短,则D1进行反馈,且m1=2+1=3,D2不进行反馈,判断主机在1秒内,是否接受到反馈指令,若是,则判断主机在一秒内,是否接受到反馈指令,若否,主机给D1分配地址,再判断是否还有未分配的地址,若是,则再下发地址抢占指令,且n不变n=2,此时只有m2满足大于等于n的要求,因此主机会给D2分配地址。D1和D2的地址分配完成后,D3和D4存在反馈冲突,并且此时m3=1和m4=1均小于n=1,此时判断n是否小于等于1,若不小于等于1,则n=2-1=1,此时m3=1和m4=1等于n=1,在进行类似D1和D2的地址分配步骤,是D3和D4获得地址。
分配地址步骤:主机根据地址分配情况,对发送反馈指令的B类从机分配地址,B类从机获得地址后,向主机反馈存储成功指令,主机更新地址分配情况;具体包括如下步骤:
第四未分配地址判断步骤:主机根据地址分配情况,判断是否还有未分配的地址,若是,则执行第二地址分配步骤;若否,则提示地址已分配完;
第二地址分配步骤:主机给发送反馈指令的B类从机分配地址;
第二从机反馈步骤:B类从机获得地址,并存储获得的地址,向主机反馈存储成功指令;从机的指示灯状态变换,提示用户该从机成功完成分配;
第二地址更新步骤:主机更新地址分配情况。
第二未分配地址判断步骤:判断是否存在未分配的地址,若是,则执行主机广播步骤;若否,则执行主机结束分配步骤;
主机结束分配步骤:主机广播退出地址分配模式指令,并退出地址分配模式,进入正常工作模式;RS485系统中主机退出地址分配模式,主机的指示灯状态变换,提示用户主机退出分配模式;
从机结束分配步骤:B类从机接收退出分配指令,退出地址分配模式,进入正常工作模式;RS485系统中从机退出地址分配模式,从机的指示灯状态变换,提示用户从机退出分配模式。全程无需设置拨码开关等元器件,即可确定从机的地址,降低了成本,并且整个流程操作简单,无需人工逐一设置地址,自动的对所有从机进行地址分配,并且解决了分配过程中地址抢占冲突的问题,保证地址分配过程的快速进行。
本实施还提供一种自动分配地址的系统,采用上述自动分配地址的方法。
实施例二
本实施例提供一种自动分配地址的装置,应用于主机与若干个从机连接的主从系统中,系统如图3所示,从机未获得地址前,均设置有默认地址,所述默认地址为特殊值,其中默认地址即不会在地址分配中出现的地址,每个RS485系统中的从机在出厂时,其地址都是默认值,该默认值可以是0xFF,或者其他厂家自定义的地址,都需要默认地址为特殊值,即RS485系统中正常分配地址时,不会被分配或者出现的地址。
本装置包括:输入模块、接收模块、查询模块、第一地址未分配判断模块、广播模块、指令接收模块、第一反馈判断模块、第一延时生成模块、第一从机反馈模块、第一冲突判断模块、反馈冲突调节模块、分配地址模块、存储模块和第二未分配地址判断模块;
输入模块,用于输入地址分配模式信号;可设置在主机中;
接收模块,用于接收地址分配模式信号,使主机进入地址分配模式;地址分配模式信号,包括:地址扩展分配模式信号和地址重新分配模式信号;接收模块,还用于接收地址扩展分配模式信号,使主机进入地址扩展分配模式,并触发广播模块广播地址扩展分配指令;还用于接收地址重新分配模式信号,使主机进入地址重新分配模式,并触发广播模块广播地址重新分配指令;可设置在主机中;
查询模块,用于主机查询地址分配情况;可设置在主机中;
广播模块,用于主机完成查询后,广播分配指令;还用于广播退出地址分配模式指令,并使主机退出地址分配模式,进入正常工作模式;还用于广播地址抢占指令;其中分配指令,包括:地址扩展分配指令和地址重新分配指令;广播模块还用于广播地址扩展分配指令和广播地址重新分配指令;可设置在主机中;
第一地址未分配判断模块,用于根据地址分配情况,判断主机是否还有未分配的地址,若是,则触发广播模块广播地址抢占指令;若否,则提示地址已分配完,并触发广播模块广播退出地址分配模式指令;可设置在主机中;
指令接收模块,用于B类从机接收分配指令,使B类从机进入地址分配模式;还用于B类从机接收地址扩展分配指令,使B类从机进入地址扩展分配模式;还用于A类从机接收地址重新分配指令,使A类从机清除地址信息,恢复为B类从机,且B类从机进入地址重新分配模式;可设置在从机中;指令接收模,还用于接收地址抢占指令后触发第一延时生成模块;还B类从机接收退出分配模式指令,使B类从机退出地址分配模式,进入正常工作模式;
第一延时生成模块,用于B类从机接收地址抢占指令,生成随机数,根据随机数,产生不同的第一延时时间;可设置在从机中;
第一从机反馈模块,用于B类从机根据第一延时时间,进行反馈,若存在B类从机进行反馈,则其他B类从机停止本次反馈;可设置在从机中;
第一反馈判断模块,用于判断主机在第一预设反馈时间内,是否接受到反馈指令,若是,则触发第一冲突判断模块;若否,则触发广播模块广播退出地址分配模式指令;可设置在主机中;
第一冲突判断模块,用于判断主机是否接受到多条地址反馈指令,若是,则触发反馈冲突调节模块;若否,则触发分配地址模块;可设置在主机中;
反馈冲突调节模块,用于对主机和C类从机分别进行轮次设置,并根据轮次,循环进行地址分配,每当一个C类从机均获得地址后,均根据地址分配情况,判断主机是否还有未分配的地址,若是,则继续循环进行地址分配;若否,则触发广播模块广播退出地址分配模式指令;若发生反馈冲突的C类从机均获得地址,则触发第一地址未分配判断模块;
具体的,反馈冲突调节模块,包括:从机轮次设置子模块、第一地址抢占指令下发子模块、第二反馈判断子模块、第一轮次判断子模块、第二延时生成子模块、第二从机反馈子模块、第二冲突判断子模块、第二地址抢占指令下发子模块、第三反馈判断子模块、第二轮次判断子模块、第三延时生成子模块、第三从机反馈子模块、主机轮次判断子模块、第三地址抢占指令下发子模块、第三未分配地址判断子模块、第一地址分配子模、存储模块和第四地址抢占指令下发子模块;
从机轮次设置子模块,用于设置C类从机的轮次为预设从机轮次值,本实施例中为m=1;
第一地址抢占指令下发子模块,用于向C类从机下发地址抢占指令,并设置主机的轮次为预设主机轮次值,本实施例中为n=1;
第一轮次判断子模块,用于接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则触发第二延时生成子模块;若否,则不进行反馈;
第二延时生成子模块,用于使m大于等于n的C类从机生成随机数,根据随机数,产生不同的第二延时时间;
第二从机反馈子模块,用于C类从机根据第二延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且使进行反馈的C类从机的轮次增加预设定值,本实施例中为m=m+1;
第二反馈判断子模块,用于判断主机在第二预设反馈时间内,是否接受到反馈指令,若是,则触发第二冲突判断子模块;若否,则触发广播模块广播地址抢占指令;
第二冲突判断子模块,用于判断主机是否接受到多条地址反馈指令,若是,则触发第二地址抢占指令下发子模块;若否,则触发第一地址分配子模;
第二地址抢占指令下发子模块,用于向发送反馈指令的C类从机下发地址抢占指令,且使主机的轮次增加预设定值,本实施例中为n=n+1;
第二轮次判断子模块,用于接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则触发第二延时生成子模块;若否,则不进行反馈;
第三延时生成子模块:用于使m大于等于n的C类从机生成随机数,根据随机数,产生不同的第三延时时间;
第三从机反馈子模块:用于C类从机根据第三延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且进行反馈的C类从机的轮次增加预设定值;
第三反馈判断子模块,用于判断主机在第三预设反馈时间内,是否接受到反馈指令,若是,则触发第二冲突判断子模块;若否,则触发主机轮次判断子模块;
主机轮次判断子模块,用于判断主机轮次是否大于等于一,若是,则触发第一地址未分配判断模块;若否,则触发第三地址抢占指令下发子模块;
第三地址抢占指令下发子模块,用于向C类从机下发地址抢占指令,且使主机的轮次减少预设定值,本实施例中为n=n-1,并触发第二轮次判断子模块;
第一地址分配子模,用于主机根据地址分配情况,主机给发送反馈指令的C类从机分配地址;还用于根据C类从机反馈的存储成功指令,更新地址分配情况;
存储模块,用于C类从机获得地址后,并存储获得的地址,向主机反馈存储成功指令;
第三未分配地址判断子模块,用于根据判断是否存在未分配的地址,若是,则触发第四地址抢占指令下发模块;若否,则触发广播模块广播退出地址分配模式指令;可设置在从机中;
第四地址抢占指令下发子模块,用于主机向未分配到地址的C类从机下发地址抢占指令,且主机的轮次不变n=n,并触发第二轮次判断子模块;
分配地址模块,用于主机根据地址分配情况,对发送反馈指令的B类从机分配地址;还用于根据反馈的存储成功指令,更新地址分配情况,并触发第二未分配地址判断模块;
具体的,分配地址模块,包括:第五未分配地址判断子模块和第二地址分配子模块
第五未分配地址判断子模块,用于根据地址分配情况,判断主机是否还有未分配的地址,若是,则触发第二地址分配子模块;若否,则提示地址已分配完;
第二地址分配子模块,用于主机根据地址分配情况,主机给发送反馈指令的B类从机分配地址;还用于根据B类从机反馈的存储成功指令,更新地址分配情况;
存储模块,还用于B类从机获得地址后,存储获得的地址,并向主机反馈存储成功指令,
第二未分配地址判断模块,用于根据地址分配情况,判断是否存在未分配的地址,若是,则触发广播模块广播地址抢占指令;若否,则触发广播模块广播退出地址分配模式指令。
本装置各模块可设置多个,并分别设置在主机和从机中,可直接利用主机和从机线现有单片机进行设置,本装置进行地址分配无需设置拨码开关等元器件,即可确定从机的地址,降低了成本,并且整个流程操作简单,无需人工逐一设置地址,自动的对所有从机进行地址分配,并且解决了分配过程中地址抢占冲突的问题,保证地址分配过程的快速进行。
以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
Claims (10)
1.一种自动分配地址的方法,包括:连接步骤:主机与若干个从机进行连接;
主机启动分配步骤:输入地址分配模式信号,主机接收到地址分配模式信号,主机进入地址分配模式;
查询步骤:主机查询地址分配情况;
其特征在于:还包括:
从机启动分配步骤:完成查询后,主机广播分配指令,B类从机接收到分配指令后,进入地址分配模式,A类从机地址信息不改变;
第一未分配地址判断步骤:主机根据地址分配情况,判断主机是否还有未分配的地址,若是,则执行主机广播步骤;若否,则提示地址已分配完,并执行主机结束分配步骤;
主机广播步骤:主机广播地址抢占指令;
第一延时生成步骤:B类从机接收地址抢占指令,生成随机数,根据随机数,产生不同的第一延时时间;
第一从机反馈步骤:B类从机根据第一延时时间,进行反馈,若存在B类从机进行反馈,则其他B类从机停止本次反馈;
第一反馈判断步骤:判断主机在第一预设反馈时间内,是否接受到反馈指令,若是,则执行第一冲突判断步骤;若否,则执行主机结束分配步骤;
第一冲突判断步骤:主机判断是否接受到多条地址反馈指令,若是,则执行反馈冲突调节步骤;若否,则执行分配地址步骤;
反馈冲突调节步骤:对主机和C类从机分别进行轮次设置,并根据轮次,循环进行地址分配,每当一个C类从机均获得地址后,均根据地址分配情况,判断主机是否还有未分配的地址,若是,则继续循环进行地址分配;若否,则执行主机结束分配步骤;若发生反馈冲突的C类从机均获得地址,则执行第一未分配地址判断步骤;
分配地址步骤:主机根据地址分配情况,对发送反馈指令的B类从机分配地址,B类从机获得地址后,向主机反馈存储成功指令,主机更新地址分配情况;
第二未分配地址判断步骤:判断主机是否存在未分配的地址,若是,则执行主机广播步骤;若否,则执行主机结束分配步骤;
主机结束分配步骤:主机广播退出地址分配模式指令,并退出地址分配模式,进入正常工作模式;
从机结束分配步骤:B类从机接收退出分配指令,退出地址分配模式,进入正常工作模式。
2.根据权利要求1所述的自动分配地址的方法,其特征在于:所述地址分配模式信号,包括:地址扩展分配模式信号和地址重新分配模式信号;
所述分配指令,包括:地址扩展分配指令和地址重新分配指令;
所述主机启动分配步骤,还包括:根据地址分配模式信号不同,主机进入不同的地址分配模式;若主机接收到地址扩展分配模式信号,则进入地址扩展分配模式;若主机接收到地址重新分配模式信号,则进入地址重新分配模式;
所述从机启动分配步骤,还包括:完成查询后,处于地址扩展分配模式的主机广播地址扩展分配指令,B类从机接收到地址扩展分配指令后,进入地址扩展分配模式,A类从机地址信息不改变;处于地址重新分配模式的主机执行地址重新分配步骤;
地址重新分配步骤:地址重新分配模式下,主机向从机下发从机地址重新分配指令;
地址复位步骤:A类从机根据接收到的从机地址重新分配指令,清除地址信息,恢复为B类从机,且B类从机进入地址重新分配模式。
3.根据权利要求1所述的自动分配地址的方法,其特征在于:还所述反馈冲突调节步骤,包括:
从机轮次设置步骤:C类从机的轮次m设置为预设从机轮次值;
第一地址抢占指令下发步骤:主机向C类从机下发地址抢占指令,且主机的轮次n设置为预设主机轮次值;
第一轮次判断步骤:接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则执行第二延时生成步骤;若否,则不进行反馈;
第二延时生成步骤:m大于等于n的C类从机生成随机数,根据随机数,产生不同的第二延时时间;
第二从机反馈步骤:C类从机根据第二延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且进行反馈的C类从机的轮次增加预设定值;
第二反馈判断步骤:判断主机在第二预设反馈时间内,是否接受到反馈指令,若是,则执行第二冲突判断步骤;若否,则执行主机广播步骤;
第二冲突判断步骤:主机判断是否接受到多条地址反馈指令,若是,则执行第二地址抢占指令下发步骤;若否,则执行第一地址分配步骤;
第二地址抢占指令下发步骤:主机向发送反馈指令的C类从机下发地址抢占指令,且主机的轮次增加预设定值;
第二轮次判断步骤:接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则执行第三延时生成步骤;若否,则不进行反馈;
第三延时生成步骤:m大于等于n的C类从机生成随机数,根据随机数,产生不同的第三延时时间;
第三从机反馈步骤:C类从机根据第三延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且进行反馈的C类从机的轮次增加预设定值;
第三反馈判断步骤:判断主机在第三预设反馈时间内,是否接受到反馈指令,若是,则执行第二冲突判断步骤;若否,则执行主机轮次判断步骤;
主机轮次判断步骤:判断主机轮次是否大于等于预设主机轮次值,若是,则执行第一未分配地址判断步骤;若否,则执行第三地址抢占指令下发步骤;
第三地址抢占指令下发步骤:主机向C类从机下发地址抢占指令,且主机的轮次减少预设定值,并执行第二轮次判断步骤;
第一地址分配步骤:主机给发送反馈指令的C类从机分配地址;
第一从机反馈步骤:C类从机获得地址,并存储获得的地址,向主机反馈存储成功指令;
第一地址更新步骤:主机更新地址分配情况;
第三未分配地址判断步骤:判断是否存在未分配的地址,若是,则执行第四地址抢占指令下发步骤;若否,则执行主机结束分配步骤;
第四地址抢占指令下发步骤:主机向未分配到地址的C类从机下发地址抢占指令,且主机的轮次不变n=n,并执行第二轮次判断步骤。
4.根据权利要求1所述的自动分配地址的方法,其特征在于:所述分配地址步骤,包括:
第五未分配地址判断步骤:主机根据地址分配情况,判断是否还有未分配的地址,若是,则执行第二地址分配步骤;若否,则提示地址已分配完;
第二地址分配步骤:主机给发送反馈指令的B类从机分配地址;
第二从机反馈步骤:B类从机获得地址,并存储获得的地址,向主机反馈存储成功指令;
第二地址更新步骤:主机更新地址分配情况。
5.根据权利要求3所述的自动分配地址的方法,其特征在于:所述进行反馈,包括:从机向主机发送请求地址分配指令。
6.根据权利要求2所述的自动分配地址的方法,其特征在于:所述B类从机未获得地址前,均设置有默认地址,所述默认地址为特殊值。
7.一种自动分配地址的装置,应用于主机与若干个从机连接的主从系统中,其特征在于:包括:
输入模块,用于输入地址分配模式信号;
接收模块,用于接收地址分配模式信号,使主机进入地址分配模式;
查询模块,用于主机查询地址分配情况;
广播模块,用于主机完成查询后,广播分配指令;还用于广播退出地址分配模式指令,并使主机退出地址分配模式,进入正常工作模式;还用于广播地址抢占指令;
第一地址未分配判断模块,用于根据地址分配情况,判断主机是否还有未分配的地址,若是,则触发广播模块广播地址抢占指令;若否,则提示地址已分配完,并触发广播模块广播退出地址分配模式指令;
指令接收模块,用于B类从机接收分配指令,使B类从机进入地址分配模式;还用于接收地址抢占指令后触发第一延时生成模块;还B类从机接收退出分配模式指令,使B类从机退出地址分配模式,进入正常工作模式;
第一延时生成模块,用于B类从机接收地址抢占指令,生成随机数,根据随机数,产生不同的第一延时时间;
第一从机反馈模块,用于B类从机根据第一延时时间,进行反馈,若存在B类从机进行反馈,则其他B类从机停止本次反馈;
第一反馈判断模块,用于判断主机在第一预设反馈时间内,是否接受到反馈指令,若是,则触发第一冲突判断模块;若否,则触发广播模块广播退出地址分配模式指令;
第一冲突判断模块,用于判断主机是否接受到多条地址反馈指令,若是,则触发反馈冲突调节模块;若否,则触发分配地址模块;
反馈冲突调节模块,用于对主机和C类从机分别进行轮次设置,并根据轮次,循环进行地址分配,每当一个C类从机均获得地址后,均根据地址分配情况,判断主机是否还有未分配的地址,若是,则继续循环进行地址分配;若否,则触发广播模块广播退出地址分配模式指令;若发生反馈冲突的C类从机均获得地址,则触发第一地址未分配判断模块;
分配地址模块,用于主机根据地址分配情况,对发送反馈指令的B类从机分配地址;还用于根据反馈的存储成功指令,更新地址分配情况,并触发第二未分配地址判断模块;
存储模块,用于B类从机获得地址后,存储获得的地址,并向主机反馈存储成功指令,
第二未分配地址判断模块,用于根据地址分配情况,判断是否存在未分配的地址,若是,则触发广播模块广播地址抢占指令;若否,则触发广播模块广播退出地址分配模式指令。
8.根据权利要求7所述的自动分配地址的装置,其特征在于:所述地址分配模式信号,包括:地址扩展分配模式信号和地址重新分配模式信号;
所述分配指令,包括:地址扩展分配指令和地址重新分配指令;
所述广播模块,还用于广播地址扩展分配指令和广播地址重新分配指令;
所述接收模块,还用于接收地址扩展分配模式信号,使主机进入地址扩展分配模式,并触发广播模块广播地址扩展分配指令;还用于接收地址重新分配模式信号,使主机进入地址重新分配模式,并触发广播模块广播地址重新分配指令;
所述指令接收模块,还用于B类从机接收地址扩展分配指令,使B类从机进入地址扩展分配模式;还用于A类从机接收地址重新分配指令,使A类从机清除地址信息,恢复为B类从机,且B类从机进入地址重新分配模式。
9.根据权利要求7所述的自动分配地址的装置,其特征在于:所述反馈冲突调节模块,包括:
从机轮次设置子模块,用于设置C类从机的轮次m等于预设从机轮次值;
第一地址抢占指令下发子模块,用于向C类从机下发地址抢占指令,并设置主机的轮次n等于预设主机轮次值;
第一轮次判断子模块,用于接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则触发第二延时生成子模块;若否,则不进行反馈;
第二延时生成子模块,用于使m大于等于n的C类从机生成随机数,根据随机数,产生不同的第二延时时间;
第二从机反馈子模块,用于C类从机根据第二延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且使进行反馈的C类从机的轮次增加预设定值;
第二反馈判断子模块,用于判断主机在第二预设反馈时间内,是否接受到反馈指令,若是,则触发第二冲突判断子模块;若否,则触发广播模块广播地址抢占指令;
第二冲突判断子模块,用于判断主机是否接受到多条地址反馈指令,若是,则触发第二地址抢占指令下发子模块;若否,则触发第一地址分配子模;
第二地址抢占指令下发子模块,用于向发送反馈指令的C类从机下发地址抢占指令,且使主机的轮次增加预设定值;
第二轮次判断子模块,用于接收到地址抢占指令的C类从机,判断C类从机的m是否大于等于n,若是,则触发第二延时生成子模块;若否,则不进行反馈;
第三延时生成子模块:用于使m大于等于n的C类从机生成随机数,根据随机数,产生不同的第三延时时间;
第三从机反馈子模块:用于C类从机根据第三延时时间,进行反馈,若存在C类从机进行反馈,则其他C类从机停止本次反馈,且进行反馈的C类从机的轮次增加预设定值;
第三反馈判断子模块,用于判断主机在第三预设反馈时间内,是否接受到反馈指令,若是,则触发第二冲突判断子模块;若否,则触发主机轮次判断子模块;
主机轮次判断子模块,用于判断主机轮次是否大于等于一,若是,则触发第一地址未分配判断模块;若否,则触发第三地址抢占指令下发子模块;
第三地址抢占指令下发子模块,用于向C类从机下发地址抢占指令,且使主机的轮次减少预设定值,并触发第二轮次判断子模块;
第一地址分配子模,用于主机根据地址分配情况,主机给发送反馈指令的C类从机分配地址;还用于根据C类从机反馈的存储成功指令,更新地址分配情况;
存储模块,还用于C类从机获得地址后,并存储获得的地址,向主机反馈存储成功指令;
第三未分配地址判断子模块,用于根据判断是否存在未分配的地址,若是,则触发第四地址抢占指令下发模块;若否,则触发广播模块广播退出地址分配模式指令;
第四地址抢占指令下发子模块,用于主机向未分配到地址的C类从机下发地址抢占指令,且主机的轮次不变n=n,并触发第二轮次判断子模块;
所述分配地址模块,包括:
第五未分配地址判断子模块,用于根据地址分配情况,判断主机是否还有未分配的地址,若是,则触发第二地址分配子模块;若否,则提示地址已分配完;
第二地址分配子模块,用于主机根据地址分配情况,主机给发送反馈指令的B类从机分配地址;还用于根据B类从机反馈的存储成功指令,更新地址分配情况。
10.一种自动分配地址的系统,其特征在于:用于实现如权利要求1至6中任一项所述的自动分配地址的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111443807.9A CN114238189B (zh) | 2021-11-30 | 2021-11-30 | 一种自动分配地址的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111443807.9A CN114238189B (zh) | 2021-11-30 | 2021-11-30 | 一种自动分配地址的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114238189A true CN114238189A (zh) | 2022-03-25 |
CN114238189B CN114238189B (zh) | 2024-01-30 |
Family
ID=80752151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111443807.9A Active CN114238189B (zh) | 2021-11-30 | 2021-11-30 | 一种自动分配地址的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238189B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212231A (zh) * | 2006-12-30 | 2008-07-02 | 美国博通公司 | 单个设备内通信的方法、通信装置及设备内通信的方法 |
US20130170492A1 (en) * | 2010-08-06 | 2013-07-04 | Dorian Lu | Communication method and system for a novel network |
CN108462988A (zh) * | 2018-05-16 | 2018-08-28 | 南京蓝园精瑞电气有限公司 | 一种低功耗的无线射频网络组网方法 |
US20180357199A1 (en) * | 2017-06-12 | 2018-12-13 | Qualcomm Incorporated | Slave-to-slave communication in i3c bus topology |
CN109981821A (zh) * | 2019-04-10 | 2019-07-05 | 深圳市信锐网科技术有限公司 | 物联网总线地址的分配方法、系统、装置、设备及介质 |
CN111147619A (zh) * | 2019-12-20 | 2020-05-12 | 海丰通航科技有限公司 | 本地实现rs485从机设备自动分配地址的方法和系统 |
CN111711471A (zh) * | 2020-06-12 | 2020-09-25 | 江苏集能易新能源技术有限公司 | 电力线载波通信自组网实现方法 |
CN112104760A (zh) * | 2020-08-13 | 2020-12-18 | 四川虹美智能科技有限公司 | 地址码分配方法、主机及从机 |
CN112689028A (zh) * | 2020-12-15 | 2021-04-20 | 上海宏力达信息技术股份有限公司 | 一种基于rs485实现自动分配地址的方法 |
CN115314470A (zh) * | 2022-06-29 | 2022-11-08 | 广东南控云图科技有限公司 | 一种rs-485组网通信地址自动分配方法、主机、从机及系统 |
-
2021
- 2021-11-30 CN CN202111443807.9A patent/CN114238189B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212231A (zh) * | 2006-12-30 | 2008-07-02 | 美国博通公司 | 单个设备内通信的方法、通信装置及设备内通信的方法 |
US20130170492A1 (en) * | 2010-08-06 | 2013-07-04 | Dorian Lu | Communication method and system for a novel network |
US20180357199A1 (en) * | 2017-06-12 | 2018-12-13 | Qualcomm Incorporated | Slave-to-slave communication in i3c bus topology |
CN108462988A (zh) * | 2018-05-16 | 2018-08-28 | 南京蓝园精瑞电气有限公司 | 一种低功耗的无线射频网络组网方法 |
CN109981821A (zh) * | 2019-04-10 | 2019-07-05 | 深圳市信锐网科技术有限公司 | 物联网总线地址的分配方法、系统、装置、设备及介质 |
CN111147619A (zh) * | 2019-12-20 | 2020-05-12 | 海丰通航科技有限公司 | 本地实现rs485从机设备自动分配地址的方法和系统 |
CN111711471A (zh) * | 2020-06-12 | 2020-09-25 | 江苏集能易新能源技术有限公司 | 电力线载波通信自组网实现方法 |
CN112104760A (zh) * | 2020-08-13 | 2020-12-18 | 四川虹美智能科技有限公司 | 地址码分配方法、主机及从机 |
CN112689028A (zh) * | 2020-12-15 | 2021-04-20 | 上海宏力达信息技术股份有限公司 | 一种基于rs485实现自动分配地址的方法 |
CN115314470A (zh) * | 2022-06-29 | 2022-11-08 | 广东南控云图科技有限公司 | 一种rs-485组网通信地址自动分配方法、主机、从机及系统 |
Non-Patent Citations (1)
Title |
---|
张垒 等: ""基于随机数发生器的设备地址自动分配方法"", 《总线与网络》, pages 36 - 39 * |
Also Published As
Publication number | Publication date |
---|---|
CN114238189B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100633666B1 (ko) | 홈 네트워크 시스템 및 그 제어 방법 | |
CN108521474B (zh) | 多联式控制系统的地址竞争方法 | |
CN108989169B (zh) | 基于can总线的模块智能自组网的方法 | |
EP0473913A2 (en) | Method and apparatus for providing a service pool of virtual machines for a plurality of VM users | |
CN102110860B (zh) | 分布式电池管理系统及其标识分配方法 | |
CN110474993B (zh) | 节点编址系统、方法及装置 | |
CN104950829A (zh) | 一种总线系统功耗控制方法及装置 | |
CN116319683A (zh) | 分配组网地址的方法、系统、装置以及电子设备 | |
US10645771B1 (en) | Method for assigning controllable luminaire devices to control groups | |
CN114238189A (zh) | 一种自动分配地址的方法、装置和系统 | |
CN112929249A (zh) | Rs-485总线多机通信地址自动分配方法、装置和系统 | |
CN107026919B (zh) | 一种确定节点设备网络地址的方法、节点设备和控制系统 | |
WO2024078634A1 (zh) | 服务管理方法、系统、装置、电子设备及存储介质 | |
CN112511662B (zh) | 系统通讯地址生成、分配方法和装置以及空调系统 | |
CN117118951A (zh) | 一种一主多从总线通用从机地址动态分配的方法 | |
CN108599299A (zh) | 大功率的充电控制方法、充电系统及控制单元 | |
CN112084126A (zh) | 一种rs485自动地址生成方法 | |
CN108881514B (zh) | 总线系统的地址分配方法、通讯设备和总线系统 | |
CN109873741B (zh) | 一种单线共享总线协议的系统和工作方法 | |
CN112433855A (zh) | 一种资源分配方法、装置、服务器 | |
CN117614940B (zh) | 一种串行通信设备地址自动配置的方法及系统 | |
CN111313719B (zh) | 轴号分配方法、整流设备、逆变设备及多传变频器 | |
TWI827286B (zh) | Can總線系統及其自動分配節點站號的方法 | |
EP4135268A1 (en) | Methods, systems and devices for coordinating a plurality of nodes in a 10base-t1s ethernet network | |
TW202416142A (zh) | Can總線系統及其自動分配節點站號的方法 |
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 |