2024基于CoAP的配电物联网通信协议_第1页
2024基于CoAP的配电物联网通信协议_第2页
2024基于CoAP的配电物联网通信协议_第3页
2024基于CoAP的配电物联网通信协议_第4页
2024基于CoAP的配电物联网通信协议_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

T/CECXXXXX—XXXX目  次1范围 12规范性引用文件 13术语和定义 14一般技术原则 15消息格式 86传输机制 25基于CoAP的配电物联网通信协议范围本文件规定了边设备与端设备之间采用的数据传输协议,包括通信体系架构、应用数据结构以及应用传输过程等。同时对数据传输的帧格式、数据编码及传输规则作出了相应规定。本文件适用于点对点、多点共线及一点对多点的通信方式,适用于边设备与端设备之间的通信。规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T16262.1-2006信息技术抽象语法记法(ASN.1)第1部分基本记法规范GB/T17966-2000微处理器系统的二进制浮点运算DL/T645-2007多功能电能表通信协议DL/T860变电站通信网络和系统DL/T634.5101远动设备及系统第5-101部分DL/T634.5104远动设备及系统第5-104部分Q/GDW1376电力用户用电信息采集系统通信协议Q/GDW1939电力无线传感网络信息安全技术规范RFC7252受限应用协议(CoAP)RFC7641受限应用协议(CoAP)中的观察者模式术语和定义下列术语和定义适用于本文件。CoAP客户端CoAPclient发起CoAP服务的通信端。CoAP服务器端CoAPserver响应CoAP客户端服务的通信。一般技术原则体系架构本文件定义了配电物联网通信协议中对CoAP协议的使用。图4.1配电物联网通信架构示意图端设备经CoAP协议到边设备后再经MQTT与云主站通信,也可以直接经CoAP与云主站通信。图4.2 CoAP通信交互示意图规约结构本文件明确了配电物联网通讯协议中CoAP协议在ISO七层体系中所属位置以及协议栈数据结构。本文件采用的UDP传输集与定义在其他相关标准中的相同,没有变更。图4.3所示为配电物联网系统采用的CoAP协议传输模型。图4.4所示为配电物联网系统采用的CoAP协议栈结构。应用功能用户进程CoAP协议应用层(第7层)UDP协议传输层(第4层)IP协议网络层(第3层)HPLC、微功率无线RF、NB-IoT等协议链路层(第2层)物理层(第1层)注:第5层,第6层未用。图4.3 CoAP协议传输模型图4.4 CoAP协议栈结构交互机制按照配电物联网体系架构设计,CoAP协议既可实现端边交互,又可实现端云交互。其中,当端设备与边设备本地组网时,可使用CoAP协议实现端边交互;当端设备(传感器)直接与物联网平台通信时,可使用CoAP协议实现端云交互。目前CoAP协议实现方式一般分为两种:请求/响应模式和观察者模式,分别适用于不同的业务场景。请求/响应交互模型根据RFC7252的描述,CoAP协议在应用端点(Endpoint)之间使用请求/响应(Request/Response)的交互模型,支持内建的服务和资源发现,包含诸如URI等Web相关的关键概念。CoAP采用和HTTP协议相似的请求响应工作模式:作为客户端的CoAP端点向作为服务器端的CoAP端点发送一个或多个请求,服务器端响应客户端的CoAP请求。图4.5 CoAP的请求/响应交互模型观察者交互模型RFC7641在CoAP上定义了扩展机制,引入观察者模式。该模式下,作为观察者的CoAP端点(客户端)向作为主题的CoAP端点(服务器端)进行注册,只要资源状态发生变化,服务器端可以主动通知观察者,适用M2M(Machine-to-Machine)通信中常见的休眠/唤醒场景。图4.6 CoAP的观察者交互模型注册(Registeration)是一种特殊的GET请求,它的报头包含观察者选项(ObserveOption)。当观察者选项出现在GET请求中时,表示客户端不仅要获取服务器端的当前状态,还要求对服务器端维护的观察者列表进行添加(Observe=0)或删除(Observe=1)操作。当服务器端无法添加或不愿添加该客户端时,注册回退成一个普通的GET请求。通知(Notification)是客户端注册成功后,服务器端针对单一的注册请求,向客户端所发送的多个响应。通知和普通响应的区别在于,通知包含观察者选项,并且一次注册可对应多个通知。配电物联网体系架构中,CoAP的两种使用模式都有其应用场景,示例参见下图。边设备连接的端设备数量有限,且多为在线状态,即可采用请求/响应模型,也可采用观察者模型。图4.7 CoAP两种模式在配电物联网中的应用示意图总之,在信息交互过程中,CoAP协议将参与方划分为两种身份:客户端和服务器端。其中,请求消息的源、响应消息的目的被称为客户端;请求消息的目的、响应消息的源是服务器端。在本文件中,边设备即可作为服务器端,由端设备(客户端)向其注册自身的信息,实现自动发现等功能;也可作为客户端,向端设备(服务器端)订阅数据等。(1)CoAP客户端CoAP客户端定义为使用CoAP协议的设备或应用程序,它具备以下功能:请求/响应模型:向服务器端发送资源状态获取请求,处理服务器端的响应消息。观察者模型:向服务器端进行注册,并处理服务器端后续持续发送的通知消息。(2)CoAP服务器端CoAP服务器端定义为使用CoAP协议的设备或应用程序,它具备以下功能请求/响应模型:响应来自客户端的请求,提供服务器端的资源状态。观察者模型:处理来自客户端的注册(包括添加和删除操作);向已注册的客户端持续、主动提供通知消息。数据包结构一个数据包由固定4字节的头部、变长的Token(0-8byte)、0或多个TLV格式的Option、可选的Payload构成。其数据包结构如下:图4.8 CoAP数据包结构数据包格式解释:Ver:版本编号,2-bit无符号整型,代表协议版本号。本版本的实现必须设置这个字段为0b01。其它的值为今后其它版本保留。对于带有未知版本号的消息,必须忽略。T:报文类型,2-bit无符号整型,协议定了4种不同形式的报文,CON报文,NON报文,ACK报文和RST报文。T=0:CON需要被确认的请求,如果CON请求被发送,那么对方必须做出响应。T=1:NON不需要被确认的请求,如果NON请求被发送,那么对方不必做出回应。T=2:ACK应答消息,接受到CON消息的响应。T=3:RST复位消息,当接收者接收到无法识别或错误的消息时,不能回ACK消息,应回复复位消息。TKL:4-bit无符号整型,表示变长的Token字段(0-8字节)的长度。长度9-15是保留的,不能设置长度为9-15。如果设置了长度为9-15,必须被当作消息格式错误来处理。Code:功能码/响应码,8-bit无符号整型,拆分为3-bit的分类信息和5-bit详细信息,写作“c.dd”。c是3-bit长,可以是一个从0到7的数字,dd是5-bit长,它一个两位的数字,从00到31。分类信息c可以代表是一个请求(0),一个成功的响应(2),一个客户端错误响应(4),或者一个服务端错误响应(5),所有其它的值都是保留的。代码0.00是一个特殊的情况,表示一个空的消息。当消息是一个请求时,Code字段表示请求方法;当响应时,Code字段代表响应代码。Code字段所有可取的值都在CoAP代码表中定义。表4-1Code代码表服务类型Code功能描述请求0.01GET方法用于获得某资源。请求0.02POST方法用于创建某资源。请求0.03PUT方法用于更新某资源。请求0.04DELETE方法用于删除某资源。响应2.01Created用于响应,已创建。响应2.02Deleted用于响应,已删除资源。响应2.03Valid用于响应,无效。响应2.04Changed用于响应,已修改。响应2.05Content带有交互内容的响应。响应2.31Continue用于分块传输。响应4.00BadRequest请求错误,服务器无法处理。响应4.01Unauthorized没有范围权限。响应4.02BadOption请求中包含错误选项。响应4.03Forbidden服务器拒绝请求。响应4.04NotFound服务器找不到资源。响应4.05MethodNotAllowed非法请求方法。响应4.06NotAcceptable请求选项和服务器生成内容选项不一致。响应4.08RequestEntityIncomplete用于分块传输。响应4.12PreconditionFailed请求参数不足。响应4.13RequestEntityTooLarge。响应4.15UnsupporConten-Type请求中的媒体类型不被支持。响应5.00InternalServerError服务器内部错误。响应5.01NotImplemented服务器无法支持请求内容。响应5.02BadGateway服务器作为网关时收到了一个错误的响应。响应5.03ServiceUnavailable服务器过载或者维护停机。响应5.04GatewayTimeout作为网关执行请求时发生超时错误。响应5.05ProxyingNotSupported服务器不支持代理功能。MessageID:报文编号,16-bit无符号整型,网络字节序。用于检测消息重复以及匹配ACK/RST类型的消息和CON/NON类型的消息。Token:标识符(可选),通过TKL指定Token长度,用于将响应与请求匹配。token值为0到8字节的序列,每个请求都带有一个客户端生成的token,服务器在任何结果响应中都必须对其进行回应,用以标记消息的唯一性。token还是消息安全性的一个设置,使用全8字节的随机数,使伪造的报文无法获得验证通过。Option:选项(可选),主要用于描述请求或者响应对应的特征。Option部分包含OptionDelta、OptionLength和OptionValue三部分,格式如下:图4.9 Option选项格式CoAP协议中所有的Option都采用编号的方式,这些Option及编号的定义如下图所示,详细功能可参考[RFC7252]标准文档。表4-2Option选项表编号选项描述0无(保留)1If-Match通常用在资源更新(PUT),条件是如果目标资源或者资源的Etag标识存在则完成更新。3Uri-Host指定目标资源所在的主机4ETag由Server产生的,用于区分随时间变化的相同资源刷新的资源标识符。5If-None-Match用在资源更新(PUT),条件是目标Resource不存在。If-MatchOption没有Value。6Observe用于订阅/发布流程,可参看[RFC7641]。7Uri-Port指定目标资源所在的端口。8Location-Path指定目标资源绝对路径的一部分。11Uri-Path一段资源的绝对路径。12Content-Format指定复杂媒体类型。14Max-Age指定资源的生存时间,即保持fresh的时间。15Uri-Query一个资源的参数。17Accept响应复杂中的媒体类型,媒体类型的定义和Content-Format相同。20Location-Query对应目标资源的一个参数。23Block2用于服务器端响应时,分块传输[RFC7959]。27Block1用于客户端发出请求时,分块传输[RFC7959]。28Size2用于分块传输服务器端响应资源总的大小[RFC7959]。35Proxy-Uri用于发往正向代理的请求中,表示一个绝对URI。39Proxy-Scheme表示代理scheme,比如CoAP,CoAPs,http,https。60Size1用于分块传输,客户度发出请求里面资源总的大小[RFC7959]。128(保留)132(保留)136(保留)140(保留)表4-3Content-Format支持多种媒体类型媒体类型编号描述text/plain0表示负载为字符串形式,默认为UTF8编码application/link-format40CoAP资源发现协议中追加定义,该媒体类型为CoAP协议特有。application/xml41表示负载类型为XML格式。application/octet-stream42表示负载类型为二进制格式。application/exi47表示负载类型为“精简XML”格式。applicaiton/json50表示负载类型为json格式。applicaiton/tlv51表示负载类型为TLV格式(自定义)。11111111B:payload的标识符(可选),CoAP报文有效交互数据(Payload)之间的分隔符。Payload:有效载荷(可以没有payload)。如果数据帧存在payload,并且长度不为0,那么payload之前有一个固定长度为一个字节的payload标识符(0xFF),它标志着选项部分的结束和payload部分的开始。消息类型CoAP协议使用UDP进行传输,请求和响应在发送前不需事先建立连接,而是通过信息层选项的可靠性实现。CoAP定义了4种消息类型:CON——需确认的请求。若CON请求被发送,对端必须做出回应。NON——不需要确认的请求。若NON请求被发送,对端不需做出回应。ACK——应答消息。对应CON消息的响应。RST——重置消息。接收端收到不能识别或错误消息时,向发送方发送该消息。注意,对于NON请求,也可回复RST消息。可靠传输机制基于4种消息类型,可以实现2种传输质量,即可靠消息传输与不可靠消息传输。(1)可靠传输消息可靠传输消息通过消息确认及消息重传机制来实现。当客户端发送数据后,需要等待服务器发送的确认应答消息。如果在规定时间内,客户端没有收到服务器发送确认应答消息需要重新发送数据。可靠传输基于CON消息传输,服务器端收到CON类型的消息后,需要返回ACK消息,客户端到在指定时间ACK_TIMEOUT内收到ACK消息后,才代表这个消息以可靠到服务器端。(2)不可靠消息传输不可靠消息传输没有确认机制,客户端发送消息后,不需要服务器客户端发送确认应答消息,因此可能存在丢包情况。不可靠传输是基于NON消息传输的。服务器端收到NON类型的消息后,不用回复ACK消息。消息格式服务标签服务标签编码采用ASN.1/BER编码的简单定长编码规则,基本长度1字节。其编码规则如下:bit8-bit6表示安全加密类型;bit5表示TLV嵌套类型;bit4-bit1表示业务类型。表5-1安全加密类型定义表Bit8-bit6类型000明文001密文010明文+签名011密文+签名100-111保留表5-2业务类型定义表Bit4-bit1类型0000设备上下线0001数据采集0010时间采集0011文件传输0100控制服务0101对时服务0110参数查询0111参数设置1000参数激活1001主动上送1010消息订阅(观察者模式)1011身份认证1100密钥更新1101会话重用1110保留1111保留表示扩展业务字节,为后续业务扩展使用设备上/下线端设备上线、下线时,将相关信息,经CoAP通道上报至网关。请求、响应数据如下。请求报文:CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:postMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识(长度由TKL确定)OptionsUri-Path必选StringDevAppNotifyCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG00服务LENGTH必选Uint16数据TLV长度deviceState必选Uint8设备状态(上线、离线)appPort必选Uint32APP端口appName必选StringAPP名称appType必选Uint8APP类型nodeID必选String设备硬件IDmanufacturerID必选String设备厂商IDmanufacturerName必选String设备厂商名称model必选String设备型号deviceType必选String设备类型protocolType必选String协议类型integrityCheck必选String计算负载内容的HMAC值,保证数据合法响应报文:CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识(长度由TKL确定)OptionsUri-Path必选StringDevAppNotifyCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG00服务LENGTH必选Uint16数据长度year必选Uint16年month必选Uint8月date必选Uint8日hour必选Uint8时minute必选Uint8分second必选Uint8秒数据采集数据采集一、全部数据采集请求CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:GETMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringdata_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG01服务LENGTH必选Uint160004数据TLV必选TLVFFFFFFFF(全部数据采集)二、全部数据采集响应CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识(长度由TKL确定)OptionsUri-Path必选StringnodeIDUri-Path必选Stringdata_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG11服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV数据点TLV,参考信息模型Payload示例:字段名类型描述示例报文服务TAGBYTETAG11服务LENGTHINT数据TLV长度0012数据TLVTLV数据1TAGDFC98000(PhV.phsA)数据1LENGTH04数据1数值0145D36E数据2TAGDFC98001(PhV.phsB)数据2LENGTH04数据2VALUE0145D36E注:本文件中示例报文中高位字节在前,低位字节在后。三、单个或多个数据请求CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:GETMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识(长度由TKL确定)OptionsUri-Path必选StringnodeIDUri-Path必选Stringdata_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG11服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV数据点TLVPayload示例:字段名类型描述示例报文服务TAGBYTE服务TAG11服务LENGTHINT数据TLV长度0008数据TLV必选数据1TAGDFC98000(PhV.phsA)数据2TAGDFC98001(PhV.phsB)四、单个或多个数据响应CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringdata_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG11服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV数据TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG11服务LENGTHINT数据TLV长度0012数据TLVTLV数据1TAGDFC98000(PhV.phsA)数据1LENGTH04数据1数值0145D36E数据2TAGDFC98001(PhV.phsB)数据2LENGTH04数据2VALUE0145D36E时间采集一、时间请求CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:GETMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringdata_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG02服务LENGTH必选INT数据TLV长度数据TLV必选TLV时间请求ValuePayload示例:字段名类型描述示例报文服务TAGTAG服务TAG02服务LENGTH必选Uint160004数据TLV必选TLVFFFFFFFE(时间请求)二、读取时间命令响应CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringdata_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG02服务LENGTH必选Uint16数据长度year必选Uint16年month必选Uint8月date必选Uint8日hour必选Uint8时minute必选Uint8分second必选Uint8秒msecond必选Uint16毫秒Payload示例:字段名类型描述示例报文服务TAGTAGTAG02服务LENGTHUint16数据TLV长度0009yearUint16年2019monthUint8月05dateUint8日29hourUint8时18minuteUint8分11secondUint8秒10msecondUint16毫秒200文件传输文件传输分为目录请求、目录响应、文件请求和文件响应4类消息。一、目录请求CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:GETMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringdata_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG03服务LENGTH必选INT数据长度数据值V必选String目录名称Payload示例:字段名类型描述示例报文服务TAGTAGTAG03服务LENGTHUint16数据TLV长度xxxx数据值VString目录名称xxxxxxxx…二、目录响应CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringdata_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG03服务LENGTH必选Uint16数据长度数据值V必选String文件名称+空格隔离符号Payload示例:字段名类型描述示例报文服务TAGTAGTAG03服务LENGTHUint16数据TLV长度xxxx数据值VString文件1名称xxxxxxxx…隔离符空格符文件2名称xxxxxxxx……文件n名称xx三、文件请求CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:GETMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringdata_rscBlock1可选Struct分块传输CoAP负载字段名必选/可选类型参数描述服务TAG必选TAG03服务LENGTH必选Uint16数据长度数据值V必选String文件名称Payload示例:字段名类型描述示例报文服务TAGTAGTAG03服务LENGTHUint16数据TLV长度xxxx数据TLVString请求文件名称xx四、文件响应CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringdata_rscBlock2可选Struct分块传输CoAP负载字段名必选/可选类型参数描述服务TAG必选TAG03服务LENGTH必选Uint16数据长度数据值V必选String文件内容Payload示例:字段名类型描述示例报文服务TAGTAGTAG03服务LENGTHUint16数据长度xxxx数据值VString文件内容长度xxxxxxxx…文件内容(16进制)xxxxxxxx…命令下发控制服务一、控制命令请求CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:post/putMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringcmd_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG14服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV控制点TLV,参考信息模型Payload示例:字段名类型描述示例报文服务TAGBYTETAG14服务LENGTHUint16数据TLV长度0007数据TLVTLV控制点1标识DFAD8002(CSWI_OpOpn)长度02CtrlMode0:预置1:执行;2:撤销数值单点:0:分1:合双点:1:分2:合档位:1-5,五个档位二、控制命令响应CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringcmd_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG14服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV控制点TLVPayload示例:(成功返回镜像报文,失败value=0xFF)字段名类型描述示例报文服务TAGTAGTAG14服务LENGTHUint16数据TLV长度0007数据TLVTLV控制点1标识DFAD8002(CSWI_OpOpn)长度02CtrlMode0:预置1:执行;2:撤销数值单点:0:分1:合双点:1:分2:合档位:1-5,五个档位失败:FF对时服务一、对时命令请求CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:post/putMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringcmd_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG05服务LENGTH必选INT数据长度year必选Uint16年month必选Uint8月date必选Uint8日hour必选Uint8时minute必选Uint8分second必选Uint8秒msecond必选UINT16毫秒Payload示例:字段名类型描述示例报文服务TAGTAGTAG05服务LENGTHUint16数据TLV长度0009yearUint162019monthUint805dateUint829hourUint818minuteUint811secondUint810msecondUint16200二、对时命令响应CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken必选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringcmd_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG05服务LENGTH必选Uint16数据长度数据值V必选BYTE对时结果Payload示例:字段名类型描述示例报文服务TAGTAGTAG05服务LENGTHUint16数据TLV长度0001数据值VBYTE对时结果00(成功)FF(或其他错误码)参数配置参数查询一、参数查询请求CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:GETMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringcmd_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG06服务LENGTH必选Uint16数据TLV长度数据TLV可选TLV参数点TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG06服务LENGTHUint16数据TLV长度0008数据TLVTLV参数1TAGDFAC8000(Load)参数2TAGDFAC8001(ImbA.strVal)二、参数查询响应CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringcmd_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG16服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV控制点TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG16服务LENGTHUint16数据TLV长度0012数据TLVTLV参数1TAGDFAC8000(Load)参数1LENGTH04参数1数值01020304参数2TAGDFAC8001(ImbA.strVal)参数2LENGTH04参数2数值01020304参数预置一、参数预置请求CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:post/putMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringcmd_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG17服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV参数点TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG17服务LENGTHUint16数据TLV长度0009数据TLVTLV参数1标识DFAC8000(Load)长度04数值0145D36E二、参数预置响应CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringcmd_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG07服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV参数点TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG07服务LENGTHUint16数据TLV长度0001数据值VBYTE控制结果00(成功)FF(不成功)参数预置一、参数激活请求CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:post/putMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringcmd_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG08服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV参数点TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG08服务LENGTHUint16数据TLV长度0008数据TLVTLV参数1TAGDFAC8000(Load)参数2TAGDFAC8001(ImbA.strVal)二、参数激活响应CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringcmd_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG18服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV控制点TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG18服务LENGTHUint16数据TLV长度000C数据TLVTLV参数1TAGDFAC8000(Load)激活结果LENGTH01激活结果Value00(成功)FF(不成功)参数2TAGDFAC8001(ImbA.strVal)激活结果LENGTH01激活结果Value00(成功)FF(不成功)主动上送消息订阅/取消CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:getMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsObserve必选BYTE0:订阅;1:取消订阅Uri-Path必选StringnodeIDUri-Path必选Stringob_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG1A服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV订阅类型TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG1A服务LENGTHUint16数据TLV长度xxxx数据TLVTLV类型TAGDFD00004(数据上报)类型LENGTHxx类型数值xxxxxxxx(观察数据如温度、湿度、电量及其观察策略等),FFFFFFFF表示订阅全部事件主动上送报文CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit响应码MessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识OptionsUri-Path必选StringnodeIDUri-Path必选Stringob_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG19服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV参考具体数据模型,主动上报数据类型默认带时标Payload示例:字段名类型描述示例报文服务TAGTAGTAG19服务LENGTHINT数据TLV长度00000045数据TLVTLV1数据TagDFAA8014(A相短路短延时)长度01数值00(报警)/FF(动作)时标年月日时分秒毫秒TLV2数据TagDFC98000(PhV.phsA)长度04数值0145D36ETLV3数据TagDFC98001(PhV.phsB)长度04数值0145D35ETLV4数据TagDFC98002(PhV.phsC)长度04数值0145D36CTLV5数据TagDFC98006(A.phsA)长度04数值FF45D35ETLV6数据TagDFC98007(A.phsB)长度04数值0045D35ETLV7数据TagDFC98008(A.phsC)长度04数值0145D35E安全服务身份认证及会话协商请求报文:CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:postMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识(长度由TKL确定)OptionsUri-Path必选StringnodeIDUri-Path必选Stringsec_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG1B服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV身份认证TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG1B服务LENGTHUint16数据TLV长度xxxx数据TLVTLV参数1TAGxxxxxxxx(随机数)参数1LENGTH04参数1数值xxxxxxxx参数2TAGxxxxxxxx(签名值)参数2LENGTH40参数2数值xxxx……参数3TAGxxxxxxxx(请求方证书)参数3LENGTHxxxx(证书长度)参数3数值xxxx……(证书数据)响应报文:CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:postMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识(长度由TKL确定)OptionsUri-Path必选StringnodeIDUri-Path必选Stringsec_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG1B服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV身份认证TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG1B服务LENGTHUint16数据TLV长度xxxx数据TLVTLV参数1TAGxxxxxxxx(随机数)参数1LENGTH04参数1数值xxxxxxxx参数2TAGxxxxxxxx(端设备ID)参数2LENGTH10参数2数值xxxx……参数3TAGxxxxxxxx(签名值)参数3LENGTH40参数3数值xxxx……参数4TAGxxxxxxxx(端设备证书)参数4LENGTHxxxx参数4数值xxxx……密钥更新请求报文:CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:postMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识(长度由TKL确定)OptionsUri-Path必选StringnodeIDUri-Path必选Stringsec_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG1C服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV密钥更新TLVPayload示例:字段名类型描述示例报文服务TAGBYTETAG1C服务LENGTHUint16数据TLV长度xxxx数据TLVTLV参数1TAGxxxxxxxx(更新数据包)参数1LENGTH0111参数1数值xxxx……响应报文:CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:postMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识(长度由TKL确定)OptionsUri-Path必选StringnodeIDUri-Path必选Stringsec_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG0C服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV执行结果Payload示例:字段名类型描述示例报文服务TAGBYTETAG0C服务LENGTHUint16数据TLV长度xx02数据TLVUint16参数1TAGxxxx会话重用请求报文:CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:postMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识(长度由TKL确定)OptionsUri-Path必选StringnodeIDUri-Path必选Stringsec_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG1D服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV会话重用数据Payload示例:字段名类型描述示例报文服务TAGBYTETAG1D服务LENGTHUint16数据TLV长度xxxx数据TLVTLV参数1TAGxxxxxxxx参数1LENGTHxx参数1数值xxxx……响应报文:CoAP首部字段名必选/可选类型参数描述T必选2bit报文类型TKL必选4bit标签长度指示Code必选8bit请求方法:postMessageID必选16bit会话IDToken可选BYTE本次请求的唯一标识(长度由TKL确定)OptionsUri-Path必选StringnodeIDUri-Path必选Stringsec_rscCoAP负载字段名必选/可选类型参数描述服务TAG必选TAG0D服务LENGTH必选Uint16数据TLV长度数据TLV必选TLV执行结果Payload示例:字段名类型描述示例报文服务TAGBYTETAG0D服务LENGTHUint16数据TLV长度xx02数据TLVUint16参数1TAGxxxx传输机制设备上/下线流程设备上线端设备的上线流程如下:1、端设备的即插即用服务单元读取设备自身信息,向边设备上的即插即用APP发送设备上线请求(请求消息里包含设备信息);2、边设备的即插即用APP接收到端设备上线请求后,发送设备上线应答给端设备的即插即用服务单元(应答消息中应包含当前系统时间)。设备下线端设备的主动下线流程如下:1、端设备即插即用服务单元发现有一个端设备下线时,向边设备即插即用服务APP发送设备下线消息(消息内容包含设备信息);2、边设备即插即用服务APP接收到端设备下线请求,发送设备下线应答给端设备即插即用服务单元(应答消息包含系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论