智能家居系統(tǒng)的設(shè)備的程序無線升級方法
【專利摘要】本發(fā)明涉及智能家居系統(tǒng)的設(shè)備的程序無線升級方法,其包括:設(shè)備A讀取設(shè)備B的HIB信息并對所述HIB信息進(jìn)行保存;設(shè)備A向設(shè)備B發(fā)送擦除命令,以對所述設(shè)備B的存儲器中的數(shù)據(jù)進(jìn)行擦除;設(shè)備A將其保存的程序和HIB信息發(fā)送至設(shè)備B,以使所述設(shè)備B的存儲器對來自設(shè)備A的程序和HIB信息進(jìn)行保存。本發(fā)明能夠最大限度確保升級的穩(wěn)定與成功性,使用的是點對點升級,而且采用了多種方法進(jìn)行異常的處理,包括分包發(fā)送時需要ACK應(yīng)答、通信質(zhì)量不好時進(jìn)行信道的切換。
【專利說明】智能家居系統(tǒng)的設(shè)備的程序無線升級方法
[0001]
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及智能家居系統(tǒng)的設(shè)備的程序無線升級方法。
[0003]
【背景技術(shù)】
[0004]在智能燈光控制系統(tǒng)中,無論實現(xiàn)方式如何、基于何種通信協(xié)議、組網(wǎng)方式如何,該系統(tǒng)中最為核心的組成設(shè)備無外乎兩種:控制設(shè)備及LED燈組(當(dāng)然有些系統(tǒng)比如基于Zigbee協(xié)議的會存在協(xié)調(diào)器,基于Wif i的存在路由器或Gateway連接Internet等,但非核心關(guān)鍵設(shè)備,與燈光的控制沒有很大關(guān)系,只是用來建立網(wǎng)絡(luò)拓?fù)?,方便燈光控?,對于這兩種設(shè)備而言,實際使用中一般都是一對多的概念模型,此模型相對于點對點的模型有成本、控制方便性上的優(yōu)勢。那么當(dāng)需要對設(shè)備進(jìn)行程序升級時傳統(tǒng)的方式就會非常麻煩。對于遙控設(shè)備,由于其數(shù)量較少還可以采用傳統(tǒng)的USB、SD卡燈有線數(shù)據(jù)傳輸方式,但是燈組就無法使用傳統(tǒng)的方式進(jìn)行升級。一方面是由于其數(shù)量多,二是其所處的地理位置不定,在安裝后不可能也不現(xiàn)實將其拆卸升級后再次安裝,畢竟繁瑣而且成本高,而且需要專門的維護(hù)人員進(jìn)行操作,人力資本過高?;谶@些因素,現(xiàn)有的智能燈控系統(tǒng)中,很多設(shè)備直接使用出廠固化的程序而不提供后期的升級功能,那么如果需要新程序的話就需要整個燈組的替換,這顯然不是市場用戶所希望看到的。拓展到整個智能家居系統(tǒng)來看的話,許多智能用電設(shè)備也不具備程序升級的功能。
[0005]
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于提出一種智能家居系統(tǒng)的設(shè)備的程序升級方法,其能解決目前的智能家居系統(tǒng)的設(shè)備的程序升級不便的問題。
[0007]為了達(dá)到上述目的,本發(fā)明所采用的技術(shù)方案如下:
智能家居系統(tǒng)的設(shè)備的程序無線升級方法,所述智能家居系統(tǒng)至少包括設(shè)備A和設(shè)備B,且設(shè)備A的程序的版本比設(shè)備B的程序的版本高,設(shè)備A與設(shè)備B之間進(jìn)行無線通信,其包括以下步驟:
步驟1、設(shè)備A讀取設(shè)備B的HIB信息并對所述HIB信息進(jìn)行保存,所述HIB信息至少包括設(shè)備的硬件地址信息;
步驟2、設(shè)備A向設(shè)備B發(fā)送擦除命令,以對所述設(shè)備B的存儲器中的數(shù)據(jù)進(jìn)行擦除;步驟3、設(shè)備A將其保存的程序和HIB信息發(fā)送至設(shè)備B,以使所述設(shè)備B的存儲器對來自設(shè)備A的程序和HIB信息進(jìn)行保存。
[0008]優(yōu)選的,步驟I之前還有以下步驟:設(shè)備A向設(shè)備B發(fā)送升級命令,若設(shè)備A在預(yù)設(shè)時間內(nèi)收到設(shè)備B返回的確認(rèn)信息,則進(jìn)入步驟1,否則結(jié)束升級流程。
[0009]優(yōu)選的,設(shè)備A與設(shè)備B之間采用IEEE802.15.4協(xié)議進(jìn)行通信,在完成步驟3之前,若設(shè)備A判斷到正在使用的通信信道被干擾時,則向設(shè)備B發(fā)送信道切換命令,以使設(shè)備A與設(shè)備B切換到另一相同的通信信道進(jìn)行通信。
[0010]優(yōu)選的,所述步驟3具體包括如下子步驟:
步驟3a、設(shè)備A對其保存的程序和HIB信息進(jìn)行分包處理,并采用分包的方式發(fā)送至設(shè)備B ;
步驟3b、設(shè)備B接收完每一數(shù)據(jù)包后,均向設(shè)備A返回一已接收信息;
步驟3c、設(shè)備A在接收到所述已接收信息后,才繼續(xù)向設(shè)備B發(fā)送下一數(shù)據(jù)包;
步驟3d、當(dāng)設(shè)備B接收完所有數(shù)據(jù)包后,對所有數(shù)據(jù)包進(jìn)行整合以得到來自設(shè)備A的程序和HIB信息,并進(jìn)行CRC完整性校驗,若校驗失敗,則結(jié)束升級流程,若校驗成功,則向設(shè)備A發(fā)送已完成信息;
步驟3e、設(shè)備A接收到所述已完成信息后,向設(shè)備B發(fā)送重啟命令;
步驟3f、設(shè)備B接收到重啟命令后,將來自設(shè)備A的程序和HIB信息保存至存儲器后,進(jìn)行重啟。
[0011 ] 進(jìn)一步優(yōu)選的,在步驟3c中,若設(shè)備A在預(yù)設(shè)時間內(nèi)接收不到已接收信息,則對本次發(fā)送的數(shù)據(jù)包進(jìn)行重新發(fā)送,若在預(yù)設(shè)次數(shù)內(nèi)仍然接收不到已接收信息,則結(jié)束升級流程,否則,繼續(xù)向設(shè)備B發(fā)送下一數(shù)據(jù)包。
[0012]優(yōu)選的,所述設(shè)備A為智能家居系統(tǒng)中任一遙控器,所述設(shè)備B為智能家居系統(tǒng)中任一具有無線通信功能的LED燈組模塊。
[0013]本發(fā)明具有如下有益效果:
能夠最大限度確保升級的穩(wěn)定與成功性,使用的是點對點升級,而且采用了多種方法進(jìn)行異常的處理,包括分包發(fā)送時需要ACK應(yīng)答、通信質(zhì)量不好時進(jìn)行信道的切換。
[0014]
【專利附圖】
【附圖說明】
[0015]圖1為本發(fā)明較佳實施例的智能家居系統(tǒng)的設(shè)備的程序升級方法的原理流程圖; 圖2為本發(fā)明較佳實施例的智能家居系統(tǒng)的設(shè)備的程序升級方法的具體應(yīng)用案例的
流程圖;
圖3為本發(fā)明較佳實施例的智能家居系統(tǒng)的設(shè)備的程序升級方法的具體應(yīng)用案例的切換信道的流程圖。
[0016]
【具體實施方式】
[0017]下面,結(jié)合附圖以及【具體實施方式】,對本發(fā)明做進(jìn)一步描述。
[0018]如圖1所示,一種智能家居系統(tǒng)的設(shè)備的程序無線升級方法,所述智能家居系統(tǒng)至少包括設(shè)備A和設(shè)備B,且設(shè)備A的程序的版本比設(shè)備B的程序的版本高,設(shè)備A與設(shè)備B之間采用IEEE802.15.4協(xié)議進(jìn)行無線通信。IEEE802.15.4協(xié)議支持2.4Ghz全球公用頻段,該協(xié)議頻寬為2.4-2.48Ghz,以5Mhz為一個信道寬度,共可分為16個通信信道,不同通信信道之間無法進(jìn)行通信。設(shè)備A的升級過程可采用傳統(tǒng)方式進(jìn)行。
[0019]本實施例的程序無線升級方法包括以下步驟: 步驟S1、設(shè)備A進(jìn)入OTA模式,設(shè)備A選擇一個通信信道(即設(shè)置通信頻率及發(fā)射功率)。設(shè)備A向設(shè)備B發(fā)送升級命令。本實施例所述的OTA模式是基于IEEE802.15.4協(xié)議實現(xiàn)的,并不是傳統(tǒng)的空中下載技術(shù)(On The Air, 0ΤΑ)。
[0020]步驟S2、若設(shè)備A在預(yù)設(shè)時間(如5s)內(nèi)收到設(shè)備B返回的確認(rèn)信息,則進(jìn)入步驟S3,否則結(jié)束升級流程。該步驟用于確認(rèn)雙方是否處于空閑狀態(tài)。
[0021]步驟S3、設(shè)備A讀取設(shè)備B的HIB信息并對所述HIB信息進(jìn)行保存,所述HIB信息至少包括設(shè)備的硬件地址信息等必要信息,所述硬件地址信息包括IEEE的標(biāo)準(zhǔn)地址和IEEE802.15.4通信的必要信息等,HIB信息還可以包括其他輔助類的信息,例如安全信息等。由于Flash需要先擦除后寫入,為確保HIB信息的不丟失,需要升級前將HIB信息讀取出來,然后和升級程序一同寫入設(shè)備B的Flash。
[0022]步驟S4、設(shè)備A向設(shè)備B發(fā)送擦除命令,以對所述設(shè)備B的存儲器中的數(shù)據(jù)進(jìn)行擦除。設(shè)備B的存儲器為FLASH。
[0023]步驟S5、設(shè)備A對其保存的程序和HIB信息進(jìn)行分包處理,并采用分包的方式發(fā)送至設(shè)備B。所述分包處理為將程序和HIB信息切分成多個數(shù)據(jù)包。
[0024]步驟S6、設(shè)備B接收完每一數(shù)據(jù)包后,均向設(shè)備A返回一已接收信息。
[0025]步驟S7、若設(shè)備A在預(yù)設(shè)時間(如IOs)內(nèi)接收不到已接收信息,則執(zhí)行步驟S8,否貝IJ,執(zhí)行步驟Sio。
[0026]步驟S8、對本次發(fā)送的數(shù)據(jù)包進(jìn)行重新發(fā)送。
[0027]步驟S9、若在預(yù)設(shè)次數(shù)(如3次)內(nèi)仍然接收不到已接收信息,則結(jié)束升級流程,否貝U,執(zhí)行步驟SlO。
[0028]步驟S10、繼續(xù)向設(shè)備B發(fā)送下一數(shù)據(jù)包。
[0029]步驟S11、當(dāng)設(shè)備B接收完所有數(shù)據(jù)包后,對所有數(shù)據(jù)包進(jìn)行整合以得到來自設(shè)備A的程序和HIB信息,并進(jìn)行CRC完整性校驗,若校驗失敗,則結(jié)束升級流程,若校驗成功,則執(zhí)行步驟S12。
[0030]步驟S12、設(shè)備B向設(shè)備A發(fā)送已完成信息。
[0031]步驟S13、設(shè)備A接收到所述已完成信息后,向設(shè)備B發(fā)送重啟命令。
[0032]步驟S14、設(shè)備B接收到重啟命令后,將來自設(shè)備A的程序和HIB信息保存至存儲器后,進(jìn)行重啟,從而完成整個升級流程。
[0033]通信質(zhì)量的不穩(wěn)定是無線通信中不可避免的問題。比如自然環(huán)境的干擾、系統(tǒng)內(nèi)其他通訊的干擾均會對升級的成功性造成影響。為了盡量避免這個問題,本方法中使用了多頻道切換的方法,以最大程度上確保升級的穩(wěn)定性。具體實現(xiàn)手段為:在完成整個升級流程之前,若設(shè)備A判斷到正在使用的通信信道被干擾時(即通信質(zhì)量差、不穩(wěn)定),則向設(shè)備B發(fā)送信道切換命令,以使設(shè)備A與設(shè)備B切換到另一相同的通信信道進(jìn)行通信。
[0034]結(jié)合圖2和圖3所示,為本實施例的程序無線升級方法的具體應(yīng)用案例。其中,以遙控器(設(shè)備A)和LED燈組模塊(設(shè)備B,圖中簡稱為燈組)之間的升級流程作為例子進(jìn)行說明。
[0035]如圖2所示,遙控器向燈組發(fā)送ping包(即升級命令),燈組返回ACK確認(rèn)(即確認(rèn)信息),遙控器讀取燈組的HIB信息,燈組返回其HIB信息至遙控器,遙控器向燈組發(fā)送FLASH擦除命令,燈組返回ACK確認(rèn),遙控器分包發(fā)送數(shù)據(jù)包,燈組返回ACK確認(rèn),當(dāng)數(shù)據(jù)包發(fā)送完畢后,燈組進(jìn)行CRC完整性校驗,并返回CRC數(shù)據(jù)給遙控器,遙控器再發(fā)送Rest (重啟)命令,燈組將完整數(shù)據(jù)包保存至FLASH并拷貝至內(nèi)部ROM,然后重啟。
[0036]如圖3所示,當(dāng)遙控器檢測到通信超時或接收信號差時,向燈組發(fā)送切換信道命令,表明需要更換信道。燈組接收后,返回ACK表明已收到,然后進(jìn)行切換,A收到B返回的ACK后同樣切換到目標(biāo)信道。接下來繼續(xù)OTA升級的正常步驟。
[0037]本實施例借助于OTA的思想基于IEEE802.15.4協(xié)議在智能家居系統(tǒng)中實現(xiàn)了設(shè)備的程序無線升級,并通過分包數(shù)據(jù)ACK校驗及多信道切換技術(shù),具有極強的可靠性。而且相較于傳統(tǒng)的有線升級,具有簡單、快捷的特點。無需對設(shè)備進(jìn)行拆卸,極大地降低了人力資本。
[0038]此外,本實施例的核心思想也可用于多設(shè)備同時升級,此時可以利用廣播直接進(jìn)行升級,升級過程中不進(jìn)行任何校驗,直接由接收方進(jìn)行最后的數(shù)據(jù)完整性校驗。又或者遙控器端采用多線程的方式進(jìn)行處理,同樣采取分包數(shù)據(jù)的ACK應(yīng)答,一定程度上進(jìn)行穩(wěn)定性的保證。
[0039]對于本領(lǐng)域的技術(shù)人員來說,可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及變形,而所有的這些改變以及變形都應(yīng)該屬于本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.智能家居系統(tǒng)的設(shè)備的程序無線升級方法,所述智能家居系統(tǒng)至少包括設(shè)備A和設(shè)備B,且設(shè)備A的程序的版本比設(shè)備B的程序的版本高,設(shè)備A與設(shè)備B之間進(jìn)行無線通信,其特征在于,包括以下步驟: 步驟1、設(shè)備A讀取設(shè)備B的HIB信息并對所述HIB信息進(jìn)行保存,所述HIB信息至少包括設(shè)備的硬件地址信息; 步驟2、設(shè)備A向設(shè)備B發(fā)送擦除命令,以對所述設(shè)備B的存儲器中的數(shù)據(jù)進(jìn)行擦除; 步驟3、設(shè)備A將其保存的程序和HIB信息發(fā)送至設(shè)備B,以使所述設(shè)備B的存儲器對來自設(shè)備A的程序和HIB信息進(jìn)行保存。
2.如權(quán)利要求1所述的智能家居系統(tǒng)的設(shè)備的程序無線升級方法,其特征在于,步驟I之前還有以下步驟:設(shè)備A向設(shè)備B發(fā)送升級命令,若設(shè)備A在預(yù)設(shè)時間內(nèi)收到設(shè)備B返回的確認(rèn)信息,則進(jìn)入步驟1,否則結(jié)束升級流程。
3.如權(quán)利要求1所述的智能家居系統(tǒng)的設(shè)備的程序無線升級方法,其特征在于,設(shè)備A與設(shè)備B之間采用IEEE802.15.4協(xié)議進(jìn)行通信,在完成步驟3之前,若設(shè)備A判斷到正在使用的通信信道被干擾時,則向設(shè)備B發(fā)送信道切換命令,以使設(shè)備A與設(shè)備B切換到另一相同的通信信道進(jìn)行通信。
4.如權(quán)利要求1所述的智能家居系統(tǒng)的設(shè)備的程序無線升級方法,其特征在于,所述步驟3具體包括如下子步驟: 步驟3a、設(shè)備A對其保存的程序和HIB信息進(jìn)行分包處理,并采用分包的方式發(fā)送至設(shè)備B ; 步驟3b、設(shè)備B接收完每一數(shù)據(jù)包后,均向設(shè)備A返回一已接收信息; 步驟3c、設(shè)備A在接收到所述已接收信息后,才繼續(xù)向設(shè)備B發(fā)送下一數(shù)據(jù)包; 步驟3d、當(dāng)設(shè)備B接收完所有數(shù)據(jù)包后,對所有數(shù)據(jù)包進(jìn)行整合以得到來自設(shè)備A的程序和HIB信息,并進(jìn)行CRC完整性校驗,若校驗失敗,則結(jié)束升級流程,若校驗成功,則向設(shè)備A發(fā)送已完成信息; 步驟3e、設(shè)備A接收到所述已完成信息后,向設(shè)備B發(fā)送重啟命令; 步驟3f、設(shè)備B接收到重啟命令后,將來自設(shè)備A的程序和HIB信息保存至存儲器后,進(jìn)行重啟。
5.如權(quán)利要求4所述的智能家居系統(tǒng)的設(shè)備的程序無線升級方法,其特征在于,在步驟3c中,若設(shè)備A在預(yù)設(shè)時間內(nèi)接收不到已接收信息,則對本次發(fā)送的數(shù)據(jù)包進(jìn)行重新發(fā)送,若在預(yù)設(shè)次數(shù)內(nèi)仍然接收不到已接收信息,則結(jié)束升級流程,否則,繼續(xù)向設(shè)備B發(fā)送下一數(shù)據(jù)包。
6.如權(quán)利要求1所述的智能家居系統(tǒng)的設(shè)備的程序無線升級方法,其特征在于,所述設(shè)備A為智能家居系統(tǒng)中任一遙控器,所述設(shè)備B為智能家居系統(tǒng)中任一具有無線通信功能的LED燈組模塊。
【文檔編號】H04L1/00GK103973502SQ201410231361
【公開日】2014年8月6日 申請日期:2014年5月28日 優(yōu)先權(quán)日:2014年5月28日
【發(fā)明者】梅志國 申請人:梅志國