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

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

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

はじめに

前回は仮想HILSのCAN-FD対応方針整理し、まずは以下を実施。

  • importしているxcp_canをxcp_canfdに変更。
  • 上記のクラス変更に伴い、XCPインスタンスの生成部分変更。

今回は引き続き仮想HILSの修正でCANバス初期化部やXCP関連の部分。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

指令値受取用バスの初期化変更

太郎くん
太郎くん

引き続き、仮想HILSのCAN-FD対応だね。

フクさん
フクさん

今回は「指令値受取用バスの初期化変更」からだな。

フクさん
フクさん

まぁこれはホントにバス初期化をCANからCAN-FDに変えるだけ。
指令値の時にバス初期化の仕方を変えたと思うけど、あれといっしょ。

太郎くん
太郎くん

ここでやったやつだねー。

太郎くん
太郎くん

ってことはこんな感じの修正になるのか。

# 指令値受取用バス接続
self.bus = can.interface.Bus(bustype='vector', channel='0')

# 指令値受取用バス接続
self.bus = can.interface.Bus(bustype='vector', channel='0', bitrate=500000, fd=True, data_bitrate=2000000)
フクさん
フクさん

正解だ。

XCP DAQ受信部のレイアウト変更対応とLSB変更対応

フクさん
フクさん

次は「XCP DAQ受信部のレイアウト変更対応とLSB変更対応」だが、
これも近いことを最近やってる。

太郎くん
太郎くん

もしかしてxcp_canfdクラスを作った時かな?
ここらへんの話。

フクさん
フクさん

正解。

太郎くん
太郎くん

とすると、なんとなくわかるぞ。
こんな修正でOKなはずだ。

# XCP DAQ受信
daq = self.xcp.recv_daq()
if len(daq) > 0:
	self._voltage = float(int.from_bytes(daq['0'][0][5:7], byteorder='little', signed=True))/0x100

# XCP DAQ受信
daq = self.xcp.recv_daq()
if len(daq) > 0:
	self._voltage = float(int.from_bytes(daq['0'][0][9:13], byteorder='little', signed=True))/0x10000
太郎くん
太郎くん

int.from_bytesの参照範囲とLSB変換するための値を返るだけでOKなはず。

フクさん
フクさん

うん。大丈夫そうだね。

XCP STIM送信部のレイアウト変更対応とLSB変更対応

太郎くん
太郎くん

とすると、最後は「XCP STIM送信部のレイアウト変更対応とLSB変更対応」かな。

フクさん
フクさん

そうだね。
まぁ仮想HILSとしてはレイアウトについては弄る必要ないけどね。

太郎くん
太郎くん

STIMに載せるレイアウトについてはxcp_canfdクラス側で決めてるから仮想HILS側では考えなくてOKなのか。

太郎くん
太郎くん

となると、LSB変更対応だけだから以下の修正になるね。

# XCP STIM送信
self.xcp.stim(int(self.deque_target[-1])*0x100, int(self.deque_speed[-1])*0x100)

# XCP STIM送信
self.xcp.stim(int(self.deque_target[-1]*0x10000), int(self.deque_speed[-1]*0x10000))
太郎くん
太郎くん

修正箇所は0x100を0x10000にしただけ。

フクさん
フクさん

修正としてはOKかな?
次回、一旦全体のコードを確認しよう。

まとめ

フクさん
フクさん

まとめだよ。

  • 指令値受取用バスの初期化変更。
    • バス初期化の引数をFD用に変更するのみ。
  • XCP DAQ受信部のレイアウト変更対応とLSB変更対応
    • xcp_canfdクラス作成時のテストコードと同じ対応。
  • XCP STIM送信部のレイアウト変更対応とLSB変更対応
    • レイアウトはxcp_canfdクラス内で決めているのでLSB対応のみ。

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

コメント

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