Renesas Synergy™

FAQ 1006593 : マイコンとポート

マイコンには必ずポートが存在しますが、ポートは何のために必要なのでしょうか。また、入力ポートにはラッチ機能がないのはなぜでしょうか。

[出力ポート]
通常、マイコンのCPUはMHz程度の周波数のクロックを用い、メモリから命令を読み出し(フェッチ)、それをデコードして動作内容を決定し、必要な処理 を行います。CPUが外部に対して信号を出力しても、その信号はせいぜいμsの幅しかありません。従って、下図の左側に示すように波形をみてもわかりませ ん。右側のように拡大してはじめて目的の出力信号が確認できるようになります。



これでは、とても制御には使えません・・・・ そこで、ポートがでてきます。
ポートはCPUと外部を結ぶための港の機能です。上の例にポートを追加すると、下図のようになり、CPUそのものの動作は見えませんが、CPUの動作の結果であるポート出力は見えるようになります。



これで、CPUから制御に使えるような信号を取り出すことができるようになります。このように、出力ポートはCPUの出力をラッチしてデータを保持することで、外部で使用できるようにするものです。

[入力ポート]
次に入力について触れます。CPUが外部の状態を取り込むために使用するのが入力ポートで、これは外部の信号をCPUが読むだけの機能です。出力ポートの ように、外部の信号をラッチするわけではなく、CPUが必要なときに入力ポートを介して外部の状態を確認するだけです。従って、外部の状態が変化しても CPUが入力ポートを介して読まなければ、変化を認識することはできません。
(通常入力ポートに入力される信号はCPUからみて時間的な変化が緩やかな信号です。信号をラッチして保持しておかないと扱えないような信号ではありません。)



[入力ポートのエッジ検出]
入力信号の時間的な変化が緩やかであっても、CPUが常に入力ポートを監視するのは効率的ではありません。そのため、タイマを用いて、ある一定の周期で入 力ポートを確認(ポーリング動作)するのが一般的です。殆どの場合はこれで十分ですが、これでは、変化の検出タイミングには不十分なこともあります。そこ で、いくつかの入力はエッジ検出ができるようになっています。信号の変化をエッジ検出割り込みで検出、処理することで、周期的に監視する必要がなくなり、 しかも入力信号の変化を早く検出することができます。

 

最後にひとこと
入力信号の時間的な変化が緩やかな場合にはCPUが入力ポートを介して読むことで対応できます。しかし、信号の時間的な変化が緩やかでもCPUで処理する 内容が多い場合や、信号の時間的な変化が速い場合にはCPUだけでは処理できないことがあります。そのためにマイコンではポート以外にハードウェアとして 各種の機能を内蔵しています。例えば、タイマ機能を用いると、外部からの高速なパルスをカウントすることができます。また、シリアル・インタフェース機能 を用いると、CPUにかける負荷を大きく増加することなく外部とのデータのやり取りが可能になります。表示コントローラを内蔵していると、表示したいデー タを表示用RAMに書き込むだけで、CPUのオーバヘッドなしに表示できます。
このように、マイコンにはポート以外にもいろんな機能が内蔵されています。そのため、CPUの性能やメモリの大きさで使用するマイコンを選択する以外に内蔵する機能でマイコンを選択するのが普通になっています。

この情報は役に立ちましたか?

他にご質問がございましたら、リクエストを送信してください