張永剛 王 斌 胡 歡
(1.住房和城鄉建設部IC卡應用服務中心/中外建設信息有限責任公司,北京 100081;2.嘉興學院,浙江嘉興 523001)
隨著集成電路、傳感器、無線通信以及微機電系統等技術的迅猛發展和日益成熟,智能建筑領域應用的無線傳感器網絡也越來越多,如建筑照明,安防監控等[1~3]。通常每個房間都會有一個或多個節點,因而,智能建筑中的無線傳感器網絡具有以下特點:
節點位置相對固定;
節點數量龐大,密集度高。
所以,智能建筑的無線傳感器網絡的拓撲信息是已知的,并且拓撲結構變化很少,目前的傳感器網絡大都,忽略了這一有用信息。通過能量強度動態的構建自組織網絡,造成通訊協議復雜,穩定性差等缺陷[4~6]。為此,本文設計了特殊地址編碼的智能建筑專用無線傳感器網絡。
智能建筑的信息節點可以被簡化為一個“魔方”模型,魔方的每一格代表一個房間。如圖1所示。
圖中,Z方向為垂直方向,代表層高;X方向與房間的走廊方向平行,代表房間的行數;Y代表房間的列數。 Z方向的單位為每層為1;X,Y方向的單位為房間個數,房間無論大小,單位均為1。因為無線信號通過墻壁的衰減,遠比房間尺寸變化的大小要大的多。因而無線傳感器網絡的魔方模型具有以下特點:
1.1 一個房間是一個立體的網狀網的信息拓撲單位;
1.2 每個房間至少有1個或多個信息節點。
智能建筑的“魔方”模型中的網絡拓撲信息,是用網絡地址來表達的。網絡地址是在網絡通訊時網絡層上使用的地址,由于網絡地址是由軟件實現的,所以又可以稱為邏輯地址,并沒有一個相應的硬件和其對應,硬件地址的存在是為了在生產過程中區別單片機用的。而在實際使用過程中,用的都是網絡的地址。而在整個網絡初始化的時候,需要對網絡地址進行設定。而網絡地址的形式如下表所示

圖1 魔方模型

表1 網絡地址的規定
在網絡初始化的過程中,可以根據實際使用的需要,把帶有固定的硬件地址的單片機解析成網絡地址。
為了實現數據在轉發過程中能夠實現時分復用,需要在程序中實現中繼地址轉發時,只有一個節點進行轉發。其他節點不發送任何的數據,為了使數據能夠最快的到達目的地址,需要使轉發的次數達到最少,從而引入了最短路徑的算法。如果在某一個子節點正在發送數據的時候,另一個子節點也需要發送數據。此時,后一個需要發送數據的子節點必須禁聲,既不能發送,只有當前一個節點數據發送完畢之后才能讓下一個子節點發送數據。
在實際生產過程,地址分為網絡地址和硬件地址。硬件地址已經固化在單片機的ROM中,所以也可以被稱為物理地址。通過燒寫的時候進行分片固化,既在集控器燒寫程序的時候,每一個單片機要有一個唯一的硬件地址。為了方便辨識和使用,可以將該地址打印出來貼在集控器上。硬件地址占4個字節。中央控制單元軟件依據硬件地址對集控器進行初始化參數,既設定IP地址。
地址解析的作用是,把單片機生產過程中固化在單片機內部的物理地址(即ID標識)轉化為實際使用的IP地址。除了IP地址之外,還需要對跳級范圍進行初始化設定。地址解析的過程包括兩個階段。
第一階段、把收到的數據進行解析,解析出所需要設定的物理地址(包括三個ID標識),并且和單片機內部固化的ID標識進行比對。如果有所不同,則程序返回主函數,不進行其他的任何操作。如果完全一樣,則進入下一階段。
第二階段、繼續對收到的數據進行解析,解析出需要最終設定的IP地址(包括三個坐標)以及跳級的范圍。把IP地址寫入ROM,在以后的通訊過程中,就使用這個IP地址。并且可以具有掉電不消失的功能,以便在意外掉電或者重啟之后,能夠繼續正常使用。

表2 路由數據幀
在實際使用工程中節點的擺放是有很多種的,而必須對節點的擺放進行假設和抽象才能進行實際的分析。
2.2.1 假設和抽象
如圖1是實際使用中的網絡模型圖(在此我們只分析二維的,三維的可同理得到),我們就可以假設某個節點的坐標為(i ,j)而它的四個附近的節點為(i - H, j),(i , j - H),(i + H,j),(i , j + H)。(i - H, j),(i , j - H),稱為低鄰居節點,(i+ H, j),(i , j + H)稱為高鄰居節點。其中H為正整數,是通信協議中的一個內容稱為最大跳。

圖1

圖2

圖3
而(i ,j)節點所能接收的信息只能來自(i - H, j),(i, j - H),(i + H, j),(i , j + H)。這四個節點,如果不是這四個節點來的信息則會因為距離的原因而接收不到,這是在程序書寫過程中要盡量避免的。所以在這個假設條件下我們可以把實際的網絡模型抽象成如圖3-2所示的一個網絡結構。數據再能在連線的兩個節點中傳輸。
2.2.2 實現方法
由上述的假設和抽象,我們可以知道數據只能在連線的兩個節點中傳輸,不能從(0,0)傳輸到(1,1)。既任意節點(i ,j)在傳輸過程中只能傳輸到高鄰居節點或低鄰居節點中的任意一點。而最短路徑的傳輸要求每跳一次,即接近目標節點一次。有了這些原則不難得到最短路徑的傳輸方法如圖3-3所示:
需要說明的是這里分析的是二維的情況,而在編程中使用的是三維的指標系。原理相同,可以由二維的情況推導出三維的情況。并且在使用過程中有引入最大跳的概念,這個情況是最大跳H=1的情況,而H的數值為其他值的情況會在后文中進行分析。最后就是優先的問題,圖示的為X優先的情況,X,Z優先的情況也會在后文中進行分析
在實際的生產應用之中,有可能出現單個的傳感器網絡的節點出現故障,而致使整個傳感器網絡或者是傳感器網絡的一部分不能接受或發送出信息。根據這個設計的思路,我們可以想象出ping功能的基本工作過程,就是想要檢驗一條固定的無線傳感器網絡傳輸路徑能否通路,就可先由一個起始節點發送出一個傳輸指令,該指令必須包括一個字符是指出不是普通的命令而是一個ping命令,該ping命令通過傳輸,最終到達目標地址,而該目標地址對得到的數據進行解碼,最終的又生成一個指令,該指令的目標地址為ping命令的起始地址,為reping命令,該reping命令通過傳輸又回到了起始的地址,也就是ping命令的發出地址,只要該發出地址能夠接收到這個reping命令,地址就為通路,而如果沒有接收到這個命令就為斷路。

表3-4 通訊協議格式
各部分如下表所示

表3-5 各部分含義
ping功能的作用與工作方式,可以將ping功能的協議制定如下。定長16字節。根據前文中提到的地址設定等要求匯總與此表:
著重強調其中類型與數據表示的意義為中央控制單元與控制器之間的命令,格式為如下,共3個字節

表3-5 中央控制單元與控制器之間的命令
含義如下
協議類型
1代表Ping
2代表Re ping
3代表燈控/燈狀態,使用數據狀態
4代表控制回復
本無線網絡應用于智能建筑內部的燈光控制,節點單元采用cc1101的無線模芯片,通過STC89C52實現通訊協議。節點的實物如下。
上位機采用串行口和網絡連接,通過計算機實現了對整棟大樓的集中控制。控制軟件采用C++Builder2010開發。

本文設計了一種應用于智能建筑的無線傳感器網絡,建立了智能建筑的網“魔方”信息網絡拓撲模型,并用三維地址編碼法,描述網絡的拓撲信息,在此基礎上提出了最短路徑算法。形成的通訊協議在以CC1101無線控制器+STC89C52單片機的硬件系統驗證,最終應用于某建筑的燈光集中控制。實驗證明,本設計切實可行,具有協議棧簡單可靠的優點。

[1]郁有文,常健,程續紅.傳感器原理及工程應用[TP].西安:西安電子科技大學出版社,2003
[2]李朝青.單片機原理及接口技術.北京航空航天大學出版社.2005.10
[3]孫利民, 李建忠等.無線傳感器網絡.清華大學出版社,2005.5.
[4]李曉維,徐勇軍,任豐原.無線傳感器網絡技術[M].北京理工大學出版社, 2007.
[5]Tilak S, Abu- Ghazaleh N B, Heinzelman W.A Taxonomy of Wireless Micro- Sensor Network Models.Mobile Computing and communications review.2002.
[6]T.Hunter and A.Nosratinia.Cooperation Diversity Through Coding.Proc.International Symposium on Information Theory,2002