【云驻共创】与LiteOS的初次相遇
1. IoT介绍
1.1 什么是IoT?
物联网技术,即Internet of things简称为IoT,万物互联的网络技术,是通过信息传感设备,按照一些约定好的协议,将一些设备或者装置等与网络相连接,从而使设备和设备之间可以通过信息传播媒介进行信息交换和通信,以实现智能化的识别、定位、跟踪、监管等功能。
1.2 IoT涉及的领域
如今IoT技术已经涉及到我们生活中的方方面面,也正是这种“真正的科技让人感受不到科技的存在”的润物细无声般的方式,在无声无息间改变了我们很多生活中的点点滴滴。
举几个栗子,比如智能车载、智能家居、智能穿戴(智能手环、智能手表等)、智慧楼宇、智慧园区、智能家居、共享单车(从最开始的机械锁时代(出行便利)到手机扫描时代(使用便利)再到现在的电子围栏规范引导停放等可控可监管的时代)、消防方面(烟感控制,可以联动公用设施实现监管、防控功能、报警功能等措施)、门禁方面(被暴力破除后可以联动自动报警等功能),总的来说不知不觉中,他来了,他来了,物联网时代已经走入进来了。
1.3 IoT的痛点
在转向物联网开发的过程中会遇到IoT的许多痛点,比如协议栈、硬件资源管理等。
2. LiteOS简介
2.1 LiteOS是什么?
Huawei LiteOS是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。也正因为上面说的物联网技术中的存在各种各样的痛点,此时LiteOS就这么应运而生闪亮登场了,为解决各种IoT技术中的痛点而诞生。
2.2 IoT中的战略角色
IoT由平台(虚拟设备,解决设备联动的功能,有利于北向开发(APP开发)(将代码烧进设备中),可以独立开发)、管道(通信网络)、落地产品构成。
2.3 LiteOS资源管理
LiteOS物联网技术的诞生是为了解决互联互通、资源管理,使产品更快的发布出来,简短开发周期,加快开发效率(物联网嵌入式开发者的福音~)。
2.3.1 时间管理
时间管理包括运行时间tick、系统时间 sys、时间定时timer等。
2.3.2 存储管理
存储管理包括TLSF、BestFit(二叉搜索树,防止退化,总是能在一个高度,使时间点降低,减少了CPU的算力)、VFS等。(比如管理PC中的内存,增加复用性,动态分配)。
2.3.3 硬件管理
硬件管理包括中断管理、异常管理、驱动管理等。
2.3.4 同步通信
同步通信包括Queue、Mutex、Event等。(支持多任务,管理任务调度,解决资源竞争行为)。
LiteOS中的信号量,其中一个经典的栗子是消费者和生产者流程PV操作,即生产者等待信号量,消费者释放信号量,任务直接进行同步协调,不用作轮训,提高效率。
2.4 LiteOS连网问题
那么协议是如何被集成到LiteOS的呢?协议那么多,每个通信实体又不一样,很痛苦啊。。。
这是一种硬件碎片化的问题,是使用定义标准的API接口来解决的(有趣灵魂万里挑一,漂亮的皮囊千篇一律,那么大家喜欢哪种呢,当然工程师当然喜欢大家都一样不用搜文档看文档核对操作了~)。 用模组去还原联网的本质(标准化带来的),屏蔽了通信实体带来的差异性以及适配问题等这种层级抽象的方法,不再用关心通信实体用了什么,或者通信实体使用了什么协议,也不需要知道这些了(很棒~),只需要直接使用这种标准化插件去对接就行了,十分的灵活方便,以此解决连网、互联互通的问题。
2.5 案例演示
一键上云案例,将SDK集成到模组中去,通过AT指令调用API接口,只需要通过串口发送就能完成调用API的操作。
通过LiteOS的互联互通,在平台上进行产品的创建,设置功能,设置设备,达到上报数据,接收数据这种无缝衔接的操作,分分钟搞定,简单快捷。
2.5.1 创建产品
通过设备中的创建产品创建我们所需要的产品。
2.5.2 设置功能(上报功能和下发功能)
在属性/命令列表中添加所需要的功能动作,本案例以上报操作和接收操作为例。
2.5.3 基于产品模型创建的设备
在设备中的所有设备列表中添加我们所需要连接的设备。
2.5.4 打开窗口软件
2.5.5 查看是否连网,查看模组是否有上网能力
查看是否连网,也就是先看看模组中是否有上网的能力,要没有连网,后面操作就成了一顿操作猛如虎一看战绩0-5了,所以首先检查连网是所有操作的前提条件。
2.5.6 会使用到的指令
2.5.7 查看设备是否处于离线状态
在发送连接指令的时候,先查看设备是否处于离线状态。
2.5.8 发送连接指令
2.5.9 设备被连接
2.5.10 上报数据
2.5.11 发看是否发布上报
2.5.12 下发命令666
2.5.13 接收了指令666
2.6 远程终端的迭代
支持差分升级(必须基于某个版本),优点是可以加快传输速度(比较小传输快),并且可以节约存储降低功耗,适用于对改动比较小,比如修复缺陷或者小功能推送等小版本的省级。(制作升级包,将包传送到云平台,下载后将包推送到设备端,最后设备端进行升级)。
全量升级会进行,全量包进行压缩,压缩到占全量包的60%。
2.6.1 差分升级的案例
2.6.1.1 制作升级包
创建差分升级包并且利用华为离线签名工具进行签名(防止篡改)操作。
2.6.1.2 放到云平台上
2.6.1.3 将更新代码烧入
2.6.1.4 创建升级任务并自动执行升级
2.6.1.5 完成升级
2.7 LiteOS的开源开放
LiteOS是通过开源开放参与到IoT生态系统建设中的,让各种开发运维等等不同专业的小伙伴可以通过平台来不断构筑完善我们的IoT生态系统,让我们不断的接近万物互联的这个美好愿景,并且只要符合平台的标准和代码规范就可以贡献到其中(为大佬们的共享在此打一波666~)。
本文整理自华为云社区内容共创活动《硬核对话 攻城狮vs攻城狮PLUS 》,《【内容共创系列】1024,懂你所需,予你温暖,致敬新时代可爱的程序员们》https://bbs.huaweicloud.com/blogs/302011
- 点赞
- 收藏
- 关注作者
评论(0)