作者:Caroline Hayes,高级编辑
自2014 年末举办的 ARM TechCon 大会上ARM® 推出mbed™ OS以来,便被公认为一种基于ARM Cortex®-M 处理器系列的可以加快 IoT 设备原型设计和开发流程的开源方式。它为在低功耗运行的 IoT 设备提供连接性、安全性和设备管理。
图 1:mbed OS 架构可以让您方便地使用各种不同的 IoT 协议设计您的设备。
此款免费的操作系统旨在与公司的 32 位 M 系列微控制器结合使用,在推出时就被认为将给 IoT 带来安全性和连接性,并加快 IoT 部署。它由 mbed OS 构成(请参阅图 1),借助 mbed Device Server可以轻松兼容 mbed 云合作伙伴的生态系统。
开放与互动
作为开放系统,mbed OS 可以与其他操作系统(如 iOS 和 Android)结合使用,并将使用开源 IoT 协议,如 Web 传输受限制的应用协议 (CoAP) 和超文本传输协议 (HTTP)、用于机器对机器 (M2M) 连接的消息队列遥测传输 (MQTT)、密码协议传输层安全协议 (TLS) 或传输控制协议 (TCP)、数据包传输层安全性协议 (DTLS)、用户数据包协议 (UDP) 和开放移动联盟轻量级 M2M (OMALWM2M) 标准。开发人员的工作量将会大量减轻,从而可以专注于编写尤其适用于 mbed OS 内核顶层的安全和通信协议的代码。
图 2:ARM mbed 生态系统将 mbed 工具、mbed OS 和 mbed Device Server整合在一起,以便开发安全的 IoT 开发结构。
mbed 设备服务器具备内置安全管理、负载平衡和端到端分发式集群以及设备和网络之间的安全通信。它将管理设备和应用程序数据,并支持访问 IoT 设备的 ARM 生态系统。
ARM 的 mbed OS 将在 MCU 或系统级芯片 (SoC) 上运行。公司宣称,该款 OS 将控制 IoT 设备在 C++ 应用程序框架和组件架构下操作以创建设备应用程序,从而消除通常与 MCU 代码开发相关的低级别工作(图 2)。
另一方面,mbed 的唤醒-操作-休眠样例能够与 IoT 案例完美契合。
mbed OS 为事件驱动型操作系统,而非实时操作系统 (RTOS)。它将在外设设备(如传感器)产生中断时被唤醒,然后执行相应操作并确定是否需要进一步操作,最后又重新进入休眠模式,而非使用开关或定时器。这将节省电源,但不具备汽车系统、航空和工业自动化所需的 RTOS 时间关键型确定性。另一方面,mbed 的唤醒-操作-休眠样例能够与 IoT 案例完美契合。
RTOS 支持
Express Logic 在 Embedded World 应用展上宣布,其推出的 ThreadX RTOS 和 NetX Duo IPv6 网络堆栈将利用 mbed 客户端解决方案,使得 mbed OS 与需要 RTOS 功能的应用程序相得益彰(图 3)。
ThreadX 将为多任务处理和实时应用程序提供抢占式调度功能,其中包含轮询调度和抢占临界值调度、优先级继承、事件链、事件跟踪、运行时堆栈分析和确定性处理。RTOS 已通过工业和运输功能安全标准 TÜV IEC 61508、医疗安全标准 IEC 62304 和航空设计相关 DO-178B(航空运输系统及装备规范软件考虑因素)的认证。
图 3:框图呈现了最完整的 ThreadX 接口工作流程。红框包围部分由 ThreadX 和 NetX TCP/IP 协议管理。
ThreadX 支持还将访问适用于 mbed OS 社区的公司 X-Ware 中间件、GUIX 图形、NetX Duo TCP.IPv4 和 IPv6 堆栈、USBX 和 USB 堆栈,以及实时事件跟踪分析工具 TraceX。RTOS 已被基于 ARM 的 IoT 设备的开发人员使用,后者通过多个应用程序编程接口 (API) 开发出较小的占用和可访问的源代码。
Express Logic 公司主席 William E. Lamie 认为,使用 ARM mbed OS 会给 IoT 设备增添多任务处理功能,从而为可互操作的 IoT 带来所需的连接性。“IoT 设备拥有复杂的联网要求。开发人员需要使用完整且简单易用的 IPv6 TCP/IP 堆栈来应对连接网络的挑战。”NetX Duo 提供 IPv4 和 IPv6 功能并且可以使用“无状态地址自动配置”协议配置接口地址,从而简化并自动化 IP 地址分配,进而满足随着 IoT 的增长需要将更多 IP 地址应用至更多设备的需求。
电源管理
电源感应系统设计对于 IoT 应用程序至关重要。通过 ARM 合作伙伴和微控制器供应商 Silicon Labs 提供的电源管理 API,ARM Cortex-M 架构的功效得到了增强。公司推出了适用于 ARM mbed 平台的 API。开发人员能够使用这些 API 管理处理器和外设状态,从而实现电源管理。使用 API 的 Gecko 微控制器可以根据随时使用的微控制器外设自动确定并启用最优休眠模式,以降低系统级能耗。当微控制器内核处于休眠状态或在执行其他处理任务时,I/O 操作可在后台执行。
启用 mbed 的 EFM32 Gecko 初学者工具包已于 2015 年 4 月出售。最初为 mbed 提供支持的平台有:Wonder Gecko、Leopard Gecko、Giant Gecko 和 Zero Gecko 工具包。拥有 EFM32 工具包的开发人员将能够借助软件更新,在硬件上启用 mbed。公司提供的一个常见 IoT 用例为应用程序的能源规范,它能够在内存 LCD 上更新每秒的时钟显示。公司宣称,通过自动选择休眠模式并与低能源结合使用,无人驾驶微控制器外设的电流消耗将从 1.03 mA 降低至 0.1 mA。
入门
mbed 社区的主要目标是加快 IoT 设备的原型设计和开发进程。ARM mbed IoT 初学者工具包(以太网版本)旨在加快原型设计(图 4)。互联网联网设备的数据将迁移至 IBM 的 Bluemix 云平台,此款平台将用于构建、管理和运行 Web 和移动应用程序,从而为 IoT 提供分析和服务。
将 mbed OS 嵌入至设备将能够为云连接设备处理 IoT 方程式的智能和连接配额。ARM IoT 部门总经理 Krisztian Flautner 表示,这些云连接设备构成了 IBM 的智慧城市,其中有关设备周围环境的信息将会充分挖掘 IoT 的潜力。这些话是在 Embedded World 应用展前一天推出初学者工具时讲的。
图 4:ARM mbed IoT 初学者工具包(以太网版本)配备启用 mbed 的 Freescale Kinetis M4 开发板、Bluemix 云传感器 I/O 和 10/100M 以太网连接,可实现快速原型设计。
IoT 初学者工具包拥有 ARM 启用 mbed 的开发板(配备 Kinetis K64)以及 ARM Cortex-M4,该处理器在 120 MHz 下工作且带有 1 MB 闪存和 256KB RAM。该工具包还提供传感器 I/O 屏蔽。
ARM 在推出时便已确认,未来将发布运行 mbed OS 的初学者工具包。
本文由 ARM 赞助