バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
やっとBypassに到達。
登場人物
博識フクロウのフクさん

イラスト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
Bypassの方針

さぁお待ちかねのBypassだ。

な、長かった。
まさか、16回も重ねるなんて全く思ってなかった。

まぁゼロからのスタートだったしね。
普通はXCP環境が整備されていることが多いんで、
4,5回くらいのボリュームのはずなんだけど、
そもそものBypassの目的とか、それを達成するための手段としてのXCPや
XCPを実現するためのA2Lの話が入ってしまったからね。
今思うと、Bypassネタで15回もやるより、
XCPで5回、A2L&XCPで5回、Bypassで5回の配分が妥当だったかもって筆者も反省しているよ。

メタいな。

まずは今回のBypassを実現する全体構成を絵に出すよ。


いままでのエッセンスが全部ぶっこまれた絵だね。
でも今ならそれぞれ理解できるよ。

それは良かった。
頑張って説明したかいがあるよ。
Bypassしてみる。

よし。
XCPはOK。
A2LはOK。
SimulinkはOK。
プロトタイプECUとの接続もOK。
これでBypassができるね。

よし、動かしてみよう。

動かしながら入力も弄ってみるね。


うん。期待通りの動作だよ。
過去のモデルではばっちり動いているから
お客さん側で新しいモデルと差し替えても、それの振る舞い合わせて動作してくれそうだ。

まぁいろいろややこしいところもあるから手順書は起こしておいた方が良いね。
お客さんもCANapeの使い方とか知らない可能性あるし。

うん。
だいたいメモってはいたからそれをドキュメントとしてまとめておくよ。
振り返り

よし、簡単に振り返りをしよう。

じゃ、確認も兼ねて僕の方で話をするね。

Bypassの目的
- 主要なロジックをPC側に置くことで、ロジックのトライアル&エラーの回数を増やすことができる。
- よって、装置側を弄る必要なない。
Bypassの手法
- 標準仕様としてはXCPを使用することが多い。
- XCP仕様の中でもDAQ、STIMが最もBypassと相性が良い。
XCP
- 物理層はCAN、Ether、USBなど多岐に分かれる。
- 今回はEther。
- XCPは計測、キャリブレーション、リプログラミングを実現するための仕様。
- 今回は計測、キャリブレーションの機能を使ってBypassを実現。
- CTO,DTOというパケット構成に分かれる。
- CTOが細かい指令を出すことが得意なパケット。
- CMD、RES、ERRなどがある。
- DTOが連続的にデータの送信ができる効率的なパケット。
- DAQ、STIMがある。
- CTOが細かい指令を出すことが得意なパケット。
MCツール
- XCPを利用した計測、キャリブレーションを実現してくれるツール
- ETAS社製INCA、Vector製CANapeが有名。
- 今回はCANapeを使った。
- MCツールを使うにはA2Lが必要
- A2LにはXCPのプロトコル設定とECU側の変数情報が記載される。
CANapeIO
- CANapeにSimulnkDLLを組み込む際のin/outを実現してれるブロック。
- CANapeにSimulnkDLLを組み込む際はこのブロックに付けた名称とCANape上の変数で紐づけができる。

おー、バッチリだね。

まぁもっと細かいところもあるとは思うけど。

大まかな流れさえ掴んでおけばOKだよ。
今回はCANapeだったけど、環境がINCAになった際は多少は手間取るかもしれない。
しかし、流れが一緒と思えばいくらでも自分で調べようはある。

たしかに、ツールが変るとわからなくなりそうだけど、
必要なキーワードは予想できるから、調べるなり、適切な人に聞くなりして実現するってことであれば、割とイメージ湧いてるね。

うん。
ほんとCANapeが上司のPC中で肥やしにならなくて良かったよ。

しばらくこのまま自分で持ってていろいろ実験してみるよ。。

そうだね。
今回説明した範囲はCANapeの一部の機能に過ぎないんで、
ちょこちょこ触ってどこま出来そうなツールなのかは把握しておくことは良いね。

というわけで次の事件が発生するまでは寝てていいよ。

(頼むから事件は起こさないでよ)

なにはともあれ、Bypassシリーズは今回で終了。
まとめ

まとめだよ。
- やっとBypass実施。
- いままでの内容を振り返った。
- 一連の流れを大きく把握していれば、ツールが変っても適応できる。
バックナンバーはこちら
コメント