16550 UART

엑사 16550

16550 UART(범용 비동기 송수신기)는 직렬 통신 인터페이스 구현을 위해 설계된 집적 회로이다. 수정된 -A 버전은 1987년 내셔널 세미컨덕터에 의해 출시되었다. 이는 IBM PC 호환 개인용 컴퓨터의 직렬 포트를 구현하는 데 자주 사용되며, 모뎀, 직렬 마우스, 프린터 및 유사한 주변 장치를 위한 RS-232 인터페이스에 연결되는 경우가 많다. 1987년 출시된 IBM PS/2 라인에 사용된 최초의 직렬 칩이었다.

이 부품은 원래 내셔널 세미컨덕터에서 만들었다. 원본 내셔널 세미컨덕터 부품과 다양한 수준의 호환성을 가진 유사한 번호의 장치들이 다른 제조업체에서 만들어진다. 16550과 레지스터 호환되는 UART 기능은 일반적으로 IBM PC 호환 컴퓨터용 다기능 I/O 카드의 기능이며 다른 호환 컴퓨터의 마더보드에 통합될 수 있다.

8250 UART의 공장 설치 부품 교체는 고속 모뎀이 출시되었을 때 IBM PC, XT 및 호환 컴퓨터 소유자에게 흔한 업그레이드였다. 9600 보 (통신 단위) 이상에서는 컴퓨터의 직렬 포트가 문자 손실 없이 지속적인 데이터 흐름을 처리할 수 없다는 것을 소유자들이 발견했다. 8250(1바이트 수신 데이터 버퍼만 가짐)을 16550으로 교체하고, 가끔 시스템 소프트웨어를 패치하거나 설정하여 새 칩의 FIFO 기능을 인식하게 함으로써 고속 연결의 신뢰성과 안정성을 향상시켰다.

기능

16550의 주요 기능은 다음과 같다.

16550의 컴퓨터 하드웨어 및 소프트웨어 인터페이스는 모두 이전 8250 UART 및 16450 UART와 하위 호환된다. 내셔널 세미컨덕터를 인수한 텍사스 인스트루먼트의 현재 버전(1995년부터)은 16550D라고 불린다.

16550A와 그 이후 버전은 16450과 핀 호환되지만, MS-DOS 6.x, Windows 9x, Windows Me 및 Windows 2000에 포함된 마이크로소프트 진단 프로그램(MSD)은 종종 16450 칩을 8250 칩으로 보고한다.

FIFO 버퍼

내셔널 세미컨덕터 NS16550AFN

이전 8250 UART 및 16450 UART의 한 가지 단점은 수신된 바이트마다 인터럽트가 생성되었다는 점이다. 이는 전송 속도가 증가함에 따라 높은 인터럽트 발생률을 초래했다. 더욱이, 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으로 지칭했다.

다른 출처에 따르면, FIFO 문제는 16550AF 모델에서만 수정되었으며, A 모델은 여전히 버그가 있었다. (이 출처에 따르면 C 및 CF 모델도 괜찮다.) 16550AFN 모델은 DMA 전송을 추가했다.

같이 보기

각주

  1. ↑ Michael, Martin (1987). 〈A Comparison of the INS8250, NS16450 and NS16550A Series of UARTs〉. 《Microcommunication Elements Databook》. AN-493. Santa Clara, CA, USA: National Semiconductor. 4쪽. 2020년 2월 7일에 확인함. The primary difference between these two parts is in the operation of the FIFOs. The NS16550 will sometimes transfer extra characters when the CPU reads the RX FIFO. Due to the asynchronous nature of this failure there is no work-around and the NS16550 should NOT be used in the FIFO mode. The NS16550A has no problems operating in the FIFO mode and should be used on all new designs.
  2. 1 2 3 《Upgrading and Repairing PCs》. Que Publishing. 2003. 965쪽. ISBN 9780789729743. 2016년 4월 16일에 확인함.
  3. ↑ Van Gilluwe, Frank (1997). 《Undocumented PC》 2판. Addison Wesley. ISBN 0-20147950-8.
  4. ↑ Paul, Matthias R. (2002년 4월 6일). “Re: [fd-dev] ANNOUNCE: CuteMouse 2.0 alpha 1”. 《freedos-dev》. 2020년 2월 7일에 원본 문서에서 보존된 문서. 2020년 2월 7일에 확인함. (NB. Has various information on 8250 chip bugs.)
  5. ↑ “What are UART and How Do They Affect Performance?”. 2020년 2월 7일에 원본 문서에서 보존된 문서. 2020년 2월 7일에 확인함.
  6. ↑ Nickalls, Richard W. D.; Ramasubramanian, R. (1995). 《Interfacing the IBM-PC to Medical Equipment: The Art of Serial Communication》. Cambridge University Press. 25–26쪽. ISBN 978-0-521-46280-8.

더 읽어보기

외부 링크