一種智能機器人硬件程序升級的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種智能機器人硬件程序升級的方法及系統(tǒng),所述方法包括以下步驟:智能機器人與服務器聯(lián)網通信;服務器向智能機器人發(fā)送硬件程序數據包;機器人接收并存儲硬件程序數據包;機器人運行boot程序進行硬件程序升級;機器人運行更新后的硬件程序。本發(fā)明的方案通過遠程自動為智能機器人的硬件進行程序升級,不必頻繁地更換硬件,降低了成本,提高了維護效率。此外,通過直接將升級程序按照地址存儲到boot主程序區(qū)域,降低了硬件程序升級過程中出錯的概率。
【專利說明】
一種智能機器人硬件程序升級的方法及系統(tǒng)
技術領域
[0001] 本發(fā)明涉及智能機器人領域,具體地,涉及一種智能機器人硬件程序升級的方法 及系統(tǒng)。
【背景技術】
[0002] 隨著智能化時代的到來,機器人已經越來越走進人們的生活,從工廠產品線上的 智能機械手到生活中的服務機器人,我們的社會即將進入智能機器人的時代。但由于機器 人的開發(fā)和制造成本較高,頻繁更換硬件成本高而且不方便,因此為了提高機器人的使用 效能,就需要不斷地在原有硬件基礎上提升機器人的功能,如何有效地為智能機器人的硬 件進行升級就成為機器人領域一個亟待解決的問題。
【發(fā)明內容】
[0003] 為了有效地為智能機器人的硬件進行升級,本發(fā)明提供一種智能機器人硬件程序 升級的方法,包括以下步驟:智能機器人與服務器聯(lián)網通信;服務器向智能機器人發(fā)送硬件 程序數據包;機器人接收并存儲硬件程序數據包;機器人運行boot程序進行硬件程序升級; 機器人運行更新后的硬件程序。
[0004] 進一步地,在存儲裝置中設置boot區(qū)域和boot主程序區(qū)域,boot區(qū)域負責硬件升 級程序的處理,boot主程序區(qū)域負責存儲硬件運行的軟件程序。
[0005] 進一步地,服務器將硬件程序的二進制文件拆分為若干個數據包分別發(fā)送到智能 機器人。
[0006] 進一步地,每個數據包都包含不同的地址,所述地址對應boot主程序區(qū)域的物理 地址。
[0007] 進一步地,若干個數據包按照地址順序依次發(fā)送。
[0008] 進一步地,boot程序將接收到數據包進行解析和校驗,然后按照數據包中的地址 將數據存儲在boot主程序區(qū)域。
[0009] 進一步地,通過設置標志位,使得運行程序在boot區(qū)域和boot主程序區(qū)域之間跳 轉。
[0010] 根據本發(fā)明另一方面,提供一種智能機器人硬件程序升級的系統(tǒng),所述系統(tǒng)包括 服務器和智能機器人。智能機器人包括:通信模塊,與服務器聯(lián)網通信接收服務器發(fā)來的指 令和數據包;解析模塊,解析服務器發(fā)來的指令和數據包;存儲模塊,存儲解析后的硬件程 序數據;工控機,與機器人硬件設備連接和通信,接收解析模塊解析后的指令,并向硬件設 備轉發(fā)指令。服務器包括:通信模塊,與智能機器人聯(lián)網通信;數據庫,用于存儲硬件程序數 據包;處理裝置,向智能機器人發(fā)出指令。
[0011] 進一步地,所述存儲模塊分為boot區(qū)域和boot主程序區(qū)域,boot區(qū)域負責硬件升 級程序的處理,boot主程序區(qū)域負責存儲硬件運行的軟件程序。
[0012]進一步地,boot程序將接收到的硬件程序數據包解析后存儲在boot主程序區(qū)域, 不同的數據包有不同的地址,所述地址是存儲模塊中boot主程序區(qū)域的物理地址。
[0013] 本發(fā)明的方案通過遠程自動為智能機器人的硬件進行程序升級,不必頻繁地更換 硬件,降低了成本,提高了維護效率。此外,通過直接將升級程序按照地址存儲到主程序區(qū) 域,降低了硬件程序升級過程中出錯的概率。
【附圖說明】
[0014] 通過結合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其 它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號 通常代表相同部件。
[0015] 圖1是根據本發(fā)明一個實施方式的智能機器人硬件程序升級的方法流程圖。
[0016] 圖2是根據本發(fā)明一個實施方式的智能機器人硬件程序升級系統(tǒng)的示意性框圖。
【具體實施方式】
[0017] 下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開 的優(yōu)選實施方式,然而應該理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施方 式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的 范圍完整地傳達給本領域的技術人員。
[0018] 參照圖1,本公開提出了一種智能機器人硬件程序升級的方法,包括以下步驟:
[0019] 智能機器人與服務器聯(lián)網通信;服務器向智能機器人發(fā)送硬件程序數據包;機器 人接收并存儲硬件程序數據包;機器人運行boot程序進行硬件程序升級;機器人運行更新 后的硬件程序。
[0020] 在智能機器人與服務器聯(lián)網通信步驟,智能機器人可以主動連接服務器,也可以 由服務器發(fā)起二者的連接。通常服務器設置在中心機房,可以是用戶所在地的機房,也可以 是機器人制造商的機房,或者是機器人服務提供商的機房。如果服務器與機器人處于同一 個WIFI或者UWD網絡中,則智能機器人與服務器聯(lián)網可以保持實時聯(lián)網通信。但是,多數情 況智能機器人與服務器距離遙遠,二者通過3G或者4G通信網絡進行通信。優(yōu)選地,為了減少 不必要的3G或4G流量損失,智能機器人不主動鏈接服務器,由服務器發(fā)起與智能機器人的 鏈接。服務器可以每天定時與智能機器人鏈接通信,接收智能機器人的工作日志等狀態(tài)信 息。此外,還可根據需要隨時發(fā)起鏈接,例如,如果客戶發(fā)現(xiàn)機器人工作異常,則通知客戶人 員或者向服務器發(fā)送信息,由服務器端主動發(fā)送連接智能機器人的請求命令,建立通信,智 能機器人主動發(fā)送有關故障信息給服務器,服務器做判斷并處理。
[0021] 智能機器人與服務器鏈接,需要通過身份驗證。每一臺智能機器人都設置有唯一 標識碼,服務器端存儲有該標識碼的驗證信息。服務器向智能機器人發(fā)送建立鏈接的請求 命令中包含該智能機器人的唯一標識碼,智能機器人接收到請求命令,解析出唯一標識碼 進行核對,通過身份驗證后建立通信鏈接。為了增強安全性,避免智能機器人被非法控制, 可在服務器端對唯一標識碼進行加密,智能機器人接收到請求命令后進行解密,獲得唯一 標識碼進行驗證。所有智能機器人的唯一標識碼都存儲在服務器端,服務器根據唯一標識 碼識別和查找智能機器人。
[0022] 在智能機器人主動發(fā)起與服務器的鏈接時,智能機器人向服務器發(fā)送含有唯一標 識碼的加密后的數據。服務器解密后獲取該唯一標識碼,通過身份驗證后,建立二者的通信 鏈接。
[0023] 服務器端的操控由專門的工程人員負責,如有新的硬件程序版本,工程人員會定 期將相應的程序包放在服務器端,由工程人員控制升級,由此能夠進行遠程集中升級,節(jié)約 了升級管理成本,提高了效率。
[0024] 在需要進行硬件程序升級時,工程人員將相應的程序包放在服務器端的存儲器 內,由服務器發(fā)起鏈接請求,在服務器與向智能機器人建立通信鏈接后,服務器向智能機器 人發(fā)送硬件程序數據包。智能機器人接收并存儲該硬件程序數據包。
[0025] 優(yōu)選地,硬件程序數據包被分段傳輸和接收,每一段接收后進行校驗數據是否完 整,全部接收后進行硬件程序升級。例如,服務器端存放的硬件程序數據包為二進制文本, 由服務器端將二進制文本進行分段處理,例如每段數據為128字節(jié),將這128字節(jié)數據加上 包頭、包尾、CRC檢驗形成一個數據包,隨后將數據包加密之后發(fā)送給智能機器人,以此類推 合成并發(fā)送N個數據包,直到將二進制文本分段都發(fā)送給智能機器人。
[0026] 機器人接收并存儲硬件程序數據包。機器人接收到數據包后進行解析,獲得二進 制文本,并利用CRC檢驗數據的完整性。
[0027]優(yōu)選地,每個需要升級程序的硬件,都包括Flash存儲區(qū)域。Flash存儲區(qū)域可分為 兩塊,一個是boot區(qū)域,專門負責硬件升級程序的處理;一個是boot主程序區(qū)域,專門負責 存儲硬件運行的軟件程序。Boot程序接收到的硬件升級程序數據包并進行解析。
[0028] 優(yōu)選地,不同的數據包還包括不同的存儲地址,該存儲地址是主程序區(qū)域的物理 地址。機器人解析數據包后獲得存儲地址,并按照存儲地址將二進制文本存儲在主程序區(qū) 域中對應的地址部分。
[0029] 通過分段傳輸數據能夠提高傳輸速率,避免數據量過大傳輸失敗后反復重新傳輸 的問題。此外,通過為每一部分數據設置存儲地址,能夠精確控制每一部分數據的更新。這 樣可以有效的進行校驗驗證,提高數據的準確性,進而提高升級的成功概率。
[0030] 智能機器人運行硬件程序數據包進行硬件程序升級。優(yōu)選地,程序運行在boot主 程序區(qū)域中,當收到"升級開始命令"后,將標志位設為1,運行程序由主程序跳轉到boot區(qū) 域,開始運行boot程序進行硬件程序升級,此時boot程序開始按照解析獲得的地址,將升級 數據寫入主程序區(qū)域的地址中。升級結束之后,將標志位設為0,運行程序重新由boot區(qū)域 跳轉到boot主程序區(qū)域,開始正常運行升級后的程序。
[0031] 作為一個實施例,服務器與智能機器人遵循查詢一應答機制,命令都是由服務器 主動發(fā)起,機器人被動應答。在需要進行硬件程序升級時,由服務器向智能機器人發(fā)起鏈接 請求指令,在通過身份驗證后,建立通信鏈接。在硬件程序升級過程中,首先服務器會發(fā)送 一個"升級開始命令"給智能機器人,智能機器人接收"升級開始命令"進行命令解析,解析 通過后,發(fā)送應答命令并將標志位設為"1",程序進入boot區(qū)域運行boot程序,進行硬件程 序升級。
[0032] 服務器端接收到應答后,將要升級的硬件程序的二進制文件拆分為若干個遵循升 級協(xié)議的數據包。例如,升級協(xié)議由"包頭+整個協(xié)議數據長度+標志+數據負載長度+命令字 +數據+校驗字節(jié)"構成。數據包在升級協(xié)議"數據"里面。例如,升級固件數據包的格式定義 為: struct TUpdateData { i nt32 sum_of_byte; // 5成功傳送的字節(jié)總和 _ _ intB program data [128] ; // 要升級的有效數據
[0033] j - // s i zeof ( TUpdateData) 11:11 132; //固件最后一段的數據長度可能不足12S字節(jié),這時,主站需要對program_data□中 的剰佘空間填充0xFFfl
[0034] -個升級文件會拆分為若干個數據包,數據包含有將被存儲的地址,數據包按照 地址循序依次排列,所述地址對應boot主程序區(qū)域中的物理地址,由boot程序負責數據包 的解析與處理。智能機器人根據不同地址來存儲不同的數據包。數據包發(fā)送完畢之后,服務 器會發(fā)送"升級結束命令",協(xié)議解析通過后,智能機器人將標志位設為"〇",程序跳出boot 區(qū)域,進入boot主程序區(qū)域開始正常執(zhí)行。
[0035]上述舉例說明了硬件程序升級過程。整個硬件程序升級過程就是對硬件中的固件 進行更新,分段將更新程序寫入boot主程序區(qū)域的不同地址完成更新。針對不同硬件程序 升級完成之后,立即生效,不需要斷電重啟機器人。
[0036] 根據本發(fā)明的另一方面,提供一種智能機器人硬件程序升級的系統(tǒng),所述系統(tǒng)包 括服務器和智能機器人。其中智能機器人包括:通信模塊,與服務器聯(lián)網通信接收服務器發(fā) 來的指令和數據包;解析模塊,解析服務器發(fā)來的指令和數據包;存儲模塊,存儲解析后的 硬件程序數據;工控機,與機器人硬件設備連接和通信,接收解析模塊解析后的指令,并向 硬件設備轉發(fā)指令。服務器包括:通信模塊,與智能機器人聯(lián)網通信;數據庫,用于存儲硬件 程序數據包;處理裝置,向智能機器人發(fā)出指令。
[0037] 進一步地,解析模塊還能夠校驗解析后的數據的完整性。
[0038] 進一步地,工控機通過串口與機器人硬件設備連接和通信。
[0039]進一步地,智能機器人和服務器都包括身份驗證模塊,用于在二者建立連接的時 候驗證身份。每一臺智能機器人都設置有唯一標識碼,服務器端存儲有該標識碼的驗證信 息。服務器向智能機器人發(fā)送建立鏈接的請求命令中包含該智能機器人的唯一標識碼,智 能機器人接收到請求命令,解析出唯一標識碼進行核對,通過身份驗證后建立通信鏈接。
[0040] 工控機與開關門電路板、電源電路板、射頻電路板等硬件連接,控制這些硬件的升 級。
[0041] 下面參照圖2詳細描述根據本發(fā)明一個實施方式智能機器人硬件程序升級的系 統(tǒng)。智能機器人硬件程序升級的系統(tǒng)包括服務器20和智能機器人10,其中智能機器人10包 括:通信模塊11,與服務器20的通信模塊21聯(lián)網通信,接收服務器20發(fā)來的指令和數據包; 解析模塊13,解析服務器20發(fā)來的指令和數據包;存儲模塊14,存儲解析后的硬件程序數 據;工控機12,與智能機器人硬件設備連接和通信,接收解析模塊13解析后的指令,并向硬 件設備轉發(fā)指令。服務器20包括:通信模塊21,與智能機器人10聯(lián)網通信;數據庫23,用于存 儲硬件程序數據包;處理裝置22,向智能機器人10發(fā)出指令。
[0042]存儲模塊14是Flash存儲裝置,分為兩塊,一個是boot區(qū)域,專門負責處理硬件升 級程序;一個是boot主程序區(qū)域,專門負責存儲硬件運行的軟件程序。接收到的硬件程序數 據包解析后存儲在boot主程序區(qū)域。不同的數據包有不同的地址,所述地址是存儲裝置中 boot主程序區(qū)域的物理地址。
[0043] 本發(fā)明的方案通過遠程自動為智能機器人的硬件進行程序升級,不必頻繁地更換 硬件,降低了成本,提高了維護效率。此外,通過直接將升級程序按照地址存儲到boot主程 序區(qū)域,降低了硬件程序升級過程中出錯的概率。
[0044] 以上已經描述了本公開的各實施例,上述說明是示例性的,并非窮盡性的,并且也 不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本技 術領域的普通技術人員來說許多修改和變更都是顯而易見的。本文中所用術語的選擇,旨 在最好地解釋各實施例的原理、實際應用或對市場中的技術的技術改進,或者使本技術領 域的其它普通技術人員能理解本文披露的各實施例。
【主權項】
1. 一種智能機器人硬件程序升級的方法,其特征在于,包括以下步驟: 智能機器人與服務器聯(lián)網通信; 服務器向智能機器人發(fā)送硬件程序數據包; 機器人接收并存儲硬件程序數據包; 機器人運行boot程序進行硬件程序升級; 機器人運行更新后的硬件程序。2. 根據權利要求1所述的方法,其特征在于,在存儲裝置設置boot區(qū)域和boot主程序區(qū) 域,boot區(qū)域負責硬件升級程序的處理,boot主程序區(qū)域負責存儲硬件運行的軟件程序。3. 根據權利要求1或2所述的方法,其特征在于,服務器將硬件程序的二進制文件拆分 為若干個數據包分別發(fā)送到智能機器人。4. 根據權利要求3所述的方法,其特征在于,每個數據包都包含不同的地址,所述地址 對應boo t主程序區(qū)域的物理地址。5. 根據權利要求4所述的方法,其特征在于,若干個數據包按照地址順序依次發(fā)送。6. 根據權利要求3所述的方法,其特征在于,boot程序將接收到的數據包進行解析和校 驗,然后按照數據包中的地址將數據存儲在boot主程序區(qū)域。7. 根據權利要求2所述的方法,其特征在于,通過設置標志位,使得運行程序在boot區(qū) 域和boo t主程序區(qū)域之間跳轉。8. -種智能機器人硬件程序升級的系統(tǒng),其特征在于,所述系統(tǒng)包括服務器和智能機 器人; 智能機器人包括: 通信模塊,與服務器聯(lián)網通信接收服務器發(fā)來的指令和數據包; 解析模塊,解析服務器發(fā)來的指令和數據包; 存儲模塊,存儲解析后的硬件程序數據; 工控機,與機器人硬件設備連接和通信,接收解析模塊解析后的指令,并向硬件設備轉 發(fā)指令; 服務器包括: 通信模塊,與智能機器人聯(lián)網通信; 數據庫,用于存儲硬件程序數據包; 處理裝置,向智能機器人發(fā)出指令。9. 根據權利要求8所述的系統(tǒng),其特征在于,所述存儲模塊分為boot區(qū)域和boot主程序 區(qū)域,boot區(qū)域負責硬件升級程序的處理,boot主程序區(qū)域負責存儲硬件運行的軟件程序。10. 根據權利要求9所述的系統(tǒng),其特征在于,boot程序將接收到的硬件程序數據包解 析后存儲在boot主程序區(qū)域,不同的數據包有不同的地址,所述地址是存儲模塊中boot主 程序區(qū)域的物理地址。
【文檔編號】G06F9/445GK105912355SQ201610196468
【公開日】2016年8月31日
【申請日】2016年3月31日
【發(fā)明人】呂偉遼, 吳亞斌, 汪雅楠
【申請人】北京云跡科技有限公司