バックナンバーはこちら。
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ポートになる。
- と言ってもそれほど利用シーンは無い。
バックナンバーはこちら。
コメント