中能聚控采集卡使用学习进展报告及后续规划

当前已完成内容

  1. D-DAQ 的PL端程序在采集卡底板上可以应用,程序执行后可以通过万兆网口将udp包数据发送至上位机,并由DPDK接收消费。
    alt text
    进行100_000次采样,每个udp包传输5个采样点,此时显示DPDK接收到20000个UDP包,表明所有采样点均可以传输,没有出现丢包状况。
  2. 使用中能聚控的程序,测试子板与主板的板间aurora协议数据传输,给子板提供正弦波信号,数据传输到上位机,上位机接收端程序显示对应通道波形。
    alt text
    设置的信号源正弦波频率为10Khz,采样率为2M,则2000个采样点对应一个正弦波周期。上位机显示接受的波形符合预期。

未完成内容以及规划

  1. aurora数据传输,应该需要使用中能聚控的相关程序与ip核,主板部分需要拓展接口将中能聚控提供的aurora协议部分与现有PL端程序对接。
  2. PS端相关程序未能在板卡上应用。具体在于需要根据新底板的硬件内容,对PS端程序进行修改,并且需要对用于制作linux系统的dts设备树文件进行修改,使核心板可以使用相关底板的外设。
  3. 底板用于PS端的万兆网口芯片不同,需要给Linux系统提供适配驱动。

如果需要将现有的PS端程序应用于板卡上,则需要:

  1. 修改 Vivado 工程,根据新底板原理图,调整 PS 的 MIO 分配(UART、SD、以太网等);
  2. 生成新的 .xsa文件;
  3. 利用 Vitis 生成适配新底板的system.bit(PL 配置)、zynqmp_fsbl.elf(FSBL,启动加载器)、pmufw.elf(PMU 固件,仅 Zynq MPSoC)、设备树源文件(zynqmp-mzux.dts);
  4. 替换米联客脚本对应目录下的文件;
  5. 执行脚本生成 Linux 系统。

设备树编写

设备树文件可以借助于根据 .xsa 自动生成基础设备树(如 pl.dtsi、pcw.dtsi)编写,但板级信息(如以太网 PHY 地址、I2C 从设备、用户 LED/按键的 GPIO 编号等)需要手动补充。

根据工程文件需求,设备树中,至少需要编写的内容有:

  1. 内存配置(memory@0),用于定义系统物理内存大小和地址范围;
  2. 控制台串口(serial0),用于制定系统控制台使用的串口,串口与PC相连,可以通过PC的串口调试助手等应用控制系统控制台;
  3. 以太网接口,包括PS端以太网和PL端以太网,用于控制系统以太网通信;
  4. SD卡(sdhci0),用于读取SD卡内存储的系统;
  5. USB 控制器(usb0),用于启用usb,可用于拓展外设;
  6. GPIO(&gpio),用于配置PS端的GPIO引脚;
  7. PL 外设节点(amba_pl),包含了所有 PL 端 IP 的描述,需要通过vitis根据.xsa文件生成;
  8. 其他内容。

生成设备树后,可以直接使用米联客教程的脚本,生成Linux系统。

修改设备树时,部分位置修改思路如下:

  1. 现有米联客板子和官方板子使用的uart串口不同,直接套用原设备树的uart串口无法连接板子控制台。此时需要更换使用新的串口。
     // 米联客板子
     &uart0 {
     	cts-override ;            // 通过 cts-override 忽略硬件流控,即使板子没有连接 CTS/RTS 线,也能正常工作。
     	device_type = "serial";
     	port-number = <0>;
     	status = "okay";         // 在 Linux 内核中,通过 status = "okay" 和 port-number = <0> 使得内核识别它为 ttyPS0,并作为默认控制台(结合 chosen 节点中的 stdout-path = "serial0:115200n8")。
     	u-boot,dm-pre-reloc ;    // 在 U-Boot 启动阶段,通过 u-boot,dm-pre-reloc 确保控制台早期可用
     };
     
     // 新板子(假设使用uart1)
     &uart1 {
     	cts-override ;
     	device_type = "serial";
     	port-number = <1>;
     	status = "okay";
     	u-boot,dm-pre-reloc ;
     };
    
  2. 关于PS端网口,需要关注PHY芯片的型号和PHY地址。芯片型号如果和旧板子的不同,则需要获取到新的芯片驱动,并对设备数进行修改。

调试计划流程

  1. 修改工程文件,实现系统运行,并可以通过控制台串口获取系统运行状态和运行结果;
  2. 调试PHY芯片,通过控制台读取系统日志,获取调试反馈结果;
  3. 运行相关程序,测试PS端数据发送功能,实现上位机接收数据;
  4. 安装ssd后,配置文件系统,测试系统流盘功能。

本文章使用limfx的vscode插件快速发布