マイコンチップ概要解説PIC16F84からスタートしたPICマイコンは徐々に大型化して32bitマイコンまで成長しました。「PIC」ペリフェラルインタフェースコントローラという名称からわかるように、マイコンという立場よりメインマイコンの手足となるサブマイコンというコンセプトから生まれたマイコンでしたが、小型機器のメインマイコンとしての需要にマッチし、多くのユーザの便利なマイコンという新たなマイコンの存在分野を開拓し地位を確立したといえます。PIC16マイコンは6、8、14、18、20、28、40ピンと小型マイコンの多くのラインナップを揃え、アマチュアから自動車業界まで、ユーザ層も幅広い分野に及んでいます。PIC16マイコンの多くの癖を整理した発展型のマイコンとしてPIC18シリーズが登場しました。PIC16系のアーキテクチャと資産をそのまま引き継ぎ、マイコンとして不足していた命令を追加し、C言語での構築を意識した機能を強化して、PIC18マイコンは組込用小型マイコンとしてまとまりの良い完成されたスタイルを持っています。このPIC18シリーズに続く16bit処理の新しいマイコンとしてdsPIC30が開発されました。16bitマイコンは多くのメーカより多くの品種が発売されており、小型機器向けのPICマイコンはその一部として飲み込まれてしまうと思われましたが、DSPエンジンと融合し一歩進んだまた新らしいマイコンの世界を築きつつあります。dsPIC30は30MIPS(120MHzクロック)の処理速度を持つ16bit処理、5V電源動作のマイコンです。PIC16から続くハーバードアーキテクチャを基本とするマイコン構造は変わることはありませんが、Wレジスタを16個まで拡張し、さらなる高速処理を確保しています。PICマイコンはRAM全体がスペシャルファンクションレジスタとしてレジスタ的に機能する命令形態を持っているのですが、これに加えてテンポラリレジスタを強化した点はその処理の融通性を幅広く持ったことを意味しています。1命令のビット構成は24bit(3バイト)ととなり、この幅は必然的にROMの1ワード幅を決定しています。スタックメモリは従来固定的なレベルに限定されていましたが、一般マイコンと同様にRAM空間へアサインされ、可変長レベルを確保できるようになっています。割込機能は7レベルの優先割り込み機能を持ち、多重割込を円滑に処理できます。割込ポイント形式からベクタジャンプ形式に変わっています。周辺機能はPIC18マイコンに比べ大きく機能強化されています。PICマイコンの持つ基本的なタイマ、通信、A/Dコンバータの機能に加え、CODECインタフェース、QEI2相パルス受信機能、CANインタフェースなどが加わっています。それぞれの機能は大幅に強化されたことは言うまでもありません。UARTでは4ワードのバッファリング、制御信号、ブレーク信号のサポート、パリティジェネレータ装備などが強化された機能です。タイマはPIC16,18とは全く異なるものといえ、従来の煩雑さを整理し、使いやすい構造になっています。基本16bitのタイマを連結して32bitタイマを構成させることもできます。A/DコンバータはDSP機能の信号入力部として重要な位置にあるため、機能的に大変高度になっています。タイマと連携した定周期サンプリング、4ビット同時サンプリングなどが注目的な機能ですが、自由度の高いレジスタ設定は高度である反面ユーザ泣かせであるともいえます。dsPIC30はユーザの使用用途で周辺機能が変化することから汎用ファミリ、モータ制御ファミリ、センサ用途ファミリの3つに分類しラインナップを構成しています。A/Dコンバータの搭載などが主な搭載機能です。DSP機能にフォーカスを当ててみましょう。DSP処理は掛け算とその総和を取る足し算による積和演算から構成されるためこの処理を1命令11クロックで動作できるDSPエンジンを持っているといえます。デジタルフィルタの1タップを1クロックで処理できる能力です。数値は15bitの固定小数点を使用しています。一般にDSPチップと呼ばれるハードロジックと異なる点はDSPエンジンとアセンブラ命令、メモリアクセスの協調的な動作でDSP演算を構成させます。ハード、ソフトの協力でDSP演算を進めて行くといえ、このことは最小のDSPハードロジックと高度なマイコンコアによるもので、プログラムへの負担はあるものの結果的にデバイスコストの低減につながるものです。このような高速なソフト処理でハードロジックを最小限とするデバイス設計思想はPIC16時代から感じる一貫したマイクロチップ社の思想であるととらえられます。16bitマイコンのプログラム開発言語はC言語であることはごくあたりまえのこととなってきていますが、dsPICはCコンパイラがアセンブリ言語への変換時におけるコンパイル効率を最適化することも工夫しています。このことはコンパイル動作を特別なハードロジックが補う必要性があり、おもしろいアセンブラ命令からもこの工夫を感じ取ることができます。リピートカウンタやdoカウンタを活用したリピート命令、do命令はこの特徴的な命令であるといえます。そのほかにも多くの工夫を持った命令はCコンパイラの最適化に寄与することはもちろんですが、エンジニアにおいては逆にアセンブラプログラミングへの興味をかき立てられるのではないでしょうか。アセンブラ命令を知ると30MIPSという処理速度を単純に受け入れることに疑問を感じ、MIPS数だけではCPUのパフォーマンス比較ができないという状況を感じます。このようなことからdsPICはC言語の記述でも高速度な処理を期待することができます。C言語ではよく利用されるDSP処理を組込関数として用意し、特別な知識を必要とせずに簡単にDSPを使うことができるようになっています。FIR・IIRフィルタ、FFT演算、PID演算などが代表的な関数です。特別なDSP用途に関してはライブラリが提供されています。モデムなどがあげられます。dsPICはPICユーザから見ると高度なマイコン機能に大変魅力を感じます。そのためDSP用途以外で汎用マイコンとして利用したいという気持ちになってきます。このような要望に応えて開発されたデバイスがPIC24Fシリーズで、dsPIC30からDSP機能を取り除きコストダウンをおこなったデバイスです。PICの16bitマイコンシリーズはこのような流れで現在4つのグループに分かれています。dsPIC30を原点として40MIPSの動作速度を持つdsPIC33Fシリーズと、PIC24Fを高速化したPIC24Hシリーズがあり、全4シリーズに分かれています。PIC24F・PIC24H・dsPIC33Fは従来のプロセスを変更して3.3V電源動作になります。各シリーズはdsPIC30を基本としていますから、構造的に大きく変わるところはありません。開発したプログラムは大きな変更を行うことなく相互に利用することができますし、ピン配列もほとんど同様であることから載せ替えも可能な場合が多いでしょう。開発言語はC30コンパイラにより全て開発が可能です。PIC24H・dsPIC33Fでは周辺ロジックとしてDMAダイレクトメモリアクセス機能が追加され、多くの周辺機能とメモリ間におけるデータ入出力をプログラム動作の裏側で同時に機能させることが可能です。通信データを自動的に取り込みメモリ内の配列に展開させる動作をハードロジックが実現してくれます。ここではdsPICの機能を充分にお伝えすることはできませんが、dsPIC30が従来の16bit組込マイコンの延長線上にあるデバイスではなく、DSP機能を搭載したデジタルシグナルコントローラ「DSC」という新しいマイコンの位置づけを目指すデバイスとして開発されたことはお感じいただけたことと思います。従来のPIC16,18マイコンの単純な強化デバイスでないことも確かです。dsPICマイコンは実際に使ってみなければそのパフォーマンスのすばらしさを感じ取ることはなかなか難しいかもしれません。dsPICマイコンは細やかな制御、考える制御を実現できるワンチップマイコンであり、人に優しい、地球に優しい電子機器を構築できる新しいデバイスであるといえるでしょう。PICマイコンのラインナップと機能の位置づけdsPIC30の内部ブロック図dsPIC30のレジスタ構成DSPエンジンブロック図マイクロチップ・テクノロジー・ジャパンマイクロチップ・テクノロジー・ジャパン(株)。