組み込み系プロセッサを用いた制御とは

組み込み系プロセッサとは

ひと昔前であれば、電気信号に応じて何らかの電気信号を出すといった制御をするのであれば、 論理回路素子を組み合わせるデジタル回路の知識が必要であった。 しかし、74シリーズのTTL素子などを組み合わせて複雑な回路を作るのは、 ちょっと複雑な制御では専門知識もそれなりに必要だし、 回路の配線をミスなどの修正も手間がかかる。

最近のデジタル制御では、大別すると2つの方法が主流となっている。

ワンチップコンピュータ

1990年代であれば、 Z80といった8bitコンピュータを使って制御となれば、 メモリやI/O制御などの周辺素子なども必要で配線量もそれなりに必要となる。 このため周辺素子が一体化された、 ワンボードマイコンといった物を使った制御が中心であった。

この中で、 「それほど複雑な制御もしないし、メモリも少なくていい、 I/Oもそんなに必要が無いから、小さいコンピュータでメモリや周辺素子を 内蔵したものが欲しい」 との要求からワンチップコンピュータが使用されるようになった。 プログラムを記憶するROMも フラッシュメモリ を利用した物が発売されるようになり、 制御の方法に間違いがあっても、電気的配線を直す作業無しで、 プログラムを書き換えればいいため、 ハードウェアをソフトウェアで実現するという考え方が広まった。

コンピュータの処理速度でもクロックが数MHz〜20MHzといった程度で、 制御するといっても、プログラムで状態を読み取ってふさわしい信号を出力するといった ことに使われる。このため、制御情報の入力から出力までがプログラムのループ時間 となり、高速で変化する信号の処理には向かない。 μsecオーダーを切るようであれば、よほど注意深いプログラムを書く必要があるであろう。

最近では、ワンチップコンピュータも各種発売されるなか性能も向上し、 昔の Z80 よりも強力な物が増えてきた。 メーカーでは、マイクロコントローラという呼び方が主流。 有名な製品では、 Microchip社のPICシリーズ, Atmel社のAVRシリーズ, ルネサステクノロジのH8シリーズ が有名。


プログラマブルロジックデバイス

AND素子,OR素子,NOT素子,Flip-Flop回路といった論理回路が大量に納められたデバイスで、 VHDLと呼ばれる言語を記述したデータをデバイスに書き込むことで、 内部の配線を繋ぎ替え、目的の論理回路を簡単に作ることができる。

PICに代表されるようなワンチップコンピュータに比べると、大がかりで高速で複雑な制御が必要な時に使われる。 VHDLのコンパイラなどの、開発環境が高価でハードウェアの知識も必要で、初心者向けではない。 XILINX社の製品が有名。


ワンチップコンピュータのバリエーション

ワンチップコンピュータも目的別に、小型の物からパソコンの周辺素子として使う目的の物まで色々なものが増えてきている。

超小型

PIC10シリーズなどは、8pin DIP[1] パッケージに納まる構造で、身の回りの簡単な家電でも使われている。

パソコンインタフェース内蔵

制御をする場合でも、全てをワンチップコンピュータで行うのは大変なので、 各種センサーから値を拾って、結果はパソコンで処理することも多い。 こういう場合には、シリアル通信やUSBといった通信をするための周辺素子を内蔵したものが増えている。 さらに、Ethernet(ネットワーク)用の周辺素子と接続することで、ネットワーク経由で制御可能な製品もある。


[1]DIP
Dual inline package:ICパッケージで2つの長辺からそれぞれ 左右2本の線が出ている形式のもの。ピン間距離2.54mm。

電子工作向けの有名なワンチップコンピュータ

PIC(Peripheral Interface Controller)

Microchip社の開発したマイクロコントローラ(制御用IC)は、 組み込み用ワンチップコンピュータの老舗的製品で、CPU、メモリ(RAM/ROM)、I/Oなどが 1チップに納められており、必要な部品も少なくできることから電子工作では有名である。

汎用のパラレルインタフェース、タイマIC、A/Dコンバータ、シリアル通信といった機能がある。 データメモリは8bitの製品が主流で、 小さなメモリを有効に使うために、 命令12bit長のPIC10,PIC12系、命令14bit長のPIC12系,PIC16系、命令16bit長のPIC18系がある。 最近では、データメモリが16bitの、 PIC24系といったバリエーションが普及してきた。 この中で、特にPIC16F84は、それなりのメモリとI/O機能を持ち安価で、 解説本なども沢山あり初心者向き。

プログラム開発では、無料で配布されている開発環境 MPLAB でアセンブリ言語やC言語での 開発ができる。プログラムをPICに書き込むために、専用のライターが必要となる。

Atmel AVR

PICと対抗して、Atmel社が開発している AVR は、PIC の欠点が改められ、最近利用が増えてきている。 特に機械語の命令がコンパイラを作るのに向いた構成のため、開発環境を安価に構築できる。


注目すべき物として、 オープンソースのハードウェア Arduinoは、 ハードウェアやソフトウェアが公開され自由に使えるため、周辺の素子なども一体化されたものが 販売されている。 Arduino は Windows,Mac,Linux といった環境でも同じような開発環境が公開されている。 この公開されているCの開発環境は、入出力命令なども初心者に分かりやすいように考えられ、 パソコンとの通信などのライブラリも整備されており、簡単にプログラムを作成できることから、 普及が進んでいる。


H8

ルネサステクノロジ社(日立より分離)で、PIC等と違い主流となっている製品は16bitコンピュータ。 パラレルポート[2]やA/Dコンバータ[3]、シリアル通信[4]といった機能の他に、外部メモリを追加できたりと、 PICやAVRなどの応用分野よりは高度な制御に利用するために開発された。

基本的な機能が、PIC,AVRよりも充実しているため、 当初からUSB接続やEthernet接続といった機能への対応がある。 開発環境も、フリーのコンパイラなどが入手できるため安価で開発ができる。 また、秋月電子などから販売されているキットは、電子工作向きに必要な周辺素子が組み込まれ、 シリアル通信ができれば、ライターも不要である。

福井高専では、2005年頃から学生実験に利用し、ライントレースロボット制御などの実験に 利用している。


[2]パラレルポート
電圧のHigh/Lowの信号を並列に複数本の信号を入力/出力するもの
[3]A/Dコンバータ
端子の電圧をHigh/Lowの2値の信号ではなく、 Analog信号をDigital信号に変換し、端子電圧を測定する変換装置
[4]シリアル通信
古くから規格名のRS-232C等とも呼ばれ、1本の信号線に時分割で信号を送る。 パソコンと電話のモデムとの接続に利用されていた。 このシリアル通信用の周辺素子の UART などと書かれる場合もある。 一般的に、電話の状態確認などの信号と9ピンの D-SUB9 コネクタで接続されることが多い。

画像については、秋月電子やWikipediaより掲載。

Last modified: Tue Aug 25 09:49:38 JST 2009