【XCP】最小構成のMBD事例 第2章 その181【PyXCP③】

【XCP】最小構成のMBD事例 第2章 その181【PyXCP③】 事例
【XCP】最小構成のMBD事例 第2章 その181【PyXCP③】

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

はじめに

前回は必要なimportの列挙とコンフィグレーション用のJSON文字列を定時。

JSON文字列はなんとなく分かるようにものも多いが、
若干分かり難いものもある。
これらを今回説明していく。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

JSON文字列再掲

太郎くん
太郎くん

前回、コンフィグレーション用のJSON文字列のところで終わったところだね。

フクさん
フクさん

一応、前回のJSON文字列を再掲しておこう。

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,
"APP_NAME": "PyXCP-CAN"
}"""

コンフィグレーションパラメータの説明。

フクさん
フクさん

上から順番に一気に説明してしまおう。

  • TRANSPORT
    • トランスポート層を指定。今回はCAN。
    • その他指定可能なのはEth、SxI。
  • CAN_DRIVER
    • 使用するCANインターフェースデバイス。
    • 今回はVector。
    • その他に以下が使用可能。
      • canalystii
      • iscan
      • ixxat
      • kvaser
      • neovi
      • nican
      • pcan
      • serial
      • socketcan
      • systec
      • usb2can
  • CAN_USE_DEFAULT_LISTENER
    • CANの受信スレッドの生成可否。今回はtrue。
  • CHANNEL
    • 使用するチャンネル。今回は0。
    • Python-CAN由来のチャンネルは0オリジン、Vectorデバイスは1オリジンな点に注意。
  • CAN_ID_MASTER
    • XCPスレーブからXCPマスタへ送信する際のCANID。今回は2
  • CAN_ID_SLAVE
    • XCPマスタからXCPスレーブへ送信する際のCANID。今回は1
  • CAN_ID_BROADCAST
    • XCPのブロードキャストパケットを送出する場合のCANID。
    • 今回は256を指定しているが、ブロードキャストパケットは使用しない。
  • MAX_DLC_REQUIRED
    • 常に最大DLCにするかの指定。今回はfalse
    • trueにするとパケットが1byteだとしてもDLCが8となる。
  • CREATE_DAQ_TIMESTAMPS
    • DAQパケットを受信した際にタイムスタンプも同時に保持するか。今回はtrue。
    • falaseを指定すると常にタイムスタンプが0になる。
  • SERIAL
    • CANインターフェースデバイスの識別用のシリアルNo。
    • 今回はVirtual CAN Busのため0を指定。
  • BITRATE
    • ボーレート。今回は500000を指定。
  • APP_NAME
    • Vector Hardware Config上で採用されるアプリケーション名。今回は”PyXCPーCAN”を指定。

コンフィグレーションパラメータを見た印象

太郎くん
太郎くん

結構いろいろあるねー。
指定できるデバイス結構あるみたいだね。

フクさん
フクさん

そうだね。
有名どころは網羅していると言って良いだろう。

太郎くん
太郎くん

TRANSPORTのところで出てくるSxIってのは何になるんだろう?
EthはEthernetだと思うけど。

フクさん
フクさん

SxIはSPI、SCI(UART)を指してるみたいだな。
まぁPyXCPに限定した話としてはCOMポートと思って良いだろう。

太郎くん
太郎くん

ほー。
COMポート経由でXCPができるんだ。

フクさん
フクさん

XCP自体は物理層を選ばないプロトコルだからね。
理論上はなんでも行ける。
といっても、大体CAN/CAN-FD、Ethernet、FlexRayの3択な気はするし、現状としてはFlexRayはそれほど使われてないから実質2択だな。

太郎くん
太郎くん

なるほどー。

まとめ

フクさん
フクさん

まとめだよ。

  • JSON文字列を再度確認。
  • それぞれのパラメータについて一気に説明。
  • 使用できるCANインターフェースデバイスは多い。
    • 有名どころは網羅されている。
  • トランポート層にSxIを指定できる。
    • SPI、SCI(UART)のことでPyXCPに於いてはCOMポートになる。
    • と言ってもそれほど利用シーンは無い。

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

コメント

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