Serial통신, Uart, RS232, RS422, RS485, I2C, SPI, TCP, UDP 통신에 대해서 정리해보겠습니다.
우선 Serial(직렬)인터페이스과 Parallel(병렬)인터페이스의 차이점 부터 알아보겠습니다.
그림과 같이 병렬 인터페이스는 각 선당 1비트 씩 8비트를 보낼 때 8개의 선을 사용하여 한번에 데이터를 보내주기 때문에 전송속도가 빠르다는 장점이 있습니다.
직렬 인터페이스는 한 선에 8비트를 보냄으로 전송시간이 길다는 단점이 있습니다.
그리고 병렬 통신은 보통 CPU, HDD, FDD와 VIDEO 카드에 주로 사용을 하며 전송속도는 빠르지만 채널 간 간섭이 존재하고 근거리에 적합합니다.
직렬 통신은 구현이 쉽고 멀리 전송이 가능하고 기존의 통신선로(전화선)를 쉽게 활용할 수 있어 비용이 절감 가능합니다.
이제 UART에 대해 알아보겠습니다.
UART는 TX(Transmit)선과 RX(Receive)선 2개로 데이터를 주고 받을 수 있으며 주는 동시에 받을 수도 있으니 전이중(FULL DUFLEX) 방식이 됩니다.
UART 패킷 1개의 시작 비트, 최대 9개의 데이터 비트, 패리티 1비트, 1~2개의 정지 비트가 있습니다.
송신 Uart와 수신 Uart는 동일한 Baud rate으로 약 10% 오차만 허용 가능합니다.
UART는 최대 115200bps 로 초당 115200bit의 데이터를 보낼 수 있습니다.
UART는 또한 TTL레벨로 동작하기에 0V에서는 0, 5V에서는 1로 디지털 신호를 받아서 동작합니다.
곧 말씀드릴 RS232같은 경우에는 UART보다는 전압레벨이 올라가서 +13V 에서 1 -13V 에서 0으로 전압이 높아짐에 따라 전송거리와 전송속도가 올라갑니다.
실질적으로 RS232라는 것은 비동기 식 통신 콘트롤러에서 나오는 디지털신호를
외부와 인터페이스 시키는 전기적인 신호 방식의 하나(하드웨어 규격)
RS232, RS423은 Singel-Ended, 한 선 사용 비용절감, 노이즈에 약합니다.
RS422, RS485는 Differential, 두 선 사용, 소음이 적고 장거리 통신에 적합합니다.
위의 그림과 같이 Differential 신호같은 경우에는 잡음이 생기더라도 위의 그림과 같이 +- 값이 같이 상승하기 때문에 노이즈로 인해 전압이 상승하더라도 전압레벨은 변함이 없기 때문에 노이즈에 강합니다.
RS232는 UART와 동일하게 TX, RX 신호선을 가지고 1:1통신을 합니다.
RS422는 TX+선 TX-선, RX+선, RX-선 총 4개의 선을 사용합니다.
1 대 N 통신이 가능하며 슬레이브 연결은 각 선에서 분기해서 연결합니다.
RS485같은 경우에는 보통 2선을 사용하며 2개의 선만으로 통신을 하게 되면 반이중 통신이 됩니다.
4선을 사용하면 RS422과 같이 전이중방식으로 동작이 가능합니다.
RS232의 통신 속도입니다. Baud Rate가 올라갈수록 통신거리는 줄어드는 것을 확인할 수 있습니다.
RS422 and RS485 케이블의 길이에 따른 통신속도입니다.
RS422 and RS485는 최대 1200m까지 송신이 가능하지만 100kbps로 전송을 할 수 있고
12~15m에서 통신을 할 경우 최대 10Mbps 의 전송속도를 가지는 것을 확인할 수 있습니다.
RS232는 전이중, RS422도 전이중, RS485는 2선 사용 시 반이중으로 송신 후 대기시간이 존재합니다.
RS232, RS485, I2C, SPI의 최대 전송 속도와 최대 거리 비교입니다.
UART, I2C, SPI 는 마이크로프로세서(cpu)등과 소자간에 소프트웨어적인 통신이라고 생각하면 되고
RS시리즈는 실제로 하드웨어의 연결을 할 때 직접적인 연결에 필요한 통신규격이라고 생각하면 됩니다.
I2C입니다.
I2C는 uart와는 다른 점이 SCL 클락선이 존재합니다. 그리고 데이터 SDA선은 하나입니다.
데이터 선이 하나이므로 마스터에서 데이터를 보낼 때는 슬레이브에서 데이터를 받을 수 없고 반대의 경우에도 마찬가지라 반이중 방식입니다.
위의 그림과 같이 클락마다 7비트의 슬레이브 고유의 Address 주소를 입력해주면 그 후에 8비트의 데이터를 보내는 방식입니다.
호출하는 구조입니다.
- 만약 슬레이브 주소가 동일하면 슬레이브 장치간에 서로 충돌이 일어날 수 있습니다.



I2C는 5개의 모드를 사용할 수 있고 최대 5Mbps까지 통신이 가능합니다.
다음은 SPI통신입니다.
SPI통신은 I2C와 다른 점은 데이터 선이 MOSI(Master Out, Slave In), MISO(Master In, Slave Out) 2개의 선이 있어서 데이터를 보낼 때 같이 받을 수도 있으니 전이중방식이 됩니다.
그리고 고유의 Address값을 보내야하는 I2C방식과는 달리 SS(슬레이브선택) 또는 CS(칩선택) 선을 추가로 사용하여 데이터를 전송합니다.
위와 같이 클락마다 데이터를 상승엣지마다 SI에 데이터를 받고 하강엣지에 SO에 데이터를 보냅니다.
SPI통신에서 CS선은 위와 같이 2가지의 방법으로 CS선을 1,2,3으로 나누어 각 슬레이브에 각각 데이터 수신 신호를 보내주면 데이터 송신 시 겹치지 않고 데이터 신호를 받을 수 있습니다.
CS선을 공통으로 연결하게 되면 데이지체인화된 시프트레지스터나 LED스트립을 구동할 때 사용할 수 있습니다.
UART, SPI, I2C의 방식의 비교입니다. SPI가 10~ 100Mbps 로 통신 속도가 가장 빠르지만 ss선 등을 사용하여 회로가 복잡해질 수 있습니다.
TCP와 UDP의 차이를 알아보겠습니다.
TCP와 UDP는 위의 통신들과는 다르게 PC의 네트워크 관련한 전송 방법입니다.
TCP는인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜입니다.
UDP는 데이터를 데이터그램 단위로 처리하는 프로토콜입니다.
TCP는 수신속도가 UDP에 비해 속도가 느린 반면에 신뢰성이 높고 이메일이나 프로그램 다운로드에 쓰입니다.
UDP는 데이터를 보내고 잘 수신되었는지 확인을 하지 않기 때문에 신뢰성이 낮은 대신 전송속도가 빠르고 인터넷방송이나 실시간 동영상, 노래 스트리밍에 주로 쓰입니다.
'VERILOG' 카테고리의 다른 글
Setup time, Hold Time, Violation, Slack (0) | 2024.06.28 |
---|---|
Smart ZYNQ보드 PS 측의 EMIO 확장 이더넷(ethernet) 네트워크 포트 기능 구현 (0) | 2024.05.14 |
Rotary Encoder(RSI 503) 및 MAX33076E(수신기) VERILOG 동작 (0) | 2024.04.05 |
DMA(Direct Memory Access) Loop test (3) | 2024.03.06 |
Hook script file 에러 시 해결 방법 (0) | 2024.02.27 |