西野花梨已经创建了许多开发人员工具和支持的硬件和软件产品,以帮助最大限度地降低嵌入式开发风险,加快从小型消费设备到高性能等各种产品的上市时间工业控制和遥感设备。即使入门也是一个挑战,因为软件开发取决于硬件是否准备就绪。后续集成受到硬件和软件之间的许多相互依赖性的影响,从设备驱动程序,适配层和OS内核向上到应用程序(API)和应用程序本身。虽然必须面对这些问题,但开发团队通常希望将他们的资源集中在应用程序级别,以创建独特的功能,从而使产品在市场中脱颖而出。
为了帮助克服一些早期障碍,芯片供应商已经创建了开发平台,可以解决许多硬件设计难题并加快开始处理软件的过程。在选择提供所有必需功能并接近理想配置的平台后,团队可以在项目进展时对硬件进行微调,以添加独特或增值功能。最终,可以为生产目的创建定制的,小型化的硬件版本。
另一方面,可提供大量单板计算机(SBC)或计算机模块(COM)硬件,采用流行的处理器架构,如x86,Intel®Atom™或ARM®,采用各种微型外形,如PC/104或Mini ITX。这些可以用作软件开发的平台,然后在很少或不需要对硬件进行进一步修改的情况下扩展到生产中。
任何嵌入式开发平台都需要板级支持包(BSP)来提供必要的软件用于控制特定于硬件的功能。 BSP的各种元素包括板上设备的驱动程序,使OS能够与板硬件通信的适配层,以及用于加载和启动OS的引导加载程序。由于存在将硬件与OS连接的各种软件组件,因此创建BSP取决于操作系统及其特性的知识。
创建使用Microsoft®Windows®CE或Windows XP Embedded等框架的嵌入式操作系统映像和应用程序软件为产品开发人员提供了在商业支持的生态系统中工作的优势。这种方法的好处包括访问现成的商业工具,如Visual Studio集成开发(IDE),其中包括用于设计和构建自定义操作系统映像的Platform Builder工具集。开发人员可以使用此工具从目录项菜单中仅选择所需的功能,从而最大限度地减少对内存等系统资源的需求,从而自定义操作系统映像。还有一些现成的设备驱动程序列表可以快速轻松地合并,或者在必要时帮助构建自定义驱动程序。
因为Microsoft Embedded OS内核和典型行为是已知的,所以第三方如电板供应商可以更轻松地提供所需的支持,如BSP,以帮助开发人员快速启动和运行硬件。
除了BSP之外,还需要一个用于定制操作系统的软件开发工具包(SDK)来帮助工程团队创建应用程序软件。 SDK提供必要的软件,包括一组允许应用程序与操作系统交互的应用程序接口(API)。 Platform Builder工具集还包括一个应用程序向导,可帮助硬件团队创建基本的示例应用程序和动态链接库(DLL),这些应用程序与SDK一起帮助应用程序开发人员了解操作系统并使用eMbedded Visual等工具创建自己的自定义应用程序C ++®。图1说明了Windows Embedded CE开发中涉及的硬件和软件组件。
Microsoft最近通过引入用于标准SDK简化了跨设备应用程序的编写。这提供了一组基准组件,开发人员只需将标准SDK作为组件包含在其Windows CE .NET设备中即可确保在其设备中使用。 eMbedded Visual C ++ 4.0及更高版本中包含对标准SDK的支持。
虽然Visual Studio现在支持Linux和iOS开发以及Windows Embedded,但Linux开发人员历史上并没有获得商业支持的好处工具。尽管如此,开源开发带来的以及与Linux交互的低前期成本是使Linux变得非常受欢迎的因素。事实上,大多数非桌面计算系统现在都运行在某种形式的Linux操作系统上。
即便如此,开发基于Linux的设备可能更容易,更高效,更方便。例如,当OS的属性变化如此广泛时,硬件供应商很难创建合适的BSP。创建标准化嵌入式Linux发行版的举措试图克服硬件开发人员的一些变幻莫测,从而简化硬件和软件开发的交叉。 uClinux是针对简单微控制器的项目示例。它可以基于Linux 2.0,2.4或2.6内核,并附带用户应用程序,库和工具链。微控制器供应商可以为任何给定产品的评估板创建一个uClinux BSP,从而为客户提供更快,更简单的开发径,前提是他们为所选择的微控制器使用适当的uClinux端口。
Yocto Project是另一种方法的示例,旨在帮助硬件开发人员在将开源开发与商业支持框架的便利性相结合的中创建自定义Linux发行版。该项目建立了通用模板,工具和方法,并利用Linux基金会的长期支持计划(LTSI)来标准化内核。 LTSI提供必要的范围,以严格控制的节奏应用安全性和错误修复,允许每个内核版本得到适当。
与Yocto项目的连接可以为各种类型的组织提供优势,包括芯片制造商,工具供应商,Linux发行版的创建者和嵌入式设备开发人员。因此,该项目得到了众多行业参与者的支持,他们正在投入人力和资源来帮助简化Linux的设备开发。 Yocto项目为Linux构建系统和操作系统实施的碎片提供了解毒剂,这可能使产品开发复杂化并阻碍硬件或软件供应商为其客户提供支持的努力。 Yocto项目带来的额外效率还有助于降低开发成本,加快需要高质量的产品的上市时间,例如汽车模块或运营商级电信系统。
作为一款基于Linux的操作系统,除了大型组织的支持之外,Android作为智能手机和平板电脑的平台也取得了巨大的成功。开发人员可以使用Android SDK和Android Studio或第三方应用开发工具等工具快速为Android手机创建移动设备或应用。谷歌现在正在扩展Android系列以包括其他类型的设备:Android Wear就是一个例子,旨在开发可穿戴电子产品,如智能手表。
Android Things的到来对于开发人员来说可能是一个令人兴奋的举动嵌入式系统与Yocto项目类似,Android Things使开发人员不必创建或修改自己的Linux内核。这有望为小型,资源受限的设备创建应用程序,就像开发移动应用程序一样简单,并且可以将新的应用程序开发人员群体从移动场景带入嵌入式世界。随时可用的交钥匙,认证开发板和Android Things SDK使原型设计能够立即开始。
Android Things SDK(图2)支持用于移动开发的Google Services API子集,并删除那些不适合嵌入式开发的。通常,这些是需要用户输入或身份验证凭据的API。另一方面,添加了Things支持库,它引入了嵌入式设备中常见而不是移动设备中的硬件类型的API。这些包括连接到GPIO或接口的传感器和执行器,例如I 2 C,SPI或UART。
图2: Android Things在物联网支持库中添加了额外的API来管理嵌入式设备中使用的硬件类型。
从多个通道捕获传感器数据的能力,汇总并发送到云中的分析和机器学习应用程序,对于未来工业自动化的发展至关重要。在Advantech AIMB212D和Digi Connectcore 6UL等连接SBC上托管的应用程序在第四次工业(工业4.0)的网络物理系统中发挥关键作用,收集和转发传感器数据,如用于振动传感的加速度计信号,生产率指标,组件可追溯性数据或质量信息,如检查图像。当然,这两种SBC都经过认证,可以连接到Microsoft Azure云,并附带软件来实现这一点。
除了嵌入式软件API,研华还提供带有AIMB212D的SUSIAccess™API。像SMbus和硬件器一样用于从连接的传感器捕获数据。 SUSIAccess结合了研华的安全和统一智能接口(SUSI),用于嵌入式设备,具有支持数据挖掘,备份和远程恢复的附加功能,并帮助将感测数据传输到研华的WISE-PaaS物联网软件平台,提供远程,设备管理等服务寻求使用Digi Connectcore 6UL板解决类似应用程序的开发人员,在基于Yocto的Linux中工作,可以利用Digi开发的软件扩展来促进云集成。其中包括Digi TrustFence™基于硬件/软件的安全框架,对空中下载(OTA)固件更新的支持,以及远程设备管理和健康。图3显示了构成Digi嵌入式Yocto平台的BSP和软件扩展,包括对云集成的支持。
Android Things特别适合创建物联网设备,不仅包括用于设置温度传感器,智能相机或其他传感器的低级接口的API,还提供对Weave通信平台的访问,以简化将设备连接到Google Cloud的过程。使用Weave设备SDK,开发人员可以将设备连接到Google的Weave服务器,该服务器处理安全设备注册,设备管理以及与Google智能助理等服务的集成。使用Weave开发者控制台可以轻松设置和设备,并且注册为Weave开发人员可以访问Weave Developer应用程序,以便通过移动设备或平板电脑测试和控制设备。
通过良好支持的SBC设计嵌入式系统更加友好和快捷,简化了对系统启动和运行所需资源的访问。即便如此,操作系统的选择也会对项目的成功产生深远的影响。 BSP和SDK中的驱动程序和API等软件以及应用它们的良好支持工具有助于最大限度地减少开发人员必须自己完成的工作,并允许更加关注应用程序级别的差异化功能。
像Yocto Project这样的计划使Linux开发人员能够享受类似于那些选择Windows Embedded由的用户所提供的支持。 Android Things现在为小型连接设备的创建者提供类似的好处和简化的移动应用程序开发体验。