开发者学堂课程【阿里云 AIoT 物联网开发实战:AliOS Things 技术分享】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/754/detail/13233
AliOS Things 技术分享
十、完整的云平台连接适配
Iot 平台包括设备管理、OTA、IoT 安全、文件传输和网关管理。
ALiOS things 与阿里 IoT 云平台是紧密连接的,其实是云端一体的大系统,Iot 平台上面有许多应用也是 AliOS 天生支持的,比如说设备管理的能力,可以在本地管理,也可以到云端进行管理。会支持很多 ota 方式,和云端的 Ota 管理是结合在一起的。Iot的安全能力,包括安全存储,核心设备加密这些能力和平台有很大的关联。以及文件传输和网关管理的能力,除此之外,还在丰富云端的能力和 OS 结合起来。
十一、文件系统支持
●标准 POSIX 文件/目录操作接口支持,方便应用移植
●丰富的存储介质支持( NOR/NAND/SD卡/eMMC) , 适用众多场景
●完善的掉电保护、坏块管理、磨损平衡、垃圾回收机制
●丰富的工具支持(镜像制作、镜像 dump 分析运行调试、性能测试)
●性能调优,实现 NAND 上读写 KB 至 MB 级别文件速率3 - 4MB/s
●使用通用 HAL 编写驱动,可移植性强
以上是文件系统架构图,使用的是 POSIX 接口,使用 littlefs 做了很多改造。
十二、POSIX 标准支持
1.兼容性
●兼容 Unix/Linux 软件生态
●兼容其他支持 POSIX 标准的嵌入式系统的软件生态(使用很少代码就可以移植到 AliOS Things 上面)
●为 AliOS Things 组件提供与 Unix/Linux 兼容的接口,方便其支持多平台
2.标准化
●由 EE 和 ISO 国际标准化组织定义
●每个 API 的输入输出、行为、数据结构,头文件名称等都被标准详细定义
3.易用性
●已在 Unix/Linux 系统广 泛使用被充分验证,且被广大开发者所熟悉
●每个 API 都有标准化的文档详细说明,方便使用
智能音箱由 linux 迁移到 AliOS Things(相对是比较容易迁移的,迁移前后功能都是一样的)
●flash 和 ram 需求降低50%。
●启动时间缩短50%。
智能摄像头 linux 迁移到 AliOS Things
●启动拍照时间由6秒降低到600毫秒
●进一步降低功耗。电池待机提升30%。
十三、端云一体 OTA 升级支持
1.高安全保障
➢安全固件数字签名;
防固件被篡改,抵赖
➢安全加密通道,断电保护,断点续传;
固件防截获,断网不丢失。
➢独创乒乓升级自动回滚;
快速恢复上一个固件
➢压测体系保障可靠性
成功率99.7%以上
2.自研差分升级
➢压缩率小于30% ;
优于水平10~20%
➢显著节省下载流量;
蓝牙等低带宽场景福音
3.场景支持丰富
➢支持 WiFi/2G/4G等单芯片直接升级;
升级模组和 SOC 自己
➢支持复杂组合芯片升级场景
模组对 MCU 升级
网关对子设备升级
手机对蓝牙设备升级
➢支持 RTOS/Linux 操作系统
主流芯片20款以上
模组开发板40款以上
十四、AI框架
智能语音应用
运行本地唤醒算法,比如说天猫精灵唤醒
打通云端识别服务
智能仪表识别
基于 Cortex M4 wifi SOC 实现本地仪表识别
识别速度300mS/字,准确率>98%
RAM = 90K,ROM = 14K
十五、AliOS Things 组件
1.基础组件
●文件系统 FS
●系统信息 SYS
●键值对存储 KV
●电源管理 LPM
●硬件 I/O
UART/GPIO/I2C/SPI
●模数/数模转换 ADC/DAC
●脉宽调制 PWM
●定时器 TIMER
●实时时钟 RTC
●看门狗 WDG
●网络协议
UDP/TCP/HTTP/MQTT/蓝牙/LORA
2.高级组件
●物联网平台连接组件 IoT,连接阿里云平台的 SDK
●支付组件 uPay(连接支付宝)
●智能语音组件 uVoice
●传感器服务组件 uData
●定位服务组件 uLocation
●外设驱动库
●编码/步进/伺服电机/继电器
●麦克风/语音录放模块/扬声器
●PS2摇杆/电容触摸/按键
●TFT彩屏/数码管/三色灯
●加速度/陀螺仪/气压计/磁力计
●温湿度/颜色/光照强度等
3.使用共享组件
利用 AliOS Things 提供的组件管理工具,用户可以下载或在线拉取生态贡献者提供的应用组件,并安装到本地开发环境中,快速补全能力,加速设备开发。
4.构建自己的组件
利用 AliOS Things 提供的组件构建工具,用户可以快速构建自己的算法组件或外设驱动组件,并实现高效复用,甚至可以放到开发平台上面进行商业化输出。
十六、远程运维工具
点击调试运维,选择一个设备,通过 command 和用户进行远程交互,比如输入 task list,就可以把目前运行的所有 task 打开,也可以查看一些远程日志,可以修改日志的等级,可以查看原始日志内容,可以把日志保存到本地,还可以拉取 list,这种远程运维方便用户,通过远程控制台来做一些开发,没必要每次都使用开发板进行开发。
十七、开发维测工具
嵌入式开发与开发 JAVA 或者开发网页很大的区别就是调试起来特别困难,特别是偶发性的问题非常棘手,所以做的很多开发维测工具。
1.统一接口
OS 接管 cpu 异常向量
各种死机问题统一处理
用户可定义的入口扩展
2.系统快照
丰富的现场信息打印
强大的栈回溯功能
系统体检报告
3.PC 端解析工具
自动化解析日志,可以把二进制的现场解析出来,可以更好的让用户观看
精确到行号的分析报告输出
4.CLI 自查机制
死机后现场交互机制
可以查看指定内存的值,非常方便检测问题
OS 提供自检命令
以下是 hello world 演示程序
打一个 panic 让它处于 panish 状态,打完命令以后可以看到一些接听器信息,当前处于哪一个 task 上面。解析以后会把具体的函数名带出来,比如 backrace 在哪个函数里面,上一层函数调用的是哪一个,再上一层函数是哪一个,非常方便去解决问题。
十八、ALiOS Things 适配的芯片
目前市面上主流的物联网芯片都是是配过的,大概有40多个芯片厂商,80-100款芯片都有做适配,用户在是配好后就可以直接使用了,非常方便用户来开发。