作者:Steve Leibson,本文转载自:得捷电子DigiKey微信公众号
从前,嵌入式系统的开发从硬件开始。现在,可以再加入FPGA!面对应用需求越来越复杂的物联网细分市场,以及快速迭代和成本效益的挑战,选择一种现成套件用于无线传感节点原型设计和调试,是一种兼具开发效率和成本效益的解决方案,而全面的软件环境和优化的硬件平台可加快你的开发进度。在这个一连三集的开发板小系列,我们一起来了解更多!
Arduino和Raspberry Pi开发板是颠覆嵌入式系统开发方式的登峰造极之作。从前,嵌入式系统的开发从硬件开始。项目步骤一般如下:
1.规范系统要求,包括粗略估计处理速度和I/O要求。
2.选择符合功率、性能和价格要求的适当微控制器或微处理器。
3.连接硬件原型。
4.调试硬件原型。如有必要,编写少量驱动程序代码来调动线路。
5.硬件运行后,开始执行代码。
6.调试代码。
7.发货!
现在没那么简单了。首先,有数以千计的处理器和微控制器可供选择,而它们来自众多供应商。没有人可以把所有这些替代方案都记在脑中。
其次,上述第三项(连接硬件原型)提出了一个实际问题,因为三十年前全球已发展到采用表面贴装技术的阶段。对于电气工程,上世纪70年代普遍使用的原型开发技术手工布线甚至绕接技术,类似于手工锻造技术。现今已很少用到此类技术。您确实需要设计、制造和焊接原型印刷电路板,如果有更好(更快、更低成本)的替代选项,谁会花时间那样做呢?
这种情况为开发板创造了机会,直接绕过上面的一至四步。目前市场上最知名的两种开发板是ArduinoUno(及其众多型号)和Raspberry Pi。Raspberry Pi的最新型号是Raspberry Pi 4 Model B。虽然人们经常将Arduino开发板与Raspberry Pi开发板相提并论,但两者截然不同。
嵌入式开发:从Arduino起步
Arduino是一家开源计算机硬件与软件公司的名称、一个开源社区项目、设计和制造Arduino开发板的用户社区、一种集成开发环境 (IDE) 以及实际Arduino微控制器板本身。(Arduino这个名字出自意大利伊夫雷亚的一家酒吧,Arduino项目的一些最初创始人过去常在那里会面。)
图1:Arduino Uno是一款基于8位Atmel微控制器的入门级开发板,具有一些简单的I/O功能,可作为不需要高性能的嵌入式设计的开发平台。(图片来源:Arduino)
最初的Arduino开发板基于Atmel的AVR微控制器。在使用Arduino IDE开发代码后,Arduino IDE随后会编译代码,并将代码下载到板载微控制器的闪存中。Arduino IDE支持C和C++语言,具备其独有的特殊代码结构规则。由于Arduino概念得到了极大发展,较新的Arduino型号已升级到基于32位Arm® Cortex®-M0的微控制器,以实现更高性能(图1)。
Arduino开发板是作为入门级微处理器开发板,用于控制相对简单的嵌入式系统,因此其I/O功能非常简单。除了一些带有简单数字I/O和模拟输入引脚的0.1英寸针座外,Arduino Uno开发板还有一个USB端口以及一些可以闪烁的板载LED。就这么简单。I/O引脚由软件控制,因此在发挥这些引脚的性能时不会有太多阻碍。
升级到Raspberry Pi!
如果嵌入式设计需要更高性能,那么可以考虑从Arduino升级到Raspberry Pi 3 B+开发板(图2)。以下是该开发板的重要特性:
图2:Raspberry Pi 3 Model B+是一款出色的嵌入式硬件开发平台,具有四核64位Arm 应用处理器、1 GB SDRAM以及丰富的I/O功能。(图片来源:Raspberry Pi)
有了如此多的处理能力、存储器和I/O功能,您可以做很多事情。Raspberry Pi 3 B+开发板可运行Linux,且该产品具有庞大的支持社区。Raspberry Pi 3 Model B+价格低廉,成为许多嵌入式开发项目的绝佳硬件平台。
如果您需要提速,该怎么办?
如果Raspberry Pi 3 Model B+满足您对嵌入式系统设计的所有要求,则无需再寻找其他产品。既然这款开发板价格低廉,功能又极其强大,那么何必多此一举呢?但是,如果您的嵌入式系统需要的特殊I/O功能超出Raspberry Pi Model 3 B+的大量I/O资源,该怎么办?
这种情况就是您需要FPGA的高性能功能的一个例子,FPGA擅长让您仅使用软件即可定义出新型高速接口。无需额外布线。
ZynqBerry基于Xilinx的Zynq Z-7010 SoC,融合了双核Arm® Cortex®-A9 32位微处理器和FPGA。以此打造的器件与单个处理器(或甚至以1.4 GHz运行的四个处理器)相比,能够处理更多的高性能任务。您可以使用可下载的Xilinx Vivado工具套件对Trenz ZynqBerry进行编程,该套件可为Zynq SoC的软件(处理器)和硬件 (FPGA) 端提供 IDE。
更喜欢Arduino的外形尺寸?
但如果您更喜欢Arduino Uno的外形尺寸呢?Trenz Electronic的TE0723-03M ArduZynq也可满足您的这一需求(图3)。
图3:对于需要更多处理器和I/O性能的Arduino项目,Trenz Electronic的TE0723-03M ArduZynq将Xilinx Zynq SoC置于Arduino开发板外形尺寸中。(图片来源:Trenz Electronic)
与Trenz ZynqBerry一样,您可以使用可下载的Xilinx Vivado工具套件对Trenz ArduZynq进行编程。
像Arduino Uno和Raspberry Pi这样的开发板可以简化许多嵌入式开发选择,但无法应对所有嵌入式设计挑战。当您的需求超出这些开发板的功能时,无需更改开发板的外形尺寸。您只需在组合中添加一点FPGA。