2017-12-20 30 views
1

CANの場合、SOF(0)に遭遇するとフレームが開始します。しかし、私たちのシステムが今すぐCANに参加したと言えば、新しいCANフレームの開始をどのように検出できるのでしょうか?CANバスアイドル検出

EOFは7劣性ビットプラス3 IFS(フレーム間間隔)ビットです。したがって、10の連続した1を待つことができ、その後0に切り替えることができますフレーム。

私の質問は、以前は1つのノードしか接続されていなかった場合です。次に、ACKビットが1であることがわかると、ACK区切りビットは1であり、7つのEOFフレームビットは1である。したがって、3つのIFSビットの前に10ビットしか得られない(劣性)。ノードがIFSシステムに何が起こるのでしょうか?

答えて

0

申し訳ありませんが、私の前提に誤りがありました。 CANフレーム構造を参照すると、ノードはバスを監視する必要があり、11個の連続したビットが '1'として検出された場合、ノードだけがアイドルとしてバスを考慮する。

上記の説明文。 1 ACK_DELIMETERビット、7 EOFビット、3 IFSビット。

したがって、1つのノードだけがシステムに接続され、次のノードが接続され、1番目のノードがCANフレームのデータ部分を送信しているとします。

第2ノードは、CRC-DELIMETER、ACK_SLT、ACK_DELIMETER、7 EOFビット、3 IFSビットで1を検出します。ノード2が送信するデータを有する場合、その時点でバスがアイドルであるとみなしてIFS時間の2ビットで送信する(1ビットの11ビットが来たので)。しかし、ノードが1ビットと2ビットのIFS時間で0ビットを検出した場合、BoschのCAN 2.0プロトコル仕様に従って、過負荷フラグを開始します。ここでノード1は過負荷フラグの送信を開始し、次回以降は通信正しく動作します。

また、1がCRCの最後のビットとして存在する場合、2番目のノードがIFS時間の1シットビットでフレームの送信を開始し、ノード1が仕様の一部として過負荷フレームの送信を開始する可能性があります。

これが行われていないと思われる場合は、レビューを投稿してください。