バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/
はじめに
can-isotpでCAN-FDのシミュレーションに向けて。
シミュレーション構成とCAN-FDになった場合のフレーム構成の変化について。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
can-isotpでCAN-FD?
次はISO15765-2のCAN-FD。
can-isotpが使えるはずなんだよねー。
はずって・・・。
大丈夫なの?
CanStackの初期化用パラメータの中に”can_fd”ってのがあるんだよねー。
これを有効にすれば行けるんじゃないかなー。
(「じゃないかなー」って、本当に大丈夫なのか?)
シミュレーション構成
一応、シミュレーション構成を描いておく。
ぶっちゃけるとCANの時と構成自体は一緒だね。
まぁ初期化パラメータ変えるだけだもんねー。
CAN-FD版のフレーム構成
そういえば、CAN-FDってDLC最大値が64byteになるから
いろいろフレーム構成が変わるとようなこと言ってたと思うんだけど、
どうなるんだっけか?
あー、それを先に説明しておいた方がよいか。
変わるのはSingleFrameとFirstFrameだけだね。
どんな感じ?
8byte以上のSingleFrame
CAN-FDでも7byte以下だったらCANの時と一緒なんだけど、
8byte以上だとちょっと変わる。
ほう。
こんな感じになる。
あ、N_PCIが大きくなってる!
なるほど。
本来のSingleFrameのLengthが入るところに0が入って場合はその後ろの1byteをLengthとして見るって感じか。
その通り!
ん?
このLengthが8byte未満ってことはあるのかな?
規格上は禁止されてるね。
このN_PCIの構成になる時は必ず、CANでは表現できない場合の構成ってことになる。
4096byte以上のマルチフレーム時のFirstFrame
次はFirstFrameだけど、
これは、Lengthが4096byte以上の時になる。
SingleFrameの時と同様に4095byte以下の場合は使用してはいけない構成になるね。
これも普通のFirstFrameのLength部分に0が入っていたらその後ろの4byteがLengthってなるのか?
ん?
4byteってことは・・・。
0xFFFFFFFF=4294967295≒4Gbyte
も送れるってこと?!
規格上はそうだねー。
とはいえ、そこまで通信用のバッファを用意できることも少ないだろうから、
4Kbyteの2倍、4倍あたりの8Kbyte、16Kbyteが現実的な数値だろう。
まぁ折角拡張するんだし、大きい値が定義できる方が良いのか。
まとめ
まとめだよ。
- can-isotpでもたぶんCAN-FDはできる。
- 拡張SingleFrameと拡張FirstFrameの構成を学んだ。
バックナンバーはこちら。
コメント