私は S32K144 (IDEs は Arm 2.2 用の S32DS) を使用して LIN-LIN ゲートウェイを設計しました。LIN1 はスレーブとして動作し、LIN2 はマスターとして動作します。LIN1 で受信したフレームの一部は LIN2 経由でスレーブに転送されるはずですが、Go-To-Sleep フレームを受信しても LIN2 がそれをスレーブに送信できないことがわかりました。何か提案はありますか?
こんにちは、
LIN1 がスリープ状態への移行フレームを受信すると、ゲートウェイ ファームウェアはこのフレームを (ID とコンテンツによって) 検出する必要があります。次に、マスター スケジュールまたは API 呼び出し (LIN_DRV_GoToSleepMode() など) を使用して、LIN2 を手動でトリガーし、スリープ状態への移行フレームを送信します。
LIN2 がスケジュール テーブルを使用する場合は、フラグが設定されているときにスリープ状態に移行するフレームを送信する条件エントリを追加します。LIN1 がスリープ フレームを受信するときに、ゲートウェイ ロジックでこのフラグを設定します。
LIN スタックでは、バスがアイドル状態または特定の状態でない限り、Go-To-Sleep フレームの動的な送信が許可されない場合があります。確認する
- LIN2 はビジー状態でもエラー状態でもない。
- 進行中のスケジュール中にフレームを送信しようとしていません。
BR、ペトル