硬件测试

简短说明

文件: \examples\Processing\DebuggingAndTest\HardwareTest\HardwareTest.va

默认平台: mE5-MA-VCL

简要说明

这是一个用于对 DMA、RAM、GPIO、触发和 LED 进行硬件自检的示例。 该示例大量使用了 parameters 库的算子。

Hardware Test 示例用于执行硬件自检。

该 applet 包含以下功能:

  • DMA 性能测试:针对不同内存大小和中断率的不同图像尺寸
  • RAM 测试:检查错误和处理情况
  • 相机:检查相机端口图像采集
  • 相机触发:向相机发送触发信号
  • GPIO:监控 GPI 并设置 GPO
  • 事件测试:生成软件回调事件
  • 监控:FPGA 温度、电源、PoCL 等(参见 BoardStatus)

下图显示了该 applet 的功能块。

Applet Hardware Test 的框图

图 283. Applet Hardware Test 的框图


VisualApplets 实现分为两个进程。 Process0 包含所有图像处理部分,即 DMA 测试、RAM 测试和相机采集。 而 Process1 包含与正在运行的采集无关的部分。 由于没有 DMA 算子的进程会在加载 applet 时立即启动,因此这里的函数可以在独立于采集的情况下使用。 有关详细信息,请参见 “无 DMA 的进程 / 触发进程”。

以下两个截屏展示了 Process0 和 Process1。

Hardware Test Process0

图 284. Hardware Test Process0


Hardware Test Process1

图 285. Hardware Test Process1


为了便于使用该 applet,其实现大量使用了 parameters 库中的算子。 H-Box 实现包括各个功能部分。 参数在 H-Box Parameters 的 Property 中列出,以便进行独立查看。 当在例如 microDisplay 中使用该 applet 时,这非常有用,因为如下一个截屏所示,只会列出易于使用的参数。

Applet Hardware Test 在 microDisplay 中对 Parameter Translates 和 References 的使用

图 286. Applet Hardware Test 在 microDisplay 中对 Parameter Translates 和 References 的使用


该 applet 的实现非常直观,通过研究 VA 文件可以轻松理解。 不过,我们将仔细研究一些参数转换和引用,以了解其用法。

主图像处理部分的实现

主要的图像处理部分包含 RAM 测试、DMA 性能测试和相机采集。 该 applet 仅允许同时在 DMA 通道上输出其中一种模式。 因此,使用了多个 SourceSelector 算子。 为了避免指定正确输入索引的繁琐参数化过程,我们使用 EnumParamTranslator 算子来实现简便操作。

用于 RAM 测试、DMA 性能测试和相机采集的 Applet 硬件测试实现

图 287。用于 RAM 测试、DMA 性能测试和相机采集的 Applet 硬件测试实现


接下来,我们将详细介绍 TranslateOutputSelect 的参数值。

首先,需要定义枚举值。

"DMA_Performance" = 0x001;
"Camera" = 0x002;
"RAM0_Difference" = 0x000;
"RAM0_Errors" = 0x100;
"RAM1_Difference" = 0x010;
"RAM1_Errors" = 0x110;
"RAM2_Difference" = 0x020;
"RAM2_Errors" = 0x120;
"RAM3_Difference" = 0x030;
"RAM3_Errors" = 0x130;

正如您所看到的,枚举值被定义为十六进制值。 这使得能够轻松地将其分发到三个 SourceSelector 模块。 低四位用于模块 TestMode.SelectSource,第 4 到 7 位用于 RAMTest/SelectRAM.SelectSource,第 8 到 11 位用于 RAMTest/SelectRAMOutputMode/EnableBitpattern.SelectSource。 这极大地简化了参数 WriteAction 和 ReadAction 的实现。

随后,转换后的值可与枚举值结合使用。 更改该值将自动更改 SourceSelector 模块的参数值。

DMA 性能模式发生器的实现

H-Box GeneratorDMAPerformance 包含图案生成器以及用于控制输出帧率的图像阀。 使用空白图像生成器以及像素和图像 Counter 可以非常简单地生成图案,从而产生滚动对角线图案。

该阀由周期生成器算子 Generate 控制。 生成器的单位以 ticks(时钟周期)给出。 由于我们希望指定带有时基的帧率,因此我们使用转换算子 FloatParamTranslator。 因此,我们使用该算子将每秒帧数转换为 ticks。 以下截屏显示了具体实现。

使用 FloatParamTranslator 将每秒帧数转换为 Ticks

图 288。使用 FloatParamTranslator 将每秒帧数转换为 Ticks


在 HardwareTest 示例中使用算子 IntParamTranslator 设置宽度和高度

图像宽度和高度的操作步骤与前面章节中所示相同。 在这种情况下,我们可以使用算子 IntParamTranslator。 在这里,我们可以将这些值直接转发到设计中的两个模块。 请注意参数 DisplayName 和 DisplayHierarchy 的给定值。

使用 IntParamTranslator 在 Applet 中轻松设置宽度和高度

图 289。使用 IntParamTranslator 在 Applet 中轻松设置宽度和高度