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

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

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

はじめに

xcp_canクラスのCAN-FD向け改造はPyXCPのコンフィグレーション変えるのみ。
・・・のはず。

あまり自信も無いので、JupyterNoteBookでPyXCPを呼び出して動作確認をする。
AUTOSAR-XCPの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

PyXCPのCAN-FD対応

太郎くん
太郎くん

今回はPyXCPでCAN-FD対応ができるか確認するんだよね?

フクさん
フクさん

そうだね。
まぁ以前実施したAUTOSAR-XCP向けのPyXCP-AUTOSAR_test.ipynbを元にちょい修正するだけなんだけど。

PyXCP-AUTOSAR_test.ipynb

太郎くん
太郎くん

前回も出たけど、コンフィグレーションのJSON記述を以下にすればOKなのかな?

JSON = """{
"TRANSPORT": "CAN",
"CAN_DRIVER": "Vector",
"CAN_USE_DEFAULT_LISTENER": true,
"CHANNEL": "0",
"CAN_ID_MASTER": 2,
"CAN_ID_SLAVE": 1,
"CAN_ID_BROADCAST": 256,
"MAX_DLC_REQUIRED": false,
"CREATE_DAQ_TIMESTAMPS": true,
"SERIAL": 0,
"BITRATE": 500000,
"FD":true,
"DATA_BITRATE": 2000000,
"APP_NAME": "PyXCP-CANFD"
}"""
フクさん
フクさん

うん。
これだけでOKなはずだ。

太郎くん
太郎くん

じゃー、さっそくその部分だけ弄って動作確認してしまおう。

動作確認範囲

フクさん
フクさん

まず動作確認範囲だが、
基本的な流れはCANの時と全く一緒なので、
CAN-FDならではの部分だけピックアップしてCAN回線ログを見てみることになると思う。

太郎くん
太郎くん

で、具体的には?

フクさん
フクさん

DOWNLOADとUPLOADのサイズを30byteにするのと、
DAQのODTのデータ長を8byte越えにする。

太郎くん
太郎くん

とすると、コードの修正としてはこんなところかな。

DOWNLOADとUPLOAD部分

xm.setMta(0x0000,0xff)
bhv = xm.upload(30)
print(bhv.hex())

bhv = bytearray(bhv)
bhv[0] = 0xAA
bhv[1] = 0x55
xm.setMta(0x0000,0xff)
xm.download(bhv)

xm.setMta(0x0000,0xff)
bhv = xm.upload(30);
print(bhv.hex())

DAQ list構築の部分

DaqEntry = namedtuple("DaqEntry", "daq odt entry bitoff size ext addr")
de0 = (
    DaqEntry(daq=0, odt=0,  entry=0, bitoff=255, size=4, ext=0xff, addr=0x00000000),
    DaqEntry(daq=0, odt=0,  entry=1, bitoff=255, size=4, ext=0xff, addr=0x00000004),
    DaqEntry(daq=0, odt=0,  entry=2, bitoff=255, size=4, ext=0xff, addr=0x00000008),
    DaqEntry(daq=0, odt=0,  entry=3, bitoff=255, size=4, ext=0xff, addr=0x0000000C),
    DaqEntry(daq=0, odt=0,  entry=4, bitoff=255, size=4, ext=0xff, addr=0x00000010),
 
    DaqEntry(daq=1, odt=0,  entry=0, bitoff=255, size=4, ext=0xff, addr=0x00000004),
)
フクさん
フクさん

ふむ。
それでOKだろう。
次回は実際に動作確認してみよう。

まとめ

フクさん
フクさん

まとめだよ。

  • PyXCPのCAN-FD対応はコンフィグレーションのJSON記述部分だけではあるが、動作確認用に修正する部分もある。
    • UPLOAD、DOWNLOADのサイズ。
    • DAQ listのODTのサイズ。
  • 上記の方針に合わてコード修正実施。
    • DAQ listはODT_ENTRYの数を増やした。

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

コメント

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