PIC (コントローラ)

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

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

PICにはCPUメモリRAMROM)、I/Oなどが1チップに収められており、ROMに書き込まれたプログラムにより制御される。回路構成が簡単であり、安価なので電子工作を行う人の間で人気がある。

目次

特徴

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

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

LEDを直接光らせることができる。(1ピン25mA程度まで) ただし1ポート当たりの出力は制限されている。(1ポート100mA程度まで)

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

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

PICは電子部品を扱う複数の会社がキットで提供しているため、電子工作でよく使われている。秋葉原では最も基本的なモデルである16F84と、I/Oピンと機能が多くプログラムメモリもかなり広い16F877が大量に安価で出回っており、ほとんどの回路ではこれが利用される。今まで専用のLSIやICなどで構成されていた回路をPICに置き換えている電子工作キットなどもある。 また、プレイステーションなどをはじめとした各種ゲーム機を信号的に騙し、コピーガードリージョンチェックを回避するチップ(通称MODチップ)に利用されたこともある(不正競争防止法の改正により現在の日本では違法)。

機能

すべてのPICに入っている機能(*は無いものもある)

  • 発振回路
    • 外部発振回路
    • 内部発振回路*(RC発振回路・4~8MHz程度)
  • リセット(プログラムの最初に戻ること)
    • RESET端子によるもの
    • WDT*によるもの
  • 割り込み
    • 外部割込み
      • ピン変化*
      • INTピン
    • 内部割込み
      • AD変換完了*
      • EEPROMにライト完了*
      • タイマのオーバーフロー(あふれること)
  • スリープ(寝る)

すべてには入っていない機能

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   クロック内蔵の8PinのPIC。
      • 12F675   A/Dコンバータを搭載。
      • 12F683   CCPを搭載・内部クロック8MHz
    • PIC16系
      • 16F84A   PIC入門用として最適。本もたくさん出版されている。ただ、付加機能が少なく昔からあるチップのため少々高価
      • 16F648A   16F84Aに付随機能を付けたタイプ、内蔵クロックを搭載したため外付けクロック不要で実験できるため扱いやすい、CCP・SPI・USARTを搭載。
      • 16F88    18PinのPICでは最強と言われている、A/Dコンバータ搭載、内蔵クロック8MHz搭載
      • 16F877A   機能が豊富。プログラムメモリも8Kで、大容量。使いやすい。
  3. ハイエンドシリーズ(命令16ビット長コア)
    • PIC18系   最大クロックは40MHz、10MHzを入力してPLLで4倍することで最高性能が出せる
        • 18F4520   40Pinで、プログラムメモリは16Kワード、RAMは約1.5KB。
        • 18F2550   28Pin。USBモジュールを内蔵している。
        • 18F4550   18F2550の40Pin版。
        • 18F2620   28Pin。18Fシリーズの中で最高峰の8722と同じRAM容量をもつ。
        • 18F4620   18F2620の40Pin版。
        • 18F8722   80PinのTQFPパッケージ。プログラムメモリは64Kワード、RAMも約4KBと大容量。

データメモリ16ビット

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

PIC互換

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

使用可能なC言語コンパイラ

  • 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版も販売されている。

関連項目

外部リンク

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net