범용 비동기 수신기-송신기

Universal asynchronous receiver-transmitter
UART 블록 다이어그램

범용 비동기 수신기-송신기(UART/jujuːɑrt/)는 데이터 포맷 및 전송 속도를 설정할 수 있는 비동기 시리얼 통신용 컴퓨터 하드웨어 장치입니다.데이터 비트를 최하위 비트에서 최상위 비트로 하나씩 전송하여 시작 비트와 정지 비트로 프레임화하여 정확한 타이밍이 통신 채널에 의해 처리되도록 합니다.전기 신호 레벨은 UART 외부의 드라이버 회로에 의해 처리됩니다.일반적인 두 가지 신호 레벨은 12V 시스템인 RS-232와 5V 시스템인 RS-485입니다.초기의 텔레타이프라이터는 전류 루프를 사용했다.

그것은 오퍼레이터 콘솔용 텔레타이프라이터를 연결하는 데 사용된 최초의 컴퓨터 통신 장치 중 하나였다.그것은 또한 인터넷을 위한 초기 하드웨어 시스템이었다.

UART는 보통 컴퓨터 또는 주변기기의 시리얼 포트를 통한 시리얼 통신에 사용되는 개별(또는 IC의 일부) 집적회로입니다.1개 또는 복수의 UART 주변기기는 일반적으로 마이크로컨트롤러 칩에 내장되어 있습니다.전문 UART는 자동차, 스마트 카드 및 SIM에 사용됩니다.

관련 장치인 범용 동기식비동기식 수신기 송신기(USART)도 동기식 동작을 지원한다.

시리얼 데이터 송수신

Universal Asynchronous Receiver-Transmitter(UART; 유니버설비동기수신기)는 바이트 단위의 데이터를 취득하여 개별 비트를 [1]순차적으로 전송합니다.수신처에서 두 번째 UART가 비트를 완전한 바이트로 재구성합니다.각 UART에는 직렬 형식과 병렬 형식 간의 기본 변환 방법인 시프트 레지스터가 포함되어 있습니다.단일 와이어 또는 다른 매체를 통한 디지털 정보(비트)의 직렬 전송은 여러 와이어를 통한 병렬 전송보다 비용이 저렴합니다.

UART는 일반적으로 다른 장비 항목 간에 사용되는 외부 신호를 직접 생성하거나 수신하지 않습니다.UART의 로직레벨 신호를 외부신호레벨로 변환하기 위해 별도의 인터페이스 디바이스가 사용됩니다.외부신호레벨은 표준화된 전압레벨, 전류레벨 또는 기타 신호일 수 있습니다.

통신은 3가지 모드가 있습니다.

  • simplex(한 방향으로만, 수신 디바이스가 송신 디바이스에 정보를 되돌리는 프로비저닝은 없습니다)
  • 전이중(양쪽 디바이스가 동시에 송수신)
  • 반이중(송수신 교대로)

data 프레이밍

UART 프레임, 비트 단위의 필드 길이
1 5-9 0-1 1-2
시작 비트 데이터 프레임 패리티 비트 정지 비트

UART 를 동작시키려면 , 송신측과 수신측의 양쪽 모두에서 다음의 설정이 같을 필요가 있습니다.

패리티 없음 및 원스톱 비트(8N1)의 가장 일반적인 설정에서 프로토콜 효율은 80%입니다.이에 비해 이더넷은 최대 97%입니다.

UART 프레임의 예.이 그림에서는 11비트 UART 프레임에 대해 시작 비트로 구성된 1바이트가 전송되고 이어서 8개의 데이터 비트(D0-7)와 2개의 스톱 비트가 전송됩니다.데이터 및 포맷비트의 수, 패리티 비트의 유무, 패리티 형식(짝수 또는 홀수) 및 전송 속도는 통신 당사자가 사전에 합의해야 합니다."정지 비트"는 실제로 "정지 기간"이며, 송신기의 정지 기간은 임의로 길 수 있습니다.지정된 양보다 짧게는 할 수 없습니다.보통 1 ~2비트 회입니다.수신기는 송신기보다 짧은 정지기간을 필요로 합니다.각 데이터 프레임의 끝에서 수신기는 다음 시작 비트를 대기하기 위해 잠시 멈춥니다.송신기와 수신기의 동기화를 유지하는 것은, 이 차이입니다.BCLK = 기본 클럭

UART 프레임은 5개의 요소로 구성됩니다.

  • 아이돌 상태(로직 하이(1))
  • 시작 비트(로직 로우(0))
  • 데이터 비트
  • 패리티 비트
  • 정지(로직 하이(1))

idle, no data 상태는 고전압 또는 전원 공급입니다.이는 회선과 송신기가 손상되지 않았음을 보여주기 위해 회선을 높게 유지하는 전신술의 역사적 유산입니다.

각 문자는 로직 로우 스타트 비트, 데이터 비트, 패리티 비트 및 하나 이상의 스톱 비트로 프레임화된다.대부분의 애플리케이션에서는 최하위 데이터 비트(이 다이어그램의 왼쪽에 있는 비트)가 먼저 전송되지만, 예외(예: IBM 2741 인쇄 터미널)가 있습니다.

시작 비트

시작 비트는 수신자에게 새로운 문자가 도착하고 있음을 알립니다.

데이터 비트

사용되는 코드 세트에 따라 다음 5~9비트가 문자를 나타냅니다.

패리티 비트

패리티 비트가 사용되는 경우 모든 데이터 비트 뒤에 배치됩니다.

이는 숫자의 홀수 또는 짝수를 나타냅니다.



스톱 비트

다음 1~2비트는 항상 마크(로직 하이, 즉 '1') 상태이며 정지 비트라고 불립니다.문자가 완성되었음을 수신자에게 알립니다.시작 비트는 로직 로우(0)이고 정지 비트는 로직 하이(1)이기 때문에 문자 간에는 항상 최소 두 개의 보장된 신호 변경이 있습니다.

회선이 문자 시간보다 오랫동안 로직 로우 상태로 유지되면 UART에 의해 검출될 수 있는 브레이크 상태입니다.

리시버

UART 하드웨어의 모든 동작은 데이터 레이트의 배수로 실행되는 내부 클럭 신호에 의해 제어됩니다(일반적으로 비트환율의 8배 또는 16배).수신기는 각 클럭 펄스에서 수신 신호의 상태를 테스트하여 시작 비트의 시작을 찾습니다.겉보기 시작 비트가 비트 시간의 절반 이상 지속되면 유효하며 새로운 문자의 시작을 알립니다.그렇지 않으면 스플리어스 펄스로 간주되어 무시됩니다.추가 비트 시간을 기다린 후 회선 상태가 다시 샘플링되고 그 결과 레벨이 시프트 레지스터에 클럭된다.문자 길이에 필요한 비트 주기 수(일반적으로 5~8비트)가 경과한 후, 시프트 레지스터의 내용을 수신 시스템에(병렬 방식으로) 사용할 수 있도록 한다.UART는 새로운 데이터를 사용할 수 있음을 나타내는 플래그를 설정하고 호스트 프로세서가 수신한 데이터를 전송하도록 요구하는 프로세서 인터럽트를 생성할 수도 있습니다.

통신 UART에는 통신 신호 외에 공유 타이밍 시스템이 없습니다.일반적으로 UART는 스플리어스 펄스로 간주되지 않는 데이터 라인의 변경마다 내부 클럭을 재동기화합니다.이 방법으로 타이밍 정보를 취득하면, 송신기가 필요한 속도와는 약간 다른 속도로 송신하고 있을 때에, 확실히 수신할 수 있습니다.단순화된 UART는 이를 수행하지 않습니다.대신 시작 비트의 하강 에지에서만 재동기화된 다음 예상되는 각 데이터 비트의 중심을 읽습니다.이 시스템은 브로드캐스트 데이터 레이트가 정지 비트를 확실하게 [2][3]샘플링할 수 있을 정도로 정확하면 작동합니다.

UART는 최신 문자를 저장하고 다음 문자를 수신하는 표준 기능입니다.이 "이중 버퍼링"은 수신 컴퓨터에 수신 문자를 가져오기 위한 전체 문자 전송 시간을 제공합니다.많은 UART에서는 리시버 시프트 레지스터와 호스트시스템 인터페이스 사이에 작은 선입선출(FIFO) 버퍼 메모리가 있습니다.이것에 의해, 호스트 프로세서는 UART 로부터의 인터럽트를 처리할 수 있게 되어, 수신 데이터의 고속 손실을 막을 수 있습니다.

송신기

회선 상태로부터 타이밍을 결정할 필요도 없고, 일정한 타이밍 간격에 얽매이지도 않기 때문에, 전송 조작이 간단하다.송신 시스템이 시프트 레지스터에 문자를 저장하는 즉시(이전 문자가 완료된 후), UART는 시작 비트를 생성하고 필요한 데이터 비트 수를 라인으로 전환하여 패리티 비트(사용되는 경우)를 생성하고 전송하며 정지 비트를 전송합니다.전이중 동작에서는, 문자를 동시에 송수신 할 필요가 있기 때문에, UART 에서는 송수신 문자에 대해서 2개의 다른 시프트 레지스터를 사용합니다.고성능 UART에는 송신 FIFO(선입선출) 버퍼가 포함되어 있어 CPU 또는 DMA 컨트롤러가 한 번에1개의 문자를 시프트 레지스터에 저장할 필요 없이 버스트 내의 여러 문자를 FIFO에 저장할 수 있습니다.1 문자 또는 복수의 문자의 전송은 CPU 속도에 비해 시간이 오래 걸릴 수 있으므로 UART는 비지 상태를 나타내는 플래그를 유지하여 호스트 시스템이 송신 버퍼 또는 시프트 레지스터에 적어도1개의 문자가 있는지 알 수 있도록 합니다.또, 「ready for next characters(s)」는 인터럽트로 통지될 수도 있습니다.

어플

UART 의 송수신은, 올바르게 동작하기 위해서, 같은 비트 속도, 문자 길이, 패리티, 및 정지 비트로 설정할 필요가 있습니다.수신 UART 는, 몇개의 불일치 설정을 검출해, 호스트 시스템에 「프레밍 에러」플래그 비트를 설정할 수 있습니다.예외의 경우, 수신 UART 는, 절단된 문자의 불규칙한 스트림을 생성해, 호스트 시스템으로 전송합니다.

모뎀에 접속되어 있는 퍼스널컴퓨터에서 사용되는 일반적인 시리얼 포트는 패리티 없이8개의 데이터 비트와 1개의 스톱 비트를 사용합니다.이 설정에서는 초당 ASCII 문자 수는 비트환율을 10으로 나눈 값과 같습니다.

일부 매우 저렴한 가정용 컴퓨터 또는 임베디드 시스템은 UART를 사용하지 않고 CPU를 사용하여 입력 포트 상태를 샘플링하거나 데이터 전송을 위해 출력 포트를 직접 조작합니다.(CPU 타이밍이 중요하기 때문에) CPU를 많이 사용하지만 UART 칩은 생략할 수 있어 비용과 공간을 절약할 수 있습니다.이 기술은 비트 뱅킹이라고 불립니다.

역사

일부 초기 전신 방식은 가변 길이 펄스(모스 부호에서와 같이)와 회전식 클럭워크 메커니즘을 사용하여 알파벳 문자를 전송했습니다.최초의 시리얼 통신 장치(고정 길이 펄스 포함)는 회전식 기계 스위치(정류자)였습니다.5, 6, 7, 또는 8 데이터 비트를 사용하는 다양한 문자 코드는 텔레프린터에서 일반적이 되었고 나중에는 컴퓨터 주변기기로도 사용되었다.그 텔레타이프라이터는 작은 컴퓨터를 위한 훌륭한 범용 I/O 장치가 되었다.

DECGordon Bell은 PDP-1에서 [4][5]시작하는 PDP 시리즈 컴퓨터를 위해 라인 유닛이라고 불리는 회로 기판 전체를 점유하는 최초의 UART를 설계했습니다.Bell에 따르면 UART의 주요 혁신은 신호를 디지털 도메인으로 변환하기 위한 샘플링의 사용으로, 수동으로 조정[6]전위차계를 가진 아날로그 타이밍 장치를 사용한 이전의 회로보다 더 신뢰할 수 있는 타이밍을 가능하게 했다고 합니다.배선, 백플레인 및 기타 컴포넌트의 비용을 절감하기 위해 이들 컴퓨터는 하드웨어 와이어가 아닌 XONXOFF 문자를 사용하여 흐름 제어를 선도했습니다.

DEC는 라인유닛 설계를 자체 사용을 위해 초기 싱글칩 [4]UART에 집약했습니다.Western Digital은 1971년경 이를 최초로 널리 이용 가능한 단일 칩 UART인 WD1402A로 개발했습니다.이것은 중규모 집적회로의 초기 예시입니다.또 다른 인기 칩은 Signetics 2650 패밀리의 SCN2651이었다.

1980년대 초 UART의 예로는 오리지널 IBM PC의 Asynchronous Communications Adapter [7]카드에 사용된 National Semiconductor 8250이 있습니다.1990년대에 새로운 UART는 온칩 버퍼를 사용하여 개발되었습니다.이것에 의해, 데이터 손실이나 컴퓨터의 빈번한 주의 없이, 보다 고속의 전송이 가능하게 되었습니다.예를 들어 널리 사용되는 National Semiconductor 16550은 16바이트의 FIFO를 가지고 있으며 16C550, 16C650, 16C750 및 16C850 등 많은 변종을 생산했습니다.

제조업체에 따라 UART 기능을 수행하는 장치를 식별하는 데 다른 용어가 사용됩니다.인텔에서는, 8251 디바이스를 「프로그래머블 통신 인터페이스」라고 부르고 있습니다.MOS 테크놀로지 6551은 ACIA(Asynchronous Communications Interface Adapter)라는 이름으로 알려져 있습니다.SCI(Serial Communications Interface)라는 용어는 1975년경 모토로라에서 시작-정지 비동기 시리얼 인터페이스 장치를 지칭하기 위해 처음 사용되었으며, 다른 사람들은 이를 UART라고 불렀다.Zilog는 다수의 시리얼 통신 컨트롤러 또는 SCC를 제조했습니다.

2000년대부터 대부분의 IBM PC 호환 컴퓨터는 외부 RS-232 COM 포트를 제거하고 데이터를 더 빨리 전송할 수 있는 USB 포트를 사용했습니다.RS-232 시리얼 포트가 아직 필요한 사용자에게는 외부 USB-UART 브릿지가 일반적으로 사용됩니다.하드웨어 케이블과 칩을 결합하여 USB와 UART를 변환합니다.사이프레스 세미컨덕터와 FTDI는 이들 [8]칩의 중요한 상업적 공급업체 중 두 곳이다.대부분의 컴퓨터 외부에서는 RS-232 포트를 사용할 수 없지만, 많은 내부 프로세서마이크로프로세서는 하드웨어 설계자가 RS-232 또는 RS-485를 사용하여 다른 칩 또는 디바이스와 통신할 수 있도록 칩에 UART를 내장하고 있습니다.

구조.

UART에는 보통 다음 컴포넌트가 포함되어 있습니다.

  • 클럭 발생기, 보통 비트 주기의 중간에 샘플링할 수 있도록 비트 속도의 배수
  • 입력 및 출력 시프트 레지스터
  • 송신/송신 제어
  • 읽기/쓰기 제어 논리
  • autobaud 측정(옵션)
  • 송신/수신 버퍼(옵션)
  • 시스템 데이터 버스버퍼(옵션)
  • 선입선출(FIFO) 버퍼 메모리(옵션)
  • 서드파티제의 DMA 컨트롤러에 필요한 신호(옵션)
  • 통합 버스 마스터링 DMA 컨트롤러(옵션)

특수 트랜시버 조건

오버런 오류

오버런 에러는, 수신측이 다음의 문자가 도착하기 전에 수신한 문자를 처리할 수 없는 경우에 발생합니다.디바이스마다 수신한 문자를 저장할 수 있는 버퍼 영역이 다릅니다.입력 버퍼에서 문자를 삭제하려면 CPU 또는 DMA 컨트롤러가 UART를 서비스해야 합니다.CPU 또는 DMA 컨트롤러가 UART를 신속하게 처리하지 못하고 버퍼가 가득 차면 오버런 오류가 발생하여 착신 문자가 손실됩니다.

언더런 오류

UART 송신기가 문자 송신을 완료하고 송신 버퍼가 비어 있는 경우 언더런 에러가 발생합니다.비동기 모드에서는 추가 정지 비트가 추가될 수 있기 때문에 이는 에러가 아니라 송신할 데이터가 남아 있지 않음을 나타내는 것으로 취급됩니다.이 오류 표시는 USART에서 흔히 볼 수 있습니다. 동기 시스템에서는 언더런이 더 심각하기 때문입니다.

프레이밍 오류

UART는 예상되는 "정지" 비트 시간에 "정지" 비트가 표시되지 않으면 프레임 오류를 검출합니다."시작" 비트는 착신 문자의 시작을 식별하기 위해 사용되므로 그 타이밍은 나머지 비트에 대한 참조가 됩니다.UART가 설정된 데이터 및 패리티 비트 수에 따라 "정지" 비트가 예상될 때 데이터 라인이 예상된 상태(높음)가 아닌 경우 UART는 프레임 오류를 신호로 보냅니다.회선상의 「브레이크」상태도 프레임에러로서 시그널링 됩니다.

패리티 오류

패리티 오류는 1비트 수의 패리티가 패리티 비트로 지정된 패리티와 일치하지 않을 때 발생합니다.패리티 체크는, 송신 에러의 검출에 자주 사용됩니다.패리티 비트 사용은 옵션이기 때문에 이 오류는 패리티 검사가 활성화된 경우에만 발생합니다.

브레이크 조건

수신측 입력이 일정 시간 이상(일반적으로 문자 시간 이상) 동안 "공간"(논리 낮음, 즉 "0") 수준에 있을 때 중단 조건이 발생합니다.이것은 반드시 에러는 아니지만, 프레이밍 에러가 있는 모든 제로 비트의 문자로 수신자에게 표시됩니다.

브레이크라는 용어는 텔레타이프 라이터에 사용되는 기존의 신호였던 현재의 루프 신호에서 유래했습니다.전류 루프 라인의 "스페이스" 상태는 전류가 흐르지 않는 것으로 나타나며, 전류가 흐르지 않는 매우 긴 시간은 대부분 라인 내 단절이나 기타 장애로 인해 발생합니다.일부 장비는 의도적으로 "공간" 레벨을 주의 신호로 문자보다 길게 전송합니다.시그널링 레이트가 일치하지 않는 경우는, 의미 있는 문자를 송신할 수 없습니다만, 긴 「브레이크」신호는, 불일치하는 리시버의 주의를 끌기 위한 편리한 방법이 됩니다(예를 들면, 리셋).컴퓨터 시스템은, 복수의 시그널링 레이트로 통화중 액세스를 서포트하기 위해서, 긴 「브레이크」레벨을 시그널링 레이트의 변경 요구로서 사용할 수 있습니다.DMX512 프로토콜은 브레이크 조건을 사용하여 새 패킷의 시작을 알립니다.

UART 모델

듀얼 UART(DUART)는 2개의 UART를 하나의 칩으로 결합합니다.마찬가지로 쿼드러플 UART 또는 QUART는 NXP 28L194와 같이 4개의 UART를 1개의 패키지에 결합합니다.옥탈 UART 또는 OCTART는 8개의 UART를 Exar XR16L788이나 NXP SCC2698 등의 1개의 패키지에 결합합니다.

모델 묘사
WD1402A 첫 번째 싱글칩 UART 일반 판매입니다.1971년경에 도입되었습니다.호환되는 칩에는 Fairchild TR1402A와 General Instruments AY-5-1013이 [9]포함되어 있습니다.
Exar XR21V1410
인터실 6402
CDP 1854(RCA, 현재는 Intersil)
Zilog Z8440 유니버설 동기비동기 리시버 송신기.2000 kbit/s비동기, Bisync, SDLC, HDLC, X.25. CRC. 4바이트 RX 버퍼. 2바이트 TX 버퍼.서드파티제의 DMA 컨트롤러가 DMA [10]전송을 실행하기 위해 필요한 신호를 제공합니다.
Z8530/Z85C30 이 범용 동기식 및 비동기식 리시버 송신기에는 3바이트의 수신 버퍼와 1바이트의 송신 버퍼가 있습니다.HDLC 및 SDLC의 처리를 고속화하는 하드웨어를 갖추고 있습니다.CMOS 버전(Z85C30)은 서드파티제의 DMA 컨트롤러가 DMA 전송을 실행할 수 있도록 신호를 제공합니다.비동기,[11] 바이트레벨 동기 및 비트레벨 동기 통신을 실행할 수 있습니다.
8250 1바이트 버퍼에서는 사용되지 않습니다.이러한 UART의 표준 시리얼 포토의 최대 속도는, operating system의 인터럽트 레이텐시가 1 밀리초인 경우, 9600 비트/초입니다.8250 UART는 IBM PC 5150 및 IBM PC/XT에서 사용되었으며 16450 UART는 IBM PC/AT 시리즈 컴퓨터에서 사용되었습니다.
8251
모토로라 6850
6551
록웰 65C52
16450
82510 이 UART에서는 최대 288kbit/s의 비동기 조작과 2개의 독립된4 바이트 FIFO를 사용할 수 있습니다.적어도 1993년부터 1996년까지 인텔에 의해 생산되었으며 Innovatic Semiconductor는 IA82510용 2011년 데이터 시트를 보유하고 있습니다.
16550 이 UART의 FIFO는 파손되어 있기 때문에 16450 UART보다 더 빠르게 안전하게 동작할 수 없습니다.16550A 이후 버전에서 이 오류를 해결합니다.
16550A 이 UART에는 16바이트의 FIFO 버퍼가 있습니다.수신 인터럽트 트리거 레벨은 1, 4, 8, 또는 14 문자로 설정할 수 있습니다.operating system의 인터럽트 레이텐시가 1밀리초인 경우의 최대 표준 시리얼 포트 속도는 128kbit/s입니다.인터럽트 지연 시간이 짧은 시스템 또는 DMA 컨트롤러가 있는 시스템은 높은 보레이트를 처리할 수 있습니다.이 칩은 이 UART가 도입하는DMA 모드가 [12]유효하게 되어 있는 경우, DMA 컨트롤러가 UART와의 사이에 DMA 전송을 실행할 수 있도록 하기 위해서 필요한 신호를 제공할 수 있습니다.텍사스 인스트루먼트에 매각된 내셔널 세미컨덕터가 도입했다.내셔널세미컨덕터는 UART가 최대 1.5Mbit/s까지 구동될 수 있다고 주장했다.
16C552
16650 이 UART는 Startech Semiconductor에 의해 도입되었습니다.Startech Semiconductor는 현재 Exar Corporation이 소유하고 있으며 Startech.com과 관련이 없습니다.초기 버전에서는 FIFO 버퍼가 파손되어 있기 때문에 16450 [13]UART보다 빠르게 안전하게 실행할 수 없습니다.파손되지 않은 이 UART 버전은 32글자의 FIFO 버퍼를 갖추고 있으며 운영체제의 인터럽트 지연이 1밀리초일 경우 표준 시리얼 포트 속도로 최대 230.4kbit/s까지 동작할 수 있습니다.Exar의 현재 UART 버전은 최대 1.5 Mbit/s까지 처리할 수 있다고 주장합니다.이 UART에서는 UART에 의해 RTS# 신호가 제어되는 Auto-RTS 및 Auto-CTS 기능이 도입되어 UART의 버퍼가 가득 차거나 UART의 버퍼가 사용자가 설정한 트리거 포인트로 넘어갔을 때 외부 디바이스로 전송을 정지하고 디바이스가 CTS# 신호0 을 하이로직으로 구동했을 때 디바이스로의 전송을 정지합니다.
16750 64 바이트 버퍼이 UART는 인터럽트 최대 지연 시간이 1밀리초일 경우 최대 표준 시리얼 포트 속도 460.8kbit/s를 처리할 수 있습니다.이 UART는 Texas Instruments에 의해 도입되었습니다.TI는 초기 모델은 최대 1Mbit/s, 이 시리즈의 이후 모델은 최대 3Mbit/s까지 실행할 수 있다고 주장한다.
16850 128바이트 버퍼이 UART는 최대 인터럽트 지연 시간이 1밀리초일 경우 최대 표준 시리얼 포트 속도 921.6kbit/s를 처리할 수 있습니다.이 UART는 Exar Corporation에 의해 도입되었습니다.Exar는 제조일에 따라 초기 버전은 최대 2Mbit/s, 이후 버전은 최대 2.25Mbit/s까지 실행할 수 있다고 주장한다.
16C850
16950 128바이트 버퍼이 UART는 최대 인터럽트 지연 시간이 1밀리초일 경우 최대 표준 시리얼 포트 속도 921.6kbit/s를 처리할 수 있습니다.이 UART는 다른 UART가 지원하는 5~8비트 문자에 더해 9비트 문자를 지원합니다.이것은 현재 PLX 테크놀로지가 소유하고 있는 옥스포드 세미컨덕터에 의해 도입되었습니다.Oxford/PLX는 이 UART가 최대 15 Mbit/s까지 실행될 수 있다고 주장합니다.Oxford/PLX의 PCI Express 모델은 PCIe DMA 컨트롤러를 마스터하는 퍼스트 파티제 버스에 통합되어 있습니다.이 DMA 컨트롤러는 16550용으로 정의된 UART의 DMA 모드 신호를 사용합니다.DMA 컨트롤러에서는 CPU가 각 트랜잭션을 설정하고 트랜잭션 시작 후 상태 레지스터를 폴링하여 트랜잭션이 완료되었는지 여부를 판단해야 합니다.각 DMA 트랜잭션은 메모리 버퍼와 UART 간에 1~128바이트를 전송할 수 있습니다.PCI Express의 변형에서는 프로그래밍된 I/O를 사용할 때 CPU가 8비트, 16비트 또는 32비트 전송으로 UART와 데이터를 전송할 수도 있습니다.
16C950
16954 16950/16C950 쿼드포트 버전128 바이트 버퍼이 UART는 최대 인터럽트 지연 시간이 1밀리초일 경우 최대 표준 시리얼 포트 속도 921.6kbit/s를 처리할 수 있습니다.이 UART는 다른 UART가 지원하는 5~8비트 문자에 더해 9비트 문자를 지원합니다.이것은 현재 PLX 테크놀로지가 소유하고 있는 옥스포드 세미컨덕터에 의해 도입되었습니다.Oxford/PLX는 이 UART가 최대 15 Mbit/s까지 실행될 수 있다고 주장합니다.Oxford/PLX의 PCI Express 모델은 PCIe DMA 컨트롤러를 마스터하는 퍼스트 파티제 버스에 통합되어 있습니다.이 DMA 컨트롤러는 16550용으로 정의된 UART의 DMA 모드 신호에 의해 제어됩니다.DMA 컨트롤러에서는 CPU가 각 트랜잭션을 설정하고 트랜잭션 시작 후 상태 레지스터를 폴링하여 트랜잭션이 완료되었는지 여부를 판단해야 합니다.각 DMA 트랜잭션은 메모리 버퍼와 UART 간에 1~128바이트를 전송할 수 있습니다.PCI Express의 변형에서는 프로그래밍된 I/O를 사용할 때 CPU가 8비트, 16비트 또는 32비트 전송으로 UART와 데이터를 전송할 수도 있습니다.
16C954
16C1550/16C1551 16바이트 FIFO 버퍼를 갖춘 UART.최대 1.5 Mbit/sST16C155X는 업계 표준 16550과 호환되지 않으며 Microsoft Windows의 표준 시리얼 포트 드라이버와 호환되지 않습니다.
16C2450 1바이트 FIFO 버퍼를 갖춘 듀얼 UART.
16C2550 16바이트 FIFO 버퍼를 갖춘 듀얼 UART.16C2450에 대응한 핀 투 핀 및 기능.INS8250 및 NS16C550과 호환되는 소프트웨어.
SCC2691 현재[3] NXP에 의해 생산되고 있는 2691은 프로그램 가능한 카운터/타이머를 포함한 단일 채널 UART입니다.2691 에는, 싱글 바이트의 송신기 홀딩 레지스터와 4 바이트의 수신 FIFO 가 있습니다.2692의 최대 표준 속도는 115.2 kbit/s입니다.

28L91은 2691의 상향 호환 버전으로, 8바이트 또는 16바이트의 송신기와 수신기의 FIFO를 선택할 수 있고, 확장 데이터 레이트에 대한 지원이 향상되었으며, 고속 버스 타이밍 특성을 갖추고 있어 고성능 마이크로프로세서에 사용하기에 더 적합합니다.

2691과 28L91은 모두 TIA-422TIA-485 모드로 동작할 수 있으며 비표준 데이터 레이트를 지원하도록 프로그래밍할 수도 있습니다.디바이스는 PDIP-40, PLCC-44 및 44핀 QFP 패키지로 생산되며, Motorola 및 Intel 버스에 쉽게 적응할 수 있습니다.65C0265C816 버스에도 성공적으로 적응했습니다.28L91은 3.3 또는 5V에서 작동합니다.

SCC28L91
SCC2692 현재 NXP에 의해 생산되고 있는 이들 디바이스는 듀얼 UART(DUART)로, 2개의 통신 채널, 관련 제어 레지스터 및 1개의 카운터/타이머로 구성됩니다.각 통신채널은 독립적으로 프로그램 가능하며 독립적인 송수신 데이터 레이트를 지원합니다.

2692에는 각 채널에 대해 싱글바이트 송신기 홀딩 레지스터와 4바이트 수신기의 FIFO가 있습니다.두 2692 채널의 최대 표준 속도는 115.2 kbit/s입니다.

26C92는 2692의 상향 호환 버전으로, 최대 표준 속도 230.4 kbit/s의 양쪽 채널에서 연속 양방향 비동기 전송(CBAT) 시 성능을 향상시키기 위해 8바이트의 트랜스미터 및 리시버 FIFO를 갖추고 있습니다.26C92 부품 번호의 문자 C는 제조 프로세스와는 관계가 없습니다.모든 NXP UART는 CMOS 디바이스입니다.

28L92는 26C92의 상향 호환 버전으로, 8바이트 또는 16바이트의 송신기와 수신기의 FIFO를 선택할 수 있고, 확장 데이터 레이트에 대한 지원이 향상되었으며, 고속 버스 타이밍 특성을 갖추고 있어 고성능 마이크로프로세서에 사용하기에 더 적합합니다.

2692, 26C92 및 28L92는 TIA-422 및 TIA-485 모드로 동작할 수 있으며 비표준 데이터 레이트를 지원하도록 프로그래밍할 수도 있습니다.디바이스는 PDIP-40, PLCC-44 및 44핀 QFP 패키지로 생산되며, Motorola 및 Intel 버스에 쉽게 적응할 수 있습니다.65C02 및 65C816 버스에도 성공적으로 적응했습니다.28L92는 3.3 또는 5V에서 작동합니다.

SC26C92
SC28L92
SCC28C94 현재 NXP에 의해 생산되고 있는 28C94 쿼드러플 UART(QUART)는 기능적으로는 공통 패키지에 탑재된SCC26C92 DUART와 유사하며, 채널 액티비티가 심한 기간 동안 효율적으로 처리되도록 조정된 인터럽트 시스템이 추가되었습니다.인터럽트 관리 기능을 지원하기 위한 몇 가지 추가 신호가 존재하며 보조 입출력 핀은 26C92와 다르게 배치됩니다.그렇지 않으면 28C94의 프로그래밍 모델은 26C92와 비슷하므로 모든 기능을 최대한 활용하기 위해 약간의 코드 변경만 필요합니다.28C94는 표준 최고 속도 230.4kbit/s를 지원하며 PLCC-52 패키지로 제공되며 Motorola 및 Intel 버스 모두에 쉽게 적응할 수 있습니다.65C816 버스에도 성공적으로 적용되었습니다.
SCC2698B 현재 NXP에서 생산되고 있는 2698 옥탈 UART(OCTART)는 기본적으로 4개의 SCC2692 DUART를 1개의 패키지로 제공합니다.사양은 SCC2692(SCC26C92가 아님)와 동일합니다.송신기 FIFO의 부족과 리시버 FIFO의 작은 사이즈로 인해 모든 채널이 동시에 쌍방향 통신에 관여하는 경우 2698은 인터럽트 "스톰"을 일으킬 수 있습니다.이 장치는 PDIP-64 및 PLCC-84 패키지로 생산되며, Motorola 및 Intel 버스에 쉽게 적응할 수 있습니다.2698은 65C02 및 65C816 버스에도 올바르게 적용되었습니다.
SCC28L198 현재 NXP에 의해 생산되고 있는 28L198 OCTART는 본질적으로 위에서 설명한SCC28C94 QUART의 업스케일 확장이며, 8개의 독립된 통신채널을 갖추고 있을 뿐만 아니라 채널 액티비티가 심한 기간 동안 효율적으로 처리할 수 있도록 조정된 인터럽트 시스템입니다.28L198은 표준 최고속도 460.8kbit/s를 지원하며 PLCC-84 및 LQFP-100 패키지로 제공되며 Motorola 및 Intel 버스에 쉽게 적응할 수 있습니다.28L198은 3.3 또는 5V에서 작동합니다.
Z85230 동기/비동기 모드, 2포트DMA 전송을 실행하는 데 필요한 서드파티 DMA 컨트롤러에 필요한 신호를 제공합니다.송신하는 버퍼는 4바이트, 채널당 수신하는 버퍼는 8바이트입니다.SDLC/HDLC 모드5 Mbit/s(동기 모드)
헤이스 ESP 1 KB 버퍼, 921.6 kbit/s, 8 [14]포트
Exar XR17V352, XR17V354 및 XR17V358 듀얼, 쿼드 및 옥탈 PCI Express UART (16550 호환 레지스터 세트, 256 바이트 TX 및 RX FIFO, 프로그래밍 가능한 TX 및 RX 트리거 레벨, TX/RX FIFO 레벨 카운터, 프랙셔널 보레이트 제너레이터, 자동 RTS/CTS 또는 하드웨어 흐름 제어)프로그래밍 가능한 턴어라운드 지연, 자동 주소 검출 기능이 있는 멀티 드롭, 적외선(IrDA 1.1) 데이터 인코더/디코더 제어.최대 25 Mbit/s로 지정됩니다.DataSheets는 2012년 이후입니다.
Exar XR17D152, XR17D154 및 XR17D158 듀얼, 쿼드 및 옥탈 PCI 버스 UART (16C550 호환 5G 레지스터 세트, 64 바이트 송수신 FIFO, 송수신 FIFO 레벨 카운터, 프로그래밍 가능한 TX 및 RX FIFO 트리거 레벨, 자동 RTS/CTS 또는 DTRDS)(IrDA 1.0) 데이터 인코더/디코더, 프리스케일러를 사용한 프로그래밍 가능한 데이터 레이트, 최대 6.25 Mbit/s 시리얼 데이터 레이트DataSheets는 2004년부터 2005년까지의 날짜입니다.
Exar XR17C152, XR17C154 및 XR17C158 듀얼, 쿼드 및 Octal 5V PCI 버스 UART (16C550 호환 레지스터, 64바이트 송수신 FIFO, 송수신 FIFO 레벨 카운터, 자동 RTS/CTS 또는 DTR/DSR 흐름 제어, 자동 xon/off 소프트웨어 포함)최대 6.25 Mbit/s 시리얼 데이터 레이트.DataSheets는 2004년부터 2005년까지의 날짜입니다.
Exar XR17V252, XR17V254 및 XR17V258 듀얼, 쿼드 및 Octal 66MHz PCI 버스 UART(전원 관리 지원), 16C550 호환 레지스터 세트, 레벨 카운터 및 프로그램 가능한 트리거 레벨의 64바이트 TX 및 RX FIFO, 프랙셔널 보드 레이트 제너레이터, 자동 RTS/CTS 또는 DTR/DSTE 흐름 제어 하드웨어에 의한 HYTR/RESTE선택 가능한 턴어라운드 지연을 수반하는 업플렉스 방향 제어 출력, 적외선(IrDA 1.0) 데이터 인코더/디코더, 프리스케일러를 사용한 프로그래밍 가능한 데이터 레이트.DataSheets는 2008년과 2010년 사이입니다.

모뎀의 UART

메인보드 슬롯에 접속하는 퍼스널컴퓨터용 모뎀은 카드에 UART 기능도 탑재해야 합니다.IBM 개인용 컴퓨터와 함께 제공된 원래 8250 UART 칩은 수신기와 송신기에 대해 각각 한 글자씩의 버퍼를 가지고 있었는데, 이는 통신 소프트웨어가 9600 비트/초를 초과하는 속도에서 특히 멀티태스킹 시스템에서 작동하거나 디스크 컨트롤러의 인터럽트를 처리하는 경우 성능이 떨어졌다는 것을 의미합니다.고속 모뎀은 원래 칩과 호환되지만 추가 FIFO 버퍼가 포함된 UART를 사용했기 때문에 소프트웨어가 수신 데이터에 응답할 수 있는 시간이 더 주어졌습니다.

높은 비트레이트에서의 퍼포먼스 요건을 보면 16바이트, 32바이트, 64바이트 또는 128바이트의 FIFO가 필요한 이유를 알 수 있습니다.Microsoft 의 DOS 시스템 사양에서는, 인터럽트를 1 밀리초 이상 무효로 하지 말아 주세요.일부 하드 디스크 드라이브 및 비디오 컨트롤러는 이 사양을 위반합니다.9600 bit/s는 약 밀리초마다 문자를 전송하기 때문에 DOS 시스템에서는 최대 인터럽트 비활성화 타이밍을 충족하는 이 환율로 1바이트의 FIFO로 충분합니다.이 값을 초과하면 이전 문자가 가져오기 전에 새 문자가 수신될 수 있으므로 이전 문자가 손실됩니다.이를 오버런 오류라고 하며 1개 이상의 문자가 손실됩니다.

16 바이트의 FIFO는 컴퓨터가 인터럽트를 처리하기 전에 최대 16 문자를 수신할 수 있습니다.이로 인해 인터럽트 데드 타임이 1밀리초일 경우 컴퓨터가 안정적으로 처리할 수 있는 최대 비트환율이 9600에서 153,000비트/초로 높아집니다.32바이트 FIFO는 최대 레이트를 300,000비트/초 이상으로 높입니다.FIFO의 두 번째 장점은 컴퓨터가 인터럽트 수를 약 8~12%만 처리하면 되기 때문에 화면을 업데이트하거나 다른 집안일을 할 때 CPU 시간을 늘릴 수 있다는 것입니다.따라서 컴퓨터의 반응도 개선될 것입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Adam Osborne, 마이크로컴퓨터 입문 제1권: Osborne-McGrow-Hill Berkeley California, 1980년 ISBN0-931988-34-9페이지 116~126
  2. ^ "Determining Clock Accuracy Requirements for UART Communications" (pdf). an2141. Maxim Integrated. 2003-08-07. Retrieved 1 November 2021.
  3. ^ a b "Universal asynchronous receiver/transmitter (UART)" (PDF). SCC2691. Philips NXP. 2006-08-04. p. 14. Retrieved 1 November 2021.{{cite web}}: CS1 maint :url-status (링크)
  4. ^ a b C. Gordon Bell, J. Craig Mudge, John E. McNamara, 컴퓨터 엔지니어링: 하드웨어 시스템 설계의 DEC 뷰, 디지털 프레스, 2014년 5월 12일, ISBN 1483221105, 페이지 73.
  5. ^ Allison, David. "Curator, Division of Information Technology and Society, National Museum of American History, Smithsonian Institution". Smithsonian Institution Oral and Video Histories. Retrieved 14 June 2015.
  6. ^ Gordon Bell의 구술사, 2005, 2015-08-19에 접속
  7. ^ Technical Reference 6025008 (PDF). Personal Computer Hardware Reference Library. IBM. August 1981. pp. 2–123.
  8. ^ "FTDI Products". www.ftdichip.com. Retrieved 22 March 2018.
  9. ^ PDP-11/05와의 인터페이스: UART, blinkenbone.com, 2015-08-19에 접속
  10. ^ "Zilog Product specification Z8440/1/2/4, Z84C40/1/2/3/4. Serial input/output controller" (PDF). 090529 zilog.com
  11. ^ "Zilog Document Download" (PDF). www.zilog.com. Retrieved 22 March 2018.
  12. ^ "FAQ: The 16550A UART & TurboCom drivers 1994". Retrieved January 16, 2016.
  13. ^ T'so, Theodore Y. (January 23, 1999). "Re: Serial communication with the 16650". The Mail Archive. Retrieved June 2, 2013.
  14. ^ bill.herrin.us - Hayes ESP 8 포트 확장 시리얼 포트 매뉴얼, 2004-03-02

추가 정보

  • 시리얼 포트 컴플리트: COM 포트, USB 가상 COM 포트, 임베디드 시스템용 포트, 제2판, Jan Axelson, Lakeview Research, 380 페이지, 2007년, ISBN 978-1-931-44806-2.
  • 시리얼 포트 컴플리트: RS-232RS-485 링크네트워크용 프로그래밍 회선, 제1판, Jan Axelson, Lakeview Research, 306 페이지, 1998, ISBN 978-0-965-08192-4.
  • 시리얼 포트 및 마이크로 컨트롤러: 원리, 회선 소스 코드; 제1판; Grzegorz Niemirowski; CreateSpace; 414페이지; 2013; ISBN 978-1-481-90897-9.
  • 시리얼 프로그래밍(Wikibook)

외부 링크

  • FreeBSD Serial and UART Tutorial은 표준 신호 정의, UART IC 이력 및 일반적으로 사용되는 DB25 커넥터에 대한 핀 배치를 포함합니다.
  • UART Tutorial for Robotics에는 많은 실제 예가 포함되어 있습니다.