0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过开放平台定制快速部署

星星科技指导员 来源:嵌入式计算设计 作者:Scott Wilken 2022-06-22 14:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

现有硬件和软件的许多来源都可以整合到开源社区提供的新设计中。商业上可行的开源产品范围从 Linux操作系统软件到 BeagleBoard 等物理硬件设备。虽然此类基本构建块通常可以免费使用,但它们仍受原始创建者发布设计时所依据的条款的约束,无论是 GNU 公共许可证、Apache 还是类似条款。

可扩展性的主要缺点是传统范例是为底层硬件平台构建一个板级支持包(BSP),然后在已从应用程序开发人员那里抽象出硬件的测试软件平台之上构建所有应用程序。如果底层硬件最终需要在现场进行更改,那么在大多数情况下,需要打开外壳,更换电路板,并且必须构建、测试和安装新的 BSP。

克服这个缺点的第一步是严格定义一组最低级别的硬件接口,这些接口可以通过详细的电气机械文档公开,并由成为已发布 BSP 一部分的锁定驱动程序代码在最低层提供支持。这需要在产品的工业设计中进行规划和适应。在大多数情况下,这不仅仅意味着简单地选择一个普遍存在的 USB 连接器并假设已考虑到可扩展性。USB 可能会在许多市场中造成实际的环境问题,例如缺乏对高振动用途的适用性。当以前未知的 USB 设备作为核心设备的新突出物连接时,也会对产品的美观产生潜在的负面影响。

过去,个人计算机行业已成功使用定义通用电气和机械扩展接口的方法。最早的 PC 机器模型在 IBM 的产品和随后的许多克隆产品之间共享 ISA 总线通用性。不幸的是,由于各种物理原因,当前的 PC 扩展槽策略不能很好地转化为大多数嵌入式应用程序,并且嵌入式设计缺乏 PC BIOS 的通用性,无法使不同的硬件在软件开发人员看来相对统一。因此,对于嵌入式产品来说,为现场添加的硬件部署软件支持可能会更加困难。

用于部署驱动程序软件的 PC 模型也普遍优于嵌入式产品的行业标准。现代 PC 操作系统(包括基于 Microsoft 的各种 Linux 发行版)在新硬件枚举时自动读取设备信息,并自动从中央存储库中检索相关的软件驱动程序。对于最终用户来说,这通常是一种非常令人满意的体验,如果现场可扩展嵌入式设备要取得成功,就需要重新创造这种体验。

易于开发的硬件与易于部署且对现场安装人员的影响最小的软件支持相结合,在实际开发大多数最终产品的嵌入式空间中一直缺乏。通过考虑硬件扩展选项的平台独立性以及部署软件的集中机制的深思熟虑的设计方法,可以在产品系列的嵌入式空间中复制 PC 方法。

尽管这种从标准化平台创建可定制设备的方法可以应用于许多需要现场可配置性的设备,但它在以物联网IoT) 空间连接为中心的设备中尤为重要。在考虑通用监控应用程序时,很容易设计一个实现一些标准接口的通信网关,但要提供一个与现有的各种传感器和执行器通信的通信网关要困难得多。标准方法是选择一个市场并利用该市场中最常见的接口。借助现场可扩展平台,OEM 不再需要选择特定的市场来追求。如果需要支持额外的传感器或执行器,

图 1 显示了一个开放式 IoT 网关产品,该产品只能通过 GPIO、USB 或其他在制造时固定的接口进行扩展。作为传统的嵌入式设备,它具有定制的 Linux BSP 以充分利用硬件提供的灵活性,并且没有显着的发布后扩展能力。USB 提供了添加功能的途径,但如前所述,它对实际现场部署施加了限制。

图 1:使用在发布时固定的硬件的传统嵌入式方法。

pYYBAGKytHaAETn_AAT3TEJIUcY809.png

为第二代产品采用了新方法,创建了扩展端口,因此除了可以在机械实用的情况下使用的传统 USB 端口之外,还有许多其他接口可以在扩展时暴露出来卡,包括 USB 本身、UARTSDIO、I2CWi-Fi 等。这有助于确保网关架构在平台设计中具有合理的使用寿命,因为它能够在新的扩展端口卡可用时接受它们。作为一种开放策略,

下一步是确定合理的方法来利用这种标准化的硬件接口,同时提供一定程度的抽象,使其他软件开发人员无需开发低级驱动程序或从头开始构建新的 BSP 即可创建应用程序。

对于计算密集度较低的设备,ARM 的 mbed 方法提供了很好的解决方案,该方法旨在支持其 Cortex-M 系列设备。SDK 由 ARM 在 Apache 2.0 开源许可下提供给社区,对于过去从事过 OS 和非 OS 嵌入式软件开发的人来说,感觉非常熟悉。使用 mbed,硬件的软件支持可以放置在一个中央存储库中,供任何潜在用户检索和构建他们的应用程序。ARM 本身通过 mbed 在处理器 I/O 级别提供一定程度的平台独立性,因此可以将代码从一个受支持的 mbed 设备迁移到另一个设备,即使这些设备来自不同的微处理器供应商。然后可以使用 ARM 的工具轻松构建具有正确平台支持的用户创建的软件,或与可用于商业销售的其他第三方开发环境一起使用。ARM 用于部署 mbed 代码的本机部署机制就像在 USB 接口上拖放一样简单,但如果设备倾向于远程部署并进行现场升级,OEM 可以选择以更适合自己需要的方式扩展部署。

由于计算密集型应用程序可能无法在 Cortex-M 处理器上很好地运行,因此可能还需要考虑另一种方法。Linux 是一个显而易见的选择,因为大多数高端嵌入式处理器的供应商倾向于将他们自己的开发套件的初始 BSP 发布到社区中,并且通常与初始发布时提供的开源硬件一起发布。这种方法的挑战在于认识到任何定制都需要精通嵌入式 Linux 的软件工程师,或者需要构建抽象层。混合模型既支持更有限的嵌入式 Linux 开发人员,也支持在他们的 Linux 开发系统上构建完整平台的开发人员,以及操作水平高于 JavaPython、Perl 或其他语言的工程师。

图 2 显示了一个 MultiTech 网关,它是 2014 年底推出的系列之一,将有公开记录的硬件扩展槽。扩展接口是多网关产品通用的,所有支持的底层驱动代码都将开放并提供给mbed和Linux。这允许 OEM 和第三方创建新的扩展板,这些扩展板易于启动和部署到更广泛的应用程序中。

图 2:具有灵活硬件扩展和免费提供的接口驱动程序支持的开放平台。

poYBAGKytISAVT0PAAW_wU5KGZ8375.png

图 2 所示的扩展卡定义了一种个性化机制,以便平台知道需要哪些驱动程序资源,以及是否需要从基于云的存储库中检索任何其他软件。相同的卡可在产品线内的任何平台上工作,允许最终开发人员选择最适合单个应用程序的处理能力级别。在这两种情况下,一般的嵌入式软件工程师都会对这些开发感到满意,因为该模型遵循可扩展标准硬件接口的传统 PC 范例,其软件本身存在于主设备上或从中央存储库自动下载。关键优势在于,这种方法创建的平台易于被广泛的软件工程师理解,并且基于已经获得广泛社区支持的开源工件。这导致产品可以在初始现场部署之前和之后快速定制,并且时间大大缩短。尽管提供的示例以物联网应用为中心,但通用方法很好地适用于需要考虑现场可配置性和支持各种已知和未知功能的任何应用。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20329

    浏览量

    254859
  • 嵌入式
    +关注

    关注

    5209

    文章

    20645

    浏览量

    336925
  • 物联网
    +关注

    关注

    2950

    文章

    48121

    浏览量

    418278
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2026年低代码平台市场综合评测:国内10大低代码平台深度解析

    平台采用“可视化配置+代码拓展”混合架构,实现“80%标准化场景快速落地+20%复杂场景深度定制”。 企业级能力升级:平台从单一应用搭建转向支撑核心业务系统(ERP、MES、WMS等)
    发表于 03-30 16:02

    如何通过京东开放平台API获取店铺所有商品列表

    ​ 对于在京东平台运营店铺的商家或开发者来说,自动化管理和分析店铺商品数据是提升效率的关键。京东开放平台提供了丰富的API接口,其中就包含获取店铺商品列表的功能。本文将详细介绍如何调用此接口。 一
    的头像 发表于 03-17 17:30 651次阅读
    如何<b class='flag-5'>通过</b>京东<b class='flag-5'>开放</b><b class='flag-5'>平台</b>API获取店铺所有商品列表

    如何通过1688开放平台API获取指定店铺所有商品

    ​ 场景需求: 在开发电商ERP、数据采集工具或竞品分析系统时,经常需要获取1688平台上某个店铺的全部商品信息(如标题、价格、SKU、库存等)。本文将介绍如何通过1688开放平台提供
    的头像 发表于 03-16 17:23 563次阅读
    如何<b class='flag-5'>通过</b>1688<b class='flag-5'>开放</b><b class='flag-5'>平台</b>API获取指定店铺所有商品

    ​​​​​​​如何通过淘宝开放平台API获取指定店铺的所有商品信息

    ​ 引言 对于开发者而言,获取特定淘宝店铺的所有商品信息是进行数据分析、库存管理、价格监控或搭建第三方应用等场景的常见需求。淘宝开放平台提供了相应的API接口来实现这一功能。本文将详细介绍如何通过
    的头像 发表于 03-16 17:21 463次阅读
    ​​​​​​​如何<b class='flag-5'>通过</b>淘宝<b class='flag-5'>开放</b><b class='flag-5'>平台</b>API获取指定店铺的所有商品信息

    通过京东开放平台API根据商品ID获取商品详情技术指南

    京东开放平台为开发者提供了丰富的API接口,允许开发者获取商品信息、订单数据等。本技术贴将详细介绍如何通过商品ID获取商品详情,包括准备工作、API调用步骤、代码示例和注意事项。整个过程基于京东
    的头像 发表于 03-11 17:05 657次阅读

    通过1688开放平台API根据商品ID获取商品详情

    ​ 摘要 :本文将详细介绍如何调用1688开放平台提供的API接口,通过商品ID精确获取商品的详细信息。内容包括接口概述、请求方式、参数说明、返回数据结构解析以及调用示例。 1. 接口概述 1688
    的头像 发表于 03-10 17:08 601次阅读
    <b class='flag-5'>通过</b>1688<b class='flag-5'>开放</b><b class='flag-5'>平台</b>API根据商品ID获取商品详情

    小艺开放平台平台功能

    平台的高效编排方式。开发者可通过该模式基于鸿蒙Agent通信协议快速、便捷地将成熟的第三方智能体对接至小艺开放平台,实现分发与调用,提升
    发表于 01-30 15:24

    小艺开放平台快速创建鸿蒙智能体

    1.登录小艺开放平台,进入小艺智能体平台页面,点击立即体验,进入创建页面。 2.点击左上角【+创建智能体】按钮,即可进入智能体创建流程。 3.击【+创建】后,会进入到标准创建页面,在这里你可以直接
    发表于 01-19 11:00

    工业物联网平台适合私有本地部署还是云端部署

    工业物联网平台部署方式需根据企业核心需求选择, 私有本地部署适合数据安全要求极高、需深度定制且具备技术实力的企业;云端部署则更适合追求成本
    的头像 发表于 11-12 11:42 523次阅读
    工业物联网<b class='flag-5'>平台</b>适合私有本地<b class='flag-5'>部署</b>还是云端<b class='flag-5'>部署</b>?

    调用拼多多开放平台 API 获取店铺列表

    ​  在电商平台生态开发中,获取店铺信息是常见的需求。本文将介绍如何通过拼多多开放平台的 API 接口获取店铺列表,包括接口概述、调用流程以及注意事项。 1. 接口概述 拼多多
    的头像 发表于 11-10 15:30 869次阅读
    调用拼多多<b class='flag-5'>开放</b><b class='flag-5'>平台</b> API 获取店铺列表

    技术解析:如何通过淘宝开放平台API获取商品券后价

    ​  在电商系统开发、比价工具或优惠信息聚合平台中,获取商品的券后价格是一个常见且关键的需求。淘宝作为国内最大的电商平台之一,提供了丰富的开放平台API( Taobao Open Pl
    的头像 发表于 11-06 15:11 470次阅读
    技术解析:如何<b class='flag-5'>通过</b>淘宝<b class='flag-5'>开放</b><b class='flag-5'>平台</b>API获取商品券后价

    电商API接口开放平台的生态构建与运营策略

    ​ 在当今数字化商业环境中,电商API接口开放平台已成为连接商家、开发者和终端用户的核心枢纽。通过提供标准化的接口,平台赋能第三方快速集成电
    的头像 发表于 10-28 16:40 1007次阅读
    电商API接口<b class='flag-5'>开放</b><b class='flag-5'>平台</b>的生态构建与运营策略

    如何快速在云服务器上部署Web环境?

    如何快速在云服务器上部署Web环境
    的头像 发表于 10-14 14:16 848次阅读

    MiniVC6(C语言快速部署)资料

    MiniVC6(C语言快速部署)软件,无需安装。
    发表于 09-04 16:59 0次下载

    HarmonyOS5云服务技术分享--Serverless抽奖模板部署

    手把手教你部署HarmonyOS Serverless抽奖活动模板(附贴心提醒) 嘿,小伙伴们!今天给大家分享一个超实用的教程——如何用华为HarmonyOS的Serverless模板快速搭建抽奖
    发表于 05-22 20:25