車載マイクロコンピュータの基礎~車載システムを支える頭脳
車載システムで最も重要な技術はECU※1に搭載されたマイクロコンピュータ※2であると言っても過言でないでしょう。システムの規模に係らずほとんどのECUで使用されています。また、マイクロコンピュータの機能性能は多種多様です。今後、CASE※3の進展とともに車載システムは進化するので、マイクロコンピュータに対する性能要求はますます高度化すると推察されます。
(Electronic Control Unit)システムを制御する装置、イーシーユーと呼称される。
呼称として、マイクロコントローラ(Micro Controller)などがあるが、本稿ではマイクロコンピュータとする。また、基本的に1つのIC(Integrated Circuit)で基本動作を完結できるものを対象として述べる。ワンチップマイクロコンピュータと呼ばれる。
Connected(コネクティッド)、Autonomous(自動化)、Shared(シェアリング)、Electric(電動化)の頭文字をとった造語。
本稿では、ECUに使われているワンチップマイクロコンピュータを主として解説します。最初に、マイクロコンピュータが車載ECUで採用された歴史をOldsmobileのMISARから始まり、どう普及したかを述べます。その後に、マイクロコンピュータの基本構造と動作メカニズム(レジスタやALU、アセンブリ言語、コンパイルなど)を説明します。処理性能を向上させる高速化技術として、非ノイマン型コンピュータ、パイプライン処理、キャッシュメモリ、DMA、マルチコア、DSP、FPUなどを解説します。また、マイクロコンピュータを使用したECUの開発で不可欠な開発環境であるICE、JTAG、EPROMなどについて解説します。最後にECU開発で使用される計測器を紹介します。
《本稿の記述は、筆者の知見による解釈や、主観的な取り上げ方の面もあることをご容赦ください。また、本稿に記載されている技術情報は、当社および第三者の知的財産権他の権利に対する保証または実施権を許諾するものではありません。》
車載用マイクロコンピュータ導入の歴史
最初のマイクロコンピュータは1977年にOldsmobile(オールズモビル)※4のToronado(トロネード)で採用されました。エンジンの点火時期※5を制御するECUに使用されました。システム名はMISAR(MIcroprocessor Sensing and Automatic Regulator)です。それまでの点火時期制御はアナログ回路で実現されていました。マイクロコンピュータを使うことで、プログラミングによる自由度のある制御が可能となりました。入力信号はエンジンの吸入空気圧力、冷却水温、エンジン回転数、クランクシャフトの位置などです。処理周期はおよそ1msです。図1はMISAR ECUの写真です。
GM(ゼネラルモーターズ)のブランド。元々は1897年に設立された。後にGMに買収され数多くの車種が販売された。2004年にブランド名は廃止されている。
点火式内燃機関(エンジン)において、点火プラグに火花を飛ばすタイミングを制御すること。エンジンの動力性能や燃費、排気ガス成分に影響する。

出典:The History of the Delco-Remy Division of General Motors http://www.delcoremyhistory.com/Products/misar.htm
ECUで使われたマイクロコンピュータはロックウェル社製※6、プロセスはPMOS※7です。
米国に存在した複合企業(コングロマリット)の半導体部門が製造。その後、半導体企業として独立するも、別の企業に買収されて消滅。
(P-channel Metal Oxide Semiconductor)pチャネル金属酸化膜半導体。ゲートの負電圧でデバイスをオンにする。現在のマイクロコンピュータで使用されるCMOS(Complementary MOS)はPMOSとNMOS(ゲートが正電圧でオン)とで補完的に構成される。
車載用ECUにマイクロコンピュータが導入されてきた背景は、1960年に米国カリフォルニア州で排ガス規制が制定され、高度な制御を求められたことがきっかけと推察されます。MISAR以降、米国のOEMでは点火時期制御を発展させたエンジン全体を制御するECUが導入されました。日本においても1980年前後からマイクロコンピュータが搭載されたエンジン制御用ECUが導入されました。当時の主なマイクロコンピュータを紹介します。表1は代表的な特性です。なお、メーカ名は当時の社名です。
メーカ | 品名 |
ROMサイズ (バイト) |
RAMサイズ (バイト) |
最小実行時間 (μsec) |
I/O数 | ADコンバータ | 乗算 | タイマ | 通信 |
---|---|---|---|---|---|---|---|---|---|
インテル | 8049 | 2K | 128 | 1.36 | 27 | 無 | 無 | 有 | 無 |
ザイログ | Z-8 | - | 32 | 有 | |||||
モトローラ | MC6801 | 2.0 | 31 | 有 | |||||
ロックウェル | R6500 | 64 | 1.0 | 32 | 無 | 無 |
出典:自動車技術1997年1月号をもとに作成
マイクロコンピュータが導入された当時、産業全体の用途としては電卓用が半数近くを占めています。ビット長(後ほど説明)は4ビットが70%以上でした。その後、16ビット、32ビットへ拡張されています。自動車の用途としては、走行距離や燃費を表示するトリップコンピュータやメータ、ラジオなどへ展開され、使用される数量が急速に増えました。近年の上級車種では200個近いマイクロコンピュータが使用されていると言われています。
マイクロコンピュータの構造と動作原理
マイクロコンピュータの基本構造は図2です。プログラムの命令を実行するCPU(Central Processing Unit)、プログラムやデータを記憶するメモリ、色々な機能を行う周辺機能で構成されています。各機能間はバスで接続されています。メモリには読み出し専用のROM(Read Only Memory)と読み書きが可能なRAM(Random Access Memory)があります。周辺機能にはマイクロコンピュータの外部と信号を入出力するポート(1/0信号)、ADC(アナログ信号をデジタル化)、タイマ・カウンタ(時間関連の計測)、CAN(通信)などがあります。

CPUの構成例は図3です。制御Unit、演算Unit、レジスタ群で構成されています。制御Unitの主な役割は演算Unitやレジスタの制御、メモリの読み書きや周辺機能との読み書きです。演算UnitはALU(Arithmetic Logic Unit)と呼称されます。ALUで演算を実行します。実行結果はレジスタ群のアキュムレータなどに格納されます。演算Unitで扱う処理は2進数(0/1)で行われます。ALUは算術演算(加算、減算)や論理演算(論理和、論理積)を行います。演算機能として、ALUの他に乗算器などが設けられています。

CPUの基本動作は1)命令の読み出し、2)命令の解析、3)実行、4)結果の格納です。この動作を繰り返すことで処理を実行していきます。図4に基本動作のイメージを示します。

最近のソフトウェアは高級言語(例えばC言語)で開発されることが多いため、CPUの動作を意識することが少なくなっています。CPUを実際に動作させるための命令は機械語(1/0の表記)ですが、ソフトウェアの作成をし易くするために、機械語とほぼ同等な意味を示すアセンブリ言語があります。これは、個々のCPUに依存します。CPUの性能を最大限に引き出すために、高級言語と合わせて、アセンブリ言語が使われることもあります。
アセンブリ言語の一例を紹介します。「add a、b」:この動作はaにbを加えて、aに格納するとなります。構文の構成は、<Mnemonic><Destination>、<Source>で表記され、Mnemonic(ニーモニックと呼称)は命令、Destinationは計算した値を格納するアドレス、SourceはDestinationに加える値を示します。その他の構文は各マイクロコンピュータのドキュメントを参照してください。
参考として、高級言語によるソフトウェア設計から、マイクロコンピュータに書き込むためのファイルを生成する作業例(一般的にはコンパイルと呼称)は図5です。

マイクロコンピュータの高速化技術
マイクロコンピュータの処理性能を高速化する技術が開発され適用されています。先ずは、動作周波数の高速化です。マイクロコンピュータに接続される発振源の発振周波数を高めることです。基本構造(アーキテクチャ)による高速化の方策としては、ビット長の拡大、バス構造などです。更なる高速化手法として、パイプライン処理、キャッシュ処理、DMA(Direct Memory Access)、マルチコア・並列処理化などがあります。その他、高速化する専用機能が付加されているものもあります。例えば、DSP(Digital Signal Processor)やFPU(Floating Point Unit)などです。それでは、個々の技術内容について解説します。
1 動作周波数の高速化
車載用としてマイクロコンピュータが採用されていた当時の動作周波数は1MHz程度でした。最新のECUで使用される車載マイクロコンピュータでは400MHz以上で動作します。動作周波数が速くなれば処理が高速化することは自明です。
2 アーキテクチャ
1)ビット長拡大
CPUが扱えるデータ長を大きくすれば、処理できるデータの容量が増えるため、高速化につながります。マイクロコンピュータが導入された当時は、4ビットや16ビットでしたが、最新の製品では32ビット以上が採用されています。
2)バス構造
マイクロコンピュータの基本原理を提案したのは、数学者のフォンノイマン(John Von Neuman)と言われています。一般的にノイマン型コンピュータと呼称されています。動作の基本は、命令をメモリから読み出し、読みだされた命令を解読し、実行し、データをメモリに保存します。メモリには命令とデータが格納され、CPUとバスとを経由して処理されます。命令とデータが同じメモリにあるため、同時に転送することはできません。この事象を回避するための方策として、命令の実行とデータの転送を独立した機構が導入されました。この仕組みを非ノイマン型の手法としてハーバードアーキテクチャと呼ばれています。図6の通り、命令とデータのバスが独立して設けられています。

3 パイプライン処理(Pipe Line)
通常のCPU命令実行サイクルは命令読み出し(フェッチ)、解読(デコード)、実行、結果の格納のフェーズとなります。パイプライン処理はフェーズの開始をずらしながら、最初の命令が終わる前に、次の命令を並行して処理することで、実際の処理時間全体を短縮化させます。最新の製品では10段以上が備わっています。

但し、命令の中に判断処理などがある場合は、先行して読み出した命令の実行が無効になることもあり得ます。その時は新たに命令を実行するので、処理時間の低下を招きます。パイプライン処理をさらに高速化させるため、複数のパイプラインを並行して実行できる機構を導入した製品もあります。この機構をスーパースカラと呼称されています。

4 キャッシュメモリ(Chace Memory)
CPUが利用する頻度の高いデータを一時的に保存するメモリです。CPUはバスを通してCPU外部のメモリにアクセスするため、外部メモリのアクセス速度が遅いとCPUの待ち時間が増加し、CPUの処理性能が制約されます。そこで、外部メモリ(低速)より高速なメモリをCPU内に設けて、外部メモリのアクセス速度を隠蔽して、CPUが高速にデータをアクセスできるようにします。キャッシュメモリは高速なSRAM(Static Random Access Memory)で構成されます。図9はCPUとキャッシュメモリとの関係を示す構造です。

5 DMA(Direct Memory Access)
CPUの周辺機能間でデータを転送する際、CPUを介さずに、周辺機能間で直接アクセスする機構です。CPUが介在せずに実行できるため、CPUの処理負荷が減ります。その結果、実質的にCPU全体の処理が高速化できます。DMAを実行する専用の制御機構(DMAC:Direct Memory Access Controller)が行います。DMA機能の動作概要は図10です。DMA転送がない場合、CPUは周辺デバイスからデータを読みます(Read命令)。次にCPUはメモリに読み込んだデータを書き込みます(Write命令)。DMA転送の場合、CPUはDMACに対して転送処理を設定します。その後、周辺デバイスからの読み出しとメモリへの書き込みを行います。よって、CPUはデータ転送の処理時間が軽減され、他の処理を実行できることになります。但し、DMAのデメリットとしては、DMAの転送中にバスが占有され、バスにアクセスすることが制限されます。

6 マルチコア(Multi CORE)
各種の高速化技術と導入しても限界があるため、CPUコアを複数個搭載して処理を並行して実行させ、マイクロコンピュータ全体で高速化する手法です。図11はシングルコアとマルチコアの比較です。車載向けではないですが、PC用途では64コアの製品があります。

7 専用処理機能
専用機能の代表例として、DSP(Digital Signal Processor)機能とFPU(Floating Point Unit)機能があります。DSPはデジタル信号処理の演算を高速に行うことに特化した機能です。DSP単体の製品としては1980年初頭に量産品が販売されています。車載システムのECUではデジタルフィルタ、FFT演算などで使われています。デジタルフィルタなどの処理に必要な積和算器(乗算器+加算器)を備えていることが特徴です。
モータ制御やパワートレイン制御などの高度な計算においては、浮動小数点をもちいることが多いです。ソフトウェアで計算を実現することは可能ですが、複雑なプログラムになり計算時間が長くなります。専用のFPU回路を設けることで、高速で計算されます。計算手法やフォーマットは主としてIEEE754※8に準拠しています。
(Institute of Electrical and Electronics Engineers)米国に本部を置く電気、情報工学分野の標準化機関。IEEE745は浮動小数点演算に関する規格。
マイクロコンピュータの開発環境
マイクロコンピュータのソフトウェアを開発する環境は、PCを用いるソフトウェア開発ツール、マイクロコンピュータの動作を模擬するエミュレータと対象のECUで構成されます。マイクロコンピュータの機能をエミュレートする装置は一般的にICE(In Circuit Emulator、アイス)と呼称されます。なお、“In-Circuit Emulator”はIntel社の登録商標です。その他のエミュレータとしてマイクロコンピュータ内に設けられた機能を使うツール(一般的にオンチップエミュレータと呼称)などがあります。オンチップエミュレータはマイクロコンピュータのJTAG※9端子などの通信用端子と接続して動作させます。図12は開発環境のイメージです。
(Joint Test Action Group)マイクロコンピュータなど集積回路の内部を検査する規格の通称。IEEE1149.1で標準化されている。

マイクロコンピュータが導入された当時、マイクロコンピュータを動作させるプログラムの書き換えが自在でなかったため、開発段階では書き込みと消去を繰り返し行うことが可能な不揮発性メモリが使用されました。一般的には紫外線消去型UV-EPROM(Ultra Violet-Erasable Programmable Read Only Memory)が使用され、消去するためにガラス窓から紫外線を照射しました。書き込みはROMライタで行います。図13はUV-EPROMの例です。写真の真ん中あたりにあるガラス窓で、内部のチップを見渡せます。

関連計測器の紹介

その他の製品や仕様については 計測器情報ページ から検索してください。
おわりに
本稿で紹介したマイクロコンピュータの技術は基本的な機能の概説ですが、今後、普及することが推察される自動運転システムを構成するECUではさらに高機能化、高速化が求められます。また、車両の電動化に伴う、省資源化の対応も求められてきます。一方、マイクロコンピュータのサプライヤ間においては、機能性能およびコストに関する熾烈な競争となっています。ユーザ側としてはマイクロコンピュータが機能性能、コストにおいて更に進化することを期待しましょう。
自動車関連の他の記事はこちらから