logo资料库

OneNET(NB-Iot协议接入)说明文档.docx

第1页 / 共55页
第2页 / 共55页
第3页 / 共55页
第4页 / 共55页
第5页 / 共55页
第6页 / 共55页
第7页 / 共55页
第8页 / 共55页
资料共55页,剩余部分请下载后查看
1、资源模型介绍
1.1协议介绍
1.2资源模型
1.3订阅(Observe机制)
2、SDK使用说明
2.1 API接口模式的应用
2.1.1 API接口模式的应用
2.1.2数据结构和回调函数
2.1.2.1 回调函数接口
2.1.2.2 结构体
2.1.3应用程序编写
2.2 AT接口模式的应用
2.2.1 AT接口说明
2.2.2 应用程序编写
3、SDK移植说明
3.1 SDK目录结构
3.2 SDK接口文件
3.3网络接口适配
3.3.1回调函数
3.3.2结构体
3.3.3底层网络接口
3.4系统接口适配
NB-IOT 协议接入说明文档 Version: 1.0 版本 时间 修订人 描述 1.0.0 2017/10/30 物联网公司、研究院 A-创建文档,整理接入方案 1.0.0
1、 资源模型介绍 1.1 协议介绍 OneNET 提供了采用 LWM2M+CoAP 协议接入设备的说明文档,用户可以下载学习 相关的具体内容,其中包括: LWM2M 协议的介绍 LWM2M 是 OMA 组织制定的轻量化的 M2M 协议。LwM2M 定义了三个逻辑实体:    LWM2M Server 服务器; LWM2M Client 客户端,负责执行服务器的命令和上报执行结果; LWM2M 引导服务器 Bootstrap Server,负责配置 LWM2M 客户端。 在这三个逻辑实体之间有 4 个逻辑接口:  Device Discovery and Registration:客户端注册到服务器并通知服务器客户端所 支持的能力;  Bootstrap:Bootstrap Server 配置 Client;  Device Management and Service Enablement:指令发送和接收;  Information Reporting:上报其资源信息。 图 1-1 LWM2M 协议栈  LWM2M Objects:每个对象对应客户端的某个特定功能实体。LWM2M 规范定义
了以下标准 Objects,比如 o urn:oma:lwm2m:oma:2; (LWM2M Server Object); o urn:oma:lwm2m:oma:3; (LWM2M Access Control Object); o 每 个 object 下 可 以 有 很 多 resource , 比 如 Firmware object 可 以 有 Firmware 版本号,size 等 resource; o Vendor 可以自己定义 object。  LWM2M Protocol:定义了一些逻辑操作,比如 Read, Write, Execute, Discover or Observe 等。 LWM2M 协议的具体内容和消息格式可以参考 OMA 的网站 https://en.wikipedia.org/wiki/OMA_LWM2M CoAP 协议的说明 CoAP(Constrained Application Protocol)协议是 IETF 提出的一种面向网络的 协议,采用了与 HTTP 类似的特征,核心内容为资源抽象、REST 式交互以及可扩展的头选 项等。CoAP 协议基于 REST 构架,REST 是指表述性状态转换架构,是互联网资源访问协 议的一般性设计风格。为了克服 HTTP 对于受限环境的劣势,CoAP 既考虑到数据报长度的 最优化,又考虑到提供可靠通信。一方面,CoAP 提供 URI,REST 式的方法如 GET、POST、 PUT 和 DELETE,以及可以独立定义的头选项提供的可扩展性。另一方面,CoAP 基于轻量 级的 UDP 协议,并且允许 IP 多播。为了弥补 UDP 传输的不可靠性,CoAP 定义了带有重 传机制的事务处理机制。并且提供资源发现机制,并带有资源描述。
CoAP 协议栈示意图 CoAP 由 UDP 作为承载,遵循 UDP 基本的协议报文格式,UDP 数据内容部分按照 CoAP 协议报文格式进行写入传输。 CoAP 协议格式说明如下:  【Ver】版本编号,指示 CoAP 协议的版本号。类似于 HTTP 1.0 HTTP 1.1。 版本编号占 2 位,取值为 01B。  【T】报文类型,CoAP 协议定义了 4 种不同形式的报文:CON 报文,NON 报文,ACK 报文和 RST 报文。  【TKL】CoAP 标识符长度。CoAP 协议中具有两种功能相似的标识符,一种 为 Message ID(报文编号),一种为 Token(标识符)。其中每个报文均包含 消息编号,但是标识符对于报文来说是非必须的。  【Code】功能码/响应码。Code 在 CoAP 请求报文和响应报文中具有不同的 表现形式,Code 占一个字节,它被分成了两部分,前 3 位一部分,后 5 位一 部分,为了方便描述它被写成了 c.dd 结构。其中 0.XX 表示 CoAP 请求的某种 方法,而 2.XX、4.XX 或 5.XX 则表示 CoAP 响应的某种具体表现。  【Message ID】报文编号。  【Token】标识符具体内容,通过 TKL 指定 Token 长度。  【Option】报文选项,通过报文选项可设定 CoAP 主机、CoAP URI、CoAP
请求参数和负载媒体类型等等。  【1111 1111B】CoAP 报文和具体负载之间的分隔符。 CoAP 支持多个 Option,CoAP 的 Option 的表示方法比较特殊,采用增量的方式描 述。一般情况下 Option 部分包含 Option Delta、Option Length 和 Option Val 三部分:  【Option Delta】表示 Option 的增量,当前的 Option 的具体编号等于之前 所有 Option Delta 的总和。  【Option Length】表示 Option Val 终端设备的具体长度。  【Option Val 终端设备】表示 Option 具体内容。 协议报文示意图 CoAP 协议报文中具体数值的意义参考 CoAP 协议:IETF RFC7252。 Object Object Instance Resource 权限 值 数据类型 摄像头 (100) 0 最大像素(0) 像素(1) 最大光圈(2) 最小光圈(3) 光圈(4) 快门(5) R RW R R RW E 12,000,000 12,000,000 2.2 32 5.6 Integer Integer Float Float Float
当前图像(6) R 二进制图像 Opaque (二 进制) R RW 8,000,000 8,000,000 Integer Integer 1 … 最大像素(0) 像素(1) … … … … 光 线 传 感 器 (101) GPS(102) 陀 螺 仪 0 0 0 (103) 1.2 资源模型 LWM2M 协议定义了三层资源模型:Object, Object Instance, Resource, 每一层都用数 字 ID 来标识。其中,Object 是传感器类别,Object Instance 是传感器具体实例,Resource 是传感器的属性和读数等,每个 Resource 具有不同的权限和数据类型,包括可读(R) /可 写(W) /可执行(E)。 一个终端设备上可能存在多个 Object, 每个 Object 可能存在多个 Object Instance。 例如,把手机看作一个终端设备,则手机上有摄像头,光线传感器,GPS,陀螺仪等多种传 感器,每种传感器便是一个 Object。假定摄像头的 Object ID 为 100,手机上有前后两 个摄像头,即两个 Object Instance, ID 分别为 0, 1。每一个摄像头包括了像素,镜头焦 距,光圈,快门值,快门等多种 Resource。 手机上的部分资源如下:(Object ID, Resource ID 为示例) 可以使用类似于路径的方式来表示某个资源,例如 /100 表示 Object 100 (即摄像头), /100/0 表示 Object 100, Object Instance 0 (即摄像头 0),/100/0/0 表示 Object 100, Object Instance 0, Resource 0 (即摄像头 0 的的最大像素)。
IPSO 的 文 档 , 中 定 义 了 一 些 常 用 传 感 器 的 Object ID 和 Resource ID,终端设备应按照 IPSO 文档声明终端上的相关资源。 LWM2M 的资源模型与 OneNET 的数据模型对应如下: LWM2M 终端设备 Object, Instance, Resource Object OneNET 设备 Device 数据流 Resource Value 数据点 备注 平台为每个设备分配唯一 ID 数 据 流 的 名 称 按 照 规 则 ObjectID_ObjectInstanceID_ResourceID 生成, 例如手机摄像头的例子中,资源 /100/0/1 对应的 数据流为 100_0_1 资源在某个时间点上传的值,与时间戳一起,形成 数据点,存储在 OneNET 1.3 订阅(Observe 机制) NB-IOT 终端设备通过 LWM2M 协议的订阅(Observe)/上报(Notify) 机制将数据上传到 OneNET 平台。订阅可以在 Object 层,Object Instance 层,Resource 层,订阅上层 Object 时,其所属的所有 Object Instance 都可以上报数据;订阅 Object Instance 时, 其所属的所有 Resource 都可以上报数据。每层订阅都是独立的,由资源路径唯一标识。 例如,同时订阅了 /100/0 和 /100/0/0,则 /100/0/0 的数据会上报两次;只取消订阅 /100/0 或者 /100/0/0 中的某一个, /100/0/0 的数据还是会上传。 设备上线时,平台会主动下发 Observe 消息订阅设备上的所有 Object Instance (可以在 创建设备时关闭自动订阅),也可以使用 API 订阅感兴趣的资源。 UE 与平台间的通信接口基于 LWM2M 协议,在 LWM2M 协议以下基于 CoAP 协议,
通信消息包括四部分:第一部分是发起 Bootstrap,Bootstrap Write,Bootstrap 完成, 第二部分是注册、注销、更新注册消息;第三部分是观测消息、取消观测、消息上报;第四 部分是设备管理操作,包括 read/write/execute 操作。 2、 SDK 使用说明 根据应用的使用方式,基于已经集成 SDK 的模组, 应用可以采取两种方式:第一种方 式是 APP 集成在模组上,这种场景下应用使用 SDK 提供的 API 接口实现;第二种方式是 APP 工作在自己的 MCU 上,同时使用集成了 SDK 的模组来提供 OneNet 及 NBIOT 接入 的相关功能,这种场景下应用使用 SDK 的 AT 接口。 应用厂家使用集成完 SDK 的芯片和模组分为两种,第一种是使用 SDK 提供的 API 接 口,这种方式所有的操作都是同步的,要求 APP 和模组在同一个芯片核内。第二种方式是 使用 AT 接口,这种方式所有操作都是异步的,应用可以在自己的 MCU 中完成自己的应用 的开发。后面分开介绍不同的接口应用的编写。 2.1 API 接口模式的应用 SDK 的 API 接口包括对基础通信套件进行初始化、反初始化以及其他操作、相应的配 置文件、回调函数以及结构体,SDK 提供的 API 接口如下: 2.1.1 API 接口模式的应用 cis_ret_t cis_init (void ** context, void * config, uint32_t size); 功能:根据输入的 config 文件进行 SDK 初始化 参数及返回值:
分享到:
收藏