ZHCACT4 june   2023 AM2431 , AM2432 , AM2434 , AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1 , AM263P4 , AM263P4-Q1 , AM3351 , AM3352 , AM3354 , AM3356 , AM3357 , AM3358 , AM3358-EP , AM3359 , AM4372 , AM4376 , AM4377 , AM4378 , AM4379 , AM5706 , AM5708 , AM5716 , AM5718 , AM5718-HIREL , AM5726 , AM5728 , AM5729 , AM5746 , AM5748 , AM5749 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442 , AM6526 , AM6528 , AM6546 , AM6548

 

  1.   1
  2.   摘要
  3.   商标
  4. 18b-10b 线路编码简介
  5. 2用于数据发送和接收的 PRU 实现
    1. 2.1 编码和解码数据
    2. 2.2 PRU 模块接口和 GPIO 模式
    3. 2.3 用于通信的 PRU GPIO 移出和移入模式
    4. 2.4 用于通信的三通道外设接口
    5. 2.5 LVDS 和 M-LVDS 接口
  6. 3具有 CRC 模块和开销优化的系统解决方案
    1. 3.1 PRU CRC16/32 模块
    2. 3.2 编码和解码开销优化
  7. 4验证
  8. 5总结
  9. 6参考文献

用于通信的 PRU GPIO 移出和移入模式

PRU 增强型通用输出 (EGPO) 可配置为以移出模式进行数据传输,数据在 PRU GPO1 (CLOCKOUT) 的每个上升沿移出 PRU GPO0 (DATAOUT)。移位速率由应用于 PRU 内核时钟的两个级联分频器的有效除数控制。为了通过 8b-10b 编码实现 100Mbit 数据速率,必须将 125MHz 时钟与除以 2 的 250MHz 内核时钟结合使用。移出模式支持两种时钟子模式:自由运行时钟模式(默认)和固定时钟计数模式。对于固定模式,数据包长度最多可配置为 255 位,并且在 ICSSG_GPECFG<n>_REG 寄存器的位 17 中设置了一个额外的 PRU_GPO_SHIFT_CLK_DONE 标志。

两个 16 位影子寄存器(GPO_SH0 和 GPO_SH1)用于支持乒乓缓冲器。每个影子寄存器都有独立的负载控制,这些负载控制可通过 PRU R30 寄存器的位 29 和 30 进行编程。请注意,GP_SH0 寄存器需要加载 0x8000 作为起始帧,因为移入 GPI 检测到起始位为第一个 1 或 0,而该起始位不包含在数据帧中。加载起始帧后,可以将更新的数据不受任何限制地加载到 GP_SH0 中。图 2-4 显示了 PRU 移出模式的方框图。

GUID-20230606-SS0I-1FX2-NPTH-PHNK5B94BJJT-low.svg图 2-4 PRU 移出模式方框图

图 2-5 显示了 PRU GPO 移出模式的编程模型。

GUID-20230606-SS0I-9JGM-BGHH-TDM4TFT6G9WJ-low.svg图 2-5 PRU 移出模式的编程模型

可为数据接收配置 GPI 移入模式。在 28 位移入模式下,对通用输入引脚 PRU<n>_DATAIN 进行采样,并根据内部时钟脉冲移入一个 28 位移位寄存器。该寄存器填充最低有效位 (LSB) 顺序(从位 0 到位 27),然后溢出到一个位桶中。28 位寄存器映射到 pru<n>_r31_status [0:27]。移位速率由应用于 PRU 内核时钟的两个级联分频器的有效除数控制。与移出模式类似,选择具有 250MHz 内核时钟的 125MHz 采样时钟。由于移位计数器,CNT_16 在接收到起始位后每 16 个移位时钟样片设置并自清零一次,因此只能将 28 位移位寄存器中的 16 位大小用作接收缓冲器。

图 2-6 显示了 PRU GPI 移入模式的方框图,图 2-7 显示了编程模型。

GUID-20230606-SS0I-S1BR-73SV-W3LP0CL7FKXB-low.svg图 2-6 PRU GPI 移入模式方框图
GUID-20230607-SS0I-CF3M-9BZM-VXR0GRZV9JDS-low.svg图 2-7 PRU 移入模式的编程模型

为了验证使用 PRU_GPIO 移位模式发送数据的准确性,由 PRU1 内核的移出 GPO 使用前 16 位 0x8000(数据帧在第一个 1 之后)发送 64 位宽编码数据 (0x8000 0012 0034 0056),并由 PRU0 内核的移入 GPI 接收。然后,数据从 PRU0 寄存器文件移动到从地址 0x00000000 开始的 PRU0 RAM。移出和移入时钟都是 125MHz。图 2-8 显示 PRU1 内核收到正确数据,没有错误。

GUID-20230606-SS0I-9HKB-JMQG-TDTS7CZNPSTJ-low.png图 2-8 使用 PRU GPIO 移位模式验证数据传输