このモデルについて
これは OMNeT++ 上で CAN バス通信を扱うためのシミュレーションモデルです。車載ネットワークのタイミング挙動や、CAN と Ethernet が混在する構成の評価、教育用途などを支える研究ツールとして用いてきました。
ソースコードは GitHub で公開しており、実験版の CAN-Ethernet GW モデルは別リポジトリの GitHub で配布しています。
主な特徴
- CAN メッセージ送信とアービトレーション挙動のシミュレーション
- 車載ネットワークの遅延やタイミング特性の評価
- CAN-Ethernet 混在ネットワーク研究の基盤
- 研究プロトタイプや教育用デモで利用できる構成
- CAN message router モデルを含み、CAN-CAN ゲートウェイの評価にも利用できる構成
- 公開されていたベータ版では、CAN プロトコルの error frame は未対応
動作確認済みの環境(初期公開時)
- OMNeT++ 4.4.1 以降(4.4.1 と 4.6 で確認済み)
- INET Framework 2.3.0 または 2.5
- INET 2.6 や 3.x ではコンパイルエラーが報告されている
- OMNeT++ 5.x はリリース版では非対応
関連リンク: OMNeT++ · INET Framework
インストール手順(アーカイブ)
初期公開時の配布物と環境に対応したセットアップ手順です。現在のツール群とはバージョンが異なるため、参考情報として読んでください。
- OMNeT++ と INET Framework をインストールします(以下の例では `~/program/` 配下を想定)。
- 配布アーカイブを展開し、ソースと example を INET 側へコピーします。
0.1.0/src/* -> ~/program/omnetpp-4.4.1/inet/src/
0.1.0/example/* -> ~/program/omnetpp-4.4.1/inet/example/
$ cp -r 0.1.0/src/* ~/program/omnetpp-4.4.1/inet/src
$ cp -r 0.1.0/example/* ~/program/omnetpp-4.4.1/inet/example/ - OMNeT++ のルートディレクトリに移動し、環境設定を行います。
$ cd ~/program/omnetpp-4.4.1
$ . setenv
$ ./configure - `inet` ディレクトリに移動してビルドします。
$ cd inet
$ make clean
$ make makefiles
$ make サンプル構成
`omnetpp-4.4.1/inet/examples/can/` の下に次のサンプルが含まれています。各サンプルは該当ディレクトリに移動して `./run` で実行します(必要に応じて `chmod +x run`)。
- `bus1`
- `bus2`
- `messagerouter1`
- `messagerouter2`
スクリーンショット
送信ノード 1 台、受信ノード 1 台の基本的な CAN バス構成です。
送信ノード 2 台と受信ノード 1 台からなる CAN バス構成です。
CAN message router を使ったゲートウェイ型の構成例です。
より大きな構成を扱う CAN message router の例です。
配布物に関する補足
公開しているソースコードはベータ版であり、バグを含む可能性があります。実験版として CAN-Ethernet GW モデルも GitHub 上で配布しています: can-for-omnet と can-ethernet-gw-for-omnet です。
関連する発表
- Keigo Kawahara, Yutaka Matsubara, Hiroaki Takada, “A Simulation Environment and Preliminary Evaluation for Automotive CAN-Ethernet AVB Networks,” OMNeT++ Community Summit 2014.
- Jun Matsumura, Yutaka Matsubara, Hiroaki Takada, Masaya Oi, Masumi Toyoshima, Akihito Iwai, “A Simulation Environment Based on OMNeT++ for Automotive CAN-Ethernet Networks,” WATERS 2013.
問い合わせ
このシミュレーションモデルに関するフィードバックを歓迎します。質問等があればメールでご連絡ください。