【上流検証】最小構成のモデルベース開発事例 その44【Bypass⑩】

【上流検証】最小構成のモデルベース開発事例 その44【Bypass⑩】 事例

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

はじめに

今回はCANapeへのXCP関連の設定。
XCP関連の知識が初めて生かされる。

プロトコルの設定だが、一部「高度」にカテゴライズされる設定もある。
(仕様上でもオプション側にあるコマンドたちの利用有無あたり)

登場人物

博識フクロウのフクさん

イラスト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

プロトコル設定

フクさん
フクさん

じゃ、

プロトタイプECUのXCP仕様に合わせて設定していこうか。

太郎くん
太郎くん

うん。

フクさん
フクさん

まずXCP versionは1.1で良いね。

太郎くん
太郎くん

versionが変ると何が変わるの?

フクさん
フクさん

大きな変化としては
Testコマンドの有無とか、
DTOパケット構成の「相対PID_WORD (3byte構成)」でFILLにしておく場所がカウンタになったりとかあるね。
今回使用する範囲では該当する仕様は無いんで、
最も基本的なversoin1.1にしておく。

太郎くん
太郎くん

シレっと膨大な情報が出てきた気がしたが。

フクさん
フクさん

今回は気にしなくて良いってことだよ。

太郎くん
太郎くん

うん。気にしない。

フクさん
フクさん

バイト順はMotorola形式
アドレス単位はBYTE単位だな。
MAX_CTOは255[byte]
MAX_DTOは1472[byte]
ブロックモードは未使用。
シードキーも未使用。

太郎くん
太郎くん

アドレス単位がBYTEじゃないことってあるの?

フクさん
フクさん

基本はBYTE単位だし、それ以外は見たことないんだけど、
ECU内のメモリアクセス効率を重視した場合、
BYTE単位じゃないくて、WORD、DWORD単位の方が良い。
ECUの負荷を下げる目的でBYTE以外もあり得るってことにはなるかな。

太郎くん
太郎くん

うーん、

なんかECU都合でバリエーションが増えるがメンドイよね。

フクさん
フクさん

私もそう思うが、

過去にこういう仕様が無いと困ることがあったんじゃないかな?

太郎くん
太郎くん

あとブロックモード、シードキーってなに?

フクさん
フクさん

気にしなくて良いが、簡単に説明。

ブロックモードはCTOの効率転送用の方式。
今回はスタンダードモードなんでブロックモードは未使用。
シードキーはXCP経由のキャリブレーションやリプログラミングをする際のセキュリティ機能だ。
これも今回使用しない。

太郎くん
太郎くん

最初の「気にしなくて良い」だけ良く聞こえたよ。

フクさん
フクさん

一応設定済みの画面はこんな感じ。

設定、プロトコル、一般、ドライバ、テスト接続、プロトコル層、XCP
フクさん
フクさん

となりのタブの高度な設定も調整するよ。

太郎くん
太郎くん

あいよ。

プロトコル設定(高度な設定)

太郎くん
太郎くん

なんかむちゃむちゃ設定項目があるんだけど・・・。
全部デフォルトでOKだったりしない?

フクさん
フクさん

うーん、まぁデフォルト状態でも動作しそうだけど、
効率面を考えると調整しておいた方が良い項目はあるかな。
3つくらいだからそんなに構えなくてもいいよ。

太郎くん
太郎くん

3つくらいなら大丈夫かな。

フクさん
フクさん

修正する場所は以下かな。

MODIFY_BITS_DISABLEDいいえ
SHORT_DOWNLOAD_DISABLEDいいえ
SHORT_UPLOAD_DISABLEDいいえ
太郎くん
太郎くん

DISABLE(許可しない)という設定項目で「いいえ」って・・・。

フクさん
フクさん

言いたいことは分かるが、
最初にできる状態が普通で、

それに対してできないようにしたんだけど、
XCPの仕様上出来ない方が普通って感じで
良く分からないことになってると思うんだよね。
製品仕様と標準仕様の攻めぎ合いの結果の姿なんだと思う。

太郎くん
太郎くん

ようわからんが、そういうものだと思っておこう。

太郎くん
太郎くん

で、それぞれの調整項目の意味は?

フクさん
フクさん

単純に使用して良いCMDを追加した感じ。
有効にしたCMDは以下。

MODIFY_BITSビット単位の更新
SHORT_DOWNLOADアドレス付きDOWNLOAD
SHORT_UPLOADアドレス付きUPLOAD
フクさん
フクさん

一応設定済みの画面はこんな感じ。

CANape、プロトコル、高度な設定、MODIFY_BITS_DISABLE、SHORT_DOWNLOAD_DISABLE、SHORT_UPLOAD_DISABLE、XCP
太郎くん
太郎くん

これらのCMDって標準仕様だと使わない方側なんだ?

フクさん
フクさん

厳密に言うとOptional(選択可)だね。
逆の必須CMDはMandatoryと呼ばれる。

太郎くん
太郎くん

うーん、

何がOptionalかも知っておいた方が設定で悩まなく済むってことなのかな。

フクさん
フクさん

そこらへんは難しいところだね。
ASAMとしての標準仕様に依存している部分と
CANapeという製品の仕様に依存している部分があるんで、
一概にこれって感じは無いよ。
最終的には慣れだな。

太郎くん
太郎くん

そんな身も蓋もない・・・。

フクさん
フクさん

続きは次回かな。

太郎くん
太郎くん

(これは結構かかるな。)

まとめ

フクさん
フクさん

まとめだよ。

  • XCPにもversionが存在する。
    • 最も基本的な構成はversion1.1。
  • ブロックモードを使うとCMD効率的に動作する。
    • しかし、今回は使わない。
  • シードキーを使うとセキュリティロックが掛けられる。
    • しかし、今回は使わない。
  • MODIFY_BITS、SHORT_DOWNLOAD、SHORT_UPLOAD等はデフォルトでは無効になっている。
    • ECU側が対応しているならば、効率化するために有効化しておいた方が良い。

バックナンバーはこちら

コメント

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