バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
今回はCANapeへのXCP関連の設定。
XCP関連の知識が初めて生かされる。
プロトコルの設定だが、一部「高度」にカテゴライズされる設定もある。
(仕様上でもオプション側にあるコマンドたちの利用有無あたり)
登場人物
博識フクロウのフクさん
![](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
プロトコル設定
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
じゃ、
プロトタイプECUのXCP仕様に合わせて設定していこうか。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
うん。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まずXCP versionは1.1で良いね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
versionが変ると何が変わるの?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
大きな変化としては
Testコマンドの有無とか、
DTOパケット構成の「相対PID_WORD (3byte構成)」でFILLにしておく場所がカウンタになったりとかあるね。
今回使用する範囲では該当する仕様は無いんで、
最も基本的なversoin1.1にしておく。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
シレっと膨大な情報が出てきた気がしたが。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
今回は気にしなくて良いってことだよ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
うん。気にしない。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
バイト順はMotorola形式
アドレス単位はBYTE単位だな。
MAX_CTOは255[byte]
MAX_DTOは1472[byte]
ブロックモードは未使用。
シードキーも未使用。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
アドレス単位がBYTEじゃないことってあるの?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
基本はBYTE単位だし、それ以外は見たことないんだけど、
ECU内のメモリアクセス効率を重視した場合、
BYTE単位じゃないくて、WORD、DWORD単位の方が良い。
ECUの負荷を下げる目的でBYTE以外もあり得るってことにはなるかな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
うーん、
なんかECU都合でバリエーションが増えるがメンドイよね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
私もそう思うが、
過去にこういう仕様が無いと困ることがあったんじゃないかな?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
あとブロックモード、シードキーってなに?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
気にしなくて良いが、簡単に説明。
ブロックモードはCTOの効率転送用の方式。
今回はスタンダードモードなんでブロックモードは未使用。
シードキーはXCP経由のキャリブレーションやリプログラミングをする際のセキュリティ機能だ。
これも今回使用しない。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者a」19アップ.png)
最初の「気にしなくて良い」だけ良く聞こえたよ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
一応設定済みの画面はこんな感じ。
![設定、プロトコル、一般、ドライバ、テスト接続、プロトコル層、XCP](https://www.simulationroom999.com/blog/wp-content/uploads/2020/07/02_プロトコル設定-1024x824.png)
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
となりのタブの高度な設定も調整するよ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
あいよ。
プロトコル設定(高度な設定)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
なんかむちゃむちゃ設定項目があるんだけど・・・。
全部デフォルトでOKだったりしない?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
うーん、まぁデフォルト状態でも動作しそうだけど、
効率面を考えると調整しておいた方が良い項目はあるかな。
3つくらいだからそんなに構えなくてもいいよ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
3つくらいなら大丈夫かな。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
修正する場所は以下かな。
MODIFY_BITS_DISABLED | いいえ |
SHORT_DOWNLOAD_DISABLED | いいえ |
SHORT_UPLOAD_DISABLED | いいえ |
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
DISABLE(許可しない)という設定項目で「いいえ」って・・・。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
言いたいことは分かるが、
最初にできる状態が普通で、
それに対してできないようにしたんだけど、
XCPの仕様上出来ない方が普通って感じで
良く分からないことになってると思うんだよね。
製品仕様と標準仕様の攻めぎ合いの結果の姿なんだと思う。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
ようわからんが、そういうものだと思っておこう。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
で、それぞれの調整項目の意味は?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
単純に使用して良いCMDを追加した感じ。
有効にしたCMDは以下。
MODIFY_BITS | ビット単位の更新 |
SHORT_DOWNLOAD | アドレス付きDOWNLOAD |
SHORT_UPLOAD | アドレス付きUPLOAD |
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
一応設定済みの画面はこんな感じ。
![CANape、プロトコル、高度な設定、MODIFY_BITS_DISABLE、SHORT_DOWNLOAD_DISABLE、SHORT_UPLOAD_DISABLE、XCP](https://www.simulationroom999.com/blog/wp-content/uploads/2020/07/03_プロトコル設定高度な設定-1024x824.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
これらのCMDって標準仕様だと使わない方側なんだ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
厳密に言うとOptional(選択可)だね。
逆の必須CMDはMandatoryと呼ばれる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
うーん、
何がOptionalかも知っておいた方が設定で悩まなく済むってことなのかな。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
そこらへんは難しいところだね。
ASAMとしての標準仕様に依存している部分と
CANapeという製品の仕様に依存している部分があるんで、
一概にこれって感じは無いよ。
最終的には慣れだな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
そんな身も蓋もない・・・。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
続きは次回かな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
(これは結構かかるな。)
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- XCPにもversionが存在する。
- 最も基本的な構成はversion1.1。
- ブロックモードを使うとCMD効率的に動作する。
- しかし、今回は使わない。
- シードキーを使うとセキュリティロックが掛けられる。
- しかし、今回は使わない。
- MODIFY_BITS、SHORT_DOWNLOAD、SHORT_UPLOAD等はデフォルトでは無効になっている。
- ECU側が対応しているならば、効率化するために有効化しておいた方が良い。
バックナンバーはこちら
コメント