Jeffrey Cross
Jeffrey Cross

XLR8项目将FPGA速度与Arduino编码融为一体

新的XLR8板

市场上有任意数量的Arduino兼容板和克隆。然而,大多数提供的东西都超出了Arduino的能力范围。但是,尽管看起来很像Arduino Uno,Alorium Technology的新XLR8板(发音为“Accelerate”)有些不同。

对于那些不了解的人来说,FPGA或现场可编程门阵列就像设计自己的芯片一样接近。每个FPGA都包含可配置的逻辑块(CLB),它们非常灵活,可以实现任何基本功能。实际上,它是一个可重新编程的电路,您可以在硬件中实现,而不是在软件中实现功能。 FPGA的好处是你可以自定义它来完成几乎任何任务。然而,FPGA和普通微控制器之间的巨大差异在于,开箱即用,它没有做任何事情。

XLR8是基于Altera MAX10的FPGA板,实现了与ATmega兼容的微控制器,具有与ATmega328相同的程序和数据存储空间。现在,电路板的周期精确到标准ATmega,但至少在理论上,FPGA上有足够的空间来运行ATmega内核,其速度是标准Arduino Uno时钟速度的两倍多。

实际上,至少对Arduino IDE来说,这块板看起来像是Arduino Uno。这么多,您只需选择Uno作为您的电路板类型,然后正常编译并通过USB上传您的草图。

但事情并不完全是他们表面上看起来的样子。此外,FPGA也是Alorium所谓的“Xcelerator Blocks”或XB。这些提供了硬件优化的功能实现,否则必须在软件中实现。

在门外,他们提供两种类型的块。第一个涉及浮点数学 - 如果你曾经在Arduino上做过严肃的数学运算,你会立刻明白最终会有什么大不了的东西 - 另一个块处理伺服控制。可以使用提供的Arduino库访问这两个块。

例如,要利用浮点数学块提供的加速,您需要将代码转换为使用XLR8特定的函数调用。所以,例如:

c = a + b;

变,

c = xlr8FloatAdd(a,b);

但是如果这看起来太费劲,你会很高兴得知伺服控制块可以放入你的代码而不需要任何改变,除了包括一个不同的头文件。

这意味着如果您一直在构建机器人,并且由于服务中断而遇到伺服抖动,您可以将此板替换为机器人中的Arduino板,并且只需一行代码即可消除任何伺服抖动。对于一些可以节省生命的构建。

我已经在我的桌面上预装了大约一个月的硬件,虽然我没有做很多伺服工作,但我必须定期将浮点数学计算到Arduino上。虽然转换代码很痛苦,但硬件加速却大大加快了执行速度。事实上,我有点印象深刻。

我与Jason Pecor坐下来讨论XLR8板,他对伺服和浮点XB有这个说法:

我们已经开发出一种伺服模块,可以消除标准Arduino伺服库常见的抖动/颤动。我们在Maker Faire Milwaukee上展示了这个功能,其中包括一个RedBoard,我们的XLR8板,以及一些安装在伺服系统上的激光指示器,它们进行了非常好的并排比较。

关于伺服示例的一个很酷的事情是,在两块板上运行的草图之间的唯一区别是伺服库包括线。草图的其余部分保持完全相同,但所有伺服控制功能都在FPGA架构中调用硬件功能。

我们还有一个带有风扇,透明管和乒乓球的聪明演示,与标准的基于Atmega的浮点相比,它提供了我们浮点块的良好视觉效果。  

我们的热门列表目前正在考虑的其他模块包括:PID控制,新像素定时器/控制器,多个UART,音频功能和DSP功能。

我对XLR8的真正关注是,至少在最初阶段,Alorium将仅为想要创建自己的XB的用户提供有限的支持。虽然他们说过,

在未来,我们计划提供足够的源代码和文档,以便精通Verilog或VHDL的人员以及Quartus创建自己的XB。

我认为他们需要尽快解决这个问题。因为这块板的真正秘诀在于它是一个FPGA,并且能够利用它。现在,对于面临伺服抖动或浮点问题的用户来说,它是一个很好的工具。但是对于创建自己的XB有很好的支持,对于经验丰富的制造商来说,它可能是一个面对各种问题的重要工具。

XLR8现在已经在Kickstarter上进行众筹,并且还有两周时间可用于该活动。

分享

发表评论