【上流検証】最小構成のモデルベース開発事例 その23【ネットワークMILS②】

【上流検証】最小構成のモデルベース開発事例 その23【ネットワークMILS②】 事例

バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/

はじめに

インターフェースがいきなりCANに変更になるという大惨事。
まずは同等の環境を作るためVector社のCANoeを手配。

登場人物

博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

CANoe手配完了

太郎くん
太郎くん

よし。

インストールも終わってライセンスのアクティベートもできたぞ。

フクさん
フクさん

お疲れ。

太郎くん
太郎くん

で、どんな感じで環境を作るの?

構成概要

フクさん
フクさん

以下の構成を考えている。

太郎くん
太郎くん

おー。

各信号のやり取りを本当にCANに置き換えた感じだね。

フクさん
フクさん

これをノードという形で表現しなおすと以下の感じ。

太郎くん
太郎くん

え?

これだと、信号が混線しない?!

フクさん
フクさん

CANのネットワーク構成はマルチマスタと呼ばれて
ネットワーク上の全ノードに信号が届くんだ。
ただし、受信側はCANIDで必要な情報だけフィルタして取得する。
そして、各CANフレームは衝突しないような仕組みがあるので、
概念上は混線したり、フレームが破壊されることはない。

太郎くん
太郎くん

ノード表現はあくまで物理的な構成を示しているだけで、
論理上の接続はその前の絵になるってことであってる?

フクさん
フクさん

その認識で良いよ。

必要な情報

太郎くん
太郎くん

概要は分かったけど、

他に必要なものってあるの?

フクさん
フクさん

まぁCANを使うことろから本来であれば以下の情報が必要。

  • CANID
  • CANフレーム内のシグナルレイアウト
  • シグナルbit長、ByteOrder、符号有無
  • シグナルのbit/scale
  • それぞれのCANID毎の送信周期
太郎くん
太郎くん

んー。
これは分からないなー。
確認しておくよ。

フクさん
フクさん

では、今回は仮で以下としておこう。

シグナルCANID符号ByteOrderBit/Scale備考
速度指令0x111unsignedMotorola\(1[km/h]\)
実車速0x222unsignedMotorola\(0.01[km/h]\)
アクセル開度0x333unsignedMotorola\(2^{-15}\)1.0で全開
フクさん
フクさん

レイアウトは全部前詰め、
送信周期は一律で\(10[ms]\)にしておこう。

太郎くん
太郎くん

いろいろ決めないといけないことが多いんだねー。

フクさん
フクさん

まぁそうなんだけど、電圧、ADC/DAC、制御としての物理値変換を考えると
余り変わらないか、むしろ楽かもしれないよ。

太郎くん
太郎くん

言われてみると確かにそんな気がしてくる。

フクさん
フクさん

これで以下が決まったことになる。

  • ノード構成
  • 各ノードの送信CANID
  • 各CANフレームのシグナルレイアウト
  • 各シグナルのデータ長、符号などの物理変換情報
太郎くん
太郎くん

これで動かせる準備ができたってことで良い?

フクさん
フクさん

まだだよ。

太郎くん
太郎くん

えー。

なんかもっとサクサクっと行けると思ってたんだけど。

フクさん
フクさん

上記の決まったことをもとにdbcというネットワーク構成を定義するファイルを作成する必要がある。

太郎くん
太郎くん

意外と、ツールを使う敷居の高さを感じるんだけど・・・。

フクさん
フクさん

まぁ世の中一般的なソフトウェアと比べると前準備は多いかもね。
でも、ここでしっかり定義しておくと、あとがすごく楽できるから。

太郎くん
太郎くん

そうだね。
Simulinkの時もそうだったけど、

喰わず嫌いは良くないよね。

フクさん
フクさん

というわけで次回はネットワーク構成定義ファイルことdbcを作成する。

まとめ

フクさん
フクさん

まとめだよ。

  • CANはマルチマスタなネットワーク。
    • しかし概念上は個別の信号線を模しているだけ。
  • CANをうまく利用するためにはネットワーク構成を明確にする必要がある。
    • ノード、CANID、シグナル。

バックナンバーはこちら

コメント

タイトルとURLをコピーしました