Awesome CAN Bus 


🚜 CANバスのための素晴らしいツール、ハードウェア、リソース
このキュレーションされたリストは、CANバスデバイスのリバースエンジニアリングに役立ちます。特に、自動車用組み込みコントローラソフトウェアと通信の理解に特化しています。
注記
「🔝」とマークされた項目は強く推奨されます。
このリストへの恒久的URL: https://github.com/iDoka/awesome-canbus
目次
ハッキングおよびリバースエンジニアリングツール
- GVRET - 汎用電気自動車リバースエンジニアリングツール (Arduino FW)。
- UDSim - Unified Diagnostic Services (UDS) シミュレータおよびファザー (uds-server の後継)。
- uds-server - CAN UDS シミュレータおよびファザー。
- CANalyse - 車両ネットワークの解析および攻撃ツール。
- canhack - 低レベルCANプロトコルハッキングライブラリ。
- canDrive - 自分の車をハッキングするためのツール。
- Carpunk - CANインジェクションツールキット。CANghost の後継。
- CANghost - CANバスに侵入するための自動化スクリプト。
- canTot - クイック&ダーティな canbus h4xing フレームワーク。
- CANanalyze - CAN/ISOTP/UDS などの自動車プロトコルと対話するために使用できるフレームワーク。
- Scapy - Pythonベースの対話型パケット操作プログラム&ライブラリ。CAN/ISOTP/UDS/GMLAN およびその他多くのプロトコルをサポートします。
- CAN-RE-Tool - CANバス通信ベースのシステム向けリバースエンジニアリングツール。
- 🔝can-explorer - リバースエンジニアリングを支援するCANバス可視化ツール。
テスト機器とシミュレータ
- canerrsim - SocketCAN を使用してエラー状態をテストするためのCANバスエラーフレームシミュレータおよびモニタ。
- ECU-simulator - いくつかの車両診断サービスをシミュレートするツール。UDS (ISO 14229) および ISO-TP (ISO 15765-2) プロトコルをサポートするOBD-IIドングルやテスターツールのテストに使用できます。
- ELM327-emulator - マルチECUシミュレーションをサポートする ELM327 アダプタ経由でOBDIIにインターフェースするソフトウェアをテストするためのELM327エミュレータ。
プロトコル
OBD-IIツール
- DDT4All - 独自のECUパラメータ画面を作成し、安価なELM327インターフェースでCANネットワークに接続するためのツール。
- ELM327SLCAN - ELM327 ベースの車両CANバススニファ。
- Arduino-OBD2-Async - 非同期データリクエスト対応のArduino OBDライブラリ。
- CAN-Shark - Arduino + MCP2515 シールドでOBD PIDを扱います。
- OBD2-Scantool - 車からOBD2情報を読み取るPythonスキャンツール。
- O2OO - OBD-II準拠のカーダイアグノーシスツール。車からセンサーデータを読み取り、SQLiteデータベースに保存します。
- freediag - OBD-II準拠の自動車向けフリー診断ソフトウェア。
- pyvit - Pythonビークルインターフェースツールキット (アーカイブ済み)。
- OBDium - ELM327 アダプタ経由でライブOBD-IIデータ、故障コード解析、オフラインVINデコードを提供する車両診断アプリ。
UDS
ISO 14229 標準
- python-UDSonCAN - UDS ISO-14229 標準のPython実装。
- uds-c - Unified Diagnostics Service (UDS) およびOBD-II Cライブラリ。
- iso14229 - 組み込みシステム向けUDS ISO-14229 サーバおよびクライアントのC実装。
ISO-TP
ISO 15765-2 標準
- isotp-c - ISO-TP (ISO15765-2) CANプロトコルのC実装。
- python-can-IsoTP - ISO-TP (ISO15765-2) CANプロトコルのPython実装。
- CanTp - AUTOSAR仕様 v4.4.0 に準拠した CanTp モジュール (ISO 15765-2) の実装。
- aioisotp - asyncio Python用のISO-TP実装。
J1939ツール
SAE J1939 標準
J2534ツール
SAE J2534 標準
ユーティリティ
共通
- 🔝cantools - CANバスネットワーク用のCLIツールコレクション。
- BUSMASTER - CANなどのデータバスシステムをシミュレート、解析、テストするためのオープンソースソフトウェアツール。
- signalbroker-server - gRPC を使用して CAN/LIN/FlexRay などのバスを読み書きするためのツール。任意の言語を使用できます。
- CANiBUS - CANデバイス車両リサーチサーバー (OpenGarages.org)。
- CANopenTerm - CANopen CC および CAN CC のネットワークとデバイスを開発、テスト、解析するためのツール。
Linux関連
- 🔝Linux CAN Utils - Linux-CAN / SocketCAN ユーザースペース用の便利なユーティリティ。
- CAN support in Linux - CANハードウェアインターフェースのためのLinuxカーネルサポート。
- SocketCAN - Linuxカーネルサポート (カーネル >= 2.6)。
- J1939 - Linuxカーネルサポート (カーネル >= 5.4)。can-j1939 カーネルモジュール も参照してください。
- elmcan - ELM327 ベースのデバイス向けLinux SocketCANカーネルドライバ (カーネル >= 6.0)。
- can-isotp - ISO 15765-2:2016 CANトランスポートプロトコル用Linuxカーネルモジュール (Linuxカーネル >= 5.10 の一部)。
- gs_usb - Geschwister Schneider USB/CANデバイスおよび candleLight USB CANインターフェース向けの、WCID ベースの Linux/Windows CANドライバ。
GUIツール
TUIツール
- socanui - ターミナル用 SocketCAN ユーザーインターフェース。
- canscope - CANバス検査およびリバースエンジニアリングツール。
Pythonツール
- 🔝python-can - Python開発者向けにコントローラエリアネットワーク (CAN) サポートを提供するCANパッケージ。
- strym - USB-CANインターフェースで動作するリアルタイムCANデータロギングおよび可視化ツール。
- canviewer - 記録されたCANバスデータまたはライブデータから、受信したCANバスメッセージを検査できるGUIプログラム。
- can4python - Linux SocketCAN 上でCANバス信号を扱うためのパッケージ。
- Python-Vector-CANoe - PythonでVector CANoe APIを制御します。
- CanCat - 自動車やビルオートメーションなどでよく使用されるCANのスイスアーミーナイフ。
- Pyfuzz_can - 研究において、トラックにメッセージを注入して加速を引き起こしたり、クラスタのスプーフィングを行ったり、ブレーキ性能を低下させたりするために使用できます。
- Robotell-USB-CAN-Python - Robotell USB-CAN アダプタ用Pythonプログラム。
- python-socketcan-monitor - ネットワークインターフェース経由でCANバスからのデータを表示するスクリプト。
- CanoPy - メッセージペイロードをリアルタイムで可視化およびプロットするためのPython GUI。
- PythonVectorXL - Vector XL ドライバライブラリ用の完全なPython ctypesラッパーライブラリ。'vxlapi.h' の #define 命令、struct/union typedef 命令、関数定義 (DLLの読み込みも含む) を含みます (Windowsのみ)。
python-can に触発されています。
- py4can - CANalyzer 経由でCANメッセージを送受信するPythonユーティリティ。
CAN-over-IP
- cannelloni - Ethernetトンネル上のSocketCAN。
- tincan - UDPインターフェース経由のCANバストラフィックの可視化。
- pican - TCP CANリーダー。
- canny - シンプルなCAN-over-IPゲートウェイ。
その他のユーティリティ* Seeed-USB-CAN-Linux - 無名の中国製USB-CANアダプタ向けLinux CLIサポート。
- opendlv-device-can-replay - キャプチャしたCANフレームをCANインターフェースに再生するOpenDLVマイクロサービス。
- c0f - CANバストラフィックを分析し、メーカーとモデルをフィンガープリントするように設計されたCANバスフィンガープリンティングツール。
- canqv - CAN_RAWを使ったクイックCANフレーム検査。
- Candle.NET - candlelight CANバスゲートウェイ/アナライザ(例:CANable、CANtactなど)向けCandle APIの.NETラッパー。
- canSerializer - CAN以外のトランスポート層での送信のためにCANフレームをシリアライズ/デシリアライズするライブラリ(UART、SPIなどを介したCANフレームの転送に使用可能)。
ライブラリ
- libwecan - CANシグナルのエンコード/デコードを行うヘッダオンリーライブラリ。
- VCAN - C言語で書かれた小さな仮想CAN/CAN-FDバスライブラリ。
- IMCTFD - 改良版Microchip CAN Teensy FlexDataライブラリ MCP2517FD。
- go-socketcan - SocketCAN用のGo言語ライブラリ。
- Qt CAN Bus - さまざまなCANデバイス(SocketCAN、Sys Tec、PEAK、Virtual)をサポートするマルチプラットフォームC++プラグインベースのライブラリ。
- JavaCAN - epollベースのイベント駆動I/Oを使用し、RAW、BCM、ISO-TPソケットをサポートするSocketCAN用のJavaバインディングライブラリ。
- iso15765-canbus - C言語でのISO15765-2の実装。
- CanKit - 複数のCANアダプタにわたって統一APIを提供するクロスプラットフォームのC#/.NET CAN通信ライブラリ。
- CANvenient - WindowsとLinux上の複数のCAN API向け抽象化レイヤ。
サンプル
CANデータベース
フォーマット (DBC, KCD)
DBC
DBC - CANデータベースの事実上の標準は、Vector Informatik GmbHによって開発されたDBCファイル形式です。公式の公開ドキュメントや仕様が存在しないプロプライエタリな形式です。
KCD
- KCD - CAN内の通信関係を記述するオープン形式。DBC形式に似ていますが、XMLで記述されます。
コンバータとパーサ
- can4python - KCDファイル(DBCファイルから変換されたものも含む)の内容を表示するための便利なパッケージ。
DBCのみ
ハードウェア
All kind of HW like CAN bus USB2CAN dongles, loggers, sniffers, adapters, etc.
ARM
- USB_CAN-FD on ATSAME51 - オープンソースハードウェアのUSB-CAN-FDインターフェース(ATSAME51J)。
- SuperCAN - オープンソースのUSB-CAN-FDプロトコルファームウェア(ATSAME51)。
- FlexCAN - Teensy 3.1、3.2、3.5、3.6向けCAN用Arduinoライブラリ。
- ELM327 - LPC1517JDB48ベースのオープンソースELM327 OBDアダプタ。
- Open-OBD2-datalogger - ライブエンジンデータをSDカードに保存するNXP Kinetis Eデータロガー(可視化はHTML5とJavaScriptで行われる)。
- CANBootloader - GUI + CANブートローダープロトコル。
- PiCCANTE - Raspberry Pi Pico (1|2|W) ベースのオープンソースCANハッキングツール。最大3xのCANインターフェースを備え、ELM327エミュレータを含む。
STM32
STM32F0x2ベースのHW
Arduino
- GVRET - 汎用電気自動車リバースエンジニアリングツール(Arduino FW)。
Espressif Systems (ESP8266, ESP32)
SBC
SBC - シングルボードコンピュータ。
ASICおよびFPGA向けIPコア
- CAN - クラシックCANプロトコルコントローラ用IPコア(VHDL)。
- CTU-CAN-FD - CAN FD IPコア、ISO 11898-1:2015準拠(VHDL)。
その他のHW
ハードウェア関連ツール
貢献* コントリビューションはいつでも歓迎です! 最初にコントリビューションガイドラインをお読みください。
脚注
- 最新情報については、このルートリポジトリをフォローしてください。
- もう1つのawesomeリスト ▶️ CAN ID collections ◀️ も役立つかもしれません。
- また、LINバスのリバースエンジニアリング、LINハードウェアの開発とデバッグのための素晴らしいツールとリソースをまとめたこのキュレーションリストも役立つかもしれません。