バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
今回はASAM XCPのフレーム構成やパケット構成の話。
XCPonEthernetのヘッダ、パケット、テイルの話。
CTOパケット構成の話。
CTOパケットの種類の話。
などなど。
登場人物
博識フクロウのフクさん

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

じゃ、XCPの詳細に入るね。

うん。
ちなみに今回の物理層はEthernetらしいけど、それで変わる部分ってあるの?

あるよ。
実際のパケットの中身は物理層が変っても変化しないけど、
パケットの外側のフレーム構成が変わることがある。
今回はXCPonEthernetのフレームを説明しよう。

うん。

絵で描くとこんな感じ。
たぶん、ASAMのXCP仕様のトランスポート層の仕様に書かれている絵と一緒だと思う。


あれ?パクってきた?
ASAMに加盟してないとだめなんじゃないの?

記憶を頼りに書いたんだよ!!

じゃ、大丈夫なのかな?

大きく以下の構成に分かれる。
- XCPヘッダ
- LENgth(LEN)とCounTeR(CTR)で構成される。
- エンディアンは必ずリトルエンディアン。
- LENGTHはXCPパケット長[byte]を指定。
- COUNTERはパケット欠落検出用で、送信毎にインクリメントされる。
- XCPパケット
- ここにCTOパケットかDTOパケットが乗る
- XCPテイル
- 0~3[byte]のFill byte。
- アライメント調整用。
- 無くても良い。

XCPパケットの中もいろいろありそうだね。
パケット構成

パケット構成だけ抜き出すと以下。


XCPパケットは、
CTOかDTOかでやや構成が変ってくるよ。

どっちが簡単そう?

まぁ構成の話としてはCTOかな?

じゃ、CTOからの説明でよろしく。
CTO

CTOパケットはこんな構成


あれ?
さっきのXCPパケットのFILL、DAQ、TIMESTAMPってのが居なくなったよ?

うん。
CTOパケットではその3つは使わない。

それでCTOの方が簡単だと。

そうなんだけど、CTOもさらに細分化される。

え?

CTOパケットは以下に分かれる。
- CMD (Command Packet)
- RES (Response Packet)
- ERR (Error Packet)
- EV (Event Packet)
- SERV (Service Request Packet)

お、おう。

とりあえず、表にまとめた。
CMD (Command Packet) | マスターからスレーブへの指示。PIDで指示内容を指定。 |
RES (Response Packet) | PIDは0xFF固定。CMDに対する応答で、内容はCMDに依存。 |
ERR (Error Packet) | PIDは0xFE固定。CMDに対するエラー応答で、内容はCMDに依存。 |
EV (Event Packet) | PIDは0xFD固定。スレーブ側のイベント発行に利用。(Overloadとか) |
SERV (Service Request Packet) | PIDは0xFC固定。 |

EVのところのOverloadってなに?

DAQリストってのが、
とあるイベントに連動してスレーブ(ECU)から送信されるんだけど、
次のイベントまで間に合わないことがあるんだ。
その可能性が出てきた問に高負荷(Overload)であることを通知してくるようなしてこないような。

なんかあやふやだな。

オプショナルな仕様なんで、実装されていないことが多いんだよ。

オプショナル?やってもやらなくて良いってこと?
なんかビシっと「やれ!」って方がスッキリするのに。

ECUの検証用機能だからね。
検証用機能にコストを掛けられないことを想定して、
結構いろいろな仕様がオプショナルになってるんだよ。

まぁ確かにECUの主目的からは外れている機能だし、
そう言われればそんな気がする。

SERVのところの説明が説明になってないんだけど。

忘れた。

書き忘れたの?

何だったかを忘れた。
どっちにしてもそうそう出てくる機能じゃないんで見なかったことにしよう。

フクさんまであやふやに・・・。

次回はDTOの話をするよ。
まとめ

まとめだよ。
- XCPonEthernetはヘッダ、パケット、テイルの三つ組み構成。
- CTOパケットはPIDとDATAだけの構成。
- CTOパケットはCMD、RES、ERR、EV、SERVの5種類。
- 基本的にはCMD、RES、ERRだけ知っておけば良い。
バックナンバーはこちら
コメント