張永剛 王 斌 胡 歡
(1.住房和城鄉(xiāng)建設(shè)部IC卡應(yīng)用服務(wù)中心/中外建設(shè)信息有限責(zé)任公司,北京 100081;2.嘉興學(xué)院,浙江嘉興 523001)
隨著集成電路、傳感器、無(wú)線通信以及微機(jī)電系統(tǒng)等技術(shù)的迅猛發(fā)展和日益成熟,智能建筑領(lǐng)域應(yīng)用的無(wú)線傳感器網(wǎng)絡(luò)也越來(lái)越多,如建筑照明,安防監(jiān)控等[1~3]。通常每個(gè)房間都會(huì)有一個(gè)或多個(gè)節(jié)點(diǎn),因而,智能建筑中的無(wú)線傳感器網(wǎng)絡(luò)具有以下特點(diǎn):
節(jié)點(diǎn)位置相對(duì)固定;
節(jié)點(diǎn)數(shù)量龐大,密集度高。
所以,智能建筑的無(wú)線傳感器網(wǎng)絡(luò)的拓?fù)湫畔⑹且阎?,并且拓?fù)浣Y(jié)構(gòu)變化很少,目前的傳感器網(wǎng)絡(luò)大都,忽略了這一有用信息。通過(guò)能量強(qiáng)度動(dòng)態(tài)的構(gòu)建自組織網(wǎng)絡(luò),造成通訊協(xié)議復(fù)雜,穩(wěn)定性差等缺陷[4~6]。為此,本文設(shè)計(jì)了特殊地址編碼的智能建筑專用無(wú)線傳感器網(wǎng)絡(luò)。
智能建筑的信息節(jié)點(diǎn)可以被簡(jiǎn)化為一個(gè)“魔方”模型,魔方的每一格代表一個(gè)房間。如圖1所示。
圖中,Z方向?yàn)榇怪狈较?,代表層高;X方向與房間的走廊方向平行,代表房間的行數(shù);Y代表房間的列數(shù)。 Z方向的單位為每層為1;X,Y方向的單位為房間個(gè)數(shù),房間無(wú)論大小,單位均為1。因?yàn)闊o(wú)線信號(hào)通過(guò)墻壁的衰減,遠(yuǎn)比房間尺寸變化的大小要大的多。因而無(wú)線傳感器網(wǎng)絡(luò)的魔方模型具有以下特點(diǎn):
1.1 一個(gè)房間是一個(gè)立體的網(wǎng)狀網(wǎng)的信息拓?fù)鋯挝唬?/p>
1.2 每個(gè)房間至少有1個(gè)或多個(gè)信息節(jié)點(diǎn)。
智能建筑的“魔方”模型中的網(wǎng)絡(luò)拓?fù)湫畔ⅲ怯镁W(wǎng)絡(luò)地址來(lái)表達(dá)的。網(wǎng)絡(luò)地址是在網(wǎng)絡(luò)通訊時(shí)網(wǎng)絡(luò)層上使用的地址,由于網(wǎng)絡(luò)地址是由軟件實(shí)現(xiàn)的,所以又可以稱為邏輯地址,并沒(méi)有一個(gè)相應(yīng)的硬件和其對(duì)應(yīng),硬件地址的存在是為了在生產(chǎn)過(guò)程中區(qū)別單片機(jī)用的。而在實(shí)際使用過(guò)程中,用的都是網(wǎng)絡(luò)的地址。而在整個(gè)網(wǎng)絡(luò)初始化的時(shí)候,需要對(duì)網(wǎng)絡(luò)地址進(jìn)行設(shè)定。而網(wǎng)絡(luò)地址的形式如下表所示
圖1 魔方模型
表1 網(wǎng)絡(luò)地址的規(guī)定
在網(wǎng)絡(luò)初始化的過(guò)程中,可以根據(jù)實(shí)際使用的需要,把帶有固定的硬件地址的單片機(jī)解析成網(wǎng)絡(luò)地址。
為了實(shí)現(xiàn)數(shù)據(jù)在轉(zhuǎn)發(fā)過(guò)程中能夠?qū)崿F(xiàn)時(shí)分復(fù)用,需要在程序中實(shí)現(xiàn)中繼地址轉(zhuǎn)發(fā)時(shí),只有一個(gè)節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā)。其他節(jié)點(diǎn)不發(fā)送任何的數(shù)據(jù),為了使數(shù)據(jù)能夠最快的到達(dá)目的地址,需要使轉(zhuǎn)發(fā)的次數(shù)達(dá)到最少,從而引入了最短路徑的算法。如果在某一個(gè)子節(jié)點(diǎn)正在發(fā)送數(shù)據(jù)的時(shí)候,另一個(gè)子節(jié)點(diǎn)也需要發(fā)送數(shù)據(jù)。此時(shí),后一個(gè)需要發(fā)送數(shù)據(jù)的子節(jié)點(diǎn)必須禁聲,既不能發(fā)送,只有當(dāng)前一個(gè)節(jié)點(diǎn)數(shù)據(jù)發(fā)送完畢之后才能讓下一個(gè)子節(jié)點(diǎn)發(fā)送數(shù)據(jù)。
在實(shí)際生產(chǎn)過(guò)程,地址分為網(wǎng)絡(luò)地址和硬件地址。硬件地址已經(jīng)固化在單片機(jī)的ROM中,所以也可以被稱為物理地址。通過(guò)燒寫的時(shí)候進(jìn)行分片固化,既在集控器燒寫程序的時(shí)候,每一個(gè)單片機(jī)要有一個(gè)唯一的硬件地址。為了方便辨識(shí)和使用,可以將該地址打印出來(lái)貼在集控器上。硬件地址占4個(gè)字節(jié)。中央控制單元軟件依據(jù)硬件地址對(duì)集控器進(jìn)行初始化參數(shù),既設(shè)定IP地址。
地址解析的作用是,把單片機(jī)生產(chǎn)過(guò)程中固化在單片機(jī)內(nèi)部的物理地址(即ID標(biāo)識(shí))轉(zhuǎn)化為實(shí)際使用的IP地址。除了IP地址之外,還需要對(duì)跳級(jí)范圍進(jìn)行初始化設(shè)定。地址解析的過(guò)程包括兩個(gè)階段。
第一階段、把收到的數(shù)據(jù)進(jìn)行解析,解析出所需要設(shè)定的物理地址(包括三個(gè)ID標(biāo)識(shí)),并且和單片機(jī)內(nèi)部固化的ID標(biāo)識(shí)進(jìn)行比對(duì)。如果有所不同,則程序返回主函數(shù),不進(jìn)行其他的任何操作。如果完全一樣,則進(jìn)入下一階段。
第二階段、繼續(xù)對(duì)收到的數(shù)據(jù)進(jìn)行解析,解析出需要最終設(shè)定的IP地址(包括三個(gè)坐標(biāo))以及跳級(jí)的范圍。把IP地址寫入ROM,在以后的通訊過(guò)程中,就使用這個(gè)IP地址。并且可以具有掉電不消失的功能,以便在意外掉電或者重啟之后,能夠繼續(xù)正常使用。
表2 路由數(shù)據(jù)幀
在實(shí)際使用工程中節(jié)點(diǎn)的擺放是有很多種的,而必須對(duì)節(jié)點(diǎn)的擺放進(jìn)行假設(shè)和抽象才能進(jìn)行實(shí)際的分析。
2.2.1 假設(shè)和抽象
如圖1是實(shí)際使用中的網(wǎng)絡(luò)模型圖(在此我們只分析二維的,三維的可同理得到),我們就可以假設(shè)某個(gè)節(jié)點(diǎn)的坐標(biāo)為(i ,j)而它的四個(gè)附近的節(jié)點(diǎn)為(i - H, j),(i , j - H),(i + H,j),(i , j + H)。(i - H, j),(i , j - H),稱為低鄰居節(jié)點(diǎn),(i+ H, j),(i , j + H)稱為高鄰居節(jié)點(diǎn)。其中H為正整數(shù),是通信協(xié)議中的一個(gè)內(nèi)容稱為最大跳。
圖1
圖2
圖3
而(i ,j)節(jié)點(diǎn)所能接收的信息只能來(lái)自(i - H, j),(i, j - H),(i + H, j),(i , j + H)。這四個(gè)節(jié)點(diǎn),如果不是這四個(gè)節(jié)點(diǎn)來(lái)的信息則會(huì)因?yàn)榫嚯x的原因而接收不到,這是在程序書寫過(guò)程中要盡量避免的。所以在這個(gè)假設(shè)條件下我們可以把實(shí)際的網(wǎng)絡(luò)模型抽象成如圖3-2所示的一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)。數(shù)據(jù)再能在連線的兩個(gè)節(jié)點(diǎn)中傳輸。
2.2.2 實(shí)現(xiàn)方法
由上述的假設(shè)和抽象,我們可以知道數(shù)據(jù)只能在連線的兩個(gè)節(jié)點(diǎn)中傳輸,不能從(0,0)傳輸?shù)剑?,1)。既任意節(jié)點(diǎn)(i ,j)在傳輸過(guò)程中只能傳輸?shù)礁哙従庸?jié)點(diǎn)或低鄰居節(jié)點(diǎn)中的任意一點(diǎn)。而最短路徑的傳輸要求每跳一次,即接近目標(biāo)節(jié)點(diǎn)一次。有了這些原則不難得到最短路徑的傳輸方法如圖3-3所示:
需要說(shuō)明的是這里分析的是二維的情況,而在編程中使用的是三維的指標(biāo)系。原理相同,可以由二維的情況推導(dǎo)出三維的情況。并且在使用過(guò)程中有引入最大跳的概念,這個(gè)情況是最大跳H=1的情況,而H的數(shù)值為其他值的情況會(huì)在后文中進(jìn)行分析。最后就是優(yōu)先的問(wèn)題,圖示的為X優(yōu)先的情況,X,Z優(yōu)先的情況也會(huì)在后文中進(jìn)行分析
在實(shí)際的生產(chǎn)應(yīng)用之中,有可能出現(xiàn)單個(gè)的傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)出現(xiàn)故障,而致使整個(gè)傳感器網(wǎng)絡(luò)或者是傳感器網(wǎng)絡(luò)的一部分不能接受或發(fā)送出信息。根據(jù)這個(gè)設(shè)計(jì)的思路,我們可以想象出ping功能的基本工作過(guò)程,就是想要檢驗(yàn)一條固定的無(wú)線傳感器網(wǎng)絡(luò)傳輸路徑能否通路,就可先由一個(gè)起始節(jié)點(diǎn)發(fā)送出一個(gè)傳輸指令,該指令必須包括一個(gè)字符是指出不是普通的命令而是一個(gè)ping命令,該ping命令通過(guò)傳輸,最終到達(dá)目標(biāo)地址,而該目標(biāo)地址對(duì)得到的數(shù)據(jù)進(jìn)行解碼,最終的又生成一個(gè)指令,該指令的目標(biāo)地址為ping命令的起始地址,為reping命令,該reping命令通過(guò)傳輸又回到了起始的地址,也就是ping命令的發(fā)出地址,只要該發(fā)出地址能夠接收到這個(gè)reping命令,地址就為通路,而如果沒(méi)有接收到這個(gè)命令就為斷路。
表3-4 通訊協(xié)議格式
各部分如下表所示
表3-5 各部分含義
ping功能的作用與工作方式,可以將ping功能的協(xié)議制定如下。定長(zhǎng)16字節(jié)。根據(jù)前文中提到的地址設(shè)定等要求匯總與此表:
著重強(qiáng)調(diào)其中類型與數(shù)據(jù)表示的意義為中央控制單元與控制器之間的命令,格式為如下,共3個(gè)字節(jié)
表3-5 中央控制單元與控制器之間的命令
含義如下
協(xié)議類型
1代表Ping
2代表Re ping
3代表燈控/燈狀態(tài),使用數(shù)據(jù)狀態(tài)
4代表控制回復(fù)
本無(wú)線網(wǎng)絡(luò)應(yīng)用于智能建筑內(nèi)部的燈光控制,節(jié)點(diǎn)單元采用cc1101的無(wú)線模芯片,通過(guò)STC89C52實(shí)現(xiàn)通訊協(xié)議。節(jié)點(diǎn)的實(shí)物如下。
上位機(jī)采用串行口和網(wǎng)絡(luò)連接,通過(guò)計(jì)算機(jī)實(shí)現(xiàn)了對(duì)整棟大樓的集中控制。控制軟件采用C++Builder2010開(kāi)發(fā)。
本文設(shè)計(jì)了一種應(yīng)用于智能建筑的無(wú)線傳感器網(wǎng)絡(luò),建立了智能建筑的網(wǎng)“魔方”信息網(wǎng)絡(luò)拓?fù)淠P?,并用三維地址編碼法,描述網(wǎng)絡(luò)的拓?fù)湫畔?,在此基礎(chǔ)上提出了最短路徑算法。形成的通訊協(xié)議在以CC1101無(wú)線控制器+STC89C52單片機(jī)的硬件系統(tǒng)驗(yàn)證,最終應(yīng)用于某建筑的燈光集中控制。實(shí)驗(yàn)證明,本設(shè)計(jì)切實(shí)可行,具有協(xié)議棧簡(jiǎn)單可靠的優(yōu)點(diǎn)。
[1]郁有文,常健,程續(xù)紅.傳感器原理及工程應(yīng)用[TP].西安:西安電子科技大學(xué)出版社,2003
[2]李朝青.單片機(jī)原理及接口技術(shù).北京航空航天大學(xué)出版社.2005.10
[3]孫利民, 李建忠等.無(wú)線傳感器網(wǎng)絡(luò).清華大學(xué)出版社,2005.5.
[4]李曉維,徐勇軍,任豐原.無(wú)線傳感器網(wǎng)絡(luò)技術(shù)[M].北京理工大學(xué)出版社, 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