【DoCAN】車両診断通信 その45【UDS⑤】

【DoCAN】車両診断通信 その45【UDS⑤】 車両診断通信

バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/

はじめに

ISO14229ことUDSの話。
UDSの機能単位の内の、
Routine
Upload/Download
について。

登場人物

博識フクロウのフクさん

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

Routine

太郎くん
太郎くん

今回は「Routine」か。
結構そっけない機能単位だね。

フクさん
フクさん

内包されるサービスも1つだけだね。

ServiceSIDDescription
RoutineControl$31ECU内のルーチンの開始、停止、結果を要求
太郎くん
太郎くん

このルーチンってのがミソかな?
具体的にどういう処理になるの?

フクさん
フクさん

決まってない。

太郎くん
太郎くん

え?いや、事例的なのは?

フクさん
フクさん

まぁ私の経験上だけだと、
開発中だけに使うオンラインキャリブレーション機能とかかなぁ。
あと、あり得るとしたらECU内部のロギング機能なんてのに利用される可能性は高そうだ。

太郎くん
太郎くん

つまり本当に何でも良いって感じ?

フクさん
フクさん

そうだね。
とはいえ、車両の目的と異なる機能であることが多いから、
開発中限定とかの制限が掛かることになるかな。

太郎くん
太郎くん

I/O Control以上に特殊なことができそうだもんね。

Upload/Download

フクさん
フクさん

最後になるのがUpload/Download機能単位。

ServiceSIDDescription
RequestDownload$34オフボードテスタ―からECUへのデータ転送ネゴシエーション要求
RequestUpload$35ECUからオフボードテスタ―へのデータ転送ネゴシエーション要求
TransferData$36データ転送要求(Upload、Download共にこのSIDを利用)
RequestTransferExit$37データ転送終了要求
RequestFileTransfer$38ファイル転送のネゴシエーション要求
太郎くん
太郎くん

んー、言ってることは分かるけど、具体的な流れがイメージできないなー。

フクさん
フクさん

そうだと思うよ。
この機能単位は他の機能単位と違って、複数のSIDを組み合わせて目的を実現するタイプだね。

太郎くん
太郎くん

例えば?

フクさん
フクさん

オフボードテスタ―からECUへのデータ転送をするには、以下の流れになる。
①RequestDownloadでDownload処理開始要求
②TransferDataを繰り返しでデータ取得
③RequestTransferExitで転送処理終了

太郎くん
太郎くん

あー。
RequestDownloadで直接Downloadが出来るわけじゃなくて、
実データはTransferDataで取得するんだ。
とすると、
Uploadは
①RequestUploadでUpload処理開始要求
②TransferDataを繰り返しでデータ転送
③RequestTransferExitで転送処理終了

フクさん
フクさん

そうそう。

太郎くん
太郎くん

そう言えば、
データの読み書きってReadMemoryByAddress(SID$23)とWriteMemoryByAddress(SID$3D)ってのが無かった?
あれとは違うの?

フクさん
フクさん

単純な読み書きという意味ではほぼ一緒なんだけど、
Upload/Download機能単位のサービスの特徴としては

  • 圧縮
  • 暗号化

の指定ができるというのがある。
これを利用してリプログラミング(ソフトウェアのアップデート)の

  • データ転送効率を引き上げ
  • 秘匿性を確保

ってのを実現している。

太郎くん
太郎くん

なるほど。
それは確かに目的が違う感じがするね。

太郎くん
太郎くん

最後のRequestFileTransferは?

フクさん
フクさん

私も使われているところは見たことないけど、
パソコン上のファイルパス指定のような方式でファイル的にデータ転送を行うときに使われるようだよ。
流れは他のと一緒で、
①RequestFileTransferでファイルアクセス処理開始要求
②TransferDataを繰り返しでデータ転送
③RequestTransferExitで転送処理終了
読み/書きの切り替えに関してはRequestFileTransferのパラメータで指定する。

太郎くん
太郎くん

ECUでファイルって概念は使うのかな?

フクさん
フクさん

無いとは言い切れないね。
ECUもいろいろあるし、例えば外部と無線で通信するテレマティクスユニットなんかは持っててもおかしくはないかな。

太郎くん
太郎くん

ほー。確かにありそうかも。

フクさん
フクさん

とりあえず、各機能単位別に内包サービスの概要説明は終わったってところだ。

まとめ

フクさん
フクさん

まとめだよ。

  • Routineの説明。
    • 主に開発時に使用するような機能で利用される。
  • Upload/Downloadの説明。
    • データ転送用で圧縮と暗号化も出来るサービス群。

バックナンバーはこちら。

コメント

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