系列文章目录
《考取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微型计算机技术概述
当要讲这部分时,我脑海中瞬间就出现了这段我非常喜欢的小说情节
人列计算机 (节选自《三体》作者:刘慈欣)
背景补充:三体星和地球不同,它是三星系统,即有三颗太阳,三颗太阳进行三体运动,导致三体世界分为乱纪元和恒纪元两种时期。恒纪元时,这个世界适宜三体人生存和发展,而乱纪元时,整个世界会因离太阳过远或过近陷入寒夜或炼狱,三体人只能依靠“脱水”勉强生存下去。为了计算下一次恒纪元的时间,三体人不断地进行尝试。
....力学三定律的发现,就已经使我成为仅次于上帝的人,从星球运行到细胞分裂,无不遵从于这三个伟大的定律。现在有了微积分这个强有力的数学工具,以三定律为基础,掌握三个太阳运行的规律指日可待。”
“没有那么简单。”劝架的人说,“你考虑过计算量吗?我看过你列出的那一系列微分方程,好像不可能求出解析解,只能求数值解,计算量之大,就是全世界的数学家不停地工作,到世界末日也算不完。当然,如果不能尽快掌握太阳运行的规律,世界未日也不是大远了。”他说着也向汪淼鞠躬,姿势更现代些。
“冯·诺伊曼(注:现代计算机技术的莫基者),你带我们千里迢迢来东方,不就是为了解决这些方程的计算问题吗?”牛顿说,然后转向汪淼,“同来的还有维纳(注:控制论创始人)和刚才那个败类,在马达加斯加遭遇海盗时,维纳为掩护我们只身阻击海盗,英勇牺牲。”
“计算机需要到东方来制造吗?”汪淼不解地问冯·诺伊曼。 冯·诺伊曼和牛顿面面相觑,“计算机?计算机器?!有这种东西?”
“您不知道计算机?那,你打算用什么来进行那些海量计算呢?”
冯·诺伊曼瞪大眼晴看着汪淼,似乎很不理解他的问题,“用什么?当然是用人了!这世界上除了人之外难道真的还有什么东西会计算吗?”
“可您说过,全世界的数学家都不够用。”
“我们不会用数学家的,我们用普通人,普通劳动力,但需要的数量巨大.最少要三千万人!这是数学的人海战术。”
“普通人?三千万?!”汪淼惊奇万分,“我要是没理解错,这是一个百分之九十的人都是文盲的时代,您要找三千万个懂微积分的?”
“有一个川军的笑话你听说过吗?”冯·诺伊曼掏出一枝粗雪茄,咬开头点了起来,“士兵们练队列,因为文化水平极低,连军官喊一二一都听不懂,于是军官想了一个办法,让每个士兵左脚穿草鞋右脚穿布鞋,走队列时喊:草孩布孩、草孩布孩……(四川话)我们需要这样水平的士兵就行,但要三干万。”
听到这个近现代的笑话,汪淼知道面前这位不是程序而是人,而且几乎可以肯定是中国人。“这样庞大的军队,难以想象。”汪淼摇摇头说。
“所以我们来找秦始皇。”牛顿指指金字塔说。
“现在这里还是他在统治吗?”汪淼四下打量了一下问,看到守卫金字塔入口的士兵确买穿看秦代简洁的软甲兵服,拿着长戟。对《三体》中历史的错乱,汪淼已经见多不怪了。
“整个世界都要由他统治了,他拥有一支三干多万人的大军,准备去征服欧洲。好了,让我们去见他吧。”冯·诺伊曼一手指着金字塔入口说,然后又指着牛顿说,“把剑扔了!”
牛顿“当啷”一声扔下剑,三人走进入口,走到门廊尽头就要进入大殿时,一名卫士坚持让他们都脱光衣服,牛顿抗议说我们是著名学者,没有暗器!双方僵持之时,大殿内传来一声低沉的男音:“是发现三定律的西洋人吗?让他们进来。”走进大殿,三人看到秦嬴政正在殿中踱着步,长衣的后摆和那柄著名的长剑都拖在地上。他转身看着三位学者,汪淼立刻发现,那是纣王和格里高利教皇的眼睛。
“你们的来意我知道了,你们是西洋人,干吗不去找凯撒?他的帝国疆域广大,应该能凑齐三千万大军吧。”
“可是尊敬的皇帝,您知道那是一支什么样的军队吗?您知道那个帝国现在是什么样子吗?在宏伟的罗马城内,穿过城市的河流都被严重污染,你知道是什么所致吗?”
“军工企业?”
“不不,伟大的皇帝,是罗马人暴饮暴食后的呕吐物!那些贵族赴宴时餐桌下放着担架,吃得走不动时就让仆人抬回去。整个帝国陷入荒淫无度的泥潭中不可自拔,就是组成了三千万大军,也不可能具备进行这种伟大计算的素质和体力。”
“这朕知道,”秦始皇说,“但凯撒正在清醒过来,在重整军备,西洋人的智慧也是件可怕的东西,你们并不比东方人聪明,但想对了路子,比如他能看出太阳有三个,你能想出那三条定律,都是很了不起的,东方人暂时做不到。而我现在还没有能力远征西洋,我的船不行,从陆上走.漫长的供应线无法维持。”
“所以,伟大的皇帝,您的帝国还要发展!”冯·诺伊曼不失时机地说,“如果掌握了太阳运行的规律,你就能充分利用每一个恒纪元,同时避免乱纪元带来的损失,这样发展速度比西洋要快得多。请你相信我们,我们是学者,只要能用三定律和微积分准确预测太阳的运行,不在乎谁征服统治世界。”
“朕当然需要预测太阳的运行,但你们让我集结三千万大军,至少要首先向朕演示一下这种计算如何进行吧。”
“陛下,请给我三个士兵,我将为您演示。”冯·诺伊曼兴奋起来。
“三个?只要三个吗?朕可以轻易给你三千个。”秦始皇用不信任的目光扫视看着冯·诺伊曼。
“伟大的陛下,您刚才提到东方人在科学思维上的缺陷,就是因为你们没有意识到,复杂的宇宙万物其实是由最简单的单元构成的。我只要三个,陛下。”
秦始皇挥手召来了三名士兵,他们都很年轻,与秦国的其他士兵一样,一举一动像听从命令的机器。
“我不知道你们的名字,”冯·诺伊曼拍拍前两个士兵的肩,“你们两个负责信号输入,就叫‘入1’、入2’吧。”他又指指最后一名士兵,“你,负责信号输出,就叫‘出’吧,”他伸手拨动三名士兵,
“这样,站成一个三角形,出是顶端,入1和入2是底边。”
“哼,你让他们成楔形攻击队形不就行了?”秦始皇轻蔑地看着冯·诺伊曼。牛顿不知从什么地方掏出六面小旗.三白三黑,冯·诺伊曼接过来分给三名士兵,每人一白一黑,说:“白色代表0,黑色代表1。好,现在听我说,出,你转身看着入1和入2,如果他们都举黑旗,你就举黑旗,其他的情况你都举白旗,这种情况有三种:入l白,入2黑;入l黑,入2白;入1、入2都是白。”
“我觉得你应该换种颜色,白旗代表投降。”秦始皇说。
兴奋中的冯·诺伊曼没有理睬皇帝,对三名士兵大声命令:“现在开始运行!入1入2,你们每人随意举旗,好,举!好,再举!举!”
入1和入2同时举了三次旗,第一次是黑黑,第二次是白黑,第三次是黑白。出都进行了正确反应,分别举起了一次黑和两次白。
“很好,运行正确,陛下,您的士兵很聪明!” “这事儿傻瓜都会,你能告诉联,他们在干什么吗?”秦始皇一脸困惑地问。
“这三个人组成了一个计算系统的部件,是门部件的一种,叫‘与门’。”冯·诺伊曼说完停了一会儿,好让皇帝理解。
秦始皇面无表情地说:“联是够郁闷的,好,继续。”
冯·诺伊曼转向排成三角阵的三名士兵:“我们构建下一个部件。你,出,只要看到入1和入2中有一个人举黑旗,你就举黑旗,这种情况有三种组合——黑黑、白黑、黑白,剩下的一种情况——白白,你就举白旗。明白了吗?好孩子,你真聪明,门部件的正确运行你是关键,好好干,皇帝会奖赏你的!下面开始运行:举!好,再举!再举!好极了,运行正常,陛下,这个门部件叫或门。”
然后,冯·诺伊曼又用三名士兵构建了与非门、或非门、异或门、同或门和三态门,最后只用两名士兵构建了最简单的非门,出总是举与入颜色相反的旗。
冯·诺伊曼对皇帝鞠躬说:“现在,陛下,所有的门部件都已演示完毕,这很简单不是吗?任何三名士兵经过一小时的训练就可以掌握。”
“他们不需要学更多的东西了吗?”秦始皇问。
“不需要,我们组建一千万个这样的门部件,再将这些部件组合成一个系统,这个系统就能进行我们所需要的运算,解出那些预测太阳运行的微分方程。这个系统,我们把它叫做……嗯,叫做……”
“计算机。”汪淼说。
“啊——好!”冯·诺伊曼对汪淼竖起一根指头,“计算机,这个名字好,整个系统实际上就是一部庞大的机器,是有史以来最复杂的机器!”
游戏时间加快,三个月过去了。
秦始皇、牛顿、冯,诺伊曼和汪淼站在金字塔顶部的平台上,这个平台与汪淼和墨子相遇时的很相似,架设着大量的天文观测仪器,其中有一部分是欧洲近代的设备。在他们下方,三千万秦国军队宏伟的方阵铺展在大地上,这是一个边长六公里的正方形。在初升的太阳下,方阵凝固了似的纹丝不动,仿佛一张由三千万个兵马俑构成的巨毯,但飞翔的鸟群误入这巨毯上空时,立刻感到了下方浓重的杀气,鸟群顿时大乱,惊慌混乱地散开或绕行汪淼在心里算了算,如果全人类站成这样一个方阵,面积也不过是上海浦东大小,比起它表现的力量,这方阵更显示了文明的脆弱。
“陛下,您的军队真是举世无双,这么短的时间,就完成了如此复杂的训练。”冯·诺伊曼对秦始皇赞叹道。 “虽然整体上复杂,但每个士兵要做的很简单,比起以前为粉碎马其顿方阵进行的训练来,这算不了什么。”秦始皇按着长剑剑柄说。
“上帝也保佑,连着两个这样长的恒纪元。”牛顿说。
“即使是乱纪元,朕的军队也照样训练,以后,他们也会在乱纪元完成你们的计算。”秦始皇骄傲地扫视着方阵说。
“那么,请陛下发出您伟大的号令吧!”冯·诺伊曼用激动得发颤的声音说。
秦始皇点点头,一名卫士奔跑过来,握住皇帝的剑柄向后退了几步,抽出了那柄皇帝本人无法抽出的青铜长剑.然后上前跪下将剑呈给皇帝,秦始皇对着长空扬起长剑,高声喊道:
“成计算机队列!”
金字塔四角的四尊青铜大鼎同时轰地燃烧起来,站满了金字塔面向方阵一面坡墙的士兵用宏大的合唱将始皇帝的号令传诵下去:
“成计算机队列——”
下面的大地上,方阵均匀的色彩开始出现扰动,复杂精细的回路结构浮现出来,并渐渐充满了整个方阵,十分钟后,大地上出现了一块三十六平方公里的计算机主板。
冯·诺伊曼指着下方巨大的人列回路开始介绍:“陛下,我们把这台计算机命名为‘秦一号’。请看,那里,中心部分,是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.动态内存管理
动态内存:在动态内存池中分配用户指定大小的内存块。
所有的内存块用链表链接在一起(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与参加考试的心得,敬请关注,谢谢大家!
如果您喜欢我的文章,请不要吝啬您的赞赏。
如果您不喜欢我的文章,请您留下宝贵的意见。
公众号:柠檬PH2,获取免费HCIA考试资料和题库(配合题库,拿证更有把握哦)