亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

zigbee設備的固件升級方法和裝置的制造方法

文檔序號:10488775閱讀:507來源:國知局
zigbee設備的固件升級方法和裝置的制造方法
【專利摘要】本發(fā)明實施例公開了一種zigbee設備的固件升級方法和裝置,該固件升級方法包括:接收到網關下發(fā)的升級通知后,若滿足無線升級條件,則從網關中請求獲取新固件信息;當檢測到本地固件與新固件信息匹配且校驗有效時,向網關發(fā)送更新固件確認請求;當接收到網關下發(fā)的更新固件確認命令時,將本地固件加載到設備處理器中并校驗有效后運行以完成固件升級。本發(fā)明提供的固件升級方法和裝置可減少zigbee設備進行固件升級所需的時間,無需通過物理接口進行固件升級,因此具有可靠、高效的優(yōu)點,還降低了zigbee設備的固件升級成本。
【專利說明】
z i gbee設備的固件升級方法和裝置
技術領域
[0001]本發(fā)明實施例涉及固件升級技術,尤其涉及一種zigbee設備的固件升級方法和裝置。
【背景技術】
[0002]ZigBee(紫蜂協(xié)議)是一種低功耗、低速率、低成本的短距離無線通信技術,采用zigbee技術進行通信的設備稱為zigbee設備。
[0003]在實際應用中,當zigbee設備中的固件缺陷或者功能擴展時,需要對zigbee設備的固件進行更新?,F(xiàn)有的ZigBee設備的固件更新方式為本地固件更新,zigbee設備可通過其中的編程接口、或者通用異步收發(fā)傳輸器(UART)接口、或者通用串行總線(USB)接口進行本地固件更新。
[0004]顯而易見的,在zigbee設備設計初期可預留硬件接口或者可拆卸外殼,以使zigbee設備基于接口進行本地固件更新,然而這樣會額外增加設備成本、增加設備設計和制造難度,使得該類zigbee設備更新固件的成本較大。若ZigBee設備不預留編程接口又具有不可拆卸外殼,或者ZigBee設備的安裝位置不易接近,則該類zigbee設備不易更新固件,若必須更新固件則更新固件的成本很大。

【發(fā)明內容】

[0005]本發(fā)明實施例提供一種zigbee設備的固件升級方法和裝置,以解決現(xiàn)有技術中z igbee設備更新固件的成本較大的問題。
[0006]第一方面,本發(fā)明實施例提供了一種zigbee設備的固件升級方法,該固件升級方法包括:
[0007]接收到網關下發(fā)的升級通知后,若滿足無線升級條件,則從所述網關中請求獲取新固件信息;
[0008]當檢測到本地固件與所述新固件信息匹配且校驗有效時,向所述網關發(fā)送更新固件確認請求;
[0009]當接收到所述網關下發(fā)的更新固件確認命令時,將所述本地固件加載到設備處理器中并校驗有效后運行以完成固件升級。
[0010]進一步地,所述zigbee設備滿足的無線升級條件至少包括:所述zigbee設備支持無線升級固件功能,所述zigbee設備的工作電壓正常,以及所述zigbee設備具有有效的片外存儲器。
[0011]進一步地,所述新固件信息至少包括:新固件適用設備信息,新固件版本信息,以及校驗碼。
[0012]進一步地,從所述網關中請求獲取新固件信息之后,還包括:
[0013]當檢測到固件存儲區(qū)域的基本信息與所述新固件信息不完全一致時,從所述網關中查詢所述新固件的大小,并在所述新固件大小與所述固件存儲區(qū)域大小一致時從所述網關中查詢所述新固件的內容重復區(qū)域;
[0014]從所述網關中依次請求該新固件的數(shù)據并對應填充在所述固件存儲區(qū)域中,當請求到所述內容重復區(qū)域中數(shù)據時,采用與所述內容重復區(qū)域中數(shù)據相同的本地數(shù)據對應填充在所述固件存儲區(qū)域中;
[0015]對接收完成的所述固件存儲區(qū)域中的本地固件進行有效性校驗。
[0016]進一步地,所述內容重復區(qū)域的信息至少包括:區(qū)域起始地址、區(qū)域容量和區(qū)域數(shù)據。
[0017]進一步地,向所述網關發(fā)送更新固件確認請求包括:
[0018]在設定時間閾值內,以設定時間周期向所述網關發(fā)送更新固件確認請求,直至接收到所述網關下發(fā)的更新固件確認命令為止;以及,
[0019]若在所述設定時間閾值內未接收到所述更新固件確認命令時,停止發(fā)送所述更新固件確認請求并在設備復位前等待所述更新固件確認命令。
[0020]進一步地,當接收到所述網關下發(fā)的更新固件確認命令時,將所述本地固件加載到設備處理器中并校驗有效后運行以完成固件升級,包括:
[0021]當接收到所述網關在設備復位前任意時刻下發(fā)的更新固件確認命令時,將所述本地固件加載到設備處理器中;
[0022]校驗位于所述處理器中的本地固件,并在該本地固件校驗有效后運行并標記升級完成。
[0023]進一步地,還包括:
[0024]若不滿足無線升級條件時,向所述網關上報錯誤代碼以使所述網關退出該zigbee設備的升級流程;或者,
[0025]當檢測到所述新固件大小與所述固件存儲區(qū)域的大小不一致時,向所述網關上報錯誤代碼以使所述網關退出該zigbee設備的升級流程;或者,
[0026]若接收完成的所述固件存儲區(qū)域中的本地固件校驗無效時,向所述網關上報錯誤代碼以使所述網關退出該zigbee設備的升級流程。
[0027]第二方面,本發(fā)明實施例還提供了一種zigbee設備的固件升級裝置,配置在如第一方面所述的zigbee設備中,該固件升級裝置包括:
[0028]獲取固件模塊,用于接收到網關下發(fā)的升級通知后,若滿足無線升級條件,則從所述網關獲取新固件信息;
[0029]校驗固件模塊,用于當檢測到本地固件與所述新固件信息匹配且校驗有效時,向所述網關發(fā)送更新固件確認請求;
[0030]升級固件模塊,用于當接收到所述網關下發(fā)的更新固件確認命令時,將所述本地固件加載到設備處理器中并校驗有效后運行以完成固件升級。
[0031]本發(fā)明實施例提供的zigbee設備的固件升級方法和裝置,zigbee設備通過向網關反饋是否滿足無線升級條件,以避免網關對無法升級的zigbee設備進行升級操作,使得網關和zigbee設備的升級流程更加高效,隨后基于無線通信技術從網關獲取新固件數(shù)據并對本地固件進行校驗,以在本地固件與新固件匹配且校驗有效后將本地固件加載至zigbee設備的處理器中,由此完成zigbee設備的固件升級流程。該技術方案可減少zigbee設備進行固件升級所需的時間,具有可靠、高效的特點,與現(xiàn)有技術相比,無需通過物理接口進行固件升級,因此降低了 zigbee設備的升級成本。
【附圖說明】
[0032]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖做一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0033]圖1是本發(fā)明實施例一提供的zigbee設備的固件升級方法的流程圖;
[0034]圖2是本發(fā)明實施例二提供的zigbee設備的固件升級方法的流程圖;
[0035]圖3是本發(fā)明實施例三提供的zigbee設備的固件升級裝置的示意圖;
[0036]圖4是圖3所示固件升級裝置的執(zhí)行過程;
[0037]圖5是本發(fā)明實施例四提供的網關控制zigbee設備升級的流程圖。
【具體實施方式】
[0038]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,以下將參照本發(fā)明實施例中的附圖,通過實施方式清楚、完整地描述本發(fā)明的技術方案,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0039]圖1為本發(fā)明實施例一提供的zigbee設備的固件升級方法的流程圖。本實施例可適用于zigbee設備基于無線通信傳輸技術進行固件升級的情況,該方法可以由固件升級裝置來執(zhí)行,該固件升級裝置可通過軟/硬件實現(xiàn),該固件升級裝置配置在zigbee設備中應用。
[0040]本實施例提供的zigbee設備的固件升級方法,具體包括如下步驟:
[0041]S110、接收到網關下發(fā)的升級通知后,若滿足無線升級條件,則從網關中請求獲取新固件信息。
[0042]在本實施例中可選zigbee設備是升級指定網關下的任意一個zigbee設備,在本發(fā)明中還可選zigbee設備是和新固件相匹配的任意一個在線zigbee設備,但在本發(fā)明中不對z igbee設備進行具體限制。
[0043]當ZigBee設備接收到網關下發(fā)的升級通知后,zigbee設備需要檢測設備自身是否滿足無線升級條件。若檢測到zigbee設備不滿足無線升級條件時,zigbee設備會向網關上報不支持升級應答,以使網關退出該zigbee設備的升級流程并繼續(xù)對下一個zigbee設備進行無線升級操作,在此不支持升級應答為錯誤代碼,該錯誤代碼標識了當前zigbee設備不支持無線升級及原因。若zigbee設備檢測到設備自身滿足無線升級條件,則zigbee設備會向網關返回升級應答,該升級應答中標識了zigbee設備支持升級,隨后zigbee設備會向網關上報獲取新固件請求,以從網關中獲取新固件信息。需要說明的是,zigbee設備支持無線升級后,zigbee設備在固件升級流程中向網關上報的相關信息以及從網關獲取的相關信息和數(shù)據均基于無線通信方式進行通信,在此以及下文中不再贅述。
[0044]本步驟中zigbee設備向網關反饋是否支持無線升級,可使當前zigbee設備不支持無線升級時網關迅速結束該升級流程并對下一個z igbee設備進行無線升級操作,便于高效、快速的實現(xiàn)網關對Z igbee設備的升級固件操作。zigbee設備向網關反饋是否升級的應答,可避免網關對無法升級的zigbee設備進行升級操作,使得網關和zigbee設備的升級流程更加高效。
[0045]S120、當檢測到本地固件與新固件信息匹配且校驗有效時,向網關發(fā)送更新固件確認請求。
[0046]在本實施例中可選z igbee設備具有片外flash存儲器,片外flash存儲器用于在升級過程中臨時存放新固件以及相關的升級狀態(tài),若zigbee設備還未進行過無線固件升級,則該片外flash存儲器中未存儲固件。本實施例中與新固件信息進行匹配的對象為片外flash存儲器的固件存儲區(qū)域,該固件存儲區(qū)域用于存儲本地固件,而與新固件進行校驗的對象為存儲的固件。
[0047]當zigbee設備基于無線通信技術從網關獲取到新固件信息后,zigbee設備會將新固件信息和固件存儲區(qū)域的相關信息進行匹配,若檢測到信息不一致,則在新固件大小與固件存儲區(qū)域大小一致時從網關請求獲取新固件數(shù)據塊并更新zigbee設備中的本地固件,以使zigbee設備的固件存儲區(qū)域的信息與新固件信息匹配,需要說明的是,若片外flash存儲器中無固件也判定為信息不一致。若信息一致,則判定固件存儲區(qū)域中存儲有與新固件匹配且校驗有效的本地固件,并向網關上報校驗有效命令幀,此時片外flash存儲器中的本地固件即為新固件,然后向網關發(fā)送更新固件確認請求以進行后續(xù)的固件更新操作。
[0048]本步驟中zigbee設備的本地固件與新固件信息匹配且校驗有效時,說明該本地固件即為zigbee設備待升級的新固件,zigbee設備直接根據該本地固件進行升級,因此具有可靠、高效的優(yōu)勢。
[0049]S130、當接收到網關下發(fā)的更新固件確認命令時,將本地固件加載到設備處理器中并校驗有效后運行以完成固件升級。
[°05°]在本實施例中,當zigbee設備接收到網關下發(fā)的更新固件確認命令后,zigbee設備會將片外flash存儲器中的本地固件加載到zigbee設備的處理器中。然后zigbee設備對加載至處理器中的固件進行校驗,若校驗無效,則zigbee設備再次將本地固件加載到處理器中并校驗,直至校驗有效為止,當處理器中固件校驗有效,則zigbee設備的固件升級完成。
[0051]本發(fā)明實施例提供的zigbee設備的固件升級方法,zigbee設備通過向網關反饋是否支持無線升級,以避免網關對無法升級的zigbee設備進行升級操作,使得網關和zigbee設備的升級流程更加高效,隨后基于無線通信技術從網關獲取新固件數(shù)據并對本地固件進行校驗,以在本地固件與新固件匹配且校驗有效后加載至zigbee設備的處理器中,由此完成zigbee設備的固件升級流程。該無線固件升級方法可減少zigbee設備進行固件升級所需的時間,具有可靠、高效的特點,與現(xiàn)有技術相比,無需通過接口進行固件升級,因此降低了zigbee設備的升級成本。
[0052]示例性的,在上述技術方案的基礎上,對于步驟110的操作,可選zigbee設備滿足的無線升級條件至少包括:z igbee設備支持無線升級固件功能,z igbee設備的工作電壓正常,以及zigbee設備具有有效的片外存儲器。其中,zigbee設備支持無線升級固件功能時,zigbee設備可基于無線通信技術從網關獲取新固件信息及其數(shù)據塊。Zigbee設備工作電壓正常時,zigbee設備可正常實現(xiàn)無線傳輸功能。Zigbee設備有效的片外存儲器用于存儲zigbee設備通過無線傳輸方式從網關獲取的新固件,zigbee設備將該新固件加載到處理器中即可實現(xiàn)z igbee設備的固件無線升級。
[0053]對于zigbee設備的升級條件,若zigbee設備不滿足其中至少一個升級條件時,則zigbee設備不支持升級,zigbee設備會向網關反饋不支持升級應答并使網關結束該設備的升級流程。需要說明的是,zigbee設備檢測自身是否滿足無線升級條件的方式可能會因為zigbee設備的不同而有所改變,因此不具體贅述zigbee設備自檢的過程,但本發(fā)明中不限制zigbee設備自檢的方式。
[0054]示例性的,在上述技術方案的基礎上,可選新固件信息至少包括:新固件適用設備信息,新固件版本信息,以及校驗碼。在此當新固件適用設備信息與固件存儲區(qū)域的相關信息一致,新固件版本信息與固件存儲區(qū)域的相關信息一致,以及固件存儲區(qū)域中的本地固件的校驗碼與新固件信息中的校驗一致,則判定本地固件與新固件信息匹配且校驗有效,此時zigbee設備無需從網關獲取新固件的數(shù)據塊,而是直接將固件存儲區(qū)域中的本地固件加載到處理器中以對zigbee設備的固件進行更新。
[0055]若與新固件信息中的至少一項不一致,則在新固件大小與固件存儲區(qū)域大小一致時從網關請求新固件的數(shù)據塊以更新本地固件,進而zigbee設備根據與新固件匹配的本地固件進行后續(xù)固件升級流程,在此不再贅述。
[0056]在上述技術方案的基礎上,本發(fā)明實施例二還提供一種zigbee設備的固件升級方法。如圖2所示,該固件升級方法與上述實施例的區(qū)別在于,可選對于步驟110的從網關中請求獲取新固件信息的操作之后,還包括:
[0057]S111、當檢測到固件存儲區(qū)域的基本信息與新固件信息不完全一致時,從網關中查詢新固件的大小,并在新固件大小與固件存儲區(qū)域大小一致時從網關中查詢新固件的內容重復區(qū)域。
[0058]可選新固件信息至少包括:新固件適用設備信息,新固件版本信息,以及校驗碼,當zigbee設備檢測到新固件信息中的至少一項與固件存儲區(qū)域及其中的本地固件不一致時,此時zigbee設備需要從網關中請求獲取新固件的數(shù)據塊。
[0059]在獲取數(shù)據塊前,zigbee設備需要判斷該新固件是否有效,即新固件的大小與固件存儲區(qū)域的大小是否一致,若不一致,則zigbee設備向網關上報錯誤代碼以使網關退出該zigbee設備的升級流程并進行下一個zigbee設備的無線升級操作。若大小一致,則從網關中查詢新固件的內容重復區(qū)域。
[0060]在本實施例中新固件由多個字節(jié)組成,其中可能存在若干個大于設定閾值的內容一致的區(qū)域,在升級流程中,被升級的ZigBee設備在向網關請求新固件前先請求這些內容重復區(qū)域的信息,具體包括每一個區(qū)域起始地址、每一個區(qū)域所占存儲空間大小、每一個區(qū)域中的內容,然后在本地形成內容重復區(qū)域描述列表以進行記錄。在后續(xù)請求固件數(shù)據過程中,每請求到這些內容重復區(qū)域,zigbee設備就可以根據查詢的區(qū)域內容直接在片外flash存儲器的固件存儲區(qū)域中相應的位置上直接填充,不需要通過無線通信逐一向網關請求??蛇x內容重復區(qū)域的信息至少包括:區(qū)域起始地址、區(qū)域大小和區(qū)域數(shù)據。
[0061 ]可選設定閾值為1024字節(jié),則新固件中大于或等于1024字節(jié)的區(qū)域均為內容重復區(qū)域,本發(fā)明中不限制設定閾值的大小,不同開發(fā)者可自行對設定閾值進行限定。
[0062]S112、從網關中依次請求新固件的數(shù)據并對應填充在固件存儲區(qū)域中,當請求到內容重復區(qū)域中數(shù)據時,采用與內容重復區(qū)域中數(shù)據相同的本地數(shù)據對應填充在固件存儲區(qū)域中。
[0063]在本實施例中固件存儲區(qū)域為片外存儲器中存儲新固件的區(qū)域。zigbee設備開始從網關中依次請求新固件的數(shù)據,在此zigbee設備從新固件的第一個字節(jié)開始順次請求。其中,zigbee設備每一次請求的數(shù)據可設置為固定容量,如每次請求69字節(jié),但還可選每次請求的數(shù)據容量不固定,在本發(fā)明中不對請求的數(shù)據容量進行限制。
[0064]當zigbee設備依次請求數(shù)據時,zigbee設備會根據內容重復區(qū)域描述列表中的信息判斷是否請求到內容重復區(qū)域中的數(shù)據,具體是判斷請求的數(shù)據地址是否為內容重復區(qū)域的起始地址。若當前請求到內容重復區(qū)域中的數(shù)據,則zigbee設備根據內容重復區(qū)域描述列表中的區(qū)域大小,將本地數(shù)據自動并循環(huán)填充在與內容重復區(qū)域對應的固件存儲區(qū)域中,以此實現(xiàn)對內容重復區(qū)域的數(shù)據的請求。若當前未請求到內容重復區(qū)域中的數(shù)據,則zigbee設備從網關獲取該數(shù)據并對應填充在固件存儲區(qū)域中。
[0065]Zigbee設備依次請求新固件的數(shù)據并對應填充在固件存儲區(qū)域中,即請求的新固件的第i個數(shù)據對應填充在片外存儲器件的固件存儲區(qū)域的第i個地址偏移位置上,直至請求完新固件的數(shù)據。還可選根據請求的數(shù)據地址是否處于內容重復區(qū)域的起始地址和終止地址范圍內,來判斷是否請求到內容重復區(qū)域中數(shù)據,但在本發(fā)明中不限定請求到內容重復區(qū)域中數(shù)據的判斷方式。
[0066]上述操作中zigbee設備請求新固件數(shù)據時,無需請求內容重復區(qū)域的數(shù)據,而僅請求新固件的內容不一致數(shù)據塊,在此設置zigbee設備請求固件的方法為固件簡易壓縮算法,該算法有效減少了固件傳輸過程中需要傳輸?shù)臄?shù)據量、同時減少了固件傳輸?shù)目倳r間,節(jié)省了 zigbee設備的耗電量,也使得zigbee設備固件升級流程更高效。
[0067]S113、對接收完成的固件存儲區(qū)域中的本地固件進行有效性校驗。
[0068]在本步驟中,zigbee設備的片外存儲器的固件存儲區(qū)域中接收并存儲好請求的固件數(shù)據后,zigbee設備片外存儲器中的當前本地固件即為新固件。在此zigbee設備還需要對該本地固件進行有效性校驗,即根據新固件信息中的校驗碼,zigbee設備計算本地固件的校驗碼,并判斷本地固件的校驗碼與新固件信息中的校驗碼是否一致。
[0069]若本地固件的校驗碼與新固件信息中的校驗碼不一致,則判定本地固件校驗無效,則zigbee設備向網關上報錯誤代碼以使網關退出該zigbee設備的升級流程。若一致,則zigbee設備判定該本地固件與新固件匹配且校驗有效,可執(zhí)行后續(xù)升級流程。當檢測到zigbee設備的本地固件與新固件信息匹配且校驗有效時,ZigBee設備向網關上報校驗成功命令幀。
[0070]在上述操作之后,執(zhí)行步驟120的當檢測到本地固件與新固件信息匹配且校驗有效時,向網關發(fā)送更新固件確認請求的操作。在本實施例中可選向網關發(fā)送更新固件確認請求具體包括:在設定時間閾值內,以設定時間周期向網關發(fā)送更新固件確認請求,直至接收到網關下發(fā)的更新固件確認命令為止;以及,若在設定時間閾值內未接收到更新固件確認命令時,停止發(fā)送更新固件確認請求并在設備復位前等待更新固件確認命令。
[0071 ]在本實施例中,可選設定時間閾值為50秒,設定時間周期為10秒,但在本發(fā)明中并不限制設定時間閾值和設定時間周期,開發(fā)者可根據zigbee設備的應用情況自行進行設定。當檢測到zigbee設備的本地固件與新固件信息匹配且校驗有效時,zigbee設備在50秒的時間內,以10秒每次的間隔向網關發(fā)送更新固件確認請求。若網關未在50秒內應答,gpzigbee設備未接收到更新固件確認命令,貝Ijzigbee設備停止向網關發(fā)送更新固件確認請求并在復位前等待接收確認命令。網關在ZigBee設備復位之前的任意時刻應答該更新固件確認請求,z igbee設備執(zhí)行后續(xù)操作。
[0072]在上述操作之后,執(zhí)行步驟130的當接收到網關下發(fā)的更新固件確認命令時,將本地固件加載到設備處理器中并校驗有效后運行以完成固件升級的操作??蛇x該操作具體包括如下步驟:
[0073]S131、當接收到網關在設備復位前任意時刻下發(fā)的更新固件確認命令時,將本地固件加載到設備處理器中。
[0074]本實施例中,zigbee設備復位前任意時刻具體是zigbee設備開始向網關發(fā)送更新固件確認請求直至zigbee設備復位前的任意一個時間點,因此設定時間閾值也處于zigbee設備復位前。當zigbee設備在復位前任意時刻接收到更新固件確認命令,則z igbee設備將當前處于片外存儲器中的本地固件加載到zigbee設備的處理器中以實現(xiàn)對zigbee設備中的固件更新。其中,片外存儲器中還存儲有本地固件。
[0075]S132、校驗位于處理器中的本地固件,并在該本地固件校驗有效后運行并標記升級完成。
[0076]當zigbee設備的處理器中存儲有本地固件后,zigbee設備對加載的本地固件進行有效性校驗,具體地計算該處理器中的本地固件的校驗碼,并根據新固件信息中的校驗碼校驗本地固件的校驗碼是否一致。若計算得出的本地固件的校驗碼與新固件信息中的校驗碼不一致,貝1Jz igbee設備判定加載到處理器中的本地固件校驗無效,此時z igbee設備會重啟,并在重啟后重新從片外存儲器中加載本地固件并校驗,直至處理器中的本地固件校驗有效為止。
[0077]當zigbee設備校驗處理器中的本地固件為有效時,zigbee設備將本地固件標記為升級完成,并重啟。當zigbee設備重新啟動后會立即向網關上報當前正在運行的固件的版本信息。此時zigbee設備的固件升級流程完成。網關接收到zigbee設備上報的固件版本信息后會結束該zigbee設備的升級操作并對下一個zigbee設備進行升級操作。
[0078]需要說明的是,若zigbee設備的標識未更新為升級完成,則重新啟動后,zigbee設備查詢到升級狀態(tài)為未升級,則zigbee設備會重新執(zhí)行固件加載流程并進行固件更新和標記。
[0079]本發(fā)明實施例提供的zigbee設備的固件升級方法,采用簡易的壓縮算法基于無線通信技術從網關獲取新固件數(shù)據,僅需要請求新固件內容重復區(qū)域之外的數(shù)據,并通過本地數(shù)據填充內容重復區(qū)域對應的本地固件區(qū)域,因此有效減少了固件傳輸過程中zigbee設備所需傳輸?shù)臄?shù)據量,提高了固件傳輸?shù)男是医档土?zigbee設備的耗電量,相應的減少了zigbee設備進行固件升級所需的時間,具有可靠、高效的特點。與現(xiàn)有技術相比,無需通過接口進行固件升級,因此降低了 zigbee設備的固件升級成本,且其降低zigbee設備耗電量的優(yōu)勢使得該方法適用于電池供電的zigbee設備,并可相應提高設備電池的使用壽命。
[0080]與上述任意實施例相對于的,本發(fā)明實施例三還提供一種zigbee設備的固件升級裝置,該裝置可以用于執(zhí)行上述任意實施例所述的zigbee設備的固件升級方法,該固件升級裝置可通過軟/硬件實現(xiàn),該固件升級裝置配置在上述任意實施例所述的zigbee設備中應用。
[0081]如圖3所示是本實施例提供的zigbee設備的固件升級裝置,圖4是圖3所示固件升級裝置的執(zhí)行過程,該執(zhí)行過程與上述任意實施例所述的固件升級方法相同,在此不再贅述。如圖3所示zigbee設備的固件升級裝置包括:獲取固件模塊210,校驗固件模塊220和升級固件模塊230。
[0082]其中,獲取固件模塊210用于接收到網關下發(fā)的升級通知后,若滿足無線升級條件,則從網關獲取新固件信息;校驗固件模塊220用于當檢測到本地固件與新固件信息匹配且校驗有效時,向網關發(fā)送更新固件確認請求;升級固件模塊230用于當接收到網關下發(fā)的更新固件確認命令時,將本地固件加載到設備處理器中并校驗有效后運行以完成固件升級。
[0083]示例性的,在上述技術方案的基礎上,可選zigbee設備滿足的無線升級條件至少包括:zigbee設備支持無線升級固件功能,zigbee設備的工作電壓正常,以及zigbee設備具有有效的片外存儲器。
[0084]示例性的,在上述技術方案的基礎上,可選新固件信息至少包括:新固件適用設備信息,新固件版本信息,以及校驗碼。
[0085]示例性的,在上述技術方案的基礎上,可選還包括:查詢固件模塊240,填充固件模塊250和校驗本地固件模塊260。
[0086]其中,查詢新固件模塊240用于從網關中請求獲取新固件信息之后,當檢測到固件存儲區(qū)域的基本信息與新固件信息不完全一致時,從網關中查詢新固件的大小,并在所述新固件大小與所述固件存儲區(qū)域大小一致時從所述網關中查詢所述新固件的內容重復區(qū)域;填充本地固件模塊250用于從網關中依次請求該新固件的數(shù)據并對應填充在固件存儲區(qū)域中,當請求到內容重復區(qū)域中數(shù)據時,采用與內容重復區(qū)域中數(shù)據相同的本地數(shù)據對應填充在固件存儲區(qū)域中;校驗本地固件模塊260用于對接收完成的固件存儲區(qū)域中的本地固件進行有效性校驗。
[0087]示例性的,在上述技術方案的基礎上,可選內容重復區(qū)域的信息至少包括:區(qū)域起始地址、區(qū)域大小和區(qū)域數(shù)據。
[0088]示例性的,在上述技術方案的基礎上,可選向網關發(fā)送更新固件確認請求具體包括:在設定時間閾值內,以設定時間周期向網關發(fā)送更新固件確認請求,直至接收到網關下發(fā)的更新固件確認命令為止;以及,若在設定時間閾值內未接收到更新固件確認命令時,停止發(fā)送更新固件確認請求并在設備復位前等待更新固件確認命令。
[0089]示例性的,在上述技術方案的基礎上,可選升級固件模塊230包括:加載本地固件單元231和校驗本地固件單元232。
[0090]其中,加載本地固件單元231用于當接收到網關在設備復位前任意時刻下發(fā)的更新固件確認命令時,將本地固件加載到zigbee設備的處理器中;校驗本地固件單元232用于校驗位于處理器中的本地固件,并在該本地固件校驗有效后運行并標記升級完成。
[0091]示例性的,在上述技術方案的基礎上,可選還包括:在zigbee設備檢測到不滿足無線升級條件時,或者,當檢測到新固件大小與固件存儲區(qū)域的大小不一致時,或者,若接收完成的固件存儲區(qū)域中的本地固件校驗無效時,向網關上報錯誤代碼以使網關退出該zigbee設備的升級流程。
[0092]本發(fā)明實施例提供的zigbee設備的固件升級裝置,基于無線通信技術從網關獲取新固件數(shù)據,并通過本地數(shù)據填充內容重復區(qū)域對應的本地固件區(qū)域,因此有效減少了固件傳輸過程中zigbee設備所需傳輸?shù)臄?shù)據量,提高了固件傳輸?shù)男是医档土?zigbee設備的耗電量,相應的減少了zigbee設備進行固件升級所需的時間,具有可靠、高效的特點。與現(xiàn)有技術相比,無需通過接口進行固件升級,因此降低了zigbee設備的固件升級成本,且其降低zigbee設備耗電量的優(yōu)勢使得該裝置可配置在電池供電的zigbee設備,并可相應提高設備電池的使用壽命。
[0093]本發(fā)明實施例四還提供一種固件升級的系統(tǒng),該系統(tǒng)包括如上任意實施例所述的網關和如上任意實施例所述的zigbee設備。如圖5所示,是該系統(tǒng)中網關控制zigbee設備升級的流程圖,在此固件升級系統(tǒng)基于無線通信技術(OTA)的執(zhí)行過程描述如下。
[0094]步驟一、網關從與其連接的zigbee設備中查詢本地固件版本信息,并從與其連接的服務器中查詢新固件版本信息。
[0095]在本實施例中服務器為云服務器,可支持網關對zigbee設備進行無線升級固件操作。在此ZigBee設備擴展有片外的flash存儲器,可選zigbee設備為無線插座、無線開關、門磁傳感器、振動傳感器、電動窗簾或其他zigbee設備。在升級之前,固件開發(fā)者會向服務器云平臺上傳新固件,并設置固件升級的規(guī)則,可選固件升級規(guī)則包括是否強制zigbee設備進行固件升級,以及升級對象。需要說明的是,強制升級是指網關自動對zigbee設備完成無線升級固件操作,全程不需要用戶指令。升級對象可包括與新固件相匹配的所有在線ZigBee 設備。
[0096]在上述操作中,網關上電并且正常連接到服務器之后,會第一時間執(zhí)行一輪ZigBee設備固件升級查詢操作。當網關正常運行后,網關也會以固定的周期(如24小時)執(zhí)行一次固件升級查詢操作。需要說明的是,網關執(zhí)行的固件升級查詢操作是一個逐一遍歷查詢的過程,即確定待升級的zigbee設備后,網關對該設備進行無線升級固件操作,該設備上報結束或完成固件升級流程后網關會對下一個zigbee設備進行無線升級固件操作。
[0097]在此當網關查詢與其連接的zigbee設備時,僅能夠查詢到所有非休眠的ZigBee設備的本地固件版本信息,而休眠的zigbee設備的固件版本信息會在其入網后或者有任何應用層數(shù)據上報的之后相應自動上報。然后網關向服務器查詢新固件版本信息。
[0098]步驟二、如果zigbee設備中的本地固件版本信息與服務器中的新固件版本信息不一致,向zigbee設備下發(fā)升級通知。
[00"]在本實施例中,若網關檢測到zigbee設備中的本地固件版本信息與服務器中的新固件版本信息不一致,貝1J網關判定該zigbee設備為待升級的zigbee設備,并向該zigbee設備下發(fā)升級通知。若網關檢測到zigbee設備中的本地固件版本信息與服務器中的新固件版本信息一致,則網關判定該zigbee設備無需升級,并開始查詢下一個zigbee設備是否需要升級。
[0?00]步驟三、根據zigbee設備依次上報的支持升級應答和獲取新固件請求,向zigbee設備無線傳輸新固件信息,以對zigbee設備進行無線升級固件操作。
[Ο?Ο?]當網關判定ζigbee設備需要升級后,網關會向該zigbee設備下發(fā)升級通知并對zigbee設備進行無線升級固件操作。具體地,如果網關需要對ZigBee設備進行固件升級,則網關在50秒內,以一定周期(3秒每次)向目標ZigBee設備下發(fā)升級通知。如果50秒以內沒有收到目標ZigBee設備的升級應答,或者收到的應答命令表明目標zigbee設備不支持固件升級,則網關結束對該ZigBee設備進行的無線升級固件操作,并開始對下一個ZigBee設備執(zhí)行固件升級查詢。如果50秒以內網關收到目標ZigBee設備的升級應答,且該應答表明ZigBee設備支持固件無線升級,則在50秒以內等待目標ZigBee設備發(fā)送的獲取新固件信息的請求。
[0102]可選網關向zigbee設備下發(fā)升級通知的具體執(zhí)行過程為:在預設時間閾值內,以預設時間周期向zigbee設備下發(fā)升級通知,直至接收到zigbee設備上報的通知應答為止。在本實施例中預設時間閾值為50秒,預設時間周期為3秒,但本發(fā)明不具體限制,固件開發(fā)者可根據情況自行設定。
[0103]可選若在預設時間閾值內未接收到zigbee設備上報的通知應答,或者接收到的通知應答中包括不支持升級應答,則結束對該zigbee設備進行的無線升級固件操作,并查詢與網關連接的下一個z i gbee設備的本地固件版本信息和上報固件版本信息。
[0104]在上述操作后,支持升級的zigbee設備會與網關交互并基于無線通信技術進行固件升級,該過程與上述任意實施例所述相同,在此不再贅述。
[0105]需要說明的是,若固件開發(fā)者設置升級規(guī)則為非強制升級,則網關在收到目標ZigBee設備上報的片外存儲器中本地固件校驗成功命令幀后,會向客戶端發(fā)送相應提示以使客戶端顯示并提示用戶,當前ZigBee設備有新固件可以升級。在用戶點擊確認后,客戶端會向網關下發(fā)開始升級固件命令,網關轉發(fā)該命令到目標ZigBee設備,ZigBee設備將固件加載到處理器中并更新以完成固件升級。升級完固件之后,ZigBee設備會重啟,重啟后會立即向網關上報一次當前正在運行的固件的版本信息,網關將該狀態(tài)推送到客戶端以提示用戶,ZigBee設備固件更新完成。在此客戶端配置在智能終端中,網關與客戶端之間的通信均通過服務器傳輸,即網關通過服務器向客戶端發(fā)送提示等信息,以及客戶端通過服務器向網關下發(fā)確認信息等。
[0106]注意,上述僅為本發(fā)明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權利要求范圍決定。
【主權項】
1.一種z igbee設備的固件升級方法,其特征在于,包括: 接收到網關下發(fā)的升級通知后,若滿足無線升級條件,則從所述網關中請求獲取新固件信息; 當檢測到本地固件與所述新固件信息匹配且校驗有效時,向所述網關發(fā)送更新固件確認請求; 當接收到所述網關下發(fā)的更新固件確認命令時,將所述本地固件加載到設備處理器中并校驗有效后運行以完成固件升級。2.根據權利要求1所述的固件升級方法,其特征在于,所述zigbee設備滿足的無線升級條件至少包括:所述zigbee設備支持無線升級固件功能,所述zigbee設備的工作電壓正常,以及所述zigbee設備具有有效的片外存儲器。3.根據權利要求1所述的固件升級方法,其特征在于,所述新固件信息至少包括:新固件適用設備信息,新固件版本信息,以及校驗碼。4.根據權利要求1所述的固件升級方法,其特征在于,從所述網關中請求獲取新固件信息之后,還包括: 當檢測到固件存儲區(qū)域的基本信息與所述新固件信息不完全一致時,從所述網關中查詢所述新固件的大小,并在所述新固件大小與所述固件存儲區(qū)域大小一致時從所述網關中查詢所述新固件的內容重復區(qū)域; 從所述網關中依次請求該新固件的數(shù)據并對應填充在所述固件存儲區(qū)域中,當請求到所述內容重復區(qū)域中數(shù)據時,采用與所述內容重復區(qū)域中數(shù)據相同的本地數(shù)據對應填充在所述固件存儲區(qū)域中; 對接收完成的所述固件存儲區(qū)域中的本地固件進行有效性校驗。5.根據權利要求4所述的固件升級方法,其特征在于,所述內容重復區(qū)域的信息至少包括:區(qū)域起始地址、區(qū)域大小和區(qū)域數(shù)據。6.根據權利要求1或4所述的固件升級方法,其特征在于,向所述網關發(fā)送更新固件確認請求包括: 在設定時間閾值內,以設定時間周期向所述網關發(fā)送更新固件確認請求,直至接收到所述網關下發(fā)的更新固件確認命令為止;以及, 若在所述設定時間閾值內未接收到所述更新固件確認命令時,停止發(fā)送所述更新固件確認請求并在設備復位前等待所述更新固件確認命令。7.根據權利要求6所述的固件升級方法,其特征在于,當接收到所述網關下發(fā)的更新固件確認命令時,將所述本地固件加載到設備處理器中并校驗有效后運行以完成固件升級,包括: 當接收到所述網關在設備復位前任意時刻下發(fā)的更新固件確認命令時,將所述本地固件加載到設備處理器中; 校驗位于所述處理器中的本地固件,并在該本地固件校驗有效后運行并標記升級完成。8.根據權利要求4所述的固件升級方法,其特征在于,還包括: 若不滿足無線升級條件時,向所述網關上報錯誤代碼以使所述網關退出該zigbee設備的升級流程;或者, 當檢測到所述新固件大小與所述固件存儲區(qū)域的大小不一致時,向所述網關上報錯誤代碼以使所述網關退出該zigbee設備的升級流程;或者, 若接收完成的所述固件存儲區(qū)域中的本地固件校驗無效時,向所述網關上報錯誤代碼以使所述網關退出該zigbee設備的升級流程。9.一種z igbee設備的固件升級裝置,配置在如權利要求1-8任一項所述的z igbee設備中,其特征在于,該固件升級裝置包括: 獲取固件模塊,用于接收到網關下發(fā)的升級通知后,若滿足無線升級條件,則從所述網關獲取新固件信息; 校驗固件模塊,用于當檢測到本地固件與所述新固件信息匹配且校驗有效時,向所述網關發(fā)送更新固件確認請求; 升級固件模塊,用于當接收到所述網關下發(fā)的更新固件確認命令時,將所述本地固件加載到設備處理器中并校驗有效后運行以完成固件升級。
【文檔編號】G06F9/445GK105843645SQ201610172516
【公開日】2016年8月10日
【申請日】2016年3月24日
【發(fā)明人】陸成國, 阮賜朋, 顧蒙, 馬延文, 胡志敏
【申請人】浙江風向標科技有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1