PIC (コントローラ)

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

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

PICにはCPUメモリRAMROM)、I/Oなどが1チップに収められており、ROMに書き込まれたプログラムにより制御される。回路構成が容易かつ安価で、他のマイクロコントローラと比べて圧倒的にインターネット上で情報を得やすく、関連書籍も豊富で、PICそのものの入手性も良いため電子工作愛好家の間で人気がある。

Pic32mz2048ecm100-ipt
Pic24fj64gb002-isp

特徴[編集]

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

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

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

なおPICの開発元であるMicrochip社は、ディスコン(廃盤、生産停止)にしない事を会社の方針としており、古いチップも入手可能である。 そのため、設計の古いものや機能の劣るものも存在し、そのことが他社との比較において誤解され、性能的に不利であるという誤った解釈をされる理由ともなっている。 一方で、存在する過去の使用例や作例の蓄積が時間を経た現在でも有効に活用できるというメリットは大きく、チップが入手できないために見つけた作例が実際には生かせないというケースはまれである。

開発環境は、MPLAB XというC言語ベースの統合開発環境がチップ製造元のMicrochipから無償で配布されているほか、アセンブリ言語も利用可能であり、サードパーティー製の開発環境も何種類か発売されている。

日本では、電子工作雑誌で紹介されたり、秋葉原などにある電子パーツ店ではライタなどのキットが販売され、PICチップやライタ、開発環境が入手しやすいため普及した。 現在では開発元から純正ライタが発売されていて、こちらを用いるのが一般的である。 PICマイクロコンピュータの入手性は他のマイクロコンピュータと比べて格段に良く、特にDIPパッケージと呼ばれる扱いやすいパッケージの豊富さから、日本でのアマチュア電子工作においてはゆるぎない人気を維持している。

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言語コンパイラ[編集]

Windows版 (x86/x64)、Linux版 32-Bit and Linux 64-Bit (Requires 32-Bit Compatibility Libraries)、Mac版 (10.X)のコンパイラが無料で提供されており、それぞれ、MPLAB XC8 Compiler、MPLAB XC16 Compiler、MPLAB XC32 Compilerの3種のコンパイラで、発売中のすべてのPICマイクロコンピュータに対応している。統合開発環境であるMPLAB Xに統合して使用される。マイクロチップ・テクノロジー社が公開しているライブラリやサンプルコードをそのまま利用できる利点がある。最適化機能に制限のないPRO版と、最適化機能が制限されたFree版、Standard版があるが、個人レベルでの使用ではFree版で必要・十分な機能を得られる。Free版は、PRO版と全く同じデバイスとコマンドをサポートし、使用時間とメモリ使用量にも制限はない。ほとんどの用途で十分なコード最適化機能を備えた、機能に制限のないライセンスで使うことができる。
  • 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を含む複数のデバイスに対応しており、マルチプラットフォームで動作する。

関連項目[編集]

外部リンク[編集]