MicroPeckerX SocketCANドライバ《S810-MX-SKTCD》
MicroPeckerX SocketCANドライバとは
Linux標準のCAN/CAN FD通信インターフェース
MicroPeckerX SocketCANドライバは、MicroPeckerX CAN FD AnalyzerをLinux標準のSocketCANフレームワークで制御可能にするカーネルドライバです。既存のSocketCAN対応アプリケーションやツールをそのまま使用でき、Linux環境でのCAN/CAN FD通信開発を強力にサポートします。
MicroPeckerX SocketCANドライバは、専用ページから無償でダウンロード可能です。
開発現場のニーズに対応
MicroPeckerX SocketCANドライバは以下のご要望にお応えします。
- 既存のLinux CANツール(candump、cansend等)をそのまま使いたい
- WiresharkでCAN/CAN FD通信をリアルタイム解析したい
- ROS2やAutowareなどの自動運転プラットフォームと統合したい
- Pythonのpython-canライブラリで開発したい
- CI/CD環境にCAN/CAN FD通信テストを組み込みたい
標準的なLinuxのネットワークスタックと完全統合されたCAN/CAN FD通信環境を、MicroPeckerX SocketCANドライバが実現します。
SocketCANフレームワークの利点
MicroPeckerX SocketCANドライバは、Linuxカーネル標準のSocketCANフレームワークを採用することで、以下の利点を提供します。
標準ツールとの完全互換
- can-utils(candump、cansend、cangen等)がそのまま動作
- Wireshark、Savvy CANでのパケット解析に対応
- ip linkコマンドによる標準的なネットワーク設定
高性能・低遅延通信
- カーネルレベルでの直接制御による低遅延
- ゼロコピー転送による高効率なデータ転送
- Linuxネットワークスタックの最適化機能を活用
主要機能
標準的なSocketCAN操作
MicroPeckerX SocketCANドライバは、Linux標準のコマンドとAPIで制御可能です。
デバイス設定と起動
# CAN設定(500kbps)
sudo ip link set can0 type can bitrate 500000
sudo ip link set can0 up
# CAN FD設定(アービトレーション500kbps、データ2Mbps)
sudo ip link set can1 mtu 72
sudo ip link set can1 type can bitrate 500000 dbitrate 2000000 fd on
sudo ip link set can1 up
標準ツールでの使用
# モニタリング
candump can0
# データ送信
cansend can0 123#DEADBEEF
# テストデータ生成
cangen can0 -g 10 -I 200 -L 8
# Wiresharkでの解析
sudo wireshark -i can0
プログラミング言語対応
C言語での開発
#include <linux/can.h>
#include <linux/can/raw.h>
int s = socket(PF_CAN, SOCK_RAW, CAN_RAW);
struct can_frame frame;
// データ送信
frame.can_id = 0x123;
frame.can_dlc = 8;
memcpy(frame.data, data, 8);
write(s, &frame, sizeof(frame));
// データ受信
read(s, &frame, sizeof(frame));
Pythonでの開発(python-can)
import can
# バス初期化
bus = can.interface.Bus('can0', bustype='socketcan')
# メッセージ送信
msg = can.Message(arbitration_id=0x123,
data=[1, 2, 3, 4, 5, 6, 7, 8])
bus.send(msg)
# メッセージ受信
msg = bus.recv(timeout=1.0)
簡易起動スクリプト
開発効率を向上させる専用スクリプトを提供しています。
# スクリプトに実行権限付与
chmod +x mpdrv_run
# ドライバロード
./mpdrv_run load
# デバイス起動(can0、can1)
./mpdrv_run start can0
./mpdrv_run start can1
# デバイス停止
./mpdrv_run stop can0
./mpdrv_run stop can1
# ドライバアンロード
./mpdrv_run unload
インストール手順
1. ドライバのビルド
# ドライバディレクトリへ移動
cd 01_drv
# カーネルモジュールのビルド
make
# ビルド結果確認
ls *.ko
2. ドライバのインストール
# 必要なカーネルモジュールのロード
sudo modprobe can
sudo modprobe can_dev
sudo modprobe can_raw
# MicroPeckerXドライバのロード
sudo insmod ./MpDrv.ko
# デバイス確認
ip link show | grep can
3. 動作確認
# デバイス設定
sudo ip link set can0 type can bitrate 500000
sudo ip link set can0 up
# 動作テスト
candump can0 &
cansend can0 123#11223344
動作環境
| 項目 | 仕様 |
|---|---|
| 対応カーネル | Linux 4.x~5.x(SocketCAN対応カーネル) |
| 対応ディストリビューション |
|
| CPU アーキテクチャ |
|
| 必要パッケージ |
|
| USBポート | USB 2.0以上 |
| 対応プロトコル |
|
制限事項
- ビットレート設定は固定値のみ対応
- ハードウェアタイムスタンプは未サポート
- 送信タイミング精度はカーネルスケジューラに依存(RT-Linuxで改善可能)
- 高精度な周期送信が必要な場合はアプリケーション開発ライブラリを推奨
- 仮想環境での動作は非対応
MicroPeckerX SocketCAN Driverクイックスタートガイド デモ動画
活用事例
MicroPeckerX SocketCANドライバを使って以下のシステム開発が可能です。
ROS2/Autoware統合
開発現場のニーズ
自動運転開発プラットフォームとCAN/CAN FD通信を統合したい。既存のROSパッケージを変更せずに車両制御を実現したい。MicroPeckerX SocketCANドライバの活用
標準的なSocketCANインターフェースにより、ros2_socketcan_bridgeなどの既存パッケージがそのまま利用可能。車両のCAN/CAN FD通信とROS2トピックをシームレスに接続し、自動運転システムの開発効率を大幅に向上。CI/CD自動テスト環境
開発現場のニーズ
GitHubやGitLabのCI/CDパイプラインにCAN/CAN FD通信テストを組み込みたい。コード変更時の影響を自動検証したい。MicroPeckerX SocketCANドライバの活用
標準的なLinuxコマンドで制御できるため、シェルスクリプトやPythonでの自動化が容易。Jenkinsやgitlab-runnerと連携し、プルリクエスト時の自動テストを実現。組み込みLinuxゲートウェイ
開発現場のニーズ
Raspberry PiでCAN-Ethernetゲートウェイを構築したい。車両データをクラウドに送信するエッジデバイスを開発したい。MicroPeckerX SocketCANドライバの活用
Raspberry Pi上でSocketCANドライバが動作し、PCレスのコンパクトなゲートウェイを実現。MQTTやHTTPSでクラウドと連携し、車両のリモート監視システムを構築。既存システムからの移行
開発現場のニーズ
他社製CANアダプタから移行したいが、既存のアプリケーションは変更したくない。MicroPeckerX SocketCANドライバの活用
SocketCAN準拠により、アプリケーション側の変更は一切不要。デバイス名をcan0に設定するだけで、既存システムがそのまま動作。移行コストを最小限に抑えながら、MicroPeckerXの高性能を活用。車載ネットワーク解析
開発現場のニーズ
車載ネットワークのトラブルシューティングを効率化したい。Wiresharkで詳細な解析を行いたい。MicroPeckerX SocketCANドライバの活用
WiresharkのCAN/CAN FDプロトコル解析機能をフル活用。タイムスタンプ付きのパケットキャプチャ、フィルタリング、統計解析により、複雑な通信問題を迅速に解決。製品ラインナップ
無償ダウンロード
MicroPeckerX SocketCANドライバは、MicroPeckerXユーザー向けに無償でダウンロードが可能です。 但し、MicroPeckerX SocketCANドライバに対しての技術的な問合わせ対応は含まれません。 ドライバの組込み方法など、ユーザーからの技術的な問合わせ対応については、別途有償サポートパックのお申込みが必要になります。
| 製品型名 | 製品名 |
|---|---|
| S810-MP-SKTCD | MicroPeckerX SocketCANドライバ |
※:ご利用には、MicroPeckerX CAN FD Analyzer《S810-MX-FDx》または、MicroPeckerX CAN FDインターフェースモデル《S810-MX-HW2》が必要です。
MicroPeckerX SocketCANドライバ ダウンロード
MicroPeckerX SocketCANドライバ サポートパック
MicroPeckerX SocketCANドライバの組込み、問い合わせサポート対応は別途有償サポートとなります。
サポート内容
- 登録日から1年間の年間サポート
- 最大12件(合計20時間まで)の問い合わせに対応します
- 電話又は、メールによる組込み方法に関する問合せサポートを致します
- 問合せサポートに関しては、1週間以内の回答を目途とします
※緊急対応は含まれておりません - MicroPeckerX SocketCANドライバのカスタマイズ作業は含まれておりません
MicroPeckerX SocketCANドライバの年間サポートをご希望の方は、下記の製品型名でお知らせください。
| 製品型名 | 製品名 |
|---|---|
| S810-MX-SKTCD-SPT | MicroPeckerX SocketCANドライバ サポートパック |
他の開発環境との比較
MicroPeckerX開発環境の選択
MicroPeckerXは用途に応じて3つの開発環境を提供しています
| 開発環境 | SocketCANドライバ | Linux版ライブラリ | Windows版ライブラリ |
|---|---|---|---|
| 動作レベル | カーネル空間 | ユーザー空間 | ユーザー空間 |
| 標準ツール互換 | ◎ 完全互換 | △ 独自API | △ 独自API |
| 送信タイミング精度 | △ カーネル依存 | ◎ 0.1ms精度保証 | ◎ 0.1ms精度保証 |
| 周期送信精度 | △ OS負荷影響大 | ◎ ライブラリ制御 | ◎ ライブラリ制御 |
| リアルタイム性 | ○ 低遅延だが精度は不定 | ◎ 精度保証あり | ◎ 精度保証あり |
| 開発の容易さ | ○ Linux知識必要 | ◎ 簡単なAPI | ◎ 簡単なAPI |
| Python対応 | ○ python-can | ◎ 専用ラッパー | △ 要開発 |
| Raspberry Pi | ◎ 対応 | ◎ 対応 | × 非対応 |
タイミング制御の違い
重要な技術的違い
SocketCANドライバは標準的なLinuxカーネルのスケジューリングに依存するため、送信タイミングの精度はカーネルの負荷状況により変動します。一方、アプリケーション開発ライブラリは独自のタイミング制御機構により、高精度な送信制御を実現しています。
SocketCANドライバのタイミング特性
- 送信タイミング: カーネルスケジューラに依存(数ms~数十msの変動)
- 周期送信: cangen等のツールはユーザー空間で動作するため精度低下
- 適用場面: タイミング精度が緩い用途、標準ツール互換性重視
アプリケーション開発ライブラリのタイミング特性
- 送信タイミング: 0.1ms単位での高精度制御
- 周期送信: ライブラリ内部で精密制御(ジッタ最小化)
- 適用場面: ECUシミュレーション、厳密なタイミング要求がある評価
選択の指針
SocketCANドライバを選ぶべき場合
- 既存のLinux CANツールを活用したい
- WiresharkやSavvy CANで解析したい
- ROS2やAutowareと統合したい
- タイミング精度よりも標準互換性を重視
アプリケーション開発ライブラリを選ぶべき場合
- 高精度な送信タイミング制御が必要
- 周期送信の精度を保証したい
- ECUシミュレーションなど厳密な制御が必要
- 独自の評価ツールを開発したい
具体的な使い分け例
| 用途 | 推奨 | 理由 |
|---|---|---|
| ECUシミュレーション | ライブラリ | 高精度タイミング必須 |
| ログ収集・モニタリング | SocketCAN | タイミング精度不要 |
| 周期メッセージ送信 | ライブラリ | ジッタ最小化が重要 |
| 既存ツールとの連携 | SocketCAN | 互換性優先 |
| リプログラミング | ライブラリ | タイムアウト制御重要 |
| ネットワーク解析 | SocketCAN | Wireshark活用 |

