嵌入式和物联网 (IoT) 开发团队承受着压力,需求赶快完结并交给规划。为了能够快速举动,他们需求运用通过验证且具有强壮生态系统的元器件和软件结构。他们还需求研讨怎么保护系统,以及将来怎么扩展,这意味着解决计划还需求具有可移植性,而且在需求时能够跨多种硬件渠道作业。
可是,微操控器供货商经常将开发人员捆绑在自己的生态系统中,这使得在微操控器之间进行切换不是那么简略。此外,微操控器生态系统的软件东西常常缺乏,大部分是依据 C 言语,这对开发团队而言也是拦路虎。
考虑到这些需求,本文将介绍 Arm Mbed 渠道和操作系统。文中将展现开发人员怎么运用 Mbed 生态系统来加速嵌入式产品开发,并运用它来扩展到微操控器供货商生态系统之外的国际。
什么是 Arm Mbed?
Mbed 是由 Arm 主导的面向物联网设备开发人员的在线协作系统1。Mbed 为开发人员供给极为丰厚的资源来加速开发,从 Mbed OS、Mbed TLS 一直到 Mbed 库支撑的开发板和各种元器件。
Mbed 的初衷是让开发人员能够运用在线社区中 200,000 开发人员以及首要微操控器供货商(例如 Cypress Semiconductor、NXP Semiconductors 和 STMicroelectronics)所支撑的大型生态系统,凭借现有元器件、开发东西和库来加速开发速度。运用 Mbed 生态系统有许多优势:
库和示例均用 C++++ 编写,C++ 是一种现代的面向对象言语,其规划使得代码可扩展且可重用。
支撑运用现有硬件渠道快速开发嵌入式产品原型以证明其可行性。
运用 Mbed 在线和离线编译器以及 Mbed 指令行界面 (CLI),简化软件测验的开发(测验乃至包括在许多示例和库中)。
内置用于开发物联网设备的东西,例如云衔接器服务,不只简化了设备到云的衔接,而且简化了通过其他依据云的服务办理设备的作业。
Mbed 的通用架构模型给嵌入式开发人员供给了极大的灵敏性和可扩展性。举例来说,该架构模型一般分为三个独自的层(图 1):
初级硬件笼统层 (HAL)
Mbed OS API,用作中间件,供给存储、RTOS、安全衔接、通讯仓库等才能
高档物联网层,包括开发人员的运用程序代码、Mbed OS 库和衔接客户端
图 1:Mbed 架构包括三个首要层,能够依据需求进行扩展和弥补:一个通过 HAL 笼统的初级硬件接口,一个对中间件进行笼统的 Mbed OS API 层,以及一个用于编写运用程序代码并运用库和 Pelion 等客户端的高档层。(图片来历:Arm Mbed)
该架构的规划办法让开发人员能够参加运用所需的组件,而省去其他作业。这使该架构具有可伸缩性和灵敏性,便利开发人员用来快速开发原型,并在较短时刻内将原型变为量产产品。
Mbed 从硬件开端
尽管 Mbed 供给了杰出的软件根底,但除了软件和开发软件所需的东西之外,还会供给其他功用。团队开发产品的最快办法是在运用软件的一起运用 Mbed 硬件生态系统。硬件生态系统包括三个不同方面:
- 模块
- 开发板
- 元器件
模块本质上是以物联网为中心的衔接设备,它以通过认证且随时可用的封装方式供给。例如,开发人员若要开发一款支撑 LoRaWAN 的产品,能够挑选 MulTI–Tech Systems 的 MTMDK-XDOT-NA1-A00 xDot 模块开发套件(图 2)。xDot 模块在视距运用中可供给长达 10 英里的双向通讯间隔,在建筑物中可供给 1 到 3 英里的双向通讯间隔,数据速率从每秒 293 位 (bps) 到每秒 20 Kb (kbps)。该模块运用低功耗 STMicroelectronics 的 STM32L151CCU6 处理器,其作业频率为 32 兆赫 (MHz),能够通过 SPI、UART 或 I2C 接口运用 AT 音讯传递计划进行操控。
图 2:xDot 模块为开发人员供给通过认证的 LoRaWAN 模块,该模块受 Mbed 软件仓库的支撑,能够大大缩短开发人员完结和运转解决计划的时刻。(图片来历:MulTI-Tech Systems Inc.)
Mbed 板本质上是 Mbed 全面支撑的不同微操控器系列的开发板。每个开发板都有微操控器供货商供给的共同特性和功用。例如,对支撑低功耗蓝牙 (BLE) 的开发板感兴趣的开发人员,或许会喜爱 Cypress Semiconductor 的 CY8CKIT-062-BLE(图 3)。
图 3:CY8CKIT-062-BLE 开发板具有多种用于开发物联网衔接设备的特性,包括电子墨水显现屏、电容式触控按钮和滑块、BLE 模块以及 KitProg2 调试器。(图片来历:Cypress Semiconductor)
Mbed 元器件是一个硬件元器件,具有 Mbed 支撑的库及其相关的中间件,这些库和中间件充任产品开发的构件。例如,从事物联网项目的开发人员或许会决议要运用温度传感器。开发人员能够在 Mbed 元器件中查找其支撑的温度传感器,例如,他们或许会在外设模块中发现 Maxim Integrated 的 MAX31723PMB1,该模块可用于快速开发原型(图 4)。
此类 Mbed 元器件的长处在于,它们简直总是作为开发板供给并带有原理图。这样,开发人员不只能够检查使传感器作业所需的硬件装备,还能够运用软件库来发动和运转传感器。
图 4:MAX31723PMB1 数字温度计和温控器外设模块(原理图所示)能够轻松刺进 Mbed 开发板,然后运用相关的 Mbed 元器件库来快速衔接温度传感器并与之交互。(图片来历:Maxim Integrated)
Mbed 并非只要像丈量温度和湿度的传感器那样的简略传感器。例如,开发医疗设备的开发人员会发现,Maxim Integrated 的 MAXREFDES220# 模块为他们供给了依据手指的心率和 SpO2 血氧传感器的参阅规划(图 5)。
图 5:MAXREFDES220# 模块为开发人员供给了一个支撑依据手指的心率和 SpO2 监测的开发板。(图片来历:Maxim Integrated)
此外,还有比如 Seeed Technology 的 114991252 VL53L0X Flow 分线板之类的组件,它们可用于光线检测和 3D 飞翔时刻 (ToF) 测距等运用(图 6)。例如,测验在边际开发依据手势的技能的开发人员,或许会对该传感器感兴趣。
图 6:Seeed Technologies 的 114991252 Flow 传感器分线板可轻松集成到 Mbed 开发板中,用于需求光线检测的运用或手势检测等 3D 飞翔时刻运用。(图片来历:Seeed Technology)
开发人员选定开发板和元器件之后,便可开端运用 Mbed 进行开发,通过创立“Hello World” LEDBlinky 运用程序来测验他们是否能够成功对开发板进行编程并使 LED 灯闪耀。
用 Mbed 编写“Hello World” LEDBlinky 运用程序
开发 Mbed 运用程序有多种办法:通过在线编译器;通过离线编译器;或运用指令行界面 (CLI) 东西。依据个人经历,主张运用 CLI,因为它能更好地操控开发进程,而且更易于集成到开发流程中,例如测验东西和接连集成服务器。
CLI 供给了指令行界面功用,因而运用 Windows 的开发人员能够运用指令提示符来编译代码。创立 LEDBlinky 运用程序的第一步是运用 Mbed 随附的预写示例。这能够通过在指令提示符中输入以下指令来完结:
mbed import mbed-os-example-blinky
下载示例需求几分钟时刻,因为还会下载 Mbed OS 和运用中或许会运用的其他支撑组件。下载完结后,开发人员便可导航到 mbed-os-example-blinky 文件夹,其间有一个 main.cpp 文件。开发人员能够在自己喜爱的编辑器中翻开此模块,其间代码大致如下所示:开发人员能够在此进行修正,可是关于本文而言,运用默许值即可。更值得注意的是编译和布置代码。详细用来编译和布置代码的指令将因硬件而异。下面的比如显现了怎么运用一条指令对 Cypress CY8CKIT-062-BLE 开发板进行编译和编程:
第一次编译项目或许需求几分钟,因为东西链需求构建一切主动进入 Mbed 运用程序的相关文件。编译周期完结后,成果应类似于下面的图 7 所示。
图 7:成功编译 LEDBlinky 项目后 Mbed 编译器的输出。(图片来历:Jacob Beningo)
指令行中的 -f 选项将会主动获取已编译的十六进制文件,并将其复制到开发板上,开发板显现为 DAPLink 大容量存储设备。此刻,LED 应该闪耀,开发人员能够开端开发首要运用程序。
Mbed 的运用技巧与窍门
Mbed 入门十分简略,但关于开发人员来说或许存在应战。以下是关于开端运用 Mbed 开发产品的一些“技巧与窍门”:
防止运用在线编译器。尽管这关于业余喜好者来说很好,但关于专业人士而言,让其他人的服务器具有源代码或许是个问题。此外,来回云端或许会减慢调试速度。比如 Mbed IDE 或 Mbed CLI 之类的本地编译器是更好的挑选。
Mbed 支撑多线程,但默许情况下,主函数在自己的线程中运转。
从 Mbed 示例项目开端,对其进行调查,了解怎么更有效地运用 Mbed 运用程序。
运用 Mbed 测验东西保证运用开发没有无意间损坏 Mbed 结构中的任何内容。
运用 Mbed 硬件站点查找能够快速集成在一起来开发产品的开发板、元器件和模块。
上述技巧将有助于保证开发人员尽量削减花费在嵌入式产品开发上的时刻。
总结
嵌入式和物联网开发人员需求一个遭到杰出支撑的生态系统来为他们供给现代化的东西、流程和软件,协助他们加速开发作业并使开发本钱最小。如本文所示,Mbed 渠道和 OS 是开发人员能够运用的一种潜在挑选。
Mbed 供给可扩展且灵敏的软件架构,其间包括许多现已集成在一起并通过测验的组件。因为对各种硬件模块、开发板和元器件的强壮支撑,开发人员能够轻松创立产品原型,然后将其扩展成出产解决计划。