車載LANとしてのCAN・ザックリ話し その2
先回に続いて、まだまだの感はあるのだが、ザックリ話しを若干深掘りし続けてみたい。
ところで、車両整備担当者としては、現実的な話しCANデータをさほどに意識することもなく、整備現場ではいわゆるOBDスキャナーをOBDコネクタ(DLC3)に接続(参照図Fig C-3)し、その故障コード(P*****)なりを読み取ったりして使うことがほとんどだろう。ただし、OBDスキャナ機器は、その個別機能にもよるが、故障コードの読み取りと消去以外に、以下に記す様な機能を持っているものが多い。
1.OBDスキャナの機能主要機能
①故障コードの読み出しと消去
②ライブデータの表示
③ライブデータのグラフィック描画表示
④アクティブテスト機能
⑤ECU機器に何らかの文字列を書き込み記録する機能
⑥様々な内蔵されたソフトウェアで用意された機能を有効もしくは無効やタイミングを変更する機能
①の故障コードの読み出しと、そこに表示される対象ユニットもしくはセンサーだけを交換すると云う意識だけだとなかなか直らない事例は多いだろう。これには、異常が検出されるロジック(アルゴリズム)を意識して行わなければならないのだが、正直昨今のメーカー修理書は、その辺りの記述が端的に云えば不足している様に思えてならない。
それと、例えばユニット(ECU)が何処に付いているのかを修理書で探そうとすると、パーツリストとかから抜き出して来た様な粗いイラストで示してあったりして、これが一体何処を指しているのかと首を捻ることは多いのではないだろうか。
こういうことは、昔の修理書なら、写真などをを多用することで、周辺状況だとか形状も良く判る様になされていたのだが、今は修理書の内容として形骸化が著しいと感じているところだ。しかし、そんな情報として不足しがちなマニュアルでも、これが最低限でも唯一のデータなのだという意識で、言葉足らずや説明不足などを感じつつも、そこから種々類推などして故障探求を進めなければならないのだろう。
そんなことで、OBDスキャンテスターを使用しつつ、故障コードの表示や消去以外の機能としての使いこなしとして次項以降に説明してみたい。
②と③ライブデータの表示とグラフィック描画機能
ライブデータの表示だが、回転数や水温、油温等が見れることは当然理解していると思うが、メーカーや車種にもよるが、かなり細部のライブデータが見れることは、不具合現象が常時出ている様な場合では、故障探求の大きなデータとなる。また、短時に大きく変動する様なデータは、あたかもオシロスコープ(シンクロスコープとも呼ぶ)の波形と類似のものが観察できる(参照図Fig C-4)のだが、これはOBD端子にシンクロスコープを接続すれば見れるものではない。
このことは、前回の記述にも記したが、CANバスを流れるデータは、信号値を符号化(コード化)したデジタル信号(参照図 C-3)であり、ただのパルス信号にしか見えないので、これをデコード(もしくはエンコード)して、それなりの規則で判読しなければ読み取れないのだ。この辺りのことは、車両メーカーーから正式な情報は公表されていないが、一応理屈としてはしておく必用があるだろう。
④アクティブテスト機能
これは、スキャナ側で疑似信号を入力することで、CANバス上に疑似信号としてコードを流すことで、該当するIDのECUに疑似信号を与えることにより、作動するアクチュエーターを動かすと云うものだ。例えば、ABSとかESCのESCの制御弁を強制的に開かないとブレーキのエア抜きができないという車種があることが知られている。
⑤ECU機器に何らかの文字列を書き込む機能
これは欧州車などでかなり前から採用されていたのだが、エンジン、トランスミッション、ABSなどの主要なECUには、VIN(車両識別番号:車体番号)が記録されており、これがエンジンECUのVINと一致しないと、エラーを検出しその機能が有効にならないものだ。
この機能は、今年2月の新型車から採用されると云うサイバーセキュリティ対策で、メーカー専用サーバーから認証を受けたIDを書き込んでやらないと、システムが該当ECUを有効と認証しないと似たものだが、おそらく単にECUとのVINの一致を判別するという単純なものではないと想像できる。
⑥様々な内蔵されたソフトウェアで用意された機能を有効もしくは無効やタイミングを変更する機能
これも、予め車両メーカー側で用意されたソフトウェアの設定要素を有効、無効にしたり、設定値を変えたりできる機能だ。例えば、走り出し速度が一定以上になるとドアロックを作動させる、させないとか、中にはウインカーの点滅間隔を変更できる機種もある。
2.CANデータの実際の動きの実例
ここでは、すべての内容が公開されている訳でもないし、修理上はそこまでの知識が求められることもないとは思うが、実例としてこの様な概念で働いていることを知ってもらう意味で記述したい。
まず、CANバスはHiとLoの2つのデータ線の差動電圧でデジタルの 1 か 0 かを判別しているのだが、2つの線の電位は、参照図(Fig C-6)の様な波形になっている。2つの線の電位差が大きい時がドミナント(優性)で、電位差が少ない場合がリセッシブ(劣性)と呼び分けている様だ。この様な2本線を利用するものを差動電位と呼ぶらしいが、外来ノイズなどでパルスが乱れた場合でも、耐ノイズ性が高いと云うことから採用されていると説明されている。
次に、CANの端子にオシロではなくCANに対応したデータロガーを接続すると、フレーム単位の行列として、CANのIDとデータがデコード(16進数)に変換されて表示することができる例を示したのが参照図(Fig C-7)だ。
この内、先頭の3文字(12bit)がIDで、続く16文字(64bit)がデータ本体となる。この例では、データの先頭2文字(8bit)がインデックス(データの順番)で残りの14文字(56bit)がデータの本体となる。この事例では、6F2という同じIDがインデックス01~0Dまで16進データとして並んでいることが判る。
この、データ本体となる 56bit についての処理は、参照図(Fig C-8)に示すとおりで結構複雑に感じるが、こういう処理はコンピューターは得意でプログラムさえしっかりしていれば瞬間的に処理してくれる。ここでの例は、Netから引いたものだが、TESLA Model S のバッテリーセル電圧をモニタリングしているフレームの例なのだが、1フレームに4つの個別セルの電位が記録されて送信されていることが判る。
先回に続いて、まだまだの感はあるのだが、ザックリ話しを若干深掘りし続けてみたい。
ところで、車両整備担当者としては、現実的な話しCANデータをさほどに意識することもなく、整備現場ではいわゆるOBDスキャナーをOBDコネクタ(DLC3)に接続(参照図Fig C-3)し、その故障コード(P*****)なりを読み取ったりして使うことがほとんどだろう。ただし、OBDスキャナ機器は、その個別機能にもよるが、故障コードの読み取りと消去以外に、以下に記す様な機能を持っているものが多い。
1.OBDスキャナの機能主要機能
①故障コードの読み出しと消去
②ライブデータの表示
③ライブデータのグラフィック描画表示
④アクティブテスト機能
⑤ECU機器に何らかの文字列を書き込み記録する機能
⑥様々な内蔵されたソフトウェアで用意された機能を有効もしくは無効やタイミングを変更する機能
①の故障コードの読み出しと、そこに表示される対象ユニットもしくはセンサーだけを交換すると云う意識だけだとなかなか直らない事例は多いだろう。これには、異常が検出されるロジック(アルゴリズム)を意識して行わなければならないのだが、正直昨今のメーカー修理書は、その辺りの記述が端的に云えば不足している様に思えてならない。
それと、例えばユニット(ECU)が何処に付いているのかを修理書で探そうとすると、パーツリストとかから抜き出して来た様な粗いイラストで示してあったりして、これが一体何処を指しているのかと首を捻ることは多いのではないだろうか。
こういうことは、昔の修理書なら、写真などをを多用することで、周辺状況だとか形状も良く判る様になされていたのだが、今は修理書の内容として形骸化が著しいと感じているところだ。しかし、そんな情報として不足しがちなマニュアルでも、これが最低限でも唯一のデータなのだという意識で、言葉足らずや説明不足などを感じつつも、そこから種々類推などして故障探求を進めなければならないのだろう。
そんなことで、OBDスキャンテスターを使用しつつ、故障コードの表示や消去以外の機能としての使いこなしとして次項以降に説明してみたい。
②と③ライブデータの表示とグラフィック描画機能
ライブデータの表示だが、回転数や水温、油温等が見れることは当然理解していると思うが、メーカーや車種にもよるが、かなり細部のライブデータが見れることは、不具合現象が常時出ている様な場合では、故障探求の大きなデータとなる。また、短時に大きく変動する様なデータは、あたかもオシロスコープ(シンクロスコープとも呼ぶ)の波形と類似のものが観察できる(参照図Fig C-4)のだが、これはOBD端子にシンクロスコープを接続すれば見れるものではない。
このことは、前回の記述にも記したが、CANバスを流れるデータは、信号値を符号化(コード化)したデジタル信号(参照図 C-3)であり、ただのパルス信号にしか見えないので、これをデコード(もしくはエンコード)して、それなりの規則で判読しなければ読み取れないのだ。この辺りのことは、車両メーカーーから正式な情報は公表されていないが、一応理屈としてはしておく必用があるだろう。
④アクティブテスト機能
これは、スキャナ側で疑似信号を入力することで、CANバス上に疑似信号としてコードを流すことで、該当するIDのECUに疑似信号を与えることにより、作動するアクチュエーターを動かすと云うものだ。例えば、ABSとかESCのESCの制御弁を強制的に開かないとブレーキのエア抜きができないという車種があることが知られている。
⑤ECU機器に何らかの文字列を書き込む機能
これは欧州車などでかなり前から採用されていたのだが、エンジン、トランスミッション、ABSなどの主要なECUには、VIN(車両識別番号:車体番号)が記録されており、これがエンジンECUのVINと一致しないと、エラーを検出しその機能が有効にならないものだ。
この機能は、今年2月の新型車から採用されると云うサイバーセキュリティ対策で、メーカー専用サーバーから認証を受けたIDを書き込んでやらないと、システムが該当ECUを有効と認証しないと似たものだが、おそらく単にECUとのVINの一致を判別するという単純なものではないと想像できる。
⑥様々な内蔵されたソフトウェアで用意された機能を有効もしくは無効やタイミングを変更する機能
これも、予め車両メーカー側で用意されたソフトウェアの設定要素を有効、無効にしたり、設定値を変えたりできる機能だ。例えば、走り出し速度が一定以上になるとドアロックを作動させる、させないとか、中にはウインカーの点滅間隔を変更できる機種もある。
2.CANデータの実際の動きの実例
ここでは、すべての内容が公開されている訳でもないし、修理上はそこまでの知識が求められることもないとは思うが、実例としてこの様な概念で働いていることを知ってもらう意味で記述したい。
まず、CANバスはHiとLoの2つのデータ線の差動電圧でデジタルの 1 か 0 かを判別しているのだが、2つの線の電位は、参照図(Fig C-6)の様な波形になっている。2つの線の電位差が大きい時がドミナント(優性)で、電位差が少ない場合がリセッシブ(劣性)と呼び分けている様だ。この様な2本線を利用するものを差動電位と呼ぶらしいが、外来ノイズなどでパルスが乱れた場合でも、耐ノイズ性が高いと云うことから採用されていると説明されている。
次に、CANの端子にオシロではなくCANに対応したデータロガーを接続すると、フレーム単位の行列として、CANのIDとデータがデコード(16進数)に変換されて表示することができる例を示したのが参照図(Fig C-7)だ。
この内、先頭の3文字(12bit)がIDで、続く16文字(64bit)がデータ本体となる。この例では、データの先頭2文字(8bit)がインデックス(データの順番)で残りの14文字(56bit)がデータの本体となる。この事例では、6F2という同じIDがインデックス01~0Dまで16進データとして並んでいることが判る。
この、データ本体となる 56bit についての処理は、参照図(Fig C-8)に示すとおりで結構複雑に感じるが、こういう処理はコンピューターは得意でプログラムさえしっかりしていれば瞬間的に処理してくれる。ここでの例は、Netから引いたものだが、TESLA Model S のバッテリーセル電圧をモニタリングしているフレームの例なのだが、1フレームに4つの個別セルの電位が記録されて送信されていることが判る。