割り込みコントローラー(略:PIC)の「Programmable Interrupt Controller」とは異なります。
PIC(ピック、Peripheral Interface Controller)とは、マイクロチップ・テクノロジー社 (Microchip Technology Inc.) が製造しているマイクロコントローラ(制御用IC)製品群の総称である。 コンピュータの周辺機器接続の制御用として1975年にジェネラル・インストゥルメント (General Instrument Corporation) 社により開発された。1985年にPICの事業部門が独立してマイクロチップ社となり現在に至る。 PICにはCPU、メモリ (RAM, ROM)、I/Oなどが1チップに収められており、ROMに書き込まれたプログラムにより制御される。回路構成が容易かつ安価で、他のマイクロコントローラと比べて圧倒的にインターネット上で情報を得やすく、関連書籍も豊富で、PICそのものの入手性も良いため電子工作愛好家の間で人気がある。PIC32MZ2048ECM100-I/PTPIC24FJ64GB002-I/SP 命令語長を揃え命令数を抑えたRISCライクな構造になっているほか、コードエリアとデータエリアが分離されたハーバード・アーキテクチャをとり、コードエリアとデータエリアとでバス幅をそれぞれ最適化しているのが特徴である。「ビットコア」とはコードメモリの1命令のビット数を指す。たとえば命令長12ビットコアの場合はコードエリアのバス幅は12ビット・データエリアのバス幅は8ビットとなっている。またコード・データそれぞれのアドレス空間も必要十分なサイズに抑えられている。 大半の命令が1サイクルで実行されるが、シリーズにより1サイクルあたりのクロックは異なる。8ビット系PIC (PIC10/12/16/18系) は4クロックが1サイクル、PIC24/dsPIC系は2クロックが1サイクル、MIPSアーキテクチャコアのPIC32系は1クロックが1サイクルである。 大多数の品種で、動作用のクロック発振回路を内蔵しており単独で動作することが可能だが、高精度を要する場合のために外付けの水晶等を使用する発振回路も内蔵し、また外部オシレータからのクロック入力による動作も可能になっている。 プログラムコード用の内蔵メモリとしては、古くはワンタイムROM、EPROM(紫外線消去)品があったが、現在では大多数がフラッシュROM品となっている。多くの品種で、不揮発性のデータ保存用としてEEPROMが内蔵されている。 バスは多くの品種で外部に出力されていないが、PIC18シリーズの多ピン(100ピン等)の品種などでは外部バスが用意されているものもある。 パッケージは長方形のDIPタイプから小型の表面実装タイプのものまでさまざま豊富な形態で供給されている。ピン数のバリエーションも豊富で、下は6ピンのもの(俗に米粒PICと呼ばれる)から存在する。GPIOポートのほか、タイマやA/Dコンバータなどを内蔵するもの、シリアルコントローラ (USART, IIC) やUSBコントローラを内蔵している製品もある。 多くの品種でGPIOポートには1ピンあたり25mAまで流せる出力回路が採用されており、LED等を直接駆動することができる。ただし1ポート及び1素子当たりの合計の出力電流には制限がある。 なおPICの開発元であるMicrochip社は、ディスコン(廃番、生産停止)にしない事を会社の方針としており、古いチップも入手可能である。そのため、設計の古いものや機能の劣るものも存在し、そのことが他社との比較において誤解され、性能的に不利であるという誤った解釈をされる理由ともなっている。一方で、存在する過去の使用例や作例の蓄積が時間を経た現在でも有効に活用できるというメリットは大きく、チップが入手できないために見つけた作例が実際には生かせないというケースはまれである。 開発環境は、Microchipからは、古くはアセンブラのみが無償で提供されていたが、現在ではMPLAB Xという統合開発環境とCコンパイラ (XC) が無償で配布されている(無償版では最適化などに機能制限があるもののコードサイズ制限などはない)。MPLAB X は NetBeans IDEをベースにしている。もちろん現在でもアセンブラも利用可能であり、サードパーティー製の開発環境も古くから何種類か発売されている。 PIC内蔵のプログラムメモリに書き込みを行うためのライタは、初期のものはDIPのゼロプレッシャソケットを備え、PICチップをライタに装着して書き込むものが一般的であったが、現在ではMicrochipから廉価な純正ライタのPICKitシリーズが発売されているのでこちらを用いるのが一般的となっている。PICKitを使用した書き込みは、回路上に用意した5ピンのICSP (In-Cirtuit-Serial-Programming) コネクタ経由で行うため、いちいち基板からPICを着脱する必要がない(ということはソケットを使わない表面実装タイプのPICの場合でも使用できる)。またPICKitは書き込みのみならずICD (In-Circuit-Debug) 対応の品種であればデバッガとしても使用できる(ただし小ピン品種でICDをサポートしているPICはあまり無い)。 日本では、電子工作雑誌で紹介されたり、秋葉原などにある電子パーツ店では独自に企画したライタなどのキットが販売され、PICチップやライタ、開発環境が入手しやすいため普及した。また1995年ごろから、ソニー PlayStationのCD-ROMコピープロテクトを、ハードウェアに細工して回避する手段が流行した。このための追加部品を通称MODチップというが、これにはPIC12C508等がよく使用された。アンダーグラウンドでは数千円で売られていたMODチップが、自分でPICにプログラムを書き込めば数百円で作れるため、これを糸口として普及が進んだ側面もある。 PICマイクロコンピュータの入手性は他のマイクロコンピュータと比べて格段に良く、特にDIPパッケージと呼ばれる扱いやすいパッケージの豊富さから、日本でのアマチュア電子工作においてはゆるぎない人気を維持している。PICは電子部品を扱う複数の会社がキットで提供しているため、電子工作でよく使われている。今まで専用のLSIやICなどで構成されていた回路をPICに置き換えている電子工作キットなどもある。 近年では後発のAtmel AVRマイコンとそれを利用したArduinoや、ARMアーキテクチャを採用した32ビット級マイクロコントローラが台頭しているなど、ライバルも多い。(なおAtmel社は2016年1月、Microchip社に買収された)。 PICは(特に初期の12ビットコア・14ビットコアは)制限が多くプログラミングしにくいアーキテクチャであったが、その後、高級言語(C言語)でも扱いやすくなるような機能拡張が行われたシリーズも増えている。 すべてのPICに搭載されている機能(*の付いた副機能のみ非搭載機種もある) 一部品種に搭載されている機能
概要
特徴
機能
発振回路
外部発振回路
水晶振動子発振
外部からクロックを供給
RC発振*
内部発振回路*(RC発振回路・4-16MHz程度)
高精度(誤差±1-5%程度)内部発振回路* (品種によっては工場出荷時に校正値がプログラムフラッシュの特定アドレスに書き込まれているため、これを消去してしまわないよう注意が必要)
PLL回路(クロックソースを3逓倍あるいは4逓倍できる)*
リセット(プログラムの先頭に戻る)
RESET端子によるもの
ウォッチドッグタイマ(WDT)*によるもの
割り込み
外部割込み
ピン変化*
INTピン
内部割込み
AD変換完了*
EEPROMにライト完了*
タイマのオーバーフロー(桁あふれ)
スリープ(動作を停止し低消費電力となる)
CCP機能(キャプチャ、コンペア、PWMの頭文字)
キャプチャ
コンペア
PWM(オンとオフの割合でモーターの速度制御やLEDの明るさ制御ができる)
タイマー(カウントアップ)
AD変換(アナログ→デジタル変換)
DA変換(デジタル→アナログ変換)
コンパレータ(比較)
シリアル通信
USB(18Fシリーズ以上の一部)
SPI
I2C
USART
CAN
パラレル通信
WDT - フリーズ・暴走を回避する為の監視タイマ
JTAGプログラミング(24FとdsPIC33Fシリーズのみ)
USB On-The-Go機能
PICの種類
8bit PICシリーズ(データメモリが8ビット幅)
令長12、14ビットコアシリーズの特徴
CPUの内蔵レジスタはWレジスタ(アキュムレータ)一つしかない。データメモリ空間にはSFR (Special Function Register) とGPR(General Purpose Register。いわゆるRAM)が混在している。一般的にはマイクロコントローラの周辺機能のレジスタをSFRと呼ぶが、PICにおいてはプログラムカウンタやステータスレジスタ、インデックスレジスタなど、一般的にはCPU内蔵レジスタとなっているものまでがSFRとしてデータメモリ空間上に存在している。
Size:46 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef