开发者学堂课程【平头哥物联网入门WI-FI方案开发实践:端云一体WIFI&BLE Combo SDK架构】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/766/detail/13479
端云一体WIFI&BLE Combo SDK架构
内容介绍:
一、W800 芯片简介
二、YOC 简介
三、SDK 功能介绍
四、参考资料
一、W800 芯片简介
1、芯片介绍
W800是平头哥的合作伙伴,是北京联盛德微电子推出的一款WiFi和蓝牙一体的双模芯片。使用 XT804 的CPU,最高主频可以到240兆赫兹,内置 2mb 的 flash 及 288kb 的 RAM。
集成PMU电子管理单元及硬件管理单元。同时,W800 有丰富的外设资源,例如 UART ,SPI/ADC16 等等。
2、芯片特点
高性能、高集成度、高安全性、小体积、WIFI/BLE 双模、支持WiFi11 b/g/n 以及BLE4.2。
3、应用领域
只能家居、只能照明、只能家电等等数据接入领域。
二、YOC简介
1.YOC是什么
YOC是 Yun-on-Chip 的简称,以极简开发为理念,以 CPU 架构,芯片平台,操作系统、语音服务、开发套件为基础,助力开发者从芯片到云的高效设计,是面向LT领域的全栈技术平台。
软件开发者可以YC提供的操作系统、云端服务和开发套件为基础,快速开发从芯片到云端的方案设计,如AloT 应用领域的智能网管、智能家居设备等。而这些方案设计,同时也会沉淀到 occ 平台进行推广。注意各类下游厂商快速推出终端设备。
2、YOC端云一体的软件。
最底层的是硬件规范层,我们简称 CSI ,基于 CSI ,可以屏蔽各个芯片的硬件差异,在这之上是核心服务层,提供诸如 OS 内核网络管理、蓝牙协议栈等核心服务。核心服务向上通过 ASAPF 。或者是 politics API 与应用组件层进行交互,应用组件层等网络相关的应用,以及 PLS等安全服务。基于核心服务及应用组件层, YOC 提供应用框架层方便。
给用户开发诸如电工、照明等应用程序,在最上方的是 YOC提供的云端服务。W800是一颗 WiFi BLE 双模的接入芯片,介绍完 YOC的整体框架,我们将分别介绍 YOC 对 WiFi 和 BLE 的服务内容。
3、 WiFi 网络服务及 BLE 协议站。
OC 中提供完整的 WiFi 网络服务,位于底层的是驱动层,包含 OSI WiFi 驱动以及统一的 WiFi ,向上对接则是 LWIP 以及 net manage ,在此基础上构建注入 MJPHTTP 的网络应用。从这个图上我们可以看到,基于驱动层、对接层、协议层以及应用层就构成了完整的 WiFi 网络服务。
然后我们来看蓝牙协议站及应用,位于底层的是 OS 及 h ci 驱动之上是协议站的内容,包含 BLE host 协议站以及BLE Mac协议站,基于 BLE host 协议站可以构建对应的 BLE service ,如 hid his 等服务。在此基础上开发基于BL的传输应用,而对于 Mac 协议栈则构建相应的 mat service ,并且开发如 max 节点 Mac 网关的 Mac 产品。
4、release 的SDK的目录结构
首先我们来看 boards , boards 是板级配置信息对应的文件夹,芯片底层的配置信息都在这里进行配置, Chips 文件夹则集合了所有的 CSC 相关的驱动。 Packages 内则包含应用开发所需要的基础及应用组。
如右上图这个锁是包含 OS 内核网络服务等等的一些组件。 App 文件夹则包含应用示例。本 SDK 中也是通过连接生活互联网平台,对智能灯具进行控制一些 OTA 等操作。其他诸如 package 点秧苗 Maxwell 等等的则是对 SDK 的编译进行控制的一些脚本信息文件。这里不在做过多的阐述。
三、SDK 功能介绍
1、生活物联网平台
生活物联网平台,也就是这个图中所示的 smart living 是阿里巴巴一款针对消费领域的物联网平台。主要针对家电智能化的设备连接、移动端控制、设备管理、数据统计的问题。打包阿里云拨款产品提供了一整套的配置化方案,可以大幅减低设备到云端到 APP 的开发成本。
我们来看这张图,首先来看云端生活物联网平台云提供物联网的云端服务,同时对于某些需要第三方云平台服务的场景,可以通过云对接的方式与第三方云平台进行拉通。尔云智能 APP 则是云端,对LTE设备进行管理和操作的载体。最下方的则是运行在设备端的 smart living 组件,该组件提供配网、模型及 OA3种服务。
2什么是配网呢?
LG 设备由于没有像手机、电脑等一样的输入终端,所以需要以其他的方式获取到在联网 APP 的 SFID 和 K。这种获取APP 的 SIDGK 的方式就是配网 w800的 SDK 基于生活物联网平台,支持三种配网方式,分别是 BLE 辅助配网,一键配网以及设备热点配网。
3、配网方式
(1)BLE 辅助配网
首先我们来看 BLE 辅助配合。 BLE 辅助配网的过程是设备端,首先进行 BLE 广播广播,起BLE辅助配网的服务,而这个服务是基于 is ,也就是阿里巴巴的 lt service 。
这样子一个蓝牙的服务,手机端蓝牙听到广播后通过 APP进行连接以及健全。然后通过 APP 的交互,将联网 APP 的ID 以及内容给到 THY 配网的设备,带配网设备则通过WiFi 连接到对应的 APP,完成配网。
一键配网
设备进入司法模式。监听环境中所有的802.11报文,因为设备不知道用户手机和路由器的信道,所以设备需要在所支持的信道轮巡接听,让在每个某个信道捕获到配网规则的数据报文后则停止监听,然后在当前信道完成数据的接收,之后则回到 station模式并连接相应的 APP 。
这里要特别强调一下刚才提到的一键配网的数据报文,其承载方式有两种,一种是广播方式,一种是组播方式。无论哪种数据承载方式,其目的都是将有效数据以某种编码格式调制到对应报文中,然后在配网设备捕获到数据后,以特定的规则进行解析,获取对应的 SID 以及 K 信息。
(3)设备热点配网。
设备热点配网方式比较简单,首先带配网设备开启一个特定 S C 的 soft 及设备热点。APP 连接该设备热点后,将 SSSID 以及K。信息传递给带配网设备,配网设备收到对应信息后断开socket ,转入 station 模式后连接对应的APP完成配网。
4、配网方式进行对比
首先来看 BLE 辅助配网, BLE 辅助配网通过 BLE 进行通信。请用户操作步骤少,同时不存在 APP 兼容性的问题,但由于通过手机蓝牙进行接 APP 连接,所以会稍稍具有手机兼容性问题。从实际的测试验证结果来看, BLE 辅助配网的成功率也是比较高的,因此,我们 SDK 中将 BLE 辅助配网作为默认的配网方式。
一键配网,刚才有提到一键配网的信息交互是通过 APP 的广播或者主播方式来完成的。
因此,虽然用户操作的步骤不多,但对于 APP 的兼容性有较高的要求,因为有些 APP 在某些情况下会被广播或组播信息的转发进行限制。从实际的测试验证来看,一键配网的成功率相对比较高,但是不如 BLE 辅助配网以及设备热点配网方式。所以说,这种配网方式慢慢的现在用的人,用的客户都比较少。
最后来看设备热点配网方式,设备热点配网方式以 station 方式连接通信,因此没有手机和 APP 兼容性的问题,同时该方式的配网成功率也比较高,适合作为 BLE 辅助推广的备选方式。但它的缺点就是用户操作的步骤相对比较多,因为它首先要起一个 stopped at 之后手机端要首先去连设备端的 APP ,然后设备端才会转入到那个模式去,连接带配网的 APP。
5、物模型
什么是物模型呢?物模型其实是将物理空间中的实体数字化,并在云端构建实体的数据模型,用于描述实体的功能。
它以 json 格式来具体的呈现,描述了该实体是什么,能做什么,可以对外提供哪些信息。以我们的 SDK 中的智能灯具为例,这里是智能灯具物模型属性的一个节选。
这里智能灯具有开关属性,但同时呢,具有亮度、色温、场景等等的属性,然后这些属性呢,都会在物模型中被定义,然后被定义了。之后在云端就构建了该实体的数据模型。物模型可以屏蔽底层设备的差异,使用平台提供的标准 API 开发利于扩展性和统一性。
6、OTA
W800 SDK 的 OTA 具有以下几个特点,首先是批量推送生活物联网平台云支持对设备进行批量的推送,然后 SDK 对于OK 的镜像会进行压缩,压缩比在25%以上,然后 OK 还会进行完整性,校验以及建立安全的下载频道。
同时, SDK 的 OTA 还具有断点续传以及锻炼保护的功能。我们来看一下 OTA 的具体过程, Smart living 的 OTA 模块,通过基于 TLS 的 HTTPS 建立安全的下载通道,将云端压缩过的 OTA1 位置下载到新线 flash 的分区。
下载完成并完成完整性的校验后,系统重启,然后经由 boot loader 加密的分区的 image 解压,并翻译到应用程序运行的主分区,也就是 from 分区。然后运行新版本的程序,并向云端报告新版本的版本号。然后云端以及 APP 确认 OTA 完成,这样整个 OTA 过程就结束了。
7、安全特性
W800SDK 的安全特性,随着 LG 领域的不断发展,安全特性在 led领域的重要性也日益凸显。
W800 基于玄铁804支持PE。首先我们来看一下什么是 PCE ,它是可信执行环境的简称,它的环境可以保证不被常规的操作干扰,所以是被称为是可信的。在我们 W800 SDK 的安全特性中,应用程序对于敏感数据安全接口,例如 AE S 加解密这样的接口,以及安全事件,例如excuse保存关键数据的这样的一些细节等,这样子的操作都需要调用 ti client API,调用这些 API 则会陷入到T安全环境对应的 CE 。
警车的 API ,安全敏感的操作 It 环境中执行完成后,将执行的结果传递给应用程序,这样就保证了敏感的数据不会被外泄。另外,SDK 安全部分也支持镜像签名,只有经过签名校验的秘诀才会可以运行,防止 LTE 设备被黑客劫持。
8、AT 模块
对于一些并不具备联网或者连云能力的小的 MCU。此产品如果需要联网或者连云,就可以将 W800作为一个无线透传的模组,借助于 W800 AT 模块,实现连接到云端的能力。图中以一个灯控的小 MCUB。
W800 作为透传模组,运行完整的网络协议栈以及AT听指令。W800作为透传模组,运行完整的网络协议栈及AT模块之力。 MCU 通过 AT 指令,将需要注册及上报的信息透传给云端儿,云端则以 APP 为载体对设备进行控制,控制信息以 MQTT message 的方式传递到W800 模组。
W800 再通过AT指令将数据传给 MCU 完成对设备的控制,这个就是AT模块相关的应用。
9、驱动支持
前面对于 release SDK 的目录结构中,有提到 chips 文件夹中集成了所有的 XCSC 相关的驱动,而我们 SDK 中也支持如下一些驱动,例如 UART 、 SPI 、 GPIO 等等的驱动。
10、Rhino微内核
Rhino 内核提供丰富的 OS 层面的服务,例如信号量、互斥锁、内存管理、队列等等的功能同时呢,还具备以下的一些特点,首先它具有体积小的特点,经过裁剪呢,它的内存占用小。
其次,他有实质性的优点,经过验证呢,它的中断、响应延时以及任务的切换、延时都可以控制。
可以控制在微妙级别,同时 Rhino 内核提供 idle 模式以节约电能。延长设备的使用时间,最后 Rhino 内核支持 stack 溢出,内存泄漏,内存损坏的检测的,因此它也具有调试方便的特性。
四、参考资料
W800芯片产品规格书v1.0.0pdf
W800快速上手手册.pdf
YOC 编程说明 (https://yoc.docs.t-head.cn/yocbook/)
生活物联网平台快速入门 (help.aliyun.com 中搜索生活物联网平台)