需要以下技术功底:数字电路、模拟电路、电路原理与分析、电磁波、集成电路IC设计、VHDL硬件描述语言和电路板制图工具的熟练使用(比如Protel、AutoCAD等)。硬件设计开发需要经验,长期积累,越老越吃香。
物联网是要以嵌入式知识为基础的。
物联网的意思就是把一些常见的设备都连到大的网络上,这些就是需要嵌入式系统来搭建,需要写嵌入式的程序。
嵌入式和java我更倾向于嵌入式,本人也是做嵌入式的开发的。
关于如何学习嵌入式,我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。
专科生学嵌入式到找到工作的前前后后--学习的榜样
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在百度知道看到一篇让我很鼓舞的文章《如何学习嵌入式》,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。
主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视频,是在嵌入式学习网推出的一份视频《嵌入式视频教程--零基础手把手教你学嵌入式》,里面的教程还不错,很完整,可以让我从基础的开始学起。视频不便宜啊,但是我也忍了,毕竟买几本书都要几百了,何况他们还有半年的技术咨询和服务,算值了。
==============这里我就不给出他们的网址,如果你也想要嵌入式视频的话,那就自己去百度搜索:零基础手把手教你学嵌入式。
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。
接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。
这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,同时我不懂的就问,这里真的很感谢他们的技术客服对我的任何问题都是耐心的解答,每天都我几乎都有好几个问题问他们,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。
最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右
我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
最后祝愿所有想学嵌入式的朋友更早的入门!!!!
物联网嵌入式就业前景如下:
第一,物联网算是交叉学科,涉及通信技术、传感技术、网络技术以及嵌入式系统技术等多项知识。学好这一专业是有一定难度的,从人才市场的需求以及企业用人制度来看,物联网领域急需相关专业人才;
从工信部以及各级政府所颁布的规划来看,物联网在未来十年之内必然会迎来发展的高峰期,物联网技术人才也势必会迎接属于它的一个美好时代。
第二,物联网专业的就业渠道主要集中在三大领域,其一是智能硬件行业,这一行业也是目前创新的热点领域,在5G通信的推动下,智能硬件领域的就业机会也会不断增加,目前有不少大型科技公司也开始纷纷布局AIoT领域。
从这个角度来看,物联网专业的毕业生进入大厂的机会也会更多一些。物联网工程专业毕业生可以选择在政府管理部门、科学研究机构、设计院、咨询公司、建筑工程公司、物业以及能源管理、建筑节能设备以及产品制造生产企业等单位从事建筑节能的研究、设计、施工、运行、监测与管理工作。
第三,未来十年,物联网将会被广泛应用于交通、物流、安防、电力、家居、医疗、矿业、军事等各个领域。可以预见,它将给世界经济与社会带来巨大的变化。由此来看,物联网专业人才的就业前景及就业方向是广阔的。
2020年国家会议召开,加快推动新基建建设,各产业进行数字化的转型,进行智能产业化的升级,以5G为核心的物联网蓬勃发展。互联网时代已经进入到了“物联网”时代。
01
嵌入式应用的发展前景
“物联网”让所有的物品都具有计算机的智能但不以计算机的形式出现,并把这些物品与网络连接在一起,这就需要嵌入式技术的支持。
嵌入式是一个低调的领域,但是又无处不在。它功能很强大,领域很广阔。所有带有数字接口的设备,如手表、 汽车 等,都会使用到嵌入式系统。
嵌入式系统在IoT的应用随着市场的发展,可以说是是越来越广。编程不单单是在IT行业广泛应用,在当代 社会 中,各个行业间相互影响,相互渗透早已不是什么稀奇事了,而嵌入式系统也应时代的需求在各个行业中充当着重要的角色。
嵌入式技术近年来得到了飞速的发展,就业前景广阔很多行业都可以用到它。随着行业的发展,市场对嵌入式方向的人员需求逐渐增多,薪资也是水涨船高,尤其是尤其是中高端开发岗位数量明显增多。
据统计:目前全国嵌入式工程师平均薪资可达近10K,其中薪资在15k-20k之间的占比有246%。而一线城市,如北京、上海、深圳等地,嵌入式工程师平均薪资更是高达20000元/月以上。由此可见,不管是现在还是未来,嵌入式工程师或将成为企业发展不可或缺的一部分。
02
嵌入式开发在哪里可以运用?
工业物联网
机器、设备和人的连接需要在工业互联网内完成,工业物联网不断发展需要嵌入式系统的更新。AI+IoT将成为未来产业成长的动能,因此嵌入式硬件系统平台作为发展工业物联网第二、三阶段的基石,必须能以融合人工智能及物联网的解决方案来应对市场需求。
农业物联网
嵌入式系统现在广泛运用于农业当中,通过分析设备的工作情况,通过传感器和仪器的使用,实现高效运作。
我国是农业大国,物联网技术的成熟带动农业物联网终端产品发展,养殖物联网系统、智能大棚、自动水肥一体化等日益成熟,大大促进了农业生产智能化。现在各种以嵌入式为特征智能终端产品屡见不鲜。嵌入式系统不断被应用于生活之中,改变着人们的生活,推动着工农业的发展。
世界上许多发达国家拥有着高度发达的养殖业。这些发达国家的养殖业,均有着高技术、低人工,高产能,低消耗等特点。这其中,高技术的 科技 力量已经成为现代化养殖场一个关键性的指标。我国的养殖业以前只是“后院养殖”的副业,经过40年的发展,从后院养殖的副业到独立的产业,从传统养殖到机械化设备养殖、加工、包装的现代化养殖,形成规模化养殖,成为我国农业的主要组成,带动农业经济快速发展。
所谓智能化养殖,利用物联网技术,围绕设施化畜禽养殖场生产和管理环节,通过智能传感器在线采集养殖场环境信息(二氧化碳、氨气、硫化氢、空气温湿度等),同时集成改造现有的养殖场环境控制设备,实现畜禽养殖的智能生产与科学管理。
医疗物联网
现在先进的医疗技术都逐步实现AI技术化,而在医疗技术进步中,嵌入式系统扮演者不可替代的角色。嵌入系统为医疗信息化提供便捷的操作系统,提高医护人员的技术水平,减轻医疗工作者的负担。
在医院临床上,物联网应用在移动护理条码扫描系统、移动门诊输液管理系统、婴儿防盗系统、患者生命体征动态监测系统等;在医院运营管理体系上,物联网应用于消毒供应中心质量追溯系统、科室物资管理系统、医疗废物管理系统、手术器械清点系统等。
03
嵌入式系统的安全性
自嵌入式系统诞生以来,关于什么是嵌入式系统一直存在争议。早期的定义是:“嵌入式系统是一个您甚至都不知道的系统,直到它停止工作为止。”
在物联网,工业物联网和人工智能的当今时代,其中所有事物都直接或通过云连接到其他事物,术语“嵌入式系统”是与大部分等同于“物联网设备,”没有什么可以被认为是安全的,而且一切都必须保证安全。
每年连接到Internet的设备数量呈指数增长。预计到2035年将有超过1万亿个连接的设备,而这些设备中每一个都需要的一件事就是安全性。幸运的是,可以使用解决方案,使开发人员可以使用商业和开源工具保护其嵌入式和物联网设备从端点到云的安全。
如今,随着行业的发展,人才资源的稀缺是必然的结果,有越来越多的学生选择嵌入式开发等专业。而这些高素质人才也将出现在各行各业中,让IT不再是一个独立的行业,而是作为各行各业沟通以及联系的桥梁,让各个行业工作效率更高效,联系更紧密。
本实验采用W25Q64芯片
W25Q64是华邦公司推出的大容量SPI
FLASH产品,其容量为64Mb。该25Q系列的器件在灵活性和性能方面远远超过普通的串行闪存器件。W25Q64将8M字节的容量分为128个块,每个块大小为64K字节,每个块又分为16个扇区,每个扇区4K个字节。W25Q64的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。所以,这需要给W25Q64开辟一个至少4K的缓存区,这样必须要求芯片有4K以上的SRAM才能有很好的操作。
W25Q64的擦写周期多达10W次,可将数据保存达20年之久,支持27~36V的电压,支持标准的SPI,还支持双输出/四输出的SPI,最大SPI时钟可达80Mhz。
一。SPI接口原理
(一)概述
高速,全双工,同步的通信总线。
全双工:可以同时发送和接收,需要2条引脚
同步: 需要时钟引脚
片选引脚:方便一个SPI接口上可以挂多个设备。
总共四根引脚。
(二)SPI内部结构简明图
MISO: 做主机的时候输入,做从机的时候输出
MOSI:做主机的时候输出,做从机的时候输入
主机和从机都有一个移位寄存器,在同一个时钟的控制下主机的最高位移到从机的最高位,同时从机的最高位往前移一位,移到主机的最低位。在一个时钟的控制下主机和从机进行了一个位的交换,那么在8个时钟的控制下就交换了8位,最后的结果就是两个移位寄存器的数据完全交换。
在8个时钟的控制下,主机和从机的两个字节进行了交换,也就是说主机给从机发送一个字节8个位的同时,从机也给主机传回来了8个位,也就是一个字节。
(三)SPI接口框图
上面左边部分就是在时钟控制下怎么传输数据,右边是控制单元,还包括左下的波特率发生器。
(四)SPI工作原理总结
(五)SPI的特征
(六)从选择(NSS)脚管理
两个SPI通信首先有2个数据线,一个时钟线,还有一个片选线,只有把片选拉低,SPI芯片才工作,片选引脚可以是SPI规定的片选引脚,还可以通过软件的方式选择任意一个IO口作为片选引脚,这样做的好处是:比如一个SPI接口上挂多个设备,比如挂了4个设备,第二个用PA2,第三个用PA3,第四个用PA4作为片选,我们
跟第二个设备进行通信的时候,只需要把第二个片选选中,比如拉低,其他设备的片选都拉高,这样就实现了一个SPI接口可以连接个SPI设备,战舰开发板上就是通过这种方法来实现的。
(七)时钟信号的相位和极性
时钟信号的相位和极性是通过CR寄存器的 CPOL 和 CPHA两个位确定的。
CPOL:时钟极性,设置在没有数据传输时时钟的空闲状态电平。CPOL置0,SCK引脚在空闲时为低电平,CPOL置1,SCK引脚在空闲时保持高电平。
CPHA:时钟相位 设置时钟信号在第几个边沿数据被采集
CPHA=1时:在时钟信号的第二个边沿
CPOL=1,CPHA=1,
CPOL=1表示时钟信号在没有数据传输时即空闲时的状态为高电平。如果CPHA=1,那么数据就在时钟信号的第二个边沿即上升沿的时候被采集。
CPOL= 0,CPHA=1, CPOL=0表示时钟信号在没有数据传输时即空闲时的状态为低电平。
如果CPHA=1,那么数据就在时钟信号的第二个边沿即下降沿的时候被采集。
CPHA=0时:在时钟信号的第一个边沿
CPOL=1,CPHA=0,
CPOL=1表示时钟信号在没有数据传输时即空闲时的状态为高电平。如果CPHA=1,那么数据就在时钟信号的第一个边沿即下降沿的时候被采集。
CPOL= 0,CPHA=0, CPOL=0表示时钟信号在没有数据传输时即空闲时的状态为低电平。
如果CPHA=1,那么数据就在时钟信号的第一个边沿即上升沿的时候被采集。
为什么要配置这两个参数
因为SPI外设的从机的时钟相位和极性都是有严格要求的。所以我们要根据选择的外设的时钟相位和极性来配置主机的相位和极性。必须要与从机匹配。
(八)数据帧的格式和状态标志
数据帧格式:根据CR1寄存器的LSBFIRST位的设置,数据可以MSB在前也可以LSB在前。
根据CR1寄存器的DEF位,每个数据帧可以是8位或16位。
(九)SPI中断
(十)SPI引脚配置 (3个SPI)
引脚的工作模式设置
引脚必须要按照这个表格配置。
二。SPI寄存器库函数配置
(一)常用寄存器
(二)SPI相关库函数
STM32的SPI接口可以配置为支持SPI协议或者支持I2S音频协议。默认是SPI模式,可以通过软件切换到I2S方式。
常用的函数:
1 void SPI_Init(SPI_TypeDef SPIx, SPI_InitTypeDef
SPI_InitStruct);//SPI的初始化
2 void SPI_Cmd(SPI_TypeDef SPIx, FunctionalState NewState); //SPI使能
3 void SPI_I2S_ITConfig(SPI_TypeDef SPIx, uint8_t SPI_I2S_IT,
FunctionalState NewState); //开启中断
4 void SPI_I2S_DMACmd(SPI_TypeDef SPIx, uint16_t SPI_I2S_DMAReq,
FunctionalState NewState);//通 过DMA传输数据
5 void SPI_I2S_SendData(SPI_TypeDef SPIx, uint16_t Data); //发送数据
6 uint16_t SPI_I2S_ReceiveData(SPI_TypeDef SPIx); //接收数据
7 void SPI_DataSizeConfig(SPI_TypeDef SPIx, uint16_t SPI_DataSize);
//设置数据是8位还是16位
8 其他几个状态函数
void SPI_Init(SPI_TypeDef SPIx, SPI_InitTypeDef
SPI_InitStruct);//SPI的初始化
结构体成员变量比较多,这里我们挑取几个重要的成员变量讲解一下:
第一个参数 SPI_Direction 是用来设置 SPI 的通信方式,可以选择为半双工,全双工,以及串行发和串行收方式,这里我们选择全双工模式
SPI_Direction_2Lines_FullDuplex。
第二个参数 SPI_Mode 用来设置 SPI 的主从模式,这里我们设置为主机模式 SPI_Mode_Master,当然有需要你也可以选择为从机模式
SPI_Mode_Slave。
第三个参数 SPI_DataSiz 为 8 位还是 16 位帧格式选择项,这里我们是 8 位传输,选择SPI_DataSize_8b。
第四个参数 SPI_CPOL 用来设置时钟极性,我们设置串行同步时钟的空闲状态为高电平所以我们选择 SPI_CPOL_High。
第五个参数 SPI_CPHA
用来设置时钟相位,也就是选择在串行同步时钟的第几个跳变沿(上升或下降)数据被采样,可以为第一个或者第二个条边沿采集,这里我们选择第二个跳变沿,所以选择
SPI_CPHA_2Edge
第六个参数 SPI_NSS 设置 NSS 信号由硬件(NSS 管脚)还是软件控制,这里我们通过软件控
制 NSS 关键,而不是硬件自动控制,所以选择 SPI_NSS_Soft。
第七个参数 SPI_BaudRatePrescaler 很关键,就是设置 SPI 波特率预分频值也就是决定 SPI 的时
钟的参数 , 从不分频道 256 分频 8 个可选值,初始化的时候我们选择 256 分频值
SPI_BaudRatePrescaler_256, 传输速度为 36M/256=140625KHz。
第八个参数 SPI_FirstBit 设置数据传输顺序是 MSB 位在前还是 LSB 位在前, ,这里我们选择
SPI_FirstBit_MSB 高位在前。
第九个参数 SPI_CRCPolynomial 是用来设置 CRC 校验多项式,提高通信可靠性,大于 1 即可。
设置好上面 9 个参数,我们就可以初始化 SPI 外设了。
初始化的范例格式为:
SPI_InitTypeDef SPI_InitStructure;
SPI_InitStructureSPI_Direction = SPI_Direction_2Lines_FullDuplex;
//双线双向全双工
SPI_InitStructureSPI_Mode = SPI_Mode_Master; //主 SPI
SPI_InitStructureSPI_DataSize = SPI_DataSize_8b; // SPI 发送接收 8 位帧结构
SPI_InitStructureSPI_CPOL = SPI_CPOL_High;//串行同步时钟的空闲状态为高电平
371
SPI_InitStructureSPI_CPHA = SPI_CPHA_2Edge;//第二个跳变沿数据被采样
SPI_InitStructureSPI_NSS = SPI_NSS_Soft; //NSS 信号由软件控制
SPI_InitStructureSPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256; //预分频
256
SPI_InitStructureSPI_FirstBit = SPI_FirstBit_MSB; //数据传输从 MSB 位开始
SPI_InitStructureSPI_CRCPolynomial = 7; //CRC 值计算的多项式
SPI_Init(SPI2, &SPI_InitStructure); //根据指定的参数初始化外设 SPIx 寄存器
(三)程序配置步骤
三。W25Qxx配置讲解
(一)电路图
片选用的PB12
W25Q64 是华邦公司推出的大容量SPI FLASH 产品,W25Q64 的容量为 64Mb,该系列还有 W25Q80/16/32
等。ALIENTEK 所选择的 W25Q64 容量为 64Mb,也就是 8M 字节。(1M=1024K)
W25Q64 将 8M 的容量分为 128 个块(Block),每个块大小为 64K 字节,每个块又分为 16个扇区(Sector),每个扇区 4K
个字节。W25Q64 的最少擦除单位为一个扇区,也就是每次必须擦除 4K 个字节。这样我们需要给 W25Q64 开辟一个至少 4K 的缓存区,这样对 SRAM
要求比较高,要求芯片必须有 4K 以上 SRAM 才能很好的操作。
W25Q64 的擦写周期多达 10W 次,具有 20 年的数据保存期限,支持电压为 27~36V,W25Q64 支持标准的
SPI,还支持双输出/四输出的 SPI,最大 SPI 时钟可以到 80Mhz(双输出时相当于 160Mhz,四输出时相当于 320M),更多的 W25Q64
的介绍,请参考 W25Q64 的DATASHEET。
在往一个地址写数据之前,要先把这个扇区的数据全部读出来保存在缓存里,然后再把这个扇区擦除,然后在缓存中修改要写的数据,然后再把整个缓存中的数据再重新写入刚才擦除的扇区中。
便于学习和参考再给大家分享些spi 的资料
stm32之SPI通信
>
嵌入式系统技术是综合了计算机软硬件、传感器技术、集成电路技术、电子应用技术为一体的复杂技术。经过几十年的演变,以嵌入式系统为特征的智能终端产品随处可见;小到人们身边的MP3,大到航天航空的卫星系统。嵌入式系统正在改变着人们的生活,推动着工业生产以及国防工业的发展。如果把物联网用人体做一个简单比喻,传感器相当于人的眼睛、鼻子、皮肤等感官,网络就是神经系统用来传递信息,嵌入式系统则是人的大脑,在接收到信息后要进行分类处理。这个例子形象的描述了嵌入式系统在物联网行业应用中的位置与作用。
在任何领域,底层基础设施都是至关重要的。对于数字化 社会 ,半导体、操作系统则是整个数字化生态的底层基础设施。中国在芯片和操作系统上实现突破,不仅关乎国家安全,也与中国的数字化产业发展潜力息息相关。
就像一颗大树一样,根扎的越深,树才能长得越高,枝叶才能更加茂盛。从这个角度来看,华为鸿蒙的确是国之重器。上至国家部门,下至黎明百姓,都对鸿蒙寄予厚望。
需要指出的是,鸿蒙一直宣称自己是面向物联网的操作系统,与安卓系统有本质的区别。事实也的确如此,鸿蒙并不是在重复造轮子,而是下一代操作系统。 鸿蒙对标的不是谷歌安卓,而是谷歌的物联网操作系统Fuchsia OS 。那么,鸿蒙与目前的操作系统相比,先进在哪里,鸿蒙是否就是未来操作系统的终点呢?
这篇文章,我们将讨论鸿蒙与目前操作系统的主要差别,描绘鸿蒙想要实现的“理想国”。此外,鸿蒙目前还只是一个半成品,更先进的操作系统,是云操作系统。接下来,我们将展开讨论。
说明:目前很多云厂商都宣称自研了云操作系统,他们所谓的云操作系统,实际上是云资源管理平台,不是真正的操作系统。什么才是云操作系统,目前还不能给一个完整的定义。不过,真正的云操作系统应该要具备以下几个特征:可以直接调度CPU,控制CPU计算进程;融合了目前的计算节点管理与单服务器操作系统,在云数据中心实现计算资源的自由调度;整个操作系统横跨云服务器、边缘计算服务器、智能设备三端,实现云边端的协同;操作系统上的应用程序主要部署在云服务器,基于云原生实现应用开发,并且一处开发,一处部署,多端接入,多端应用。
我们从操作系统的本质入手来讨论其演进的内在逻辑。大体上看,操作系统在整个计算架构中起着承上启下的作用:对下,操作系统的主要作用是控制计算、存储、网络和I/O设备;对上,则支撑应用软件,协助应用软件调用计算、存储等软硬件资源。操作系统还通过I/O设备实现人机交互。比如,电脑的人机交互就是鼠标+键盘作为输入,屏幕作为输出;手机的人机交互,主要的输入和输出介质都是屏幕。此外,还有摄像头、扬声器等输入输出设备。
操作系统的演进,核心就是针对不同的终端计算设备,来变革对软硬件资源的调用方式,更好的支撑上层应用软件,提供更友好的人机交互方式。
对数据的计算、存储、传输,是整个计算体系的核心,计算机的发展也都是围绕这三个方面来开展的。总体上,计算体系的演进是两条腿走路:一方面,芯片本身提供的计算能力在飞速发展, 以前是CPU的摩尔定律主导,现在则是以AI为核心的异构计算挑大梁,终极形态就是量子计算芯片 。存储芯片也实现了很大的技术进步,存储能力大幅提升。另一方面,传输技术尤其是无限传输技术的进步,则改变着整个计算体系的资源组织方式。最典型的就是数据传输能力的提升,拉近了数据中心与智能终端的“距离”,催生出云计算这种新的计算资源组织方式。云计算并没有提升整个体系的计算能力,而是通过重新组织提升了整个体系的资源利用效率。
传输能力并不是线性增长,而是阶梯式发展的。无限通信技术历经1G/2G/3G/4G,目前正在进行5G通信网络的建设。几年之后,整个 社会 的数据传输能力会得到一次质的飞跃。在整个计算体系中,计算、存储、传输是紧密相关的,传输能力的提升会改变计算、存储资源的组织方式。更大的带宽、更低的延迟,进一步拉近了数据中心(包括边缘计算中心)与智能终端的距离,计算、存储资源会在智能终端和数据中心之间进行重新分配。 一旦整个传输网络可以支撑数据中心和智能终端之间进行大量数据的实时传输,那么计算、存储资源就会向云端集中,终端则“退化”为一个人机交互界面 。手机、电脑的核心是人机交互,只需要保留屏幕、键盘、鼠标等输入输出设备和数据传输设备,无需再保留CPU、存储芯片(即使会保留部分计算、存储能力,低端芯片就完全够用)。智能终端输入数据,传输到云端进行计算、存储,然后传输到终端进行显示。
面对数据中心-智能终端组成的新计算体系,计算、存储、I/O进行了重新分配,在物理上分离开了。这个时候,操作系统就需要横跨数据中心和智能终端,根据需要调用相应的计算资源。并且,由于数据中心的服务器承担了大部分的计算、存储功能,对数据中心资源的调配则成为新操作系统的核心。相对而言,对电脑、手机这些终端的调配则显得没那么重要了。
相对于安卓操作系统,鸿蒙并不是重复造轮子,是有重大创新的。最核心的创新就是致力于通过软总线来替换硬总线。在以前的操作系统中,无论是电脑端的Windows系统,还是手机端的Android、IOS系统,在通信线路上都是硬总线。在一整个电路板上通过物理的实体电路来连接各个计算单元(包括计算、存储、I/O),实现各部分数据的传输。
实体电路在空间上有很大限制,如果能够通过无线电磁波来进行各个计算单元的数据传输,就可以在空间上大大解放智能终端。各个计算单元不再必须安装在一个电路板上,在空间上可以实现分离。如果再通过标准化将各个计算单元进行解耦,进而实现不同计算单元的自由组合,这一下子就打开了智能计算的想象空间。如果将几台电脑、手机放在一起,对于以前的操作系统,这些智能设备都是独立的个体,一个系统操作一台设备,不同设备之间没有联系;而 对于鸿蒙操作系统而言,他们不再是独立的设备,而是一堆可以利用的计算单元,是一堆CPU、存储,系统可以根据需要来自由组合这些计算单元 。比如,要运行一个大型 游戏 ,一台电脑的配置不够,就调动周围几台电脑、手机的CPU组成一个计算资源池,共同支撑计算需求。
除了对计算、存储资源的自由调度,软总线技术在I/O设备上有更大的应用潜力。过去几十年,由于芯片制造工艺的快速发展,总体遵循摩尔定律,计算机在CPU、存储上取得很大的提升,以至于现在一台手机提供的计算能力,就超过以前的超级计算机。但是,在I/O设备方面却进展缓慢。除了键盘、鼠标、屏幕,电脑上就增加了一个摄像头和扬声器。很长一段时间,更高像素的摄像头是智能手机厂商之间实现差异化的关键。 如果把智能计算设备与人进行类比,CPU相当于大脑,各种I/O设备相当于四肢,则计算机可谓一直处于“头脑发达,四肢简单”的状态 。
之所以会如此,就是因为不同计算单元需要用硬总线来进行连接。比如,手机摄像头必须要安装在手机上,因而摄像头不能做的很大。如果通过软总线技术,如果把摄像头“拆下来”呢?智能手机只承担核心的计算、存储、显示、交互功能,其他功能通过各种专用设备实现,然后通过电磁波将专用设备与手机连接起来,这些专用设备就像“装在手机里”一样。这种情况下,手机摄像头就解除了物理限制,可以把像素做的很高,甚至与单反相机媲美(事实上,可以直接将单反相机与手机连接起来)。更进一步,为什么不能将手机、电脑与天文望远镜连接起来呢?通过手机、电脑操控望远镜,把看到的美景实时记录下来,还可以分享给好友,或者进行在线直播。
通过软总线技术,鸿蒙操作系统可以让计算机的“四肢”异常的发达。 鸿蒙系统可以“穿透”智能设备,直接利用设备内部的计算、存储、感知单元。在鸿蒙的“眼里”,面对的不再是一个个独立的智能设备,而是一堆可以自由组合的计算模块。 手机、电脑,可以很轻易的与打印机、摄像机、微波炉、电视、空调、洗衣机、冰箱、 汽车 、电表、水表、体重秤、跑步机等设备进行连接。手机是“大脑”,其他设备则是“四肢”。
为什么以前没想到要用软总线来代替硬总线呢?因为以前的无线通信技术很不成熟。总体上看,通过物理线路来进行数据传输,在带宽、传输速度上还是有很大优势。软总线要替换硬总线,就必须要扩大数据传输的带宽,同时提升传输速率,降低延迟,这也是华为鸿蒙系统能否成功的关键。以目前的情况来看,鸿蒙只能说还在路上,软总线技术取得了一些突破,但要完美替换硬总线,依然还有一定距离。
依据相关数据,目前华为鸿蒙的软总线,已经达到18G的带宽、10毫秒延迟、35%的抖动。 10毫秒的延迟,对于一些实时性要求不高的业务场景还可以接受,但对于一些实时控制系统显然还是不够的。所以,鸿蒙接下来的关键就是把数据延迟压下去,把带宽提升来。 这肯定是有很大的技术难度,会涉及到WIFI、蓝牙等通信协议的大幅度修改。如果上述技术指标能够接近硬总线,鸿蒙软总线所带来的优势就会得到释放。依据华为内部的说法,他们目前正致力于攻克分布式计算,有望将软总线的时延压低到微秒级。如果真的可以实现,那鸿蒙必将大放异彩,中国的国产操作系统也才迎来了真正的春天,我们拭目以待吧。
虽然鸿蒙相比于上一代操作系统,已经实现了很大的进步(或者说致力于实现很大的进步,关键在于软总线是否能在时延、带宽上赶上甚至超越硬总线)。但是,鸿蒙很可能不是下一代操作系统的理想形态。与鸿蒙相比,云计算操作系统更具有发展潜力。
那么,云操作系统与鸿蒙操作系统的关键区别是什么呢?
鸿蒙虽然比安卓更进一步,但本质上还是一个本地化的操作系统,核心功能也是调配终端设备的计算资源。 所以,鸿蒙需要安装在手机、电脑、电视这种终端设备上。与之相比,云操作系统则是安装在数据中心的服务器上。或者说,云操作系统的主体在服务器上,终端设备上的系统只是起辅助作用。
云操作系统的核心也在软总线(我们暂且将其定义为软总线,即通过无线通信方式连接不同计算单元),只是其软总线的载体是5G构建的广域网;与之相比,鸿蒙软总线的核心是蓝牙、WIFI等近场通信构建的局域网。在传输领域,有线宽带和无线通信是竞合关系。在无线通信内部,1G~5G网络,也和蓝牙、WIFI存在竞合关系。上一代主要是4G网络与WIFI的竞争,下一代则是5G网络与WIFI的竞争。总体上,大家更看好5G网络。云操作系统将主要建立在5G基础上,有线宽带、WIFI、蓝牙也会发挥作用。
数据的计算、存储由数据中心(包括边缘数据中心)的服务器来完成,智能终端主要保留两个功能,数据收集和人机交互。云操作系统横跨云端服务器和智能终端来实现资源调配。要实现这个目标,关键是5G网络在带宽、时延、稳定性这些技术指标上能否达到硬总线的水平。与4G基站不同,5G将是宏基站与微基站(甚至更小的皮基站)相互配合,微基站或者皮基站其实就相当于室内WIFI。 从理论上来看,核心光通信网络+5G宏基站+5G微基站+皮基站,是可以实现对整个数据传输链路的全覆盖的。云操作系统也必然是基于5G,将5G通信网络作为其“软总线”的载体。
当然,以上只是对理想情况的设想。 目前,无论是5G还是云计算,都还处于初级发展阶段,5G技术还没成熟,5G网络覆盖也远未完成。尤为关键的是,5G网络在带宽、延迟这些技术性能上与硬总线相比还存在不小的差距。总体上看,5G和云计算的技术发展很快,协同效应越来越明显。 通过5~10年的时间,5G的带宽、延迟指标会得到大幅度提升,5G网络的建设也基本成熟。再加上边缘计算的发展,云数据中心-边缘计算中心-智能终端,将形成紧密配合的计算体系,届时就可以支撑云操作的发展。
我们不妨大胆设想一下,加入实现了云操作系统,整个计算体系会面临什么样的变革。云操作与原来的操作系统有什么不同,与鸿蒙所代表的物联网操作系统又有什么不同。云操作系统可以实现鸿蒙系统的一系列设想,而且可以比鸿蒙做的更好。下面,我们来具体分析。
下一代操作系统一定是面向物联网的,需要基于物联网设备来进行设计。在物联网领域有一个根本的难题——如何平衡设备智能化与成本控制?
某种程度上,计算能力就是智能程度。一个设备能够提供的算力越强,能够解决的问题就越多。计算能力的主要载体是芯片,越强的芯片越贵。 按照以往的逻辑,要对一台设备进行智能化改造,核心就是通过嵌入更强大的芯片来让其具备计算能力,这必然会大幅增加设备的成本。
在为物联网设计操作系统时,有两个因素需要重点考虑:
物联网设备数量巨大,因此必须降低成本。 如果每台物联网设备都安装芯片,这样的成本是难以承受的。试想一下,台灯、冰箱、空调,甚至水表、电表,都安装CPU和存储芯片,这些设备的价格必然会大幅度上升(目前物联网设备中的各种嵌入式芯片计算能力较弱,比电脑、手机芯片所能提供的计算能力小很多,因而其智能化程度有限)。
物联网设备的核心在于感知和控制,不在于计算。 未来,不仅家庭里会有各种智能设备,城市中也会密布各种传感器来监控城市的水、电、气等供应体系的状态。这些物联设备,核心作用是传感器和控制器,一方面将感知到的图像、电压等数据传入系统,另一方面依据指令来进行相应的操作,比如关闭阀门、调整摄像头角度等。
基于物联网设备的特点,要解决上述成本与智能化的矛盾,最好的办法就是将计算与感知、操控分离开来:物联网终端承担数据感知和操控的功能,把数据计算功能放到云端或者边缘计算端来完成。通过云操作系统,物联网设备可以安心做“四肢”,而将“大脑”放在云端或边缘端的服务器上。物联网设备上不用安装昂贵的芯片,依然可以获得强大的数据计算能力,以此来实现低成本的智能化改造。
将数据计算功能从物联网终端剥离出来,还有一个很重要的作用,那就是推动物联网设备在计算上的标准化。
我们知道,操作系统跟计算芯片是高度耦合的。电脑上的微软操作系统+英特尔芯片,手机端的安卓系统+高通芯片都是如此。操作系统往往与芯片相互配合,共同演进。无论是英特尔的电脑芯片,还是高通的手机芯片,都是高度标准化的。与之不同,物联网设备中的嵌入式芯片却是各式各样、千差万别,这就为操作系统的发展设置了很大的障碍。如果在芯片上不能实现统一,要用一套操作系统去适配多种多样的物联网芯片,系统性能必然会大打折扣。
如果通过云边端协同的方式,把物联网设备的计算芯片统一放到云端或者边缘端的服务器上,则可以很好地解决这个问题。服务器上的芯片是可以做到高度统一的,云操作系统只需要适配云服务器上的芯片。操作系统是调用硬件资源来完成计算任务,如果将计算任务集中到云端,那就屏蔽了本地终端设备的差异性。在云操作系统看来,无论是电脑、手机、平板还是车机、电视,本质上都是一块屏幕,操作起来都一样。
鸿蒙+物联网嵌入式芯片,只是一种过渡方案,终极方案还是云操作系统+云端标准计算芯片的方式。当然,实现上述的云边端协同是一条漫长的道路。在未来几年内,物联网上的嵌入式芯片依然会是主流方案。 这种情况下,华为的鸿蒙系统就不得不要去兼容各种各样的嵌入式芯片,这是一个很大的难题。 不过反过来看,通过鸿蒙系统来倒逼物联网芯片的标准化,也可以推动我国芯片和物联网产业的发展,这也算鸿蒙的一大贡献。
以上从硬件计算资源的调度方面来分析云操作系统的优势。下面,我们从应用软件的角度来看看云操作系统可能的未来。
在计算架构中,操作系统与芯片耦合,应用软件则与操作系统耦合。同样的一个应用软件,如果要从一个操作系统迁移到另一个操作系统,需要重新开发。比如电脑端的微信和手机端的微信,虽然功能都一样,腾讯却要要基于Windows和安卓系统开发两次。同样在移动端,微信也要基于苹果的IOS系统再开发一次。 功能都一样,却因为不同的操作系统重复开发多次,这无疑是巨大的浪费。 试想一下,面对各式各样的物联网设备,如果软件厂商也要对不同的设备进行多次开发,那简直不能忍受。
所以,一次开发,多端适配,是物联网操作系统的刚需,这也是鸿蒙尽力要实现的目标。操作系统是与计算芯片耦合的,面对多样化的嵌入式物联网芯片,鸿蒙必然要做出一些个性化适配,上面承载的应用软件也要做出相应的适配,这会增加一些开发难度。如果强行屏蔽底层芯片的差异,很可能会损害系统的性能,表现出来就是系统容易卡、稳定性差。
如果是云操作系统,由于计算芯片本身就是统一的,云操作系统主体部署在云端服务器上。相应的,上层应用的主体也部署在云服务器上。终端设备就是一个人机交互界面,大部分情况就是一块触摸显示屏(在部分场景中再加上语音交互)。终端智能设备是一个访问云端应用的入口。无论是从手机、电脑还是电视、车机,甚至是从电冰箱、电梯广告屏幕上访问,接入的都是云端的同一个应用软件。这天然就没有应用适配的问题。
鸿蒙想要实现的是一处开发多端部署。而云操作系统可以实现的是一处开发,一处部署,多端应用。这种方式,在应用软件的标准化、性能表现等方面,比多端部署的方案更优。
我们以一个应用场景来举例说明:
华为鸿蒙项目负责人在一次媒体采访中提到,鸿蒙的目标是让应用跟着人走,而不是锁定在特定的设备上。比如,当用户用手机与家人进行视频通话时,不用一直拿着手机,当用户走到客厅的时候,视频电话就自动接到电视上。这如果能实现,真的是一个很大的进步。现在的操作系统,别说手机和电视打通,就是手机与平板电脑都不能打通。
在这个方案中,手机和电视都安装了鸿蒙系统,这毕竟是两个独立的设备,视频应用需要从手机传到电视上。我们用传球来做类比:面对一个运动的人,如何更好地把球传到他手里呢?目前的安卓、IOS操作系统,球只能锁定在一个人手里,如果用户离开这个是没办法拿到球的;鸿蒙要实现的是,有多个人进行相互传球,当用户离开A走到B附近时,A就把手里的球传给B,然后B再把球传给用户;云操作系统的解决方案是,球依然只在A手里,但A站的比较远,传球能力很强,无论用户走到那里,他都可以把球直接传过去。这样,就省去了中间把球从A传到B的过程。
目前,云计算的重心,已经从基础设施的虚拟化转向云原生应用的开发。云原生应用的目标就是一处开发,多端应用。 届时,本地终端是只是一个网络接入和人机交互的设备,并不需要部署应用。每个人有特定的应用账户,这个账户与其生物特征绑定(比如人脸、指纹),从任何终端都可以轻易接入云端应用中心,真正实现应用随人走。
电脑、手机作为个人应用的私密性将大大降低。每个人的电脑、手机之所以私密性强,最关键的是很多数据存储在本地端,并且,每个人下载的应用软件也不同,桌面的布局也独具特色。自己电脑用习惯了,别人的电脑用起来就总会感觉别扭。在云操作系统时代,这一切都会改变。本地终端几乎不再存储数据,别人拿着你的电脑,只要不能登录你的账户,也看不到你的任何信息。此外,云端不仅存储个人数据,也会存储你的电脑和手机桌面,你安装了什么软件,这些软件如何布局的,都可以完整的还原出来。
电脑、手机本质上就是一块屏幕,跟安装在 汽车 、冰箱、洗衣机上的屏幕没什么区别,都只是接入云数据中心的一个入口而已。 当你自己没带电脑,借用同事电脑办公时,只需登录自己的云端账户,同事电脑桌面立马跟你的一模一样。用完退出账户之后,你的一切使用记录在本地端都消失了(实际上本地端本来就没有做任何数据记录,只是一个显示屏)。你挥一挥衣袖,不带走一片云彩,你和你的同事都没有数据安全的担忧。
更进一步的,大部分设备都退化为屏幕后,设备本身的价值就大大降低了,整个智能硬件的商业模式将发生根本的变革。手机、电脑终端由于不再追求高配置的计算和存储芯片,成本大幅度降低,进而这些电子产品的价格大幅度降低。原先6000元的电脑、手机,也许只需要2000元。另一方面,消费者虽然不需要买芯片,但需要为使用芯片付费。依据对计算、存储、网络资源的消耗量,以及使用的时间来进行付费。比如,用1000元的手机可以玩王者荣耀,看4K**,但是每小时需要付费1元钱。 与企业端的云服务类似,个人消费者市场也全面进入云服务时代。
这对于用户也是有好处的:在C端的计算领域也实现“以租代售”,不用一次性付出几千元来购买昂贵的电子设备,有助于改善用户现金流;用户可以获得几乎无限的计算能力,突破单台设备的算力限制。当需要运行大型 游戏 的时候,可以获得超高的算力配置,并且只为这一段时间付费。单个用户只要愿意付费,可以通过获得目前超级计算机一样的计算能力。
如果将应用部署在云端,实现应用随人走,届时,各种触摸屏可能在城市中随处可见(毕竟,只是一块屏幕,成本比电脑要低很多),这些屏幕可以作为共享计算机。用户可以通过指纹识别、人脸识别等方式,在任何屏幕上便捷地登陆自己的云端账户,将这块屏幕变成自己的计算机。使用完毕退出账户后,设备上不会留有任何痕迹,也没有数据泄露的风险。这对于经常需要移动办公的人而言,会带来巨大的便利,他们不用再背着一台电脑到处跑,因为“电脑”随处可见,用完即走。
综上, 鸿蒙比目前的安卓系统更进一步,但依然不是最终的方案。 需要指出的是,云操作系统是需要一定的前提条件的,5G网络要足够成熟强大,云边端协同体系已经完备,这需要很长的时间来完善。在这个过程中,鸿蒙系统不失为一种很好的方案。
最后,我们再来看看在云操作系统领域,都有哪些玩家。大体来看,云操作系统会有三类玩家:以往的操作系统企业,领先的云计算企业,互联网应用巨头。
操作系统本身具有一定的连续性,微软、谷歌、苹果这类操作系统厂商,在云操作系统领域依然会是重要玩家,并且,他们依然具有很强的竞争优势。尤其是微软,其服务器操作系统占据最大的市场份额,会慢慢向真正的云操作系统演进。华为目前已经推出了鸿蒙,虽然鸿蒙不是终极的云操作系统,但却是目前最好的物联网操作系统。通过鸿蒙进化成云计算操作系统,也比安卓等系统更方便。并且,鸿蒙在软总线技术上有积累,再加上华为领先的5G,华为云也具有不熟的实力,因而华为鸿蒙是未来云操作系统的有力竞争者。
除了操作系统企业,头部云计算巨头也是未来云操作系统的有力竞争者。(再次说明下,目前云厂商所声称的云操作系统,实际上是云资源管理平台,还不是真正的云操作系统)。阿里云、AWS、谷歌云等,将其目前所谓的云操作系统进行升级,做成真正的操作系统,也未可知。
此外,还存在一类云操作系统玩家,那就是个别互联网应用巨头。最典型的就是腾讯(微信),其次是阿里巴巴(钉钉)。以微信为例,通过小程序,把自己变成一个应用开发平台,微信本身操作系统化。微信账户就是云操作系统的账户,登陆微信然后打开各种小程序,跟登陆云桌面打开各种应用软件类似。因此,微信也是操作系统的重要玩家。此外,钉钉也在逐步把自己变成开发平台,也在操作系统化。
在未来的云操作系统之争中,中国将是美国的有力竞争者。国内华为、阿里巴巴、腾讯,都将是重要玩家。可以预见,未来的操作系统,不再只是美国的企业的天下。中国操作系统的自主化,是值得期待的。
文:凝视深空 / 数据猿
以上就是关于物联网嵌入式开发(硬件方向)需要什么功底,都需要懂得是技术全部的内容,包括:物联网嵌入式开发(硬件方向)需要什么功底,都需要懂得是技术、物联网跟嵌入式有什么关系呢、物联网嵌入式就业前景等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!