この疑問は長い間私を悩ませてきました。回答が得られることを期待しています。
大変感謝致します。
S32G-VNP-RDB3とLinuxBSP 43.0を使用しています。
sja1110 をグランド マスターまたはブリッジとして設定すると、マスター ポート (ポート 4) は常に、フォローアップ メッセージなしで同期メッセージのみを送信します。すると、同期メッセージのフラグ フィールドに 2 つのステップが表示されます。なぜフォローアップメッセージが送信されなかったのか分かりません。
スレーブ ポートとしての s32g pfe0 ポートは pdelay req メッセージを送信しますが、マスター ポートとしての sja1110 port4 は pdealy req メッセージに応答せず、qdelay resp メッセージを送信します。
スレーブ ポートとしての s32g pfe0 のコマンドは次のとおりです。
sudo ./ptp4l-i pfe0 -f configs/オートモーティブ-slave.cfg --step_threshold=1 -m
ただし、sja1110 をブリッジとして構成すると、sja1110 のスレーブ ポートは正常に時刻を同期CAN。スレーブ ポートとしての Sja1110 port4 は、マスター ポートとしての s32g pfe0 と正常に時間を同期できます。
s32g pfe0 をマスター ポートとして使用するコマンドは次のとおりです。
bluebox@ubuntu-s32g399ardb3:~/linuxptp$ sudo ./ptp4l-i pfe0 -f configs/オートモーティブ-master.cfg --step_threshold=1 -m
プロジェクトとキャプチャ ファイルをアップロードしました。
こんにちは@xiaoshumiao 、
あなたに代わって新しいサポートCASEが作成されました。あなたはすでにそれについて返信しており、私も返信しています。まだ進行中です。新しいサポートCASEについては、引き続きお知らせします。
よろしくお願いいたします。
パベル
こんにちは@PavelL
このメールに返信しました。ご覧になれますか? [email protected]
こんにちは@xiaoshumiao 、
はい、その通りです。その間に、私はいくつか調査を行い、解決策を見つけました。今週中にプライベートメールで共有します。
よろしくお願いいたします。
パベル
こんにちは@PavelL 、
通常、tcpip コンポーネントは gPTP コンポーネントの通常の動作に影響を与えません。nxp は後で修正しますか?
こんにちは@PavelL 、
本当にありがとうございます。あなたの提案に従います。
こんにちは@xiaoshumiao 、
タイマー設定の問題にも気づきました。
これにかなりの時間を費やし、Lauterbachデバッガを使用して詳細な調査を行った結果、根本的な原因を特定することができました。tcpipコンポーネントとlwip_demo.cを追加したことです。gptp_sja1110x プロジェクトにファイルを追加すると、同じ不具合のある動作が発生します。
この時点で、唯一利用可能な回避策は、プロジェクトから lwip コンポーネントと tcpip コンポーネントの両方を削除することです。lwIP を使用せずにスイッチと gPTP を初期化する方法の例については、gptp_sja1110x/main.c を参照してください。また、ENET 設定にも注意してください。これは、switch_config_s32g_vnp_rdb の例とは少し異なります。
ご不便をおかけしましたことをお詫び申し上げます。
よろしくお願いいたします。
パベル
こんにちは@PavelL
この問題に引き続きご注目いただきありがとうございます。
私の不注意により、設定に間違いがあることがわかりました。
LPIT チャネル 3 のトリガー ソースを内部トリガーに変更する必要があります。
私が行った他の変更は次のとおりです。
このCASE、フォローアップメッセージが時々送信されますが、理由はわかりません。
添付ファイルはキャプチャされたパッケージです。
こんにちは@xiaoshumiao 、
仕事の都合で返信が遅れたことをお詫び申し上げます。
問題を再現できました。gptp_sja1110x の例は SJA1110-EVM で正常に動作しているので、まだよく分かりません。
今週中に返信できるよう最善を尽くします。
ご辛抱いただきありがとうございます。
よろしくお願いいたします。
パベル
こんにちは@xiaoshumiao 、
祝日のため返信が遅れましたことをお詫び申し上げます。
そのような行動の理由がCANません。さらに調査してみます。進捗があれば随時お知らせします。
よろしくお願いいたします。
パベル
こんにちは@PavelL 、
1.ブリッジの場合、スレーブはポート 4、マスターはポート 2 になります。
スレーブ ポートを nvidia orin にコネクテッドし、nvidia orin でパケットをキャプチャしました。
sudo tcpdump -i 任意 -vnn -w tsn0707.pcap
2. sja1110 がグランドマスターの場合、グランドマスターはポート 4 になり、s32g pfe0 はスレーブになります。
このCASE、s32g上のパケットをキャプチャします: sudo tcpdump -i any -vnn -w tsn0707.pcap
このCASE、キャプチャされたパケットには同期のみがあり、フォローアップはありません。
こんにちは@xiaoshumiao 、
仕事の都合で返信が遅くなり申し訳ございません。
プロジェクトを確認したところ、ソース コードや gPTP 設定など、確認した内容はすべて正しいようです。ただし、gPTP に定義されているポートは 1 つだけであることに気づきました。そのポートに対して「Pdelay Initiator」オプションを有効にしてみるとよいでしょう。
PC で Wireshark を接続するために使用しているポートを確認してください。
一般的な提案:
よろしくお願いいたします。
パベル
こんにちは@PavelL 、
ありがとうございます。何度も解決を試みましたが、うまくいきませんでした。
こんにちは@xiaoshumiao 、
返信が遅くなり申し訳ございません。
今は答えが分からないので、もっと時間が必要です。
ご辛抱いただきありがとうございます。
よろしくお願いいたします。
パベル