シリアルチップ(8250,16650A)制御テクニック
★ラインステータスレジスタ★
ラインステータスレジスタの概要
I/Oアドレス:COM1 3fdh, COM2 2fdh, COM3 3edh, COM4 2edh
方向:入力
入力:RS-232Cの状況
ラインステータスレジスタ
説明
FIFOの状況や,各エラーの状況を読み出すことができます. 8ビット(1バイト)で状態が表されています. 以下にラインステータスレジスタの各ビットとその意味を示します.
7
6
5
4
3
2
1
0
*1
*2
*3
*4
*5
*6
*7
*8
ラインステータスレジスタの各ビット
(*1)FIFOバッファ内のデータの状況
0:通常
1:パリティエラー,フレーミングエラー,オーバーランエラーがあった.
(*2)送信FIFOバッファ,シフトレジスタの状況
0:送信FIFOバッファ,シフトレジスタにはデータがある.
1:送信FIFOバッファおよび,シフトレジスタは空.
(*3)送信FIFOバッファの状況
0:送信FIFOバッファにはデータがある.
1:送信FIFOバッファは空.
(*4)break信号
0:通常
1:break信号受信
(*5)フレーミングエラー
0:通常
1:フレーミングエラー発生
(*6)パリティエラー
0:通常
1:パリティエラー発生
(*7)オーバーランエラー
0:通常
1:オーバーランエラー発生
(*8)受信データレディ
0:受信データノットレディ
1:受信データレディ
なお,各エラーの意味に関しては,以下を御覧下さい.
エラー
意味
パリティエラー
付加したパリティビットによりエラーが検出された
オーバーランエラー
CPUがデータを読み出していないうちに,次のデータが到着してしまった
フレーミングエラー
ストップビットが検出されなかった
エラーとその意味
注意
得になし.
例
以下にCOM1のラインステータスを読み込む部分のプログラム例を示します.
mov dx,3fdh in al,dx ;alレジスタにステータスが入る
junichi@astec.co.jp