ZHCABZ7C October 2015 – April 2024 DP83867CR , DP83867CS , DP83867E , DP83867IR , DP83867IS
用于调试的环回功能:
环回模式可以确定 MAC < -- > PHY 或 PHY < -- > PHY 上发生的通信问题。MII 环回、PCS 环回、数字环回和模拟环回都可以隔离 PHY < -- > PHY 通信。反向环回可以隔离 MAC < -- > PHY 通信。下图展示了 DP83867 具有的各种环回模式:
模拟环回通常用于验证 PHY 的完整内部数据路径,而反向环回则用于与链路伙伴一起验证沿 MDI 的数据路径。
通过 MAC 发送和接收数据包:
如果可以使用 MAC 生成和检查数据包,并且 PHY 有一个具有反向环回功能的工作链路伙伴,请按如下方式验证完整数据路径:
如果 MAC 接收到相同的测试数据包而未出现问题,则通过 MAC → PHY → MDI 的完整数据路径是有效的。如果此测试未通过,则执行模拟环回以隔离数据路径上的问题:
如果 MAC 接收到相同的测试数据包,则通过 MAC → PHY 的数据路径有效,并且问题已与 MDI 数据路径隔离。如果此测试未通过,则问题可能出在 MAC 接口或内部数据路径上。要验证 MAC 接口,请参阅调试 MAC 接口。要验证内部数据路径,请使用以下脚本执行带有模拟环回的 PRBS。
通过 BIST 发送和接收数据包:
该器件包含内部 PRBS 内置自检 (BIST) 电路,可适应电路内测试或诊断。BIST 电路可用于测试发送和接收数据路径的完整性。BIST 可使用各种环回模式来执行,以便隔离数据路径特定部分的任何问题。BIST 会生成包含可变内容和 IPG 的封包化数据。
如果无法通过 MAC 生成和检查数据包,请使用 PRBS 数据包生成和检查功能来验证数据路径。使用 PRBS 和正常工作的链路伙伴执行反向环回,如下所示:
如果寄存器 0x17[11] 为高电平,则通过 PHY → MDI 的数据路径有效。如果此测试未通过,则问题可能出在 PHY 的内部数据路径或 MDI 上。要验证内部数据路径,请使用以下脚本执行带有模拟环回的 PRBS。如果内部数据路径有效,则问题将与 MDI 隔离(假设链路伙伴正常工作)。
下面是寄存器读取和写入的示例序列,以便使用模拟环回以 10Mbps 速率执行 BIST:
// This is how you make a comment. All scripts must start with 'begin'
begin
// hard reset
001F 8000
// disable auto-neg, force 10Mbps (1)
0000 0100
// enable analog loopback (2)
0016 0008
// force mdi mode for 10/100 Mbps (not relevant for 1000Mbps)
0010 5008
// loopback configuration register required
00FE E720
// enable packet gen, keep analog loopback (3)
0016 5008
// (1)
// for 100Mbps, write 0000 to 2100
// for 1000Mbps, write 0000 to 0140
// (2)
// for digital loopback, write 0016 to 0004
// for PCS loopback, write 0016 to 0003
// (3)
// for packet generation with digital loopback, write 0016 to 5004
// for packet generation with PCS loopback, write 0016 to 5003
end
如果在不同的环回模式或速度下进行测试,则参考注释 (1-3) 寄存器写入。在以下读取/写入操作之前至少等待一秒钟,以便允许 PRBS 发送数据包。
begin
// lock byte count
0072 0201
// check lock status, # of packets received, and # of errors
0017
0071
0072
// enable continuous mode packet counting
0016 D004
// update packet counter with current value (4)
0072 0201
// read packet counter (5)
0071
// soft reset
001F 4000
// Repeat (4) and (5) as desired to verify packet count changing for each counter update
end
寄存器 0x17[11] 指示 PRBS 是否能够通过给定的数据路径成功接收相同的已传输数据。