本發(fā)明涉及機(jī)器人內(nèi)部通訊
技術(shù)領(lǐng)域:
,具體是一種機(jī)器人內(nèi)部模塊無線組網(wǎng)的系統(tǒng)和方法。
背景技術(shù):
:機(jī)器人一般由多個(gè)模塊組成,為了完成相應(yīng)的動(dòng)作,模塊之間需要進(jìn)行信息交換。目前機(jī)器人內(nèi)部各個(gè)模塊之間主要通過電纜連接,利用電纜進(jìn)行內(nèi)部通訊。由于機(jī)器人存在大量、長時(shí)間的關(guān)節(jié)運(yùn)動(dòng),因此電纜的耐磨性和抗折彎性顯得的尤為重要,長期使用后,電纜一定會有所損傷。而電纜一旦損壞,必然會影響信號傳輸,從而使得機(jī)器人無法正常使用,同時(shí)也會產(chǎn)生安全隱患,并且電纜不容易維護(hù),替換起來非常麻煩。機(jī)器人內(nèi)部設(shè)置的電纜也占用了大量空間,使得本身就很狹小的內(nèi)部空間更加緊張。技術(shù)實(shí)現(xiàn)要素:本發(fā)明要解決的問題是提供一種機(jī)器人內(nèi)部模塊無線組網(wǎng)的系統(tǒng)和方法,該方法能夠?qū)崿F(xiàn)機(jī)器人內(nèi)部模塊間的無線通訊,節(jié)約了機(jī)器人的內(nèi)部空間,減少了零部件的損耗,降低了維修成本,提高了機(jī)器人的穩(wěn)定性。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明的機(jī)器人內(nèi)部模塊無線組網(wǎng)的系統(tǒng),包括主控單元、伺服控制子系統(tǒng)、電源管理子系統(tǒng)、運(yùn)動(dòng)控制子系統(tǒng)和無線通訊單元,所述運(yùn)動(dòng)控制子系統(tǒng)中包括表情控制子系統(tǒng)。無線通訊單元包括第一至第五子單元,所述第一至第五無線通訊子單元分別與所述主控單元、伺服控制子系統(tǒng)、表情控制子系統(tǒng)、電源管理子系統(tǒng)、運(yùn)動(dòng)控制子系統(tǒng)組合;所述第一無線通訊子單元用于主控單元向各子系統(tǒng)發(fā)出控制指令,以及接收各子系統(tǒng)上報(bào)的工作狀態(tài);所述第二至五無線通訊子單元用于接收主控單元的下發(fā)的控制指令,以及上報(bào)與該無線通訊子單元組合的子系統(tǒng)的工作狀態(tài)。進(jìn)一步的,所述主控單元包括機(jī)器人人工智能行為智能模塊,自然語言理解模塊,視覺智能模塊,運(yùn)動(dòng)智能模塊,表情、LCD觸摸顯示模塊,肢體語言模塊,環(huán)境感知模塊,網(wǎng)絡(luò)知識模塊。另一種改進(jìn),所述伺服控制子系統(tǒng)用于執(zhí)行電機(jī)控制算法,定時(shí)獲取多路有刷或無刷伺服電機(jī)的角度工作電流與工作溫度采樣,根據(jù)傳感器反饋數(shù)據(jù),完成多路有刷或無刷伺服電機(jī)的驅(qū)動(dòng)與控制,定時(shí)對伺服控制的情況進(jìn)行檢測,產(chǎn)生異常事件,并對電機(jī)堵轉(zhuǎn),過流,過溫等異常情況進(jìn)行保護(hù)。另一種改進(jìn),所述表情控制子系統(tǒng)用于對機(jī)器人的表情進(jìn)行控制,讀取傳感器的信息,并進(jìn)行回傳。另一種改進(jìn),所述運(yùn)動(dòng)控制子系統(tǒng)用于接收主控中心的指令,獲取傳感器信息,控制伺服控制器、表情控制器等,完成對機(jī)器人的控制。完成運(yùn)控DSP的初始化、傳感器的初始化及規(guī)劃系統(tǒng)狀態(tài)變化時(shí)的處理動(dòng)作。獲取到基本控制指令,結(jié)合傳感器反饋的情況,進(jìn)行綜合判斷,完成指令的執(zhí)行。綜合到軌跡控制指令,完成動(dòng)作分解,結(jié)合傳感器反饋的情況,進(jìn)行綜合判斷,下達(dá)基礎(chǔ)控制指令。獲取到任務(wù)指令,完成軌跡規(guī)劃和路徑規(guī)劃,結(jié)合傳感器反饋的情況,進(jìn)行綜合判斷,完成指令的執(zhí)行。一種機(jī)器人內(nèi)部模塊無線組網(wǎng)的方法,包括以下步驟:節(jié)點(diǎn)的加入與退出:所述主控單元進(jìn)入正常工作狀態(tài),周期性檢測有無新的待加入子系統(tǒng)節(jié)點(diǎn)加入網(wǎng)絡(luò)或者有無原來的子系統(tǒng)節(jié)點(diǎn)退出網(wǎng)絡(luò),如果有原來的子系統(tǒng)節(jié)點(diǎn)退出網(wǎng)絡(luò),就調(diào)用加入/退出網(wǎng)絡(luò)子程序。所述待加入子系統(tǒng)節(jié)點(diǎn)首先進(jìn)入接收狀態(tài),并判斷現(xiàn)在信道是否被占用,如果信道被占用,則進(jìn)行一個(gè)隨機(jī)延時(shí),再檢測信道是否被占用,如此直到信道為空時(shí)才能與所述主控單元通信,從而加入網(wǎng)絡(luò)。如果所述待加入子系統(tǒng)節(jié)點(diǎn)連續(xù)N次檢測到信道被占用,則所述待加入子系統(tǒng)節(jié)點(diǎn)就退出加入網(wǎng)絡(luò)狀態(tài),等待下一個(gè)加入網(wǎng)絡(luò)時(shí)段再加入網(wǎng)絡(luò),所述N次為預(yù)先根據(jù)需要人為設(shè)定的次數(shù)。所述主控單元定時(shí)發(fā)送網(wǎng)絡(luò)維護(hù)信號,檢測網(wǎng)絡(luò)中的子模塊是否因斷電或者模塊損壞退出網(wǎng)絡(luò)。當(dāng)新的待加入子系統(tǒng)節(jié)點(diǎn)加入到網(wǎng)絡(luò)系統(tǒng)中,所述網(wǎng)絡(luò)系統(tǒng)會及時(shí)反映新加入節(jié)點(diǎn)。當(dāng)網(wǎng)絡(luò)系統(tǒng)檢測到子系統(tǒng)節(jié)點(diǎn)由于電源電壓低于工作電壓,或人為破壞引起失效時(shí),會從網(wǎng)絡(luò)中刪除該節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)及相關(guān)信息,檢測方法有手動(dòng)刷新和定時(shí)采樣兩種。節(jié)點(diǎn)級別分配:網(wǎng)絡(luò)系統(tǒng)包含一個(gè)主控單元節(jié)點(diǎn)和若干子系統(tǒng)節(jié)點(diǎn);所述子系統(tǒng)節(jié)點(diǎn)上電初始化后,首先向所述主控單元節(jié)點(diǎn)發(fā)出請求分配級別的命令,然后進(jìn)入低功耗狀態(tài)并打開定時(shí)器。所述子系統(tǒng)節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)收到所述主控單元節(jié)點(diǎn)分配的級別,所述子系統(tǒng)節(jié)點(diǎn)就會向主控單元節(jié)點(diǎn)發(fā)送自組織信息的數(shù)據(jù)包。如果所述子系統(tǒng)節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)沒有收到所述主控單元節(jié)點(diǎn)分配的級別,該節(jié)點(diǎn)會從低功耗狀態(tài)喚醒,再次發(fā)送請求分配級別的命令,如此循環(huán)。當(dāng)所述子系統(tǒng)節(jié)點(diǎn)發(fā)出請求所述主控單元分配級別的命令達(dá)到設(shè)定上限后,仍然沒有確定自己在網(wǎng)絡(luò)系統(tǒng)中的級別。所述子系統(tǒng)節(jié)點(diǎn)就會向全網(wǎng)絡(luò)系統(tǒng)發(fā)出廣播命令,然后進(jìn)入低功耗狀態(tài)并打開定時(shí)器。定時(shí)時(shí)間到,所述子系統(tǒng)節(jié)點(diǎn)重新回到發(fā)射廣播命令狀態(tài)。當(dāng)所述子系統(tǒng)節(jié)點(diǎn)發(fā)射廣播的次數(shù)達(dá)到設(shè)定值,所述子系統(tǒng)節(jié)點(diǎn)就會將接收到的應(yīng)答信息進(jìn)行整理,確定自己在網(wǎng)絡(luò)中的級別,并確定上級、同級和下級節(jié)點(diǎn)的相關(guān)信息。所述子系統(tǒng)節(jié)點(diǎn)再向上級節(jié)點(diǎn)發(fā)送包含這些信息的數(shù)據(jù)包,直到數(shù)據(jù)包傳送到所述主控單元節(jié)點(diǎn),這樣可確定整個(gè)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。進(jìn)一步的,所述網(wǎng)絡(luò)系統(tǒng)采用的無線通訊協(xié)議中,通過定義數(shù)據(jù)包的格式和關(guān)鍵字來實(shí)現(xiàn)節(jié)點(diǎn)的自組織,數(shù)據(jù)包中包含一個(gè)關(guān)鍵字和多個(gè)字節(jié)的數(shù)據(jù),其中包括了節(jié)點(diǎn)自身信息、數(shù)據(jù)包長度、數(shù)據(jù)路由,數(shù)據(jù)校驗(yàn)和標(biāo)志位信息;關(guān)鍵字表示不同性質(zhì)的包,區(qū)分各種情況的數(shù)據(jù),提升網(wǎng)絡(luò)的通訊能力。只需要改變數(shù)據(jù)包中的標(biāo)志位,就可以對信息進(jìn)行加密。進(jìn)一步的,為了防止串口通信過程中丟失數(shù)據(jù),所述組網(wǎng)方法還包括握手協(xié)議。當(dāng)所述主控單元節(jié)點(diǎn)每發(fā)送一個(gè)數(shù)據(jù)包給子系統(tǒng)時(shí),所述子系統(tǒng)節(jié)點(diǎn)都會向所述主控單元節(jié)點(diǎn)發(fā)送應(yīng)答信號,直到數(shù)據(jù)包發(fā)送給所述所述主控單元節(jié)點(diǎn)。所述主控單元節(jié)點(diǎn)接收到數(shù)據(jù)包后,節(jié)點(diǎn)會從低功耗模式中喚醒,根據(jù)接收到的數(shù)據(jù)中標(biāo)志位的不同字符分別進(jìn)入不同的處理單元。進(jìn)一步的,多個(gè)子系統(tǒng)節(jié)點(diǎn)同時(shí)與主控單元節(jié)點(diǎn)通信時(shí),存在掙搶信道的現(xiàn)象。為了避免多個(gè)子系統(tǒng)節(jié)點(diǎn)同時(shí)與主控單元節(jié)點(diǎn)通信造成數(shù)據(jù)丟失,所述組網(wǎng)方法采用一定的退避機(jī)制,級別高的節(jié)點(diǎn)優(yōu)先于級別低的節(jié)點(diǎn)。本發(fā)明的一種機(jī)器人內(nèi)部模塊無線組網(wǎng)的系統(tǒng)和方法,利用短距離、低功耗的無線通信技術(shù),對機(jī)器人內(nèi)部模塊進(jìn)行組網(wǎng),用來取代有限電纜的通訊方式,消除了由于電纜長時(shí)間的磨損和折彎導(dǎo)致的電氣故障,提高機(jī)器人的安全和可靠性。且無線網(wǎng)絡(luò)中的任意節(jié)點(diǎn)之間都可進(jìn)行數(shù)據(jù)通訊,在有模塊加入和撤出時(shí),無線網(wǎng)絡(luò)具有自動(dòng)修復(fù)功能,網(wǎng)絡(luò)時(shí)延短,響應(yīng)速度較快,功耗低,通訊速度高,可靠性好,安全性高。附圖說明圖1為本發(fā)明網(wǎng)絡(luò)系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖;圖2為無線通訊子單元電路原理圖;圖3為子系統(tǒng)節(jié)點(diǎn)的自組織流程圖。具體實(shí)施方式下面結(jié)合附圖,對本發(fā)明提出的一種機(jī)器人內(nèi)部模塊無線組網(wǎng)的系統(tǒng)和方法進(jìn)行詳細(xì)說明。如圖1所示,本發(fā)明的機(jī)器人內(nèi)部模塊無線組網(wǎng)的系統(tǒng),包括主控單元、伺服控制子系統(tǒng)、電源管理子系統(tǒng)、運(yùn)動(dòng)控制子系統(tǒng)和無線通訊單元,所述運(yùn)動(dòng)控制子系統(tǒng)中包括表情控制子系統(tǒng)。無線通訊單元包括第一至第五子單元,所述第一至第五無線通訊子單元分別與所述主控單元、伺服控制子系統(tǒng)、表情控制子系統(tǒng)、電源管理子系統(tǒng)、運(yùn)動(dòng)控制子系統(tǒng)組合;所述第一無線通訊子單元用于主控單元向各子系統(tǒng)發(fā)出控制指令,以及接收各子系統(tǒng)上報(bào)的工作狀態(tài);所述第二至五無線通訊子單元用于接收主控單元的下發(fā)的控制指令,以及上報(bào)與該無線通訊子單元組合的子系統(tǒng)的工作狀態(tài)。每個(gè)無線通訊子單元電路如圖2所示。具體來講,網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)如下:主控單元+第一無線通訊子單元:主要由機(jī)器人人工智能行為智能模塊,自然語言理解模塊,視覺智能模塊,運(yùn)動(dòng)智能模塊,表情,LCD觸摸顯示,肢體語言模塊,環(huán)境感知模塊,網(wǎng)絡(luò)知識模塊構(gòu)成,無線通訊部分主要用于下發(fā)主控單元的控制指令,以及接收各子系統(tǒng)上報(bào)的工作狀態(tài)。伺服控制子系統(tǒng)+第二無線通訊子單元:執(zhí)行電機(jī)控制算法,定時(shí)獲取多路有刷或無刷伺服電機(jī)的角度工作電流與工作溫度采樣,根據(jù)傳感器反饋數(shù)據(jù),完成多路有刷或無刷伺服電機(jī)的驅(qū)動(dòng)與控制,定時(shí)對伺服控制的情況進(jìn)行檢測,產(chǎn)生異常事件,并對電機(jī)堵轉(zhuǎn),過流,過溫等異常情況進(jìn)行保護(hù),無線通訊部分主要用于接收主控單元的下發(fā)的控制指令,以及上報(bào)本系統(tǒng)的工作狀態(tài)。表情控制子系統(tǒng)+第三無線通訊子單元:存在于運(yùn)動(dòng)控制中心之下,用于對機(jī)器人的表情(點(diǎn)陣)進(jìn)行控制,讀取傳感器的信息,并進(jìn)行回傳,無線通訊部分主要用于接收主控單元的下發(fā)的控制指令,以及上報(bào)本系統(tǒng)的工作狀態(tài)。電源管理子系統(tǒng)+第四無線通訊子單元:根據(jù)充電器輸出的最大充電電壓,充電電流,以及電池組的當(dāng)前電壓,溫度,實(shí)時(shí)調(diào)整充電電流,對電池組進(jìn)行充電管理,并根據(jù)電池組的當(dāng)前電壓,溫度,以及子系統(tǒng)的供電的情況對電池組進(jìn)行放電管理,實(shí)時(shí)監(jiān)測電池組的溫度,總電壓,單節(jié)電壓,電池組電量,充電電流,放電電流,以供其他模塊調(diào)用,決策,無線通訊部分主要用于接收主控單元的下發(fā)的控制指令,以及上報(bào)本系統(tǒng)的工作狀態(tài)。運(yùn)動(dòng)控制子系統(tǒng)+第五無線通訊子單元:存在于主控中心之下,用于接收主控中心的指令,獲取傳感器信息,控制伺服控制器、表情控制器等,完成對機(jī)器人的控制。完成運(yùn)控DSP的初始化、傳感器的初始化及規(guī)劃系統(tǒng)狀態(tài)變化時(shí)的處理動(dòng)作。獲取到基本控制指令,結(jié)合傳感器反饋的情況,進(jìn)行綜合判斷,完成指令的執(zhí)行。綜合到軌跡控制指令,完成動(dòng)作分解,結(jié)合傳感器反饋的情況,進(jìn)行綜合判斷,下達(dá)基礎(chǔ)控制指令。獲取到任務(wù)指令,完成軌跡規(guī)劃和路徑規(guī)劃,結(jié)合傳感器反饋的情況,進(jìn)行綜合判斷,完成指令的執(zhí)行,無線通訊部分主要用于接收主控單元的下發(fā)的控制指令,以及上報(bào)本系統(tǒng)的工作狀態(tài)。一種機(jī)器人內(nèi)部模塊無線組網(wǎng)的方法,包括以下步驟:節(jié)點(diǎn)的加入與退出:如圖1所示,本無線網(wǎng)絡(luò)系統(tǒng)為星型網(wǎng)絡(luò),硬件組網(wǎng)成功之后,網(wǎng)絡(luò)所述主控單元就進(jìn)入正常的工作狀態(tài),一直處于循環(huán)檢測的狀態(tài),周期性檢測有無新的待加入子系統(tǒng)節(jié)點(diǎn)加入網(wǎng)絡(luò)或者有無原來的節(jié)點(diǎn)退出網(wǎng)絡(luò),如果有,就調(diào)用加入/退出網(wǎng)絡(luò)子程序。待加入子系統(tǒng)節(jié)點(diǎn)首先進(jìn)入接收狀態(tài),是否被占用,如果信道被占用,不能與所述主控單元通信,只能再進(jìn)行一個(gè)隨機(jī)延時(shí),再檢測信道是否被占用,如此直到信道為空時(shí)才能與主控單元通信,從而加入網(wǎng)絡(luò)。如果所述待加入子系統(tǒng)節(jié)點(diǎn)連續(xù)N次檢測到信道被占用,節(jié)點(diǎn)就退出加入網(wǎng)絡(luò)狀態(tài),等下一個(gè)加入網(wǎng)絡(luò)時(shí)段再加入網(wǎng)絡(luò)。,本實(shí)施例設(shè)定N為3。節(jié)點(diǎn)發(fā)送加入網(wǎng)絡(luò)信號后,如果收到主控單元的特定的應(yīng)答信號,就表明加入網(wǎng)絡(luò)成功,退出網(wǎng)絡(luò)也是如此。人機(jī)主控單元定時(shí)發(fā)送網(wǎng)絡(luò)維護(hù)信號,檢測網(wǎng)絡(luò)中的終端節(jié)點(diǎn)是否因斷電或者模塊損壞退出網(wǎng)絡(luò)。當(dāng)新的子系統(tǒng)節(jié)點(diǎn)加入到網(wǎng)絡(luò)中,系統(tǒng)會及時(shí)反映新加入節(jié)點(diǎn)。當(dāng)系統(tǒng)檢測到子系統(tǒng)節(jié)點(diǎn)由于電源電壓低于工作電壓,或人為破壞引起失效時(shí),會從網(wǎng)絡(luò)中刪除該節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)及相關(guān)信息,檢測方法有手動(dòng)刷新和定時(shí)采樣兩種。節(jié)點(diǎn)級別分配:網(wǎng)絡(luò)系統(tǒng)包含一個(gè)主控單元節(jié)點(diǎn)和若干子系統(tǒng)節(jié)點(diǎn),主控單元節(jié)點(diǎn)上電初始化后就進(jìn)入低功耗模式。子系統(tǒng)節(jié)點(diǎn)上電初始化后,首先會向主控單元節(jié)點(diǎn)發(fā)出請求分配級別的命令,然后進(jìn)入低功耗狀態(tài)并打開定時(shí)器。在設(shè)定時(shí)間內(nèi)收到主控單元節(jié)點(diǎn)分配的級別,該子系統(tǒng)節(jié)點(diǎn)就會向主控單元節(jié)點(diǎn)發(fā)送自組織信息的數(shù)據(jù)包。如果在設(shè)定時(shí)間內(nèi)沒有收到主控單元節(jié)點(diǎn)分配的級別,該節(jié)點(diǎn)會從低功耗狀態(tài)喚醒,再次發(fā)送請求分配級別的命令,如此循環(huán)。當(dāng)子系統(tǒng)節(jié)點(diǎn)發(fā)出請求主控單元分配級別的命令達(dá)到設(shè)定上限后,仍然沒有確定自己在網(wǎng)絡(luò)中的級別。該節(jié)點(diǎn)就會向全網(wǎng)發(fā)出廣播命令,然后進(jìn)入低功耗狀態(tài)并打開定時(shí)器。定時(shí)時(shí)間到,節(jié)點(diǎn)重新回到發(fā)射廣播命令狀態(tài)。當(dāng)子系統(tǒng)節(jié)點(diǎn)發(fā)射廣播的次數(shù)達(dá)到設(shè)定值,該節(jié)點(diǎn)就會將接收到的應(yīng)答信息進(jìn)行整理,確定自己在網(wǎng)絡(luò)中的級別,并確定上級、同級和下級節(jié)點(diǎn)的相關(guān)信息。該節(jié)點(diǎn)再向上級節(jié)點(diǎn)發(fā)送包含這些信息的數(shù)據(jù)包,直到數(shù)據(jù)包傳送到主控單元節(jié)點(diǎn),這樣可確定整個(gè)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),子系統(tǒng)節(jié)點(diǎn)初始化后,首先發(fā)送請求主控單元節(jié)點(diǎn)分配級別的命令,同時(shí)打開一個(gè)定時(shí)喚醒的定時(shí)器;然后進(jìn)入低功耗模式,等待外部事件的喚醒。若子系統(tǒng)發(fā)送請求主控單元節(jié)點(diǎn)分配級別的次數(shù)達(dá)到設(shè)定上限,仍未確定節(jié)點(diǎn)在網(wǎng)絡(luò)中的級別,則該節(jié)點(diǎn)就會向周圍子系統(tǒng)節(jié)點(diǎn)廣播信息。當(dāng)廣播次數(shù)達(dá)到設(shè)定值時(shí),子系統(tǒng)節(jié)點(diǎn)就根據(jù)收到的信息確定自己的級別以及與該節(jié)點(diǎn)有直接聯(lián)系的節(jié)點(diǎn)的信息,并把這些信息發(fā)送給主控單元。節(jié)點(diǎn)的自組織流程如圖3所示。數(shù)據(jù)包格式:在無線通訊協(xié)議中,通過定義數(shù)據(jù)包的格式和關(guān)鍵字來實(shí)現(xiàn)節(jié)點(diǎn)的自組織,數(shù)據(jù)包中包含一個(gè)關(guān)鍵字和多個(gè)字節(jié)的數(shù)據(jù),其中包括了節(jié)點(diǎn)自身信息、數(shù)據(jù)包長度、數(shù)據(jù)路由,數(shù)據(jù)校驗(yàn)和標(biāo)志位信息,關(guān)鍵字表示不同性質(zhì)的包,區(qū)分各種情況的數(shù)據(jù),提升網(wǎng)絡(luò)的通訊能力。只需要改變數(shù)據(jù)包中的標(biāo)志位,就可以對信息進(jìn)行加密,自組織協(xié)議格式如下表示。PreKeyFromFinalLengthDataCheckFlag其中Pre表示前導(dǎo)碼,通過測試和試驗(yàn)發(fā)現(xiàn),噪聲中不容易產(chǎn)生像0xAA和0x55非常有規(guī)律的信號,這些字符雜波不容易產(chǎn)生;Key表示關(guān)鍵字,來區(qū)分不同性質(zhì)的數(shù)據(jù)包,接收節(jié)點(diǎn)會根據(jù)這些關(guān)鍵字分別進(jìn)入不同的數(shù)據(jù)處理單元;From表示源地址,是發(fā)送數(shù)據(jù)的節(jié)點(diǎn)自身信息;Final表示數(shù)據(jù)的目標(biāo)地址;Data表示有效數(shù)據(jù),這些數(shù)據(jù)隨著字符Key的不同采用不同的格式,可攜帶不同的信息;Check表示檢驗(yàn)位,可避免接收錯(cuò)誤的數(shù)據(jù)包;Flag表示數(shù)據(jù)包的結(jié)束標(biāo)志位。根據(jù)協(xié)議格式中的Key可以將節(jié)點(diǎn)通訊時(shí)捎帶的數(shù)據(jù)包分為自組網(wǎng)信息、環(huán)境突變信息、主控單元的控制命令、子系統(tǒng)的狀態(tài)上報(bào)數(shù)據(jù)、廣播信息,系統(tǒng)故障信息等。例如下給出了主控單元在發(fā)送控制命令時(shí)的數(shù)據(jù)包格式:0x550x550x200x010x070x010x0D0x110x010x100x060x080xAA其中0x55和0x55為數(shù)據(jù)前導(dǎo)碼,0x20為主控單元直接向伺服子系統(tǒng)發(fā)送的關(guān)節(jié)電機(jī)驅(qū)動(dòng)控制指令,0x01表示主控單元發(fā)送節(jié)點(diǎn)的源地址,0x07為數(shù)據(jù)包要到達(dá)的伺服子系統(tǒng)目標(biāo)地址,0x01表示節(jié)點(diǎn)在當(dāng)前網(wǎng)絡(luò)中的級別,0x0C表示本數(shù)據(jù)包的字節(jié)數(shù),0x11表示要驅(qū)動(dòng)的關(guān)節(jié)電機(jī)的序號,0x01表示關(guān)節(jié)電機(jī)轉(zhuǎn)動(dòng)的方向,0x10表示關(guān)節(jié)電機(jī)轉(zhuǎn)動(dòng)的絕對角度,0x06表示關(guān)節(jié)電機(jī)轉(zhuǎn)動(dòng)的速度,0x5B為前面數(shù)據(jù)和的低8位,作為數(shù)據(jù)包的檢驗(yàn)碼,0xAA為數(shù)據(jù)包的結(jié)束標(biāo)志。接收節(jié)點(diǎn)子系統(tǒng)需要向發(fā)送節(jié)點(diǎn)主控單元做出應(yīng)答,下表為應(yīng)答狀態(tài)突變時(shí)的數(shù)據(jù)包格式。0x550x550x210x070x010x040x0A0x010xE20xAA其中0x21就表示子系統(tǒng)對主系統(tǒng)的應(yīng)答指令,后面分別是發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)的地址,0x04表示本節(jié)點(diǎn)在當(dāng)前網(wǎng)絡(luò)中的級別,0x0A表示本數(shù)據(jù)包的字節(jié)數(shù),0x01表示要子系統(tǒng)指令執(zhí)行成功。為了防止串口通信過程中丟失數(shù)據(jù),軟件設(shè)計(jì)上加了握手協(xié)議。當(dāng)主控單元節(jié)點(diǎn)每發(fā)送一個(gè)數(shù)據(jù)包給子系統(tǒng)時(shí),子系統(tǒng)都會向主控節(jié)點(diǎn)發(fā)送應(yīng)答信號,直到數(shù)據(jù)包發(fā)送給主控單元。接收到數(shù)據(jù)包后,節(jié)點(diǎn)會從低功耗模式中喚醒,根據(jù)接收到的數(shù)據(jù)中標(biāo)志位的不同字符分別進(jìn)入不同的處理單元。多個(gè)子系統(tǒng)節(jié)點(diǎn)同時(shí)與主控單元節(jié)點(diǎn)通信時(shí),存在掙搶信道的現(xiàn)象。為了避免多個(gè)子系統(tǒng)節(jié)點(diǎn)同時(shí)與主控單元節(jié)點(diǎn)通信造成數(shù)據(jù)丟失,軟件上采用一定的退避機(jī)制,級別高的節(jié)點(diǎn)優(yōu)先于級別低的節(jié)點(diǎn)。以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。當(dāng)前第1頁1 2 3