电子硬件设计领域发生了一场悄然的革命。随着硅集成的持续发展(受摩尔定律的影响),工程师逐渐从主要在组件和电路级别的开发转移到与板,模块和子系统进行更多的合作。
好处是大大提高了电子设计的效率。这是一种转变,现已在软件中复制,开发人员希望更多地使用可重用模块,而不是主要依靠他们自己编写的代码行。
向模块化设计的转变具有许多优势。一是通过使用吸引许多客户的平台来实现规模经济中更大的分享能力。工业用户使用模块化硬件已有很长的历史。Versa Module Eurocard(VME)和CompactPCI标准为在小批量市场上工作的集成商和原始设备制造商(OEM)提供了使用高性能计算的能力。他们可以对计算机功能进行更广泛的定制,而不必在高端印刷电路板(PCB)设计上花费时间和精力。从那时起,摩尔定律在功能性方面取得了令人难以置信的增长,同时还降低了单个零件的成本。Raspberry Pi单板计算机就是一个很好的例子。
经济高效的现成硬件
通过利用智能手机片上系统(SoC)平台所带来的规模经济,Raspberry Pi背后的联盟已经能够提供比最初为教育目的而设计的产品更为有效的产品。硅供应商产生的非经常性工程(NRE)成本很容易被主要目标市场吸收,从而为Raspberry Pi的目标用户带来了更大的价值。这种成本优势已转移到工业部门。集成商和OEM通过利用HAT扩展总线添加自己的自定义接口模块,来利用Raspberry Pi平台的模块化优势。
Pi模块的使用使工程团队无需采购相似的组件并将其设计到定制PCB上。与创建前端HAT模块所需的信号完整性和功能检查相比,这些方法通常需要更耗时的信号完整性和功能检查。这些定制模块通常可以使用相对简单的两层或四层PCB。
现成的软件模块的出现
类似的模块化软件趋势已经出现。工程师现在可以将重点完全放在可以增加价值的应用程序元素上。这种趋势不仅受到规模经济和一些供应商有效摊销NRE的能力的驱动,而且还受到网络化集成和服务驱动的业务模型的更大趋势的驱动。嵌入式系统除非构成大型系统(例如,物联网)的一部分,否则今天通常不完整。在这种环境下,可以使用设备来帮助提供一项或多项服务-其中许多服务将在用于支持这些服务的硬件生命周期内进行更改。物联网和云的结合产生了利用这些功能的新业务模型,例如软件即服务(SaaS)和按使用付费。
模块化始于操作系统。操作系统支持对构建灵活的模块化环境至关重要的抽象。通常,操作系统提供的服务范围从简单的输入或输出到完整的网络堆栈,所有服务都可以通过一组记录的应用程序编程接口(API)进行访问。只要服务继续支持API,提供它们的代码就可以更改,而不会影响使用这些API的应用程序。随许多微控制器开发工具一起提供的简单实时调度程序FreeRTOS一样,也适用于商业和更复杂的RTOS实现,例如Wind River的VxWorks 。。VxWorks为嵌入式操作系统设定了行业标准,为一些最关键的基础架构和设备提供了支持。
Linux和其他操作系统可以使任务彼此隔离,从而使内存管理更进一步。简单RTOS结构的一个可能问题是它们在完全未分区的内存空间中运行。一个任务中的错误或恶意行为可能导致另一任务中的数据和代码被意外覆盖,从而导致系统崩溃或其他不良后果。Linux使用由硬件内存管理单元介导的虚拟寻址,以防止任务访问彼此的内存空间。它们只能通过操作系统API或基于这些API之上的应用程序间协议进行交互。
虚拟内存寻址不是任务隔离的绝对要求。一些微控制器架构,包括Arm Cortex-M和Cortex-R系列的几个成员,可以在平面内存空间中实施内存保护。Arm还在其许多处理器中提供了Trustzone安全软件模式,这使得将敏感软件与用户级任务隔离成为可能。有了这种保护,就可以将自定义代码与为应对常见任务而开发得越来越多的现成软件模块结合起来变得更加容易。
开源和专有功能的集成
如今,工程师可以访问一系列通过Github,Sourceforge和其他服务提供的免费开源软件模块和协议栈。还提供了针对安全性至关重要的应用提供更多支持,附加功能或认证的商用堆栈。硅制造商提供的参考设计通常会结合一系列开放源代码和专有功能,以使客户更容易构建原型,直至实现完整的产品。在某些情况下,参考设计会实现一个完整的应用程序,最终用户可以根据自己的需要进行调整。
一些系统设计人员正在利用软件不断增加的模块化优势来构建可调整参数并自动生成代码的开发环境。这些工具通常使用开发人员在图形用户界面上组装的软件的基于块的表示形式。一个示例是Microchip的PIC8,PIC16和PIC32微控制器系列的MPLAB代码配置器。
诸如机器学习和图像处理之类的高级应用程序是用户可以从专家的大量NRE投资中受益并避免如果用户必须从头开始构建该软件所需要的多年开发时间的领域示例。Caffe,PyTorch和Google的Tensorflow使构建,训练和调整复杂的人工智能(AI)模型成为可能,这些模型可以轻松集成到嵌入式处理管道中。对于图像处理,OpenCV是一个广泛使用的库,可以轻松地集成到实时应用程序中。随着机器学习的兴起,当今越来越普遍的使用模型是OpenCV在将图像数据传递到使用Caffe或Tensorflow构建的AI模型之前进行预处理,其中自定义代码主要用于提供事件的实时响应。模型检测到。
汇集全部
开发人员现在可以访问面向云的软件模块和工具,这些模块和工具可以轻松地与常见的网络堆栈和RTOS实施集成。这使复杂程度不同的嵌入式系统可以集成到物联网中。
模块化正在改变嵌入式软件工程师的必备技能。职责的平衡正在从代码开发转变为基于现有模块构建灵活体系结构的能力,这些模块允许在部署新服务时轻松进行自定义编码和运行时配置。通过利用这种模块化,OEM和系统集成商可以轻松地跟上客户需求的步伐,而这是传统方式无法想象的。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.