入出力ポート
(I/Oポート から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/06/12 01:26 UTC 版)
入出力ポート(にゅうしゅつりょくポート、英語: Input/Output Port)は、コンピュータ等の情報機器において、装置の外部に接続する機器との情報の入出力に使用するインタフェースの端子(ポート)[1]である。以下、略語としてI/Oポート(アイオーポート)を用いる。
- ^ だいたい同じものを指すのではあるのだが、「端子」(terminal)という語が電気接点など具体的物理的な側を指す語であるのに対して、「ポート」(port)は例えば「シリアルポート」などのような通信プロトコルを包含する語があるように、少し抽象的である。
- ^ CQ出版 パソコンのレガシィI/O活用大全
- 1 入出力ポートとは
- 2 入出力ポートの概要
- 3 I/O空間
- 4 関連項目
I/Oポート
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/06/06 05:31 UTC 版)
I/Oポートの機能が固定されている他のマイクロコントローラと異なり、特にデジタル入出力においてはI/Oポートの制約が少ない。PSoCを搭載する基板に合わせて使用するI/Oポートを選択でき、周辺の配線パターンを最適化しやすい。
※この「I/Oポート」の解説は、「PSoC」の解説の一部です。
「I/Oポート」を含む「PSoC」の記事については、「PSoC」の概要を参照ください。
I/Oポート
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/22 04:23 UTC 版)
TK-80は、8080ファミリーのプログラマプルなパラレルI/OポートμPD8255を1個実装している(シリアルI/Oポートの8251は、TK-80には実装されていない)。8255は8ビットポートを3ポート備え(PA、PB、PC)、各ポートの入出力、動作モードなどをプログラムから設定できる。単純な8ポート×3、2ポート+制御信号、ビット単位の入出力指定(PCポートのみ)などの動作が可能だ。 TK-80は8255をキーパッドのスキャン、シリアル入出力、LEDディスプレイの制御に使っている。このチップのアドレスは、I/Oアドレス空間の0F8Hである(ただし、フルデコードされていない)。 キーパッドは回路に直結しているRESETを除くと24キーであり、これが3×8のマトリクス接続になっている。8255のPCポートの3ビット(PC4からPC6)とPAポートがこのマトリクスに接続されておりモニタープログラム内のキースキャンルーチンが8255のポートを制御し、キーの押し下げ状態を検出する。スイッチ操作の際にはチャタリング(断続的なスイッチのオン/オフ)が発生するがキースキャンルーチン内でのタイマー処理により、誤動作を防いでいる。 TK-80モニタプログラムは、110bpsでのシリアル入出力をサポートしている。これはシリアル入出力LSIを使わずソフトウェアでタイミング処理を行い、8255のパラレルポートのビットを使用して行う。使用しているのはPC0(シリアル出力)とPB0(シリアル入力)である。タイミング生成はソフトウェアのタイマールーチン(空ループにより時間をつぶすという方法)を使っているため、この処理中はDMAによるLEDディスプレイを停止させる必要がある。このための制御は、8255のPC7ポートで行われる。 TK-80モニタプログラムはSTORE DATAキー、LOAD DATAキーを使いメモリデータをシリアル出力し、また外部からシリアルデータをロードできる。一般的な用法はシリアル出力ポートのビット出力を数kHzのオーディオ信号でトーンバースト変調し、このデータをカセットテープレコーダに出力するというものである。またこのオーディオ信号を復調し、シリアル入力ポートに与えることで保存したデータをロードすることができる。TK-80そのものにはこのようなオーディオ変調/復調回路は含まれていないが、マニュアルには回路例が記載されており多くのユーザーは基板上のフリースペースにこの回路を組み込んでいた。
※この「I/Oポート」の解説は、「TK-80」の解説の一部です。
「I/Oポート」を含む「TK-80」の記事については、「TK-80」の概要を参照ください。
I/Oポート
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/05 17:34 UTC 版)
Z80には8080と同じくメモリアドレスとは別に0からFF(255)までのI/Oポートアドレスを持っていた。ポートアドレスはメインメモリーのアドレスデコーダーを流用していたのか、アドレスバスの下位8ビットに出力されたが、上位8ビットにも同時に値が出力される仕様になっていた。この値にはI/OアドレスをCレジスタで指定する命令の場合はBレジスタ、それ以外の命令はAレジスタの値が用いられる。 この仕様を利用するとI/Oポート空間を16ビットアドレスで取り扱うことができ、VRAMをここに割り当てることで、メインメモリーがVRAMによって圧迫されることを防ぐことができる。そのような構成をとった日本製パソコンには、シャープのX1、ソニーのSMC-777、BUBCOM80などがある。シャープMZ-1500ではオプションのRAMファイル(MZ-1R18、容量64KB)のアクセスにこの仕様を使用している。 しかし、通常に16ビットアドレスをデコードしてI/Oのハードを構成してしまうと、アドレス指定にBCレジスタを指定しないOUT命令の時にアドレスバス上位8ビットにはAレジスタの内容が出力されてしまうため、アドレス指定にBCレジスタを指定しないOUT命令を用いることが出来なくなってしまう。そこで、SONYのSMC-70では、I/Oアドレスの上位8ビットを下位に、下位8ビットを上位にアドレスデコードした。こうして、多くのI/Oアドレスの割り付けが必要なところでは上位8ビット・下位8ビット両方をデコードしてBCレジスタアドレシングのOUT命令でアクセス、他のI/Oアドレスでは元の下位アドレスのみをデコードしてデバイスに割り付けることにより、通常のOUT命令を使用できるようにした。 なお、ブロック入出力命令の場合はBレジスタをデクリメントするため、16ビットアドレスとしては使用しにくい。逆にこれを利用することにより残り回数を周辺デバイスなどが知ることができる。ただし、出力の場合は処理の順番はアドレス出力よりもBレジスタのデクリメントが先のため、アドレスの上位8ビットを利用する場合は1小さい値が出力されることに留意する必要がある。なお、入力の場合はアドレス出力が先である。
※この「I/Oポート」の解説は、「Z80」の解説の一部です。
「I/Oポート」を含む「Z80」の記事については、「Z80」の概要を参照ください。
- I/Oポートのページへのリンク