ARM 的 mbed 快速原型设计解决方案将 NXP LPC1768 微控制器、支持组件和智能 USB 接口与基于云的工具相结合,以实现对微控制器功能和应用原型设计的有效评估。mbed 寻找可以优化获得工作原型的时间的技术和权衡,使设计人员能够在设计周期的早期快速测试、评估和展示想法。
微控制器变得更小、更强大、更低功耗和更多连接,但价格却不断下降。对于能够成功采用该技术的新市场来说,这是一个巨大的机会。其中的关键是确定微控制器可以解决的新问题,并构建概念验证,将想法转化为潜在产品。
一旦已知所需的规范,该行业已经为嵌入式工程师构建了出色的工具来生产微控制器设计。但是,当任务是证明一个概念或定义一个规范时,即使对于有经验的工程师来说,风险和时间尺度通常也不会加起来。结果是想法没有得到尝试;几乎没有迭代或设计空间探索;最终的设计也是原型,或者规格过于谨慎。鉴于在许多情况下,可以定义这些应用程序的想法、观察和见解将来自其他问题领域的人,这些限制被放大了。这有可能成为采用的真正障碍。
战略
mbed 的基本目标是实现对微控制器功能的有效评估和可以应用它们的应用程序的原型设计。特别是,它旨在匹配产品设计其他方面的设计周期时间。有助于实现这一点的策略(图 1)是寻找可以优化获得工作原型的时间的技术和权衡,而不是优化设计本身。
图 1:mbed 策略。
例如,微控制器的趋势是以固定价格提高性能和存储容量。虽然大多数工具专注于使用户能够在可创建的应用程序的最终功能中利用此功能,但 mbed 却专注于使用此性能和容量来减少设计挑战。一个很好的例子是提供高级抽象,以牺牲实现效率和增加代码大小为代价使功能可访问。
另一个关键目标是克服进入壁垒;技术接受模型(图 2)提供了一个清晰的框架来实现这一点,突出了易用性和感知有用性。感知有用性是由通过实验和教育对技术的洞察力驱动的。原型设计方法自然支持用户探索,同时使营销和应用工程功能能够轻松演示和展示技术。
图 2:技术接受度(Davis 等,1989)。
易用性实际上非常依赖于上下文;大多数好的工具都很容易用于它们预期的任务。但对于不同的任务,结果不太可能相同。通过明确定义快速原型设计的背景,将设计权衡集中在易用性上变得更有意义。对于业内熟悉现有专有架构和工具链的嵌入式开发人员来说,改变可能会令人生畏,因为从专家到学习者会带来额外的负面感觉。仅这些因素就足以推迟探索转向现代解决方案的好处。对于新用户来说,恐惧、不确定和怀疑同样令人望而却步。这使得初始体验变得至关重要;这些工具必须以很少的投资迅速产生结果,
入门
mbed 的目标是让新用户尽快运行他的第一个程序,从而建立对硬件和软件工具链的信心和信任。mbed 工具应用了一些新技术来实现这一点,结果不言而喻;您可以在 60 秒内开始。这一成就意味着没有理由不进行实验。
成果是通过两项创新实现的;基于硬件和编译器工具的 USB 磁盘编程器,用作在 Web 浏览器中运行的基于云计算的 Web 应用程序。这些解决方案有一些明显的好处,但有些不是立即显而易见的。
预先设置的优点是无需设置或安装。对许多人来说,这只是一个惊喜,允许即时访问而无需管理职责。但是对于在许多教育和工作环境中发现的计算机系统被锁定的其他人来说,这可能是能否测试微控制器的区别。
IDE 简单但功能强大,允许它不碍事,做它的设计目标——编辑和编译代码。一切都预先配置好后,它可以在任何平台上开箱即用,包括 PC、Mac 或 Linux。这种即时无忧访问让用户对这些工具充满信心,使用户能够在需要使用或演示时随时取用它们。
由于现在在多台计算机上工作很普遍,在线方法成为一个特别的优势。您不仅可以避免多次安装的问题并使它们保持同步,而且无论您身在何处,您的在线工作空间都会随身携带。
微妙的优势是你看不到的东西。有些决定是您不必做出的,因为已经做出了能够为任务提供最合适结果的选项和配置。
许多硬件和软件基础工作已经完成。这些工具非常轻巧,可以在任何机器上登录,从头开始创建项目,并在几分钟内测试或修改某些内容;这种灵活性会对工作方式产生重大影响。具有简化的设置意味着一切都可以轻松重现。
结合单一硬件和库模型,所有其他 mbed 用户都在相同的环境中进行开发。这使得社区支持变得更加容易,因为人们可以在共同的背景下分享问题和疑问。
图 3:在线编译器。
快速原型
设计 mbed 的硬件和软件组件的架构和实现在原型设计方面提供了独特的优势。
mbed 微控制器硬件将 NXP LPC1768 微控制器、支持组件和智能 USB 接口封装在实用的 40 针 0.1" 间距 DIP 外形尺寸中,非常适合在无焊面包板、条形板和通孔 PCB 上进行实验。支持裸露的接口,mbed C/C++ 库为微控制器外设提供高级接口,实现简洁、紧凑、API 驱动的编码方法。这种组合提供了与外设和模块的即时连接,用于基于微控制器的系统设计的原型设计和迭代,为开发人员提供更具创新性和生产力的自由。
图 4 显示了基本的 mbed 微控制器引脚排列,指示了接口资源的可用性和位置。指示的接口与在 mbed 库中找到的接口相匹配。这突出了它们一起开发的一些主要好处。API 提供了一个抽象的外围接口,而不是特定于实现的。这些库使用面向对象,可以很好地映射到有形的物理硬件资源。硬件、库和文档共享相同的接口命名和概念。
图 4:mbed 微控制器引脚排列。
硬件和软件之间的一致性实现了捕捉意图的自然编程风格,这对于快速实验和迭代至关重要。
例如,mbed 避免了引脚分配和资源分配通常需要的多个间接级别。这些往往会失去意义并引入错误。
图 5:配置和写入 SPI 设备。
图 5 中的 SPI 示例演示了设置 SPI 主接口。首先,创建一个 SPI 对象并将其绑定到所需的引脚(mosi、miso 和 sclk),如图 4 中选择的那样。请注意,这个表达式现在在物理连接设备时同样有用 - 规范已捕获物理连接。
接下来,在执行写/读事务之前配置 SPI 对象 (myspi) 的频率和位格式。SPI 对象上的方法定义良好,界面直观,操作独立于底层硬件的低级设置或要求 事实上,要更改本示例中使用的 SPI 端口,只需引脚名称即可需要改变。这有助于将设计的物理方面(使用的资源以及它们如何固定)与控制(它们做什么)分开修改。
图 6 显示了一个捕获意图的类似示例。在这种情况下,每次在数字输入引脚上发生上升沿中断时都会调用一个函数。中断是一个简单的概念,但众所周知,设置和正常运行非常复杂。使用 mbed,代码在概念上非常简单。创建一个可以产生中断的引脚,并在该引脚的上升沿附加一个功能。
图 6:将函数附加到引脚中断事件。
图 7:mbed 库接口。
该库是使用自始至终的方法构建的(参见图 7),允许开发人员专注于应用程序逻辑而不是实现细节。
mbed 库建立在低级 ARM® Cortex™ 微控制器软件接口标准 (CMSIS) 之上,CMSIS 是 Cortex-M 处理器系列的独立于供应商的硬件抽象层。
与 CMSIS 相比,mbed 库提供了一个非常高级的 API,它专注于为外围设备的基本控制提供抽象接口。这种结构为用户提供了一种自然的方式,可以尽可能地从 mbed 库中受益,并在他们需要支持未提供的功能的地方添加基于 CMSIS 构建的定制代码。特别是,这使得在原型制作时只能够将精力集中在关键或差异化方面。除了 mbed 库之外,mbed 社区外设库是一个扩展的代码库,用于控制连接到微控制器的外设,例如传感器、执行器、LCD 和其他模块。这些通常构建在 mbed 库之上,使系统能够快速连接,专注于逻辑和功能而不是驱动程序。
图 8:mbed 库架构。
应用示例
为了演示如何使用 mbed 实现一个简单的应用实验,下面的示例演示了一个由 Internet 数据库控制的硬件设备。
图 9 中的示例程序实现了一个系统,该系统在屏幕上显示消息并根据 HTTP 请求的结果移动伺服电机。该解决方案不太可能是最优的、稳健的或完整的,但足以让这个概念发挥作用。
该原型可以实现硬件的迭代、互联网应用程序的早期开发、新市场的探索或为提交项目提供案例。通过启用一种可访问的方式来测试想法,mbed 有助于降低与产品开发相关的风险,并更频繁地将高级微控制器设计到应用程序中。
图 9:通过 Internet 应用程序控制屏幕和伺服。
结论
对快速原型设计的关注使 mbed 具有广泛的吸引力。对于刚接触嵌入式应用程序的工程师,mbed 将使他们能够首次试验和测试产品创意。对于经验丰富的工程师,mbed 提供了一种在开发的概念验证阶段提高生产力的方法。对于营销、分销商和应用工程师,mbed 为微控制器的演示、评估和支持提供了一致的平台。因此,mbed 工具将帮助不同的受众利用先进的微控制器(如 NXP LPC1768)带来的机会。
评论
查看更多