今回は「GPIO」についてです。
1.初めに
わからない用語を調べた際、用語の説明をするために他の用語が出現してくるので結局何を意味するのかわからなくなったという経験はありませんか?
私は結構あります。
特に、業界特有の用語なんてその業界の方は知ってて当たり前のように使用してくるので、全く解読できなかったりします。
残念ながら、本ブログに関しても同じことが言えます。
人それぞれどこまで理解しているかは当然異なってきますので、万人が理解できる記事を書くというのは不可能なのです。
超初心者に合わせて毎回基礎中の基礎から説明してたら本題に入れませんからね。
なので、本サイトでは基本的な用語から専門的な用語まで個別にまとめ、簡単に検索できるような構成にしてあります。
もしわからない単語が出てきたら、画面右もしくは最下部に表示されている「サイト内を検索」から用語を検索するか、トップの「用語集」ボタンにまとめた取り扱い用語一覧から目的の用語を検索してみてください。
2.GPIOとは?
GPIOとは、[General Purpose Input/Output]の略称です。
マイコンなどのICに標準的に搭載されている汎用入出力端子のことです。
“汎用入出力端子”と言われてもよくわからないと思いますので、「ユーザが自由にプログラムして入力端子や出力端子として使用できる端子」とイメージしてください。
だから“汎用(様々な用途・分野に用いること)”なんです。
場合によってはいくつか用意された機能の中から1つだけ使用したい機能を選択する形式になっているものもありますが、どちらにしろ汎用であることは変わりありません。
入力端子としてしか使用できない場合はGPI、出力端子としてしか使用できない場合はGPOという名称になります。
まあ、最近はほぼGPIOしかないですけどね。
入力端子/出力端子としての機能は、以下の通りです。
基本機能はこれだけです。
『HighとかLowとか何のことかわからない!!』という方は、以下の記事を参考にしてみてください。
この機能を利用することにより、デバイスが外部とデジタル信号をやり取りすることが可能になります。
例えば、ある装置に正常時はLow信号、エラー検出時にHigh信号を出力する端子があったとします。
この端子をマイコンのGPIO(設定はGPIにしておく)に接続することで、装置でエラーが発生しているかどうかをマイコンが判定できるようになります。
この判定結果に従ってマイコンの別のGPIO(設定はGPOにしておく)のHigh/Lowを切り替えできるようにしておけば、その信号でスイッチをON/OFFさせて装置動作用の電源を強制的にシャットダウンさせたり、LEDに接続してエラー発生時は点灯するように設定することなんかも可能になります。
つまり、組み合わせて使用すれば大概GPIOだけで何でもできるのです。
なので、マイコンなどのICのピンは大半がGPIOになっています。
ただ、GPIOでは原理的には実現できても、実際にやろうとすると何かと複雑で難しいモノも存在します。
SPI・I2Cなどの“通信”なんかが良い例です。
「どちらの機器が送信/受信になるのか」、「信号の受け渡しのタイミングをどうするのか」、「通信開始/通信終了をどう判断するのか」といった設定が必要になるからです。
それらの設定もやろうと思えば全てGPIOで実現できるのですが、何かと難しそうでしょう?
そのような機能を実現する場合は、GPIOではなく専用の機能を持った特殊な端子が用意されているというわけです。
GPIOは1つのマイコンに結構な数が搭載されているわけですが、場合によっては使用しないGPIOも出てくるかと思います。
そんな時は、GPIOを無効(使用しない状態)に設定することも可能です。
使用していないのにそのまま放置していると、場合によっては外部ノイズを拾ってしまったり、逆にノイズを放射する要因になったりします。
その為、使用しないGPIOは設定を無効にしておくのが無難です。
ちなみに、複数のGPIO端子をグループとしてまとめて扱っている場合は、GPIOポートと表現されます。
GPIOポートになっている場合、グループ単位で入出力設定をすることになり、グループ内のGPIO端子を個別に設定することはできません。
3.まとめ
GPIOとは、マイコンなどのICに標準的に搭載されている汎用入出力端子のことです。
以上、「GPIO」についてでした。