4. AHB UART Peripheral

 UART 통신이기 때문에 기본적으로 통신 프로토콜이다. SoC가 독립적으로 동작할 수 있지만, 외부의 대상과 데이터를 주고 받기 위해서는 통신 프로토콜이 필요하다. 프로토콜은 두 가지의 종류가 있다.

 

 

[Serial Communication : 직렬 통신]

- 매 순간마다 한 비트 단위로 데이터를 송수신한다.

- 한 라인에서 독립적으로 보낼 수 있다.

- 하나의 라인으로 동작하기 때문에 하드웨어를 구성할 때 필요한 리소스가 적다.

- UART, SPI, I2C(I square C), USB, Ethernet, etc.

 

[Parallel Communication : 병렬 통신]

- 한 번에 멀티플 비트를 송수신한다.

- 각각의 신호 사이에 Cross Talk 또는 Noise 등이 존재하기 때문에 신뢰가 떨어진다.

- 반면에, 한 번에 여러 비트를 송수신할 수 있기 때문에 단위 시간 동안 보낼 수 있는 비트 수가 많다는 장점이 있다.

 

각 장단점은 서로 대응된다.

 

 

Serial Communication 두 가지 모드로 나뉜다.

) Synchronous Serial Transmission

- 반드시 기준 신호가 필요하며, 일반적으로 CLK이라는 이름으로 불린다.

- CLK을 기준으로 송신단과 수신단이 데이터를 주고 받는 형식이다.

- 해당되는 CLK을 기준으로 언제 데이터를 가져올 지를 안정적으로 찾을 수 있기 때문에 비동기식 대비 데이터를 고속으로 주고 받을 수 있다.

) Asynchronous Serial Transmission

- CLK와 상관없이 데이터를 주고 받는다.

- 미리 협의된 속도로 데이터를 주고받아야 하고 사전 정의된 패턴의 형태로 보내야 한다.

- CLK을 생략할 수 있기 때문에 하드웨어는 효율적으로 구성할 수 있다.

 

 

 

[UART : Universal Asynchronous Receiver & Transmitter]

- Serial Communication에 속하면서 Asynchronous이다. 따라서 CLK을 필요로 하지 않고 비트 단위로 데이터를 주고 받게 된다.

- 따라서 협의된 속도로 데이터를 주고 받아야 한다. 이 속도를 'baud rate'라고 한다.

 

 

 

 

 

[UART Protocol]

- 데이터를 보내고 끝마치는 시점을 약속해야 하는데 우리는 이를 'Start Bit'와 'Stop Bit'로 협의를 한다. 기본 Idle 상태에서는 1로 설정이 되어있다가 0으로 세팅이 되면서 UART 송신의 시작을 알리게 된다. 이후, 끝난 것을 알려줄 때 Stop Bit를 1로 세팅한다.

 

Parity Bit는 오류 검출 코드이다. 

 

 

 

 

 

 

 

 

 

 

 

//////////////////////////////////////////////////////////////////////////////////////////////

글 작성한거 날아간 줄 ㅠㅠ...

'IDEC > Cortex - M0' 카테고리의 다른 글

6. VGA Peripheral (1)  (0) 2023.07.20
5. Timer / GPIO / 7-Segment Peripherals  (0) 2023.07.19
3. AMBA 3 AHB-LITE Bus Architecture  (0) 2023.07.14
2. Cortex-M0 Overview / Register  (0) 2023.07.14
1. SoC란 무엇인가?  (0) 2023.07.14