NEC ELECTRONICS NEC ELECTRONICS
NEC electronics NEC electronics NEC
ホーム
アプリケーション
製品情報
先端技術
サポート
WEBショップ
ニュース&イベント
会社案内
header
GO
詳細検索機能/特性検索
サイトマップ お問い合わせ

制御用マイコンまたは組み込み用マイコン

目次

    
FAQ-ID = con-nnnn
0001: 制御用マイコンまたは組み込み用マイコン
0002: 制御用マイコンまたは組み込み用マイコンとしての78K0(及び78K0S)
con
-0001
制御用マイコンまたは組み込み用マイコン
マイコンを区別するときに「制御用マイコン」や「組み込み用マイコン」といった呼び方をすることがあります。「普通のマイコン」とどこが違うのでしょうか?マイコンは自動車、PC、エアコン、ビデオ・レコーダ、携帯電話、TV、電気炊飯器など、何らかの機器の中に入って使用されます(つまり、組み込まれて使用されます)。マイコンそのものを眺めているのはメーカの人か一部のマニアくらいでしょう。にもかかわらず、「制御用マイコン」や「組み込み用マイコン」と呼ぶ(区別する)のは、組み込みのための機能を強化していたり、組み込んで使い易いようになっていたりするからです。
マイコン(マイクロコンピュータ)は、MPUやCPUと呼ばれるマイクロプロセッサとMCUと呼ばれるマイクロコントローラに分けて考えることができます。

<参考:黎明期のマイコン>
初期のマイコンとして有名な8080はCPUと呼ばれ、6800はMPUと呼ばれていました。CPUはCentral Processing Unit(中央処理装置)の略で、コンピュータの中心になる部分(機能)であることを強調した呼称です。つまり、複数のLSIを組み合わせた場合にも同じような処理を行うものもCPUと呼びます。一方、MPUはMicro Processing Unit(超小型処理装置)の略で、LSI化されたことを強調したものと言えます。現在ではCPU部分以外の部分まで1個のLSIの中に集積されており、CPUとMPUの区別はないと言えます。

コンピュータは何らかのデータを入力して、データを加工(計算)して、結果を出力します。この中のデータ加工部分を主な対象にしたのがマイクロプロセッサで、そのためのCPU機能を中心に構成されています。下にコンピュータを構成する機能の例を示します。最近のマイクロプロセッサはCPU機能だけなく、中央の濃いクリーム色で囲まれた機能を集積しています。場合によっては、薄いクリーム色で囲まれたポート、A/DやD/A等の機能を内蔵している場合もあります。しかし、マイクロプロセッサでは、外部に命令を格納したROMを接続する必要があります。

<参考2:マイコンのデータ処理用途>
マイコンのデータ処理能力の観点でマイコンのアプリケーションの範囲を眺めると以下のようになります。
4ビットマイコンでは扱えるデータの基本的な大きさは4ビットです。4ビットでは0〜15までの状態を扱えますので、数字を扱うことが主になります。そのため、応用分野としては十進の計算が主のキャッシュレジスタが挙げられます。
8ビットでは0〜255までの状態を扱えますので、8ビットマイコンは数字に加えて英数字などの文字が使えるようになります。文字が扱えますから、英語のワープロやパソコンのようなアプリケーションまで広がります。
さらに、16ビットのデータが扱えるようになると漢字が扱えます。これで文字としての日本語対応ができるようになります。それでも、さすがに、音や画像といったデータを扱うには16ビットでは力不足です。
32ビットになると、より大きなデータを扱えることから、音や画像といったデータも扱えるようになります。

マイクロコントローラ(MCU)の場合には、さらにROMを内蔵しており、ここに命令を書き込んでおくことで、1つのLSIだけでも動作させることができます。このためによりコンパクトなシステムを構成できます。



マイコンのビット幅で見た場合の、マイコンを「データ処理用途」で応用する場合については<参考2>で触れました。それでは、これらの応用と「制御用」や「組み込み用」と言った場合の違いに触れてみたいと思います。
「制御用途」では何らかの入力信号に対して必要な処理を行い、結果を出力します。入力信号は「データ処理用途」と異なり、スイッチの状態や、温度や磁気と言った物理的な情報を変換するセンサからの信号(アナログ量)が主になります。これらの入力に応じて、例えば、スイッチを押すと明かりを点灯するとか、温度がある値以上になったら警報音を鳴らすと言ったような処理を行うのが制御用マイコンの用途です。



通常、スイッチの情報は1ビットです。つまり、制御用マイコンとしては1ビットの情報を効率的に処理できる必要があります。また、自然界の物理量はアナログ量ですので、センサの出力はアナログ信号になります。これを扱うにはA/Dコンバータを内蔵する必要があります。制御用マイコンの出力は明かりのON/OFFを制御するための信号のように1ビットのものがあります。また、明るさを制御したり、音を鳴らしたり、DCモータを制御したりするためのアナログ信号であったり、モータなどのアクチュエータをドライブするための信号、場合によってはLCDや蛍光表示管のような表示装置をドライブする信号だったりします。これらに対応した出力機能をもつことも制御用マイコンに要求されます。

また、携帯用の装置に応用するには、コンパクトにシステム構成できる必要がありますし、それ以外に、低い電圧で動作できるとか、低消費電力であることも重要な要素となります。
このように、細かなところに工夫をこらすことで目的に合った機能を実現しているのが「制御用マイコン」「組み込み用マイコン」です。

(2005/11)

この情報はお役にたちましたか?
back to top  
(2005/11)

con
-0002
制御用マイコンまたは組み込み用マイコンとしての78K0(及び78K0S)
[はじめに]
78K0および78K0Sは組み込み用途の8ビットMCU(マイコン)です。その特徴は使い易さ、特にプログラムの作り易さにあります。最近のAll Flash化や安価な開発環境の提供により、少量多品種への対応もより簡単になってきています。
ここでは、その機能の特徴について組み込み用途の観点で説明します。

[78K0と78K0Sの差異]
78K0Sは基本的なアーキテクチャについては78K0とほぼ同じです。しかし、いくつかの機能が削除され、78K0のサブセットの位置付けになっています。
そのため、レジスタ・バンク機能が削除されており、これに関連したレジスタ・バンクの設定命令を含めて一部の命令が削除されています。これに関連して、78K0ではメモリマップの高速RAM上に配置されていたレジスタがメモリマップからはなくなり、高速RAMはすべてメモリとして使用できるようになっています。
この点を除くと以下の説明は78K0及び78K0Sで共通となります。以下、特に断らない限りは78K0の部分は78K0Sも含めて考えて下さい。

[78K0での組み込み対応の基本的な考え方]
基本的な考え方としては、できるだけ内蔵ハードウェアでの対応を行なうことで、外部の回路を少なくし、ソフトウェア作成の負担を軽くすると共に、わかり易いソフトウェアが簡単に組めることを目指しています。
このため、78K0は組み込み用途に必要なポート、割り込み、タイマ、シリアル・インタフェース、A/Dコンバータなど代表的な機能をハードウェア(内蔵周辺機能)として搭載し、それらのハードウェアを簡単に制御できるような命令をもっています。All Flash化においては、POC(パワーオンクリア)、高速内蔵発振器を搭載し、ウォッチドッグ・タイマも機能強化されており、より低コストでのシステムの構築ができるようになってきています。

[78K0のアーキテクチャ/命令の特徴](一部78K0Sには含まれず)
78K0での一般的な演算は基本的にアキュムレータを介して実行するようになっています。また、データ転送も基本的にはアキュムレータを介する必要があります。(ここらは演算処理中心のMPUよりは劣ります。)しかしながら、組み込み用途で周辺の制御に用いる内蔵周辺機能はSFR領域と呼ばれる領域に配置されており、この領域はアキュムレータを介することなく直接アクセスすることが可能です。
また、ポート等をビット単位で直接操作することもできます。これ以外にも、割り込み処理を効率化するためのレジスタ・バンクなどの機能を搭載しています。
これらの特長により、組み込み用途では効率的なプログラミングが可能になっています。
以下では、その詳細を説明します。

[SFR領域]
この領域は、内蔵周辺機能を配置する専用の領域です。この領域に対しては、直接周辺機能を指定して値を設定することができます。例えば、ポート1に55Hの値を出力するには以下のように直感的に理解可能な記述となります(()内はC言語記述の場合)。
        MOV     P1,#55H
        (P1 = 0x55;)
また、ポート1のビット0の出力を1から0にクリアしたい場合や0から1にセットしたい場合には以下のようにビット操作命令で簡単に記述可能です。
        CLR1    P1.0            ; ポート1のビット0をクリア
        (P1.0 = 0;)
        SET1    P1.0            ; ポート1のビット0をセット
        (P1.0 = 1;)
さらに、ポートからの入力をチェックしたい場合には、条件付分岐命令を用いて、以下のような記述が可能です。
        BF      P0.1,$$
        (while(P0.1==0);)
この場合には、ポート0のビット1が0(False)ならば自分自身に分岐します。つまり、ポート0のビット1が1になるのを待つ処理となります。
このように、内蔵周辺機能をSFR領域に配置することで、アドレスやレジスタなどを意識することなく外部の信号の制御が可能になります。

[saddr領域]
78K0で効率的にプログラムを作成できるように準備されたメモリ領域としてsaddr領域と呼ばれる領域があります。これは、メモリのアドレスを指定するための専用のポインタを用いること無しに直接アクセスできる256バイトの領域です。このうち、0FE20H〜0FEDFH(78K0Sでは0FEFFH)のRAMをレジスタとほぼ同じように使うことができます。例えば、以下のように16ビットの変数WORK0と8ビットの変数WORK1,WORK2定義すると、
WORK00  DSEG    SADDRP          ; 16ビット変数領域
WORK0:  DS      2 
WORK01  DSEG    SADDR           ; 8ビット変数領域
WORK1:  DS      1
WORK2:  DS      1
これらの変数は以下のようにレジスタの代わりに使うことができます。
        MOVW    WORK0,#1234H    ; 16ビットの値の設定
        XCH     AX,WORK0        ; 16ビットデータの交換
        MOV     WORK1,#33H      ; 8ビットの値の設定
        DEC     WORK1           ; 8ビットの減算
        SET1    WORK2.0         ; ビットのセット
        CLR1    WORK2.1         ; ビットのクリア
        BT      WORK2.3,$LOOP   ; ビットのチェック
さらに、ループカウンタとして以下のような使い方もできます。
        DBNZ    WORK1,$LOOP     ; 
内蔵メモリの区分についてはFAQのマイコン内蔵メモリの特徴と使い方[78K0、78K0S]も参照下さい。

[ビット操作]
78K0が組み込み用途に対応して内蔵している機能の一つにビット操作命令があります。これにより、組み込み用途で頻繁に使用される1ビットのデータを効率的に処理することができます。
78K0のデータアクセスは基本的にリード・モディファイ・ライトとなります。この機能を使うことで、内蔵周辺機能を特別なハードウェア構成にすることなしにビット操作を行なえます。

コーヒブレーク
78K0のデータ・アクセス・サイクルは以下の部分が必要に応じて組み合わされます。データ・リードの場合にはの組み合わせとなり、で指定したアドレスのデータをで読み出します。データ・ライトの場合にはの組み合わせとなり、で指定したアドレスに対して、でデータを書き込みます。 ビット操作では、の全てを組み合わせます。で対象のアドレスを指定し、でそのアドレスのデータを読み出します。読み出したデータに演算を行ない、で同じアドレスに書き戻します。
    アドレス指定
    データ読み出し
    データ書込み


[レジスタ・バンク](78K0のみ)
78K0では割り込み処理の効率化のために汎用レジスタを4組内蔵しています。これを必要に応じて切り替えることで、割り込み処理で必要なレジスタの退避と復帰処理を簡素化できます。
例えば、メイン処理ではレジスタ・バンク0を使用し、割り込みではレジスタ・バンク1を使用するとします。この場合に、割り込み処理の最初で、レジスタ・バンク1を選択します。すると、使用されるレジスタがメイン処理で使用していたバンク0からバンク1に切り替わるので、レジスタの内容の破壊を気にすることなくプログラミングできます。割り込み処理が終了し、RETI命令で割り込みを終了すると、PSWレジスタが元の状態に戻るので、メイン処理はレジスタ・バンク0で処理を継続します。



このように、レジスタ・バンクを使用することで割り込み処理を簡単にできます。

[スタンバイ]
組み込み用途ではその消費電力が重要なファクタとなることから、78K0にはHALTモードやSTOPモードのような省電力機能が内蔵されています。スタンバイ機能については、FAQのスタンバイ動作を参照下さい。
また、スタンバイの割り込みによる解除でも、CPUを割り込み禁止に設定することで、ベクタ割り込み処理を行なわないでスタンバイの解除だけを行なうことができ、HALTモードと組み合わせることで、割り込み応答の高速化ができます。

(2006/09)

この情報はお役にたちましたか?
back to top  
(2006/09)









































 ご利用にあたって  個人情報保護について  RSS       © 1995-2008  NEC Electronics Corporation