本發(fā)明屬于空調(diào)內(nèi)機(jī)地址分配,尤其涉及一種多聯(lián)機(jī)空調(diào)的內(nèi)機(jī)地址分配方法。
背景技術(shù):
1、多聯(lián)機(jī)是一個(gè)外機(jī)連接多個(gè)內(nèi)機(jī)的中央空調(diào)系統(tǒng),因此需要構(gòu)建一個(gè)集控主機(jī)(空調(diào)外機(jī))和多從機(jī)(空調(diào)內(nèi)機(jī))的系統(tǒng),在系統(tǒng)中,外機(jī)需要給接入的內(nèi)機(jī)分配唯一的有效地址。
2、在現(xiàn)有技術(shù)中,內(nèi)機(jī)和外機(jī)之間通過(guò)rs485總線或can總線進(jìn)行通訊,對(duì)于采用can總線進(jìn)行通訊的系統(tǒng),can總線內(nèi)機(jī)地址分配技術(shù)主要是內(nèi)機(jī)采用唯一mac地址生成候選ip地址,內(nèi)機(jī)拿著候選ip地址通過(guò)can總線的搶占機(jī)制向外機(jī)申請(qǐng),外機(jī)確認(rèn)候選ip地址是否可用,若可用則告知內(nèi)機(jī)ip分配成功。而rs485總線為半雙工通信方式,內(nèi)機(jī)采用隨機(jī)數(shù)分配,即外機(jī)在上電后向內(nèi)機(jī)發(fā)送生成隨機(jī)數(shù)命令,內(nèi)機(jī)獲取外機(jī)命令,并執(zhí)行隨機(jī)數(shù)地址生成,外機(jī)延時(shí)等待內(nèi)機(jī)完成隨機(jī)數(shù)生成地址后,按照隨機(jī)數(shù)地址點(diǎn)名分配內(nèi)機(jī)ip地址。
3、上述兩種地址分配方法均存在缺陷:
4、1、當(dāng)多臺(tái)內(nèi)機(jī)在同一時(shí)間點(diǎn)向外機(jī)申請(qǐng)地址時(shí),會(huì)發(fā)生can總線占線沖突,發(fā)生沖突后,未被分配地址的內(nèi)機(jī)會(huì)在同一時(shí)間重新向外機(jī)申請(qǐng),導(dǎo)致發(fā)生重復(fù)沖突,出現(xiàn)不斷重復(fù)申請(qǐng),不斷重復(fù)沖突的循環(huán)局面,進(jìn)而導(dǎo)致內(nèi)機(jī)地址分配效率低下或內(nèi)機(jī)地址分配不成功;
5、2、rs485總線采用隨機(jī)數(shù)地址生成,隨機(jī)數(shù)會(huì)導(dǎo)致生成的地址重復(fù)率過(guò)高,需要不斷驗(yàn)證和重新生成隨機(jī)數(shù)地址。
6、因此對(duì)于多聯(lián)機(jī)空調(diào)系統(tǒng),如何高效地給內(nèi)機(jī)分配地址且避免內(nèi)機(jī)申請(qǐng)地址時(shí)發(fā)生沖突,是目前需要解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)背景技術(shù)提出的問(wèn)題,本發(fā)明提出一種多聯(lián)機(jī)空調(diào)的內(nèi)機(jī)地址分配方法。
2、為達(dá)此目的,本發(fā)明采用以下技術(shù)方案:
3、一種多聯(lián)機(jī)空調(diào)的內(nèi)機(jī)地址分配方法,步驟a:當(dāng)多個(gè)空調(diào)內(nèi)機(jī)上電時(shí),每臺(tái)內(nèi)機(jī)讀取所燒錄的唯一mac地址,將唯一mac地址輸入哈希函數(shù)得到轉(zhuǎn)換值,將轉(zhuǎn)換值轉(zhuǎn)換為候選ip地址;
4、步驟b:內(nèi)機(jī)接入can總線向外機(jī)發(fā)送數(shù)據(jù)包,數(shù)據(jù)包包括候選ip地址和唯一mac地址;
5、步驟c:當(dāng)內(nèi)機(jī)執(zhí)行步驟b時(shí),can總線檢測(cè)是否存在位沖突,若是,則內(nèi)機(jī)進(jìn)入步驟e,若否則執(zhí)行步驟d;
6、步驟d:外機(jī)通過(guò)數(shù)據(jù)包確認(rèn)候選ip地址是否被占用,若未被占用,則外機(jī)向內(nèi)機(jī)回復(fù)確認(rèn)信號(hào)并存儲(chǔ)內(nèi)機(jī)的唯一mac地址和候選ip地址,內(nèi)機(jī)收到確認(rèn)信號(hào)后將候選ip地址鎖定并寫(xiě)入非易失存儲(chǔ)器;
7、若候選ip地址被占用,外機(jī)向內(nèi)機(jī)發(fā)送重新生成候選ip的信號(hào),內(nèi)機(jī)進(jìn)入步驟e;
8、步驟e:執(zhí)行退避操作:發(fā)生沖突的內(nèi)機(jī)在需在等待時(shí)間結(jié)束后方可重新接入can總線;
9、執(zhí)行can總線仲裁操作:當(dāng)多個(gè)內(nèi)機(jī)同時(shí)接入can總線時(shí),判斷是否存在沒(méi)有發(fā)生過(guò)沖突的內(nèi)機(jī),若是,則can總線允許沒(méi)有發(fā)生過(guò)沖突的所有內(nèi)機(jī)接入can總線并執(zhí)行步驟b;若否,則can總線比較本次接入的所有內(nèi)機(jī)的優(yōu)先級(jí),允許優(yōu)先級(jí)最高的內(nèi)機(jī)接入can總線,取消其他內(nèi)機(jī)的本次接入并將其他內(nèi)機(jī)的本次接入認(rèn)定為發(fā)生沖突,其他內(nèi)機(jī)重新進(jìn)入步驟e;
10、執(zhí)行設(shè)定發(fā)送時(shí)隙操作:當(dāng)存在發(fā)生過(guò)沖突的內(nèi)機(jī)被允許接入can總線后,發(fā)生過(guò)沖突的內(nèi)機(jī)需設(shè)定發(fā)送時(shí)隙節(jié)點(diǎn),在發(fā)送時(shí)隙節(jié)點(diǎn)向外機(jī)發(fā)送數(shù)據(jù)包。
11、優(yōu)選的,在所述步驟a中,包括:
12、步驟a1:將唯一mac地址從左至右每三位十六進(jìn)制數(shù)字劃分成四個(gè)轉(zhuǎn)換區(qū)間,在第一和第二個(gè)轉(zhuǎn)換區(qū)間中,分別固定取前兩位十六進(jìn)制數(shù)字輸入哈希函數(shù)得到第一轉(zhuǎn)換值和第二轉(zhuǎn)換值,在第三和第四個(gè)轉(zhuǎn)換區(qū)間中,分別任意取兩位十六進(jìn)制數(shù)字輸入哈希函數(shù)得到第三轉(zhuǎn)換值和第四轉(zhuǎn)換值,所得到的所有轉(zhuǎn)換值均為四位十六進(jìn)制的數(shù)字;
13、步驟a2:取所有轉(zhuǎn)換值的最后兩位十六進(jìn)制數(shù)字,轉(zhuǎn)換為十進(jìn)制數(shù)字以得到四個(gè)ip字段,將四個(gè)ip字段組合形成候選ip地址。
14、優(yōu)選的,在執(zhí)行所述步驟b之前,還包括執(zhí)行如下步驟:
15、設(shè)置沖突計(jì)數(shù)器,內(nèi)機(jī)緩存初始參數(shù),初始參數(shù)包括候選ip地址、沖突計(jì)數(shù)器的次數(shù)和初始優(yōu)先值,初始時(shí),所述沖突計(jì)數(shù)器的次數(shù)為零;
16、所述沖突計(jì)數(shù)器用于記錄內(nèi)機(jī)因沖突而重試的次數(shù);
17、所述初始優(yōu)先值用于執(zhí)行can總線仲裁操作時(shí),can總線根據(jù)初始優(yōu)先值確定內(nèi)機(jī)的優(yōu)先級(jí),初始優(yōu)先值為唯一mac地址的最后一位十六進(jìn)制數(shù)字;
18、執(zhí)行所述步驟b時(shí),內(nèi)機(jī)接入can總線向外機(jī)發(fā)送數(shù)據(jù)包,所述數(shù)據(jù)包還包括初始優(yōu)先值。
19、優(yōu)選的,在所述步驟e中,執(zhí)行退避操作包括:
20、當(dāng)內(nèi)機(jī)發(fā)生沖突后,更新內(nèi)機(jī)的沖突計(jì)數(shù)器的次數(shù),根據(jù)公式一計(jì)算內(nèi)機(jī)的等待時(shí)間,內(nèi)機(jī)在等待時(shí)間結(jié)束后,方可重新接入can總線;
21、--公式一;
22、表示內(nèi)機(jī)的等待時(shí)長(zhǎng);
23、表示基礎(chǔ)等待單位時(shí)長(zhǎng),為預(yù)設(shè)值;
24、n表示更新后的沖突計(jì)數(shù)器的次數(shù);
25、當(dāng)內(nèi)機(jī)的等待時(shí)長(zhǎng)超過(guò)預(yù)設(shè)的允許等待值時(shí),將內(nèi)機(jī)的沖突計(jì)數(shù)器的次數(shù)歸零。
26、優(yōu)選的,在所述步驟e中,執(zhí)行can總線仲裁操作包括:
27、當(dāng)多個(gè)內(nèi)機(jī)同時(shí)接入can總線時(shí),若沒(méi)有未發(fā)生過(guò)沖突的內(nèi)機(jī),則根據(jù)如下公式二更新本次接入的所有內(nèi)機(jī)的初始優(yōu)先值,can總線根據(jù)更新后的優(yōu)先值比較內(nèi)機(jī)的優(yōu)先級(jí),將優(yōu)先級(jí)最高的內(nèi)機(jī)允許接入can總線,其他內(nèi)機(jī)取消本次接入并認(rèn)定為發(fā)生沖突,更新沖突計(jì)數(shù)器的次數(shù),重新進(jìn)入步驟e;
28、其中,優(yōu)先值越大的內(nèi)機(jī),優(yōu)先級(jí)越低;
29、--公式二;
30、表示更新后的優(yōu)先值;
31、表示未更新的優(yōu)先值;
32、表示更新后的沖突計(jì)數(shù)器的次數(shù)值的二進(jìn)制數(shù);
33、m表示左移的位數(shù),為預(yù)設(shè)的常數(shù)。
34、優(yōu)選的,在所述步驟e中,執(zhí)行設(shè)定發(fā)送時(shí)隙操作包括:
35、當(dāng)存在發(fā)生過(guò)沖突的內(nèi)機(jī)被允許接入can總線后,發(fā)生過(guò)沖突的內(nèi)機(jī)根據(jù)公式三設(shè)定發(fā)送時(shí)隙節(jié)點(diǎn),在發(fā)送時(shí)隙節(jié)點(diǎn)向外機(jī)發(fā)送數(shù)據(jù)包;
36、--公式三;
37、表示設(shè)定好的發(fā)送時(shí)隙節(jié)點(diǎn),發(fā)生過(guò)沖突的內(nèi)機(jī)在該發(fā)送時(shí)隙節(jié)點(diǎn)向外機(jī)發(fā)送數(shù)據(jù)包;
38、表示第四轉(zhuǎn)換值得到的ip字段值;
39、表示預(yù)設(shè)的字節(jié)常數(shù),為64或8;
40、%表示取余數(shù);
41、表示一個(gè)時(shí)隙內(nèi)劃分后的單位基礎(chǔ)時(shí)隙;
42、n表示更新后的沖突計(jì)數(shù)器的次數(shù);
43、表示沖突發(fā)生后需要增加的時(shí)隙單位長(zhǎng)度。
44、優(yōu)選的,在所述步驟d中,外機(jī)向內(nèi)機(jī)回復(fù)確認(rèn)信號(hào)包括:
45、對(duì)應(yīng)ip地址的有效期。
46、優(yōu)選的,在所述步驟d中,當(dāng)內(nèi)機(jī)將候選ip地址鎖定并寫(xiě)入非易失存儲(chǔ)器后,還包括:
47、內(nèi)機(jī)間隔預(yù)設(shè)時(shí)間向外機(jī)發(fā)送一次心跳包,當(dāng)外機(jī)在預(yù)設(shè)次數(shù)內(nèi)沒(méi)有收到心跳包,則認(rèn)定內(nèi)機(jī)的ip地址無(wú)效,內(nèi)機(jī)需重新執(zhí)行步驟a至步驟e。
48、本發(fā)明相對(duì)于現(xiàn)有技術(shù)的有益效果:
49、本發(fā)明通過(guò)內(nèi)機(jī)的唯一mac地址進(jìn)行哈希轉(zhuǎn)換得到ip地址,以分散ip地址的手段減少ip重復(fù)率,通過(guò)沖突次數(shù)計(jì)算內(nèi)機(jī)沖突后的重試等待時(shí)間和動(dòng)態(tài)調(diào)整優(yōu)先級(jí)以解決內(nèi)機(jī)同時(shí)沖突的問(wèn)題,通過(guò)設(shè)置發(fā)送時(shí)隙節(jié)點(diǎn)徹底避免沖突,從而提高內(nèi)機(jī)地址分配的效率和成功率。