CAN通信にて同じIDで複数フレームに分けてデータが送られてくる場合の扱いを教えてください

毎度失礼しております、NNNです。
またも初歩的な内容で申し訳ありません。


Renesas synergyのSK-S7G2基板で、
アプリケーションノートのCANサンプルを利用しています。

CAN通信にて同IDで複数のフレームが順に送られてくる場合、
データは何処に格納されていくのでしょうか。


メールボックスでは全てのIDを受け取るようにしていますが、

 メールボックス1:ID1のデータ
 メールボックス2:ID2のデータ1
          ID2のデータ2で上書き
 メールボックス3:ID3のデータ

 のようになりますか?


それとも、rx_frame.data[]の中身を次のフレーム(データ2)がくるまでに別バッファへ読み出す必要がありますか?

 

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

Parents
  • NAKAといいます。
    ”SK-S7G2基板”も”アプリケーションノートのCANサンプル”も見たことがないので無責任な一般論ですが、メッセージを受信毎にバッファに貯める仕組みにしておいて、MAINルーチンの空いたリソースで受信する全ての各IDデータを処理すれば良いのではないですか?全てのIDが必要なければマスクすれば良いですし......。RH850なんかはメッセジバッファとしてかなりのRAMを割り付けられます。
  • 説教のようなので、聞き流していただいても結構です。
    SK-S7G2基板を活用するにはS7G2 User's Manual(R01UM0001EU0140 Rev.1.40)をしっかりと読む必要があります。しかし、英語で2117ページもあり私自身の予定が無いので読む気になれません。部分的に少し見ると37章にCANモジュールの解説があります。32メールボックスのノーマルモードと24メッセージ分のFIFOモードがあるようです。経験者がいないようなのでNNNさんに頑張ってサンプルのドキュメントとユーザーマニュアルを読んでもらうしかありません。
    また、「同じIDで複数フレームに分けてデータが送られてくる」のイメージが掴めません。これも回答が得られない理由だと思います。以前のACKの件も物理層をオシロスコープで問題が無いことを確認していると書きながらボーレートが合っていなかったのが原因だったと予想される流れなので読み手に状況が理解できません。ボーレートの設定の件もユーザーマニュアルを読んでいないような質問でした。ユーザーマニュアルとCAN入門書(RJJ05B0937-0100/Rev.1.00)くらいはある程度理解しててもう少し文章に注意をしないとコミュニケーションが取れないと思います。
Reply
  • 説教のようなので、聞き流していただいても結構です。
    SK-S7G2基板を活用するにはS7G2 User's Manual(R01UM0001EU0140 Rev.1.40)をしっかりと読む必要があります。しかし、英語で2117ページもあり私自身の予定が無いので読む気になれません。部分的に少し見ると37章にCANモジュールの解説があります。32メールボックスのノーマルモードと24メッセージ分のFIFOモードがあるようです。経験者がいないようなのでNNNさんに頑張ってサンプルのドキュメントとユーザーマニュアルを読んでもらうしかありません。
    また、「同じIDで複数フレームに分けてデータが送られてくる」のイメージが掴めません。これも回答が得られない理由だと思います。以前のACKの件も物理層をオシロスコープで問題が無いことを確認していると書きながらボーレートが合っていなかったのが原因だったと予想される流れなので読み手に状況が理解できません。ボーレートの設定の件もユーザーマニュアルを読んでいないような質問でした。ユーザーマニュアルとCAN入門書(RJJ05B0937-0100/Rev.1.00)くらいはある程度理解しててもう少し文章に注意をしないとコミュニケーションが取れないと思います。
Children
  • kijo様
    先日に引き続きのご返信・ご連絡ありがとうございます。
    前回の問い合わせに関しては、仰るとおりボーレートが原因でした。
    マニュアルは確認していたのですが、設定値の扱いを勘違いして受け取ってしまっておりました。
    間違いを書いてしまったことや、オシロスコープの扱いも含め精進します。
    また、今回も自分の知識不足により、状況説明が曖昧で大変申し訳ありませんでした。