carbus_lib — 車載バス(CAN/ISO-TP/UDS)非同期スタック
概要
carbus_libは、Pythonで書かれた非同期(asyncio)ベースの車載通信ライブラリで、特にCAN-Hacker / Car Bus Analyzer アダプタ向けに設計されています。ハードウェアとの低レベルなやり取り(CAN/LINの設定、フィルタ、ターミネータ制御など)を行うcarbus_async、CAN上でのISO-TP(ISO 15765-2)を実装するisotp_async、そしてUDS(ISO 14229)を実装したuds_asyncを含みます。さらに、TCPブリッジによる遠隔接続機能を提供し、物理的に接続されていない環境でもアダプタを透過的に扱えます。自動テストやリモート診断ツールのベースに適したモジュール構成が特徴です。
リポジトリの統計情報
- スター数: 7
- フォーク数: 2
- ウォッチャー数: 7
- コミット数: 8
- ファイル数: 9
- メインの言語: Python
主な特徴
- asyncioベースの非同期APIで並列処理・高応答性を実現
- ISO-TP(シングル/マルチフレーム)とUDSクライアント/サーバを提供
- CAN-Hacker / Car Bus Analyzerに特化した低レイヤ制御(フィルタやターミネータ)
- TCPブリッジでネットワーク越しにアダプタを利用可能
技術的なポイント
carbus_libはレイヤ化された設計を採り、ハードウェア制御→トランスポート→診断という階層を分離しています。最下層のcarbus_asyncはアダプタ固有の通信やCAN/LINの設定(ビットレート、フィルタ、ターミネータのオン/オフなど)を非同期で扱い、イベント駆動でフレーム受信を通知します。中間のisotp_asyncはISO 15765-2に従い、単一フレーム・初回フレーム・連続フレーム・フロー制御などを実装し、ペイロードの分割・再構築・タイムアウト処理やウインドウ管理を行います。上位のuds_asyncはISO 14229に基づくUDSサービス(診断セッション管理、リードデータ、セキュリティアクセス、など)をクライアント/サーバ双方で扱うためのAPIを提供し、VIN読み取りなどの典型的な診断タスクをサポートします。全体がasyncioで実装されているため、複数の診断セッションや同時フレーム処理、ネットワーク越しのTCP-bridge経由での接続をスムーズに行えます。TCP-bridgeはアダプタをリモートで公開する役割を持ち、物理的に接続されていないクライアントでもあたかもローカル接続であるかのように扱えます。現状は小規模でコミット数も少なく、実運用向けにはテストやドキュメント、例示コードの充実が望まれますが、プロトタイピングや研究用途には利用価値が高い設計です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- .idea: dir
- LICENSE: file
- README.md: file
- carbus_async: dir
- isotp_async: dir
- uds_async: dir
- tcp_bridge: dir …他 1 ファイル
まとめ
非同期で車載通信(CAN/ISO-TP/UDS)を扱える軽量なライブラリです。
リポジトリ情報:
- 名前: carbus_lib
- 説明: 説明なし
- スター数: 7
- 言語: Python
- URL: https://github.com/controllerzz/carbus_lib
- オーナー: controllerzz
- アバター: https://avatars.githubusercontent.com/u/34655997?v=4
READMEの抜粋:
car-bus-lib (async CAN / ISO-TP / UDS stack)
Асинхронная библиотека на Python для работы с CAN-адаптером CAN-Hacker / Car Bus Analyzer:
- 📡
carbus_async– низкоуровневая работа с железкой (CAN/LIN, фильтры, терминаторы и т.д.) - 📦
isotp_async– ISO-TP (ISO 15765-2) поверх CAN (single + multi-frame) - 🩺
uds_async– UDS (ISO 14229) клиент и сервер (диагностика, чтение VIN и т.п.) - 🌐
TCP-bridge– удалённое подключение к адаптеру через сеть (как будто он воткнут …