PIC (コントローラ)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

PIC(ピック)とは、Peripheral Interface Controller(ペリフェラル インターフェイス コントローラ)の略称であり、マイクロチップ・テクノロジー社(Microchip Technology Inc.)が製造しているマイクロコントローラ(制御用IC)製品群の総称である。コンピュータの周辺機器接続の制御用として1975年にゼネラル・インスツルメント(General Instrument Corporation)社により開発された。1985年にPICの事業部門が独立してマイクロチップ社となり現在に至る。

PICにはCPUメモリRAMROM)、I/Oなどが1チップに収められており、ROMに書き込まれたプログラムにより制御される。回路構成が容易かつ安価で、インターネット上で情報を得やすく、電子工作愛好家の間で人気がある。

PIC1655A GI.jpg
PIC16CxxxWIN.JPG

特徴[編集]

命令語長を揃え命令数を抑えたRISCライクな構造になっているほか、コードエリアとデータエリアが分離されたハーバード・アーキテクチャになっているのが特徴。「ビットコア」とはコードメモリの1命令のビット数をさす。

パッケージは主に長方形のDIPタイプで、小型の表面実装タイプのものもある。ピン数のバリエーションも豊富で、下は6ピンのものから存在する。汎用パラレルポートのほか、タイマA/Dコンバータなどを内蔵するもの、動作用のクロック回路を内蔵するもの、プログラムコード用にフラッシュROMを備えたものもある。なお、バスは一切出力されていない。シリアルコントローラ (USART, IIC) やUSBコントローラを内蔵している製品もある。

汎用パラレルポートには1ピンあたり25mAまで流せる出力回路が採用されており、LED等を直接駆動することができる。ただし1ポート及び1素子当たりの合計の出力電流には制限がある。

開発環境は、MPLABというアセンブリ言語ベースの統合開発環境がメーカーから無償で配布されているほか、C言語コンパイラも何種類か発売されている。

日本では、電子工作雑誌で紹介されたり、秋葉原などにある電子パーツ店ではライタなどのキットが販売されている。PICチップやライタ、開発環境が入手しやすいため普及した。

PICは電子部品を扱う複数の会社がキットで提供しているため、電子工作でよく使われている。今まで専用のLSIやICなどで構成されていた回路をPICに置き換えている電子工作キットなどもある。

機能[編集]

すべてのPICに搭載されている機能(*の付いた副機能のみ非搭載機種もある)


一部機種に搭載されている機能

PICの種類[編集]

データメモリ8ビット[編集]

12、14ビットコアのシリーズは下記のような独特な特徴を持つ。

  • 一定サイズ以上のプログラムはページ切り替えを必要とする
  • 定数テーブルは作れないので値を返すリターン命令で代用する
  • 汎用レジスタが一つしかない代わりにデータメモリを「ファイルレジスタ」として使用できる
  • 分岐には内部でスキップ命令を組み合わせる
  • スタックが8(12ビットコアでは2)段階に抑えられている、など

16ビットコアのシリーズはアーキテクチャが高級言語向きになるなど、より汎用マイコンらしく拡張されている。

  1. ベースラインシリーズ(命令12ビット長コア)
    • PIC10系   このシリーズは8PinのDIPか米粒サイズの表面実装
      • 10F200
      • 10F202
      • 10F204
      • 10F206
      • 10F220
      • 10F222
    • PIC12系
      • 12F509
  2. ミッドレンジシリーズ(命令14ビット長コア)
    • PIC12系
      • 12F629   発振回路(4MHz)を内蔵し単独動作可能な8PinのPIC
      • 12F675   12F629にA/Dコンバータを追加
      • 12F683   CCPを搭載・内部クロックが8MHz
    • PIC16系
      • 16F84A   多数のPIC入門書で取り上げられた定番機種
      • 16F648A   16F84Aに多彩な機能を追加搭載、発振回路(4MHz)内蔵したため単独動作で実験できるため扱いやすい、CCP・USARTを搭載
      • 16F88    18PinのPICでは最も多機能な機種、A/Dコンバータ搭載、内蔵クロック8MHz搭載
      • 16F877A   40pinとI/Oの数も多く機能も16F88以上、プログラムメモリも8Kワードで大容量
      • 16F887   16F877Aの改良版。発振回路を内蔵し、A/Dコンバータのピン数が増えている。
      • 16F876A   16F877Aの28pin版
      • 16F886   16F887の28pin版
  3. Enhancedミッドレンジシリーズ(命令14ビット長コア)
    • PIC12系
    • PIC16系
      • PIC16F19xx
  4. ハイエンドシリーズ(命令16ビット長コア)
    • PIC18系   最大クロックは40MHz、10MHzを入力してPLLで4倍することで最高性能が出せる(USBモジュール内蔵の場合は最大48MHz)
        • 18F4520   40Pin、プログラムメモリは32KB、RAMは約1.5KB
        • 18F2550   28Pin、USBモジュールを内蔵
        • 18F4550   18F2550の40Pin版
        • 18F2620   28Pin、8722と同じRAM容量をもつ
        • 18F4620   18F2620の40Pin版
        • 18F8722   80PinのTQFPパッケージ、プログラムメモリは128KB、RAMも約4KBと大容量

データメモリ16ビット[編集]

  1. PIC24   このシリーズにはプログラムメモリ256KB、RAM32KBといった大容量なものもある
    • PIC24F系   最大16MIPS
    • PIC24H系   最大40MIPS
    • PIC24E系   最大70MIPS
  2. dsPIC   命令24ビット長・データ長16ビットのCPUコアと、DSPを内蔵
    • dsPIC30F系   最大30MIPS
    • dsPIC33F系   最大40MIPS
    • dsPIC33E系   最大70MIPS

データメモリ32ビット[編集]

  • PIC32   このシリーズにはMIPS 32-bit M4Kコアを内蔵。

PIC互換[編集]

  1. SCENIX SXシリーズ - SCENIX(現在はUbicom)のCPUで、ミップス・テクノロジーズスピンオフしたチームが開発した。PICとバイナリ互換で命令を4倍速にし、さらに50MHzや75MHzと高クロック化されている。PIC12相当のものとPIC16相当のものがある。

使用可能なC言語コンパイラ[編集]

  • MPLAB C Compiler
PIC18、PIC24、PIC32、及びdsPICに対応(一般にC18、C24、C32と呼ばれる)。ベースラインシリーズ(PIC10)及びミッドレンジシリーズ(PIC12,PIC16)には対応していない。MPLABに統合して使用される。マイクロチップ・テクノロジー社が公開しているライブラリやサンプルコードをそのまま利用できる利点がある。全機能が利用できる有償版と、最適化機能が制限された評価版(最初の60日間は全機能が利用できる)、無償で全機能が利用できる学習用のアカデミック版がある。
  • CCS PIC C Compiler
対象となるPICの種類(ビット数)および開発環境のオペレーティングシステムにより製品が分かれている。初期のバージョンは専用のIDEが付属していたが、最近のバージョンではMPLABに統合して使用するようになっている。
  • HI-TECH PIC C Compiler
MPLABに統合するほかEclipseをベースとした独自のIDEで使用できる。出力可能な容量が制限された PICC Lite は無償で使用できる。
  • mikroElektronika mikroC for PIC
SDカードやキャラクタLCDを含む多くのライブラリが標準でついている。独自のIDEになっている。対応するシリーズは12,16,18シリーズのほぼ全て。PIC24やdsPICシリーズは別製品になっている。無償バージョンでは出力が2Kワードに制限されるが、その範囲内であれば有償版と同じライブラリがつかえる。また、Basic版とPascal版も販売されている。HI-TECHのコンパイラと違い、include文が不要だったり、大文字と小文字は区別しないなどの違いがある。
  • SDCC (Small Device C Compiler)
小型デバイス向けのフリーのCコンパイラ。PICを含む複数のデバイスに対応しており、マルチプラットフォームで動作する。

関連項目[編集]

外部リンク[編集]