2024. 8. 22. 14:25ㆍ카테고리 없음
UART (Universal Asynchronous Receiver-Transmitter)란 무엇인가요?
UART, 즉 범용 비동기 수신기-송신기는 비동기식 직렬 통신을 위한 장치입니다. 여기서 '비동기식'이란 데이터가 일정한 시간 간격 없이 전송된다는 것을 의미합니다. UART는 데이터 형식과 전송 속도를 자유롭게 설정할 수 있으며, 데이터를 최하위 비트부터 최상위 비트 순서로 하나씩 전송합니다.
- 시작 비트와 정지 비트는 데이터를 구분하는 역할을 합니다. 이러한 비트들은 데이터가 정확한 시간에 맞춰 전송될 수 있도록 도와줍니다.
- 전기 신호 레벨은 UART 장치 외부의 드라이버 회로에 의해 처리됩니다. 이 회로는 RS-232, RS-485, Raw TTL과 같은 다양한 신호 레벨을 사용할 수 있습니다. 초기의 전신기들은 이러한 회로를 통해 작동했습니다.
UART의 역할과 역사
UART는 초기의 컴퓨터 통신 장치 중 하나로, 컴퓨터가 전신기와 같은 장치와 통신할 수 있게 해주었습니다. 이는 인터넷이 등장하기 이전의 시대에서 중요한 역할을 했으며, 현재도 다양한 통신 장치에 사용되고 있습니다.
UART의 사용 사례
일반적으로, UART는 컴퓨터나 주변 장치의 직렬 포트에서 직렬 통신을 수행하기 위해 사용됩니다. 또한, 오늘날 마이크로컨트롤러에 통합되어, 자동차, 스마트 카드, SIM 카드 등 다양한 분야에서 사용됩니다.
- USART는 UART와 관련된 장치로, 동기식 및 비동기식 통신 모두를 지원합니다. USART는 UART와 유사하지만, 더 다양한 통신 방식을 지원하기 때문에 상황에 따라 더 유용할 수 있습니다.
UART와 OSI 모델
UART는 OSI 모델에서 **데이터 링크 계층(2계층)**에 해당합니다. 이 계층은 데이터 전송의 물리적 및 논리적 링크를 관리하며, 통신 채널을 통해 데이터가 올바르게 전달되도록 합니다.
이 문서에서는 간결하고 명확한 설명을 통해 인간 중심의 자연어 처리(NLP)를 기반으로 내용을 전달하고자 했습니다. 학습자가 쉽게 이해할 수 있도록 중요한 개념은 반복적으로 강조하고, 자연스러운 흐름을 유지하여 독자의 이해를 돕고 있습니다.
직렬 데이터 전송 및 수신
직렬 데이터 전송은 데이터를 한 번에 하나의 비트씩 전송하는 방식입니다. **UART (범용 비동기 수신기-송신기)**는 데이터 바이트를 받아, 각 비트를 순차적으로 전송합니다. 이러한 비트는 직렬 통신 방식으로 전송되며, 수신지에서는 두 번째 UART가 이 비트들을 다시 조립하여 완전한 바이트를 복원합니다.
UART의 구성 요소
UART는 데이터를 성공적으로 전송하고 수신하기 위해 다음과 같은 구성 요소를 포함하고 있습니다:
- 클럭 생성기: 비트 전송 속도(bit rate)의 배수로 동작하며, 비트 기간 중간에서 샘플링이 가능하도록 설계됩니다.
- 입출력 시프트 레지스터: **전송/수신 버퍼(FIFO 버퍼)**와 함께 사용되어 데이터를 직렬 및 병렬 형식으로 변환하는 데 필수적인 역할을 합니다.
- 전송/수신 제어: 데이터 전송 및 수신 과정을 관리하는 기능을 담당합니다.
- 읽기/쓰기 제어 로직: 데이터의 읽기와 쓰기 작업을 제어하는 논리 회로입니다.
이러한 구성 요소들은 모두 협력하여 직렬 데이터 통신이 원활히 이루어지도록 돕습니다.
직렬 통신의 장점
디지털 정보(비트)를 단일 와이어 또는 다른 매체를 통해 직렬로 전송하는 것은 다수의 와이어를 통해 병렬로 전송하는 것보다 비용이 적게 듭니다. 이는 직렬 통신 방식이 비용 효율적인 이유 중 하나이며, 특히 UART가 많이 사용되는 이유이기도 합니다.
이 문서는 직렬 데이터 전송에 대한 핵심 개념을 간결하게 설명하며, 직렬 통신의 장점과 UART의 주요 구성 요소들을 이해하기 쉽게 정리했습니다. 이를 통해 학습자가 중요한 정보를 명확히 이해할 수 있도록 했습니다.
UART의 신호 변환 및 통신 모드
UART는 일반적으로 외부 장치 간에 사용되는 신호를 직접 생성하거나 수신하지 않습니다. UART의 논리 레벨 신호를 외부 신호 레벨로 변환하거나, 반대로 외부 신호를 논리 레벨로 변환하기 위해 별도의 인터페이스 장치를 사용합니다. 이러한 외부 신호는 표준화된 전압 수준, 전류 수준, 또는 기타 신호로 구성될 수 있습니다.
UART의 통신 모드
UART 통신은 다음과 같은 세 가지 모드로 이루어질 수 있습니다:
- 단방향 통신(Simplex): 한 방향으로만 데이터를 전송하며, 수신 장치는 송신 장치로 데이터를 보낼 수 없습니다.
- 전이중 통신(Full Duplex): 두 장치가 동시에 데이터를 송신하고 수신할 수 있습니다.
- 반이중 통신(Half Duplex): 두 장치가 번갈아 가며 데이터를 송신하고 수신합니다.
UART 설정의 중요성
UART가 올바르게 작동하기 위해서는 송신 측과 수신 측에서 다음 설정이 일치해야 합니다:
- 전압 수준(Voltage level)
- 전송 속도(Baud Rate)
- 패리티 비트(Parity bit)
- 데이터 비트 크기(Data bits size)
- 정지 비트 크기(Stop bits size)
- 흐름 제어(Flow Control)
예를 들어, 두 UART 모듈이 동일한 전압 수준(예: 3V-3V)을 유지하면 잘 동작합니다. 그러나 다른 전압 수준(예: 3V-5V)을 사용하는 두 UART 모듈을 연결하려면 외부에 **레벨 변환 회로(Level Shift Circuit)**를 추가해야 합니다.
이 문서는 UART의 신호 변환, 통신 모드, 그리고 올바른 설정을 통해 UART 모듈이 효과적으로 통신할 수 있는 방법을 설명합니다. 이를 통해 UART의 다양한 활용 상황을 이해하고, 필요한 설정 조건을 명확하게 파악할 수 있도록 돕습니다.
데이터 프레이밍 (Data Framing)
UART 데이터 프레임은 다음과 같은 5가지 요소로 구성됩니다:
- 유휴 상태(Idle): 논리적 '1' (고전압 상태)
- 시작 비트(Start Bit): 논리적 '0' (저전압 상태)
- 데이터 비트(Data Bits)
- 패리티 비트(Parity Bit)
- 정지 비트(Stop Bit): 논리적 '1' (고전압 상태)
가장 일반적인 설정인 8개의 데이터 비트, 패리티 없음, 1개의 정지 비트(8N1)의 경우, 프로토콜 효율성은 **80%**입니다. 비교를 위해, Ethernet의 경우 최대 처리량 프레임과 1500 바이트 페이로드를 사용할 때 프로토콜 효율성은 최대 **95%**이며, 9000 바이트 점보 프레임을 사용할 경우 **99%**까지 증가할 수 있습니다. 하지만, Ethernet의 프로토콜 오버헤드와 최소 페이로드 크기가 42 바이트라는 점 때문에, 1 바이트 또는 몇 바이트의 작은 메시지를 전송할 때는 프로토콜 효율성이 크게 떨어집니다. 반면, UART의 8N1 설정은 작은 메시지 전송 시에도 일관된 80%의 효율성을 유지합니다.
유휴 상태의 의미
UART의 유휴 상태는 논리적 '1', 즉 고전압 상태로 유지됩니다. 이는 전신(telegraphy)에서 유래한 역사적 유산으로, 회선과 송신기가 손상되지 않았음을 나타내기 위해 회선을 높은 상태로 유지했던 것에서 비롯되었습니다.
이 문서에서는 UART의 데이터 프레임 구조와 각 요소의 역할을 설명하며, UART와 Ethernet 간의 프로토콜 효율성을 비교하여 UART의 장점과 특징을 이해할 수 있도록 했습니다.
UART 프레임과 필드 길이
UART 프레임은 다양한 길이의 비트 필드로 구성되며, 각 필드의 길이는 다음과 같이 설정됩니다:
- 시작 비트(Start Bit): 1 비트
- 데이터 프레임(Data Frame): 5~9 비트
- 패리티 비트(Parity Bits): 0~1 비트
- 정지 비트(Stop Bits): 1~2 비트
UART 프레임의 예시: 아래 다이어그램은 하나의 바이트를 전송하는 UART 프레임을 설명합니다. 이 프레임은 1개의 시작 비트, 8개의 데이터 비트(D1-8), 그리고 2개의 정지 비트로 구성된 11비트 UART 프레임입니다.
UART 프레임 구성 요소
- 시작 비트(Start Bit): 전송이 시작됨을 알리는 비트입니다. 논리적 '0'으로 설정됩니다.
- 데이터 비트(Data Bits): 전송할 실제 데이터를 포함하는 비트입니다. 5~9 비트로 설정할 수 있으며, 일반적으로 8비트가 많이 사용됩니다.
- 패리티 비트(Parity Bit): 데이터 전송의 오류 검출을 위해 사용될 수 있는 선택적 비트입니다. 패리티 비트가 사용될 경우, 짝수 패리티 또는 홀수 패리티로 설정할 수 있습니다.
- 정지 비트(Stop Bit): 데이터 프레임의 끝을 나타내는 비트입니다. 논리적 '1'으로 설정되며, 1~2 비트 길이로 설정할 수 있습니다.
통신 설정의 사전 합의
UART 통신을 위해, 데이터 비트 수, 포맷 비트 수, 패리티 비트의 존재 여부, 패리티 형태(짝수 또는 홀수), 전송 속도 등 다양한 요소들이 사전에 합의되어야 합니다.
정지 비트의 역할
정지 비트는 실제로 **정지 기간(Stop Period)**입니다. 송신기의 정지 기간은 임의로 길게 설정할 수 있지만, 최소한 1~2 비트의 시간 동안 유지되어야 합니다. 반면에, 수신기는 송신기보다 짧은 정지 기간을 요구합니다. 수신기는 각 데이터 프레임의 끝에서 잠시 멈추어 다음 시작 비트를 기다립니다. 이 차이로 인해 송신기와 수신기가 동기화 상태를 유지할 수 있습니다.
BCLK: 기본 클럭(Base Clock)을 의미하며, 데이터 전송의 기본 주파수를 설정합니다.
이 문서는 UART 프레임 구조와 각 필드의 역할을 설명하고, 송신기와 수신기 간의 동기화 방법을 다루었습니다. 이를 통해 UART 통신의 기본 원리를 명확히 이해할 수 있도록 하였습니다.
UART의 유휴 상태와 데이터 프레이밍
UART 통신에서 유휴 상태는 논리적 '1'로, 즉 고전압 상태로 유지됩니다. 이는 전신(telegraphy) 시대의 역사적 유산으로, 회선과 송신기가 손상되지 않았음을 나타내기 위해 회선을 높은 상태로 유지했던 것에서 비롯되었습니다.
UART 프레임 구성
각 문자는 다음과 같이 프레임화됩니다:
- *논리적 '0'**으로 설정된 시작 비트(Start Bit).
- 데이터 비트(Data Bits), 필요에 따라 **패리티 비트(Parity Bit)**가 뒤따릅니다.
- 하나 이상의 **정지 비트(Stop Bits)**로 프레임이 종료됩니다.
대부분의 애플리케이션에서는 **최하위 비트(Least Significant Bit, LSB)**가 먼저 전송됩니다. 이는 다이어그램에서 왼쪽에 위치한 비트로, 가장 낮은 자리수의 비트를 의미합니다. 하지만 일부 예외도 존재합니다. 예를 들어, IBM 2741 프린팅 터미널과 같은 경우에는 이 순서가 다르게 설정될 수 있습니다.
이 설명은 UART의 기본 작동 원리와 데이터 프레임 구조를 이해하는 데 중점을 두고 있으며, 이를 통해 전송되는 각 데이터가 어떻게 처리되는지 명확하게 설명합니다.
UART 프레임의 구성 요소
시작 비트(Start Bit)
- 시작 비트는 수신기에게 새로운 문자가 도착하고 있음을 알리는 신호입니다. 이 비트는 논리적 '0' (저전압) 상태로 설정됩니다.
데이터 비트(Data Bit)
- 데이터 비트는 문자 자체를 나타내는 비트입니다. 사용되는 코드 세트에 따라 5비트에서 9비트까지 다양하게 설정될 수 있습니다.
패리티 비트(Parity Bit)
- 패리티 비트는 모든 데이터 비트가 전송된 후에 위치하며, 데이터 전송 중에 오류가 발생했는지 여부를 수신 UART가 확인할 수 있도록 돕습니다. 패리티 비트는 선택적으로 사용될 수 있습니다.
정지 비트(Stop Bit)
- 정지 비트는 1비트 또는 2비트 길이로 설정되며, 항상 논리적 '1' (고전압) 상태로 유지됩니다. 이 비트는 문자가 완전히 전송되었음을 수신기에게 알립니다.
- 시작 비트가 논리적 '0'이고, 정지 비트가 논리적 '1'이므로, 문자 사이에는 최소한 두 번의 신호 변화가 보장됩니다.
브레이크 조건 (Break Condition)
- 만약 회선이 문자 시간보다 더 오랫동안 논리적 '0' 상태로 유지된다면, 이는 브레이크 조건으로 간주되며, UART는 이를 감지할 수 있습니다. 브레이크 조건은 특별한 상황에서 사용되며, 일반적인 데이터 전송에서 발생하지 않는 상태입니다.
이 설명은 UART 프레임의 각 구성 요소의 역할과 그 중요성을 강조합니다. 시작 비트와 정지 비트의 신호 변화는 수신기가 데이터를 정확히 해석하는 데 중요한 역할을 하며, 패리티 비트는 전송된 데이터의 무결성을 확인하는 데 사용됩니다.
UART 수신기(Receiver)의 동작 원리
UART 수신기의 모든 동작은 데이터 전송 속도의 배수로 작동하는 내부 클럭 신호에 의해 제어됩니다. 이 클럭 신호는 일반적으로 비트 전송 속도의 8배 또는 16배로 설정됩니다.
- 시작 비트 감지
- 수신기는 각 클럭 펄스마다 들어오는 신호의 상태를 테스트하며, **시작 비트(Start Bit)**의 시작을 찾습니다.
- 만약 나타난 시작 비트가 비트 시간의 절반 이상 지속되면, 이를 유효한 신호로 간주하고 새로운 문자의 시작을 알리는 신호로 처리합니다. 그렇지 않으면, 이 신호는 잘못된(스푸리어스) 펄스로 간주되어 무시됩니다.
- 데이터 샘플링
- 시작 비트를 감지한 후, 수신기는 추가적인 1비트 시간을 기다린 후에 라인의 상태를 다시 샘플링합니다.
- 샘플링된 데이터는 **시프트 레지스터(Shift Register)**로 클럭 인됩니다.
- 데이터 처리
- 캐릭터 길이(일반적으로 5~8비트)의 비트 기간이 모두 경과하면, 시프트 레지스터의 내용이 병렬 방식으로 수신 시스템에 제공됩니다.
- 이때, UART는 새로운 데이터가 도착했음을 알리는 플래그를 설정하고, 호스트 프로세서가 수신된 데이터를 전송하도록 프로세서 인터럽트를 생성할 수도 있습니다.
이 설명은 UART 수신기의 데이터 처리 과정을 상세히 다룹니다. 시작 비트 감지, 데이터 샘플링, 그리고 최종적으로 데이터를 호스트 시스템에 전달하는 일련의 과정이 어떻게 동작하는지 설명하며, 특히 내부 클럭 신호의 중요성을 강조합니다.
UART의 동기화 및 데이터 버퍼링
UART 동기화
UART 간의 통신은 별도의 공유된 타이밍 시스템 없이, 오직 통신 신호에만 의존합니다. 일반적으로 UART는 스푸리어스 펄스로 간주되지 않는 데이터 라인의 상태 변화에서 내부 클럭을 재동기화합니다. 이러한 방식으로 타이밍 정보를 획득함으로써, 송신기가 예상보다 약간 다른 속도로 데이터를 전송하더라도 수신기가 안정적으로 데이터를 수신할 수 있습니다.
- 고급 UART: 데이터 라인의 상태 변화마다 내부 클럭을 재동기화하여, 더 정확한 타이밍을 유지하고 신뢰성을 높입니다.
- 단순 UART: 시작 비트의 하강 에지에서만 재동기화하고, 이후에는 예상되는 각 데이터 비트의 중앙에서 샘플링합니다. 이 방식은 송신 속도가 충분히 정확하여 정지 비트를 신뢰할 수 있는 경우에만 효과적입니다.
이중 버퍼링 (Double Buffering)
대부분의 UART는 수신 중 가장 최근의 문자를 저장하면서 다음 문자를 수신하는 기능을 가지고 있습니다. 이 이중 버퍼링은 수신 컴퓨터가 수신된 문자를 가져오기 위한 전체 문자 전송 시간을 제공합니다.
- FIFO 버퍼: 많은 UART에는 FIFO (First-In, First-Out) 버퍼 메모리가 추가로 포함되어 있습니다. 이 버퍼는 수신 시프트 레지스터와 호스트 시스템 인터페이스 사이에 위치하여, 호스트 프로세서가 UART로부터 발생한 인터럽트를 처리할 시간을 더 많이 확보할 수 있도록 합니다. 이를 통해 높은 데이터 전송 속도에서도 수신된 데이터의 손실을 방지할 수 있습니다.
이 설명은 UART 통신에서의 동기화 메커니즘과 데이터 버퍼링의 중요성을 다룹니다. 동기화는 데이터 라인의 상태 변화에서 이루어지며, 이중 버퍼링과 FIFO 버퍼를 통해 데이터 전송의 안정성과 효율성을 높입니다.
UART 송신기(Transmitter)의 동작 원리
송신 작업은 수신 작업보다 상대적으로 단순합니다. 송신기는 라인의 상태에서 타이밍을 결정할 필요가 없으며, 고정된 타이밍 간격에 구속되지 않습니다. 송신 시스템이 문자를 시프트 레지스터에 입력하면(이전 문자의 전송이 완료된 후), UART는 다음 작업을 수행합니다:
- 시작 비트 생성: 송신기가 첫 번째로 생성하는 신호는 **시작 비트(Start Bit)**입니다. 이 비트는 데이터 전송의 시작을 알립니다.
- 데이터 비트 전송: 시작 비트 후, 필요한 수의 데이터 비트를 라인으로 이동시킵니다. 이 비트들은 시프트 레지스터를 통해 순차적으로 전송됩니다.
- 패리티 비트 생성: 패리티 비트가 사용되는 경우, 모든 데이터 비트가 전송된 후 **패리티 비트(Parity Bit)**가 생성되어 전송됩니다.
- 정지 비트 전송: 마지막으로, 하나 이상의 **정지 비트(Stop Bits)**가 전송되며, 이는 데이터 프레임의 끝을 나타냅니다.
전이중(Full-Duplex) 동작
전이중 통신에서는 문자를 송신하고 수신하는 작업이 동시에 이루어져야 하므로, UART는 송신 문자와 수신 문자를 처리하기 위해 두 개의 서로 다른 시프트 레지스터를 사용합니다.
FIFO 버퍼와 전송 효율성
고성능 UART에는 FIFO (First-In, First-Out) 버퍼가 포함될 수 있습니다. 이 버퍼는 CPU나 DMA 컨트롤러가 여러 문자를 한 번에 버스트 모드로 FIFO에 입력할 수 있도록 하여, 시프트 레지스터에 문자를 하나씩 입력해야 하는 번거로움을 덜어줍니다.
송신 상태와 인터럽트
문자의 전송은 CPU 속도에 비해 상대적으로 긴 시간이 소요될 수 있기 때문에, UART는 **비지 상태(Busy Status)**를 나타내는 플래그를 유지합니다. 이를 통해 호스트 시스템은 송신 버퍼나 시프트 레지스터에 적어도 하나의 문자가 남아 있는지, 그리고 "다음 문자를 받을 준비가 되었는지" 여부를 알 수 있습니다. 이 정보는 필요에 따라 인터럽트를 통해 신호로 전달될 수 있습니다.
이 설명은 UART 송신기의 동작 과정을 간단하게 설명하며, 특히 전이중 통신에서의 동작과 고성능 UART의 FIFO 버퍼 기능을 강조합니다.
UART 응용(Application)
송신기와 수신기 설정 일치의 중요성
UART 통신에서 송신 UART와 수신 UART는 비트 속도, 문자 길이, 패리티, 정지 비트 설정이 동일해야 원활한 통신이 가능합니다. 만약 설정이 일치하지 않으면, 수신 UART는 프레이밍 오류(framing error) 플래그를 설정하여 호스트 시스템에 알릴 수 있습니다. 드물게는, 수신 UART가 손상된 문자 스트림을 생성하여 이를 호스트 시스템에 전송할 수도 있습니다.
일반적인 UART 설정
개인용 컴퓨터와 모뎀을 연결할 때 사용하는 일반적인 직렬 포트는 8개의 데이터 비트, 패리티 없음(no parity), 1개의 정지 비트로 구성됩니다. 이 설정에서는 초당 ASCII 문자 수는 비트 속도를 10으로 나눈 값과 같습니다.
소프트웨어 기반의 UART 에뮬레이션
물리적인 UART 칩이 없는 저가형 가정용 컴퓨터나 임베디드 시스템에서는 소프트웨어를 통해 UART 프로토콜을 에뮬레이션할 수 있습니다. 이를 위해 입력 포트의 상태를 샘플링하거나, 데이터 전송을 위해 출력 포트를 직접 제어하는 방식이 사용됩니다. 이 방식은 **비트뱅잉(bit-banging)**이라고 불리며, CPU 타이밍이 매우 중요하므로 CPU 자원을 많이 소모합니다. 그러나 이 방법을 사용하면 UART 칩을 생략할 수 있어 비용과 공간을 절약할 수 있습니다.
이 설명은 UART 통신의 기본 설정의 중요성과 소프트웨어 기반의 에뮬레이션 기법을 다루고 있습니다. 프레이밍 오류와 같은 통신 문제를 방지하기 위해 송신기와 수신기의 설정을 일치시키는 것이 중요하며, 저비용 시스템에서는 비트뱅잉을 통해 UART 기능을 구현할 수 있습니다.
UART의 역사(History)
초기 전신 시스템과 시리얼 통신의 기원
초기의 전신(telegraph) 시스템은 모스 부호(Morse code)와 같은 가변 길이의 펄스를 사용하고, 회전하는 시계 메커니즘을 통해 알파벳 문자를 전송했습니다. 이러한 방식에서 발전한 최초의 시리얼 통신 장치는 고정 길이의 펄스를 사용하는 **회전식 기계 스위치(Commutators)**였습니다. 이들은 문자 전송의 표준화된 방법을 제공하여, 다양한 문자 코드가 등장하게 했습니다.
텔레타이프와 컴퓨터 주변 장치
- *텔레타이프라이터(Teletypewriter)**는 5비트, 6비트, 7비트, 또는 8비트로 구성된 다양한 문자 코드를 사용하였고, 이는 이후 컴퓨터 주변 장치로서의 발전에 중요한 역할을 했습니다. 텔레타이프라이터는 소형 컴퓨터를 위한 범용 입출력 장치로 탁월한 성능을 발휘했으며, 초기 컴퓨터 통신에 있어서 핵심적인 장치였습니다.
이 설명은 UART와 관련된 초기 통신 기술의 발전 과정을 다루고 있습니다. 초기의 가변 길이 펄스를 사용한 전신 시스템에서 시작하여, 고정 길이 펄스를 사용하는 시리얼 통신 장치로 발전한 과정을 통해, 시리얼 통신이 어떻게 컴퓨터 주변 장치로 자리 잡았는지 설명합니다.
UART의 역사와 발전
Gordon Bell과 최초의 UART
Gordon Bell은 Digital Equipment Corporation(DEC)에서 최초의 UART를 설계하였으며, 이는 PDP 시리즈 컴퓨터(특히 PDP-1)에서 사용된 **라인 유닛(line unit)**이라는 전체 회로 보드를 차지했습니다. Bell에 따르면, UART의 주요 혁신은 샘플링 기법을 사용하여 신호를 디지털 도메인으로 변환하는 것이었습니다. 이 방식은 이전의 아날로그 타이밍 장치와 수동으로 조정된 가변 저항기(potentiometer)를 사용하는 회로보다 훨씬 더 신뢰할 수 있는 타이밍을 제공했습니다.
XON/XOFF 소프트웨어 흐름 제어의 도입
이 컴퓨터들은 또한 배선, 백플레인 및 기타 구성 요소의 비용을 절감하기 위해, 하드웨어 배선 대신 XON 및 XOFF 문자를 사용하는 소프트웨어 흐름 제어를 개척했습니다. 이 혁신은 UART가 효율적으로 통신할 수 있는 방법을 제공하면서도 비용 절감에 기여했습니다.
초기 단일 칩 UART의 등장
DEC는 라인 유닛 설계를 자사의 초기 단일 칩 UART로 축소했습니다. 이 기술을 바탕으로, Western Digital은 1971년경에 WD1402A라는 최초의 상업적으로 널리 사용된 단일 칩 UART를 개발했습니다. 이는 **중규모 집적 회로(Medium-Scale Integrated Circuit)**의 초기 사례로, 반도체 기술의 중요한 발전을 나타냅니다. Signetics의 2650 계열에서 개발된 또 다른 인기 있는 칩은 SCN2651이었습니다.
이 설명은 UART의 초기 역사와 기술적 발전을 강조합니다. Gordon Bell의 설계 혁신, 소프트웨어 흐름 제어의 도입, 그리고 단일 칩 UART의 개발이 어떻게 컴퓨터 통신 기술에 혁신을 가져왔는지를 보여줍니다.
UART의 발전과 다양한 명칭
초기 1980년대 UART
1980년대 초반의 대표적인 UART 예시로는 National Semiconductor 8250이 있습니다. 이 칩은 오리지널 IBM PC의 **비동기 통신 어댑터 카드(Asynchronous Communications Adapter card)**에 사용되었습니다.
1990년대의 UART 발전
1990년대에는 **온칩 버퍼(on-chip buffers)**를 갖춘 새로운 UART가 개발되었습니다. 이 버퍼는 더 높은 전송 속도를 가능하게 하였으며, 데이터 손실을 방지하고, 컴퓨터가 UART에 대한 주의를 덜 기울이도록 해주었습니다. 예를 들어, National Semiconductor 16550 UART는 16바이트 FIFO(First-In, First-Out) 버퍼를 가지고 있었으며, 이로 인해 더 높은 성능을 제공했습니다. 이 칩은 16C550, 16C650, 16C750, 16C850과 같은 다양한 변형 모델로 이어졌습니다.
다양한 명칭
제조업체에 따라 UART 기능을 수행하는 장치를 가리키는 다양한 명칭이 사용되었습니다:
- Intel: 8251 칩을 **프로그래머블 통신 인터페이스(Programmable Communication Interface)**라고 불렀습니다.
- MOS Technology: 6551 칩을 **비동기 통신 인터페이스 어댑터(Asynchronous Communications Interface Adapter, ACIA)**라고 명명했습니다.
- Motorola: 1975년경, 모토로라는 자사의 스타트-스톱 비동기 직렬 인터페이스 장치를 지칭하기 위해 **직렬 통신 인터페이스(Serial Communications Interface, SCI)**라는 용어를 처음 사용했으며, 다른 곳에서는 이를 UART라고 불렀습니다.
- Zilog: **Serial Communication Controllers (SCCs)**를 다수 제조했습니다.
이 설명은 1980년대와 1990년대의 UART 발전을 조명하며, 제조업체에 따라 UART 장치가 다양한 명칭으로 불렸던 역사를 다룹니다. 이로 인해 UART 기술의 발전과 다양한 변형 모델의 등장을 이해할 수 있습니다.
UART와 USB의 전환: 2000년대 이후의 변화
RS-232 포트의 감소와 USB의 대두
2000년대에 들어서면서, 대부분의 IBM PC 호환 컴퓨터들은 외부 RS-232 COM 포트를 제거하고, 대신 데이터 전송 속도가 더 빠른 USB 포트를 사용하기 시작했습니다.
USB-to-UART 브리지
RS-232 직렬 포트가 여전히 필요한 사용자를 위해, USB-to-UART 브리지가 널리 사용되고 있습니다. 이 장치는 USB와 UART 간의 변환을 수행하는 칩과 하드웨어 케이블을 결합한 것입니다. Cypress Semiconductor와 FTDI는 이러한 칩을 상업적으로 공급하는 주요 업체들입니다.
내부 프로세서에서의 UART 사용
비록 대부분의 컴퓨터에서 외부 RS-232 포트가 더 이상 제공되지 않지만, 많은 내부 프로세서에는 여전히 UART가 내장되어 있습니다. 이는 하드웨어 설계자들이 RS-232나 RS-485를 사용하는 다른 칩이나 장치와 인터페이스할 수 있는 능력을 제공합니다.
이 설명은 2000년대 이후의 기술 변화, 특히 RS-232 포트에서 USB로의 전환과 USB-to-UART 브리지의 사용을 다룹니다. 또한, 내부 프로세서에서 여전히 UART가 중요한 역할을 한다는 점을 강조합니다.
특별한 수신기 조건: 오버런 오류(Overrun Error)
오버런 오류란?
- *오버런 오류(Overrun Error)**는 수신기가 방금 수신된 문자를 처리하기 전에 새로운 문자가 도착할 때 발생합니다. 이는 수신기가 처리할 수 있는 문자보다 더 많은 문자가 입력될 경우 발생하는 문제입니다.
버퍼 공간과 처리 속도
다양한 장치들은 수신된 문자를 저장할 수 있는 서로 다른 크기의 버퍼 공간을 가지고 있습니다. CPU 또는 DMA 컨트롤러는 이 버퍼에서 문자를 제거하기 위해 UART를 서비스해야 합니다. 만약 CPU나 DMA 컨트롤러가 UART를 충분히 빠르게 서비스하지 못해 버퍼가 가득 차면, 오버런 오류가 발생하며, 그 결과로 들어오는 문자가 손실됩니다.
오버런 오류의 결과
오버런 오류가 발생하면 수신기 버퍼에 더 이상 문자를 저장할 공간이 없으므로, 추가로 들어오는 문자들이 손실됩니다. 이는 통신 데이터의 무결성을 해치게 되며, 중요한 정보가 손실될 수 있습니다.
이 설명은 오버런 오류가 발생하는 원인과 그 결과를 다루며, CPU나 DMA 컨트롤러가 UART를 적절히 서비스하지 못할 때 발생할 수 있는 문제를 강조합니다.
언더런 오류(Underrun Error)
언더런 오류란?
- *언더런 오류(Underrun Error)**는 UART 송신기가 문자의 전송을 완료했는데, 전송 버퍼가 비어 있는 상태에서 발생합니다. 즉, 송신할 다음 문자가 준비되지 않은 상황입니다.
비동기 모드에서의 처리
비동기 모드에서는 언더런 오류를 오류로 간주하지 않고, 전송할 데이터가 더 이상 남아 있지 않다는 신호로 해석합니다. 이 경우, 추가적인 정지 비트(Stop Bits)를 첨부할 수 있기 때문에 시스템이 중단되지 않습니다. 따라서 비동기 통신에서 언더런 상황은 일반적으로 문제가 되지 않습니다.
동기 모드에서의 언더런 오류
반면에, **동기식 시스템(USART)**에서는 언더런 오류가 더 심각하게 다루어집니다. 동기식 통신에서는 송신기와 수신기가 정확하게 동기화된 상태에서 데이터를 주고받아야 하기 때문에, 송신기가 데이터를 보내지 못하는 상태가 발생하면 통신 오류로 이어질 수 있습니다. 이런 이유로, 언더런 오류는 동기 모드에서 더욱 중요한 문제로 간주됩니다.
이 설명은 언더런 오류가 발생하는 상황과, 비동기 및 동기식 통신 모드에서 이 오류가 어떻게 처리되는지를 다룹니다. 특히, 동기식 통신에서는 언더런 오류가 심각한 문제로 작용할 수 있음을 강조합니다.
프레이밍 오류(Framing Error)
프레이밍 오류란?
- *프레이밍 오류(Framing Error)**는 UART가 예상된 "정지 비트(Stop Bit)" 시간을 기준으로 정지 비트를 감지하지 못할 때 발생합니다. 이는 수신된 데이터가 예상된 형식과 일치하지 않는 경우를 의미합니다.
시작 비트와 타이밍의 역할
UART 통신에서 "시작 비트(Start Bit)"는 수신되는 문자의 시작을 식별하기 위해 사용됩니다. 시작 비트의 타이밍은 그 이후의 모든 비트(데이터 비트 및 패리티 비트)의 타이밍 기준점으로 작용합니다. 정지 비트는 논리적 '1' (높은 상태)로 설정되어야 하며, UART는 이 상태를 예상합니다.
프레이밍 오류의 원인
프레이밍 오류는 다음과 같은 상황에서 발생할 수 있습니다:
- 정지 비트 누락: UART가 설정된 데이터 비트 수와 패리티 비트를 기준으로 정지 비트를 기대하는 시간에 데이터 라인이 예상된 논리적 '1' 상태에 있지 않으면 프레이밍 오류가 발생합니다.
- 브레이크 조건: 데이터 라인이 연속적으로 논리적 '0' 상태에 머무르는 **브레이크 조건(Break Condition)**도 프레이밍 오류로 간주됩니다. 이 상황은 통신 중단이나 다른 심각한 문제를 나타낼 수 있습니다.
프레이밍 오류의 신호
UART는 프레이밍 오류가 발생하면 호스트 시스템에 이를 신호로 알립니다. 이 오류는 데이터 전송에서 발생할 수 있는 타이밍 문제나 전송 간섭을 나타내며, 수신된 데이터가 유효하지 않음을 의미할 수 있습니다.
이 설명은 프레이밍 오류가 발생하는 원리와 그 결과를 다루며, UART 통신에서 타이밍과 비트 간의 동기화가 얼마나 중요한지를 강조합니다.
패리티 오류(Parity Error)
패리티 오류란?
- *패리티 오류(Parity Error)**는 수신된 데이터에서 1비트의 수와 패리티 비트에 의해 지정된 패리티가 일치하지 않을 때 발생합니다. 이는 데이터 전송 중에 오류가 발생했음을 나타낼 수 있습니다.
패리티 검사의 역할
패리티 검사는 전송 오류를 감지하기 위해 자주 사용됩니다. 송신 측에서 데이터 비트의 개수가 짝수인지 홀수인지에 따라 짝수 패리티(even parity) 또는 홀수 패리티(odd parity)가 설정됩니다. 수신 측에서는 전송된 데이터의 패리티 비트를 검토하여 데이터 비트의 실제 패리티와 비교합니다.
패리티 비트 사용 여부
패리티 비트는 선택적으로 사용할 수 있습니다. 따라서 패리티 검사를 활성화한 경우에만 패리티 오류가 발생할 수 있습니다. 패리티 비트를 사용하지 않는 경우, UART는 패리티 오류를 감지하지 않습니다.
패리티 오류의 발생
패리티 오류는 다음과 같은 경우에 발생할 수 있습니다:
- 전송 중 데이터 손상: 전송 과정에서 데이터 비트가 변경되어 원래의 패리티와 일치하지 않게 될 때 오류가 발생합니다.
- 패리티 비트 손상: 패리티 비트 자체가 전송 중에 손상될 경우에도 패리티 오류가 발생합니다.
이 설명은 패리티 오류가 발생하는 원리와, UART 통신에서 패리티 검사가 어떻게 오류 감지에 기여하는지를 설명합니다. 패리티 비트는 선택 사항이지만, 활성화되었을 때 데이터의 무결성을 확인하는 중요한 역할을 합니다.
브레이크 조건(Break Condition)
브레이크 조건이란?
- *브레이크 조건(Break Condition)**은 수신기의 입력이 일정 시간 이상 "공간(space)" 상태(논리적 '0')를 유지할 때 발생합니다. 이 시간은 일반적으로 하나의 문자 시간보다 길어야 합니다. 브레이크 조건은 필수적으로 오류로 간주되지는 않지만, 수신기에게는 모든 비트가 0인 문자로 보이며 프레이밍 오류로 나타납니다.
브레이크 조건의 유래
"브레이크"라는 용어는 전통적으로 텔레타이프라이터에서 사용된 **전류 루프 신호(Current Loop Signaling)**에서 유래했습니다. 전류 루프에서 "공간" 상태는 전류가 흐르지 않는 상태를 나타내며, 오랜 시간 동안 전류가 흐르지 않는 상태는 선로의 단선이나 다른 결함으로 인해 발생할 수 있습니다. 일부 장비는 주의 신호를 보내기 위해 의도적으로 문자 시간보다 더 긴 "공간" 상태를 전송하기도 합니다.
브레이크 조건의 활용
- 신호 속도 불일치: 송신기와 수신기의 신호 속도가 맞지 않을 때, 의미 있는 문자를 보낼 수 없지만, 긴 "브레이크" 신호는 수신기의 주의를 끌어 재설정하는 등의 작업을 수행하게 할 수 있습니다.
- 신호 속도 변경 요청: 컴퓨터 시스템에서는 긴 브레이크 신호를 사용하여 신호 속도를 변경할 요청을 할 수 있습니다. 예를 들어, 다이얼인(dial-in) 접근 시 다양한 신호 속도를 지원하기 위해 사용됩니다.
- DMX512 프로토콜: 이 프로토콜에서는 새로운 패킷의 시작을 알리기 위해 브레이크 조건을 사용합니다.
브레이크 조건은 단순한 오류 상태 이상의 역할을 하며, 특정 상황에서 유용한 신호로 활용될 수 있습니다.
모델명 설명 특징 및 기능
WD1402A | 최초의 단일 칩 UART, 1971년 도입 | - 일반 판매용으로 출시된 최초의 단일 칩 UART- 호환 칩: Fairchild TR1402A, General Instruments AY-5-1013 |
Exar XR21V1410 | 현대적인 UART 칩 | - 최신 통신 요구 사항을 충족하는 다양한 기능 |
Intersil 6402 | Intersil에서 개발된 UART 모델 | - 다양한 시스템에 사용됨 |
CDP 1854 | RCA에서 개발한 UART 칩, 현재는 Intersil에서 생산 | - 초기 RCA에서 개발된 모델로, 이후 Intersil에 의해 생산 |
Zilog Z8440 | 범용 동기 및 비동기 수신-송신기(USART) | - 2000 kbit/s 속도 지원- Async, Bisync, SDLC, HDLC, X.25 지원- 4바이트 RX 버퍼, 2바이트 TX 버퍼- DMA 전송을 위한 신호 제공 |
Zilog Z8530/Z85C30 | USART 칩, HDLC 및 SDLC 처리 가속 기능 포함 | - 3바이트 수신 버퍼, 1바이트 전송 버퍼- 비동기, 바이트 레벨 동기, 비트 레벨 동기 통신 지원- Z85C30(CMOS 버전): DMA 전송을 위한 신호 제공 |
NXP 28L194 | QUART(Quadruple UART): 네 개의 UART를 결합한 패키지 | - 네 개의 UART를 하나의 칩으로 통합 |
Exar XR16L788 | OCTART(Octal UART): 여덟 개의 UART를 결합한 패키지 | - 여덟 개의 UART를 하나의 칩으로 통합 |
NXP SCC2698 | OCTART(Octal UART): 여덟 개의 UART를 결합한 패키지 | - 여덟 개의 UART를 하나의 칩으로 통합 |
모델명 설명 특징 및 기능
8250 | 1바이트 버퍼를 가진 구식 UART | - 최대 표준 직렬 포트 속도: 9600 bps (운영 체제가 1ms 인터럽트 지연 시간을 가질 경우)- IBM PC 5150 및 IBM PC/XT에 사용됨- 16450 UART는 IBM PC/AT 시리즈 컴퓨터에 사용됨 |
8251 | USART 기능을 가진 UART | - 비동기 및 동기식 통신을 지원 |
Motorola 6850 | 모토로라에서 개발된 UART | - 다양한 임베디드 시스템과 컴퓨터에서 사용됨 |
6551 | ACIA(Asynchronous Communications Interface Adapter)으로도 알려진 UART | - 저가형 가정용 컴퓨터 및 임베디드 시스템에 사용됨 |
Rockwell 65C52 | Rockwell에서 개발된 UART | - 다양한 비동기 통신 애플리케이션에 사용 |
16450 | IBM PC/AT 시리즈에서 사용된 UART | - 8250의 후속 모델로, 더 높은 성능 제공 |
82510 | 인텔에서 1993~1996년에 생산된 UART | - 288 kbit/s의 비동기 동작 지원- 독립적인 두 개의 4바이트 FIFO |
16550 | Startech Semiconductor에서 도입된 UART (현재 Exar Corporation 소유) | - 초기 버전은 고장난 FIFO 버퍼를 가지고 있어, 16450보다 빠르게 안전하게 작동할 수 없음- 수정된 버전은 32-문자 FIFO 버퍼를 가지고 있으며, 1ms 인터럽트 지연 시간에서 최대 230.4 kbit/s까지 표준 직렬 포트 속도 지원- 최신 버전은 최대 1.5 Mbit/s까지 처리 가능- Auto-RTS 및 Auto-CTS 기능 도입 (RTS# 신호는 UART에 의해 제어되어 외부 장치가 UART의 버퍼가 가득 찼을 때 전송을 중지하도록 신호를 보냄) |
모델명 설명 특징 및 기능
16550A | National Semiconductor(현재 Texas Instruments 소유)에서 도입된 UART | - 16바이트 FIFO 버퍼- 수신 인터럽트 트리거 레벨: 1, 4, 8, 14 문자 설정 가능- 최대 표준 직렬 포트 속도: 128 kbit/s (1ms 인터럽트 지연 시간 기준)- DMA 모드 지원: DMA 컨트롤러와의 데이터 전송 가능- 최대 1.5 Mbit/s 속도 지원 (National Semiconductor 주장) |
16C552 | 고급 UART 모델 | - 다양한 성능 향상 기능을 갖춘 UART |
16750 | Texas Instruments에서 도입된 UART | - 64바이트 버퍼- 최대 표준 직렬 포트 속도: 460.8 kbit/s (1ms 인터럽트 지연 시간 기준)- 초기 모델: 최대 1 Mbit/s, 이후 모델: 최대 3 Mbit/s |
16850 | Exar Corporation에서 도입된 UART | - 128바이트 버퍼- 최대 표준 직렬 포트 속도: 921.6 kbit/s (1ms 인터럽트 지연 시간 기준)- 초기 버전: 최대 2 Mbit/s, 이후 버전: 최대 2.25 Mbit/s (제조 시기에 따라 다름) |
16C850 | 고급 UART 모델 | - 성능이 향상된 다양한 기능을 제공 |
16950 | Oxford Semiconductor(현재 PLX Technology 소유)에서 도입된 UART | - 128바이트 버퍼- 최대 표준 직렬 포트 속도: 921.6 kbit/s (1ms 인터럽트 지연 시간 기준)- 9비트 문자 지원 (일반 5-8비트 문자 외 추가)- 최대 15 Mbit/s 속도 지원- PCIe DMA 컨트롤러 통합 (PCI Express 변형)- 각 DMA 트랜잭션은 1~128바이트 전송 가능 |
16C950 | 고급 UART 모델 | - 16950의 확장 버전으로, 더 향상된 기능을 제공 |
모델명 설명 특징 및 기능
16C1550/16C1551 | 16바이트 FIFO 버퍼를 가진 UART | - 최대 1.5 Mbit/s 속도 지원- ST16C155X는 표준 16550과 호환되지 않으며, Microsoft Windows의 표준 직렬 포트 드라이버에서 작동하지 않음 |
16C2450 | 1바이트 FIFO 버퍼를 가진 듀얼 UART | - 두 개의 UART가 하나의 칩에 통합됨 |
16C2550 | 16바이트 FIFO 버퍼를 가진 듀얼 UART | - 핀 투 핀 및 기능적으로 16C2450와 호환- INS8250 및 NS16C550과 소프트웨어 호환 |
SCC2691 | NXP에서 현재 생산 중인 단일 채널 UART | - 프로그래머블 카운터/타이머 포함- 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s- TIA-422 및 TIA-485 모드 지원- 비표준 데이터 속도 지원 가능- PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
SCC28L91 | SCC2691의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC28L91 | SCC2691의 상위 호환 버전으로, 2691의 모든 기능에 더해 추가적인 성능 향상 기능 제공 | - PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
모델명 설명 특징 및 기능
16C1550/16C1551 | 16바이트 FIFO 버퍼를 가진 UART | - 최대 1.5 Mbit/s 속도 지원- ST16C155X는 표준 16550과 호환되지 않으며, Microsoft Windows의 표준 직렬 포트 드라이버에서 작동하지 않음 |
16C2450 | 1바이트 FIFO 버퍼를 가진 듀얼 UART | - 두 개의 UART가 하나의 칩에 통합됨 |
16C2550 | 16바이트 FIFO 버퍼를 가진 듀얼 UART | - 핀 투 핀 및 기능적으로 16C2450와 호환- INS8250 및 NS16C550과 소프트웨어 호환 |
SCC2691 | NXP에서 현재 생산 중인 단일 채널 UART | - 프로그래머블 카운터/타이머 포함- 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s- TIA-422 및 TIA-485 모드 지원- 비표준 데이터 속도 지원 가능- PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
SCC28L91 | SCC2691의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC2692 | NXP에서 현재 생산 중인 듀얼 UART(DUART) | - 두 개의 통신 채널과 하나의 카운터/타이머로 구성- 각 채널은 독립적으로 프로그래밍 가능하며, 독립적인 송신 및 수신 데이터 속도 지원- 각 채널에 대해 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s |
26C92 | SCC2692의 상위 호환 버전 | - 8바이트 송신기 및 수신기 FIFO- 최대 표준 속도: 230.4 kbit/s- 연속적인 양방향 비동기 전송(CBAT) 시 향상된 성능 제공 |
28L92 | 26C92의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
모델명 설명 특징 및 기능
16C1550/16C1551 | 16바이트 FIFO 버퍼를 가진 UART | - 최대 1.5 Mbit/s 속도 지원- ST16C155X는 표준 16550과 호환되지 않으며, Microsoft Windows의 표준 직렬 포트 드라이버에서 작동하지 않음 |
16C2450 | 1바이트 FIFO 버퍼를 가진 듀얼 UART | - 두 개의 UART가 하나의 칩에 통합됨 |
16C2550 | 16바이트 FIFO 버퍼를 가진 듀얼 UART | - 핀 투 핀 및 기능적으로 16C2450와 호환- INS8250 및 NS16C550과 소프트웨어 호환 |
SCC2691 | NXP에서 현재 생산 중인 단일 채널 UART | - 프로그래머블 카운터/타이머 포함- 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s- TIA-422 및 TIA-485 모드 지원- 비표준 데이터 속도 지원 가능- PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
SCC28L91 | SCC2691의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC2692 | NXP에서 현재 생산 중인 듀얼 UART(DUART) | - 두 개의 통신 채널과 하나의 카운터/타이머로 구성- 각 채널은 독립적으로 프로그래밍 가능하며, 독립적인 송신 및 수신 데이터 속도 지원- 각 채널에 대해 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s |
26C92 | SCC2692의 상위 호환 버전 | - 8바이트 송신기 및 수신기 FIFO- 최대 표준 속도: 230.4 kbit/s- 연속적인 양방향 비동기 전송(CBAT) 시 향상된 성능 제공 |
28L92 | 26C92의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC28C94 | NXP에서 생산 중인 쿼드 UART(QUART) | - 두 개의 SCC26C92 DUART를 결합한 모델- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 230.4 kbit/s의 최대 속도 지원- PLCC-52 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC2698B | NXP에서 생산 중인 옥탈 UART(OCTART) | - 네 개의 SCC2692 DUART를 하나의 패키지에 통합- 각 채널은 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 동시 양방향 통신 시 다수의 인터럽트 발생 가능성- PDIP-64 및 PLCC-84 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
모델명 설명 특징 및 기능
16C1550/16C1551 | 16바이트 FIFO 버퍼를 가진 UART | - 최대 1.5 Mbit/s 속도 지원- ST16C155X는 표준 16550과 호환되지 않으며, Microsoft Windows의 표준 직렬 포트 드라이버에서 작동하지 않음 |
16C2450 | 1바이트 FIFO 버퍼를 가진 듀얼 UART | - 두 개의 UART가 하나의 칩에 통합됨 |
16C2550 | 16바이트 FIFO 버퍼를 가진 듀얼 UART | - 핀 투 핀 및 기능적으로 16C2450와 호환- INS8250 및 NS16C550과 소프트웨어 호환 |
SCC2691 | NXP에서 현재 생산 중인 단일 채널 UART | - 프로그래머블 카운터/타이머 포함- 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s- TIA-422 및 TIA-485 모드 지원- 비표준 데이터 속도 지원 가능- PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
SCC28L91 | SCC2691의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC2692 | NXP에서 현재 생산 중인 듀얼 UART(DUART) | - 두 개의 통신 채널과 하나의 카운터/타이머로 구성- 각 채널은 독립적으로 프로그래밍 가능하며, 독립적인 송신 및 수신 데이터 속도 지원- 각 채널에 대해 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s |
26C92 | SCC2692의 상위 호환 버전 | - 8바이트 송신기 및 수신기 FIFO- 최대 표준 속도: 230.4 kbit/s- 연속적인 양방향 비동기 전송(CBAT) 시 향상된 성능 제공 |
28L92 | 26C92의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC28C94 | NXP에서 생산 중인 쿼드 UART(QUART) | - 두 개의 SCC26C92 DUART를 결합한 모델- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 230.4 kbit/s의 최대 속도 지원- PLCC-52 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC2698B | NXP에서 생산 중인 옥탈 UART(OCTART) | - 네 개의 SCC2692 DUART를 하나의 패키지에 통합- 각 채널은 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 동시 양방향 통신 시 다수의 인터럽트 발생 가능성- PDIP-64 및 PLCC-84 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC28L198 | NXP에서 생산 중인 옥탈 UART(OCTART) | - SCC28C94의 업그레이드 버전으로, 8개의 독립적인 통신 채널 포함- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 최대 표준 속도: 460.8 kbit/s- PLCC-84 및 LQFP-100 패키지에서 제공- 3.3V 또는 5V로 작동 가능 |
모델명 설명 특징 및 기능
16C1550/16C1551 | 16바이트 FIFO 버퍼를 가진 UART | - 최대 1.5 Mbit/s 속도 지원- ST16C155X는 표준 16550과 호환되지 않으며, Microsoft Windows의 표준 직렬 포트 드라이버에서 작동하지 않음 |
16C2450 | 1바이트 FIFO 버퍼를 가진 듀얼 UART | - 두 개의 UART가 하나의 칩에 통합됨 |
16C2550 | 16바이트 FIFO 버퍼를 가진 듀얼 UART | - 핀 투 핀 및 기능적으로 16C2450와 호환- INS8250 및 NS16C550과 소프트웨어 호환 |
SCC2691 | NXP에서 현재 생산 중인 단일 채널 UART | - 프로그래머블 카운터/타이머 포함- 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s- TIA-422 및 TIA-485 모드 지원- 비표준 데이터 속도 지원 가능- PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
SCC28L91 | SCC2691의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC2692 | NXP에서 현재 생산 중인 듀얼 UART(DUART) | - 두 개의 통신 채널과 하나의 카운터/타이머로 구성- 각 채널은 독립적으로 프로그래밍 가능하며, 독립적인 송신 및 수신 데이터 속도 지원- 각 채널에 대해 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s |
26C92 | SCC2692의 상위 호환 버전 | - 8바이트 송신기 및 수신기 FIFO- 최대 표준 속도: 230.4 kbit/s- 연속적인 양방향 비동기 전송(CBAT) 시 향상된 성능 제공 |
28L92 | 26C92의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC28C94 | NXP에서 생산 중인 쿼드 UART(QUART) | - 두 개의 SCC26C92 DUART를 결합한 모델- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 230.4 kbit/s의 최대 속도 지원- PLCC-52 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC2698B | NXP에서 생산 중인 옥탈 UART(OCTART) | - 네 개의 SCC2692 DUART를 하나의 패키지에 통합- 각 채널은 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 동시 양방향 통신 시 다수의 인터럽트 발생 가능성- PDIP-64 및 PLCC-84 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC28L198 | NXP에서 생산 중인 옥탈 UART(OCTART) | - SCC28C94의 업그레이드 버전으로, 8개의 독립적인 통신 채널 포함- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 최대 표준 속도: 460.8 kbit/s- PLCC-84 및 LQFP-100 패키지에서 제공- 3.3V 또는 5V로 작동 가능 |
Z85230 | Zilog에서 생산된 듀얼 포트 동기/비동기 모드 USART | - 2개의 통신 포트 지원- 채널당 4바이트 송신 버퍼 및 8바이트 수신 버퍼- SDLC/HDLC 모드 지원- 동기 모드에서 최대 5 Mbit/s 속도- DMA 전송에 필요한 신호 제공 |
모델명 설명 특징 및 기능
16C1550/16C1551 | 16바이트 FIFO 버퍼를 가진 UART | - 최대 1.5 Mbit/s 속도 지원- ST16C155X는 표준 16550과 호환되지 않으며, Microsoft Windows의 표준 직렬 포트 드라이버에서 작동하지 않음 |
16C2450 | 1바이트 FIFO 버퍼를 가진 듀얼 UART | - 두 개의 UART가 하나의 칩에 통합됨 |
16C2550 | 16바이트 FIFO 버퍼를 가진 듀얼 UART | - 핀 투 핀 및 기능적으로 16C2450와 호환- INS8250 및 NS16C550과 소프트웨어 호환 |
SCC2691 | NXP에서 현재 생산 중인 단일 채널 UART | - 프로그래머블 카운터/타이머 포함- 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s- TIA-422 및 TIA-485 모드 지원- 비표준 데이터 속도 지원 가능- PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
SCC28L91 | SCC2691의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC2692 | NXP에서 현재 생산 중인 듀얼 UART(DUART) | - 두 개의 통신 채널과 하나의 카운터/타이머로 구성- 각 채널은 독립적으로 프로그래밍 가능하며, 독립적인 송신 및 수신 데이터 속도 지원- 각 채널에 대해 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s |
26C92 | SCC2692의 상위 호환 버전 | - 8바이트 송신기 및 수신기 FIFO- 최대 표준 속도: 230.4 kbit/s- 연속적인 양방향 비동기 전송(CBAT) 시 향상된 성능 제공 |
28L92 | 26C92의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC28C94 | NXP에서 생산 중인 쿼드 UART(QUART) | - 두 개의 SCC26C92 DUART를 결합한 모델- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 230.4 kbit/s의 최대 속도 지원- PLCC-52 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC2698B | NXP에서 생산 중인 옥탈 UART(OCTART) | - 네 개의 SCC2692 DUART를 하나의 패키지에 통합- 각 채널은 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 동시 양방향 통신 시 다수의 인터럽트 발생 가능성- PDIP-64 및 PLCC-84 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC28L198 | NXP에서 생산 중인 옥탈 UART(OCTART) | - SCC28C94의 업그레이드 버전으로, 8개의 독립적인 통신 채널 포함- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 최대 표준 속도: 460.8 kbit/s- PLCC-84 및 LQFP-100 패키지에서 제공- 3.3V 또는 5V로 작동 가능 |
Z85230 | Zilog에서 생산된 듀얼 포트 동기/비동기 모드 USART | - 2개의 통신 포트 지원- 채널당 4바이트 송신 버퍼 및 8바이트 수신 버퍼- SDLC/HDLC 모드 지원- 동기 모드에서 최대 5 Mbit/s 속도- DMA 전송에 필요한 신호 제공 |
Hayes ESP | 고성능 8포트 UART | - 1 KB 버퍼- 최대 921.6 kbit/s 속도 지원- 8개의 독립적인 포트 지원 |
모델명 설명 특징 및 기능
16C1550/16C1551 | 16바이트 FIFO 버퍼를 가진 UART | - 최대 1.5 Mbit/s 속도 지원- ST16C155X는 표준 16550과 호환되지 않으며, Microsoft Windows의 표준 직렬 포트 드라이버에서 작동하지 않음 |
16C2450 | 1바이트 FIFO 버퍼를 가진 듀얼 UART | - 두 개의 UART가 하나의 칩에 통합됨 |
16C2550 | 16바이트 FIFO 버퍼를 가진 듀얼 UART | - 핀 투 핀 및 기능적으로 16C2450와 호환- INS8250 및 NS16C550과 소프트웨어 호환 |
SCC2691 | NXP에서 현재 생산 중인 단일 채널 UART | - 프로그래머블 카운터/타이머 포함- 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s- TIA-422 및 TIA-485 모드 지원- 비표준 데이터 속도 지원 가능- PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
SCC28L91 | SCC2691의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC2692 | NXP에서 현재 생산 중인 듀얼 UART(DUART) | - 두 개의 통신 채널과 하나의 카운터/타이머로 구성- 각 채널은 독립적으로 프로그래밍 가능하며, 독립적인 송신 및 수신 데이터 속도 지원- 각 채널에 대해 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s |
26C92 | SCC2692의 상위 호환 버전 | - 8바이트 송신기 및 수신기 FIFO- 최대 표준 속도: 230.4 kbit/s- 연속적인 양방향 비동기 전송(CBAT) 시 향상된 성능 제공 |
28L92 | 26C92의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC28C94 | NXP에서 생산 중인 쿼드 UART(QUART) | - 두 개의 SCC26C92 DUART를 결합한 모델- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 230.4 kbit/s의 최대 속도 지원- PLCC-52 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC2698B | NXP에서 생산 중인 옥탈 UART(OCTART) | - 네 개의 SCC2692 DUART를 하나의 패키지에 통합- 각 채널은 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 동시 양방향 통신 시 다수의 인터럽트 발생 가능성- PDIP-64 및 PLCC-84 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC28L198 | NXP에서 생산 중인 옥탈 UART(OCTART) | - SCC28C94의 업그레이드 버전으로, 8개의 독립적인 통신 채널 포함- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 최대 표준 속도: 460.8 kbit/s- PLCC-84 및 LQFP-100 패키지에서 제공- 3.3V 또는 5V로 작동 가능 |
Z85230 | Zilog에서 생산된 듀얼 포트 동기/비동기 모드 USART | - 2개의 통신 포트 지원- 채널당 4바이트 송신 버퍼 및 8바이트 수신 버퍼- SDLC/HDLC 모드 지원- 동기 모드에서 최대 5 Mbit/s 속도- DMA 전송에 필요한 신호 제공 |
Hayes ESP | 고성능 8포트 UART | - 1 KB 버퍼- 최대 921.6 kbit/s 속도 지원- 8개의 독립적인 포트 지원 |
Exar XR17V352, XR17V354, XR17V358 | 듀얼, 쿼드 및 옥탈 PCI Express UART, 16550 호환 레지스터 세트 | - 256바이트 송신 및 수신 FIFO- 프로그래머블 송신 및 수신 트리거 레벨- 송신/수신 FIFO 레벨 카운터- 분수 보율 생성기- 자동 RTS/CTS 또는 DTR/DSR 하드웨어 흐름 제어- RS-485 반이중 방향 제어 출력- 최대 속도: 25 Mbit/s |
모델명 설명 특징 및 기능
16C1550/16C1551 | 16바이트 FIFO 버퍼를 가진 UART | - 최대 1.5 Mbit/s 속도 지원- ST16C155X는 표준 16550과 호환되지 않으며, Microsoft Windows의 표준 직렬 포트 드라이버에서 작동하지 않음 |
16C2450 | 1바이트 FIFO 버퍼를 가진 듀얼 UART | - 두 개의 UART가 하나의 칩에 통합됨 |
16C2550 | 16바이트 FIFO 버퍼를 가진 듀얼 UART | - 핀 투 핀 및 기능적으로 16C2450와 호환- INS8250 및 NS16C550과 소프트웨어 호환 |
SCC2691 | NXP에서 현재 생산 중인 단일 채널 UART | - 프로그래머블 카운터/타이머 포함- 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s- TIA-422 및 TIA-485 모드 지원- 비표준 데이터 속도 지원 가능- PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
SCC28L91 | SCC2691의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC2692 | NXP에서 현재 생산 중인 듀얼 UART(DUART) | - 두 개의 통신 채널과 하나의 카운터/타이머로 구성- 각 채널은 독립적으로 프로그래밍 가능하며, 독립적인 송신 및 수신 데이터 속도 지원- 각 채널에 대해 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s |
26C92 | SCC2692의 상위 호환 버전 | - 8바이트 송신기 및 수신기 FIFO- 최대 표준 속도: 230.4 kbit/s- 연속적인 양방향 비동기 전송(CBAT) 시 향상된 성능 제공 |
28L92 | 26C92의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC28C94 | NXP에서 생산 중인 쿼드 UART(QUART) | - 두 개의 SCC26C92 DUART를 결합한 모델- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 230.4 kbit/s의 최대 속도 지원- PLCC-52 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC2698B | NXP에서 생산 중인 옥탈 UART(OCTART) | - 네 개의 SCC2692 DUART를 하나의 패키지에 통합- 각 채널은 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 동시 양방향 통신 시 다수의 인터럽트 발생 가능성- PDIP-64 및 PLCC-84 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC28L198 | NXP에서 생산 중인 옥탈 UART(OCTART) | - SCC28C94의 업그레이드 버전으로, 8개의 독립적인 통신 채널 포함- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 최대 표준 속도: 460.8 kbit/s- PLCC-84 및 LQFP-100 패키지에서 제공- 3.3V 또는 5V로 작동 가능 |
Z85230 | Zilog에서 생산된 듀얼 포트 동기/비동기 모드 USART | - 2개의 통신 포트 지원- 채널당 4바이트 송신 버퍼 및 8바이트 수신 버퍼- SDLC/HDLC 모드 지원- 동기 모드에서 최대 5 Mbit/s 속도- DMA 전송에 필요한 신호 제공 |
Hayes ESP | 고성능 8포트 UART | - 1 KB 버퍼- 최대 921.6 kbit/s 속도 지원- 8개의 독립적인 포트 지원 |
Exar XR17V352, XR17V354, XR17V358 | 듀얼, 쿼드 및 옥탈 PCI Express UART, 16550 호환 레지스터 세트 | - 256바이트 송신 및 수신 FIFO- 프로그래머블 송신 및 수신 트리거 레벨- 송신/수신 FIFO 레벨 카운터- 분수 보율 생성기- 자동 RTS/CTS 또는 DTR/DSR 하드웨어 흐름 제어- RS-485 반이중 방향 제어 출력- 최대 속도: 25 Mbit/s |
Exar XR17D152, XR17D154, XR17D158 | 듀얼, 쿼드 및 옥탈 PCI 버스 UART, 16C550 호환 5G 레지스터 세트 | - 64바이트 송신 및 수신 FIFO- 송신 및 수신 FIFO 레벨 카운터- 프로그래머블 송신 및 수신 트리거 레벨- 자동 RTS/CTS 또는 DTR/DSR 흐름 제어- RS485 HDX 제어 출력- 최대 속도: 6.25 Mbit/s |
모델명 설명 특징 및 기능
16C1550/16C1551 | 16바이트 FIFO 버퍼를 가진 UART | - 최대 1.5 Mbit/s 속도 지원- ST16C155X는 표준 16550과 호환되지 않으며, Microsoft Windows의 표준 직렬 포트 드라이버에서 작동하지 않음 |
16C2450 | 1바이트 FIFO 버퍼를 가진 듀얼 UART | - 두 개의 UART가 하나의 칩에 통합됨 |
16C2550 | 16바이트 FIFO 버퍼를 가진 듀얼 UART | - 핀 투 핀 및 기능적으로 16C2450와 호환- INS8250 및 NS16C550과 소프트웨어 호환 |
SCC2691 | NXP에서 현재 생산 중인 단일 채널 UART | - 프로그래머블 카운터/타이머 포함- 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s- TIA-422 및 TIA-485 모드 지원- 비표준 데이터 속도 지원 가능- PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
SCC28L91 | SCC2691의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC2692 | NXP에서 현재 생산 중인 듀얼 UART(DUART) | - 두 개의 통신 채널과 하나의 카운터/타이머로 구성- 각 채널은 독립적으로 프로그래밍 가능하며, 독립적인 송신 및 수신 데이터 속도 지원- 각 채널에 대해 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s |
26C92 | SCC2692의 상위 호환 버전 | - 8바이트 송신기 및 수신기 FIFO- 최대 표준 속도: 230.4 kbit/s- 연속적인 양방향 비동기 전송(CBAT) 시 향상된 성능 제공 |
28L92 | 26C92의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC28C94 | NXP에서 생산 중인 쿼드 UART(QUART) | - 두 개의 SCC26C92 DUART를 결합한 모델- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 230.4 kbit/s의 최대 속도 지원- PLCC-52 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC2698B | NXP에서 생산 중인 옥탈 UART(OCTART) | - 네 개의 SCC2692 DUART를 하나의 패키지에 통합- 각 채널은 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 동시 양방향 통신 시 다수의 인터럽트 발생 가능성- PDIP-64 및 PLCC-84 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC28L198 | NXP에서 생산 중인 옥탈 UART(OCTART) | - SCC28C94의 업그레이드 버전으로, 8개의 독립적인 통신 채널 포함- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 최대 표준 속도: 460.8 kbit/s- PLCC-84 및 LQFP-100 패키지에서 제공- 3.3V 또는 5V로 작동 가능 |
Z85230 | Zilog에서 생산된 듀얼 포트 동기/비동기 모드 USART | - 2개의 통신 포트 지원- 채널당 4바이트 송신 버퍼 및 8바이트 수신 버퍼- SDLC/HDLC 모드 지원- 동기 모드에서 최대 5 Mbit/s 속도- DMA 전송에 필요한 신호 제공 |
Hayes ESP | 고성능 8포트 UART | - 1 KB 버퍼- 최대 921.6 kbit/s 속도 지원- 8개의 독립적인 포트 지원 |
Exar XR17V352, XR17V354, XR17V358 | 듀얼, 쿼드 및 옥탈 PCI Express UART, 16550 호환 레지스터 세트 | - 256바이트 송신 및 수신 FIFO- 프로그래머블 송신 및 수신 트리거 레벨- 송신/수신 FIFO 레벨 카운터- 분수 보율 생성기- 자동 RTS/CTS 또는 DTR/DSR 하드웨어 흐름 제어- RS-485 반이중 방향 제어 출력- 최대 속도: 25 Mbit/s |
Exar XR17D152, XR17D154, XR17D158 | 듀얼, 쿼드 및 옥탈 PCI 버스 UART, 16C550 호환 5G 레지스터 세트 | - 64바이트 송신 및 수신 FIFO- 송신 및 수신 FIFO 레벨 카운터- 프로그래머블 송신 및 수신 트리거 레벨- 자동 RTS/CTS 또는 DTR/DSR 흐름 제어- RS485 HDX 제어 출력- 최대 속도: 6.25 Mbit/s |
Exar XR17C152, XR17C154, XR17C158 | 듀얼, 쿼드 및 옥탈 5V PCI 버스 UART, 16C550 호환 레지스터 세트 | - 64바이트 송신 및 수신 FIFO- 송신 및 수신 FIFO 레벨 카운터- 자동 RTS/CTS 또는 DTR/DSR 흐름 제어- RS485 반이중 제어 출력- 적외선(IrDA 1.0) 데이터 인코더/디코더- 최대 속도: 6.25 Mbit/s |
모델명 설명 특징 및 기능
16C1550/16C1551 | 16바이트 FIFO 버퍼를 가진 UART | - 최대 1.5 Mbit/s 속도 지원- ST16C155X는 표준 16550과 호환되지 않으며, Microsoft Windows의 표준 직렬 포트 드라이버에서 작동하지 않음 |
16C2450 | 1바이트 FIFO 버퍼를 가진 듀얼 UART | - 두 개의 UART가 하나의 칩에 통합됨 |
16C2550 | 16바이트 FIFO 버퍼를 가진 듀얼 UART | - 핀 투 핀 및 기능적으로 16C2450와 호환- INS8250 및 NS16C550과 소프트웨어 호환 |
SCC2691 | NXP에서 현재 생산 중인 단일 채널 UART | - 프로그래머블 카운터/타이머 포함- 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s- TIA-422 및 TIA-485 모드 지원- 비표준 데이터 속도 지원 가능- PDIP-40, PLCC-44, 44핀 QFP 패키지에서 사용 가능 |
SCC28L91 | SCC2691의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC2692 | NXP에서 현재 생산 중인 듀얼 UART(DUART) | - 두 개의 통신 채널과 하나의 카운터/타이머로 구성- 각 채널은 독립적으로 프로그래밍 가능하며, 독립적인 송신 및 수신 데이터 속도 지원- 각 채널에 대해 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 최대 표준 속도: 115.2 kbit/s |
26C92 | SCC2692의 상위 호환 버전 | - 8바이트 송신기 및 수신기 FIFO- 최대 표준 속도: 230.4 kbit/s- 연속적인 양방향 비동기 전송(CBAT) 시 향상된 성능 제공 |
28L92 | 26C92의 상위 호환 버전 | - 선택 가능한 8바이트 또는 16바이트 송신 및 수신 FIFO- 향상된 데이터 속도 지원 및 빠른 버스 타이밍 특성- 고성능 마이크로프로세서에 적합- TIA-422 및 TIA-485 모드 지원- 3.3V 또는 5V로 작동 가능 |
SCC28C94 | NXP에서 생산 중인 쿼드 UART(QUART) | - 두 개의 SCC26C92 DUART를 결합한 모델- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 230.4 kbit/s의 최대 속도 지원- PLCC-52 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC2698B | NXP에서 생산 중인 옥탈 UART(OCTART) | - 네 개의 SCC2692 DUART를 하나의 패키지에 통합- 각 채널은 1바이트 송신기 홀딩 레지스터 및 4바이트 수신 FIFO- 동시 양방향 통신 시 다수의 인터럽트 발생 가능성- PDIP-64 및 PLCC-84 패키지에서 제공, Motorola 및 Intel 버스에 적응 가능 |
SCC28L198 | NXP에서 생산 중인 옥탈 UART(OCTART) | - SCC28C94의 업그레이드 버전으로, 8개의 독립적인 통신 채널 포함- 중재된 인터럽트 시스템으로 높은 채널 활동 시 효율적인 처리 가능- 최대 표준 속도: 460.8 kbit/s- PLCC-84 및 LQFP-100 패키지에서 제공- 3.3V 또는 5V로 작동 가능 |
Z85230 | Zilog에서 생산된 듀얼 포트 동기/비동기 모드 USART | - 2개의 통신 포트 지원- 채널당 4바이트 송신 버퍼 및 8바이트 수신 버퍼- SDLC/HDLC 모드 지원- 동기 모드에서 최대 5 Mbit/s 속도- DMA 전송에 필요한 신호 제공 |
Hayes ESP | 고성능 8포트 UART | - 1 KB 버퍼- 최대 921.6 kbit/s 속도 지원- 8개의 독립적인 포트 지원 |
Exar XR17V352, XR17V354, XR17V358 | 듀얼, 쿼드 및 옥탈 PCI Express UART, 16550 호환 레지스터 세트 | - 256바이트 송신 및 수신 FIFO- 프로그래머블 송신 및 수신 트리거 레벨- 송신/수신 FIFO 레벨 카운터- 분수 보율 생성기- 자동 RTS/CTS 또는 DTR/DSR 하드웨어 흐름 제어- RS-485 반이중 방향 제어 출력- 최대 속도: 25 Mbit/s |
Exar XR17D152, XR17D154, XR17D158 | 듀얼, 쿼드 및 옥탈 PCI 버스 UART, 16C550 호환 5G 레지스터 세트 | - 64바이트 송신 및 수신 FIFO- 송신 및 수신 FIFO 레벨 카운터- 프로그래머블 송신 및 수신 트리거 레벨- 자동 RTS/CTS 또는 DTR/DSR 흐름 제어- RS485 HDX 제어 출력- 최대 속도: 6.25 Mbit/s |
Exar XR17C152, XR17C154, XR17C158 | 듀얼, 쿼드 및 옥탈 5V PCI 버스 UART, 16C550 호환 레지스터 세트 | - 64바이트 송신 및 수신 FIFO- 송신 및 수신 FIFO 레벨 카운터- 자동 RTS/CTS 또는 DTR/DSR 흐름 제어- RS485 반이중 제어 출력- 적외선(IrDA 1.0) 데이터 인코더/디코더- 최대 속도: 6.25 Mbit/s |
Exar XR17V252, XR17V254, XR17V258 | 듀얼, 쿼드 및 옥탈 66 MHz PCI 버스 UART, 전력 관리 지원, 16C550 호환 레지스터 세트 | - 64바이트 송신 및 수신 FIFO- 프로그래머블 트리거 레벨 및 레벨 카운터- 분수 보율 생성기- 자동 RTS/CTS 또는 DTR/DSR 하드웨어 흐름 제어- RS-485 반이중 제어 출력- 적외선(IrDA 1.0) 데이터 인코더/디코더- 최대 속도: 6.25 Mbit/s |
모뎀에서의 UART 역할
모뎀과 UART의 통합
개인용 컴퓨터에 사용되는 모뎀은 마더보드 슬롯에 꽂히며, 이 모뎀 카드에는 UART 기능도 포함되어야 합니다. 초기 IBM 개인용 컴퓨터에 포함된 8250 UART 칩은 수신기와 송신기 각각에 1개의 문자 버퍼만을 갖고 있었습니다. 이로 인해 9600 bit/s 이상의 속도에서는, 특히 멀티태스킹 시스템에서 운영되거나 디스크 컨트롤러의 인터럽트를 처리할 때, 통신 소프트웨어의 성능이 저하되었습니다.
FIFO 버퍼의 도입
고속 모뎀에서는 FIFO 버퍼를 포함한 UART를 사용하여 원래의 8250 칩과 호환성을 유지하면서도 성능을 향상시켰습니다. 이러한 추가적인 FIFO 버퍼는 소프트웨어가 수신된 데이터에 응답할 시간을 더 제공하여, 고속 통신에서도 안정적인 성능을 유지할 수 있게 했습니다.
이 설명은 모뎀에서 UART의 역할과 초기 8250 UART 칩의 한계, 그리고 FIFO 버퍼를 포함한 고속 UART의 필요성을 다루고 있습니다.
고속 비트율에서의 성능 요구 사항과 FIFO의 중요성
FIFO 버퍼의 필요성
고속 비트율에서의 성능 요구 사항을 살펴보면, 16-, 32-, 64- 또는 128-바이트 FIFO가 왜 필요한지 이해할 수 있습니다. Microsoft의 DOS 시스템 사양에 따르면, 인터럽트는 한 번에 1밀리초 이상 비활성화되지 않아야 합니다.[citation needed] 그러나 일부 하드 디스크 드라이브와 비디오 컨트롤러는 이 사양을 위반할 수 있습니다.
9600 bit/s의 비트율에서의 상황
9600 bit/s의 전송 속도에서는 약 1밀리초마다 문자 하나가 전달되므로, DOS 시스템이 최대 인터럽트 비활성화 시간을 준수한다면, 1바이트 FIFO는 이 속도에서 충분해야 합니다. 그러나 이 속도 이상의 비트율에서는 새 문자가 수신될 때까지 이전 문자가 처리되지 않을 수 있으며, 이로 인해 이전 문자가 손실될 수 있습니다. 이러한 현상을 **오버런 오류(Overrun Error)**라고 하며, 문자 하나 이상이 손실되는 결과를 초래합니다.
오버런 오류와 FIFO의 역할
FIFO 버퍼는 이러한 오버런 오류를 방지하기 위해 필요합니다. 높은 비트율에서는 인터럽트가 발생하기 전에 여러 문자가 수신될 수 있으므로, FIFO 버퍼가 클수록 더 많은 문자를 저장할 수 있어 데이터 손실을 방지할 수 있습니다. 따라서 고속 통신에서는 16바이트 이상의 FIFO 버퍼가 필수적입니다.
이 설명은 고속 통신에서 인터럽트와 FIFO 버퍼의 중요성을 강조하며, FIFO 버퍼가 오버런 오류를 방지하는 데 어떻게 기여하는지를 설명합니다.
FIFO 버퍼의 효과와 고속 비트율에서의 UART 성능 향상
FIFO 버퍼의 역할
16바이트 FIFO를 사용하면, 컴퓨터가 인터럽트를 처리하기 전에 최대 16개의 문자를 수신할 수 있습니다. 이는 인터럽트 처리 지연 시간이 1밀리초인 경우, 컴퓨터가 신뢰할 수 있게 처리할 수 있는 최대 비트율을 9600 bit/s에서 153,000 bit/s로 증가시킵니다. 32바이트 FIFO를 사용하면 최대 비트율이 300,000 bit/s 이상으로 증가합니다.
FIFO 버퍼의 두 번째 장점
FIFO 버퍼의 또 다른 장점은 컴퓨터가 처리해야 하는 인터럽트의 빈도가 크게 줄어든다는 점입니다. 예를 들어, 8%에서 12% 정도로 인터럽트 처리 횟수가 감소합니다. 이로 인해 CPU는 화면 업데이트나 다른 작업에 더 많은 시간을 할애할 수 있으며, 결과적으로 컴퓨터의 응답 속도가 개선됩니다.
FIFO 버퍼와 시스템 성능
FIFO 버퍼를 도입함으로써, 특히 고속 통신 환경에서 UART의 성능이 크게 향상됩니다. 더 큰 FIFO 버퍼는 데이터 손실을 방지하고, 시스템 자원의 효율적인 사용을 가능하게 하여 전반적인 성능을 개선합니다.
이 설명은 FIFO 버퍼의 크기가 UART 성능에 미치는 영향과 고속 비트율에서의 시스템 성능 향상에 대해 강조합니다.
UART의 에뮬레이션
에뮬레이션의 개요
UART의 통신 프로토콜이 비교적 간단하기 때문에, 이를 **비트뱅잉(bit banging)**을 통해 소프트웨어적으로 에뮬레이션할 수 있습니다. 비트뱅잉은 GPIO 핀을 제어하여 UART의 기능을 소프트웨어로 구현하는 방법입니다. 이 방법은 Arduino나 Teensy와 같은 현대적인 마이크로컨트롤러에서 사용될 수 있습니다.
프로그래머블 I/O 상태 기계
또한, Raspberry Pi Pico의 PIO(Programmable I/O)나 NXP의 FlexIO와 같은 프로그래머블 I/O 상태 기계에서도 UART를 에뮬레이션할 수 있습니다. 이러한 기기들은 하드웨어의 특정 핀을 프로그래밍하여 UART와 같은 통신 프로토콜을 구현할 수 있도록 지원합니다.
에뮬레이션의 장점
UART를 에뮬레이션하면, 추가적인 하드웨어 없이도 UART 기능을 구현할 수 있어 비용 절감과 유연성을 제공할 수 있습니다. 이는 특히 소형 마이크로컨트롤러나 특정 하드웨어 제약이 있는 프로젝트에서 유용하게 사용될 수 있습니다.
이 설명은 UART의 간단한 통신 프로토콜을 비트뱅잉이나 프로그래머블 I/O 상태 기계를 사용하여 소프트웨어적으로 에뮬레이션하는 방법을 다룹니다.