Thread 中讨论的其他器件:SYSBIOS
我们遇到了这样的问题:在重新启动目标之前、我们的 EtherCAT 主站不会看到任何从站、因为 PRU ICSS 驱动程序在 ESD 测试后会停止接收帧。
通过使用 Wireshark、我们可以看到 EtherCAT 主站正在成功发送消息、它正在从从从站获取应答、但由于某种原因、EtherCAT 主站应用程序不接收应答、然后返回0从站。
在此之前、主器件会看到所有从器件。 一旦我们执行 ESD 测试、尽管主设备成功发送了帧、但似乎无法接收更多的 EtherCAT 帧。 这不是系统的、但很容易重复。
我们的应用程序不接受重新启动系统。 在分析之后、我们发现了以下统计数据:
在接收到坏的 CRC 帧或第一个未对齐的帧后、 PRU ICSS 似乎无法从它恢复、它始终接收到未对齐的帧。
-- 120sec AST:Idle NSL:7 TL:0 3TL:0 STL:0-
txBcast:239851 txMcast:0 txUcast:0 txOctets:106407584 rxBcast:239763 rxMcast:0 rxUcast:0 rxOctets:106414344-
tx64byte:82065 tx65_127byte:1 tx128_255byte:830 tx256_511 byte:78446 tx512_1023 byte:0 tx1024byte:78449--
rx64byte:82075 rx65_127byte:1 rx128_255byte:rx830 rx256_511 byte:78456 rx512_1023 byte:0 rx1024byte:78459--
lateColl:0 singleColl:0 multiColl:0 exeessColl:0 rxMisAlignmentFrames: 0 stormPrevCounter: 0 macRxError: 0 SFDError: 0 defTxError: 0 macTxError: 0-
rxOverSizeFrames: 0 rxUnderSizeFrames: 0 rxCRCFrames: 0 droppackets : 0 txOverFlow: 0 txUnderFlow: 0 sqeTestError: 0 TXqueueLevel: 100 CSError: 4194305-
-- 125sec AST:Idle NSL:7 TL:0 3TL:0 STL:0-
txBcast:254604 txMcast:0 txUcast:0 txOctets:113101336 rxBcast:254616 rxMcast:0 rxUcast:0 rxOctets:113108096--
tx64byte:87016 tx65_127byte:1tx128_255byte:830 tx256_511 byte:83397 tx512_1023 byte:0 tx1024byte:83400-
rx64byte:87026 rx65_127byte:1 rx128_255byte:830 rx256_511 byte:83406 rx512_1023 byte:0 rx1024byte:83410--
lateColl:0 singleColl:0 multiColl:0 exeessColl:0 rxMisAlignmentFrames: 0 stormPrevCounter: 0 macRxError: 0 SFDError: 0 defTxError: 0 macTxError: 0-
rxOverSizeFrames: 0 rxUnderSizeFrames: 0 rxCRCFrames: 0 droppackets : 0 txOverFlow: 0 txUnderFlow: 0 sqeTestError: 0 TXqueueLevel: 100 CSError: 4194305-
-- 130sec AST:Idle NSL:7 TL:0 3TL:0 STL:0-
txBcast:269463 txMcast:0 txUcast:0 txOctets:119797792 rxBcast:269475 rxMcast:0 rxUcast:0 rxOctets:119804552--
tx64byte:91969 tx65_127byte:1 tx128_255byte:830 tx256_511 byte:88350 tx512_1023 byte:0 tx1024byte:88353--
rx64byte:91979 rx65_127byte:1 rx128_255byte:830 rx256_511 byte:88359 rx512_1023 byte:0 rx1024byte:88363--
lateColl:0 singleColl:0 multiColl:0 exeessColl:0 rxMisAlignmentFrames: 0 stormPrevCounter: 0 macRxError: 0 SFDError: 0 defTxError: 0 macTxError: 0-
rxOverSizeFrames: 0 rxUnderSizeFrames: 0 rxCRCFrames: 0 droppackets : 0 txOverFlow: 0 txUnderFlow: 0 sqeTestError: 0 TXqueueLevel: 100 CSError: 4194305-
D:ECAT:在131655885上将主状态从"Op (操作)"更改为"Unknown (未知)"
D:EthercatMaster:Unknown:Setting EtherCAT Master State to Initialization at 131656358
D:ECATM:在131664020将请求主状态从"未知"更改为"初始"
-- 135sec AST:Idle NSL:0 TL:0 3TL:0 STL:0-
txBcast:276385 txMcast:0 txUcast:0 txOctets:122118766 rxBcast:274323 rxMcast:0 rxUcast:0 rxOctets:121985328--
tx64byte:95640 tx65_127byte:1 tx128_255byte:833 tx256_511 byte:89957 tx512_1023 byte:0 tx1024byte:89957--
rx64byte:93580 rx65_127byte:1 rx128_255byte:830 rx256_511 byte:89956 rx512_1023 byte:0 rx1024byte:89956-
lateColl:0 singleColl:0 multiColl:0 exeessColl:0 rxMisAlignmentFrames:2073 stormPrevCounter: 0 macRxError: 0 SFDError: 0 defTxError: 0 macTxError: 0-
rxOverSizeFrames: 0 rxUnderSizeFrames: 0 rxCRCFrames: 1 droppackets : 0 txOverFlow: 0 txUnderFlow: 0 sqeTestError: 0 TXqueueLevel: 100 CSError: 4194305-
E:ECATM:在135721777上从"未知"请求主状态到"初始"失败
D:ECATM:在136768452处将请求主状态从"未知"更改为"初始"
E:ECATM:请求主状态从"未知"更改为"初始"失败、地址为141063808
-- 140sec AST:故障 SF:0x00000004 NSL:0 TL:0 3TL:0 STL:0—
txBcast:278659 txMcast:0 txUcast:0 txOctets:122264238 rxBcast:274323 rxMcast:0 rxUcast:0 rxOctets:121985328--
tx64byte:97911 tx65_127byte:1 tx128_255byte:833 tx256_511 byte:89957 tx512_1023 byte:0 tx1024byte:89957--
rx64byte:93580 rx65_127byte:1 rx128_255byte:830 rx256_511 byte:89956 rx512_1023 byte:0 rx1024byte:89956-
lateColl:0 singleColl:0 multiColl:0 exeessColl:0 rxMisAlignmentFrames:4336 stormPrevCounter: 0 macRxError: 0 SFDError: 0 defTxError: 0 macTxError: 0-
rxOverSizeFrames: 0 rxUnderSizeFrames: 0 rxCRCFrames: 1 droppackets : 0 txOverFlow: 0 txUnderFlow: 0 sqeTestError: 0 TXqueueLevel: 100 CSError: 4194305-
-- 145秒 AST:故障 SF:0x00000004 NSL:0 TL:0 3TL:0 STL:0—
txBcast:280616 txMcast:0 txUcast:0 txOctets:122389486 rxBcast:274323 rxMcast:0 rxUcast:0 rxOctets:121985328--
tx64byte:99868 tx65_127byte:1 tx128_255byte:833 tx256_511 byte:89957 tx512_1023 byte:0 tx1024byte:89957--
rx64byte:93580 rx65_127byte:1 rx128_255byte:830 rx256_511 byte:89956 rx512_1023 byte:0 rx1024byte:89956-
lateColl:0 singleColl:0 multiColl:0 exeessColl:0 rxMisAlignmentFrames:6293 stormPrevCounter: 0 macRxError: 0 SFDError: 0 defTxError: 0 macTxError: 0-
rxOverSizeFrames: 0 rxUnderSizeFrames: 0 rxCRCFrames: 1 droppackets : 0 txOverFlow: 0 txUnderFlow: 0 sqeTestError: 0 TXqueueLevel: 100 CSError: 4194305-
-- 150sec AST:故障 SF:0x00000004 NSL:0 TL:0 3TL:0 STL:0--
txBcast:282573 txMcast:0 txUcast:0 txOctets:122514734 rxBcast: 274323 rxMcast:0 rxUcast:0 rxOctets:121985328--
tx64byte:101825 tx65_127byte:1 tx128_255byte:833 tx256_511 byte:89957 tx512_1023 byte:0 tx1024byte:89957--
rx64byte:93580 rx65_127byte:1 rx128_255byte:830 rx256_511 byte:89956 rx512_1023 byte:0 rx1024byte:89956-
lateColl:0 singleColl:0 multiColl:0 exeessColl:0 rxMisAlignmentFrames:8250 stormPrevCounter: 0 macRxError: 0 SFDError: 0 defTxError: 0 macTxError: 0-
rxOverSizeFrames: 0 rxUnderSizeFrames: 0 rxCRCFrames: 1 droppackets : 0 txOverFlow: 0 txUnderFlow: 0 sqeTestError: 0 TXqueueLevel: 100 CSError: 4194305-
因此、问题似乎更多地与 TI 相关、而不是与 EtherCAT 相关。
你怎么看? 这是已知问题吗? 如何解决?
我测试了一个解决方案、该解决方案调用了 PRUICSS_pruDisable ()、PRUICSS_pruReset ()、PRUICSS_pruEnable ()、然后重新启动主器件、但它没有解决问题(我只尝试禁用/启用并仅重置两者)。
谢谢、
Sylvain
