作者:Steve Leibson
很多嵌入式设计使用基于微处理器和微控制器的单板计算机 (SBC) 和系统级模块 (SoM)(例如,请参阅“使用 Raspberry Pi 3 构建低成本工业控制器”)。但是,更多嵌入式应用无法忍受与软件相关的响应时间所带来的延迟。
这些应用需要只有定制硬件方可实现的额外性能,而开发定制硬件的最快捷方法就是使用 FPGA。
本文将讨论使用 SoM 来开发嵌入式系统的优势,这些系统需要借由 FPGA 提供更高的处理能力。本文还将介绍各种不同的 FPGA SoM,并讨论它们在嵌入式设计开发中的使用。
FPGA 系统级模块的角色
系统级模块 (SoM) 可以帮助设计人员开发带有定制接口的特定外形尺寸的嵌入式系统,而无需从头开始开发内核处理系统。设计人员可将预先设计且经过测试的 SoM 插入到预先设计或定制的载卡中,以创建嵌入式设计,其功能与完全定制的设计相同,但硬件开发所需的时间要少得多。
与从头开始开发硬件相比,使用 SoM 具有几大优势,其中包括:
曾经由微处理器和微控制器占领的市场现在由 SoM 取而代之,通孔和插座式元件失去了主导地位。引脚兼容性让设计人员得以从一系列的兼容处理器中进行选择,挑选具有正确的时钟速率和适当的片载存储器容量的处理器。但是,随着引脚数的增加和表面贴装封装技术的采用,这种设计方法已经过时,SoM 随之应运而生,其外形尺寸和封装与先前的引脚兼容式微控制器系列具有相同的作用。
若使用 SoM 作为项目的计算平台,设计工程师能够集中精力和资源来开发最终应用,而不会迷失在设计计算平台时的繁琐细节中。例如,在几百兆赫 (MHz) 的时钟速率下,由于差分走线延迟、噪声、串扰和其他诸多挑战,连接到应用处理器的 SDRAM 的电路板布局变得日益艰难。然而,SoM 供应商在项目开始之前就已经完成了很多设计工作,从而能够解决这些难题,缩短产品面世时间。
要为嵌入式开发项目选择合适的 SoM 系列,必须对各种因素进行认真分析,包括预期的嵌入式资源需求,以及对设计可扩展性、未来适应性和易用性的需求。这有助于选择合适的 SoM 外形尺寸和封装大小,提供丰富的替代方案选择,以应对已知的挑战和无法预期的未来挑战。若选择的 SoM 系列包含多个产品成员并具有可兼容的外形尺寸和连接器封装,则可以扩大设计团队的选择范围,让产品能够更好地经受未来的考验。
基于带处理器和 FPGA 的 SoC 的新型 SoM
SoM 通常采用带有多个应用处理器的 SoC,但有一种新型嵌入式处理器 SoC 集成了 FPGA,也适用于 SoM 设计,例如 Xilinx 完全可编程的 Zynq®-7000 SoC。Xilinx Zynq-7000 SoC 将 Arm® Cortex®-A9 应用处理器的软件可编程性与 FPGA 的硬件可编程性结合在一起。Zynq SoC 的内置 Arm 微处理器,结合强化外设和 SDRAM 存储器控制器(称为 Zynq SoC 的“处理系统”或“PS”),执行通常由嵌入式微处理器或微控制器处理的所有基于软件的任务,而集成的 FPGA(称为 Zynq SoC 的“PL”,也就是“可编程逻辑”)则为需要更快执行速度的嵌入式任务提供硬件 I/O 响应时间和硬件加速。
Xilinx Zynq SoC 提供多种不同的处理器配置和速度,就芯片上的 FPGA 结构而言,提供的选择甚至更多。选择基于混合处理器/FPGA SoC(例如 Xilinx Zynq-7000 系列)的 SoM 系列,可以扩大选择范围,提高产品的未来适应性。
此类 SoM 系列示例之一是来自 Trenz Electronic 的 TE0720 系列(图 1)和配套 SoM 载板 TE0703。所有 SoM 都基于 4 x 5 cm 的通用外形尺寸。Trenz Electronic TE0720 系列的模块采用了 Xilinx Zynq-7000 SoC 系列的两个成员之一:
- TE0720-03-2IF 基于 Xilinx Zynq Z-7020 SoC
- TE0720-03-1QF 基于 Xilinx Zynq Z-7020 SoC
- TE0720-03-1CR 基于 Xilinx Zynq Z-7020 SoC
- TE0720-03-1CFA 基于 Xilinx Zynq Z-7020 SoC
- TE0720-03-2IFC3 基于 Xilinx Zynq Z-7020 SoC
- TE0720-03-L1IF 基于 Xilinx Zynq Z-7020 SoC
- TE0720-03-14S-1C 基于 Xilinx Zynq Z-7014S SoC
所有这些 SoM 都具有相同的连接器封装,包括三个 Samtec LSHM 无极性连接器,带有数百个 I/O 引脚,另外在 SoM 和载板之间还有电源和接地引脚。
图 1:Trenz Electronic 的 TE0720 SoM 采用 Xilinx Zynq Z-7020 或 Z-7014S SoC,还提供 1 GB 的 SDRAM 和其他非易失性存储器。(图片来源:Trenz Electronic)
要见识 SoM 设计方法的灵活性,也许最好的方式是先看一下 TE0720 SoM 系列的 TE0703 载板,然后通过 I/O 引脚回到 SoM,看一下 SoM 的资源(图 2)。
图 2:Trenz TE0703 载板将众多 I/O 引脚从相关 4 x 5 cm SoM 板分接到嵌入式系统的其他部分。(图片来源:Trenz Electronic)
TE0703 的方框图显示了从 SoM 板分拆的众多重要 I/O 功能,包括:
SoM 和 SBC 各有各的用途
处理速度、响应时间、I/O 能力是 SoM 的显著特征。但是,嵌入式系统中经常也会集成 SBC,例如 Arduino Uno 和 Raspberry Pi 系列,因为这些产品同样拥有广泛的支持基础。因此,Trenz Electronic 也提供相应版本的 Arduino 和 Raspberry Pi 开发板:基于 Xilinx Zynq-7000 SoC 的 TE0723-03M ArduZynq 和 TE0726-03M ZynqBerry。这些 SBC 为连接很多现有插件卡搭建了桥梁,例如 Arduino 盾板和各种 Raspberry HAT 和 Bonnet 开发板。
与内置于 TE0720 系列 Trenz Electronic SoM(采用 Zynq Z-7014S 和 Zynq Z-7020 器件)中的 FPGA 容量相比,集成到 TE0723-03M ArduZynq 和 TE0726-03M ZynqBerry SBC 中的 Zynq Z-7010 SoC 的 FPGA 容量存在显著差异。虽然所有 Zynq-7000 SoC 都采用双核 Arm Cortex-A9 处理器,但该器件上的 FPGA 数量存在差别,如表 1 所示:
Xilinx Zynq SoC | 可编程逻辑单元 | 块 RAM 的容量大小 (Mb) | DSP 切片 |
---|---|---|---|
Z-7010 | 28K | 2.1 | 80 |
Z-7014S | 65K | 3.8 | 170 |
Z-7020 | 85K | 4.9 | 220 |
表 1:Trenz Electronic 的 SoM 中使用的 Xilinx Zynq-7000 SoC(Z-7014S 和 Z-7020)所提供的 FPGA 资源多于 Trenz Electronic ArduZynq 和 ZynqBerry SBC 中使用的 Zynq Z-7010。(数据来源:Digi-Key Electronics)
此外,TE0723-03M ArduZynq 和 TE0726-03M ZynqBerry SBC 仅提供 512 MB 的板载 SDRAM,而 TE0720 SoM 提供了 1 GB。
Trenz Electronic 为其 SoM 提供多种载板,包括 TE0703-05、TE0706-02、TE0701-06 和 TEB0745-02。这些载板提供很多标准化 I/O 功能。其中某种载卡可能适合某个特定嵌入式应用,但也可以将嵌入式系统设计拆分到可接受 SoM 程度产品的定制设计载板中,以满足不同的处理需求。这种灵活性突显了将 SoM 系列作为嵌入式设计基础的设计方法优势。SoM 一致的标准化连接器封装使得 SoM 能够简单地互换,以适应系统规格的变化。
总结
SoM 可以大幅缩短为嵌入式系统进行原型开发所需的时间,并降低项目风险。只要 SoM 外形尺寸和连接器封装受支持,就可以插入具有更多 FPGA 资源的 SoM,从而满足不断增长的需求。此外,各种各样基于 Xilinx Zynq-7000 SoC 的兼容型 SoM 可将双核 Arm Cortex-A9 处理器的处理能力与 FPGA 资源结合在一起,也有助于加快嵌入式设计的开发。
这种采用 SoM 的嵌入式设计方法不仅可以缩短开发硬件部分所需的时间,还允许在项目中更早阶段开始软件开发,从而降低设计风险。如果项目范围和要求在扩展,它还能够提供良好的灵活性。
关于作者:
Steve Leibson 是 HP 和 Cadnetix 的系统工程师、《EDN》和《Microprocessor Report》杂志主编以及 Xilinx 和 Cadence 的技术博主,并担任过两集“The Next Wave with Leonard Nimoy”的技术专家。33 年来,他一直致力于帮助设计工程师们开发出更好、更快、更可靠的系统。
文章来源:Digikey