基於Linux應用層的6LOWPAN物聯網網關及實現方法

本發明涉及一種基於Linux應用層的6LOWPAN物聯網網關及實現方法,所述物聯網網關包括開發平臺以及無線射頻模塊,其實現方法是:所述6LOWPAN物聯網網關的以太網網口收到訪問6LOWPAN無線傳感器網絡中節點的數據包,Linux應用層將以太網數據包格式轉化成6LOWPAN物聯網的格式,而後經過無線射頻模塊發送出去;同理,Linux應用層同時監聽無線射頻模塊,收到6LOWPAN無線傳感器網絡中的數據包,所述Linux應用層將數據包轉化成以太網數據包格式,再經過以太網網口把該數據包發送出去。本發明移植性好、再次開發容易、可擴展性強、減小硬件更環保。 安全

技術領域

[0001] 本發明屬於在物聯網業務中使互聯網和6LOWPAN網絡通信的方法,特別是一種基於Linux應用層的6LOWPAN物聯網網關及實現方法。 網絡

背景技術

[0002] 物聯網(The Internet of things)是經過射頻識別(RFID)、紅外感應器、全球定位系統、激光掃描器以及氣體感應器等信息傳感設備,按約定的協議,把任何物品與互聯網相鏈接,進行信息交換和通訊,以實現對物品的智能化識別、定位、跟蹤、監控和管理的一種網絡。物聯網技術的核心和基礎是互聯網技術,是在互聯網基礎上的延伸和擴展的網絡。 框架

[0003] 因特網把人與全部的物體鏈接起來,物聯網將人與人、人與物、物與物鏈接起來。雖然物聯網的概念早在十多年前就有了雛形,但想要創建理想中物聯網還有不少技術須要完善,例如安全、尋址、標準、接入方式、生物工程等。只有經過這些技術進步和出臺統一的規範,纔可以獲取一個公平和以用戶爲中心的物聯網。 函數

[0004] 物聯網技術涵蓋範圍極廣,包括具有"內在智能"的傳感器、移動終端、智能電網、工業系統、樓控系統、家庭智能設施以及視頻監控系統等、和"外在使能"(Enabled)的各類資產(如貼上RFID、條形碼標籤)、攜帶無線終端的我的與車輛等等"智能化物件或動物""智能塵埃",經過各類無線和/或有線的長距離和/或短距離通信網絡實現互聯互通(M2M)、應用大集成(Grand Integration)、以及基於雲計算的SaaS營運等模式,在內網、專網、和/或互聯網環境下,採用適當的信息安全保障機制,提供安全可控乃至個性化的實時在線監測、定位追溯、報警聯動、調度指揮、預案管理、遠程控制、安全防範、遠程維保、在線升級、統計報表、決策支持、領導桌面等管理和服務功能,實現對"萬物""高效、節能、安全、環保""管、控、營" 一體化。 google

[0005] 無線傳感器網絡在物聯網中擔當連接傳統網絡重任。 雲計算

[0006] 無線傳感器網絡做爲物聯網產業的核心產業,能顯著帶動諸多周邊產業發展,對物聯網的扶持應以無線傳感器網絡這樣具備提綱挈領做用和牀親增加點的產業爲重點。 spa

[0007] 無線傳感器網絡在工業,農業,軍事,環境,醫療,交通等領域具備普遍的應用,而且他的規模具備擴大化,功能具備複雜化,應用領域也具備擴展和交叉。這致使了對無線傳感器網絡自己提出了更高的要求。如今主要體如今三個方面:第一,大規模無線傳感器網絡的通訊和管理;第二,多個無線傳感器網絡之間任意節點的點對點通訊;第三,無線傳感器網絡與有線IP網絡的集成和無縫鏈接。 操作系統

[0008] 無線傳感器網絡具備"無處不在"和節點數量龐大等特色,部署無線傳感器網絡須要數量巨大的地址資源。而做爲下一代互聯網解決方案-1PV6技術,能夠提供海量的地址,而且已經日漸成熟,較爲成功的解決了 IPV4所存在的問題,成爲下一代互聯網的標準。因此無線傳感器和IPV6結合,是一個很好的選擇。 線程

[0009] 現現在最流行、最有效實現無線傳感器網絡和IPv6結合的方案是6LOWPAN無線傳感器網絡。例如:中國專利申請《基於IPv6的物聯網終端與互聯網主機的通訊方法》(南京郵電大學.CN102857968A.2013) 設計

[0010] 現有技術的缺點:基於IPv6的物聯網終端與互聯網主機通訊方法,首先這種技術沒有使用6LOWPAN協議棧的標準(6LOWPAN協議棧傳輸層能夠採用TCP,具體標準參考圖1);物聯網網關包括兩大核心處理功能模塊,第一個模塊是以太網接口,該接口是網關與互聯網之間的接口,第二個模塊是無線射頻接口,該接口是網關和6LOWPAN網絡之間的接口。物聯網網關同時具有這兩個接口功能,才能很輕易的實現物聯網和互聯網之間的互聯互通。(具體實現模塊參考圖2),該技術要求物聯網網關設備須要有兩個MCU (微控制器),一個處理6LOWPAN網絡數據,一個處理以太網數據,這是一種浪費資源而且不環保。同時該技術可擴展性不強,若是6LOWPAN協議棧中添加了新的應用層協議,該技術就不支持。

[0011] 針對6LOWPAN無線傳感器網絡和互聯網通信,設計一種基於Linux應用層的6LOWPAN物聯網關及實現方法很是必要。

發明內容

[0012] 本發明的目的是提供一種以太網格式的數據包和6LOWPAN物聯網格式的數據包之間的轉換,基於Linux應用層的6LOWPAN物聯網網關及實現方法。

[0013] 爲了實現上述目的,本發明所採用的技術方案是:

[0014] —種基於Linux應用層的6LOWPAN物聯網網關,其特色是:所述物聯網網關包括開發平臺以及無線射頻模塊,所述開發平臺包括以太網收發包模塊、SPI模塊、IEEE802.15.4收發包模塊、應用層處理模塊以及6LOWPAN邏輯處理模塊,所述應用層處理模塊中設置有壓縮解壓縮模塊,所述無線射頻模塊包括無線射頻芯片;互聯網經過以太網網口以及所述以太網收發包模塊與應用層處理模塊鏈接,所述無線射頻模塊經過SPI接口以及所述SPI模塊與應用層處理模塊鏈接;所述IEEE802.15.4收發包模塊以及6LOWPAN邏輯處理模塊分別與應用層處理模塊鏈接,所述應用層處理模塊和6LOWPAN邏輯處理模塊均處在Linux系統應用層。

[0015] 所述基於Linux應用層的6LOWPAN物聯網網關的實現方法是:

[0016] 所述6LOWPAN物聯網網關的以太網網口收到訪問6LOWPAN無線傳感器網絡中節點的以太網數據包,應用層處理模塊將以太網數據包交給6LOWPAN邏輯處理模塊,6LOWPAN邏輯處理模塊調用應用層處理模塊中壓縮解壓縮模塊將以太網數據包的以太網格式轉化成6LOWPAN物聯網的格式,即IEEE802.15.4格式,而後經過無線射頻模塊發送出去;同理,6LOWPAN邏輯處理模塊同時監聽無線射頻模塊,收到6LOWPAN無線傳感器網絡中的返回數據包,所述6LOWPAN邏輯處理模塊調用應用層處理模塊中壓縮解壓縮模塊將返回的IEEE802.15.4格式數據包轉化成以太網數據包格式,即IEEE802.3格式,交給應用層處理模塊,應用層處理模塊再經過以太網網口把該返回數據包發送到以太網。

[0017] 所述6LOWPAN物聯網網關在應用層經過調用開源公共的bcm2835公共驅動平臺控制無線射頻模塊。

[0018] 所述實現6LOWPAN物聯網網關的方法具體是:

[0019] 第一步驟:6LOWPAN物聯網網關收到以太網用戶訪問數據請求,以太網收發包模塊實時監控Linux協議棧;

[0020] 第二步驟:一旦有數據包到達,以太網收發包模塊則把收到的數據包加入到有線收包隊列中,供應用層處理模塊使用;

[0021] 第三步驟:應用層處理模塊實時從有線收包隊列中取出數據包,判斷數據包是不是發給物聯網節點的,若是是發給節點的,則把數據包傳遞給壓縮解壓縮模塊進行處理;若是不是,則不做處理;

[0022] 第四步驟:壓縮解壓縮模塊對應用層傳遞過來的數據包進行壓縮處理,壓縮完成之後,把壓縮後的IEEE802.15.4格式報文傳遞給6LOWPAN邏輯處理模塊;

[0023] 第五步驟:6LOWPAN邏輯處理模塊把壓縮解壓縮模塊壓縮過的報文,加入到無線發包隊列中;

[0024] 第六步驟:SPI模塊實時的檢測無線發包隊列,若是有數據包要發送,SPI模塊會從無線發包隊列中取出數據包,寫入到無線射頻模塊的發包寄存器中;

[0025] 第七步驟:無線射頻模塊檢測到發包寄存器中有數據包,則把數據包發給無線節佔.

[0026] 第八步驟:無線節點收到用戶的訪問請求,對用戶的訪問做出應答,發送應答報文給6LOWPAN物聯網網關;

[0027] 第九步驟:無線射頻模塊收到無線傳感器返回的數據包,把數據包存在自己的收包寄存器中;

[0028] 第十步驟:SPI模塊實時檢測無線射頻模塊的收包寄存器,若是有數據包,則取出該數據包放入到無線收包隊列中;

[0029] 第十一步驟:6LOWPAN邏輯處理模塊實時檢測無線收包隊列是否有數據包,若是有則取出該數據包,而後調用壓縮解壓縮模塊對該數據進行處理;

[0030] 第十二步驟:6LOWPAN邏輯處理模塊調用壓縮解壓縮模塊解壓縮,解壓縮完成之後返回的是一個以太網數據格式的報文,此時再把該以太網格式報文交給應用層處理模塊處理;

[0031] 第十三步驟:應用層處理模塊把用戶壓縮解壓縮模塊解壓縮後的報文進行處理後,加入到有線發包隊列中;

[0032] 第十四步驟:以太網收發包模塊從有線發包隊列中取出數據包,從以太網網口發送出去,返回給用戶。

[0033] 本發明具備如下有益效果:

[0034] 1、移植性好

[0035] 好比:傳統的實現6LOWPAN網絡是用contiki操做系統,可是不一樣無線射頻模塊使用contiki操做系統的時候都要進行大量移植修改,驅動也須要從新開發,這些都不是很容易開發得。圖6中能夠看出本發明方案中的全部驅動都是用bcm2835公共開源驅動,本發明不須要針對不一樣無線射頻芯片開發驅動,只須要正確鏈接SPI接口便可。

[0036] 2、再次開發容易

[0037] 本方案是在Linux應用層實現的,若是想再次開發很容易。好比:6LOWPAN物聯網應用層有了新的協議,本方案能夠很容易的添加該新的協議。只須要在6LOWPAN邏輯處理模塊添加對該協議的轉換便可。

[0038] 3、可擴展性強

[0039] 無線射頻模塊通常分爲2.4GHZ和低於1GHZ,本方案適用於全部無線射頻模塊。\

[0040] 4、更加標準

[0041] 本方案實現的6LOWPAN物聯網更加標準,從圖1能夠看出。

[0042] 5、減小硬件更環保

[0043] 在應用層實現6LOWPAN物聯網和傳統的無線射頻模塊相比,無線射頻模塊不須要MCU處理器,使產品更加環保。

附圖說明

[0044] 16LOWPAN協議棧圖。

[0045] 2爲本發明物聯網網關結構示意圖。

[0046] 3爲本發明的所述第一到第七步驟數據交換流程圖。

[0047] 4爲本發明的所述第八步驟到第十四步驟數據交換流程圖。

[0048] 5爲本發明物聯網網關調用6LOWPAN網絡數據程序框架圖。

具體實施方式

[0049] 下面結合附圖和實施例對本發明做進一步的詳細描述。

[0050] 本發明主要核心是在Linux應用層實現以太網格式數據包和6LOWPAN物聯網格式數據包之間的轉換。

[0051] 正如前面描述的,6LOWPAN物聯網網關就是在Linux應用層實現6LOWPAN協議棧,本發明可以使以太網和6LOWPAN無線傳感器網絡中的節點之間實現通信。

[0052] 本發明是在Linux操做系統的應用層開發的,Linux應用層程序修改以太網格式數據包和6LOWPAN協議棧數據包讓二者之間實現相互通信,以6LOWPAN物聯網網關爲例來講明它的具體的實施。

[0053] 實施例:

[0054] 1、準備物聯網網關的硬件

[0055] 首先須要準備兩類硬件,其一是ARM硬件平臺,本發明採用的ARM平臺是樹莓派,其二是無線射頻芯片,射頻芯片採用德州儀器的CC2420型號的芯片。

[0056] ARM開發平臺是樹莓派公板,芯片採用的是Broadcom的芯片,具備兩類接口,一種是以太網網口,一種是SPI接口。以太網口是負責與互聯網之間的接口,即ffiEE802.3接口,SPI接口是鏈接無線射頻芯片的接口。

[0057] 無線射頻芯片採用德州儀器的CC2420CC2520或其餘802.15.4類型的無線射頻芯片,採用的無線頻段爲2.4GHz,該頻段爲國際通用頻段。

[0058] 2、鏈接無線射頻模塊和網關平臺

[0059] 在準備好硬件之後,須要把準備的硬件鏈接成一個總體,使之構成可以運行6LOWPAN核心程序的網關平臺,由於採用的CC2420無線射頻芯片是SPI接口,那麼鏈接也須要按照SPI接口的標準來進行鏈接,標準的SPI接口鏈接方法,請參考SPI基本原理。

[0060] 3、安裝公共SPI接口驅動

[0061] 通常物聯網網關的設計SPI驅動和下面SPI基本函數接口是在一個層面的事情,處於驅動層。本發明驅動層是採用開源公共的bcm2835公共驅動平臺,它單獨處於一層,這樣加強了程序的可擴展性,另一個方面經過公用的bcm2835的驅動平臺,能夠簡化驅動層面的開發工做。物聯網網關整個程序的框架如圖5。該驅動能夠在網上下載並安裝。

[0062] 4、編寫SPI操做模塊

[0063] 編寫SPI操做芯片的基本函數接口,這個函數接口是爲寫無線收發模塊服務的,屬於較爲底層的工做。另一個方面,若是是通常的ARM或者單片機平臺,這個SPI操做芯片的基本函數接口爲驅動層面的工做,或者這部分代碼是必定要燒錄到硬件上的。而本發明是直接調用了上一部分驅動層面的函數來完成基本函數接口。

[0064] 基本函數接口分爲三個部分,第一個是Co_and指令,該指令是直接給芯片寄存器置位,達到設置寄存器關鍵狀態的做用。第二個是WriteReg指令,該指令是寫入芯片某個寄存器某一個值,這個是提供一個寫通常寄存器數值的接口。第三個是ReadReg指令,該指令是讀取某個寄存器裏保存的數值,提供一個讀某些寄存器的數值。具體函數實現能夠參考SPI基本原理和實現。

[0065] 5、編寫 IEEE802.15.4 收發模塊

[0066] 編寫該模塊,主要是經過建立一個線程,實時的讀取硬件中的數據包放在本身的收包隊列中,實時的檢查發送隊列中的數據包,而且把發包隊列中的數據包調用SPI操做模塊把該數據包傳遞給無線射頻芯片。經過該線程可以把數據傳遞給無線射頻芯片,而且從無線射頻芯片中獲取芯片接收到的數據。具體的收發細節請參考CC2420芯片收發數據細節。

[0067] 6、編寫6LOWPAN邏輯處理模塊

[0068] 編寫該模塊,主要是實如今Linux應用層實現6LOWPAN協議棧,按照RFC6282實現壓縮解壓縮、分片重組功能,按照RFC6550實現RPL功能。從圖2-4中能夠看出6LOWPAN邏輯處理模塊是鏈接以太網收發模塊和IEEE802.15.4收發模塊的。以太網接收到的數據包,若是訪問的目的地址是終端,就把該數據包的數據和長度傳遞給6LOWPAN邏輯處理模塊中的壓縮操做,壓縮操做遵循6LOWPAN協議標準便可,以使得以太網格式的數據轉換爲IEEE802.15.4格式數據,其處理方法是:IPv6頭部中有不少默認的選項字段,這些字段佔用空間,通常默認爲O或一個固定的特徵值,這樣能夠根據這些默認特性對其進行壓縮,同時IPv6地址的前綴若是是物聯網網關規定的前綴,也可對前綴所佔用的字節數壓縮掉,經過壓縮這些默認特徵字段對數據包進行長度控制。在對字段作了壓縮時,把作壓縮記錄標記在壓縮標記字段裏,壓縮標記字段只有兩個字節。IPv6頭部中能夠壓縮字段有=TrafficClass> Next Header> Hop Limit、源IPv6地址和目的IPv6地址等。壓縮最理想狀況,能夠把40字節的頭部給壓縮成4個字節。這樣經過壓縮,來減少發送無線傳輸數據包的大小,從而減小能耗。

[0069] 若是數據壓縮後的數據包大於127字節就進行分片操做,這樣以太網數據包就轉化成6LOWPAN數據包,而後調用IEEE802.15.4收發模塊接口傳遞給該模塊。同理,若是IEEE802.15.4收發模塊發送隊列中有數據,把該數據包的數據和長度傳遞給6LOWPAN邏輯處理模塊,6LOWPAN邏輯處理模塊判斷該數據是否分片,若是有分片先進行重組操做,而後解壓縮,這樣就把6LOWPAN數據包轉化成以太網數據包,最後調用以太網收發模塊接口傳遞給該模塊。解壓縮處理方法是:根據壓縮標記字段中的已經壓縮的項,來進行還原,還原的過程是壓縮過程的逆過程,把壓縮後的字段根據具體的語意還原,把壓縮後的頭部還原爲40字節的標準IPv6頭部,還原的過程稱之爲解壓縮。[0070] 6LOWPAN的壓縮解壓縮的方法已是國際標準了,標準文件爲RFC6282,本發明6LOWPAN網關只是沿用了這一標準。

[0071] 本說明書中未做詳細描述的內容屬於本領域專業技術人員公知的現有技術。

SRC=https://www.google.com.hk/patents/CN103731344A

相關文章
相關標籤/搜索