考取HCIA证书看我就够了》第五篇:[HCIA-IoT]物联网技术之感知层技术概览

网友投稿 756 2022-05-29

系列文章目录

《考取HCIA证书,看我就够了》

1.华为职业认证体系及HCIA介绍

2.[HCIA-IoT]物联网起源与发展

3.[HCIA-IoT]物联网技术之网络层技术概览

4.[HCIA-IoT]物联网技术之平台层技术概览

5.[HCIA-IoT]物联网技术之感知层技术概览

6.[HCIA-IoT]华为物联网解决方案

如果你是第一次观看本系列文章,建议先阅读下之前的文章

本文目录

系列文章目录

前言

一、感知层硬件技术

1.1单片机技术

1.1.1微型计算机技术概述

1.1.2指令集

1.1.3处理单元分类

1.1.4单片机架构

1.2传感器技术

1.2.1 ADC/DAC

1.2.2传感技术

1.2.3传感器分类

二、感知层软件技术

2.1操作系统概述

2.1.1操作系统是什么

2.1.2操作系统发展史

2.2为什么需要物联网操作系统

2.2.1物联网终端开发面临的挑战

2.2.2终端智能化

2.3物联网操作系统Huawei LiteOS概述

2.4 Huawei LiteOS的内核

2.4.1 Huawei LiteOS任务管理

2.4.2 Huawei LiteOS内存管理

2.4.3 Huawei LiteOS中断管理

2.4.4 Huawei LiteOS任务间通信

2.4.5 Huawei LiteOS时间管理

2.4.6 Huawei LiteOS定时器

2.5 Huawei LiteOS的中间件

2.5.1 Huawei LiteOS SDK

2.5.2 Huawei LiteOS端云互通组件

2.5.3 Huawei LiteOS互联框架

2.5.4 Huawei LiteOS互联框架

2.5.5 Huawei LiteOS安全框架

2.6 Huawei LiteOS API

三、通信模组开发介绍

3.1什么是AT指令

3.2AT指令分类

3.1.1 NB-IoT指令集

3.1.2 Wi-Fi指令集

3.1.3 华为认证模组AT指令

3.2通信模组对接流程

3.2.1 NB-loT终端对接流程

3.2.2 Wi-Fi终端对接流程

总结

前言

本文为《考取HCIA证书,看我就够了》系列文章第五篇

本文将主要介绍HCIA-IoT认证物联网技术中感知层的主要技术,通过本次分享,你将会知道操作系统、单片机到底是什么。此外你还会了解有关LiteOS的知识,了解如何使用AT指令。

本次分享可能需要一些模电、数电的基础知识。

本文面向人群:ICT从业人员、学生

在 [HCIA-IoT]篇物联网起源与发展中我们知道物联网可分为四层,分别是感知层、网络层、平台层和应用层四层。

上一次我分享了平台层的内容,这次为大家带来感知层技术概览。

一、感知层硬件技术

1.1单片机技术

1.1.1微型计算机技术概述

当要讲这部分时,我脑海中瞬间就出现了这段我非常喜欢的小说情节

“陛下,您的军队真是举世无双,这么短的时间,就完成了如此复杂的训练。”冯·诺伊曼对秦始皇赞叹道。   “虽然整体上复杂,但每个士兵要做的很简单,比起以前为粉碎马其顿方阵进行的训练来,这算不了什么。”秦始皇按着长剑剑柄说。

“上帝也保佑,连着两个这样长的恒纪元。”牛顿说。

“即使是乱纪元,朕的军队也照样训练,以后,他们也会在乱纪元完成你们的计算。”秦始皇骄傲地扫视着方阵说。

“那么,请陛下发出您伟大的号令吧!”冯·诺伊曼用激动得发颤的声音说。

秦始皇点点头,一名卫士奔跑过来,握住皇帝的剑柄向后退了几步,抽出了那柄皇帝本人无法抽出的青铜长剑.然后上前跪下将剑呈给皇帝,秦始皇对着长空扬起长剑,高声喊道:

“成计算机队列!”

金字塔四角的四尊青铜大鼎同时轰地燃烧起来,站满了金字塔面向方阵一面坡墙的士兵用宏大的合唱将始皇帝的号令传诵下去:

“成计算机队列——”

下面的大地上,方阵均匀的色彩开始出现扰动,复杂精细的回路结构浮现出来,并渐渐充满了整个方阵,十分钟后,大地上出现了一块三十六平方公里的计算机主板。

冯·诺伊曼指着下方巨大的人列回路开始介绍:“陛下,我们把这台计算机命名为‘秦一号’。请看,那里,中心部分,是CPU,是计算机的核心计算元件.由您最精锐的五个军团构成,对照这张图您可以看到里面的加法器、寄存器、堆栈存贮器;外围整齐的部分是内存,构建这部分时我们发现人手不够,好在这部分每个单元的动作最简单,就训练每个士兵拿多种颜色的旗帜,组合起来后,一个人就能同时完成最初二十个人的操作,这就使内存容量达到了运行‘秦1.0’操作系统的最低要求;你再看那条贯穿整个阵列的通道,还有那些在通道上待命的轻转兵,那是BUS,系统总线,负责在整个系统间传递信息。”

“总线结构是个伟大的发明,新的插件,最大可由十个军团构成,能够快捷地挂接到总线上运行,这使得‘秦一号’的硬件扩展和升级十分便利;再看最远处那一边,可能要用望远镜才能看清,那是外存,我们又用了哥白尼起的名字,叫它‘硬盘’,那是由三百万名文化程度较高的人构成,您上次坑儒时把他们留下是对了,他们每个人手中都有一个记录本和笔,负责记录运算结果,当然,他们最大的工作量还是作为虚拟内存,存贮中间运算结果,运算速度的瓶颈就在他们那里。这儿,离我们最近的地方,是显示阵列,能显示计算机运行的主要状态参数。”

冯·诺伊曼和牛顿搬来一个一人多高的大纸卷,在秦始皇面前展开来,当纸卷展到尽头时,汪淼一阵头皮发紧,但他想象中的×××并没有出现,面前只有一张写满符号的大纸,那些符号都是蝇头大小,密密麻麻,看上去与下面的计算机阵列一样令人头晕目眩。

“陛下,这是就我们开发的‘秦1.0’版操作系统,计算软件将在它上面运行。陛下您看——”冯·诺伊曼指指下面的人列计算机,这阵列是硬件,而这张纸上写的是软件,硬件和软件,就如同琴和乐谱的关系。”说着他和牛顿又展开了一张同样大小的纸,”陛下,这就是数值法解那一组微分方程的软件,将天文观测得到的三个太阳在某一时间断面的运动矢量输入,它的运行就能为我们预测以后任一时刻太阳的运行状态。我们这次计算,将对以后两年太阳的运行做出完整预测,每组预测值的时间间隔为一百二十小时。”

秦始皇点点头:“那就开始吧。”   冯·诺伊曼双手过顶,庄严地喊道:“奉圣上御旨,计算机启动!系统自检!”

在金字塔的中部,一排旗手用旗语发出指令,一时间,下面大地上三千万人构成的巨型主板仿佛液化了,充满了细密的粼粼波光,那是几千万面小旗在挥动。在靠近金字塔底部的显示阵列中,一条由无数面绿色大旗构成的进度条在延伸着,标示着自检的进度。十分钟后,进度条走到了头。

“自检完成!引导程序运行!操作系统加载!!”   下面,贯穿人列计算机的系统总线上的轻转兵快速运动起来,总线立刻变成了一条湍急的河流.这河流沿途又分成无数条细小的支流,渗入到各个模块阵列之中。很快,黑白旗的涟漪演化成汹涌的浪潮,激荡在整块主板上。中央的CPU区激荡最为剧烈,像一片燃烧的火药。突然,仿佛火药燃尽,CPU区的扰动渐渐平静下来,最后竟完全静止了,以它为圆心,这静止向各个方向飞快扩散开来,像快速封冻的海面,最后整块主板大部分静止了,其间只有一些零星的死循环在以不变的节奏没有生气地闪动着,显示阵列中出现了闪动的红色。

“系统锁死!”一名信号官高喊。故障原因很快查清,是CPU状态寄存器中的一个门电路运行出错。

“系统重新热启动!”冯·诺伊受胸有成竹地命令道。

“慢!”牛顿挥手制止了信号官,转身一脸阴毒地对秦始皇说,“陛下,为了系统的稳定运行,对故障率较高的部件应该采取一些维修措施。”

秦始皇拄着长剑说:“更换出错部件,组成那个部件的所有兵卒,斩!以后故障照此办理。”

冯·诺伊曼厌恶地看了牛顿一眼,看着一组利剑出鞘的骑兵冲进主板,“维修”了故障部件后,重新发布了热启动命令。这次启动十分顺利,二十分钟后,三体世界的冯,诺伊曼结构人列计算机在“秦1.0”操作系统下进入运行状态。

“启动太阳轨道计算软件‘Three-Body

l.0’!”牛顿声嘶力竭地发令,“启动计算主控!加载差分模块!加载有限元模块!加载谱方法模块……调入初始条件参数!计算启动!!”

主板上波光粼粼,显示阵列上的各色标志此起彼伏地闪动,人列计算机开始了漫长的计算。

“真是很有意思。”秦始皇手指壮观的计算机说,“每个人如此简单的行为,竟产生了如此复杂的大东西!欧洲人骂朕独裁暴政,扼杀了社会的创造力,其实在严格纪律约束下的大量的人,合为一个整体后也能产生伟大的智慧。”

“伟大的始皇帝,这是机器的机械运行,不是智慧。这些普通卑贱的人都是一个个0,只有在最前面加上您这样一个1,他们的整体才有意义。”牛顿带着奉承的微笑说。

“恶心的哲学。”冯·诺伊曼瞥了牛顿一眼说,“如果到时候,按你的理论和数学模型计算出的结果与预测不符,你我可就连零都不是了。”

“对,那时你们可真的什么都不是了!”秦始皇说着,拂袖而去。

时光飞逝,人列计算机运行了一年零四个月,除去程序的调试时间,实际计算时间约一年两个月,这期间,只因乱纪元过分恶劣的气候中断过两次,但计算机存贮了中断现场数据,都成功地从断点恢复了运行。当秦始皇和欧洲学者们再次登上金字塔顶部时,第一阶段的计算已经完成,这批结果数据,精确地描述了以后两年太阳运行的轨道状况。

这是一个寒冷的黎明,彻夜照耀着巨大主板的无数火炬已经熄灭,计算机完成后,“秦1.0”进入待机状态,主板表面汹涌的浪涛变成了平静的微波......

上面的选段基本上描述了现代计算机的组成,区别就是文章里是由人替代一个一个的门电路

我们所熟悉的手机、电脑的处理器芯片,其实都是由一个个简单的门电路组成

门电路就是可以完成与、或、非基本逻辑运算的电路,分为与、或、非门等,上面文章中加粗的字段就是描述了一个与门的运算逻辑。

与门

或门

非门

当然,若想要实现多功能,就需要在电路当中增加其他如选择器、寄存器等电路。

选择器用来选择想要实现的功能。(例如︰两数相加或相减)

寄存器可以对之前的结果和之后运行的指令进行记录

然后利用单晶硅晶圆作为基底,敷设不同的材料层,在再上面刻蚀出一个个门电路,数以亿计的门电路就形成了我们的芯片

之后现代计算机(无论大型或微型)在此基础上又设计了成百上千个不同的指令,来实现数学、逻辑或存储的功能。

其实,所有的程序都是用不同的指令的集合,来完成对于计算机数据的处理。

1.1.2指令集

计算机指令就是指挥机器工作的指示和命令,软件就是为了使用计算机进行计算而编写的用户或系统程序,而程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。

指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。

从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分

1.1.3处理单元分类

现代可编程设备可以被分为两个不同的类别:微处理器(Microprocessor,MPU)和微控制器(Microcontroller,MCU)

微处理器通常就是一块CPU(Certral Processing Unit),通常被放在电脑、服务器或游戏设备等当中用来处理高功耗、高复杂度的任务。其特点在于微处理器只能用来处理数据,所有必要的存储器和外设都必须分别外接

微控制器又称单片机,其中包含CPU,存储器和一系列输入输出设备。通常被设计为MP3播放器、照相机、远程控制设备等低功耗嵌入式应用

1.1.4单片机架构

单片机主要分为四部分:CPU、存储器、输入输出接口、系统总线

1.CPU

处理器(Processor,CPU ),处理器在微控制器当中用来控制整个系统,它串行地读取并解码程序指令,执行需要处理器的任务并且为其余部分任务生成控制信号。它执行所有算术和逻辑运算,并且具有相同处理器的微控制器可以执行相同的程序。

2.存储器

存储器( Memory ),存储系统包含存储器和地址解码电路。

通常存储器被分为两类:随机存储器(RAM)、只读存储器(ROM)

RAM: Random Access Memory,用来存储运行在程序当中的数据(如:运算结果等),掉电后数据消失

ROM: Read Only Memory,用来存储需要被微控制器执行的程序,掉电后数据不消失。

3.输入输出接口(I/O)

连接外接设备和微控制器的接口,通常可以是数字I/O,模拟I/O,串口等。类似计算机的USB接口。

模拟数据(Analog Data)是由传感器采集得到的连续变化的值,例如温度、压力,以及目前在电话、无线电和电视广播中的声音和图像。

数字数据(Digital Data)则是模拟数据经量化后得到的离散的值,例如在计算机中用二进制代码表示的字符、图形、音频与视频数据。

4.总线(BUS)

总线如同城市的主干道一样,可以连接单片机的各个部分,并进行数据的通信,通常情况下微控制器中的总线可以被分为三类:数据总线、地址总线和控制总线

数据总线:用于在处理器、存储器和/o之间传递数据的双向总线。

地址总线∶用于选择处理器需要读取/写入到特定存储器位置的总线。地址总线的数据流动方向是单向的,从处理器到内存和I/O。

控制总线∶由许多单独的控制/信令线路组成。典型的信号包括读/写线路,用于随数据总线指示数据行进的方向。

1.2传感器技术

我们人体能够感应到周围的环境状态,主要是因为我们有各种感觉器官

单片机想要获取周围的环境状态,就要依靠各类传感器

1.2.1 ADC/DAC

有些同学看到ADC可能DNA动了一下,但是这个ADC可不是游戏中的ADC

在单片机当中通常存在模拟外设ADC(模数转换器,Analog to Digital Converter)和 DAC(数模转换器,Digital to Analog Converter)来进行模拟信号和数字信号之间的转换。

一个ADC接口通常可以作为输入接口将外界的模拟信号转换为数字信号在单片机内进行使用,例如接口的额定电压为3.3v,则该接口可接受的电压范围为0~3.3V。若此ADC为2bit,则可以表示4个不同的电压等级。

一个DAC接口与ADC接口的作用相反,可以将单片机内的数字信号输出为一个模拟信号来进行使用,若不使用DAC对电压进行分级,接口只能表示低电平或高电平。

1.2.2传感技术

传感技术同计算机技术与通信一起被称为信息技术的三大支柱。从物联网角度看,传感技术是衡量一个国家信息化程度的重要标志。

传感技术就是传感器技术,可以感知周围环境或者特殊物质,比如气体感知、光线感知、温湿度感知、人体感知等等,把模拟信号转化成数字信号,给中央处理器处理。最终结果形成气体浓度参数、光线强度参数、范围内是否有人、温度湿度数据等等。

我们常用的声控灯,就是通过检测周围声音变化来控制亮灭(部分也会加入光敏传感器,实现黑夜才亮)

1.2.3传感器分类

传感器的功能常与人类5大感觉器官相比拟:

光敏传感器——视觉

声敏传感器——听觉。

气敏传感器——嗅觉。

化学传感器――味觉

压敏、温敏、流体传感器——触觉

通常据其基本感知功能可分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。

1.光敏传感器

光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。

2.温度传感器

温度传感器是指能感受温度并转换成可用输出信号的传感器。按照传感器材料及电子元件特性,温度传感器可以被分为电阻传感式和热电偶传感式两类。

3.加速度传感器

加速度传感器是一种能够测量加速度的传感器,通常由质量块、阻尼器、弹性元件、敏感元件和适调电路等部分组成。多数加速度传感器是根据压电效应的原理来工作的。

压电效应:对于不存在对称中心的异极晶体加在晶体上的外力除了使晶体发生形变以外,还将改变晶体的极化状态,在晶体内部建立电场,这种由于机械力作用使介质发生极化的现象称为正压电效应。

4.脉搏传感器

脉搏传感器指的是用于检测脉搏相关信号的传感器。脉搏传感器按照采集信号的方式主要可以分为压电式、压阻式、光电式三种。

二、感知层软件技术

2.1操作系统概述

2.1.1操作系统是什么

操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。

在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。简单点说,操作系统是一种可以让我们更方便地使用计算机各种能力的程序。

常见的操作系统有Windows、Linux、Android等

2.1.2操作系统发展史

1.最早的“操作系统”

穿孔纸带/卡片——人工操作方式

程序员将事先已穿孔的纸带(或卡片)装入纸带输入机(或卡片输入机),再启动它们将纸带(或卡片)上的程序和数据输入计算机,最后启动计算机运行。

2.批处理操作系统”

单道批处理系统:系统对作业的处理是成批进行的,但内存中始终保持一道作业。

多道批处理系统:允许多个程序同时进入内存并运行。

3.分时操作系统”

以时间片为单位轮流为各个用户、作业服务,各个用户可通过终端与计算机进行交互。

4.实时操作系统”

保证在一定时间限制内完成特定功能的操作系统。实时操作系统有软实时系统和硬实时系统之分。

5.网络操作系统/分布式探作系统”

网络中各种资源进行共享以及各台计算机之间进行通信,通过网络实现不同计算机间的协作。

分布式操作系统与网络操作系统本质上的不同之处在于分布式操作系统中,若干台计算机协同完成同一任务。

2.2为什么需要物联网操作系统

2.2.1物联网终端开发面临的挑战

1.超大连接数量

不同的时代对操作系统的要求也不同,物联网时代超大的连接数量与过去全然不同,这意味着需要新的物联网操作系统。

2.繁杂的终端种类

对于物联网发展而言,“碎片化”是主要的问题,其中芯片、传感器、通信协议、应用场景千差万别,“山头林立”。比如无线通信标准,就有蓝牙、Wi-Fi、ZigBee、PLC、Z-Wave、RF、Z-Wave、NFC、LiFi、NB一loT、LoRa等等。

开发人员需要为不同的设备分别进行适配,让发量本就不多程序员更加忧愁。

3.多传感器协同管理复杂

4.视频场景下性能、功耗要求高

2.2.2终端智能化

通过上述例子可以看出,终端智能化是物联网的基础

而终端智能化的内涵就是:联接智能、组网智能、管理智能

华为提供完整、标准化物联网操作系统Liteos,加速终端智能化进程

2.3物联网操作系统Huawei LiteOS概述

Huawei LiteOS基础架构是1+N架构,即1个内核N个中间件。

Huawei LiteOS内核的特点是:

低功耗,高实时性,高稳定性

超小内核,基础内核体积可以裁剪至不到10KB

支持动态加载、分散加载

支持功能静态裁剪

Huawei Liteos是华为面向loT领域,构建的轻量级物联网操作系统,遵循BSD-3开源许可协议,可广泛应用于智能家居、个人穿戴、车联网、城市公共服务、制造业等领域。

BSD协议全称“Berkeley Software Distribution”,是五大开源许可协议之一。

2.4 Huawei LiteOS的内核

Huawei LiteOs Kernel是操作系统内核,其中基础内核是最精简的 HuaweiLiteOs操作系统,它包括任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,可以单独运行。同时为了更好地支持低功耗场景,支持tickless机制。

Tickless低功耗机制是当前小型RTOS所采用的通用低功耗方法。

RTOS:实时操作系统,常见的实时操作系统有uc/os-ii、FreeRTOS、RT-Thread

2.4.1 Huawei LiteOS任务管理

任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。

Huawei LiteOs的任务模块提供任务的创建、删除、延迟、挂起、恢复等功能,以及锁定和解锁任务调度。任务的调度机制是基于优先级抢占式的调度机制,同时支持同优先级的任务基于时间片轮转调度方式。

Huawei LiteOs的任务一共有32个优先级(0-31),最高优先级为0,最低优先级为31;高优先级的任务可打断低优先级任务,低优先级任务必须在高优先级任务阻塞或结束后才能得到调度。

时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一时间段,称作它的时间片,即该进程允许运行的时间。

任务管理接口

2.4.2 Huawei LiteOS内存管理

内存管理模块管理系统的内存资源,主要负责内存的初始化、分配及释放。

Huawei LiteOs的内存管理提供静态内存和动态内存两类算法,静态分配为membox,动态内存分配有:bestfit,bestfit_little和tlsf。此外,还提供内存统计、内存越界检测功能。

1.动态内存管理

《考取HCIA证书看我就够了》第五篇:[HCIA-IoT]物联网技术之感知层技术概览

动态内存:在动态内存池中分配用户指定大小的内存块。

所有的内存块用链表链接在一起(TLSF有多个链表),在内存释放的时候,自动合并前后空闲内存。每块内存块开头保存有管理结构(即便被分配出去的内存块也有)。

优点

按需分配,分配大块内存时比较划算。

缺点

分配小块内存时会因为块开头的管理结构导致内存浪费。内存池中可能出现碎片。

性能开销稍大。

2.静态内存管理

静态内存:在静态内存池中分配用户初始化时预设(固定)大小的内存块。一般也称为对象池。本质是一个对象数组。

优点

性能较动态内存管理高。内存分配和释放效率高,每块被分配的内存块没有管理结构。静态内存池中无内存碎片。

缺点

只能分配固定大小的内存块,不能按需申请。不适合管理大对象。

内存管理接口

2.4.3 Huawei LiteOS中断管理

什么是中断呢?我记得老师举过一个很形象的例子。

假如你正在烧水,这时你听到有人敲门(中断请求),这时你转身去开门(中断响应),开门后发现是刚买的快递到了,你签收快递(中断处理),签收完后你又继续回去烧水(中断返回)。

中断是指出现需要时,CPU暂停执行当前程序,转而执行新程序的过程。

Huawei LiteoS支持对中断不接管与中断接管两种方式。

Huawei LiteOS中断模块支持中断初始化、中断创建、开/关中断、恢复中断、中断使能、中断屏蔽等功能。

当中断产生时,处理机将按如下的顺序执行:

保存当前处理机状态信息

载入异常或中断处理函数到PC寄存器

把控制权转交给处理函数并开始执行

当处理函数执行完成时,恢复处理器状态信息

从异常或中断中返回到前一个程序执行点

2.4.4 Huawei LiteOS任务间通信

系统运行时往往会存在多个任务,这些任务之间进行协调就需要任务间通信。

Huawei LiteOs的多任务同步、互斥及通信主要包括:

队列

队列又称消息队列,是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息,并根据不同的接口选择传递消息是否存放在自己空间。

Huawei LiteOs的消息队列支持队列的创建、删除、发送和接收功能。

事件

事件是一种实现任务间通信的机制,可用于实现任务间的同步,但事件通信只能是事件类型的通信,无数据传输。

事件不与任务相关联,事件相互独立,一个32位的变量,用于标识该任务发生的事件类型,其中每一位表示一种事件类型(0表示该事件类型未发生、1表示该事件类型已经发生),一共31种事件类型(第25位保留)。

一个任务可以等待多个事件的发生:

1.可以是任意一个事件发生时唤醒任务进行事件处理

2.也可以是几个事件都发生后才唤醒任务进行事件处理

3.也可以是多次向任务发送同一事件类型,等效于只发送一次。

信号量

信号量( Semaphore )是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。常用于协助一组相互竞争的任务来访问临界资源。

信号量允许多个任务在同一时刻访问同一资源,但会限制同一时刻访问此资源的最大任务数目。访问同一资源的任务数达到该资源的最大数量时,会阻塞其他试图获取该资源的任务,直到有任务释放该信号量。

互斥锁

互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。任意时刻互斥锁的状态只有两种,开锁或闭锁。

当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。

当该任务释放它时,该互斥锁被开锁,任务失去该互斥锁的所有权。当一个任务持有互斥锁时,其他任务将不能再对该互斥锁进行开锁或持有。

2.4.5 Huawei LiteOS时间管理

时间管理以系统时钟为基础。时间管理提供给应用程序所有和时间有关的服务。就像是北京时间一样,给我们一种有关时间的标准。

系统时钟是由定时/计数器产生的输出脉冲触发中断而产生的,一般定义为整数或长整数。输出脉冲的周期叫做一个“时钟滴答”。系统时钟也称为时标或者Tick。一个Tick的时长可以静态配置。

用户是以秒、毫秒为单位计时,而芯片CPU的计时是以Tick为单位的,当用户需要对系统操作时,例如任务挂起、延时等,输入秒为单位的数值,此时需要时间管理模块对二者进行转换。

2.4.6 Huawei LiteOS定时器

定时器分为软件定时器和硬件定时器。

硬件定时器受硬件的限制,数量上不足以满足用户的实际需求,因此为了满足用户需求,提供更多的定时器,Huawei LiteOs操作系统提供软件定时器功能。

软件定时器,是基于系统Tick时钟中断且由软件来模拟的定时器,当经过设定的Tick时钟计数值后会触发用户定义的回调函数。定时精度与系统Tick时钟的周期有关。软件定时器扩展了定时器的数量,允许创建更多的定时业务。

软件定时器分为单次模式和周期模式。

2.5 Huawei LiteOS的中间件

2.5.1 Huawei LiteOS SDK

Liteos SDK是Huawei LiteOs软件开发工具包( Software Development Kit),其包括端云互通组件,FOTA升级,JS引擎、传感器框架等内容。

LiteOS SDK由互联组件和增强组件两部分组成,互联组件负责实现云端互通能力,增强组件配套华为loT云平台OceanConnect为行业伙伴打造的电信级loT通用能力。

2.5.2 Huawei LiteOS端云互通组件

LiteOs SDK端云互通组件作为独立的组件,不依赖特定的芯片架构和网络硬件类型,可以轻松地集成到各种通信模组上,如NB-loT模组、eMT模组、Wi-Fi模组、GSM模组、以太网硬件等。

端云互通组件提供端云协同能力,集成了LwM2M、CoAP、mbed TLS、LwIlP等全套loT互联互通协议栈。

2.5.3 Huawei LiteOS互联框架

提供IP、TCP/UDP、CoAP完整协议栈,降低开发门槛,实现互联。提供可灵活配置的应用Profile,实现不同设备的互通。

2.5.4 Huawei LiteOS互联框架

提供多种传感算法,应用无需开发,直接调用

抽象不同类型传感器接口,屏蔽硬件细节,实现即插即用。

2.5.5 Huawei LiteOS安全框架

2.6 Huawei LiteOS API

开放的API屏蔽底层差异,让应用开发者只需关注上层应用开发。友好的兼容性使得已熟悉在 Linux系统上开发应用的开发者,能够非常平滑的切换到Huawei LiteOS 系统上开发,同时由于Huawei LiteOS 系统的精简内核特性,使得开发者更容易理解内核。

例如基于端云互通组件提供的API,开发者通过简单几个步骤就能快速地实现与华为loT平台OceanConnect安全可靠连接。

三、通信模组开发介绍

在物联网中,对通信模组的调测、控制等主要依赖AT指令。

AT指令就像你和其他人之间约定好的暗号一样,发送特定的暗号,对方会回应对应的动作。

3.1什么是AT指令

AT命令是用来控制TE ( Terminal Equipment,终端设备)和MT( Mobile Terminal,移动终端)之间交互的规则。

3.2AT指令分类

AT命令中的4种命令:

设置命令 =XX 用来设置AT命令中的属性

测试命令 =? 用来显示AT命令设置的合法参数值有哪些

查询命令 ? 用来查询当前AT命令设置的属性值

执行命令 执行AT命令(不需要参数,例如查询版本号等)

3.1.1 NB-IoT指令集

3.1.2 Wi-Fi指令集

Wi-Fi由于不涉及无线及核心网、SIM卡等运营商业务,故与NB-IoT指令有所不同。

3.1.3 华为认证模组AT指令

3.2通信模组对接流程

3.2.1 NB-loT终端对接流程

终端对接流程

终端上电,执行"AT+NRB"复位终端。如果返回OK,表示终端正常运行。

执行“AT+CFUN=O”关闭功能开关。如果执行成功,返回OK。

执行“AT+NTSETID=1,设备ID"设置设备ID。设备ID为IMEl号,如果执行成功,返回OK,详细可参考附录。

执行"AT+NCDP=IP,PORT”设置需要对接IOT平台的地址,端口为5683。如果执行成功,返回OK。

执行"AT+CFUN=1开启功能开关。如果执行成功,返回OK。

执行“AT+NBAND=频段”设置频段。如果执行成功,返回OK。

执行“AT+CGDCONT=1,‘IP’,‘APN’ "设置核心网APN。如果执行成功,返回OK,核心网APN可联系运营商(与运营商网络对接)或者OpenLab负责人(OpenLab网络对接)进行获取。

执行“AT+CGATT=1 ”进行入网。如果执行成功,返回OK。

执行"AT+CGPADDR"查询终端是否获取到核心网分配的地址,如果获取到地址,表示终端入网成功。

执行“AT+NMGS=数据长度,数据"发送上行数据,如果上行数据发送成功,返回OK。

如果loT平台向终端发送了下行数据,可以通过“AT+NMGR"进行获取。

3.2.2 Wi-Fi终端对接流程

终端对接流程

终端上电,执行“AT+CWMODE=3”复位终端。如果返回OK,表示终端已配置Wi-Fi模式。

执行“AT+CWJAP= ‘SSID’, ‘password’ ”联接路由器。如果执行成功,返回OK。

执行"AT+CIFSR”查询ESP8266设备的IP地址。如果执行成功,返回OK,详细可参考附录。

执行"AT+CIPSTART= ‘TCP’,'IP,‘PORT’ ”设置需要对接IOT平台的地址,端口为5683。如果执行成功,返回OK。

执行"AT+CIPSEND=”开始执行发送数据命令,返回“>”输入数据。如果执行成功,返回SEND OK。

总结

本次文章主要介绍了物联网技术中感知层的技术介绍,下一次将会简单介绍一下华为物联网的解决方案。

近期有一场HCIA-IoT的免费训练营活动,参与活动不仅可以拿奖品、学习HCIA-IoT的考试内容,还可以获得价值200美元的HCIA的免费考试券,简直棒极了!

活动报名链接

这是本系列第五篇文章,我将持续分享自己学习HCIA-IoT与参加考试的心得,敬请关注,谢谢大家!

如果您喜欢我的文章,请不要吝啬您的赞赏。

如果您不喜欢我的文章,请您留下宝贵的意见。

AI IoT 云社区 开发者 活动

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python 中的按位运算符 |【生长吧!Python!】 【生长吧!Python】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/278897
下一篇:基于深度学习的日志数据异常检测
相关文章