
16550 UART (ユニバーサル非同期送受信機) は、シリアル通信のインターフェースを実装するために設計された集積回路です。修正された -A バージョンは、1987 年にNational Semiconductorによってリリースされました。[1] IBM PC 互換パーソナル コンピュータのシリアル ポートを実装するためによく使用され、モデム、シリアルマウス、プリンター、および同様の周辺機器用のRS-232インターフェースに接続されることがよくあります。これは、1987 年に導入されたIBM PS/2ラインで使用された最初のシリアル チップでした。 [2] [3] [4]
この部品は元々 National Semiconductor 社によって製造されました。他のメーカーも、元の National Semiconductor 社部品との互換性のレベルが異なる同様の番号のデバイスを製造しています。16550 とレジスタ互換の UART 機能は、通常、IBM PC 互換コンピュータの多機能 I/O カードの機能であり、他の互換コンピュータのマザーボードに統合されている場合もあります。
高速モデムが利用可能になったとき、工場出荷時にインストールされた8250 UARTの交換は、IBM PC、XT、および互換コンピュータの所有者にとって一般的なアップグレードでした。9600 ボーを超えると、コンピュータのシリアル ポートは文字を失うことなく連続的なデータ フローを処理できないことが所有者によって発見されました。8250 (受信データ バッファが 1 バイトのみ) を 16550 に交換し、新しいチップのFIFO機能を認識できるようにシステム ソフトウェアをパッチまたは設定することで、高速接続の信頼性と安定性が向上しました。
特徴
16550 の主な機能は次のとおりです。
- シフトレジスタを使用して、データをシリアルからパラレル、パラレルからシリアルに変換する機能。
- 送受信データ レートを制御するオンチップ ビット レート (ボーレート) ジェネレーター。
- ソフトウェアで制御可能な外部モデムの制御用のハンドシェイク ライン。
- ホストマイクロプロセッサへの割り込み機能。
- 受信データと送信データの両方に対応するオンチップ FIFOバッファ。これにより、ホスト システムは、データを失うことなく、UART によって生成された割り込みに応答する時間が長くなります。
16550のコンピュータハードウェアとソフトウェアインターフェースは、以前の8250 UARTおよび16450 UARTと下位互換性があります。ナショナルセミコンダクターを買収したテキサスインスツルメンツによる現在のバージョン(1995年以降)は16550Dと呼ばれています。[2]
16550A以降は16450とピン互換がありますが、 MS-DOS 6.x、Windows 9x、Windows Me、Windows 2000に付属するMicrosoft診断プログラム(MSD )では、16450チップが8250チップとして報告されることが多いです。 [2]
FIFOバッファ

初期の 8250 UART および 16450 UART の欠点の 1 つは、受信バイトごとに割り込みが生成されることでした。これにより、転送速度が増加するにつれて、割り込みの頻度が高まりました。さらに重大なのは、1 バイトのバッファしかないため、割り込みサービスの遅延が発生すると、受信バイトが上書きされるというリスクが実際にあることです。これらの欠点を克服するために、16550 シリーズ UART には、1、4、8、または 14 バイトのプログラム可能な割り込みトリガーを備えた 16 バイトの FIFO バッファが組み込まれました。
16550 には送信 FIFO も組み込まれていますが、割り込みサービスの遅延により、実際のデータ損失ではなく、最適ではない送信速度しか得られないため、この機能はそれほど重要ではありません。
16550A(F) バージョンは、9600 ボーのデータ転送速度を持つモデムを使用するために必須でした。14.4 kbit/s ( V.32bis以上) のユニットではドロップアウトが発生し、V.42で圧縮が追加されたため、データ速度が継続的に増加するにつれて、割り込みごとにより多くのデータを取得することが重要になりました。
バッファの問題
オリジナルの16550には、このFIFOが使用できないというバグがありました。ナショナルセミコンダクターは後にこの問題を修正した16550Aをリリースしました。しかし、すべてのメーカーがこの命名法を採用したわけではなく、固定チップを16550と呼び続けました。[5]
別の情報源によると、FIFOの問題は16550AFモデルでのみ修正され、Aモデルには依然としてバグが残っているとのことです。(この情報源によると、CモデルとCFモデルも問題ありません。) 16550AFNモデルではDMA転送が追加されました。[6]
参照
- ユニバーサル非同期送受信機(UART)
参考文献
- ^ Michael, Martin (1987). 「INS8250、NS16450、NS16550AシリーズのUARTの比較」。マイクロコミュニケーション要素データブック。AN-493。サンタクララ、カリフォルニア州、米国:ナショナルセミコンダクター。pp. 4。2020-02-07に取得。
これら2つの部分の主な違いは、FIFOの動作にあります。NS16550は、CPUがRX FIFOを読み取るときに余分な文字を転送することがあります。この障害は非同期であるため、回避策はなく、NS16550をFIFOモードで使用しないでください。NS16550AはFIFOモードで問題なく動作するため、すべての新しい設計で使用する必要があります。
- ^ abc PCのアップグレードと修理。Que Publishing。2003年。965ページ。ISBN 9780789729743. 2016年4月16日閲覧。
- ^ Van Gilluwe, Frank (1997). Undocumented PC (第2版). Addison Wesley . ISBN 0-20147950-8。
- ^ Paul, Matthias R. (2002-04-06). 「Re: [fd-dev] ANNOUNCE: CuteMouse 2.0 alpha 1」. freedos-dev . 2020-02-07 にオリジナルからアーカイブ。2020-02-07に取得。(注: 8250 チップのバグに関するさまざまな情報があります。)
- ^ 「UART とは何か、そしてパフォーマンスにどのような影響を与えるのか?」。2020 年 2 月 7 日のオリジナルからアーカイブ。2020 年 2 月 7 日に取得。
- ^ Nickalls, Richard WD; Ramasubramanian, R. (1995). IBM-PC と医療機器のインターフェイス: シリアル通信の技術. Cambridge University Press . pp. 25–26. ISBN 978-0-521-46280-8。
さらに読む
- 「PC16550D - FIFO を備えたユニバーサル非同期受信機/送信機」(PDF)。リビジョン C。Texas Instruments。2015年 5 月 [1995 年 6 月]。SNLS378C。2018 年 8 月 26 日にオリジナル(PDF)からアーカイブされました。
- Blies, Lammert. 「シリアル UART 情報」。2020 年 2 月 7 日にオリジナルからアーカイブ。2018年 9 月 23 日に取得。
外部リンク
- シリアルプログラミング/8250 UARTプログラミング
