UART 문자 타이밍
UART는 공유 클록 없이 어떻게 수신할까요?
수신기는 유효한 시작 이벤트를 기준으로 타이밍을 설정한 다음, 자체 로컬 클록으로 문자 비트를 샘플링하고 정지 비트 위치를 확인합니다. 양쪽 장치의 설정은 서로 호환되어야 합니다. 새 문자가 시작되면 타이밍을 다시 맞출 수 있지만, 프레이밍 검사만으로 데이터 무결성이나 애플리케이션의 정상 처리가 입증되지는 않습니다. 이 단순화된 논리 다이어그램은 커넥터 전압이나 제품 측정값을 나타내지 않습니다.
시작
유효한 시작 이벤트가 로컬 타이밍 기준을 설정합니다.
샘플링
안정적인 비트 구간 내에서 샘플링하면 신호 전이 구간을 피하는 데 도움이 됩니다.
정지
예상 정지 비트 위치에서 로우 상태가 감지되면 프레이밍 오류가 표시될 수 있습니다.
양쪽 장치의 보 레이트, 데이터 비트, 패리티 및 정지 비트를 기록합니다.
승인된 테스트에서 논리 신호 타이밍과 수신 오류를 비교합니다.
실제 애플리케이션 바이트와 메시지 해석을 확인합니다.
선정 및 검증 체크리스트 — 펼치기
| 점검 항목 | 확인할 사항 | 검증 방법 |
|---|---|---|
| 인터페이스 | 전기적 호환성 | 모델 문서 확인 |
| 문자 | 타이밍 및 형식 일치 | 양쪽 설정 비교 |
| 적용 분야 | 바이트 및 메시지의 정확성 | 알려진 패턴의 테스트 기록 보관 |
직렬 통신 장치는 별도의 클록선을 공유하지 않습니다. 그렇다면 수신기는 변화하는 신호에서 바이트를 어떻게 식별할까요? 시작 비트, 정지 비트, 그리고 각 장치의 자체 타이밍에 그 답이 있습니다. 이 과정을 이해하면 작은 설정 차이로도 문자 손상이나 프레이밍 오류가 발생하는 이유와 이더넷 연결만으로 올바른 직렬 수신이 입증되지 않는 이유를 알 수 있습니다.

전기적 인터페이스와 문자 형식을 구분하세요
산업용 장비는 RS232 또는 RS485을 통해 시리얼 디바이스 서버나 데이터 광트랜시버에 연결될 수 있습니다. 인터페이스 트랜시버는 회선 신호를 칩이 처리할 수 있는 논리 신호로 변환합니다. UART는 선택된 문자 형식에 따라 개별 비트를 처리합니다. UART는 범용 비동기 수신기/송신기를 뜻하며, 비동기 동작에서는 일반적으로 공유 동기화 클록선을 사용하지 않습니다.
이 그림의 하이와 로우는 UART 논리 상태를 나타내며, 실제 RS232 커넥터 전압이나 RS485의 두 도체 각각의 대지 전압을 나타내지 않습니다. 인터페이스 유형, 기준 접지, 차동 배선 및 장치의 제한 사항은 별도로 확인해야 합니다. 논리 다이어그램은 배선 지침이 아니며, TTL 핀을 호환되지 않는 인터페이스에 직접 연결해서는 안 됩니다.
수신 경로는 회선 트랜시버, UART 수신 로직, 바이트 버퍼 및 애플리케이션으로 단순화할 수 있습니다. 단계 사이에 신호가 전달된다고 해서 애플리케이션이 정확한 업무 레코드를 수신했다는 뜻은 아닙니다. 데이터가 네트워크에 들어가기 전에 문자 수신이 정상적으로 이루어져야 합니다.
프레임에서 애플리케이션 데이터가 아닌 부분은 무엇일까요?
일반적인 8N1 형식에서 8은 데이터 비트 8개를, N은 패리티 없음을, 1은 정지 비트 1개를 지정합니다. 문자에는 시작 비트도 포함되므로, 애플리케이션 데이터 8비트가 회선에서 전송되는 전체 내용은 아닙니다. 시작 비트와 정지 비트는 문자를 구분하고 구성하는 역할을 하며, 추가 값으로 애플리케이션 데이터에 붙여서는 안 됩니다.
일반적인 비반전 논리 표현에서 유휴 상태는 하이, 시작 비트는 로우이며, 정지 비트에서는 다시 하이가 됩니다. 데이터는 보통 최하위 비트부터 전송되지만 주변장치별 옵션이 다를 수 있으므로 양쪽 장치의 문서상 설정이 일치해야 합니다. D0부터 D7까지는 위치를 표시하며, 고정된 바이트나 인접 비트 사이의 필수 전이를 나타내지 않습니다.
같은 값의 데이터 비트가 연속되면 회선이 동일한 상태를 유지할 수 있습니다. 수신기는 전이 횟수를 세어 8개의 비트를 셀 수 없습니다. 시작 이벤트 이후의 타이밍을 기준으로 연속되는 비트 구간을 판단합니다. 따라서 보 레이트 설정을 일치시키는 것이 중요합니다.
유휴 상태에서 수신은 어떻게 시작될까요?
UART는 입력을 감시합니다. 시작일 가능성이 있는 전이를 감지하면, 로우 상태가 해당 구현의 시작 조건을 충족하는지 확인하고 데이터 샘플링 시점을 정합니다. 짧은 글리치가 자동으로 완전한 시작 비트로 인정되는 것은 아닙니다. 필터링과 시작 유효성 검사는 주변장치마다 다르므로, 모든 장비가 동일한 내부 로직을 사용한다고 가정해서는 안 됩니다.
시작 비트를 각 문자 앞에서 보내는 시작 준비 신호라고 생각해 보세요. 양쪽 장치가 대략적인 속도를 맞추면 수신기는 자체 타이머에 따라 순서대로 샘플링합니다. 이 비유는 실제 음성 신호가 전송된다는 뜻도, 일반적인 UART가 어떤 보 레이트든 자동으로 인식한다는 뜻도 아닙니다. 여전히 호환되는 설정이 필요합니다.
많은 UART는 오버샘플링을 사용합니다. 내부 샘플링 클록이 한 비트 구간 동안 여러 번 동작하여 유효한 시작이나 샘플링 위치를 결정하는 데 도움을 줍니다. 일부는 여러 샘플을 바탕으로 판정합니다. 이는 에지 위치 파악과 외란 대응에 도움이 될 수 있지만, 무제한의 오차를 허용하지는 않습니다. 특정 칩의 샘플링 배수는 모든 FCTELE 제품에 공통으로 적용되는 사양이 아닙니다.

비트의 중간 부근에서 샘플링하는 이유는 무엇일까요?
비트 경계 부근에서는 신호가 전이 중일 수 있습니다. 전파, 에지 속도 및 입력 임계값은 수신기가 신호를 하이 또는 로우로 판단하는 시점에 영향을 줍니다. 안정적인 구간 안에서 샘플링하면 에지 바로 옆에서 샘플링할 때보다 신호를 해석하기 쉽습니다. 가운데 점들은 개념을 설명하기 위한 것이며, 실제 칩이 단 한 번만 샘플링하거나 항상 기하학적 정중앙에서 샘플링한다는 뜻은 아닙니다.
송신기와 수신기는 서로 다른 로컬 클록을 사용합니다. 두 장치가 판단하는 비트 지속 시간이 다르면, 시작 시점에 타이밍을 맞추더라도 예상 샘플링 위치가 점차 어긋날 수 있습니다. 타이밍 차이는 문자 끝부분으로 갈수록 더 뚜렷해져 마지막 데이터 비트나 정지 비트 부근에서 잘못된 구간을 샘플링하게 될 수 있습니다.
짧은 메시지가 간헐적으로 올바르게 수신된다고 해서 신뢰할 수 있는 설정임이 입증되지는 않습니다. 어떤 비트 패턴은 문제를 감추고 다른 패턴은 문제를 드러낼 수 있습니다. 인수 테스트에서는 터미널에 읽을 수 있는 문자 몇 개가 표시되는 것을 충분한 증거로 여기기보다 실제 애플리케이션 내용과 지속적인 전송을 검증해야 합니다.
정지 비트 검사로 무엇을 알 수 있을까요?
설정된 데이터 비트와 선택적 패리티 비트 다음에 수신기는 해당 구현 방식에 따라 정지 비트 위치를 확인합니다. 정지 상태가 예상되는 위치에서 로우를 감지하면 프레이밍 오류 상태를 설정할 수 있습니다. 프레이밍 오류는 수신 형식 검사 실패를 알리는 것이며, 어느 전선에 문제가 있는지 식별하는 것은 아닙니다.
보 레이트나 문자 형식의 불일치, 간섭, 비정상적으로 지속되는 로우 상태는 이와 관련된 증상을 유발할 수 있습니다. 반대로 프레이밍 오류가 없다고 해서 데이터가 정확하다는 뜻은 아닙니다. 잘못된 샘플링에서도 정지 비트 위치가 우연히 하이로 감지될 수 있습니다. 데이터에는 여전히 무결성 검사나 애플리케이션 검증이 필요합니다. 또한 정지 비트는 완전한 업무 메시지의 끝을 나타내는 표식이 아닙니다.
오류 플래그가 문자에 어떤 방식으로 함께 전달되는지, 드라이버가 해당 문자를 버리는지, 소프트웨어에서 카운터에 접근할 수 있는지는 하드웨어와 소프트웨어에 따라 다릅니다. 애플리케이션에 아무것도 표시되지 않는다고 해서 회선 입력이 없었다고 바로 단정할 수는 없습니다. 어느 단계에서 오류가 있는 문자를 걸러냈을 수 있습니다. 바이트 내용과 함께 상태 정보도 보존하세요.

다음 프레임에서 타이밍을 어떻게 다시 맞출 수 있을까요?
한 문자가 끝나면 수신기는 자체 규칙에 따라 다음 시작 이벤트를 찾는 상태로 돌아갑니다. 새로운 유효한 시작은 수신 타이밍을 다시 맞출 기회를 제공합니다. 연속 전송 시 문자 사이에 긴 무신호 간격이 반드시 필요한 것은 아니지만, 설정된 문자 형식과 정지 비트 지속 시간 요건은 충족해야 합니다.
문자별 동기화가 전체 데이터 교환을 자동으로 바로잡아 주지는 않습니다. 문자를 잘못 수신했다면 애플리케이션 프로토콜에서 누락, 중복 또는 손상된 바이트를 여전히 처리해야 합니다. UART 문자 경계, 시리얼 서버의 네트워크 패킷 경계, 애플리케이션 메시지 경계는 서로 다릅니다. 정지 비트를 추가하는 것으로 올바른 메시지 파싱을 대신할 수는 없습니다.
문제를 조사할 때는 양쪽 장치의 보 레이트, 데이터 비트, 패리티, 정지 비트 및 인터페이스 유형을 기록한 다음, 승인된 조건에서 파형과 오류 카운터를 관찰하세요. 한 번에 변수 하나만 변경하고 변경 전후의 알려진 데이터를 비교하세요. 중요한 생산 통신 링크의 매개변수 변경은 통제되지 않은 시행착오가 아니라 유지보수 계획에 따라 진행해야 합니다.
단계별 증거를 연결하세요
입력 파형이 이미 비정상이라면 전기적 인터페이스, 배선 및 간섭을 조사하세요. 파형은 식별 가능하지만 바이트가 손상된다면 문자 형식, 타이밍 및 샘플링을 확인하세요. 바이트는 정확하지만 애플리케이션이 정상적으로 동작하지 않는다면 버퍼링, 네트워크 캡슐화 및 애플리케이션의 해석을 살펴보세요. 단계별 증거는 이더넷 스위치를 반복해서 교체하는 것보다 더 유용한 조사 방향을 제공합니다.
FCTELE 시리얼 디바이스 서버와 데이터 전송 제품은 산업용 장비를 연결합니다. 실제 인터페이스와 설정 기능은 해당 모델 문서에 따라 달라집니다. 이 가이드는 일반적인 UART 수신을 설명하며, 특정 제품의 내부 회로나 측정된 허용 오차를 설명하지 않고 검증되지 않은 최대 속도도 제시하지 않습니다. 납품 검증 자료에는 설정, 테스트 조건, 원본 파형 및 애플리케이션 검증 결과가 포함되어야 합니다.
참고 자료
TI: UART 프로토콜 및 오류 개요; Microchip: 비동기 수신기 예시; FCTELE 시리얼 게이트웨이 제품 정보. 제품 회로나 허용 오차 측정값이 아닌 일반적인 설명용 그림입니다.
다음 중국어 기술 문서에서 번역: 중국어 원문 읽기.
자주 묻는 질문
UART 논리 상태는 RS232 전압과 같을까요?
아니요. 회선 트랜시버는 전기 신호를 변환합니다. 실제 인터페이스 전압과 배선은 별도로 확인하세요.
프레이밍 오류가 없으면 데이터가 정확하다는 뜻일까요?
아니요. 데이터가 잘못되었더라도 정지 비트 샘플은 우연히 하이일 수 있습니다. 무결성 검사와 애플리케이션 검증은 여전히 필요합니다.
정지 비트가 애플리케이션 메시지의 끝을 나타낼까요?
아니요. 정지 비트는 문자 형식의 일부이며, 메시지 경계는 애플리케이션 프로토콜에서 정의합니다.
범위 및 추가 읽을거리
특정 장치의 회로나 측정된 허용 오차가 아닌 일반적인 UART 타이밍입니다.


