본문 바로가기
Embedded SW/[Infineon] Embedded SW Project

[Infineon] 16.1. Aurix (TC23x) UART 배경설명

by 방구석 임베디드 2021. 6. 24.
반응형

먼저 UART란 무엇인지에 대해서 알아 볼 필요가 있다.

위키 백과를 보면 아래와 같이 정의 할수 있다.

UART(범용 비동기화 송수신기: Universal asynchronous receiver/transmitter)는 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종이다. UART는 일반적으로 EIA RS-232, RS-422, RS-485와 같은 통신 표준과 함께 사용한다. UART의 U는 범용을 가리키는데 이는 자료 형태나 전송 속도를 직접 구성할 수 있고 실제 전기 신호 수준과 방식(이를테면 차분 신호)이 일반적으로 UART 바깥의 특정한 드라이버 회로를 통해 관리를 받는다는 뜻이다.
통신 데이터는 메모리 또는 레지스터에 들어 있어 이것을 차례대로 읽어 직렬화 하여 통신한다. 최대 8비트가 기본 단위이다.
UART는 일반적으로 컴퓨터나 주변 기기의 일종으로 병렬 데이터를 직렬화 하여 통신하는 개별 집적 회로이다. 비동기 통신이므로 동기 신호가 전달되지 않는다. 따라서 수신 쪽에서 동기신호를 찾아내어 데이터의 시작과 끝을 시간적으로 알아 처리할 수 있도록 약속되어 있다. 디지털 회로는 자체의 클럭 신호를 추가로 사용하여 정해진 속도로 수신 데이터로 부터 비트 구간을 구분하고 그 비트의 논리 상태를 결정하여 데이터 통신을 하는 USRT(범용 동기화 송수신기: Universal synchronous receiver/transmitter)도 사용한다.
UART는 보통 마이크로컨트롤러에도 포함되어 있다. 듀얼 UART, 곧 DUART는 두 개의 UART를 하나의 칩에 합친 것이다. 수많은 현대의 집적 회로(IC)는 동기화 통신인 USRT도 함께 지원한다. 이러한 장치들은 'USARTs'(범용 동기화/비동기화 송수신기: universal synchronous/asynchronous receiver/transmitter) 또는 'USART/UART'로도 부른다.

다시 말해서, 비동기 통신 방식이다.

예를 들어서 아래 그림을 보도록 하자!

먼저 아래로 0으로 내려가면서 시작을 알린다.

그리고 10000110 이라는 값이 보인다.

최하위 비트(least significant bit, LSB) 를 먼저 보낸다.

따라서, 0110 0001 이라는 값이 전달된 것이라고 볼수 있다.

이것은 십진수로 97이다.

이것을 아스키 코드로 보면 a 라는 것을 알수 있다.

 따라서 아래의 값은 a를 전달하고 있는것을 볼수 있다.

아래와 같이 MCU안에는 UART 통신 모듈이 들어가 있다.

그리고 Tx라인을 통해서 위와 같은 0~3.3V 또는 0~5V 전압레벨로 정보를 전달하고, Rx 라인을 통해 동일한 전압레벨로 정보를 전달 받는다.

하지만 위의 전압레벨은 장거리 전송에 있어서 노이즈에 취약하다.

따라서 -12V~12V의 전압레벨을 가지는 RS232 통신방식으로 전압레벨을 변경하여 전달한다.

아래는 TTL에서 RS232로 변환하는 모듈을 나타내고 있다.

따라서, 이제 아래와 같은 그림이 그려지게 된다.

 

그리고 나는 이 UART신호를 입력받아

433MHz 무선통신 모듈을 사용하여, RS232방식이 아닌 바로 무선통신으로 정보를 전달하였다.

결국 나는 저 모듈을 통해서 TTL 레빌로 바로 정보를 전달 받아서 Rx를 수행하고 TTL 레벨로 Tx정보를 보내면 된다.

 

그렇다면 인피니언을 통해서 어떻게 UART 기능을 설계해야 하는 것일까?

 

반응형

댓글