自動車にはECU(Electronic Control Unite)という電子機器がたくさん搭載されており、エンジンの燃料噴射タイミングや窓の開閉等、様々な制御を行っています。
整備士がECUを点検する際は、専用の診断端末を自動車に接続し、ECUとUDS(Unified Diagnostic Service)という通信プロトロルでやりとりを行い、故障していないかチェックしています。
本記事ではM5StickC PlusをECUに見立て、ミニUDSサーバを実装します。
4つに分けて書きます。
- その1 概要編
- その2 CAN通信編
- その3 ISO-TP編
- その4 UDS編
ミニUDSサーバの概要
- CAN通信を行う
- M5StickC PlusでESP32CAN(ESP32-Arduino-CAN)を使用
- トランスポート層プロトコルのISO-TPに対応
- UDSの
$11、$22
サービスに対応- $11を受信したら、M5StickC Plusをリセットする
- $22を受信したら、M5StickC Plusのセンサーデータを応答する
使用機器
-
M5StickC Plus
-
M5Stack用CAN-BUSユニット(CA-IS3050G)
M5Stack用となっていますがM5StickC Plusでも使用できます
-
M5Stack用CAN-BUSユニット(CA-IS3050G)
- Raspberry PI 4
接続構成
M5StickCPlus(ECU)とラズパイ(診断端末)をCAN接続
開発環境
M5StickC Plusの開発環境はVSCode+PlatformIOを使用しています。
概要編 以上