CN105338129A - 自动分址方法、显示终端和模块终端 - Google Patents
自动分址方法、显示终端和模块终端 Download PDFInfo
- Publication number
- CN105338129A CN105338129A CN201510771758.XA CN201510771758A CN105338129A CN 105338129 A CN105338129 A CN 105338129A CN 201510771758 A CN201510771758 A CN 201510771758A CN 105338129 A CN105338129 A CN 105338129A
- Authority
- CN
- China
- Prior art keywords
- address
- terminal
- modular
- random number
- display terminal
- 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 67
- 238000012790 confirmation Methods 0.000 claims abstract description 67
- 238000009826 distribution Methods 0.000 claims abstract description 28
- 238000012544 monitoring process Methods 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims description 65
- 230000005540 biological transmission Effects 0.000 claims description 43
- 238000010200 validation analysis Methods 0.000 claims description 14
- 241001269238 Data Species 0.000 claims description 12
- 238000004891 communication Methods 0.000 abstract description 25
- 238000012795 verification Methods 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000013078 crystal Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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
- H04L61/5046—Resolving address allocation conflicts; Testing of addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种自动分址方法、显示终端和模块终端。其中,该方法包括:模块终端在监听完显示终端发送的一轮地址分配数据后,根据地址分配数据为其分配地址,得到目标地址;模块终端向总线发送目标地址,以供显示终端进行地址验证;模块终端监听显示终端发送的确认请求;如果监听到确认请求,则将目标地址作为其自身的地址;如果没有监听到确认请求,则返回在监听完显示终端发送的一轮地址分配数据后根据地址分配数据为其分配地址的步骤。本发明解决了由于人工调试时拨码漏拨或拨错导致机组出现通讯故障的技术问题。
Description
技术领域
本发明涉及空调器领域,具体而言,涉及一种自动分址方法、显示终端和模块终端。
背景技术
对于模块化的空调冷水机组,控制系统中各模块之间采用拨码开关来进行地址区分,出厂时拨码开关拨的地址都一样,在安装调试时人工进行地址的拨码。
通常拨码开关表示的是二进制码,需要安装调试人员会利用二进制码来调节拨码开关,但是调试人员的参差不齐,有时会因为拨码漏拨或拨错导致机组出现通讯故障。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种自动分址方法、显示终端和模块终端,以至少解决由于人工调试时拨码漏拨或拨错导致机组出现通讯故障的技术问题。
根据本发明实施例的一个方面,提供了一种自动分址方法,包括:至少两个模块终端与显示终端通过无主从的CAN总线通信,所述方法包括:模块终端在监听完所述显示终端发送的一轮地址分配数据后,根据所述地址分配数据为其分配地址,得到目标地址;所述模块终端向所述总线发送所述目标地址,以供所述显示终端进行地址验证;所述模块终端监听所述显示终端发送的确认请求;如果监听到所述确认请求,则将所述目标地址作为其自身的地址;如果没有监听到所述确认请求,则返回在监听完所述显示终端发送的一轮地址分配数据后根据所述地址分配数据为其分配地址的步骤。
根据本发明实施例的另一方面,还提供了一种自动分址方法,包括:至少两个模块终端与显示终端通过无主从的CAN总线通信,所述方法包括:所述显示终端向所述总线发送一轮地址分配数据后,通过所述总线获取模块终端发送的响应数据,其中,所述响应数据携带目标模块终端为其自身分配的目标地址,所述目标模块终端为所述至少两个模块中的任意一个终端;所述显示终端根据获取到的响应数据验证所述目标模块终端是否成功分配地址;在所述目标模块终端的地址分配成功的情况下,所述显示终端根据所述目标地址发送分配成功的指示信息;在所述目标模块终端的地址分配失败的情况下,返回所述显示终端向所述总线发送一轮地址分配数据的步骤。
根据本发明实施例的另一方面,还提供了一种模块终端,包括至少两个模块终端与显示终端通过无主从的CAN总线通信,所述模块终端包括:分配单元,用于在监听完所述显示终端发送的一轮地址分配数据后,根据所述地址分配数据为其分配地址,得到目标地址;第一地址发送单元,用于向所述总线发送所述目标地址,以供所述显示终端进行地址验证;第一监听单元,用于监听所述显示终端发送的确认请求;确定单元,用于在监听到所述确认请求时,将所述目标地址作为其自身的地址;第一调用单元,用于在没有监听到所述确认请求时,调用所述分配单元。
根据本发明实施例的另一方面,还提供了一种显示终端,至少两个模块终端与显示终端通过无主从的CAN总线通信,所述显示终端包括:获取单元,用于向所述总线发送一轮地址分配数据后,通过所述总线获取模块终端发送的响应数据,其中,所述响应数据携带目标模块终端为其自身分配的目标地址,所述目标模块终端为所述至少两个模块中的任意一个终端;验证单元,用于根据获取到的响应数据验证所述目标模块终端是否成功分配地址;指示发送单元,用于在所述目标模块终端的地址分配成功的情况下,所述显示终端根据所述目标地址发送分配成功的指示信息;数据调用单元,用于在所述目标模块终端的地址分配失败的情况下,调用所述获取单元。
在本发明实施例中,采用模块终端在监听完显示终端发送的一轮地址分配数据后,根据地址分配数据为其分配地址,得到目标地址;模块终端向总线发送目标地址,以供显示终端进行地址验证;模块终端监听显示终端发送的确认请求;如果监听到确认请求,则将目标地址作为其自身的地址;如果没有监听到确认请求,则返回在监听完显示终端发送的一轮地址分配数据后根据地址分配数据为其分配地址的步骤的方式,解决了由于人工调试时拨码漏拨或拨错导致机组出现通讯故障的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的控制系统的示意图;
图2是根据本发明实施例1的自动分址方法的流程图;
图3是根据本发明实施例1优选的自动分址方法的流程图;
图4是根据本发明实施例2的自动分址方法的流程图;
图5是根据本发明实施例2优选的自动分址方法的流程图;
图6是根据本发明实施例3的模块终端的示意图;
图7是根据本发明实施例4的显示终端的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种自动分址方法的方法实施例,该自动分址方法可以应用在如图1所示的控制系统中。如图1所示,至少两个模块终端与显示终端通过无主从的CAN总线进行通讯,一个模块发出的数据能同时被该CAN总线中的其他模块接收。因此,当显示终端向总线发送数据时,模块终端都会监听到该数据并进行回复。同时,一个模块终端发出的数据也会被其他模块终端监听到。该实施例就是根据CAN总线的上述原理,多个模块终端都回复显示终端发送的地址分配数据,每个模块终端回复的延时时间可以通过随机数来决定,显示终端根据延时时间的时间差来错开各个模块终端的回复数据,从而实现了地址分配。
随机数产生说明:由于不同模块终端上使用的晶振个体是有差异的,每个晶振之间都有一定的基准频率偏差,使用晶振时钟产生的累加数就会随着时间的增加而有区别,使用时钟累加变量作为产生伪随机数的种子就使同一程序在不同的模块终端上获取的伪随机数的冲突概率较小,而且随着时间的不断向前推移,获取的伪随机数的冲突概率也越来越小,也就是多个模块终端之间采用相同延时时间的概率较小,能够快速为多个模块终端分配地址。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。实施例1中的步骤可以由模块终端来执行。
图2是根据本发明实施例1的自动分址方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,模块终端在监听完显示终端发送的一轮地址分配数据后,根据地址分配数据为其分配地址,得到目标地址。
步骤S204,模块终端向总线发送目标地址,以供显示终端进行地址验证。
步骤S206,模块终端监听显示终端发送的确认请求。
步骤S208,如果监听到确认请求,则将目标地址作为其自身的地址。如果没有监听到确认请求,则返回在监听完显示终端发送的一轮地址分配数据后根据地址分配数据为其分配地址的步骤。
模块终端能够通过CAN总线监听到显示终端发送给所有模块终端的地址分配数据,模块终端在监听到显示终端完成一轮地址分配数据的发送后,从没有被占用的地址中查找最小的地址作为目标地址。由于模块终端能够通过CAN总线监听到所有经过该CAN总线传输的数据,也包括其他模块发送给显示终端的地址,因此,模块终端能够分辨哪些地址已经占用,哪些地址没有被占用,并从没有被占用的地址中选择一个最小的一个作为自己的地址,得到目标地址。模块终端所采用的地址可以是二进制数字编码,可以根据CAN总线上连接的模块终端的数量来分配二进制数字编码的位数。即可选地,模块终端在监听完显示终端发送的一轮地址分配数据后,根据地址分配数据为其分配地址,得到目标地址包括:模块终端监听总线中传输的已占用地址的数据;模块终端根据已占用地址的数据从地址分配数据中查找未被使用的最小地址;模块终端将查找到的地址作为目标地址。
在模块终端为自己分配完地址之后,将分配的地址发送到CAN总线,这样CAN总线中的所有模块终端和显示终端都能够收到该地址。显示终端对该地址进行验证,以避免与其他模块终端的地址产生重复或者冲突,也能够使其他模块终端在选择地址避开该模块终端已经选择的地址。显示终端验证目标地址与其他模块的地址不重复时,发出确认请求以便模块终端知道其是否成功分配地址。如果根据确认请求指导模块终端的地址分配成功,则将目标地址作为其自身的地址,否则,重新监测显示终端发出的下一轮地址分配数据,重新获取分配数据并进行验证,直到其成功分配地址。显示终端向CAN总线发送多次地址分配数据,发送的次数与模块终端的个数相同,当向所有的模块终端都发送地址分配数据后,一轮地址分配数据发送完成。
在该实施例中,根据无主从CAN总线的数据可以由多个终端同时接收的原理,使得每个模块终端为自己分配地址,并且使其他模块终端知道哪些地址已经被占用,实现了自动分配地址,同时,采用显示终端和模块终端对模块终端分配的地址进行验证以保证模块终端分配地址的准确性,从而解决了现有技术中由于人工调试时拨码漏拨或拨错导致机组出现通讯故障的技术问题,进而达到了准确分址避免通讯故障的技术效果。
以图1为例进行说明。
显示终端A向模块终端B1、模块终端B2、……模块终端Bn分别发送地址分配数据,当模块终端B1监听到所有的地址分配数据都发送完毕之后,模块终端B1为自己分配地址。如果CAN总线中传输有模块终端B2的地址,则模块终端B1在监听到模块终端B2的已占用地址的信息,在分配地址时会避开从模块终端B2的地址,从而避免了与模块终端B2的地址相同而造成冲突。
显示终端A从CAN总线中接收到每个模块终端发送的地址,并验证是否有重复的地址,在没有重复的地址的情况下确定该轮地址分配成功,否则该轮地址分配失败,重新进行下一轮的地址分配。下一轮分配的方式与第一轮相同,具体步骤参考上述内容。如果模块终端B1的地址已经确定成功分配后,在下一轮分配地址时,模块终端B1将其地址发送给CAN总线,以便于其他模块终端生成地址。
可选地,在模块终端在监听完显示终端发送的一轮地址分配数据后,且在模块终端向总线发送目标地址之前,模块终端生成随机数;模块终端向总线发送目标地址包括:模块终端在达到延时时间时,向总线发送地址和随机数,其中,模块终端根据随机数生成延时时间。在多个模块终端为自己分配了相同的地址时,显示终端根据每个模块终端的随机数和回复数据的时间来确定哪个模块终端的地址分配成功,哪个模块终端的地址分配失败。模块终端在监听到显示终端发送的地址分配数据后生成随机数,并根据随机数决定延时时间。由于延时时间由随机数决定,在随机数相同的概率很小的情况下,延时时间相同的概率也很小,这就便于显示终端进行地址验证。延时时间的范围在0至22毫秒。
例如,模块终端B1的延时为2ms,其为自己分配的地址为01,模块终端B2的延时时间为4ms,其为自己分配的地址为11,则显示终端发送分配地址命令到CAN线后,模块终端在监听完一轮分配地址命令后,模块终端B1延时2ms将自己分配的地址01回复给显示终端,模块终端B2延时4ms将自己分配的地址11回复给显示终端。
可选地,如果监听到确认请求,则将目标地址作为其自身的地址包括:判断确认请求携带的随机数是否与模块终端生成的随机数一致;如果判断出确认请求携带的随机数与模块终端发送的随机数一致,确定模块终端的地址分配成功;如果判断出确认请求携带的随机数与模块终端发送的随机数不一致,确定模块终端的地址分配失败。
例如,模块终端B1的延时为2ms,随机数为2,其为自己分配的地址为01,模块终端B2的延时时间为4ms,随机数为4,其为自己分配的地址为10,则模块终端B1延时2ms将自己分配的地址01回复给显示终端,模块终端B2延时4ms将自己分配的地址10回复给显示终端。
显示终端收到模块终端B1和模块终端B2的地址,则显示终端向模块终端B1发送的地址01发送携带有随机数2的确认请求,向模块终端B2发送的地址10发送携带有随机数4的确认请求。模块终端B1接收到携带有随机数的确认请求后,判断确认请求携带的随机数是否为2,如果确认请求携带的随机数为2,则当前地址分配成功;如果确认请求携带的随机数不是2,则确定当前地址分配失败。模块终端B2的验证方法与模块终端B1相同,不再赘述。
需要说明的是,确认请求是在初步判断出模块终端分配地址成功的情况下,进一步验证地址分配是否成功,也就是说显示终端可以判断多个模块终端生成的地址是否有重复,模块终端可以进一步判断显示终端的确认请求是否准确,以确保不会出现地址分配错误的情况。没有收到携带有随机数的确认请求,而直接收到了下一轮地址分配数据,则确定当前的地址分配失败。
可选地,在确定模块终端的地址分配成功之后,方法包括:监听显示终端发送的随机数生成请求;判断随机数生成请求中是否携带有模块终端生成的随机数;在随机数生成请求中携带有模块终端生成的随机数时,模块终端向总线发送目标地址;在随机数生成请求中未携带模块终端生成的随机数时,返回在监听完显示终端发送的一轮地址分配数据后根据地址分配数据为其分配地址的步骤。
在显示终端发送完一轮地址分配数据之后,如果CAN总线上的模块终端没有全部都分配地址,则再次发送地址分配数据时,显示终端向模块终端发送的地址分配数据携带有该模块终端的随机数,模块终端接收到携带有随机数的地址分配数据时,向CAN总线发送其地址信息。如果模块终端收到的地址分配数据中没有携带其生成的随机数,则重新为自己分配地址。即上一轮的地址分配失败,需要重新分配地址。
在该实施例中,模块终端两次验证其分配的地址是否成功,第一次是接收到显示终端发送的确认请求,如果确认请求携带的随机数与其生成的随机数相同,则初步确定地址分配成功;第二次是再次接收到地址分配数据时,也可以说是再次接收到随机数产生请求时,如果携带有随机数,则确定地址分配成功,只需向CAN总线发送地址即可,如果没有携带随机数,则模块终端重新为自己分配地址并且生成随机数,按照第一次分配地址的方法重新分配地址并进行验证。每个模块终端都可以按照上述方法来自动分配地址,直至该CAN总线上的所有模块终端的地址都分配完成。由于两次验证地址是否成功分配,避免模块终端的地址分配错误或者没有分配所导致的通信故障,达到了准确分配地址避免通信故障的技术效果。同时,由于CAN总线传输的数据是连接在该总线上的所有模块终端共享的,提高了地址的分配速度。
结合图3说明模块终端的自动分址方法。
步骤S302,接收显示终端发送的地址分配数据帧。
步骤S304,监听完一轮地址分配数据帧,给本模块终端分配未被使用的最小地址。
步骤S306,延时随机时间,发送地址分配响应数据帧。模块终端生成随机数,根据随机数生成随机时间,延时随机时间后向显示终端返回响应数据帧。
步骤S308,接收显示终端发送的请求确认帧。
步骤S310,判断该帧内是否包含上次本模块发送的响应数据帧中的数据。如果是,则执行步骤S312,如果否,返回步骤S302。
步骤S312,回复显示终端地址确认帧,本模块终端地址分配成功。
实施例2
根据本发明实施例,提供了一种自动分址方法的方法实施例,该自动分址方法可以由图1所示的显示终端执行。显示终端可以说空调控制系统中的上位机。
图4是根据本发明实施例2的自动分址方法的流程图。如图4所示,该方法包括如下步骤:
步骤S402,显示终端向总线发送一轮地址分配数据后,通过总线获取模块终端发送的响应数据,其中,响应数据携带目标模块终端为其自身分配的目标地址,目标模块终端为至少两个模块中的任意一个终端。
步骤S404,显示终端根据获取到的响应数据验证目标模块终端是否成功分配地址。
步骤S406,在目标模块终端的地址分配成功的情况下,显示终端根据目标地址发送分配成功的指示信息。在目标模块终端的地址分配失败的情况下,返回显示终端向总线发送一轮地址分配数据的步骤。
显示终端向CAN总线发送地址分配数据,即向每个模块终端都发送随机数生成请求,并接收每个模块终端为自己生成的目标地址。显示终端验证各个模块终端发送的目标地址并进行验证。在验证通过后,向该目标地址发送分配成功的提示信息,否则重新发送地址分配数据,以让每个模块终端重新为自己分配地址。在一轮地址分配数据发送完成之后,可能有部分模块终端的地址能够成功确定,也可能全部模块终端的地址能够成功确定。如果有部分模块终端的地址能够成功确定,则再次发送一轮地址分配数据,直到剩余的所有模块终端的地址都能成功确定。
通过该实施例,显示终端发送地址分配数据后,每个模块终端都为自己分配地址,实现了自动分址,显示终端对模块终端分配的地址进行验证,保证了分配地址的不重复使得各个模块终端之间能够正常通信,从而解决了现有技术中由于人工调试时拨码漏拨或拨错导致机组出现通讯故障的技术问题,进而达到了准确分址避免通讯故障的技术效果。
可选地,其特征在于,响应数据携带有目标模块终端生成的随机数,显示终端根据获取到的响应数据验证目标模块终端是否成功分配地址包括:显示终端判断先接到的两个响应数据所携带的地址是否有重复;如果判断出先接到的两个响应数据所携带的地址有重复,则确定目标模块终端分配地址失败;如果判断出先接到的两个响应数据所携带的地址没有重复,则确定目标模块终端分配地址成功。
通常情况下,模块终端通过CAN总线传输其为自己分配的地址,其他模块终端在选择地址时会避开已经被选择的地址,因此,延时相同时间的模块终端可能会选择相同的地址,尤其在前两个模块终端发送的地址相同的情况下,后面的模块终端发送的地址也可能会出错,因此,在前两个模块终端发送的地址重复的情况下,确定本轮地址分配失败。
以图1为例进行说明。
显示终端A向模块终端B1、模块终端B2……模块终端Bn分别发送地址分配数据,当模块终端B1监听到所有的地址分配数据都发送完毕之后,模块终端B1为自己分配地址。如果CAN总线中传输有模块终端B2的地址,则模块终端B1在监听到模块终端B2的已占用地址的信息,在分配地址时会避开从模块终端B2的地址,从而避免了与模块终端B2的地址相同而造成冲突。
显示终端A从CAN总线中接收到每个模块终端发送的地址,并验证是否有重复的地址,在没有重复的地址的情况下确定该轮地址分配成功,否则该轮地址分配失败,重新进行下一轮的地址分配。下一轮分配的方式与第一轮相同,具体步骤参考上述内容。如果模块终端B1的地址已经确定成功分配后,在下一轮分配地址时,模块终端B1将其地址发送给CAN总线,以便于其他模块终端生成地址。
在多个模块终端为自己分配了相同的地址时,显示终端根据每个模块终端的延时时间来确定哪个模块终端的地址分配成功,哪个模块终端的地址分配失败。模块终端在监听到显示终端发送的地址分配数据后生成随机数,并根据随机数决定延时时间。由于延时时间由随机数决定,在随机数相同的概率很小的情况下,延时时间相同的概率也很小,这就便于显示终端进行地址验证。延时时间的范围在0至22毫秒。
例如,模块终端B1的延时为2ms,其为自己分配的地址为01,模块终端B2的延时时间为4ms,其为自己分配的地址为11,则模块终端B1在延时2ms后发送地址01,模块终端B2在延时4ms后发送地址11。显示终端确定模块终端B1和模块终端B2的地址不冲突,确定模块终端B1和模块终端B2成功分配地址。
如果模块终端B1和模块终端B2为自己分配的地址均为01,但是模块终端B1的延时为2ms,模块终端B2的延时时间为4ms,则确定模块终端B1的地址为01,模块终端B2的地址分配失败。如果模块终端B1和模块终端B2为自己分配的地址均为01,且延时均为2ms中,显示终端无法确定哪个模块终端的地址为01,因此,通过判断延时时间来确定模块终端的地址分配是否成功。
显示终端验证是否给不同的模块终端显示了相同的地址,来避免地址分配错误,在出现相同地址的情况下进一步验证延时时间,将同一地址分配给延时时间较短的模块终端,从而保证了模块终端的地址分配的正确性。
可选地,确定目标模块终端分配地址成功包括:显示终端根据模块终端的随机数生成确认请求,并将确认请求发送给目标地址,确认请求携带有模块终端生成的随机数;显示终端监听确认响应,其中,确认响应为目标地址对应的模块终端验证确认请求携带的随机数与该模块终端生成的随机数一致时生成的;在显示终端监听到确认响应时,确定目标模块终端分配地址成功;在显示终端没有接收到确认响应时,返回显示终端向总线发送一轮地址分配数据的步骤。
例如,模块终端B1的延时为2ms,随机数为2,其为自己分配的地址为01,模块终端B2的延时时间为4ms,随机数为4,其为自己分配的地址为01,则显示终端确定显示终端B1和显示终端B2的地址相同,然后进一步判断延时时间,由于模块终端B1的延时时间较短,则将地址01分配给模块终端B1。显示终端向模块终端B1发出确认请求,该确认请求中携带了随机数2,模块终端B1接收到确认请求后验证随机数2与其生成的随机数相同,则确认地址分配成功。由于模块终端B2的地址分配不成功,则显示终端在发送下一轮地址分配数据时,向模块终端B2发送地址分配数据。
显示终端在发送下一轮地址分配数据时,向模块终端B1发送携带有随机数的地址分配数据;向模块终端B2发送没有随机数的地址分配数据。模块终端B1向总线发送其已经分配的地址,而模块终端B2按照本实施例的上述步骤重新分配地址。
可选地,在显示终端监听到确认响应时,确定目标模块终端分配地址成功之后,方法还包括:显示终端判断至少两个模块终端是否全部完成地址分配;显示终端如果判断出至少两个模块终端没有全部完成地址分配,则再次向至少两个模块终端发送地址分配数据,其中,向目标模块终端发送的地址分配数据携带有目标模块终端生成的随机数。
当有模块终端的地址确定之后,该模块终端会向CAN总线发送其地址,因此,其他没有分配地址的模块终端会从没有被占用的地址中选择地址作为给自己分配的地址,并进行验证的过程的。当CAN总线上存储没有分配地址的模块终端时,显示终端都会发送一轮地址分配数据,每轮地址分配完成,显示终端都可以再判断CAN总线上的所有模块终端是否都已经完成地址分配,如果完成则结束自动分址,如果没有完成则继续进行下一轮的地址分配,直至所有的模块终端都完成自动分址。
通过该实施例,实现了每个模块终端都自动分配地址,并且各个模块终端之间的地址不会冲突,解决了现有技术中由于人工调试时拨码漏拨或拨错导致机组出现通讯故障的技术问题,进而达到了准确分址避免通讯故障的技术效果。
结合图5说明显示终端的自动分址方法。
步骤S502,发送地址分配数据帧。
步骤S504,接收响应的所有数据帧,接收显示终端响应地址分配数据帧的响应数据帧,响应数据帧包括模块终端生成的随机数和地址。
步骤S506,判断响应帧中是否有重复的数据,即判断是否有重复的地址,如果有,则返回步骤S502,如果没有,则执行步骤S508。
步骤S508,发送地址确认数据帧,即发送确认请求。
步骤S510,判断是否只收到一帧响应帧数据,如果是,则执行步骤S512,如果否,则返回步骤S508。
步骤S512,某个模块终端地址分配成功。
步骤S514,判断所有模块终端地址是否分配完,如果是,则结束地址分配,如果否,则返回步骤S502。
上述自动分址方法的步骤如下:
1、显示终端发送地址分配数据,即显示终端向CAN总线随机数产生请求帧。
2、模块终端生成随机数,并为自己分配地址,并将地址和随机数发送至CAN总线。
3、显示终端向目标地址发送请求确认帧,并携带随机数。目标地址为模块终端分配的地址。
4、模块终端验证接收到的请求确认帧所携带的随机数是否与该模块终端生成的随机数相同,如果相同,则返回确认帧响应;如果没有携带,则不回复。
5、显示终端判断出针对同一个目标地址只接收到一个响应时,确认该地址分配成功。如果没有接收到响应时或者接收到多个响应时,则地址分配不成功。
实施例3
根据本发明实施例,提供了一种模块终端的实施例,该模块终端可以执行上述实施例中的自动分址方法。在该实施例中,至少两个模块终端与显示终端通过无主从的CAN总线通信,如图6所示,该模块终端包括分配单元60、第一地址发送单元62、第一监听单元64、确定单元66和第一调用单元68。
分配单元60用于在监听完显示终端发送的一轮地址分配数据后,根据地址分配数据为其分配地址,得到目标地址。
第一地址发送单元62用于向总线发送目标地址,以供显示终端进行地址验证。
第一监听单元64用于监听显示终端发送的确认请求。
确定单元66用于在监听到确认请求时,将目标地址作为其自身的地址。
第一调用单元68用于在没有监听到确认请求时,调用分配单元。
模块终端能够通过CAN总线监听到显示终端发送给所有模块终端的地址分配数据,模块终端在监听到显示终端完成一轮地址分配数据的发送后,从没有被占用的地址中查找最小的地址作为目标地址。由于模块终端能够通过CAN总线监听到所有经过该CAN总线传输的数据,也包括其他模块发送给显示终端的地址,因此,模块终端能够分辨哪些地址已经占用,哪些地址没有被占用,并从没有被占用的地址中选择一个最小的一个作为自己的地址,得到目标地址。模块终端所采用的地址可以是二进制数字编码,可以根据CAN总线上连接的模块终端的数量来分配二进制数字编码的位数。即可选地,模块终端在监听完显示终端发送的一轮地址分配数据后,根据地址分配数据为其分配地址,得到目标地址包括:模块终端监听总线中传输的已占用地址的数据;模块终端根据已占用地址的数据从地址分配数据中查找未被使用的最小地址;模块终端将查找到的地址作为目标地址。即分配单元包括:监听模块,用于监听总线中传输的已占用地址的数据;查找模块,用于根据已占用地址的数据从地址分配数据中查找未被使用的最小地址;第三确定模块,用于将查找到的地址作为目标地址。
在模块终端为自己分配完地址之后,将分配的地址发送到CAN总线,这样CAN总线中的所有模块终端和显示终端都能够收到该地址。显示终端对该地址进行验证,以避免与其他模块终端的地址产生重复或者冲突,也能够使其他模块终端在选择地址避开该模块终端已经选择的地址。显示终端验证目标地址与其他模块的地址不重复时,发出确认请求以便模块终端知道其是否成功分配地址。如果根据确认请求指导模块终端的地址分配成功,则将目标地址作为其自身的地址,否则,重新监测显示终端发出的下一轮地址分配数据,重新获取分配数据并进行验证,直到其成功分配地址。显示终端向CAN总线发送多次地址分配数据,发送的次数与模块终端的个数相同,当向所有的模块终端都发送地址分配数据后,一轮地址分配数据发送完成。
在该实施例中,根据无主从CAN总线的数据可以由多个终端同时接收的原理,使得每个模块终端为自己分配地址,并且使其他模块终端知道哪些地址已经被占用,实现了自动分配地址,同时,采用显示终端和模块终端对模块终端分配的地址进行验证以保证模块终端分配地址的准确性,从而解决了现有技术中由于人工调试时拨码漏拨或拨错导致机组出现通讯故障的技术问题,进而达到了准确分址避免通讯故障的技术效果。
以图1为例进行说明。
显示终端A向模块终端B1、模块终端B2……模块终端Bn分别发送地址分配数据,当模块终端B1监听到所有的地址分配数据都发送完毕之后,模块终端B1为自己分配地址。如果CAN总线中传输有模块终端B2的地址,则模块终端B1在监听到模块终端B2的已占用地址的信息,在分配地址时会避开从模块终端B2的地址,从而避免了与模块终端B2的地址相同而造成冲突。
显示终端A从CAN总线中接收到每个模块终端发送的地址,并验证是否有重复的地址,在没有重复的地址的情况下确定该轮地址分配成功,否则该轮地址分配失败,重新进行下一轮的地址分配。下一轮分配的方式与第一轮相同,具体步骤参考上述内容。如果模块终端B1的地址已经确定成功分配后,在下一轮分配地址时,模块终端B1将其地址发送给CAN总线,以便于其他模块终端生成地址。
可选地,生成单元,用于在监听完显示终端发送的一轮地址分配数据后,且在模块终端向总线发送目标地址之前,生成随机数;第一地址发送单元还用于在达到延时时间时,向总线发送地址和随机数,其中,模块终端根据随机数生成延时时间。在多个模块终端为自己分配了相同的地址时,显示终端根据每个模块终端的随机数和回复数据的时间来确定哪个模块终端的地址分配成功,哪个模块终端的地址分配失败。模块终端在监听到显示终端发送的地址分配数据后生成随机数,并根据随机数决定延时时间。由于延时时间由随机数决定,在随机数相同的概率很小的情况下,延时时间相同的概率也很小,这就便于显示终端进行地址验证。延时时间的范围在0至22毫秒。
例如,模块终端B1的延时为2ms,其为自己分配的地址为01,模块终端B2的延时时间为4ms,其为自己分配的地址为11,则显示终端发送分配地址命令到CAN线后,模块终端在监听完一轮分配地址命令后,模块终端B1延时2ms将自己分配的地址01回复给显示终端,模块终端B2延时4ms将自己分配的地址11回复给显示终端。
可选地,确定单元包括:判断模块,用于判断确认请求携带的随机数是否与模块终端生成的随机数一致;第一确定模块,用于在判断出确认请求携带的随机数与模块终端发送的随机数一致时,确定模块终端的地址分配成功;第二确定模块,用于在判断出确认请求携带的随机数与模块终端发送的随机数不一致时,确定模块终端的地址分配失败。
例如,模块终端B1的延时为2ms,随机数为2,其为自己分配的地址为01,模块终端B2的延时时间为4ms,随机数为4,其为自己分配的地址为10,则模块终端B1延时2ms将自己分配的地址01回复给显示终端,模块终端B2延时4ms将自己分配的地址10回复给显示终端。
显示终端收到模块终端B1和模块终端B2的地址,则显示终端向模块终端B1发送的地址01发送携带有随机数2的确认请求,向模块终端B2发送的地址10发送携带有随机数4的确认请求。模块终端B1接收到携带有随机数的确认请求后,判断确认请求携带的随机数是否为2,如果确认请求携带的随机数为2,则当前地址分配成功;如果确认请求携带的随机数不是2,则确定当前地址分配失败。模块终端B2的验证方法与模块终端B1相同,不再赘述。
需要说明的是,确认请求是在初步判断出模块终端分配地址成功的情况下,进一步验证地址分配是否成功,也就是说显示终端可以判断多个模块终端生成的地址是否有重复,模块终端可以进一步判断显示终端的确认请求是否准确,以确保不会出现地址分配错误的情况。没有收到携带有随机数的确认请求,而直接收到了下一轮地址分配数据,则确定当前的地址分配失败。
可选地,模块终端还包括:第二监听单元,用于在在确定模块终端的地址分配成功之后,监听显示终端发送的随机数生成请求;判断单元,用于判断随机数生成请求中是否携带有模块终端生成的随机数;第二地址发送单元,用于在随机数生成请求中携带有模块终端生成的随机数时,模块终端向总线发送目标地址;第二调用单元,用于在随机数生成请求中未携带模块终端生成的随机数时,调用分配单元。
在显示终端发送完一轮地址分配数据之后,如果CAN总线上的模块终端没有全部都分配地址,则再次发送地址分配数据时,显示终端向模块终端发送的地址分配数据携带有该模块终端的随机数,模块终端接收到携带有随机数的地址分配数据时,向CAN总线发送其地址信息。如果模块终端收到的地址分配数据中没有携带其生成的随机数,则重新为自己分配地址。即上一轮的地址分配失败,需要重新分配地址。
在该实施例中,模块终端两次验证其分配的地址是否成功,第一次是接收到显示终端发送的确认请求,如果确认请求携带的随机数与其生成的随机数相同,则初步确定地址分配成功;第二次是再次接收到地址分配数据时,也可以说是再次接收到随机数产生请求时,如果携带有随机数,则确定地址分配成功,只需向CAN总线发送地址即可,如果没有携带随机数,则模块终端重新为自己分配地址并且生成随机数,按照第一次分配地址的方法重新分配地址并进行验证。每个模块终端都可以按照上述方法来自动分配地址,直至该CAN总线上的所有模块终端的地址都分配完成。由于两次验证地址是否成功分配,避免模块终端的地址分配错误或者没有分配所导致的通信故障,达到了准确分配地址避免通信故障的技术效果。同时,由于CAN总线传输的数据是连接在该总线上的所有模块终端共享的,提高了地址的分配速度。
实施例4
根据本发明实施例,提供了一种显示终端的实施例,该显示终端可以执行实施例2的自动分址方法,可以是图1所示的显示终端,至少两个模块终端与显示终端通过无主从的CAN总线通信。显示终端可以说空调控制系统中的上位机等。
如图7所示,该显示终端包括:获取单元70、验证单元72、指示发送单元74和数据调用单元76。
获取单元70用于向总线发送一轮地址分配数据后,通过总线获取模块终端发送的响应数据,其中,响应数据携带目标模块终端为其自身分配的目标地址,目标模块终端为至少两个模块中的任意一个终端。
验证单元72用于根据获取到的响应数据验证目标模块终端是否成功分配地址。
指示发送单元74用于在目标模块终端的地址分配成功的情况下,显示终端根据目标地址发送分配成功的指示信息。
数据调用单元76用于在目标模块终端的地址分配失败的情况下,调用获取单元。
显示终端向CAN总线发送地址分配数据,即向每个模块终端都发送随机数生成请求,并接收每个模块终端为自己生成的目标地址。显示终端验证各个模块终端发送的目标地址并进行验证。在验证通过后,向该目标地址发送分配成功的提示信息,否则重新发送地址分配数据,以让每个模块终端重新为自己分配地址。在一轮地址分配数据发送完成之后,可能有部分模块终端的地址能够成功确定,也可能全部模块终端的地址能够成功确定。如果有部分模块终端的地址能够成功确定,则再次发送一轮地址分配数据,直到剩余的所有模块终端的地址都能成功确定。
通过该实施例,显示终端发送地址分配数据后,每个模块终端都为自己分配地址,实现了自动分址,显示终端对模块终端分配的地址进行验证,保证了分配地址的不重复使得各个模块终端之间能够正常通信,从而解决了现有技术中由于人工调试时拨码漏拨或拨错导致机组出现通讯故障的技术问题,进而达到了准确分址避免通讯故障的技术效果。
可选地,响应数据携带有目标模块终端生成的随机数,验证单元包括:地址判断模块,用于判断先接到的两个响应数据所携带的地址是否有重复;第一地址确定模块,用于在判断出先接到的两个响应数据所携带的地址有重复时,确定目标模块终端分配地址失败;第二地址确定模块,用于在判断出先接到的两个响应数据所携带的地址没有重复时,确定目标模块终端分配地址成功。
通常情况下,模块终端通过CAN总线传输其为自己分配的地址,其他模块终端在选择地址时会避开已经被选择的地址,因此,延时相同时间的模块终端可能会选择相同的地址,尤其在前两个模块终端发送的地址相同的情况下,后面的模块终端发送的地址也可能会出错,因此,在前两个模块终端发送的地址重复的情况下,确定本轮地址分配失败。
以图1为例进行说明。
显示终端A向模块终端B1、模块终端B2……模块终端Bn分别发送地址分配数据,当模块终端B1监听到所有的地址分配数据都发送完毕之后,模块终端B1为自己分配地址。如果CAN总线中传输有模块终端B2的地址,则模块终端B1在监听到模块终端B2的已占用地址的信息,在分配地址时会避开从模块终端B2的地址,从而避免了与模块终端B2的地址相同而造成冲突。
显示终端A从CAN总线中接收到每个模块终端发送的地址,并验证是否有重复的地址,在没有重复的地址的情况下确定该轮地址分配成功,否则该轮地址分配失败,重新进行下一轮的地址分配。下一轮分配的方式与第一轮相同,具体步骤参考上述内容。如果模块终端B1的地址已经确定成功分配后,在下一轮分配地址时,模块终端B1将其地址发送给CAN总线,以便于其他模块终端生成地址。
在多个模块终端为自己分配了相同的地址时,显示终端根据每个模块终端的延时时间来确定哪个模块终端的地址分配成功,哪个模块终端的地址分配失败。模块终端在监听到显示终端发送的地址分配数据后生成随机数,并根据随机数决定延时时间。由于延时时间由随机数决定,在随机数相同的概率很小的情况下,延时时间相同的概率也很小,这就便于显示终端进行地址验证。延时时间的范围在0至22毫秒。
例如,模块终端B1的延时为2ms,其为自己分配的地址为01,模块终端B2的延时时间为4ms,其为自己分配的地址为11,则模块终端B1在延时2ms后发送地址01,模块终端B2在延时4ms后发送地址11。显示终端确定模块终端B1和模块终端B2的地址不冲突,确定模块终端B1和模块终端B2成功分配地址。
如果模块终端B1和模块终端B2为自己分配的地址均为01,但是模块终端B1的延时为2ms,模块终端B2的延时时间为4ms,则确定模块终端B1的地址为01,模块终端B2的地址分配失败。如果模块终端B1和模块终端B2为自己分配的地址均为01,且延时均为2ms中,显示终端无法确定哪个模块终端的地址为01,因此,通过判断延时时间来确定模块终端的地址分配是否成功。
显示终端验证是否给不同的模块终端显示了相同的地址,来避免地址分配错误,在出现相同地址的情况下进一步验证延时时间,将同一地址分配给延时时间较短的模块终端,从而保证了模块终端的地址分配的正确性。
可选地,第二地址确定模块包括:请求生成子模块,用于根据模块终端的随机数生成确认请求,并将确认请求发送给目标地址,确认请求携带有模块终端生成的随机数;监听子模块,用于监听确认响应,其中,确认响应为目标地址对应的模块终端验证确认请求携带的随机数与该模块终端生成的随机数一致时生成的;确定子模块,用于在显示终端监听到确认响应时,确定目标模块终端分配地址成功;调用子模块,用于在显示终端没有接收到确认响应时,调用获取单元。
例如,模块终端B1的延时为2ms,随机数为2,其为自己分配的地址为01,模块终端B2的延时时间为4ms,随机数为4,其为自己分配的地址为01,则显示终端确定显示终端B1和显示终端B2的地址相同,然后进一步判断延时时间,由于模块终端B1的延时时间较短,则将地址01分配给模块终端B1。显示终端向模块终端B1发出确认请求,该确认请求中携带了随机数2,模块终端B1接收到确认请求后验证随机数2与其生成的随机数相同,则确认地址分配成功。由于模块终端B2的地址分配不成功,则显示终端在发送下一轮地址分配数据时,向模块终端B2发送地址分配数据。
显示终端在发送下一轮地址分配数据时,向模块终端B1发送携带有随机数的地址分配数据;向模块终端B2发送没有随机数的地址分配数据。
可选地,显示终端还包括:判断单元,用于在显示终端监听到确认响应时,确定目标模块终端分配地址成功之后,显示终端判断至少两个模块终端是否全部完成地址分配;数据调用单元还用于在判断出至少两个模块终端没有全部完成地址分配时,再次向至少两个模块终端发送地址分配数据,其中,向目标模块终端发送的地址分配数据携带有目标模块终端生成的随机数。模块终端B1向总线发送其已经分配的地址,而模块终端B2按照本实施例的上述步骤重新分配地址。
当有模块终端的地址确定之后,该模块终端会向CAN总线发送其地址,因此,其他没有分配地址的模块终端会从没有被占用的地址中选择地址作为给自己分配的地址,并进行验证的过程的。当CAN总线上存储没有分配地址的模块终端时,显示终端都会发送一轮地址分配数据,每轮地址分配完成,显示终端都可以再判断CAN总线上的所有模块终端是否都已经完成地址分配,如果完成则结束自动分址,如果没有完成则继续进行下一轮的地址分配,直至所有的模块终端都完成自动分址。
通过该实施例,实现了每个模块终端都自动分配地址,并且各个模块终端之间的地址不会冲突,解决了现有技术中由于人工调试时拨码漏拨或拨错导致机组出现通讯故障的技术问题,进而达到了准确分址避免通讯故障的技术效果。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (18)
1.一种自动分址方法,其特征在于,至少两个模块终端与显示终端通过无主从的CAN总线通信,所述方法包括:
模块终端在监听完所述显示终端发送的一轮地址分配数据后,根据所述地址分配数据为其分配地址,得到目标地址;
所述模块终端向所述总线发送所述目标地址,以供所述显示终端进行地址验证;
所述模块终端监听所述显示终端发送的确认请求;
如果监听到所述确认请求,则将所述目标地址作为其自身的地址;
如果没有监听到所述确认请求,则返回在监听完所述显示终端发送的一轮地址分配数据后根据所述地址分配数据为其分配地址的步骤。
2.根据权利要求1所述的方法,其特征在于,
在所述模块终端在监听完所述显示终端发送的一轮地址分配数据后,且在所述模块终端向所述总线发送所述目标地址之前,所述模块终端生成随机数;
所述模块终端向所述总线发送所述目标地址包括:所述模块终端在达到延时时间时,向所述总线发送所述地址和所述随机数,其中,所述模块终端根据所述随机数生成所述延时时间。
3.根据权利要求2所述的方法,其特征在于,如果监听到所述确认请求,则将所述目标地址作为其自身的地址包括:
判断所述确认请求携带的随机数是否与所述模块终端生成的随机数一致;
如果判断出所述确认请求携带的随机数与所述模块终端发送的随机数一致,确定所述模块终端的地址分配成功;
如果判断出所述确认请求携带的随机数与所述模块终端发送的随机数不一致,确定所述模块终端的地址分配失败。
4.根据权利要求3所述的方法,其特征在于,在确定所述模块终端的地址分配成功之后,所述方法包括:
监听所述显示终端发送的随机数生成请求;
判断所述随机数生成请求中是否携带有所述模块终端生成的随机数;
在所述随机数生成请求中携带有所述模块终端生成的随机数时,所述模块终端向所述总线发送所述目标地址;
在所述随机数生成请求中未携带所述模块终端生成的随机数时,返回在监听完所述显示终端发送的一轮地址分配数据后根据所述地址分配数据为其分配地址的步骤。
5.根据权利要求1所述的方法,其特征在于,模块终端在监听完所述显示终端发送的一轮地址分配数据后,根据所述地址分配数据为其分配地址,得到目标地址包括:
所述模块终端监听所述总线中传输的已占用地址的数据;
所述模块终端根据所述已占用地址的数据从所述地址分配数据中查找未被使用的最小地址;
所述模块终端将查找到的地址作为所述目标地址。
6.一种自动分址方法,其特征在于,至少两个模块终端与显示终端通过无主从的CAN总线通信,所述方法包括:
所述显示终端向所述总线发送一轮地址分配数据后,通过所述总线获取模块终端发送的响应数据,其中,所述响应数据携带目标模块终端为其自身分配的目标地址,所述目标模块终端为所述至少两个模块中的任意一个终端;
所述显示终端根据获取到的响应数据验证所述目标模块终端是否成功分配地址;
在所述目标模块终端的地址分配成功的情况下,所述显示终端根据所述目标地址发送分配成功的指示信息;
在所述目标模块终端的地址分配失败的情况下,返回所述显示终端向所述总线发送一轮地址分配数据的步骤。
7.根据权利要求6所述的方法,其特征在于,所述响应数据携带有所述目标模块终端生成的随机数,所述显示终端根据获取到的响应数据验证所述目标模块终端是否成功分配地址包括:
所述显示终端判断先接到的两个响应数据所携带的地址是否有重复;
如果判断出所述先接到的两个响应数据所携带的地址有重复,则确定所述目标模块终端分配地址失败;
如果判断出所述先接到的两个响应数据所携带的地址没有重复,则确定所述目标模块终端分配地址成功。
8.根据权利要求7所述的方法,其特征在于,确定所述目标模块终端分配地址成功包括:
所述显示终端根据所述模块终端的随机数生成确认请求,并将所述确认请求发送给所述目标地址,所述确认请求携带有所述模块终端生成的随机数;
所述显示终端监听确认响应,其中,所述确认响应为所述目标地址对应的模块终端验证所述确认请求携带的随机数与该模块终端生成的随机数一致时生成的;
在所述显示终端监听到所述确认响应时,确定所述目标模块终端分配地址成功;
在所述显示终端没有接收到所述确认响应时,返回所述显示终端向所述总线发送一轮地址分配数据的步骤。
9.根据权利要求8所述的方法,其特征在于,在所述显示终端监听到所述确认响应时,确定所述目标模块终端分配地址成功之后,所述方法还包括:
所述显示终端判断所述至少两个模块终端是否全部完成地址分配;
所述显示终端如果判断出所述至少两个模块终端没有全部完成地址分配,则再次向所述至少两个模块终端发送地址分配数据,其中,向所述目标模块终端发送的地址分配数据携带有所述目标模块终端生成的随机数。
10.一种模块终端,其特征在于,至少两个模块终端与显示终端通过无主从的CAN总线通信,所述模块终端包括:
分配单元,用于在监听完所述显示终端发送的一轮地址分配数据后,根据所述地址分配数据为其分配地址,得到目标地址;
第一地址发送单元,用于向所述总线发送所述目标地址,以供所述显示终端进行地址验证;
第一监听单元,用于监听所述显示终端发送的确认请求;
确定单元,用于在监听到所述确认请求时,将所述目标地址作为其自身的地址;
第一调用单元,用于在没有监听到所述确认请求时,调用所述分配单元。
11.根据权利要求10所述的模块终端,其特征在于,
生成单元,用于在监听完所述显示终端发送的一轮地址分配数据后,且在所述模块终端向所述总线发送所述目标地址之前,生成随机数;
所述第一地址发送单元还用于在达到延时时间时,向所述总线发送所述地址和所述随机数,其中,所述模块终端根据所述随机数生成所述延时时间。
12.根据权利要求11所述的模块终端,其特征在于,所述确定单元包括:
判断模块,用于判断所述确认请求携带的随机数是否与所述模块终端生成的随机数一致;
第一确定模块,用于在判断出所述确认请求携带的随机数与所述模块终端发送的随机数一致时,确定所述模块终端的地址分配成功;
第二确定模块,用于在判断出所述确认请求携带的随机数与所述模块终端发送的随机数不一致时,确定所述模块终端的地址分配失败。
13.根据权利要求12所述的模块终端,其特征在于,所述模块终端还包括:
第二监听单元,用于在确定所述模块终端的地址分配成功之后,监听所述显示终端发送的随机数生成请求;
判断单元,用于判断所述随机数生成请求中是否携带有所述模块终端生成的随机数;
第二地址发送单元,用于在所述随机数生成请求中携带有所述模块终端生成的随机数时,所述模块终端向所述总线发送所述目标地址;
第二调用单元,用于在所述随机数生成请求中未携带所述模块终端生成的随机数时,调用所述分配单元。
14.根据权利要求10所述的模块终端,其特征在于,所述分配单元包括:
监听模块,用于监听所述总线中传输的已占用地址的数据;
查找模块,用于根据所述已占用地址的数据从所述地址分配数据中查找未被使用的最小地址;
第三确定模块,用于将查找到的地址作为所述目标地址。
15.一种显示终端,其特征在于,至少两个模块终端与显示终端通过无主从的CAN总线通信,所述显示终端包括:
获取单元,用于向所述总线发送一轮地址分配数据后,通过所述总线获取模块终端发送的响应数据,其中,所述响应数据携带目标模块终端为其自身分配的目标地址,所述目标模块终端为所述至少两个模块中的任意一个终端;
验证单元,用于根据获取到的响应数据验证所述目标模块终端是否成功分配地址;
指示发送单元,用于在所述目标模块终端的地址分配成功的情况下,所述显示终端根据所述目标地址发送分配成功的指示信息;
数据调用单元,用于在所述目标模块终端的地址分配失败的情况下,调用所述获取单元。
16.根据权利要求15所述的显示终端,其特征在于,所述响应数据携带有所述目标模块终端生成的随机数,所述验证单元包括:
地址判断模块,用于判断先接到的两个响应数据所携带的地址是否有重复;
第一地址确定模块,用于在判断出所述先接到的两个响应数据所携带的地址有重复时,确定所述目标模块终端分配地址失败;
第二地址确定模块,用于在判断出所述先接到的两个响应数据所携带的地址没有重复时,确定所述目标模块终端分配地址成功。
17.根据权利要求16所述的显示终端,其特征在于,所述第二地址确定模块包括:
请求生成子模块,用于根据所述模块终端的随机数生成确认请求,并将所述确认请求发送给所述目标地址,所述确认请求携带有所述模块终端生成的随机数;
监听子模块,用于监听确认响应,其中,所述确认响应为所述目标地址对应的模块终端验证所述确认请求携带的随机数与该模块终端生成的随机数一致时生成的;
确定子模块,用于在所述显示终端监听到所述确认响应时,确定所述目标模块终端分配地址成功;
调用子模块,用于在所述显示终端没有接收到所述确认响应时,调用所述获取单元。
18.根据权利要求17所述的显示终端,其特征在于,所述显示终端还包括:
判断单元,用于在所述显示终端监听到所述确认响应时,确定所述目标模块终端分配地址成功之后,所述显示终端判断所述至少两个模块终端是否全部完成地址分配;
所述数据调用单元还用于在判断出所述至少两个模块终端没有全部完成地址分配时,再次向所述至少两个模块终端发送地址分配数据,其中,向所述目标模块终端发送的地址分配数据携带有所述目标模块终端生成的随机数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510771758.XA CN105338129B (zh) | 2015-11-11 | 2015-11-11 | 自动分址方法、显示终端和模块终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510771758.XA CN105338129B (zh) | 2015-11-11 | 2015-11-11 | 自动分址方法、显示终端和模块终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105338129A true CN105338129A (zh) | 2016-02-17 |
CN105338129B CN105338129B (zh) | 2019-03-22 |
Family
ID=55288399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510771758.XA Active CN105338129B (zh) | 2015-11-11 | 2015-11-11 | 自动分址方法、显示终端和模块终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105338129B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131536A (zh) * | 2019-12-09 | 2020-05-08 | 珠海格力电器股份有限公司 | 通讯地址的高效配置方法及装置、系统、电表 |
CN111586206A (zh) * | 2020-05-29 | 2020-08-25 | 四川艾贝斯科技发展有限公司 | 用于路灯系统的单灯控制器地址编号自动上报方法 |
CN111711471A (zh) * | 2020-06-12 | 2020-09-25 | 江苏集能易新能源技术有限公司 | 电力线载波通信自组网实现方法 |
CN112665035A (zh) * | 2021-01-19 | 2021-04-16 | 青岛海信日立空调系统有限公司 | 一种多联式空调系统及其控制方法 |
CN113612868A (zh) * | 2021-08-06 | 2021-11-05 | 深圳市欧瑞博科技股份有限公司 | 设备地址分配方法、装置以及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6700877B1 (en) * | 1997-08-05 | 2004-03-02 | Siemens Aktiengesellschaft | Method and bus system for automatic address allocation |
CN1655081A (zh) * | 2004-02-10 | 2005-08-17 | 上海新时达电气有限公司 | 自动分配串行总线设备地址分配器及其控制方法 |
CN102292682A (zh) * | 2008-11-25 | 2011-12-21 | 皮尔茨公司 | 用于在自动化控制系统中传输数据的方法 |
CN202528858U (zh) * | 2012-02-28 | 2012-11-14 | 华霆(合肥)动力技术有限公司 | 一种电动汽车电池管理系统 |
CN103676833A (zh) * | 2013-09-25 | 2014-03-26 | 江苏峰谷源储能技术研究院有限公司 | 一种电池电子部件通讯地址的自动配置和修正方法 |
-
2015
- 2015-11-11 CN CN201510771758.XA patent/CN105338129B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6700877B1 (en) * | 1997-08-05 | 2004-03-02 | Siemens Aktiengesellschaft | Method and bus system for automatic address allocation |
CN1655081A (zh) * | 2004-02-10 | 2005-08-17 | 上海新时达电气有限公司 | 自动分配串行总线设备地址分配器及其控制方法 |
CN102292682A (zh) * | 2008-11-25 | 2011-12-21 | 皮尔茨公司 | 用于在自动化控制系统中传输数据的方法 |
CN202528858U (zh) * | 2012-02-28 | 2012-11-14 | 华霆(合肥)动力技术有限公司 | 一种电动汽车电池管理系统 |
CN103676833A (zh) * | 2013-09-25 | 2014-03-26 | 江苏峰谷源储能技术研究院有限公司 | 一种电池电子部件通讯地址的自动配置和修正方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131536A (zh) * | 2019-12-09 | 2020-05-08 | 珠海格力电器股份有限公司 | 通讯地址的高效配置方法及装置、系统、电表 |
CN111131536B (zh) * | 2019-12-09 | 2021-07-13 | 珠海格力电器股份有限公司 | 通讯地址的高效配置方法及装置、系统、电表 |
CN111586206A (zh) * | 2020-05-29 | 2020-08-25 | 四川艾贝斯科技发展有限公司 | 用于路灯系统的单灯控制器地址编号自动上报方法 |
CN111586206B (zh) * | 2020-05-29 | 2022-05-31 | 四川艾贝斯科技发展有限公司 | 用于路灯系统的单灯控制器地址编号自动上报方法 |
CN111711471A (zh) * | 2020-06-12 | 2020-09-25 | 江苏集能易新能源技术有限公司 | 电力线载波通信自组网实现方法 |
CN112665035A (zh) * | 2021-01-19 | 2021-04-16 | 青岛海信日立空调系统有限公司 | 一种多联式空调系统及其控制方法 |
CN113612868A (zh) * | 2021-08-06 | 2021-11-05 | 深圳市欧瑞博科技股份有限公司 | 设备地址分配方法、装置以及系统 |
CN113612868B (zh) * | 2021-08-06 | 2023-08-29 | 深圳市欧瑞博科技股份有限公司 | 设备地址分配方法、装置以及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105338129B (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105338129A (zh) | 自动分址方法、显示终端和模块终端 | |
CN105430118B (zh) | 一种mac地址生成方法及装置 | |
EP1471661A1 (en) | Packet communication between a collecting unit and a plurality of control devices over the power supply line | |
CN104964399A (zh) | 空调设备的地址分配方法和装置 | |
CN108521474B (zh) | 多联式控制系统的地址竞争方法 | |
CN109654666B (zh) | 一种调试机组的方法、装置及设备 | |
CN112671584B (zh) | 网络拓扑的识别方法、装置、系统和存储介质 | |
CN103168292A (zh) | 一种用于监控至少两个微控制器的方法 | |
CN115314470A (zh) | 一种rs-485组网通信地址自动分配方法、主机、从机及系统 | |
CN104283642A (zh) | 无线局域网中发布服务集标识ssid的方法及装置 | |
CN112272243A (zh) | 地址分配方法 | |
CN113114545B (zh) | 设备自组网方法、装置及空调系统 | |
CN103856578A (zh) | Modbus RTU从站自动获取站地址方法及从站 | |
CN112152887A (zh) | 家电设备的配网方法、装置、电子设备和存储介质 | |
CN113114792A (zh) | 设备自组网方法、装置及空调系统 | |
CN115242752B (zh) | 电池管理系统的地址分配方法、装置、设备及介质 | |
KR20160106064A (ko) | 배터리 관리 시스템의 시동 방법 | |
CN115657646B (zh) | 一种can控制器的测试方法及装置 | |
CN113612868B (zh) | 设备地址分配方法、装置以及系统 | |
CN104283739A (zh) | 一种基于分布式issu升级的检测方法和设备 | |
KR101621915B1 (ko) | 실거주지 인증 방법 및 이를 실행하는 장치 | |
CN115334041A (zh) | 一种主从站通讯设备自动分配地址的方法、主站、从站和系统 | |
CN103376369A (zh) | 通讯负载的测试方法及装置 | |
CN108068733B (zh) | 信息配置方法、装置及计算机可读存储介质 | |
CN115277295B (zh) | 控制器的通信方法及控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |