【XCP】最小構成のMBD事例 第2章 その233【CAN-FD⑩】

【XCP】最小構成のMBD事例 第2章 その233【CAN-FD⑩】 事例
【XCP】最小構成のMBD事例 第2章 その233【CAN-FD⑩】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回はPyXCPのCAN-FD対応の動作確認を行った。
一見すると動作しているように見えたが、
どうやらCAN-FD送信が出来ていないようである。
PyXCPもVersionがあるので、Version別の挙動を確認してみることとなった。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

PyXCPのVersion別CAN-FD対応状況

太郎くん
太郎くん

PyXCPのVersion別にCAN-FDに対応状況を調べるんだっけ?

フクさん
フクさん

調べてきた。

太郎くん
太郎くん

ほう。
なんか良い情報があると良いのだけど。

フクさん
フクさん

ざっと調べた感じだと以下だ。

VersionCAN-FD受信CAN-FD送信備考
0.13.0NGNG 
0.13.1NGNG 
0.13.2NGNG 
0.13.3OKNGCANフィルタ追加
0.13.4OKNG 
0.13.5OKNG 
0.13.10OKNG 
0.14.0OKNG 
0.14.2OKNG 
0.14.3OKNG 
0.15.0OKNG 
0.15.1NGNGDAQ queue消滅?
0.15.2NGNG 
0.15.3NGNG 
0.15.4NGNG 
0.15.5OKNGDAQ queue復活
0.15.6OKNG 
0.16.0OKNG 
0.16.3OKNG 
0.16.4OKOKPython-CANへis_fdフラグ追加(Serialパラメータ抜きで送信可能)
0.16.5OKOK 
0.16.7OKNG?無条件でDLC 15
0.16.10OKNG? 
0.16.17OKNG? 

状況考察

太郎くん
太郎くん

これは・・・。
予想以上にごちゃごちゃしてるな・・・。

フクさん
フクさん

そうだね。
まぁ大雑把には以下の流れだねー。

  • 0.13.3でXCPonCANが動くようになる。
  • 0.15.1でdaqQueueが消滅してDAQ受信の挙動が怪しくなる。
  • 0.15.5でdaqQueueが復活してDAQ受信が元に戻る。
  • 0.16.4でPython-CANへのCAN-FD送信指示が増えるが、Serialパラメータがあると送信エラーになる。
  • 0.16.7でCAN-FDの場合は無条件でDLC 15(64byte)に。
太郎くん
太郎くん

結局何をすれば問題無い状態になるんだ??

フクさん
フクさん

コンフィグレーション用のJSON記述のSerialパラメータを削除すれば、
最新版でも動作はするね。
ただ、DLCが無条件で15。つまり64byte送信になる。
これが嫌だったら0.16.5のversionを使うのが妥当だろう。

DLCが無条件で15になっている理由

太郎くん
太郎くん

でも、なんで無条件でDLCが15になるんだろう?

フクさん
フクさん

ソースコード上のコメントを見ると、
AUTOSAR仕様が理由のようなことを書いていたが、
私の解釈だとDLCを15にして64byteのフレームを作ることを強制する仕様では無いんだよね。
まぁ勘違いして入った仕様なのかもしれない
幸か不幸か、未だにUpdateが入ってるパッケージなので、そのうち修正されるかもしれないが。
加えてbitrate_switchが有効になっていないので、これもそのうち修正されることを期待だな。

太郎くん
太郎くん

うーん、その修正が入る前は0.16.5を使う感じかなー。

フクさん
フクさん

それが良いと思うよ。
まぁ0.16.5で再度動作確認をしてみよう。

太郎くん
太郎くん

ちなみにpipでインストールすると最新版になると思うんだけど、
version指定ってできるの?

フクさん
フクさん

できるよ。
以下の指定方法が可能。
これはpyxcpに限らずpipの仕様だ。

pip install pyxcp==0.16.5
太郎くん
太郎くん

ほう。
Versionを指定してインストールできるのね。

まとめ

フクさん
フクさん

まとめだよ。

  • PyXCPのVersion別CAN-FD対応状況を確認。
    • かなり、いろいろ変化している。
    • SERIALパラメータがあると、CAN-FDフレーム送信でエラーが発生する。
  • よって、現時点では0.16.5のVersionを使用する。
    • CAN-FDフレーム送信可能、DLC可変。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました