2388184_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2388184_ja-JP

2388184_ja-JP

ホストからスイッチへのトレーラーは削除されていませんSJA1110

私はSJA1110上のホストプロセッサ(Cortex-M7)を通じてイーサネットフレームを送信しています。スイッチの特定のポートにルーティングするために、5.8.2の下UM11107に説明されているホスト-トゥスイッチヘッダー/トレーラーを使用しています。
フレームは正しい港に到着しているが、トレーラーは解体されていないか、部分的にしか解体されていない。参考までに、送信前にtxBufferに格納された同じフレームと、受信後に別のデバイスのrxBufferに格納された同じフレームを以下に示します。

01 80 c2 00 00 10 68 58 c5 00 11 02 8b 8c 88 39 88 b7 5a 46 00 01 02 06 68 58 c5 00 11 02 04 01 00 06 01 02 12 01 01 14 0e 01 02 11 00 c5 58 68 08 d8 26 c0 cb fd 18 00 00 00 00 ---- 00 04 00 00 00
======                                                                                                                                                                                                                                     
01 80 C2 00 00 10 68 58 C5 00 11 02             88 B7 5A 46 00 01 02 06 68 58 C5 00 11 02 04 01 00 06 01 02 12 01 01 14 0E 01 02 11 00 C5 58 68 08 D8 26 C0 CB FD 18 00 00 00 00 ---- 00 04 00 00 00

ご覧の通り、ヘッダーは完全に削除されていますが、トレーラー(4本の線以降の部分)は削除されていません(イーサネットフレームが有効であるため、すべて0に設定されていることも含めて)です。

Re: host-to-switch trailer not removed on SJA1110

こんにちは、 @flxwly さん

提供されたデータから判断すると、ホストからスイッチへのヘッダーは認識されているようで、4バイトのヘッダーは送信フレームから削除されています。しかし、受信フレームの末尾には依然としてトレーラーバイトが表示されます。

重要な点の一つは、ホストからスイッチへのヘッダーのTRAILER_POSフィールドです。あなたの例のヘッダーバイトは8b、8c、88、39です。

ホストからスイッチへのヘッダー形式で解釈すると、HEADER_TYPE = 0x8B8C、HOST_SWITCH = 1、TRAILER = 1、TRAILER_POS = 57となります。しかし、ダンプに示されている送信フレームでは、5バイトのトレーラーはMAC DAフィールドから0ベースのオフセットで59バイト目から始まっているようです。SFDに対する正確な位置カウントの慣例によっては期待値が1差になることがありますが、符号化された値57は実際のトレーラー位置と一致していないようです。

したがって、まずTRAILER_POSフィールドの計算方法を確認し、トレーラーの最初のバイトに対応する位置に設定してみてください。

もう一つ指摘しておきたい点があります。それは、提供されているテストフレームが非常に短いということです。5バイトトレーラーが剥がされると、得られるイーサネットフレームはFCSなしの最小イーサネットフレームサイズより短くなり、退出時に再度パディングを追加する必要があります。この曖昧さを避けるために、例えばホストトレーラーの前に16バイトや32バイトのダミーバイトを追加するなど、より長いペイロードでテストを繰り返していただけますか?これにより、トレーラーが本当に部品を抜き取られているかどうかが明らかになるだろう。

また、2番目のデバイスがフレームを受信する出力ポートが、通常のポートとして設定されていることを確認してください。UMによると、フレームが通常のポートから出力される際にはヘッダーとトレーラーは削除されますが、フレームがホストポートまたはカスケードポートから出力される際には制御情報は保持されます。

最後に、5バイトのトレーラー値「00 04 00 00 00」がどのように生成されるのか教えていただけますか?FRAMEID、PRIO、SWITCHID、DESTPORT のビットパッキングを、ユーザーマニュアルに示された形式と照らし合わせて検証することが有用でしょう。

よろしくお願いいたします。

パベル

タグ(1)
評価なし
バージョン履歴
最終更新日:
昨日
更新者: