AIOT OS设计思考

目录

1 可调试

1.1 完善的log系统

1.1.1 log系统基本要求:

1.1.2 log系统中级要求:

1.1.3 log系统高级要求:

1.2 完善的系统调试工具

2 可裁剪

2.1 可配置的模块

3 可连接

3.1 较为丰富的设备连接协议

3.1.1 抽象的网络接口层,比如ble,NB,ZigBee,WIFI,Ethnet‘

3.2 通用的物联网协议支持:

3.2.1 面向TCP协议的MQTT(WIFI,Ethenet)

3.2.2 面向UDP协议的COAP(底层通信协议NB)

3.2.2 面向TCP协议的HTTP/HTTPS(WIFI,Ethenet)

4 可AI

5 可运营

5.1 升级模式支持

5.2 功能运营和模块运营

5.3 文档运营

5.4 社区运营

6 可生产

6.1 产线模式支持

7 可恢复及安全

7.1 异常处理

7.2 认证和安全机制


一个好的AIOT 操作系统设计一定是符合使用场景的设计,比如说使用场景,硬件场景等。那么其实就比较难去判别,我这边只是提出一些观点,供大家参考。可能是其中的一个模块,或是多个模块一起组合,才能合力形成一个系统。

本文中以FreeRTOS为基础作为扩展。

我觉的可以从以下几个维度来思考,供大家一起讨论。

1 可调试

1.1 完善的log系统

一个软件系统,不管是应用软件,或是操作系统,必须具备完善的log系统。完善的log系统对应应用开发,调试及产品运营具有重要意义。

1.1.1 log系统基本要求:

1)可分模块输出log;

2)可配置的log输出等级,通常的等级定义为:debug,info,warning,error,critical

3)支持多进程log输出

4)可定义的log格式化输出

5)可定制的log size rotation或是time rotation

1.1.2 log系统中级要求:

1)异常log过滤

2)基于log信息可以定位到问题,或是能够追踪到现场

3)系统调试过程中的综合log输出,包括但不限于cpu使用率,温度,内存使用率,内存带宽占用等。

1.1.3 log系统高级要求:

1)有匹配的云端后台

2)匹配的分析工具

3)上报云端后台的策略

4)error及Critical log时候的通知及响应策略

1.2 完善的系统调试工具

1)如cpu使用率,内存使用率,process运行情况,带宽占用情况等。

2)系统内模块调试工具,类似Android的procrank,dumpsys之类

3)内存泄露分析方法

4)可能的cli命令工具

5)系统信息获取,包括但不限制于:MAC地址,设备唯一标识,IP地址,BLE MAC地址等。

2 可裁剪

2.1 可配置的模块

因AIOT面对的需求千差万别,采用的硬件系统也有很大的差异,所以对应模块的需求也有很大的不同。FreeRTOS应该说是最简洁的一个系统,只是提供了task调度,定时器,内存管理(可配置)等有限的功能,使其很快得到了很大的推广。

在AIOT中常见的模块有:

1)IIC读写模块

2)SPI读写模块

3 可连接

3.1 较为丰富的设备连接协议

3.1.1 抽象的网络接口层,比如ble,NB,ZigBee,WIFI,Ethnet‘

3.2 通用的物联网协议支持:

3.2.1 面向TCP协议的MQTT(WIFI,Ethenet)

MQTT(Message Queuing Telemetry Transport)是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。

客户端

1.发布应用消息给其它相关的客户端。

2.订阅以请求接受相关的应用消息

3.取消订阅以移除接受应用消息的请求。

4.从服务端断开连接。

服务端

1.接受来自客户端的网络连接

2.接受客户端发布的应用消息

3.处理客户端的订阅和取消订阅请求。

4.转发应用消息给符合条件的客户端订阅。

MQTT vs HTTPS:

吞吐量:93倍

发送数据电量消耗: 1/11

接收数据电量消耗:1/170

连接保持电量消耗:1/2

网络开销:1/8

支持的平台:

---百度IoT hub套件:https://blog.csdn.net/putiancaijunyu/article/details/78906492

---阿里云物联网套件:https://blog.csdn.net/putiancaijunyu/article/details/78920810

3.2.2 面向UDP协议的COAP(底层通信协议NB)

3.2.2 面向TCP协议的HTTP/HTTPS(WIFI,Ethenet)

---百度IoT hub套件:https://blog.csdn.net/putiancaijunyu/article/details/78906492

---阿里云物联网套件:https://blog.csdn.net/putiancaijunyu/article/details/78920810

4 可AI

1)Arm NN,是基于CMSIS的。

http://arm-software.github.io/CMSIS_5/NN/html/index.html

2)NCNN,腾讯推出的基于cpu优化的深度学习神经网络框架(linux,Android)

3)数据收集功能

比如,我们之前做的智能手环,特别开发一个功能用于收集运动过程中的传感器数据(存储空间有限,采用BLE实时传输,Android app接收并存储到手机上)

5 可运营

5.1 升级模式支持

必须考虑后面的系统升级及迭代。可以参考Android的recovery模式。

5.2 功能运营和模块运营

比如开机率,使用频率,操作习惯等

5.3 文档运营

1)系统移植文档;

2)硬件依赖文档;

3)系统api使用文档;

4)系统工具使用文档;

5)系统定位及目标用户说明;

5.4 社区运营

6 可生产

6.1 产线模式支持

必要的产线模式支持。

需要明确产线上的职责,就是测试硬件,因此怎么设计一套软件系统来测试硬件是非常重要的事情。一般整个产线软件的开发同产品的开发是同时进行的。

产线模式需要关注如下几点:

1)结合产线工位的安排,排序测试项目

2)尽量降低产线的时间,提高生产效率,降低成本;

3)高低温压力测试(全负荷运行即设计软件使CPU使用率100%,关闭watchdog等)

7 可恢复及安全

7.1 异常处理

1)watchdog机制(软件watchdog和硬件watchdog)

2)内存回收机制

3)故障预测,升级应对及告警等

4)系统状态上报

7.2 认证和安全机制

1)芯片基本的安全;

2)数据加密安全;

3)设备级别的认证。

4)SSL传输安全

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值