嵌入式系统的复杂度及其具备的功能正在进入一个新阶段。即使是对于大多数人认为相对简单的系统,也需要更复杂的控制来保持其在市场中的地位。开发团队在选择硬件平台时需要考虑采用的标准,上述复杂性则对此产生了连锁反应。
我们可以在许多领域看到这种效果,这里仅以一个安全系统为例。表面上看,两个电子门锁可能看起来同样简单,但是它们所包含的功能却有很大差异。传统的设计采用一个相对简单的微控制器(MCU),并与外围设备接口,用于读取电子钥匙卡(采用磁条或通过NFC原理)。这种类型的系统将被那些更先进和更加智能化的设计所取代,未来的设计将具有更多的功能,包括基于人脸、指纹或语音的识别技术,甚至是利用这些生物特征的可能组合。
对于智能门锁,其核心功能和逻辑保持不变,即只有在钥匙(以任何形式)出现时才能打开门,但其设计所需的复杂程度要高得多。而且必须指出的是,设计仍然需要考虑成本和功率的限制。这种更高级的锁可能需要从摄像头获取输入信息,甚至可能还需要麦克风和指纹读取器,具体取决于使用多少生物特征识别选项。高性能数字信号处理(DSP)用来处理来自这些设备的输入数据,并可以智能地处理每个数据流。
在软件级别,现在已有大量的资源来帮助实现这种设计,许多设计师使用高性能ARM内核来处理高级软件。执行人脸和指纹识别的图像处理和机器学习程序库可用于各种平台,其中包括基于德州仪器Sitara系列的DSP内核以及ARM内核。 OpenCV图像处理程序库即是一个例子。Debian等Linux版本则可为开发和运行时间执行提供了一个方便的环境,能够访问多种编程语言(从Python到C++)。
虽然C和C++是嵌入式系统中使用的传统程序语言,但Python却能够提供许多显著的优势。例如,Numpy程序库拥有广泛的函数组合,支持与复杂机器学习应用相关的多维矩阵和数组所需的复杂数学运算。因此,能够为软件原型设计提供一个更简单的流程。然而,对于从门锁到工业电机控制器等所有嵌入式应用,满足实时要求的能力至关重要。
传统上,为MCU设计的操作系统已针对软件实时功能进行了优化,但是大多数Linux版版却不是这样。 Linux有其实时性,但通常无法访问软件工程师想要使用的程序库,而这却是多核方案的有用之处。例如,Sitara系列不仅提供能够运行确定性算法的DSP,还包括了高速可编程实时单元(PRU),能够独立地于主要面向Linux的ARM处理器内核而运行。
选择适当的硬件也有助于控制目标设计的能效。以门锁为例,一种可能的情形是,即使门前没有人,处理器也会持续处理其输入,对于需要全天候运行的设备,这种方案无疑非常耗电。相反,如果增加一个接近传感器,则可以提醒核心处理器应该检查附近范围内是否有人,并相应地激活摄像头。
开发人员可能希望尝试不同的选项。一种方案是简单的接近传感器,只能确定是否存在足够高度的物体。另一种方案是采用热电传感器,接近的人会发出红外辐射,热电传感器接收到这种辐射后将产生电压。开发人员针对这些开发所需要的是一个原型设计环境,能够支持轻松地切换I/O。
Beagleboard和Beaglebone 都是非常受欢迎的原型设计平台,其中Beaglebone特别适用于空间受限的应用,例如需要嵌入到门内或门框架的锁等等。通过附加的Click板,可以直接为执行器安装不同的传感器和控制器,包括热电传感器和麦克风等各种器件。
相较于采用较简单MCU器件用户可用的选择,进行更高性能嵌入式系统硬件设计时遇到的问题传统上则更加困难。虽然这些器件本身可以适应Beaglebone主板的尺寸要求,但设计高性能多核处理器要比传统处理器困难得多。如果市场上有现成的主板,并带有所需的SoC,对于初始原型设计应该没有问题,但如果系统设计是针对制造而进行优化,则是一个至关重要的考虑因素。
通常情况下,MCU仅有非常简单的电源要求,只需一个电源输入轨即可。但对于高性能微处理器和SoC,通常需要多个电源轨。这些电源轨通常需要灵活可变,以支持SoC所需的不同低功耗模式。在电源轨电压设定后,即使在高电流负载下也不能出现任何偏差。此外,SoC在启动时通常会有严格的电源排序要求。
在考虑如何将SoC连接到存储器时,设计人员也面临着类似的复杂性。基于传统MCU的应用在数据存储方面通常是独立的,相比之下,智能系统则需要访问更多的内存资源,图像和视频缓冲可以轻松占据许多兆字节的数据存储容量。诸如深度神经网络(DNN)等机器学习算法,依赖于系统处理数百万个参数的能力,并需要长期占用大量的存储。
系统所需的存储器不仅要容量大,而且也需采用诸如DDR3之类的协议来实现高速运行。 SoC和DDR3存储器之间的信号传输非常复杂且耗时,总线上的信号总是具有非常严格的时序约束,这要求信号路由长度要相等。较短的直接路径必须要包括一些蛇形绕线布局,以使它们的路径长度与较长的迹线相等。这就是系统级封装(SIP)能够发挥效力之所在。
与许多原型设计平台的系统级模块(SOM)相比,SIP更容易在生产环境中集成。 SOM是一块印制电路板(PCB),需要安装到主电路板上,并通过一个特殊连接器来实现所有定制I/O,这增加了系统的尺寸和成本。另一方面,SIP更像是一个标准的单片IC,可以像其他IC一样与所有其他I/O器件一起焊接到定制PCB。
图1:Octavo OSD335x SIP的功能框图。
Octavo Systems的OSD335x 系列 SIP产品包含有强大智能系统核心所需的一切,也秉承了传统MCU设计的简易性。这些SIP基于德州仪器的Sitara系列SoC,可为工程师提供1GHz ARM Cortex-A8处理器、两个PRU、DDR3内存和一个电源管理IC(PMIC),能够确保它们始终以最高效率运行。OSD335x封装内的PMIC可应对所有不同的电压轨和电源排序,因此就像传统的MCU一样,只需连接一个电源输入。
图2:Octavo Systems的OSD335x。
此外,SIP PMIC中的电源控制电路也负责为并非始终连接到主电源的系统进行电池管理。对于需要通过AC适配器等各种电源供电的系统,OSD335x PMIC可自动处理电源多路复用和电源之间的切换。对于电池供电系统的另一个好处是,通过微型封装实现的集成有助于减少SoC和DDR存储器之间数据传输所消耗的能量。
现实世界要求系统具备更多的智能,并要融入不断发展的物联网(IoT)世界,Octavo SIP解决方案是一个非常高效的处理平台,既提供了传统MCU的简易性,同时又具有更强大的功能。该公司开发的核心SIP技术有助于创建多种变体,确保工程师能够得到针对其应用而调整的版本,并且以一个非常小的封装满足许多智能物联网设备的空间受限要求。对于原型设计,OSD335x已内置针对物联网应用的Beaglebone Black Wireless等平台,可轻松地将SIP从开发移植到生产。凭借Sitara SoC提供的丰富软件支持,这种解决方案一定能够使未来的开发项目更容易地实现。