バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回は、ついに仮想ECUと仮想HILSの連携動作を実現した。
さらに変数の精度を上げることでさらに良くなるかも?
しかし、変数精度を上げるためにはXCPのODTに載せるデータサイズを大きくする必要があり、
4byte長になると1ODTあたり1変数しか乗せられない。
これだとレイテンシが下がって別の問題で制御が粗くなる可能性が高い。
というわけで、解決策として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
XCPonCAN-FD

前回の最後にXCPonCAN-FDって言葉が出てたけど、
何がどう解決するのかさっぱりわからないんだけど?

XCPonCANで変数のデータサイズを大きくした際の課題として、
1ODTあたりに載せられる変数の数が減ってしまうってのがあったよね?

うん。
4byte長だと1ODTに結果的に1変数しか乗せられないから、
その分ODTを増やすことになって、
現状では1ODTで済んでるのが3ODTになっちゃう。
って問題。

その通り。

じゃ、1ODTに4byte長の3変数を載せたい場合はどうすれば良い?

いや、それが無理だから問題になってるのでは・・・?
ODTの長さを決めているのは?

そもそも今回の1ODTの長さって何で決まってる?

たしか、CANのデータフィールドが8byteで、
先頭1byteがPIDで使われて、残りの7byteがODT_ENTRYとして割り付けられる。
って理屈だったと思う。

じゃ、その8byteが長くなれば?

長くなれば、その分ODT_ENTRYを載せられるようになるんじゃない?

長くするには?

え?しらないよー?
CANの仕様だし。

じゃ、そのCANの部分をCAN-FDにしたら?

CAN-FDのデータフィールドって
確か最大64byte?

・・・あ!

そうか!
64byte分あるから4byte長変数が3つあってお釣りがくるレベルだ!

それでXCPonCAN-FDが解決法になるってことなのか。

そういうことだねー。
具体的に何をしていく?

と言ってもいままでXCPonCANでやって来たわけで、
そこからCAN-FDに切り替えるのって大変じゃない?
またとんでもない回数重ねちゃうの?

CANとCAN-FDは仕様的には似てるし、
それほど手間はかからないと思う。
AUTOSAR-XCPも8byteという制限があるわけではないから、
なんとかなるんじゃないかな?

でも、何をどうすれば良いのか・・・。

まぁ次回、現状を把握して、今後どうしていくか決めよう。
まとめ

まとめだよ。
- XCPonCANとしての課題を明確化。
- CANのデータフィールド8byteの仕様がODTの限界値を決めていた。
- よって、データフィールドが長くなれば解決と言える。
- CANのデータフィールドの上限が8byteに対し、CAN-FDは64byte。
- よって、4byte、3変数が載っても十分な長さ。
バックナンバーはこちら。
コメント