專利名稱:Wsn中基于事件驅(qū)動的重編程方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及WSN (無線傳感器網(wǎng)絡(luò))技術(shù)領(lǐng)域,特別涉及一種WSN中基于事件驅(qū)動的重編程方法及系統(tǒng)。
背景技術(shù):
WSN(無線傳感器網(wǎng)絡(luò))是由大量的隨機分布的功能和性能不盡相同的傳感器節(jié)點組成,節(jié)點間通過自組織的方式構(gòu)成網(wǎng)絡(luò)。圖1是現(xiàn)有的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)示意圖, 如圖1所示,節(jié)點自組織形成網(wǎng)絡(luò)通過多跳中繼的方式將數(shù)據(jù)傳到匯聚節(jié)點(或稱終端節(jié)點),再通過匯聚節(jié)點發(fā)到終端PC,再由終端PC傳給更遠(yuǎn)的網(wǎng)絡(luò)。無線傳感器網(wǎng)絡(luò)一般具有節(jié)點多、網(wǎng)絡(luò)覆蓋范圍大、不易回收、節(jié)點能量有限等特點。隨著無線傳感器網(wǎng)絡(luò)的發(fā)展,無線傳感器的可重編程能力引起了越來越多的人的關(guān)注,但是由于部署節(jié)點多且不易回收的特點,將部署的節(jié)點重新搜集起來進行離線重編程非常困難,基本不可行。因此,PC端進行script高層語言的編譯生成二進制代碼、通過無線電發(fā)送編譯生成的二進制代碼包到特定節(jié)點、節(jié)點執(zhí)行代碼實現(xiàn)特定功能的在線編程模式成為了現(xiàn)在研究的熱點。傳統(tǒng)的無線傳感器編程模型大多采用直接執(zhí)行二進制代碼包的方式來實現(xiàn)可重編程的能力,使得傳感器節(jié)點按照程序要求實現(xiàn)新的功能。但是由于無線傳感器的能量限制,往往實現(xiàn)的常駐功能不是一直執(zhí)行的,而是由事件驅(qū)動的,但是傳統(tǒng)的直接執(zhí)行二進制代碼包的方式無法滿足由特定事件觸發(fā)執(zhí)行的需求。此外,在傳統(tǒng)的底層操作系統(tǒng)中往往將事件驅(qū)動的編程方式作為主要的編程模型,但是其定義的事件往往是由硬件事件所觸發(fā)的,而由于上層的虛擬機操作觸發(fā)的事件(例如二進制代碼的執(zhí)行)往往不能捕捉,因此在虛擬機上的基于事件驅(qū)動的可編程模型是十分必要的,可以大大增加可重編程的靈活性。綜上,現(xiàn)有的可重編程模型無法滿足由事件觸發(fā)的需求,其重編程的靈活性較低。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題本發(fā)明要解決的技術(shù)問題是如何提供一種WSN中基于事件驅(qū)動的重編程方法及系統(tǒng),以提高WSN重編程的靈活性。( 二 )技術(shù)方案為解決上述技術(shù)問題,本發(fā)明提供一種WSN中基于事件驅(qū)動的重編程方法,其包括步驟B:將代碼包發(fā)送給重編程節(jié)點,所述代碼包包括事件信息和事件觸發(fā)后的重編程程序;C 所述重編程節(jié)點接收所述代碼包,判斷所述事件信息是否存在,如果存在,執(zhí)行步驟E,否則,執(zhí)行步驟D ;D 根據(jù)所述事件信息判斷事件類型是否是應(yīng)用程序事件,如果是,增加所述事件信息后執(zhí)行步驟E,否則,結(jié)束流程;E 存儲所述重編程程序以及所述重編程程序和所述事件信息的關(guān)聯(lián)信息;F:事件觸發(fā)事件處理模塊,所述事件處理模塊根據(jù)所述事件信息和所述關(guān)聯(lián)信息查找所述重編程程序,執(zhí)行引擎執(zhí)行所述重編程程序。優(yōu)選地,在所述步驟B之前,還包括步驟A =PC終端對kript級代碼進行編譯,組裝后生成二進制的所述代碼包。優(yōu)選地,在所述步驟F之后,還包括步驟G 執(zhí)行引擎執(zhí)行所述重編程程序后,通知所述事件處理模塊,所述事件處理模塊等待對應(yīng)所述事件信息的所有的重編程程序執(zhí)行完畢后,根據(jù)事件類型相應(yīng)地返回執(zhí)行結(jié)果。優(yōu)選地,所述步驟G具體包括步驟Gl 執(zhí)行引擎執(zhí)行所述重編程程序后,通知所述事件處理模塊;G2:所述事件處理模塊等待對應(yīng)所述事件信息的所有的重編程程序執(zhí)行完畢后, 判斷事件類型是否是底層操作系統(tǒng)事件,如果是,將執(zhí)行結(jié)果通知底層操作系統(tǒng);否則,執(zhí)行步驟G3 ;G3:判斷事件類型是否是驅(qū)動執(zhí)行器事件,如果是,將執(zhí)行結(jié)果通知包處理流程器,否則執(zhí)行步驟G4;G4 將執(zhí)行結(jié)果通知虛擬機,所述執(zhí)行引擎繼續(xù)執(zhí)行事件觸發(fā)所述事件處理模塊前被中斷的操作。優(yōu)選地,所述步驟E具體包括步驟El 所述事件處理模塊向程序管理模塊申請空間,并將所述重編程程序存儲至所述空間;E2:所述事件處理模塊存儲所述重編程程序和所述事件信息的關(guān)聯(lián)信息。本發(fā)明還提供一種WSN中基于事件驅(qū)動的重編程系統(tǒng),其包括節(jié)點;所述節(jié)點包括驅(qū)動執(zhí)行器,所述驅(qū)動執(zhí)行器,用于維護報文在節(jié)點中的處理流程和重編程程序的執(zhí)行; 所述報文中包含所述重編程程序。優(yōu)選地,所述重編程系統(tǒng)還包括PC端編譯器;所述PC端編譯器用于對kript級代碼進行編譯,并將組裝后生成二進制代碼包發(fā)送給需要重編程的節(jié)點。優(yōu)選地,所述節(jié)點還包括底層操作系統(tǒng)和應(yīng)用程序;所述底層操作系統(tǒng)用于維護所述節(jié)點的一般性操作;所述應(yīng)用程序包括已有的程序和重編程所產(chǎn)生的應(yīng)用程序。優(yōu)選地,所述驅(qū)動執(zhí)行器包括虛擬機和包處理流程器;所述虛擬機用于實現(xiàn)傳統(tǒng)的重編程功能,并且所述虛擬機還包括事件處理模塊; 所述事件處理模塊用于處理重編程程序的添加和刪除、維護事件信息和重編程程序的關(guān)聯(lián)信息以及事件觸發(fā)時觸發(fā)相應(yīng)的重編程程序;所述包處理流程器包括流程管理模塊和流程控制模塊;所述流程管理模塊用于在處理報文的整個過程中,觸發(fā)相應(yīng)的驅(qū)動執(zhí)行器事件;所述流程控制模塊用于在報文進入所述驅(qū)動執(zhí)行器后,維護報文處理的整個流程。優(yōu)選地,所述虛擬機還包括上下文管理模塊、程序管理模塊、代碼解釋器、執(zhí)行引擎、報文收發(fā)模塊和錯誤處理模塊;所述上下文管理模塊用于實現(xiàn)多個二進制代碼程序的并發(fā)執(zhí)行;所述二進制代碼程序包括所述重編程程序;所述程序管理模塊用于存儲所述二進制代碼程序;所述代碼解釋器用于解釋所述二進制代碼程序,并實現(xiàn)所述二進制代碼程序的功能;所述執(zhí)行引擎用于執(zhí)行所述二進制代碼程序;所述報文收發(fā)模塊用于接收和發(fā)送報文,所述報文包括所述二進制代碼程序;所述錯誤處理模塊用于對所述驅(qū)動執(zhí)行器運行過程產(chǎn)生的錯誤進行處理。(三)有益效果本發(fā)明的WSN中基于事件驅(qū)動的重編程方法及系統(tǒng),對事件進行分類,并且存儲事件和重編程程序的關(guān)聯(lián)信息,不同的事件觸發(fā)不同的重編程程序的執(zhí)行,有效提高了 WSN 重編程的靈活性。
圖1是現(xiàn)有的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖2是本發(fā)明實施例所述的WSN中基于事件驅(qū)動的重編程方法的流程圖;圖3是本發(fā)明實施例所述WSN中基于事件驅(qū)動的重編程系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式
作進一步詳細(xì)描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。本發(fā)明實施例中將事件分為三類底層操作系統(tǒng)事件、驅(qū)動執(zhí)行器事件和應(yīng)用程序事件。所述底層操作系統(tǒng)事件為原有底層操作系統(tǒng)所提供的事件,具體包括了硬件事件、 路由事件、系統(tǒng)事件等等由底層操作系統(tǒng)來維護的結(jié)構(gòu)所觸發(fā)的事件。驅(qū)動執(zhí)行器主要用于維護報文在節(jié)點中的處理流程和重編程程序的執(zhí)行,所述驅(qū)動執(zhí)行器在報文處理流程中依次處于收到報文、執(zhí)行程序前、執(zhí)行程序、執(zhí)行程序后、發(fā)送報文和舍棄報文等狀態(tài),并且所述驅(qū)動執(zhí)行器在執(zhí)行程序時執(zhí)行相應(yīng)的指令,我們將所述驅(qū)動執(zhí)行器由于狀態(tài)改變或者指令執(zhí)行而觸發(fā)的事件稱之為驅(qū)動執(zhí)行器事件。應(yīng)用程序事件是指由用戶或者編程者通過重編程的方式定義的,而且由重編程程序觸發(fā)的事件。底層操作系統(tǒng)事件及驅(qū)動執(zhí)行器事件無法重編程定義。圖2是本發(fā)明實施例所述的WSN中基于事件驅(qū)動的重編程方法的流程圖。如果2 所示,所述方法包括步驟A =PC終端對kript級代碼進行編譯,組裝后生成二進制的所述代碼包。步驟B 將代碼包發(fā)送給重編程節(jié)點,所述代碼包包括事件信息和事件觸發(fā)后的重編程程序。PC終端通過無線電將所述代碼包發(fā)送給重編程節(jié)點。所述事件信息主要包括底層操作系統(tǒng)事件、驅(qū)動執(zhí)行器事件或者應(yīng)用程序事件的事件代號。步驟C 所述重編程節(jié)點接收所述代碼包,所述事件處理模塊判斷所述事件信息是否存在,如果存在,執(zhí)行步驟E,否則,執(zhí)行步驟D。步驟D 根據(jù)所述事件信息判斷事件類型是否是應(yīng)用程序事件,如果是,增加所述事件信息后執(zhí)行步驟E,否則,結(jié)束流程。
步驟E 存儲所述重編程程序以及所述重編程程序和所述事件信息的關(guān)聯(lián)信息。所述步驟E具體包括步驟El 所述事件處理模塊向程序管理模塊申請空間,并將所述重編程程序存儲至所述空間。步驟E2 所述事件處理模塊存儲所述重編程程序和所述事件信息的關(guān)聯(lián)信息。所述事件處理模塊通過建立所述空間的起始地址和所述事件代號的對應(yīng)關(guān)系表,構(gòu)建得到所述關(guān)聯(lián)信息。步驟F 事件觸發(fā)所述事件處理模塊,所述事件處理模塊根據(jù)所述事件信息和所述關(guān)聯(lián)信息查找所述重編程程序,執(zhí)行引擎執(zhí)行所述重編程程序。步驟G 執(zhí)行引擎執(zhí)行所述重編程程序后,通知事件處理模塊,所述事件處理模塊等待對應(yīng)所述事件信息的所有的重編程程序執(zhí)行完畢后,根據(jù)事件類型相應(yīng)地返回執(zhí)行結(jié)果。一個所述事件信息可能會對應(yīng)多個重編程程序。步驟G具體包括步驟Gl 執(zhí)行引擎執(zhí)行所述重編程程序后,通知事件處理模塊。步驟G2 所述事件處理模塊等待對應(yīng)所述事件信息的所有的重編程程序執(zhí)行完畢后,判斷事件類型是否是底層操作系統(tǒng)事件,如果是,將執(zhí)行結(jié)果通知底層操作系統(tǒng);否則,執(zhí)行步驟G3。步驟G3 判斷事件類型是否是驅(qū)動執(zhí)行器事件,如果是,將執(zhí)行結(jié)果通知包處理流程器,否則執(zhí)行步驟G4。步驟G4 將執(zhí)行結(jié)果通知虛擬機,所述執(zhí)行引擎繼續(xù)執(zhí)行事件觸發(fā)所述事件處理模塊前被中斷的操作。本發(fā)明實施例所述的WSN中基于事件驅(qū)動的重編程系統(tǒng)包括PC端編譯器和節(jié)
點ο所述PC端編譯器用于對kript級代碼進行編譯,并將組裝后生成二進制代碼包發(fā)送給需要重編程的節(jié)點。所述節(jié)點包括驅(qū)動執(zhí)行器、底層操作系統(tǒng)和應(yīng)用程序。所述驅(qū)動執(zhí)行器,用于維護報文在節(jié)點中的處理流程和重編程程序的執(zhí)行。所述底層操作系統(tǒng)用于維護所述節(jié)點的一般性操作;所述應(yīng)用程序包括已有的程序和重編程所產(chǎn)生的應(yīng)用程序。所述驅(qū)動執(zhí)行器包括虛擬機和包處理流程器。所述虛擬機用于實現(xiàn)傳統(tǒng)的重編程功能,并且所述虛擬機還包括事件處理模塊; 所述事件處理模塊用于處理重編程程序的添加和刪除、維護事件信息和重編程程序的關(guān)聯(lián)信息以及事件觸發(fā)時觸發(fā)相應(yīng)的重編程程序。所述包處理流程器包括流程管理模塊和流程控制模塊;所述流程管理模塊用于在處理報文的整個過程中,觸發(fā)相應(yīng)的驅(qū)動執(zhí)行器事件;所述流程控制模塊用于在報文進入所述驅(qū)動執(zhí)行器后,維護報文處理的整個流程。所述虛擬機還包括上下文管理模塊、程序管理模塊、代碼解釋器、執(zhí)行引擎、報文收發(fā)模塊和錯誤處理模塊。所述上下文管理模塊用于實現(xiàn)多個二進制代碼程序的并發(fā)執(zhí)行;所述二進制代碼程序包括所述重編程程序;
所述程序管理模塊用于存儲所述二進制代碼程序;所述代碼解釋器用于解釋所述二進制代碼程序,并實現(xiàn)所述二進制代碼程序的功能;所述執(zhí)行引擎用于執(zhí)行所述二進制代碼程序;所述報文收發(fā)模塊用于接收和發(fā)送報文,所述報文包括所述二進制代碼程序;所述錯誤處理模塊用于對所述驅(qū)動執(zhí)行器運行過程產(chǎn)生的錯誤進行處理。本發(fā)明實施例所述的WSN中基于事件驅(qū)動的重編程方法及系統(tǒng),對事件進行分類,并且存儲事件和重編程程序的關(guān)聯(lián)信息,不同的事件觸發(fā)不同的重編程程序的執(zhí)行,有效提高了 WSN重編程的靈活性。以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護范圍應(yīng)由權(quán)利要求限定。
權(quán)利要求
1.一種WSN中基于事件驅(qū)動的重編程方法,其特征在于,包括步驟B 將代碼包發(fā)送給重編程節(jié)點,所述代碼包包括事件信息和事件觸發(fā)后的重編程程序;C 所述重編程節(jié)點接收所述代碼包,判斷所述事件信息是否存在,如果存在,執(zhí)行步驟 E,否則,執(zhí)行步驟D ;D 根據(jù)所述事件信息判斷事件類型是否是應(yīng)用程序事件,如果是,增加所述事件信息后執(zhí)行步驟E,否則,結(jié)束流程;E 存儲所述重編程程序以及所述重編程程序和所述事件信息的關(guān)聯(lián)信息; F 事件觸發(fā)事件處理模塊,所述事件處理模塊根據(jù)所述事件信息和所述關(guān)聯(lián)信息查找所述重編程程序,執(zhí)行弓I擎執(zhí)行所述重編程程序。
2.如權(quán)利要求1所述的方法,其特征在于,在所述步驟B之前,還包括步驟A=PC終端對kript級代碼進行編譯,組裝后生成二進制的所述代碼包。
3.如權(quán)利要求1所述的方法,其特征在于,在所述步驟F之后,還包括步驟G執(zhí)行引擎執(zhí)行所述重編程程序后,通知所述事件處理模塊,所述事件處理模塊等待對應(yīng)所述事件信息的所有的重編程程序執(zhí)行完畢后,根據(jù)事件類型相應(yīng)地返回執(zhí)行結(jié)果。
4.如權(quán)利要求3所述的方法,其特征在于,所述步驟G具體包括步驟 Gl 執(zhí)行引擎執(zhí)行所述重編程程序后,通知所述事件處理模塊;G2 所述事件處理模塊等待對應(yīng)所述事件信息的所有的重編程程序執(zhí)行完畢后,判斷事件類型是否是底層操作系統(tǒng)事件,如果是,將執(zhí)行結(jié)果通知底層操作系統(tǒng);否則,執(zhí)行步驟G3 ;G3 判斷事件類型是否是驅(qū)動執(zhí)行器事件,如果是,將執(zhí)行結(jié)果通知包處理流程器,否則執(zhí)行步驟G4;G4 將執(zhí)行結(jié)果通知虛擬機,所述執(zhí)行引擎繼續(xù)執(zhí)行事件觸發(fā)所述事件處理模塊前被中斷的操作。
5.如權(quán)利要求1所述的方法,其特征在于,所述步驟E具體包括步驟El 所述事件處理模塊向程序管理模塊申請空間,并將所述重編程程序存儲至所述空間;E2:所述事件處理模塊存儲所述重編程程序和所述事件信息的關(guān)聯(lián)信息。
6.一種WSN中基于事件驅(qū)動的重編程系統(tǒng),其特征在于,包括節(jié)點;所述節(jié)點包括驅(qū)動執(zhí)行器,所述驅(qū)動執(zhí)行器,用于維護報文在節(jié)點中的處理流程和重編程程序的執(zhí)行;所述報文中包含所述重編程程序。
7.如權(quán)利要求6所述的方法,其特征在于,所述重編程系統(tǒng)還包括PC端編譯器;所述 PC端編譯器用于對kript級代碼進行編譯,并將組裝后生成二進制代碼包發(fā)送給需要重編程的節(jié)點。
8.如權(quán)利要求6所述的方法,其特征在于,所述節(jié)點還包括底層操作系統(tǒng)和應(yīng)用程序; 所述底層操作系統(tǒng)用于維護所述節(jié)點的一般性操作;所述應(yīng)用程序包括已有的程序和重編程所產(chǎn)生的應(yīng)用程序。
9.如權(quán)利要求6所述的方法,其特征在于,所述驅(qū)動執(zhí)行器包括虛擬機和包處理流程器;所述虛擬機用于實現(xiàn)傳統(tǒng)的重編程功能,并且所述虛擬機還包括事件處理模塊;所述事件處理模塊用于處理重編程程序的添加和刪除、維護事件信息和重編程程序的關(guān)聯(lián)信息以及事件觸發(fā)時觸發(fā)相應(yīng)的重編程程序;所述包處理流程器包括流程管理模塊和流程控制模塊;所述流程管理模塊用于在處理報文的整個過程中,觸發(fā)相應(yīng)的驅(qū)動執(zhí)行器事件;所述流程控制模塊用于在報文進入所述驅(qū)動執(zhí)行器后,維護報文處理的整個流程。
10.如權(quán)利要求9所述的方法,其特征在于,所述虛擬機還包括上下文管理模塊、程序管理模塊、代碼解釋器、執(zhí)行引擎、報文收發(fā)模塊和錯誤處理模塊;所述上下文管理模塊用于實現(xiàn)多個二進制代碼程序的并發(fā)執(zhí)行;所述二進制代碼程序包括所述重編程程序;所述程序管理模塊用于存儲所述二進制代碼程序;所述代碼解釋器用于解釋所述二進制代碼程序,并實現(xiàn)所述二進制代碼程序的功能; 所述執(zhí)行引擎用于執(zhí)行所述二進制代碼程序;所述報文收發(fā)模塊用于接收和發(fā)送報文,所述報文包括所述二進制代碼程序; 所述錯誤處理模塊用于對所述驅(qū)動執(zhí)行器運行過程產(chǎn)生的錯誤進行處理。
全文摘要
本發(fā)明公開了一種WSN中基于事件驅(qū)動的重編程方法及系統(tǒng),涉及WSN(無線傳感器網(wǎng)絡(luò))領(lǐng)域。所述方法包括步驟將代碼包發(fā)送給重編程節(jié)點;重編程節(jié)點接收代碼包,判斷事件信息是否存在,如果存在,執(zhí)行步驟E,否則,執(zhí)行步驟D;D根據(jù)事件信息判斷事件類型是否是應(yīng)用程序事件,如果是,增加事件信息后執(zhí)行步驟E,否則,結(jié)束流程;E存儲重編程程序以及重編程程序和事件信息的關(guān)聯(lián)信息;事件觸發(fā)事件處理模塊,事件處理模塊根據(jù)事件信息和關(guān)聯(lián)信息查找重編程程序,執(zhí)行引擎執(zhí)行重編程程序。所述方法通過不同的事件觸發(fā)不同的重編程程序的執(zhí)行,有效提高了WSN重編程的靈活性。
文檔編號H04W84/18GK102262542SQ201110235268
公開日2011年11月30日 申請日期2011年8月16日 優(yōu)先權(quán)日2011年8月16日
發(fā)明者任豐原, 何滔, 扈煜, 程鵬 申請人:清華大學(xué)