3.2.2 路由部分程序設計
DSR協議自組織互聯[6]的具體實現過程,可分為路由發(fā)現過程和路由維護過程:
1) 路由發(fā)現過程:某節(jié)點要向目的節(jié)點發(fā)送數據,查詢該節(jié)點到目的節(jié)點的路由信息,如果沒有,則廣播發(fā)送路由請求幀,每個收到路由請求幀的節(jié)點作為中間節(jié)點將自己的地址加入到路由請求幀的中繼節(jié)點地址里,重新廣播,直到路由請求幀到達目的節(jié)點,這時,目的節(jié)點就得到了到達請求節(jié)點的完整路由。然后,目的節(jié)點將所得到的路由信息包含在路由響應幀,沿著反向路由,將路由相應幀發(fā)送回請求節(jié)點。該請求節(jié)點在收到路由響應幀以后,將路由信息存入路由存儲器中,添加到發(fā)送數據命令的頭部。
2) 路由維護過程:在數據逐跳傳輸過程中,如果發(fā)現鏈路失效,中繼節(jié)點向源節(jié)點發(fā)送路由錯誤幀,源節(jié)點收到路由錯誤幀以后刪除失敗路由,重新進行路由發(fā)現。
節(jié)點通信流程為:新節(jié)點入網上電初始化后,發(fā)送路由請求到目的節(jié)點,如果沒有收目的節(jié)點的路由應答,則該節(jié)點廣播路由請求,當網絡中的其他節(jié)點接收到路由請求幀后,如果沒有超過規(guī)定的跳數,則返回路由響應幀給源節(jié)點,新節(jié)點在接收到路由響應幀后,就建立起了從新節(jié)點到目的節(jié)點的路由。當路由無效時,節(jié)點就會收到路由錯誤幀,然后刪除路由表,并開始新的路由請求,建立新路由。
流程圖如圖9所示。
4 結束語
在本設計中,將DSR協議進行了改進簡化,將其應用于智能家居系統(tǒng)中,實現了家電互連,擴展了網絡鋪蓋范圍,節(jié)點自行組網,提高了網絡的擴展性和健壯性。
參考文獻:
[1] 李善倉,張克旺.無線傳感器網絡原理與應用[M].北京:機械工業(yè)出版社,2008.
[2] Single chip 2.4GHz Transceiver nRF2401,June 2004.
[3] 三恒星科技.AVR單片機原理與應用實例[M].北京:電子工業(yè)出版社,2009.
[4] Anipakala Suresh Performance Analysis of Ad hoc On-demand Distance Vector routing (AODV)using OPNET Simulator,Communication Networks University of Bremen,11th April 2005.
[5] 喻金錢,俞斌.短距離無線通信詳解[M].北京:航空航天大學出版社,2009.
[6] 陳林星.移動Ad Hoc網絡[M],北京:電子工業(yè)出版社,2006.
摘要:該文介紹了一種基于atmega16l單片機和nRF2401射頻收發(fā)器的無線智能家居節(jié)點,并將無線自組織思想應用其中,改進了DSR路由協議的規(guī)范,利用RREQ、RREP和RERR等協議幀進行路由查找和維護,實現網絡自組織和數據的多點跳傳。
關鍵詞:智能家居;nRF2401;DSR;自組織路由
中圖分類號:TP18文獻標識碼:A文章編號:1009-3044(2010)07-1693-3
A Self-organizing Network Node Design of Smart Home on nRF2401
LI Min, ZHANG Yi
(Chongqing University of Posts and Telecommunications, Chongqing 400065, China)
Abstract: In this thesis, a kind of nodes of Smart Home network was designed with MCU Atmega16l and radio frequency transceiver nRF2401 was studied. And the wireless self-organizing technology was applied in the system. According to the DSR Route protocol specification, uses RREQ、RREP and RERR frames to discover and maintain routing.So the network was self-organization and data transmited multi-hop.
Key words: Smart Home; nRF2401; DSR; self-organizing routing
針對現在家庭網絡的組網不靈活,擴展性不好,無法自動識別新入網的設備,也無法實時得知已離開網絡的設備,而且當目的設備節(jié)點與控制節(jié)點距離超過可靠通信距離,或者天線功率不足時,會導致某些節(jié)點設備脫離網絡等弊端,本設計將自組織網絡技術應用于智能家居系統(tǒng),從而實現設備之間的自組多跳傳輸,使得網絡更加的靈活,可靠,而且成本低,易于開發(fā)。
1 系統(tǒng)概述
隨著無線通信技術的發(fā)展,無線網絡比有線網絡具有通信范圍不受環(huán)境條件限制、網絡建設周期短、施工成本低、易于維護、可擴展性好等優(yōu)點,逐漸取代了有線網絡,成為智能家居網絡系統(tǒng)組網的首選。[1]
比較目前存在的各種各樣的無線接入方式,射頻無線技術可以實現點對多點的連接,對通信的方向無限制,傳輸距離較大,成本低,而且性能高。所以本文的智能家居系統(tǒng)采用無線射頻技術。
該智能家居系統(tǒng)是一個基于nRF2401[2]的小型無線控制系統(tǒng),是采用標準化、模塊化和系統(tǒng)化的設計,將各個無線終端和主機管理終端通過通信網絡為紐帶,組成的管理控制系統(tǒng),該系統(tǒng)靈活配置,組態(tài)方便,具有自適應性等特點。
系統(tǒng)結構如圖1所示。
在各節(jié)點都有一個透明的協議實現智能適應性組網,節(jié)點之間建立無線鏈路,實現節(jié)點互連,而且節(jié)點之間通過自組網協議互相識別,協同工作。
每個終端節(jié)點不僅僅可以作為通信的終端,還可以作為通信的中間節(jié)點,對信息進行轉發(fā),使得整個網絡具有自組織性,并可實現多跳路由,從而增加了網絡節(jié)點,擴展了網絡鋪蓋范圍,即使某個節(jié)點發(fā)生故障,其他節(jié)點也能實時感知,并進行相應的路由調整。
當節(jié)點收到主控發(fā)送的命令后,該節(jié)點首先查詢其路由表,找到目的節(jié)點的路由信息,并添加到命令幀中直接發(fā)送。當目的節(jié)點的路由信息不存在時,該節(jié)點作為源節(jié)點開始路由查詢,直到接收到目的節(jié)點返回的路由請求響應幀,從而就可以建立從主控端到目的節(jié)點之間的通信鏈路,添加其返回的目的節(jié)點的路由信息到命令幀,然后發(fā)送。
當一個新的終端節(jié)點加入網絡中時,在上電初始化后,就廣播其路由請求,獲得該節(jié)點到主控端的路由信息,并存儲起來,此時,就實現了新節(jié)點的入網。
2 終端節(jié)點的硬件結構設計
終端無線通信節(jié)點既是普通節(jié)點,又具有中繼節(jié)點的功能,在主控端通信距離之內時,可直接與主控端進行通信,當距離太遠,則需要其他在通信范圍內的節(jié)點作為中繼節(jié)點,轉發(fā)實現通信。
節(jié)點構成圖如圖2 ,它包括處理器與無線傳輸模塊。
2.1 單片機部分
本設計采用的是Atmel公司的atmega16l[3]單片機,用于對無線終端節(jié)點設備的控制、任務調度以及功能協調。
Atmega16l是一種高性能、低功耗的8位AVR微處理器,具有以下優(yōu)點:1) 接口豐富;2) 速度快:由于AVR絕大部分的指令是單周期指令,所以幾乎可以獲得1MIPS的指令速度;3) 支持IAP:即系統(tǒng)自編程,方便系統(tǒng)遠程升級、維護;4) 一般都內置EEPROM,便于調電存儲;5) 中高檔芯片調試方便:使用了簡化的JTAG協議,可以用支持的JTAG仿真器在線仿真,能夠真實的反映系統(tǒng)情況。
2.2 無線通信模塊
其中的無線通信模塊選擇使用Nordic公司推出的無線收發(fā)一體芯片nRF2401[1]用于節(jié)點間的數據收發(fā),它具有外圍電路簡單,通信速率高,通信質量可靠穩(wěn)定、成本低,開發(fā)周期快、短、而且沒有復雜的通信協議,對用戶透明,而且同種產品之間可以自由通信、組網靈活等優(yōu)點。
而且nRF2401只需要通過CS、CLK1和DATA三個引腳完成所有配置工作的,設計簡單,易于編程。
3 軟件設計
3.1 通信協議
應用于自組織網絡[4]中的路由算法,主要可以分為驅動路由算法,如目的序號距離矢量算法、無線路由協議等;按需驅動路由算法,如Ad hoc按需距離適量算法、臨時排序路由算法、動態(tài)源路由算法、基于關聯性的路由算法、動態(tài)源路由算法等。
本文選用DSR路由協議,這是一種重要的按需路由協議,針對智能家居網絡比較穩(wěn)定,可移動性較差的特點,對DSR協議進行了簡化和改進。
改進后的DSR 路由協議定義了三種消息類型: 路由請求RREQ, 路由應答RREP, 路由錯誤RERR。改進后的幀格式如圖3~5所示。
底層nRF2401的數據幀格式如圖6所示。
其中,PRE-AMBLE段為數據包頭, ADDRESS段為接收方通道硬件地址段,只有符合本機硬件地址的數據幀才會被接收,CRC段為數據校驗段,PAYLOAD段為待發(fā)送數據段。
3.2 程序設計
3.2.1 底層無線數據收發(fā)軟件設計[5]
在發(fā)送數據時, CE置為高電平且CS為低電平,系統(tǒng)為數據發(fā)送狀態(tài),將數據按時序的規(guī)定輸入,待所有的數據輸入完成后,將CE置為低電平,nRF2401對輸入的數據根據設置的要求進行調制,添加CRC校驗和前導碼,并且從天線端發(fā)送出去。其發(fā)送代碼流程如圖7所示。
在接收數據時,工作使能管腳CE置為高電平,等待數據的到來,節(jié)點開始對空中的信號進行自動捕捉,當收到與本節(jié)點地址相同的數據時,接收數據,并自動校驗CRC,如果數據準確無誤,這些數據就被存放在nRF2401的接收緩沖區(qū)中,然后控制中斷引腳DR1,使之置1,通知MCU可以接收數據。這時,MCU就可以根據時規(guī)定從nRF2401中讀出數據。其接收代碼流程如圖8所示。
DSR協議自組織互聯[6]的具體實現過程,可分為路由發(fā)現過程和路由維護過程:
1) 路由發(fā)現過程:某節(jié)點要向目的節(jié)點發(fā)送數據,查詢該節(jié)點到目的節(jié)點的路由信息,如果沒有,則廣播發(fā)送路由請求幀,每個收到路由請求幀的節(jié)點作為中間節(jié)點將自己的地址加入到路由請求幀的中繼節(jié)點地址里,重新廣播,直到路由請求幀到達目的節(jié)點,這時,目的節(jié)點就得到了到達請求節(jié)點的完整路由。然后,目的節(jié)點將所得到的路由信息包含在路由響應幀,沿著反向路由,將路由相應幀發(fā)送回請求節(jié)點。該請求節(jié)點在收到路由響應幀以后,將路由信息存入路由存儲器中,添加到發(fā)送數據命令的頭部。
2) 路由維護過程:在數據逐跳傳輸過程中,如果發(fā)現鏈路失效,中繼節(jié)點向源節(jié)點發(fā)送路由錯誤幀,源節(jié)點收到路由錯誤幀以后刪除失敗路由,重新進行路由發(fā)現。
節(jié)點通信流程為:新節(jié)點入網上電初始化后,發(fā)送路由請求到目的節(jié)點,如果沒有收目的節(jié)點的路由應答,則該節(jié)點廣播路由請求,當網絡中的其他節(jié)點接收到路由請求幀后,如果沒有超過規(guī)定的跳數,則返回路由響應幀給源節(jié)點,新節(jié)點在接收到路由響應幀后,就建立起了從新節(jié)點到目的節(jié)點的路由。當路由無效時,節(jié)點就會收到路由錯誤幀,然后刪除路由表,并開始新的路由請求,建立新路由。
流程圖如圖9所示。
4 結束語
在本設計中,將DSR協議進行了改進簡化,將其應用于智能家居系統(tǒng)中,實現了家電互連,擴展了網絡鋪蓋范圍,節(jié)點自行組網,提高了網絡的擴展性和健壯性。
參考文獻:
[1] 李善倉,張克旺.無線傳感器網絡原理與應用[M].北京:機械工業(yè)出版社,2008.
[2] Single chip 2.4GHz Transceiver nRF2401,June 2004.
[3] 三恒星科技.AVR單片機原理與應用實例[M].北京:電子工業(yè)出版社,2009.
[4] Anipakala Suresh Performance Analysis of Ad hoc On-demand Distance Vector routing (AODV)using OPNET Simulator,Communication Networks University of Bremen,11th April 2005.
[5] 喻金錢,俞斌.短距離無線通信詳解[M].北京:航空航天大學出版社,2009.
[6] 陳林星.移動Ad Hoc網絡[M],北京:電子工業(yè)出版社,2006.
摘要:該文介紹了一種基于atmega16l單片機和nRF2401射頻收發(fā)器的無線智能家居節(jié)點,并將無線自組織思想應用其中,改進了DSR路由協議的規(guī)范,利用RREQ、RREP和RERR等協議幀進行路由查找和維護,實現網絡自組織和數據的多點跳傳。
關鍵詞:智能家居;nRF2401;DSR;自組織路由
中圖分類號:TP18文獻標識碼:A文章編號:1009-3044(2010)07-1693-3
A Self-organizing Network Node Design of Smart Home on nRF2401
LI Min, ZHANG Yi
(Chongqing University of Posts and Telecommunications, Chongqing 400065, China)
Abstract: In this thesis, a kind of nodes of Smart Home network was designed with MCU Atmega16l and radio frequency transceiver nRF2401 was studied. And the wireless self-organizing technology was applied in the system. According to the DSR Route protocol specification, uses RREQ、RREP and RERR frames to discover and maintain routing.So the network was self-organization and data transmited multi-hop.
Key words: Smart Home; nRF2401; DSR; self-organizing routing
針對現在家庭網絡的組網不靈活,擴展性不好,無法自動識別新入網的設備,也無法實時得知已離開網絡的設備,而且當目的設備節(jié)點與控制節(jié)點距離超過可靠通信距離,或者天線功率不足時,會導致某些節(jié)點設備脫離網絡等弊端,本設計將自組織網絡技術應用于智能家居系統(tǒng),從而實現設備之間的自組多跳傳輸,使得網絡更加的靈活,可靠,而且成本低,易于開發(fā)。
1 系統(tǒng)概述
隨著無線通信技術的發(fā)展,無線網絡比有線網絡具有通信范圍不受環(huán)境條件限制、網絡建設周期短、施工成本低、易于維護、可擴展性好等優(yōu)點,逐漸取代了有線網絡,成為智能家居網絡系統(tǒng)組網的首選。[1]
比較目前存在的各種各樣的無線接入方式,射頻無線技術可以實現點對多點的連接,對通信的方向無限制,傳輸距離較大,成本低,而且性能高。所以本文的智能家居系統(tǒng)采用無線射頻技術。
該智能家居系統(tǒng)是一個基于nRF2401[2]的小型無線控制系統(tǒng),是采用標準化、模塊化和系統(tǒng)化的設計,將各個無線終端和主機管理終端通過通信網絡為紐帶,組成的管理控制系統(tǒng),該系統(tǒng)靈活配置,組態(tài)方便,具有自適應性等特點。
系統(tǒng)結構如圖1所示。
在各節(jié)點都有一個透明的協議實現智能適應性組網,節(jié)點之間建立無線鏈路,實現節(jié)點互連,而且節(jié)點之間通過自組網協議互相識別,協同工作。
每個終端節(jié)點不僅僅可以作為通信的終端,還可以作為通信的中間節(jié)點,對信息進行轉發(fā),使得整個網絡具有自組織性,并可實現多跳路由,從而增加了網絡節(jié)點,擴展了網絡鋪蓋范圍,即使某個節(jié)點發(fā)生故障,其他節(jié)點也能實時感知,并進行相應的路由調整。
當節(jié)點收到主控發(fā)送的命令后,該節(jié)點首先查詢其路由表,找到目的節(jié)點的路由信息,并添加到命令幀中直接發(fā)送。當目的節(jié)點的路由信息不存在時,該節(jié)點作為源節(jié)點開始路由查詢,直到接收到目的節(jié)點返回的路由請求響應幀,從而就可以建立從主控端到目的節(jié)點之間的通信鏈路,添加其返回的目的節(jié)點的路由信息到命令幀,然后發(fā)送。
當一個新的終端節(jié)點加入網絡中時,在上電初始化后,就廣播其路由請求,獲得該節(jié)點到主控端的路由信息,并存儲起來,此時,就實現了新節(jié)點的入網。
2 終端節(jié)點的硬件結構設計
終端無線通信節(jié)點既是普通節(jié)點,又具有中繼節(jié)點的功能,在主控端通信距離之內時,可直接與主控端進行通信,當距離太遠,則需要其他在通信范圍內的節(jié)點作為中繼節(jié)點,轉發(fā)實現通信。
節(jié)點構成圖如圖2 ,它包括處理器與無線傳輸模塊。
2.1 單片機部分
本設計采用的是Atmel公司的atmega16l[3]單片機,用于對無線終端節(jié)點設備的控制、任務調度以及功能協調。
Atmega16l是一種高性能、低功耗的8位AVR微處理器,具有以下優(yōu)點:1) 接口豐富;2) 速度快:由于AVR絕大部分的指令是單周期指令,所以幾乎可以獲得1MIPS的指令速度;3) 支持IAP:即系統(tǒng)自編程,方便系統(tǒng)遠程升級、維護;4) 一般都內置EEPROM,便于調電存儲;5) 中高檔芯片調試方便:使用了簡化的JTAG協議,可以用支持的JTAG仿真器在線仿真,能夠真實的反映系統(tǒng)情況。
2.2 無線通信模塊
其中的無線通信模塊選擇使用Nordic公司推出的無線收發(fā)一體芯片nRF2401[1]用于節(jié)點間的數據收發(fā),它具有外圍電路簡單,通信速率高,通信質量可靠穩(wěn)定、成本低,開發(fā)周期快、短、而且沒有復雜的通信協議,對用戶透明,而且同種產品之間可以自由通信、組網靈活等優(yōu)點。
而且nRF2401只需要通過CS、CLK1和DATA三個引腳完成所有配置工作的,設計簡單,易于編程。
3 軟件設計
3.1 通信協議
應用于自組織網絡[4]中的路由算法,主要可以分為驅動路由算法,如目的序號距離矢量算法、無線路由協議等;按需驅動路由算法,如Ad hoc按需距離適量算法、臨時排序路由算法、動態(tài)源路由算法、基于關聯性的路由算法、動態(tài)源路由算法等。
本文選用DSR路由協議,這是一種重要的按需路由協議,針對智能家居網絡比較穩(wěn)定,可移動性較差的特點,對DSR協議進行了簡化和改進。
改進后的DSR 路由協議定義了三種消息類型: 路由請求RREQ, 路由應答RREP, 路由錯誤RERR。改進后的幀格式如圖3~5所示。
底層nRF2401的數據幀格式如圖6所示。
其中,PRE-AMBLE段為數據包頭, ADDRESS段為接收方通道硬件地址段,只有符合本機硬件地址的數據幀才會被接收,CRC段為數據校驗段,PAYLOAD段為待發(fā)送數據段。
3.2 程序設計
3.2.1 底層無線數據收發(fā)軟件設計[5]
在發(fā)送數據時, CE置為高電平且CS為低電平,系統(tǒng)為數據發(fā)送狀態(tài),將數據按時序的規(guī)定輸入,待所有的數據輸入完成后,將CE置為低電平,nRF2401對輸入的數據根據設置的要求進行調制,添加CRC校驗和前導碼,并且從天線端發(fā)送出去。其發(fā)送代碼流程如圖7所示。
在接收數據時,工作使能管腳CE置為高電平,等待數據的到來,節(jié)點開始對空中的信號進行自動捕捉,當收到與本節(jié)點地址相同的數據時,接收數據,并自動校驗CRC,如果數據準確無誤,這些數據就被存放在nRF2401的接收緩沖區(qū)中,然后控制中斷引腳DR1,使之置1,通知MCU可以接收數據。這時,MCU就可以根據時規(guī)定從nRF2401中讀出數據。其接收代碼流程如圖8所示。