随着ARM芯片的出货量越来越多,自信满满的ARM公司统一软硬件平台的战略和雄心壮志越来越凸显。最初ARM公司仅是出售自己的知识产权(IP核)给各大芯片公司,由于最初ARM公司处于劣势,所以给芯片厂商很大的自主权,在ARM7、ARM9和ARM11芯片时代,我们知道每家芯片的地址空间,寄存器操作各异,大不相同,也只能在代码编译的时候才能发现ARM公司的存在。随后ARM公司推出了Cortex系列的芯片,就如我以前文章所提及,其志不小:“对早已经被绑入其战车的各大芯片厂商,又勒紧了一下枷锁,对ARM最新的内核的架构做了进一步限定,如对SysTick、NVIC和FMSC芯片设计的限定。特别是CMSIS接口的标准推出,简直是卡住了各大芯片厂商的脖子,他们不加入这种计划,难免被边缘化,加入了,难免沦为ARM公司的一个生产车间。”

不知道是ARM公司成全了安卓系统(Android),还是安卓系统成全了ARM。在嵌入式领域和PC领域最大的不同就是,嵌入式芯片和X86芯片不同,X86主要有英特尔(Intel)公司把持,所以微软+英特尔软硬结合,很容易一统天下。而嵌入式芯片(32/64位芯片主要就是ARM芯片了)领域属于群雄割据的时代(不过现在高通公司有后Intel王者的气概),各个厂商基本是各自为政,每家芯片的寄存器操作相差比较大,所以对运行其上的操作系统开发者来说,难度很大(所以目前针对操作系统底层的BSP,基本都是芯片厂商自行开发提供)。ARM公司推出Cortex的芯片,及CMSIS等接口标准的努力,就是简化或者说降低这种开发难度,为统一芯片硬件平台打下坚实的基础。

从目前的形势来看,在嵌入式领域,偏软的方面安卓系统已经取代了微软的历史地位。偏硬的芯片方面是不是高通公司?个人认为ARM公司内心绝不会让一家芯片公司独大的,所以ARM公司从近似春秋战国的西周王朝时代,回归东周统一王朝的格局下,继续进行着统一硬件芯片的运作。高通想成为强秦,统一天下的梦想我想绝不会很快来临。

回归正题,谈一谈ARM公司在物联网上的战略布局。

2013年8月27日,ARM公司收购了芬兰物联网软件创业公司Sensinode,将继续推广和深化Sensinode公司的NanoStack、NanoRouter 和 NanoService三大产品。真对此消息,有的网站评论道“看来手机和平板市场的统治地位还不能满足 ARM 的胃口,吞下整个物联网才是它的目标”。

2020年,根据IMS Research的预测,全球联网的设备将有300亿个。ARM的Cortex-M(M0/M3/M4)芯片+ARM的 mbed项目和Sensinode公司的NanoStack、NanoRouter 、NanoService三大产品结合起来,将会从硬件到软件完整的覆盖整个物联网领域(手机和平板一般采用Cortex-A系列的芯片,作为移动互联网的主力,将成为物联网领域必不可少的输入端。另外ARM芯片进军服务器野心,也不可小觑,那是物联网另外一大领域—大数据—重点所在)。

下面就详细介绍一下ARM技术开发大会上《CreatingSecure,Efficient,and Open Standard Iot Systems》的讲座,从题目上来说,是讲“创建安全、高效和开放的标准物联网系统”,至于如何构建,就是采用以上我们所讲述的技术。

我的介绍和ARM技术开发大会上的张先生的讲述有些不同(讲解的顺序不同、着重点不同),我是按照自己的理解,进行说明的。

1、 传感器数据采集– 基于CMSIS的 ARM MBED技术的硬件简易开发

如果你是一个仅有一点开发技术的人,比如会一点C或一点Java,对硬件也是粗略了解一些,那么MBED技术将很快让你进行硬件开发(网上号称60秒让你完成嵌入式编程开发)。

如果你在做硬件原型设计,有不同的芯片去让你选择,或者是对外围的一些器件进行测试研究,那么采用MBED技术将让你这份工作变的轻松简单。

ARM MBED是一个什么样的技术呢?简单的说,它有两点特色,这两点特色分别对芯片提供商(或者说开发板提供商)、软件开发者提供了便利。

第一就是CMSIS,CMSIS就是ARM指定的一套接口框架,通过它,可以屏蔽各家芯片操作的差异。所以针对芯片厂家来说,仅需要实现这些规定的接口就可以了。

第二,对嵌入式开发来说,开发环境的搭建是一个耗时耗力的过程,能成功编写和调试第一个程序,犹如孩子出生一样,不经过一番挣扎和摸索是很难顺利完成的。而MBED技术是一套基于云计算的网页编译工具,可以在Windows、Linux、Mac等各种可以网页浏览的设备上进行编程。所以不需要安装调试工具,只要选好指定的开发板,就立即可以进行编程,编译后直接生成一个bin文件,直接烧写到设备即可运行。

另外的一个优势,由于用户是基于CMSIS的框架接口开发,所以理论上将,你可以很顺利地开发各种厂家的芯片(前提是相关芯片厂商已经提供了CMSIS的支持),不再向以前一样更换不同厂家的芯片是件难以抉择的事。

作为物联网开发来说,你通过AD、串口、SPI、I2C、USB、CAN甚至是以太网接口,用MBED技术很容易把各种传感器数据采集到Cortex-M0/M3设备,采集完毕后,另外一个最重要的环节,就是数据上传。而这一步,就是ARM收购的公司Sensinode的技术优势所在了。

2、 传感器数据上传– 基于CoAP通信协议(NanoStack/NanoRouter)

一直以来,物联网领域最令人头疼的事就是,接口协议繁多,每家都有各自的协议,在这种格局下,收集传感器数据,是件费时费力的事。

而CoAP是一个统一的协议接口,优势不仅仅在于标准统一,而在于对HTTP协议进行了简化,其压缩的数据头仅4个字节。这样在传输过程中,交互的数据量将大大减小,有效地降低了网络通信的负荷。

另外通过协议代理,可以很轻松的把CoAP转换为标准的HTTP协议。

以上不仅仅是ARM一家的标准,由于底层通信基于各种物理链路,所以ARM公司遵照或参与了很多底层标准通信协议的制订。IETF、Sensinode、6LoWPAN,Zigbee IP CoAP,TLS,OMA Lightweight etc等等。

有了MBED作为基础,在Cortex-M0/M3上集成CoAD协议是分分钟钟的事,数据采集和上传在这一步可以说是有效地集成在一起。

3、 数据存储、服务和展示– NanoServer服务支持

通过统一的数据接口,数据收集在NanoServer中,然后借助NodeView Web程序,去浏览去展示相关数据。

4、 小结

通过如下两张图,就可以看到ARM公司的基于IoT物联网领域的技术布局已经亦趋完善了。

MBED技术在最底层,通过标准接口采集各种传感器数据(由于基于CMSIS框架架构,所以各种厂家的芯片,其用户开发代码都是相同的)。

NanoServerClient和NanoStack技术,实现了CoAP通信支持。

NanoServer服务和NodeView进行数据收集和数据服务及展示。

另外这所有的代码、协议标准都是开源的,用户可以自行下载了解。

题外话:从以上介绍看出,ARM自有标准协议、安卓、Java技术在其中占有很很大比重,我从2008年以来就一直参加ARM的会议,一点点看着微软的技术被边缘化,最后完全退出了ARM技术会议的视野,这点替微软惋惜。但是从用户开发角度来看,特别是工控人员开发集成角度来看,微软的开发工具,其本地化界面,开发调试的简易型还是非常有市场的,特别是最近,微软改原来的嵌入式部门为物联网部门,说明还是看好物联网领域,并向这个方向努力发展的。我们所构建的YFIOs/YFHMI(http://blog.csdn.net/yefanqiu/article/details/8423421)技术架构平台,就是基于微软的技术,在Visual Studio 2010/2012开发工具中,用C#进行统一开发。以上技术总总,可以通过封装,直接支持相关协议,但是用户只需要调用相关C#接口即可,当然也可以成为YFIOs驱动的一部分,用户可以直接加载调用。

浅析ARM公司在物联网领域的战略布局(转)的更多相关文章

  1. 浅析ARM公司在物联网领域的战略布局

    From: http://www.cnblogs.com/yefanqiu/p/3447769.html 浅析ARM公司在物联网领域的战略布局 随着ARM芯片的出货量越来越多,自信满满的ARM公司统一 ...

  2. mbed OS - ARM关于物联网(IoT)的战略布局

    关于IoT 在刚刚过去的ARMTECHCON2014(Santa Clara Convention Center)第1天会议,首要的keynote就是ARM针对建立物联网(InternetOf Thi ...

  3. 半导体巨头青睐物联网领域 众强联手打造MCU生态系统

    随着万物互联的时代到来,众多半导体巨头纷纷转战物联网领域.早在十年前,意法半导体曾将STM32推向市场,意法半导体对32位MCU在物联网方面的应用在两年前就已展开攻势. 4月25日,历经两届盛况的ST ...

  4. [视频]ARM告诉你物联网怎么玩,mbed 6LoWPan demo

    该视频演示了基于arm mbed的物联网设备间的6LoWPAN应用,如连接家里的土壤湿度传感器,灯光控制,安防联动等应用. 演示视频       原创文章,转载请注明: 转载自 http://www. ...

  5. ARM和STM32的区别及ARM公司架构的发展

    ARM和STM32的区别及ARM公司架构的发展 转:https://www.cnblogs.com/kwdeblog/p/5260348.html ARM是英国的芯片设计公司,其最成功的莫过于32位嵌 ...

  6. 代码 or 指令,浅析ARM架构下的函数的调用过程

    摘要:linux程序运行的状态以及如何推导调用栈. 1.背景知识 1.ARM64寄存器介绍: 2.STP指令详解(ARMV8手册): 我们先看一下指令格式(64bit),以及指令对于寄存机执行结果的影 ...

  7. 易云捷讯MySQL云数据库上线,推进IaaS与PaaS融合战略布局

    日前宣布,其基于MySQL的关系型云数据库已经正式上线公测,用户可通过易云管理控制台创建.监控与管理mysql数据库.此服务包括在线扩容.自动备份.灵活配置和监控告警等功能,旨在帮助用户实现便捷的运维 ...

  8. [案例]某体育用品公司在零售领域BI的产品应用解决方案

    随着某体育用品公司集团经营规模的不断扩大,信息化的建设也在不断的深入,从POS系统到ERP系统,从MAIL系统到OA系统,整个集团的每项工作都与信息系统密不可分,可以说是行业内信息化建设的先导者.但是 ...

  9. 浅析arm的异常、中断和arm工作模式的联系

    说到异常向量,会让人联想到中断向量.其实,中断是属于异常的子集的,也就是说中断其实是异常其中的一种. 回到异常向量,他其实是一张表格,每个格子里存放的是一个地址,或者是一个跳转命令,不管是哪个,其目的 ...

随机推荐

  1. 再谈JavaScript中的闭包

    一.什么是闭包 闭包就是有权访问另一个函数作用域中变量的函数,因此,闭包的本质是一个函数.当一个内部函数被保存到外部时,就会生成闭包. 二.闭包的作用 1.实现公有变量,即通过局部变量实现全局变量的效 ...

  2. Unity3D使用碰撞体做触发器实现简单的自己主动开门

     在游戏制作中触发器的使用很的方便也很有用. 这一张我们简介一下怎样使用一个简单的触发器来实现自己主动开门关门的效果. 首先确保你已经对门进行了动画的设置. 详细流程例如以下. 选择Window- ...

  3. STM32 TIMER DIAGRAM

  4. 解决SVN CONNOT VERIFY LOCK ON PATH NO MATCHING LOCK-TOKEN AVAILABLE

    最近使用SVN,开发项目的时候,璞玉遇到一个问题.就是: connot verify lock on path  no matching lock-token available   connot v ...

  5. C#交换两个变量值的多种写法

    在学习.Net/C#或者任何一门面向对象语言的初期,大家都写过交换两个变量值,通常是通过临时变量来实现.本篇使用多种方式实现两个变量值的交换. 假设int x =1; int y = 2;现在交换两个 ...

  6. 为 JIRA 6.x 安装中文语言包

    20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送) 国内私募机构九鼎控股打造,九鼎投资是在全国股 ...

  7. 理解 HTTPS 协议

    英文原文:Understanding HTTPS Protocol 最近我们看到很多站点使用 HTTPS 协议提供网页服务.通常情况下我们都是在一些包含机密信息的站点像银行看到 HTTPS 协议. 如 ...

  8. Map HashMap 排序 迭代循环 修改值

    HashMap dgzhMap = Dict.getDict("dgzh"); Iterator it_d = dgzhMap.entrySet().iterator(); whi ...

  9. blob转base64位 base64位转blob

    //**dataURL to blob** function dataURLtoBlob(dataurl) { var arr = dataurl.split(','), mime = arr[0]. ...

  10. ios成长之每日一遍(day 3)

    今天要介绍一下更多的控键使用, 当然也会对上一篇说的控件做一个巩固, 所以这一篇涉及到的控键会包括 UIImage.UITextField.UIButton.UILabel.UISwitch.以及 U ...