《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于CoAP協議的數據采集網關設計
基于CoAP協議的數據采集網關設計
2015年電子技術應用第6期
李 琦,張 康,王月明
內蒙古科技大學 信息工程學院,內蒙古 包頭014010
摘要: 針對呼倫湖流域環境大數據采集的需求,同時為了解決不同廠商協議標準的不兼容性,設計了一種基于CoAP協議的數據采集網關。詳細討論了CoAP協議的基本原理和實現方法,并在開源系統RT-Thread和微控制器STM32的軟硬件平臺上實現。給出了系統整體設計以及各部分軟硬件設計,實驗結果表明,該設計方案可行,具有傳輸效率高、兼容性較好的特點。
中圖分類號: TP39
文獻標識碼: A
文章編號: 0258-7998(2015)06-0154-03
A design of data acquisition gateway based on CoAP
Li Qi,Zhang Kang,Wang Yueming
College of Information Engineering, Inner Mongolia University of Science and Technology,Baotou 014010,China
Abstract: To satisfy the demand of Hulun Lake watershed environmental big data collection, and to solve the incompatible problem of different manufacturers protocols, a data acquisition gateway was designed based on the Constrained Application Protocol(CoAP). This study discussed the basic principle and implementation method of CoAP in detail and gave the overall design, the hardware and the software design of each part. Furtherly, the study gave the detail design of hardware which is based on the STM32 microprocessor and software design which is based on the open-source operating system RT-Thread. The experimental result shows that, the design is feasible and it has the characteristics of high transmission efficiency and better compatibility.
Key words : data acquisition;gateway;STM32;RT-Thread;CoAP

    

0 引言

    近年來,呼倫湖流域生態面臨著嚴峻的挑戰,水域污染加重、湖底淤積、生物多樣性下降、濕地萎縮等問題日益突出[1]。目前,呼倫湖流域環境監測系統的信息化建設還處于起步階段,監測點不足、基礎數據不完善、數據采集系統自動化程度較低、監測數據不能通過網絡共享等問題使得政府部門很難及時有效地做出應對措施。同時,由于各大廠商的技術缺乏兼容性,很難將不同的協議兼容使用。在這種背景下,本文設計了基于CoAP協議的數據采集網關,對多個監測點的傳感器數據進行CoAP數據格式轉換,上傳遠程數據庫,積累生態環境大數據,為政府決策提供支持。

1 系統概述

    基于RT-Thread的CoAP協議網關系統是在傳感器節點數據采集基礎上,對多個傳感器節點的數據進行CoAP數據格式轉換,并與遠程數據庫進行數據交互,實現環境監測數據網絡共享的效果[2]。整體設計框圖如圖1所示。

jsj6-t1.gif

2 硬件設計

    硬件設計框架圖如圖2所示。

jsj6-t2.gif

    傳感器節點選擇ST公司出產的增強型系列微控制器STM32F103RBT6作為主控制器[3],選擇DALLAS半導體公司出產的1-Wire單總線數字溫度計作為環境溫度采集設備,選擇I2C標準通信接口的16位數字輸出型環境光強度模塊BH1750FVI作為光照強度采集設備。

    CoAP網關節點選擇ST公司出產的高性能微控制芯片STM32F407ZGT6作為主控制器,該控制器具有符合IEEE 1588 v2標準要求的以太網MAC 10/100[4],同時提供了先進的外設和標準的通訊接口;選擇體積小、功耗低、全能型的以太網收發器LAN8720A作為以太網PHY。

    串口轉ZigBee模塊DRF1605H作為傳感器節點與CoAP網關節點之間數據交互的橋梁。該模塊基于CC2530F256芯片,運行ZigBee2007/PRO協議,具有ZigBee協議的全部特點以及上電自動組網的特色。在傳感器節點中,該模塊被設置成Router節點使用;在CoAP網關節點中,該模塊被設置成Coordinator節點使用。

3 CoAP協議原理及實現

    CoAP協議是為物聯網中資源受限設備制定的應用層協議[5]。它是一種面向網絡的協議,采用了與HTTP類似的特性,核心內容為資源抽象、REST式交互及可擴展的頭選型等??蛻舳藨贸绦蛲ㄟ^URI標識來獲取服務器上的資源,對資源可以進行GET、PUT、POST和DELETE操作。CoAP具有報頭壓縮、UDP傳輸、支持資源發現、支持緩存、異步通信等特點。CoAP協議的數據報格式如圖3所示。

jsj6-t3.gif

    CoAP包含一個緊湊的二進制報頭以及擴展報頭?;緢箢^只有短短4 B,后面緊跟著擴展選型和有效負載。報頭各個部分字段的含義如下:Ver表示CoAP協議的版本號,默認情況下置1;T表示報文的類型:CON類型、NON類型、RST類型、ACK類型;TKL表示選型Token所占的字節數;Code表示消息的類型:請求消息、響應消息或者是空消息;Message ID表示消息編號,用于重復消息檢測、匹配消息類型等。

    CoAP協議的傳輸層默認使用UDP協議,為了解決UDP傳輸的不可靠性,CoAP協議采用了雙層結構,定義了帶有重傳的事務處理機制,并采用盡可能小的載荷,限制了分片。CoAP協議棧視圖如圖4所示。

jsj6-t4.gif

    事物層(Transaction Layer)用于處理節點間的信息交換,同時提供組播和擁塞控制等功能;請求/響應層(Request/Response Layer)用于傳輸對資源進行操作的請求和相應信息。CoAP的雙層處理方式使得CoAP沒有采用TCP協議也可以提供可靠的傳輸機制。

    CoAP官方推出了一定量的庫文件,方便用戶在自己的設備移植使用CoAP。本設計是在RT-Thread操作系統環境下進行的,其LWIP協議棧組件能夠提供CoAP所需的UDP協議[4],通過編程實現CoAP標準格式數據報就可實現CoAP網關與遠程數據庫之間的CoAP數據上傳。自定義的CoAP數據結構圖如圖5所示。

jsj6-t5.gif

    在實現CoAP數據結構的過程中使用到了幾個接口函數:coap_pdu_init函數,用來完成CoAP數據報報頭初始化;coap_add_token函數,用來完成添加Token選項;coap_add_option函數,用來添加Option選項;coap_add_data函數,用來添加有效負載選型。在實現的過程中,每一個函數都會改變CoAP數據報結構,必須按照上述順序調用。

    使用維基百科收錄的Microcoap-master庫來檢測上述CoAP實現方法的可靠性。Microcoap-master是一個小型服務器端程序包,支持客戶端對“light”資源的GET、PUT、POST操作。在LINUX環境下執行make./coap運行Microcoap-master,CoAP網關發送對“light”資源的PUT操作請求,同時使用wireshake抓包軟件進行網絡數據抓包,截取的網絡數據包如圖6所示。

jsj6-t6.gif

    圖6中(a)圖抓取的是CoAP網關向Microcoap-mster服務器發送對“light”資源CON類型PUT請求的數據報,其中標識的部分41 03 12 34表示包頭Header,49表示選型Token,b5 6c 69 67 68 74表示選型Option,31表示負載Payload;(b)圖抓取的的是Microcoap-master服務器對于該CON類型報文做出的ACK類型響應,其中61 44 12 34 表示包頭Header,00表示Token,31表示負載Payload,并沒有搭載Option部分。實驗結果表明,以上所述的CoAP協議實現方法可行。

4 軟件設計

    軟件設計以RT-Thread實時操作系統基本框架為基礎[6],對多任務進行線程化管理。RT-Thread操作系統是采用面向對象風格設計、C語言實現的開放源碼的RTOS,其突出的特點是小型、實用和可剪裁性。在RT-Thread中線程是最小的調度單位,線程調度是基于優先級全搶占式的多線程調度算法,支持256個線程優先級;支持創建相同優先級的線程,相同優先級的線程采用設置時間片的輪轉調度算法;調度器用來尋找下一個最高優先級就緒線程的時間是恒定的。RT-Thread Kernel核心目前支持多數主流CPU芯片,其bsp分支包含有所支持的各平臺代碼,移植時選好開發平臺后僅需修改rtconfig.h文件即可。

    基于RT-Thread操作系統,對于傳感器節點和CoAP網關節點進行線程化管理。傳感器節點根據任務要求設計了兩個線程:rt_sensor_entry負責讀取相關傳感器數據;rt_dataex_entry線程負責接收解析CoAP網關節點指令,并向其發送傳感器自定義數據包。

    傳感器節點與CoAP網關節點之間的數據交互是通過DRF1605H模塊數據透傳的方式實現的,為了解決數據在透傳過程中的缺失、不按順序到達等問題,提出了一種自定義的透傳數據格式。通過解析數據包中的幀首、功能碼、從機地址、結束校驗位等信息,就可判斷數據包的完整性和正確性。自定義數據包格式如圖7所示。

jsj6-t7.gif

    其中,幀首定義為0xBBEE,占2個字節;長度碼表示數據包占用的字節數;從機地址表示節點編號(CoAP網關節點為1號,傳感器節點依次為2,3,4…);功能碼表示CoAP節點數據查詢功能(0)以及傳感器節點數據提交功能(1);數據位中存放傳感器原始數據(查詢功能數據包中的該項為0);結束校驗位占用2字節,固定為0x3498。

    CoAP網關節點以RT-Thread內核以及LWIP外圍組件作為軟件平臺[7],結構示意圖如圖8所示。

jsj6-t8.gif

    根據CoAP網關節點任務的劃分,設計了多個線程:rt_dataex_entry線程負責與傳感器節點數據交互,并解析傳感器節點數據包;rt_coap_entry線程負責將傳感器原始數據CoAP格式化;rt_ethsend_entry線程負責定時向遠程服務器發送CoAP報文。線程的順序視圖如圖9所示。

jsj6-t9.gif

5 結束語

    本文介紹了基于CoAP協議的數據采集網關設計,通過對相關軟硬件實現方法加以分析以及實驗測試,證實本設計能夠達到預期的效果。本文設計的CoAP協議網關不僅僅適用于呼倫湖流域環境數據采集,根據不同的應用場合,只要對硬件和軟件稍作修改即可完成不同的監測任務。本設計在數據采集系統領域具有一定的借鑒價值。

參考文獻

[1] 趙慧穎,烏力吉,郝文俊.氣候變化對呼倫湖濕地及其周邊地區生態環境演變的影響[A].中國氣象學會2008年年會干旱與減災——第六屆干旱氣候變化與減災學術研討會分會場論文集[C].中國氣象學會,2008:13.

[2] 吳海平,王慧鋒.基于ARM技術的嵌入式網關設計[A].第七屆工業儀表與自動化學術會議論文集[C].中國儀器儀表學會過程檢測控制儀表分會、中國儀器儀表學會可靠性工程分會,2006:3.

[3] 李寧.基于MDK的STM32處理器開發應用[M].北京:北京航空航天大學出版社,2008.

[4] 曾浩,張祺,鄭斯凱.基于STM32F407的圖像遠程采集終端[J].工業控制計算機,2014(11):81-83.

[5] BORMANN C,CASTELLANI A P,SHELBY Z.CoAP:an application protocol for billions of tiny Internet nodes[J].IEEE Internet Computing,2012,16(2):62-67.

[6] 熊譜祥.RT-Thread實時操作系統編程指南[DB/OL].(2010)[2015].上海:中國電子開發網.

[7] 蘇憲利,鄭一麟.基于RT-thread的機床物聯網系統設計與實現[J].組合機床與自動化加工技術,2014(6):69-72.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美亚洲网站| avtt综合网| 亚洲日本无吗高清不卡| 今天的高清视频免费播放成人 | 欧美涩涩网站| 欧美国产精品久久| 欧美韩日一区二区三区| 欧美wwwwww| 亚洲国产色一区| 日韩一级免费观看| 亚洲国产精品一区二区www在线 | 午夜伦欧美伦电影理论片| 亚洲一区在线免费观看| 亚洲午夜高清视频| 亚洲手机在线| 亚洲欧美另类国产| 欧美在线999| 欧美在线看片a免费观看| 欧美一级专区免费大片| 欧美一区二区在线免费播放| 亚洲欧美日韩爽爽影院| 亚洲欧美激情四射在线日 | 久久九九全国免费精品观看| 久久久久久九九九九| 久久精品官网| 久久亚洲图片| 蜜臀91精品一区二区三区| 欧美黄免费看| 欧美日韩国产专区| 欧美午夜精品久久久久久孕妇| 欧美性色视频在线| 国产精品一二三视频| 国产一区二区0| 一区在线免费| 亚洲日本在线观看| 一区二区三区www| 亚洲男人的天堂在线| 久久成年人视频| 亚洲精品三级| 亚洲在线一区二区三区| 久久久99爱| 欧美国产日韩免费| 欧美午夜精品久久久久久孕妇| 国产乱码精品一区二区三区av| 国内久久视频| 亚洲精品视频免费观看| 亚洲欧美国产77777| 亚洲大胆美女视频| 一区二区三区欧美激情| 欧美一级专区免费大片| 男男成人高潮片免费网站| 亚洲国产免费看| 一区二区三区国产在线观看| 小黄鸭视频精品导航| 亚洲理论在线| 欧美在线观看视频在线| 欧美成人午夜剧场免费观看| 欧美小视频在线| 一区在线免费观看| 一区二区日韩精品| 久久精品一本| 亚洲一区二区视频在线| 久久乐国产精品| 欧美精品久久99久久在免费线| 国产精品毛片a∨一区二区三区|国| 国外视频精品毛片| 一区二区欧美激情| 久久av一区二区三区漫画| 妖精视频成人观看www| 久久精品国产69国产精品亚洲| 欧美日本亚洲韩国国产| 国产综合久久| 亚洲天堂偷拍| 亚洲精品一区二区三区av| 欧美亚洲一区二区在线观看| 欧美黑人一区二区三区| 国产一区二区在线观看免费播放| 亚洲欧洲日本一区二区三区| 欧美在线视频在线播放完整版免费观看 | 91久久精品一区| 午夜精品免费| 欧美日韩国产专区| 在线成人免费观看| 欧美一区二区三区成人| 亚洲一区二区精品视频| 欧美成年视频| 国产亚洲激情在线| 亚洲天堂男人| 一区二区三区视频在线| 欧美wwwwww| 狠狠综合久久| 欧美一级专区| 欧美一区二区三区免费观看视频| 欧美日韩八区| 亚洲国产日韩欧美在线图片| 欧美与欧洲交xxxx免费观看 | 欧美日韩二区三区| 在线看一区二区| 羞羞漫画18久久大片| 亚洲欧美成人一区二区在线电影| 欧美精品不卡| 在线观看一区视频| 久久国产福利| 久久大逼视频| 国产欧美精品日韩区二区麻豆天美| 日韩亚洲欧美在线观看| 日韩亚洲欧美成人一区| 欧美777四色影视在线| 亚洲天堂av综合网| 国产精品卡一卡二| 亚洲免费高清视频| 一本久道综合久久精品| 欧美激情乱人伦| 91久久久一线二线三线品牌| 亚洲老司机av| 欧美激情一区在线| 亚洲欧洲日本在线| 一本色道久久综合亚洲二区三区| 欧美高清在线播放| 亚洲国产精品美女| 亚洲人成在线观看| 欧美成人免费大片| 亚洲精品久久7777| 99国产精品| 欧美日韩在线大尺度| 一本色道久久精品| 亚洲一区二区不卡免费| 国产精品久久久久久五月尺| 亚洲丝袜av一区| 亚洲欧美日韩国产一区二区三区 | 欧美日韩在线高清| av成人激情| 亚洲免费在线播放| 国产精品免费网站| 午夜久久资源| 久久久综合激的五月天| 在线观看亚洲专区| 亚洲美女一区| 欧美四级在线| 亚洲专区欧美专区| 久久成年人视频| 黑人一区二区三区四区五区| 亚洲黄一区二区| 欧美日韩久久不卡| 亚洲已满18点击进入久久| 久久精品二区三区| 亚洲福利视频网| 亚洲一区视频在线| 国产日韩精品一区二区三区在线 | 亚洲精品你懂的| 欧美三级精品| 性感少妇一区| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲精品九九| 午夜日韩在线| 伊人久久婷婷色综合98网| 夜久久久久久| 国产精品一区二区三区观看| 亚洲高清视频中文字幕| 欧美日韩高清一区| 午夜欧美精品| 欧美国产第一页| 亚洲伊人伊色伊影伊综合网| 老牛国产精品一区的观看方式| 亚洲经典在线看| 欧美在线视频一区二区三区| 激情综合五月天| 中文在线不卡视频| 国产一区二区三区免费不卡 | 久久久精彩视频| 亚洲激情另类| 欧美亚洲一区三区| 欧美在现视频| 亚洲国产小视频| 亚洲欧美成人一区二区三区| 国内精品久久久久伊人av| 99国产精品99久久久久久粉嫩| 国产精品一二三视频| 亚洲精品国产拍免费91在线| 国产精品免费观看视频| 亚洲精品久久久久久一区二区| 国产精品免费一区豆花| 亚洲精品一区二区三区99| 国产精品亚洲精品| 夜夜嗨av一区二区三区免费区| 国产情人节一区| 日韩午夜黄色| 国产一区二区高清视频| 一区二区国产日产| 国内精品99| 午夜精品视频| 亚洲免费精彩视频| 蜜臀a∨国产成人精品| 亚洲欧美国产日韩天堂区| 欧美另类在线播放| 亚洲成色www久久网站| 国产精品久久久久婷婷| 9色精品在线| 精久久久久久| 欧美在线网站|