标签:
Arduino Due、Beaglebone、mbed 或Raspberry Pi 仅仅是用于 IoT 产品原型制作且基于 ARM 的嵌入式平台中的几个例子。我们撰写这篇博文的意图,不仅是要比较这些开发板,还要审视其中的处理器在您的设计投入生产时产生的重要影响。
正如您最近阅读的博文中所述,物联网正当风行。在各种经济平台激励创新的背景下,现已不再缺乏全新物理产品的各种想法 - 不论是 AT&T数字生活家用传感器还是可远程控制的小强,可谓一切皆有可能。
IoT在世界各地激发创新。所有行业的知名企业都将目光投在了 IoT 技术集成上,正在创造全新的产品和服务。Nike Fuelband 和 Disney Magicband 是互联技术领先产品的两大杰出例子,它们来自传统上与高科技行业无关的知名企业。
小规模批量制造和 3D 打印正在为物理产品开发带来革命。创新者和企业家们正在以本地层面为开端,开始利用 IoT 解决问题。据 Gartner 预测,到 2018 年,50% 的 IoT 解决方案将来自不满 3 年的创业企业。
机遇巨大,Arduino 和 Raspberry Pi 等平台也为这个世界打开了无尽可能。嵌入式技术正在进入云平台和移动应用开发人员的视线当中,帮助他们向下一个富饶的开发世界大步前行。
常常有人向我们问起,mbed、Raspberry Pi、Arduino Due 和 Beaglebone 等支持 ARM 的开发板之间有什么差别。从表面上看,这些开发板可能外观相似;而实际上,它们的相似之处在于它们的核心中均使用了 ARM 处理器。但如果要把想法变为产品,就务必要了解这些处理器之间的差别。下表概述了两种广泛设备类别——应用处理器和微控制器。
应 用处理器常见于智能手机或电脑,为您喜爱的应用和操作系统提供动力;微控制器则适合用于处理简单的任务,如蓝牙耳机、鼠标或楼宇门禁等。开发板的成本往往 扭曲了一项事实,那就是以微控制器构建的系统和以应用处理器构建的系统之间在总体系统成本和功耗上存在巨大差别。因此,务必要考虑开发板上的主机芯片。即 使价格不在话下,您也不希望在唯一电源是 CR2032 电池时,利用运行 Linux 的应用处理器设计一个简单的传感器。与所有成功的产品设计一样,您需要考虑功率、外形和性能方面的限制,确保选用的处理器与这些需求相符。下面的幻灯片显示了一些差别和权衡:
基本要求是,如果您在设计非常简单的产品(如收集传感器数据并发送到云端),您可以根据数以千计的传感器至云端设备来预测模型,使用应用处理器不仅仅是大材小用,而且代价也会远远高于使用基于微控制器的简单设计——不仅体现在芯片上,而且在软件开发复杂度上。然而,如果您在设计具备人脸检测功能的远程摄像机,或许就需要使用应用处理器。
功率要求是一个极为重要的考虑因素。使用外部电源(即使是 USB) 的代价会远高于使用简单的电池,后者或许可用于为微控制器供电。这也会影响总体系统成本,因为您必须要采购线缆和电源,更不用说拥有可靠的电源所涉及的物 流事宜。这还会影响产品重量和外形。对于便携式设备,功率可能意味着更大的电池和供电电子器件;产生的热量也可能意味着需要散热片,甚至风扇。您能想象带 有风扇的跑步机吗?另外值得一提的是,能源采集领域的技术正在急速发展进步,它可以免除使用电池的必要。许多这样的能源采集技术可以在短脉冲内提供几个 mA 的电流,让小型电子器件可以收集足够的数据并快速地传输此类数据。在此类能源采集技术基础上构建的设备需要能够纳入超低功耗的封装中,而这仅可通过使用微控制器实现。这就是为何基于 ARM 的设备设计为节能运作;实现尺寸更小、成本更低的 IoT 设备。
物理 IoT 设备在其本质上极为多样化。例如,将智能手表和联网型汽车比一比!ARM 生态系统的一大优势在于拥有广泛的微控制器和应用处理器,能够满足您 IoT 应用的确切需求,同时又仍旧采用通用架构。ARM 的业务模型有助于围绕我们的核心 IP 打造一个广袤的创新生态系统,使得芯片供应商能够为各种不同的垂直市场开发优化的芯片;实际上,ARM 拥有 300 多家公司,它们利用授权 ARM 核心构建了 1000 多种芯片。
另一关键考量因素是软件开发环境。具体选项取决于您的开发平台是基于微控制器还是应用处理器。
在 MCU 的早期年代,开发人员需要针对具体的供应商编写汇编代码。
过去十年间,这一方式在很大程度上得到了嵌入式 C 语言开发的补充。编译器和调试技术的进步使得开发人员能够利用更广范围的设备,在更加多样的项目中处理更为复杂的应用程序。
最近,Arduino 将微控制器推向全新的受众。开发 Arduino 的 初衷是为了让艺术家们可以利用微控制器,但被许多受到启发的利益群体采用,用于了解微控制器的各种潜力。在此过程中,形成了一种流行平台范式,通过隐藏软 件细节达到实验目的。这一方式对希望快速测试其想法的创意人士有着无限价值,尤其是在微控制器不是项目重点的时候。这已经成为 ARM 世界的一个部分——Arduino Due 平台搭载基于 ARMCortex-M3 处理器的 Atmel SAM3X8E MCU。
MCU 中处理器架构的标准化使得支持它的生态系统更加繁荣昌盛。进一步发展是将 Python 等更高级的脚本语言,乃至 Javascript 等 Web 编程模型用于微控制器,如Tessel。
幸运的是,Android、iOS 和完整 Linux(如 Ubuntu)已经创造了丰富的开发环境供我们选择用于编写软件,它们提供充足的选择,不仅有原生的 C/C++、JAVA、脚本语言,还有 HTML5 等高级语言。在过去,如果您要在 ARM 基础上进行开发,就必须要在 x86 PC 上拥有交叉编译器开发环境。现在,随着基于 ARM 的开发环境不断发展,我们可以轻松使用 Samsung ARM Chromebook 或运行完整 Ubuntu OS 的 Odroid 来在 ARM 基础上为 ARM 编译。而这一点本身都可作为一个主题写一篇博文。请记住,并非所有应用处理器都是相同的。尽管具有向上兼容性,CPU 核心功能在不同 ARM 架构之间不尽相同,例如 ARMv6 (ARM 11) 和 ARMv7-A (Cortex-A) 之间。后者引入了 NEON 引擎等指令,它们带来的高性能 SIMD(同步输入多种数据)引擎适合加快多媒体和 SMP(对称多处理)等工作负载,能够实现高效的多线程处理。随着近期 ARMv8-A 的发布,未来甚至还可能会诞生 64 位嵌入式设备。
现在,我们来具体谈谈各种经济实惠的开发平台。基于 ARM 的开发平台有许多,各自在这个多样化的开发板生态系统中提供独特的价值。下表列出了当今市面上提供的一些基于 ARM 的硬件开发平台,其价格在 12.95 美元到 199 美元之间,拥有信用卡的任何人都可轻松购买。这份表格并不详尽,我们会不时补充。实际上,如果您想到任何未列出的开发板,请与我们联系。我们一定会将它添加进来,因为我们希望不断充实这份表格。
总而言之,重要的是市面上有许多基于 ARM 的开发板可供选择,而且几乎每天都有新的成员加入。在确定适合自己的开发板时,首先必须决定是要使用微控制器还是应用处理器。需要考量的部分标准包括应用、复杂度、最终系统成本、功率,以及预算。
选定合适的处理器类别后,接着就是确定恰当的开发平台。应用处理器挑选起来比较轻松,因为 ARM 生态系统中的软件兼容性可以得到保障。如果有适合所用 OS 的驱动程序,您应当拥有类似的环境。需要注意的一点是,您可能会根据底层平台的一些具体功能而选择特定的芯片。
互联产品的创新速度实现了各式各样的全新业务模型,有些甚至是之前从未想象过的。就像 PC 曾经是上世纪 90 年代的默认开发平台一样,ARM 嵌入式开发平台将成为本世纪首选的开发平台。对于 ARM 生态系统来说,幸运的是,这一点变得更加轻松,因为Linaro 等工程商店让在 ARM 上全面支持的 Linux 和 Android 等成熟平台变得唾手可得。
ARM mbed 等基于云端的开发平台将能够加快专业开发人员对 IoT 产品的开发。它汇总了 IoT 设计中预期软件组件的基准生态系统,让芯片供应商可以集中精力提供差异化和增值服务。
标签:
原文地址:http://my.oschina.net/wxfvm/blog/515533