1

CAN バスを使用して 2 つの LPC2129 マイクロコントローラーを接続しています。送信側からはメッセージを一気に送信しますが、受信側では受信割り込みが連続して実行されます。

受信割り込みよりも優先度の低い割り込みであるため、最初は ACK エラーが発生しますが、後で受信割り込みが連続して発生し、送信機から 1 回しか送信していないにもかかわらず、データも適切に受信されます。

詳細は次のとおりです。

     baud rate: 125 kbit/s
     Transceiver: MCP2551
     Acceptance filter: enabled (not using *FULL CAN Mode*)

この ACK エラーを解消するにはどうすればよいですか?

4

1 に答える 1

1

「ソースで」ACKエラーを排除する必要があります。

レシーバーが受信割り込みを受け取っている場合、フレームに ACK を送信したと見なす必要があります (誤った CAN フレームの受信割り込みを受け取るべきではありません)。

したがって、TX 側は ACK ビットを「見ていない」必要があります。その後、フレームを再試行し続けるため、連続受信が中断されます。

オシロスコープでバスを調べて、何が起こっているかを確認することをお勧めします。おそらく、ACK ビットが受信側ノードから送信側ノードに正しく送信されていないことがわかります。次に、それがなぜあるべきかを理解します(危険なはんだ付けかもしれませんか?)

于 2014-06-25T10:40:07.967 に答える