AliOS Things 是 AliOS 家族旗下的、面向 IoT 领域的、轻量级物联网嵌入式操作系统。 AliOS Things 致力于搭建云端一体化 IoT 基础设施,具备极致性能、极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云 Link,可广泛应用在智能家居、智慧城市、新出行等领域。
AliOS-Things 不仅是一个传统的 RTOS,而是一个具有丰富组件的,云端一体的运行在嵌入式 MCU 上的嵌入式操作系统。它具有丰富的连接组件和能力,主要包括:
自组织网络 (uMesh),套接字适配层(SAL) 和 TCP/IP 网络协议栈 (LwIP) 主要是功能和使用场景的介绍。连接协议部分除了功能性介绍,还会根据场景给出 AliOS-Things 网络组件的建议使用方法。
自组织网络AliOS-Things 核心组件之一 uMesh 提供了 AliOS-Things 原生自组织网络能力,提供了 AliOS-Things 本地互联互通的能力。uMesh 具有自组织、自修复、多跳的特性。适用于需要大规模部署的场景。主要功能特性包括:
uMesh 自组织网络协议位于 MAC 层之上,及 IP 层之下。整个协议包括三个部分,协议核心部分,连接协议抽象层,及 IP 协议适配层。如下图所示。
uMesh 适用于需要大规模部署的场景,如室内定位,智能照明,及商业场景。目前,主要支持 WiFi,正在开发对低功耗和 BLE mesh 的支持。
套接字适配层AliOS-Things 为了能够适配不同的连接协议,和不同连接芯片的能力,提供了 SAL 开发组件,来加速 MCU + 通信连接芯片的应用场景开发和部署。在此类应用场景中,主控 MCU 芯片通过 UART 或 SPI 总线与 WiFi、NB-IoT 等通信芯片相连,AliOS Things 操作系统和用户 APP 运行在主控 MCU 中,需要网络数据访问时,通过外接的通信芯片进行网络负载的接收和发射。主控 MCU 和外接通信芯片之间的通信,可以是 AT Command 通道,也可以是厂商私有协议通道。主要设计方案如下图。
IP 网络协议栈AliOS-Things IP 网络协议栈是基于 LwIP 2.0.0,深度定制和优化的 TCP/IP 协议栈,主要功能特性包括:
除了上述提供的功能特性,还对 TCP/IP 协议栈在多并发连接,大数据量条件下进行了深度优化。
连接协议AliOS-Things 支持丰富的连接芯片和协议,目前主要支持 WiFi,BLE 和 LoRaWAN,并且在不断添加新的支持。
WiFiWiFi 协议栈通常由芯片厂商提供,AliOS-Things 提供了极简的 WiFi HAL 层,开发者完成 HAL 对接后,即可使用 AliOS-Things 提供的丰富的应用层功能组件。同时,AliOS-Things 也支持外接 WiFi 通信芯片,由 SAL(Socket Adapter Layer) 完成对接和抽象。完成 SAL 对接后,开发者同样可以使用丰富的应用层功能组件。
WiFi 芯片是目前支持最广泛的连接芯片之一。主要可以分为四种不同类型:
根据这四种不同的形式,AliOS-Things 提供了不同的功能组件组合,如下表。LwIP 和 SAL 是根据 WiFi 芯片类型的必选项。WiFi 配网和 WiFi uMesh 的支持是根据实际的需要。
LoRaWANLoRaWAN 组件支持端侧 Class A 和 Class C 两种模式,开发者可以利用 LoRa 接口实现端侧与服务端数据的收发。开发者可以使用 AliOS-Things 的 LoRaWAN sample 完成与 LoRa 网关和服务器之间的基本连接和通信。
LoRa 通常是 MCU 外接 Semtech LoRa 芯片。目前 AliOS-Things 已经集成支持 sx1276,芯片开发者可以直接使用 AliOS-Things 提供的 LoRaWAN 协议栈进行开发。如果外接其它 Semtech LoRa 芯片,可以根据 AliOS-Things 集成的 LoRa radio 层接口完成接口的对接。
AliOS-Things LoRaWAN 协议栈不仅提供端上 LoRaWAN 协议,同时也提供整套测试环境,开发者使用 AliOS-Things LoRaWAN 协议栈完成开发后,可以利用 AliOS-Things 提供的测试环境进行前期测试和验证。应用示例测试环境搭建和使用请猛戳这里。
目前,LoRaWAN 开发者可以使用 LoRa 协议层接口进行开发。我们正在根据 LoRa 应用及场景特点,开发应用层接口,让应用开发者使用了 AliOS-Things LoRa 接口后,做到极简开发,不需要过多的理解 LoRaWAN 协议细节。
Bluetooth目前,BLE 组件已经在 mk3239 上支持 Bluetooth 4.2,应用编程框架和应用框架接口。应用编程框架对 BLE 协议细节进行抽象,对应用开发者提供应用框架接口。应用开发者不再需要关心 BLE 协议栈细节,专注于业务逻辑开发,做到极简开发。对于网络开发者,BLE 组件提供完整的协议层接口,供网络开发者使用完整的 BLE 协议能力。
应用框架主要提供能力包括:
开发者可以根据应用开发框架提供的接口,将外设采集到的数据由 GATT 服务端发送到 GATT 客户端。提供应用开发框架最主要的原因是蓝牙应用开发者很有可能不希望花费精力在蓝牙技术的细节上,而是希望通过极简的接口快速搭建起自己的应用。目前,AliOS-Things 提供外设端的应用开发接口,主要解决传感器数据的读取和更新,开发者可以利用这套接口在 mk3239 上快速搭建基于蓝牙的应用。
我们正在加速丰富应用开发框架,开发 Bluetooth 5.0,并扩展蓝牙芯片支持的规模,同时 uMesh 也正在加入 BLE mesh 支持,它将完全兼容 SIG BLE mesh。
GPRS 和 NB-IoT目前,NB-IoT 和 GPRS 作为通信芯片外接在运行 AliOS-Things 主芯片上,通过 SAL 对接到通信芯片的 AT 命令集已经可以支持。
对于 NB-IoT 和 GPRS 作为 AliOS-Things 支持协议族一部分,直接运行在一块 SoC 的相关工作正在进行中。
总结AliOS-Things 提供了丰富的连接组件和能力。包括近场、远场通信芯片和协议的支持,网络协议栈,自组织网络及应用层物联网协议,并在快速持续演进中。大家对技术细节感兴趣,或者希望体验极致极简物联网连接芯片开发,请猛戳 https://github.com/alibaba/AliOS-Things 。
来源: https://yq.aliyun.com/articles/327862