ZHCACT4 june   2023 AM2431 , AM2432 , AM2434 , AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1 , AM263P4 , 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 CRC16/32 模块

通信帧封装中需要进行循环冗余校验 (CRC),以确保数据传输过程中的数据准确性。每个 PRU 内核都有一个指定的外设 CRC16/32 模块,为通信系统提供错误检测功能。CRC16/32 模块支持具有不同多项式的 CRC32、CRC16 和 CRC16-CCITT 功能。该模块还通过使用 PRU 宽边接口与 PRU 内部寄存器 R25 至 R29 连接。R29 映射到 CRC_DATA 寄存器,支持最大 32 位数据宽度,并根据配置以 16 位或 32 位读回检查数据。可以生成具有 16 位数据字的 16 位 CRC 数据,并将其放入每个帧中。图 3-1 显示了 PRU CRC16/32 模块的方框图,以下代码显示了用于 16 位数据的 CRC16 函数:

zero &r25, 4              ; config CRC type
xout CRC_XID, &25, 4      ; enable CRC module, CRC_XID = 0x1
mov  r29, r20             ; load CRC data, ASCII equivalent for "21"
xout CRC_XID, &29.w0, 2   ; push CRC data to CRC16 module
nop
xin  CRC_XID, &r28, 4     ; load the accumulated CRC result into PRU
GUID-20230614-SS0I-T2H9-4T3F-RLDQHML9KB11-low.svg图 3-1 PRU CRC16/32 模块方框图

CRC 输入数据必须交换字节,因为 PRU 基于最低有效字节 (LSByte) 优先架构。例如,必须将 0x3412 作为输入数据给出,才能对 0x1234 执行 CRC16。图 3-2 显示了 CRC16/32 模块的验证结果。PRU0 从 PRU1 GPO 每 16 位接收一次数据,并存储在 PRU DRAM 中从 0x00000000 开始的地址中。

基地址存储 PRU1 GPO 发送的原始数据 (0x12)。接收到的数据被发送到 PRU0 CRC 模块,并将累积的 CRC 结果加载到 PRU0 R28 寄存器和偏移量为 0x24 的存储器地址中。偏移量为 0x02 的存储器地址存储来自 PRU1 的数据 0x12 的 CRC16 结果 (0xf30c)。地址偏移 0x04 存储 PRU1 GPO 发送的原始数据 (0x34)。接收到的数据被发送到 PRU0 CRC 模块,并将累积的 CRC 结果加载到 PRU0 R28 寄存器和偏移量为 0x26 的存储器地址中。偏移量为 0x06 的存储器地址存储来自 PRU1 的数据 0x34 的 CRC16 结果 (0x36c7)。图 3-2 表明,从存储器值来看,原始数据和 CRC 数据都是正确的。

GUID-20230608-SS0I-WFM7-FKG5-FGQBQHPGVG9T-low.png图 3-2 PRU CRC16 模块验证