自動分址方法、顯示終端和模塊終端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及空調(diào)器領(lǐng)域,具體而言,涉及一種自動分址方法、顯示終端和模塊終端。
【背景技術(shù)】
[0002]對于模塊化的空調(diào)冷水機組,控制系統(tǒng)中各模塊之間采用撥碼開關(guān)來進行地址區(qū)分,出廠時撥碼開關(guān)撥的地址都一樣,在安裝調(diào)試時人工進行地址的撥碼。
[0003]通常撥碼開關(guān)表示的是二進制碼,需要安裝調(diào)試人員會利用二進制碼來調(diào)節(jié)撥碼開關(guān),但是調(diào)試人員的參差不齊,有時會因為撥碼漏撥或撥錯導(dǎo)致機組出現(xiàn)通訊故障。
[0004]針對上述的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供了一種自動分址方法、顯示終端和模塊終端,以至少解決由于人工調(diào)試時撥碼漏撥或撥錯導(dǎo)致機組出現(xiàn)通訊故障的技術(shù)問題。
[0006]根據(jù)本發(fā)明實施例的一個方面,提供了一種自動分址方法,包括:至少兩個模塊終端與顯示終端通過無主從的CAN總線通信,所述方法包括:模塊終端在監(jiān)聽完所述顯示終端發(fā)送的一輪地址分配數(shù)據(jù)后,根據(jù)所述地址分配數(shù)據(jù)為其分配地址,得到目標地址;所述模塊終端向所述總線發(fā)送所述目標地址,以供所述顯示終端進行地址驗證;所述模塊終端監(jiān)聽所述顯示終端發(fā)送的確認請求;如果監(jiān)聽到所述確認請求,則將所述目標地址作為其自身的地址;如果沒有監(jiān)聽到所述確認請求,則返回在監(jiān)聽完所述顯示終端發(fā)送的一輪地址分配數(shù)據(jù)后根據(jù)所述地址分配數(shù)據(jù)為其分配地址的步驟。
[0007]根據(jù)本發(fā)明實施例的另一方面,還提供了一種自動分址方法,包括:至少兩個模塊終端與顯示終端通過無主從的CAN總線通信,所述方法包括:所述顯示終端向所述總線發(fā)送一輪地址分配數(shù)據(jù)后,通過所述總線獲取模塊終端發(fā)送的響應(yīng)數(shù)據(jù),其中,所述響應(yīng)數(shù)據(jù)攜帶目標模塊終端為其自身分配的目標地址,所述目標模塊終端為所述至少兩個模塊中的任意一個終端;所述顯示終端根據(jù)獲取到的響應(yīng)數(shù)據(jù)驗證所述目標模塊終端是否成功分配地址;在所述目標模塊終端的地址分配成功的情況下,所述顯示終端根據(jù)所述目標地址發(fā)送分配成功的指示信息;在所述目標模塊終端的地址分配失敗的情況下,返回所述顯示終端向所述總線發(fā)送一輪地址分配數(shù)據(jù)的步驟。
[0008]根據(jù)本發(fā)明實施例的另一方面,還提供了一種模塊終端,包括至少兩個模塊終端與顯示終端通過無主從的CAN總線通信,所述模塊終端包括:分配單元,用于在監(jiān)聽完所述顯示終端發(fā)送的一輪地址分配數(shù)據(jù)后,根據(jù)所述地址分配數(shù)據(jù)為其分配地址,得到目標地址;第一地址發(fā)送單元,用于向所述總線發(fā)送所述目標地址,以供所述顯示終端進行地址驗證;第一監(jiān)聽單元,用于監(jiān)聽所述顯示終端發(fā)送的確認請求;確定單元,用于在監(jiān)聽到所述確認請求時,將所述目標地址作為其自身的地址;第一調(diào)用單元,用于在沒有監(jiān)聽到所述確認請求時,調(diào)用所述分配單元。
[0009]根據(jù)本發(fā)明實施例的另一方面,還提供了一種顯示終端,至少兩個模塊終端與顯示終端通過無主從的CAN總線通信,所述顯示終端包括:獲取單元,用于向所述總線發(fā)送一輪地址分配數(shù)據(jù)后,通過所述總線獲取模塊終端發(fā)送的響應(yīng)數(shù)據(jù),其中,所述響應(yīng)數(shù)據(jù)攜帶目標模塊終端為其自身分配的目標地址,所述目標模塊終端為所述至少兩個模塊中的任意一個終端;驗證單元,用于根據(jù)獲取到的響應(yīng)數(shù)據(jù)驗證所述目標模塊終端是否成功分配地址;指示發(fā)送單元,用于在所述目標模塊終端的地址分配成功的情況下,所述顯示終端根據(jù)所述目標地址發(fā)送分配成功的指示信息;數(shù)據(jù)調(diào)用單元,用于在所述目標模塊終端的地址分配失敗的情況下,調(diào)用所述獲取單元。
[0010]在本發(fā)明實施例中,采用模塊終端在監(jiān)聽完顯示終端發(fā)送的一輪地址分配數(shù)據(jù)后,根據(jù)地址分配數(shù)據(jù)為其分配地址,得到目標地址;模塊終端向總線發(fā)送目標地址,以供顯示終端進行地址驗證;模塊終端監(jiān)聽顯示終端發(fā)送的確認請求;如果監(jiān)聽到確認請求,則將目標地址作為其自身的地址;如果沒有監(jiān)聽到確認請求,則返回在監(jiān)聽完顯示終端發(fā)送的一輪地址分配數(shù)據(jù)后根據(jù)地址分配數(shù)據(jù)為其分配地址的步驟的方式,解決了由于人工調(diào)試時撥碼漏撥或撥錯導(dǎo)致機組出現(xiàn)通訊故障的技術(shù)問題。
【附圖說明】
[0011]此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
[0012]圖1是根據(jù)本發(fā)明實施例的控制系統(tǒng)的示意圖;
[0013]圖2是根據(jù)本發(fā)明實施例1的自動分址方法的流程圖;
[0014]圖3是根據(jù)本發(fā)明實施例1優(yōu)選的自動分址方法的流程圖;
[0015]圖4是根據(jù)本發(fā)明實施例2的自動分址方法的流程圖;
[0016]圖5是根據(jù)本發(fā)明實施例2優(yōu)選的自動分址方法的流程圖;
[0017]圖6是根據(jù)本發(fā)明實施例3的模塊終端的示意圖;
[0018]圖7是根據(jù)本發(fā)明實施例4的顯示終端的示意圖。
【具體實施方式】
[0019]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當屬于本發(fā)明保護的范圍。
[0020]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0021]實施例1
[0022]根據(jù)本發(fā)明實施例,提供了一種自動分址方法的方法實施例,該自動分址方法可以應(yīng)用在如圖1所示的控制系統(tǒng)中。如圖1所示,至少兩個模塊終端與顯示終端通過無主從的CAN總線進行通訊,一個模塊發(fā)出的數(shù)據(jù)能同時被該CAN總線中的其他模塊接收。因此,當顯示終端向總線發(fā)送數(shù)據(jù)時,模塊終端都會監(jiān)聽到該數(shù)據(jù)并進行回復(fù)。同時,一個模塊終端發(fā)出的數(shù)據(jù)也會被其他模塊終端監(jiān)聽到。該實施例就是根據(jù)CAN總線的上述原理,多個模塊終端都回復(fù)顯示終端發(fā)送的地址分配數(shù)據(jù),每個模塊終端回復(fù)的延時時間可以通過隨機數(shù)來決定,顯示終端根據(jù)延時時間的時間差來錯開各個模塊終端的回復(fù)數(shù)據(jù),從而實現(xiàn)了地址分配。
[0023]隨機數(shù)產(chǎn)生說明:由于不同模塊終端上使用的晶振個體是有差異的,每個晶振之間都有一定的基準頻率偏差,使用晶振時鐘產(chǎn)生的累加數(shù)就會隨著時間的增加而有區(qū)別,使用時鐘累加變量作為產(chǎn)生偽隨機數(shù)的種子就使同一程序在不同的模塊終端上獲取的偽隨機數(shù)的沖突概率較小,而且隨著時間的不斷向前推移,獲取的偽隨機數(shù)的沖突概率也越來越小,也就是多個模塊終端之間采用相同延時時間的概率較小,能夠快速為多個模塊終端分配地址。
[0024]需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。實施例1中的步驟可以由模塊終端來執(zhí)行。
[0025]圖2是根據(jù)本發(fā)明實施例1的自動分址方法的流程圖,如圖2所示,該方法包括如下步驟:
[0026]步驟S202,模塊終端在監(jiān)聽完顯示終端發(fā)送的一輪地址分配數(shù)據(jù)后,根據(jù)地址分配數(shù)據(jù)為其分配地址,得到目標地址。
[0027]步驟S204,模塊終端向總線發(fā)送目標地址,以供顯示終端進行地址驗證。
[0028]步驟S206,模塊終端監(jiān)聽顯示終端發(fā)送的確認請求。
[0029]步驟S208,如果監(jiān)聽到確認請求,則將目標地址作為其自身的地址。如果沒有監(jiān)聽到確認請求,則返回在監(jiān)聽完顯示終端發(fā)送的一輪地址分配數(shù)據(jù)后根據(jù)地址分配數(shù)據(jù)為其分配地址的步驟。
[0030]模塊終端能夠通過CAN總線監(jiān)聽到顯示終端發(fā)送給所有模塊終端的地址分配數(shù)據(jù),模塊終端在監(jiān)聽到顯示終端完成一輪地址分配數(shù)據(jù)的發(fā)送后,從沒有被占用的地址中查找最小的地址作為目標地址。由于模塊終端能夠通過CAN總線監(jiān)聽到所有經(jīng)過該CAN總線傳輸?shù)臄?shù)據(jù),也包括其他模塊發(fā)送給顯示終端的地址,因此,模塊終端能夠分辨哪些地址已經(jīng)占用,哪些地址沒有被占用,并從沒有被占用的地址中選擇一個最小的一個作為自己的地址,得到目標地址。模塊終端所采用的地址可以是二進制數(shù)字編碼,可以根據(jù)CAN總線上連接的模塊終端的數(shù)量來分配二進制數(shù)字編碼的位數(shù)。即可選地,模塊終端在監(jiān)聽完顯示終端發(fā)送的一輪地址分配數(shù)據(jù)后,根據(jù)地址分配數(shù)據(jù)為其分配地址,得到目標地址包括:模塊終端監(jiān)聽總線中傳輸?shù)囊颜加玫刂返臄?shù)據(jù);模塊終端根據(jù)已占用地址的數(shù)據(jù)從地址分配數(shù)據(jù)中查找未被使用的最小地址;模塊終端將查找到的地址作為目標地址。
[0031 ] 在模塊終端為自己分配完地址之后,將分配的地址發(fā)送到CAN總線,這樣CAN總線中的所有模塊終端和顯示終端都能夠收到該地址。顯示終端對該地址進行驗證,以避免與其他模塊終端的地址產(chǎn)生重復(fù)或者沖突,也能夠使其他模塊終端在選擇地址避開該模塊終端已經(jīng)選擇的地址。顯示終端驗證目標地址與其他模塊的地址不重復(fù)時,發(fā)出確認請求以便模塊終端知道其是否成功分配地址。如果根據(jù)確認請求指導(dǎo)模塊終端的地址分配成功,則將目標地址作為其自身的地址,否則,重新監(jiān)測顯示終端發(fā)出的下一輪地址分配數(shù)據(jù),重新獲取分配數(shù)據(jù)并進行驗證,直到其成功分配地址。顯示終端向CAN總線發(fā)送多次地址分配數(shù)據(jù),發(fā)送的次數(shù)與模塊終端的個數(shù)相同,當向所有的模塊終端都發(fā)送地址分配數(shù)據(jù)后,一輪地址分配數(shù)據(jù)發(fā)送完成。
[0032]在該實施例中,根據(jù)無主從CAN總線的數(shù)據(jù)可以由多個終端同時接收的原理,使得每個模塊終端為自己分配地址,并且使其他模塊終端知道哪些地址已經(jīng)被占用,實現(xiàn)了自動分配地址,同時,采用顯示終端和模塊終端對模塊終端分配的地址進行驗證以保證模塊終端分配地址的準確性,從而解決了現(xiàn)有技術(shù)中由于人工調(diào)試時撥碼漏撥或撥錯導(dǎo)致機組出現(xiàn)通訊故障的技術(shù)問題,進而達到了準確分址避免通訊故障的技術(shù)效果。
[0033]以圖1為例進行說明。
[0034]顯示終端A向模塊終端B1、模塊終端B2、……模塊終端Bn分別發(fā)送地址分配數(shù)據(jù),當模塊終端B1監(jiān)聽到所有的地址分配數(shù)據(jù)都發(fā)送完畢之后,模塊終端B1為自己分配地址。如果CAN總線中傳輸有模塊終端B2的地址,則模塊終端B1在監(jiān)聽到模塊終端B2的已占用地址的信息,在分配地址時會避開從模塊終端B2的地址,從而避免了與模塊終端B2的地址相同而造成沖突。
[0035]顯示終端A從CAN總線中接收到每個模塊終端發(fā)送的地址,并驗證是否有重復(fù)的地址,在沒有重復(fù)的地址的情況下確定該輪地址分配成功,否則該輪地址分配失敗,重新進行下一輪的地址分