基于CoAP协议的数据采集网关设计
CoAP协议详解
Message和Response映射关系
*:表示此种பைடு நூலகம்况只是为了让接收方发出Reset msg
Message的可靠传输
Endpoint匹配
CON和ACK/Reset Message中携带Message ID用于配对是一次可靠传输过程,支持重复检 测
简单的停等基于指数回退的重传机制保证靠性
Client构造Con Msg发送到Server,未收到ACK或Reset时,支持 基于指数回退的重发
Message的可靠传输相关参数
ACK_TIMEOUT*ACK_RANDOM_FACTOR:初始的ACK保护时间(重传保护时间),随后的 MAX_RETRANSMIT次重传都乘以2
NSTART:最大并发的处于活动状态的Message数目 DEFAULT_LEISURE: Server休闲时间,用于收到多播Request时,何时返回Response的随机时
间的计算(上限) PROBING_RATE:经过重传MAX_RETRASMIT次的Request最终未收到Response后,
Requester发送对端的平均速率要小于该值
基于CoAP协议的数据采集网关设计
( C o A P ) .T h i s s t u d y d i s c u s s e d t h e b a s i c p i r n c i p l e a n d i m p l e me n t a t i o n m e t h o d o f C o A P i n d e t a i l a n d g a v e t h e o v e r a l l d e s i g n ,t h e
h a r d w a r e a n d t h e s o f t w a r e d e s i g n o f e a c h p a r t .F u r t h e r l y .t h e s t u d y g a v e t h e d e t a i l d e s i g n o f h a r d wa r e wh i c h i s b a s e d o n t b e S TM3 2 mi c r o p r o c e s s o r a n d s o f t wa r e d e s i g n wh i c h i s b a s e d o n t h e o p e n -s o u r c e o p e r a t i n g s y s t e m R T-T h r e a d.T h e e x p e i r me n t a l r e s u l t
coap 协议
coap 协议
CoAP协议。
CoAP(Constrained Application Protocol)是一种专门为受限环境下的物联网设
备设计的应用层协议,它基于UDP协议,旨在提供低功耗、低带宽的通信方式。CoAP协议的设计旨在满足物联网设备在资源受限的环境下进行通信的需求,它具
有轻量级、简单、灵活等特点,因此在物联网领域得到了广泛的应用。
一、CoAP协议的特点。
1. 轻量级,CoAP协议的头部开销小,占用的带宽和资源较少,适合于受限环
境下的通信。
2. 简单,CoAP协议的消息格式简单,易于实现和部署,使得物联网设备可以
快速地进行通信。
3. RESTful,CoAP协议与RESTful架构相结合,支持GET、POST、PUT、DELETE等HTTP类似的方法,使得物联网设备可以像浏览器一样与服务器进行交互。
4. 可扩展性,CoAP协议支持可扩展性,可以通过选项字段来扩展协议的功能,满足不同应用场景下的需求。
5. 低功耗,CoAP协议采用了类似于HTTP的请求/响应模式,但是在传输层使
用UDP协议,减少了连接建立和维护的开销,从而降低了设备的功耗。
二、CoAP协议的应用场景。
1. 物联网设备控制,CoAP协议可以用于物联网设备之间的控制和通信,例如
智能家居中的灯光控制、温度调节等功能。
2. 传感器数据采集,物联网中的传感器可以使用CoAP协议将采集到的数据发
送到服务器,实现数据的实时监测和分析。
3. 资源发现,CoAP协议支持资源发现功能,可以帮助物联网设备快速地找到
所需的资源。
4. 轻量级通信,对于一些带宽和资源受限的场景,CoAP协议可以提供高效的
CoAP协议
CoAP协议
协议名称:CoAP协议
一、引言
CoAP(Constrained Application Protocol)是一种专为物联网(Internet of Things,简称IoT)设备设计的应用层协议。它基于UDP协议,可在资源受限的设备上实
现低功耗和低带宽的通信。本协议旨在提供一种轻量级的通信机制,以支持物联网设备之间的互操作性。
二、目的和范围
本协议的目的是定义CoAP协议的规范,包括消息格式、通信机制、安全性和
可扩展性等方面。本协议适用于使用CoAP协议进行通信的物联网设备和服务。
三、术语和定义
1. CoAP(Constrained Application Protocol):一种基于UDP的轻量级应用层
协议,用于物联网设备之间的通信。
2. IoT(Internet of Things):物联网,指将各种物理设备通过互联网连接起来,实现智能化和自动化控制。
3. UDP(User Datagram Protocol):用户数据报协议,一种无连接的传输层协议,用于在IP网络上发送数据。
四、消息格式
CoAP协议定义了四种类型的消息:CON(可靠传输)、NON(非可靠传输)、ACK(确认)和 RST(重置)。消息格式如下:
1. 版本(2位):指定CoAP协议的版本号。
2. 类型(2位):指定消息的类型,包括CON、NON、ACK和RST。
3. Token长度(4位):指定Token字段的长度。
4. Code(8位):指定消息的操作码,包括请求码和响应码。
5. Message ID(16位):用于唯一标识消息。
mn316 coap 案例
mn316 coap 案例
mn316 coap案例是指针对mn316 coap协议进行的具体应用案例。mn316 coap是一种轻量级的通信协议,适用于物联网设备之间的通信。下面是十个符合标题内容的mn316 coap案例。
1. 智能家居控制:利用mn316 coap协议,通过手机App控制智能家居设备,如灯光、温度、窗帘等,实现远程控制和智能化管理。
2. 物联网车联网应用:使用mn316 coap协议,实现车辆与车辆、车辆与基础设施之间的通信,如车辆远程监控、车辆定位、交通信号控制等。
3. 医疗监护系统:通过mn316 coap协议,将医疗设备与云平台连接,实现远程监护、病人数据采集和分析,提高医疗效率和质量。
4. 环境监测系统:利用mn316 coap协议,将传感器与云平台连接,实时监测环境参数如温度、湿度、气体浓度等,实现环境监测和预警。
5. 智能农业应用:使用mn316 coap协议,实现农业设备与云平台的连接,如土壤湿度传感器、气象站等,实现远程农业管理和智能灌溉。
6. 资源共享系统:通过mn316 coap协议,实现物联网设备之间的资源共享和协作,如共享车辆、共享充电桩等,提高资源利用效率。
7. 物流管理:利用mn316 coap协议,实现物流设备的远程监控和管理,如货物追踪、温湿度监测、运输路径规划等,提高物流效率和安全性。
8. 智能交通系统:使用mn316 coap协议,将交通设备与云平台连接,实现交通信号控制、车辆定位和交通流量监测,提高交通系统的智能化和效率。
9. 智能健身系统:通过mn316 coap协议,将健身设备与云平台连接,实时监测运动数据如步数、心率等,提供个性化健身指导和数据分析。
网络协议知识:CoAP协议的定义和应用场景
网络协议知识:CoAP协议的定义和应用场景CoAP协议的定义和应用场景
CoAP(Constrained Application Protocol)是一种专门为物联
网(IoT)应用设计的网络协议。它是一种基于UDP协议的协议,采用RESTful架构风格。CoAP协议是由IETF(Internet Engineering Task Force)标准化组织制定的,其设计目标是实现轻量级的通信协议,用于连接诸如嵌入式系统、传感器、智能家居设备等低功耗、有限资源
的物联网设备。CoAP协议的特点包括低开销、低延迟、低带宽和高效能。以下将详细介绍CoAP协议的定义和应用场景。
CoAP协议的定义
CoAP协议是一种轻量级的应用层协议,其设计以RESTful架构风格为基础。它采用类似HTTP协议的请求响应方式,通过使用封装在UDP协议上的CoAP消息格式进行通信。CoAP协议提供了一种能够直接与物联网设备通信的显式应用层协议,使得IoT设备可以方便地与互
联网进行通信。CoAP协议中定义了四种不同的CoAP消息类型,包括Confirmable(CON)、非Confirmable(NON)、Acknowledgement
(ACK)和Reset(RST)。此外,CoAP协议还提供了类似于HTTP协议的GET、PUT、POST和DELETE等RESTful风格的方法,用于在设备之间进行互相交互。
应用场景
CoAP协议的应用场景十分广泛,主要包括以下几个领域:
1.智能家居
智能家居设备需要实时传输数据,并且需要与互联网进行通信,CoAP协议可以满足这一需求。通过使用CoAP协议,智能家居设备可以使用UDP协议来发送消息,以避免TCP协议的静默时延,并且能够支持快速响应和消息流量管理。
什么是物联网?常见IoT协议最全讲解
01 什么是物联网?
物联网(Internet of Things)这个概念读者应该不会陌生。物联网的概念最早于1999年被提出来,曾被称为继计算机、互联网之后,世界信息产业发展的第三次浪潮,到现在已经发展了20余年。
如今,在日常生活中,我们已经可以接触到非常多的物联网产品,例如各种智能家电、智能门锁等,这些都是物联网技术比较成熟的应用。
物联网最早的定义是:把所有物品通过射频识别等信息传感设备与互联网连接起来,实现智能化识别和管理。当然,物联网发展到今天,它的定义和范围已经有了扩展与变化,下面是现代物联网具有的特点。
1. 物联网也是互联网
物联网,即物的互联网,属于互联网的一部分。物联网将互联网的基础设施作为信息传递的载体,即现代的物联网产品一定是“物”通过某种方式接入了互联网,而“物”通过互联网上传/下载数据,以及与人进行交互。
举个通过手机App远程启动汽车的例子,当用户通过App完成启动操作时,指令从已接入互联网的手机发送到云端平台,云端平台找到已接入互联网的车端电脑,然后
下发指令,车端电脑执行启动命令,并将执行的结果反馈到云端平台;同时,用户的这次操作被记录在云端,用户可以随时从App上查询远程开锁记录历史。
这就是一个典型的物联网场景,它是属于互联网应用的一种。“物”接入互联网,数据和信息通过互联网交互,同时数据和其他互联网应用一样汇聚到了云端。
2. 物联网的主体是“物”
前面说现代物联网应用是一种互联网应用,但是物联网应用和传统互联网应用又有一个很大的不同,那就是传统互联网生产和消费数据的主体是人,而现代物联网生产和消费数据的主体是物。
CoAP协议
CoAP协议
一、引言
CoAP(Constrained Application Protocol)是一种专门为物联网设备设计的轻量级应用层协议。它基于RESTful架构,并且在UDP传输协议上运行,旨在提供高效的通信机制,以满足资源受限设备的需求。本协议旨在规范CoAP的标准格式,以便确保设备之间的互操作性和数据传输的可靠性。
二、范围
本协议适用于使用CoAP协议进行通信的所有物联网设备。它涵盖了CoAP协议的基本结构、消息格式、通信机制和安全性要求等内容。
三、术语和定义
在本协议中,以下术语和定义适用于全文:
1. CoAP:Constrained Application Protocol,一种专门为物联网设备设计的轻量级应用层协议。
2. RESTful:Representational State Transfer,一种软件架构风格,用于构建分布式系统。
3. UDP:User Datagram Protocol,一种无连接的传输层协议,用于在IP网络上进行数据传输。
四、协议结构
CoAP协议的结构如下:
1. 消息格式:CoAP协议使用固定长度的消息头和可变长度的选项和负载来传输数据。
- 消息头包括版本、类型、代码、消息ID和Token等字段。
- 选项用于传输附加信息,如URI路径、内容格式和观察等。
- 负载是可选的,用于传输应用层数据。
2. 通信机制:CoAP协议支持四种类型的消息交换机制,包括确认、非确认、重试和分块传输。
- 确认消息用于可靠传输,发送方需要等待接收方的确认。
- 非确认消息用于快速传输,发送方不需要等待接收方的确认。
coap 协议格式
coap 协议格式
摘要:
1.COAP 协议概述
2.COAP 协议的报文格式
3.COAP 协议的请求方法
4.COAP 协议的响应方式
5.COAP 协议的应用场景
正文:
一、COAP 协议概述
COAP(Constrained Application Protocol,受限应用协议)是一种为物联网设备和受限制环境中的节点设计的应用层协议。COAP 协议的设计目标是提供一种在资源受限的设备之间进行通信的有效方法,以满足物联网应用对低功耗、低带宽、高可靠性的需求。
二、COAP 协议的报文格式
COAP 协议的报文采用客户端- 服务器模型,其报文格式分为请求报文和响应报文两种。
1.请求报文
请求报文的结构如下:
- Ver(版本):COAP 协议的版本号。
- T(标记):表示报文类型的标记,例如GET、POST 等。
- R(请求方法):表示请求方法,例如GET、POST、PUT、DELETE
等。
- URI:表示资源标识符。
- HTTP-Method:表示HTTP 方法,例如GET、POST、PUT、DELETE 等。
- Message-ID:表示报文的唯一标识符。
- Token:表示报文的授权令牌。
2.响应报文
响应报文的结构如下:
- Ver(版本):COAP 协议的版本号。
- T(标记):表示报文类型的标记,例如2.01、4.01 等。
- R(响应方法):表示响应方法,例如2.01、4.01 等。
- URI:表示资源标识符。
- HTTP-Method:表示HTTP 方法,例如2.01、4.01 等。
- Message-ID:表示报文的唯一标识符。
Android使用CoAP协议进行网关绑定
"searchKey": "ANDLINK-APP" //广播发现的key,约定为该值 "andlinkVersion": "V3" //Andlink协议版本号 } 网关收到广播后反馈 { "searchAck": "ANDLINK-DEVICE", "andlinkVersion": "V3", "deviceType": "31578" }
2、Andlink设备接入实现要求及协议规范
Andlink是中国移动提出的一套设备接入和管理的协议,实现方式复杂,在此不做过多描述,该协议可进行设备与网关之间通信,从而实现设备绑 定和管控。Andlink采用CoAP或MQTT作为通信协议。
三、具体实现思路
网关绑定逻辑
1、APP进入网关绑定页面,确认wifi是否开启(如果未开启,提示用户开启wifi并绑定到与网关相同wifi下 2、进入网关绑定页后,APP在局域网中每隔1秒发送/qlink/searchdevice的广播,同时调用全屋平台startBind接口
二、在安卓中使用CoAP
1、Californium(Cf)
Californium是一个强大的CoAP框架,是与物联网设备通信的后端服务。它为所有支持CoAP特性的REST类型web服务 提供了一个方便的API。内置于单个可自我执行的jar中,可以在任何Java8+环境中运行。 github地址作者在Maven Central发布了Californium的里程碑和版本,Android可以直接在 build.gradle(app) 引入
工业物联网加工设备数据采集网关以及数据分析方法的制作方法
本技术属于通讯技术领域;本技术还公开了一种工业物联网加工设备数据采集网关以及数据分析方法,包括网关、安装后台管理系统的主机、PAAS平台服务器、安装三方系统的主机、数据中台服务器和SAAS平台服务器,采集网关与机床通过网线进行连接,且安装后台管理系统的主机接口连接采集网关实现采集网关的管理;采集的大数据量汇聚一起上传PAAS平台服务器配合三方系统进行云端融合计算,数据处理性能提升;将展示加工设备的实时状态改进为展示加工设备的加工流程数据,统计各时间段的详细操作,给工厂企业带来降本增效;真实加工设备数据与工厂企业现有三方系统进行数据糅合,生成加工过程画像,直观展示。
权利要求书
1.一种工业物联网加工设备数据采集网关,其特征在于:包括网关、安装后台管理系统的主机、PAAS平台服务器、安装三方系统的主机、数据中台服务器和SAAS平台服务器,采集网关与机床通过网线进行连接,且安装后台管理系统的主机接口连接采集网关实现采集网关的管理,后台管理系统内置具有ID的网关与采集网关匹配绑定,从而实现系统与采集网关的一对一管理。
2.根据权利要求1所述的一种工业物联网加工设备数据采集网关,其特征在于:所述后台管理系统可管理网关采集的程序,通过预先录入采集程序,其中包括采集程序的名称、选择网
络协议(MQTT或COAP等)、选择数据格式(json或XML或二进制)、上传采集程序文件、输入采集程序的作者等进行保存,系统可主动维护采集程序固件对应的采集网关关系,灵活调配采集网关对应需要采集的设备,采集网关。
3.根据权利要求2所述的一种工业物联网加工设备数据采集网关,其特征在于:所述后台管理系统连接采集网关录入设备ID、设备别名、设备型号、设备类型、轴数、设备IP信息进行保存,采集网关通过网关的协议采集程序、网络协议、数据格式对设备数据进行采集程序下发。
基于边缘计算的物联网应用系统设计与实现
基于边缘计算的物联网应用系统设计与实现
物联网(Internet of Things,简称IoT)是近年来兴起的一种新兴技术,它将各种物体和设备连接到互联网上,实现智能化的互联互通。而边缘计算(Edge Computing)则是一种将计算和数据存储靠近物联网终端,减少云端计算负载和延迟的技术。基于边缘计算的物联网应用系统设计与实现,能够提高系统的可靠性、可扩展性和响应速度。本文将重点讨论该主题,并从系统设计和实现两个方面进行详细阐述。
首先,基于边缘计算的物联网应用系统设计需要考虑以下几个关键因素。首先是设备连接与通信,物联网系统涉及到大量的设备和传感器,如何实现设备连接和数据通信是必不可少的。基于边缘计算的物联网应用系统,可以通过建立专用的网关来实现设备的连接,并采用轻量级的通信协议如MQTT、CoAP等来实现设备间的快速、低功耗的数据传输。
其次,数据采集与处理是物联网系统的核心部分,边缘计算可以将计算和数据处理的任务下放到物联网终端,减少云端的负载和延迟。物联网终端设备可以通过本地的计算和数据处理来进行实时的数据分析与挖掘,减少数据传输的压力,并能够更快地响应用户的需求。同时,为了确保数据的安全和隐私,边缘计算还可以在本地对数据进行加密和备份,提高系统的安全性。
另外,系统可靠性和容错性是基于边缘计算的物联网应用系统设计的重要考虑因素。物联网系统涉及到大量的设备和网络连接,设备和数据的故障难免会发生。因此,系统设计需要考虑到设备和数据的冗余备份,以及故障的自动检测和修复机制。同时,边缘计算的特点可以实现局部化的故障处理,当某个设备或网络发生故障时,可以自动将任务切换到其他可用的设备或网络上,保证系统的连续性和稳定性。
coap协议案例
coap协议案例
CoAP(Constrained Application Protocol)是一种专为受限环境下的物联网设备设计的网络协议。它采用轻量级的传输层协议,能够在资源受限的设备上实现高效的通信。CoAP协议通过UDP协议进行传输,具有低延迟、低能耗和低带宽消耗的特点。下面将介绍10个基于CoAP协议的案例。
1. 温度监测系统:使用CoAP协议,物联网设备可以将温度数据通过CoAP消息发送到服务器,实时监测和记录温度变化。这种系统在农业、医疗和工业领域都有广泛应用。
2. 智能家居控制:通过CoAP协议,用户可以使用手机或其他设备远程控制智能家居设备,如灯光、温度、窗帘等。CoAP协议的低延迟和能耗优势,提升了智能家居系统的用户体验。
3. 健康监测系统:利用CoAP协议,医疗设备可以实时将患者的生理数据传输到医疗中心。医护人员可以通过CoAP消息接收和分析这些数据,实现远程监护和诊断。
4. 物流跟踪系统:基于CoAP协议的物流跟踪系统可以实时追踪货物的位置和状态。通过CoAP消息,物流公司可以根据货物的位置调整运输计划,提高运输效率和安全性。
5. 环境监测系统:利用CoAP协议,传感器设备可以实时感知环境参数,如空气质量、噪音和光照强度等。这些数据可以通过CoAP消
息发送到服务器,为环境保护和城市规划提供参考。
6. 能源管理系统:基于CoAP协议的能源管理系统可以监测和控制能源消耗。用户可以通过手机应用程序远程控制家庭和办公室的电器设备,实现节能和降低碳排放。
7. 城市交通管理:利用CoAP协议,交通信号灯和车辆传感器可以实时传输交通状态。基于这些数据,交通管理部门可以调整信号灯的配时和优化交通流量。
面向IoT的传感器数据采集与处理系统设计
面向IoT的传感器数据采集与处理系统
设计
随着物联网(Internet of Things, IoT)的快速发展,传感器在社会各
个领域得到广泛应用。传感器数据的采集和处理成为了连接物理世界
与数字世界的关键。本文将针对面向IoT的传感器数据采集与处理系
统进行详细的设计分析。
1. 系统架构设计
面向IoT的传感器数据采集与处理系统涉及到多个组成部分,包括
传感器节点、网关、云端平台和数据分析平台。系统架构设计应充分
考虑数据的实时性、可拓展性和安全性。
首先,传感器节点是数据采集的基础,需要选择合适的传感器类型
和通信协议。常见的传感器类型包括温湿度传感器、压力传感器、光
照传感器等,通信协议可以选择MQTT、CoAP等与物联网相适应的协议。
其次,传感器节点通过网关与云端平台进行数据通信。网关负责传
感器数据的采集、压缩和传输,同时具备数据存储和缓存的能力。网
关还需要支持安全认证和加密传输,确保数据的机密性和完整性。
云端平台是面向IoT的传感器数据采集与处理系统的核心,负责接收、存储和分析传感器数据。云端平台需要具备高可用性和可扩展性,能够处理大量实时数据并提供响应迅速的服务。同时,云端平台应该
支持数据的实时监控和远程管理,方便对传感器节点进行远程配置和
控制。
最后,数据分析平台可以利用传感器数据进行深入分析和挖掘,提
取有价值的信息。数据分析平台可以基于机器学习和人工智能算法,
实现数据的预测、优化和决策支持。通过对传感器数据的分析,可以
实现智能化的应用,例如环境监测、智能家居、智能城市等。
2. 数据采集与传输技术
coap协议交互方式
coap协议交互方式
CoAP协议交互方式
CoAP(Constrained Application Protocol)是一种专门为物联网设备设计的轻量级通信协议,它采用UDP作为传输协议,并在其上构建了一套简单、高效的交互方式。本文将详细介绍CoAP协议的交互方式,包括消息格式、请求-响应模型以及常见的CoAP交互场景。
一、CoAP消息格式
CoAP消息由消息头和可选的消息负载组成。消息头包含了版本、类型、消息代码、消息标识符等字段,用于标识和控制消息的行为。消息负载则用于携带具体的数据内容。
CoAP消息的类型分为CON(Confirmable)、NON(Non-confirmable)、ACK(Acknowledgement)和RST(Reset)四种。其中,CON类型的消息需要接收方回复一个ACK消息作为确认,而NON类型的消息则不需要确认。ACK类型的消息用于响应CON类型的消息,而RST类型的消息用于重置一个已经建立的传输。
二、请求-响应模型
CoAP采用了请求-响应模型,客户端发送一个请求消息给服务器,服务器接收到请求后返回一个响应消息给客户端。请求消息和响应
消息都包含了一个消息代码,用于指示请求的类型(GET、POST、PUT、DELETE等)以及响应的结果(成功、失败等)。
在请求消息中,客户端可以携带URI-Path、URI-Query、Payload 等信息,用于指定请求的资源和参数。而在响应消息中,服务器会携带相应的状态码、负载等信息,用于告知客户端请求的处理结果。
三、CoAP交互场景
基于OPCUA协议的设备数据采集系统开发
基于OPCUA协议的设备数据采集系统开发首先,需要选择一个合适的OPC UA开发库。市场上有很多成熟的OPC UA开发库可供选择,如Prosys OPC UA SDK、OPC Foundation的开源实现等。在选择开发库时需要考虑功能、性能、稳定性等因素。
其次,需要设计系统的架构和功能模块。设备数据采集系统通常包括数据采集、数据传输、数据存储和数据分析等模块。在设计架构时,可以采用分布式架构,将不同功能模块分别部署在不同的服务器上,提高系统的可伸缩性和性能。
然后,需要实现OPCUA协议的通信功能。在设备数据采集系统中,需要实现OPCUA协议的通信功能,包括获取设备的实时数据、配置设备参数等。这要求在系统开发中实现OPCUA协议的连接、读写数据等功能。
接下来,需要考虑系统的数据存储和处理。设备数据采集系统通常需要将采集的数据存储到数据库中,以便后续的数据分析和处理。在系统开发中,可以选用适当的数据库管理系统,并设计合理的数据存储结构,以满足数据查询和分析的需求。
最后,需要实现系统的数据分析和可视化功能。设备数据采集系统采集到的数据可以进行分析和处理,以监测设备状态、预测故障、进行统计分析等。在系统开发中,可以使用数据分析工具或编程语言来实现数据分析的算法,并将结果通过可视化界面展示给用户。
总之,基于OPCUA协议的设备数据采集系统开发涉及到选择开发库、设计架构、实现协议通信、数据存储和处理以及数据分析和可视化功能。通过合理的设计和开发,可以实现高效稳定的设备数据采集系统,提高设备监测和运维的效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于CoAP协议的数据采集网关设计
摘 要: 针对呼伦湖流域环境大数据采集的需求,同时为了解决不同厂商协议标准的不兼容性,设计了一种基于CoAP协议的数据采集网关。详细讨论了CoAP协议的基本原理和实现方法,并在开源系统RT-Thread和微控制器STM32的软硬件平台上实现。给出了系统整体设计以及各部分软硬件设计,实验结果表明,该设计方案可行,具有传输效率高、兼容性较好的特点。
关键词: 数据采集;网关;STM32;RT-Thread;CoAP
0 引言
近年来,呼伦湖流域生态面临着严峻的挑战,水域污染加重、湖底淤积、生物多样性下降、湿地萎缩等问题日益突出[1]。目前,呼伦湖流域环境监测系统的信息化建设还处于起步阶段,监测点不足、基础数据不完善、数据采集系统自动化程度较低、监测数据不能通过网络共享等问题使得政府部门很难及时有效地做出应对措施。同时,由于各大厂商的技术缺乏兼容性,很难将不同的协议兼容使用。在这种背景下,本文设计了基于CoAP协议的数据采集网关,对多个监测点的传感器数据进行CoAP数据格式转换,上传远程数据库,积累生态环境大数据,为政府决策提供支持。
1 系统概述
基于RT-Thread的CoAP协议网关系统是在传感器节点数据采集基础上,对多个传感器节点的数据进行CoAP数据格式转换,并与远程数据库进行数据交互,实现环境监测数据网络共享的效果[2]。整体设计框图。
2 硬件设计
硬件设计框架图。
传感器节点选择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协议的数据报格式。
CoAP包含一个紧凑的二进制报头以及扩展报头。基本报头只有短短4 B,后面紧跟着扩展选型和有效负载。报头各个部分字段的含义如下:Ver表示CoAP协议的版本号,默认情况下置1;T表示报文的类型:CON类型、NON类型、RST类型、ACK类型;TKL表示选型Token所占的字节数;Code表示消息的类型:请求消息、响应消息或者是空消息;Message ID表示消息编号,用于重复消息检测、匹配消息类型等。
CoAP协议的传输层默认使用UDP协议,为了解决UDP传输的不可靠性,CoAP协议采用了双层结构,定义了带有重传的事务处理机制,并采用尽可能小的载荷,限制了分片。CoAP协议栈视图。
事物层(Transaction Layer)用于处理节点间的信息交换,同时提供组播和拥塞控制等功能;请求/响应层(Request/Response Layer)用于传输对资源进行操作的请求和相应信息。CoAP的双层处理方式使得CoAP没有采用TCP协议也可以提供可靠的传输机制。
CoAP官方推出了一定量的库文件,方便用户在自己的设备移植使用CoAP。本设计是在RT-Thread操作系统环境下进行的,其LWIP协议栈组件能够提供CoAP所需的UDP协议[4],通过编程实现CoAP标准格式数据报就可实现CoAP网关与远程数据库之间的CoAP数据上传。自定义的CoAP数据结构图。
在实现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中(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部分。实验结果表明,以上所述的CoA
P协议实现方法可行。
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模块数据透传的方式实现的,为了解决数据在透传过程中的缺失、不按顺序到达等问题,提出了一种自定义的透传数据格式。通过解析数据包中的帧首、功能码、从机地址、结束校验位等信息,就可判断数据包的完整性和正确性。自定义数据包格式。
其中,帧首定义为0xBBEE,占2个字节;长度码表示数据包占用的字节数;从机地址表示节点编号(CoAP网关节点为1号,传感器节点依次为2,3,4…);功能码表示CoAP节点数据查询功能(0)以及传感器节点数据提交功能(1);数据位中存放传感器原始数据(查询功能数据包中的该项为0);结束校验位占用2字节,固定为0x3498。
CoAP网关节点以RT-Thread内核以及LWIP外围组件作为软件平台[7],结构示意图。
根据CoAP网关节点任务的划分,设计了多个线程:rt_dataex_entry线程负责与传感器节点数据交互,并解析传感器节点数据包;rt_coap_entry线程负责将传感器原始数据CoAP格式化;rt_ethsend_entry线程负责定时向远程服务器发送CoAP报文。线程的顺序视图。
5 结束语
本文介绍了基于CoAP协议的数据采集网关设计,通过对相关软硬件实现方法加以分析以及实验测试,证实本设计能够达到预期的效果。本文设计的CoAP协议网关不仅仅适用于呼伦湖流域环境数据采集,根据不同的应用场合,只要对硬件和软件稍作修改即可完成不同的监测任务。本设计在数据采集系统领域具有一定的借鉴价值。