시리얼 통신은 데이터를 한 비트씩 순차적으로 전송하는 방식입니다.
시리얼 통신은 직렬 연결이라는 뜻을 가지고 있음
직렬 연결은 한번에 하나의 비트단위로 1(High)과 0(Low)의 신호로 데이터를 전송하는 통신 방법.
시리얼 통신은 동기식과 비동기식의 2가지 방법으로 분류
Bit Rate (BPS : Bit Per Second)
데이터 전송 속도 BPS(Bit Per Second)는 초당 전송되는 비트 수를 말한다. 예를 들어, 통신속도가9600bps라면 1초에 9,600개의 비트 정보를 전달할 수 있다는 의미이다. 즉 비트 하나를 보내기 위해 104.2us(1s/9600bit)가 필요하다.
Baud Rate
Baud Rate는 변조 속도로 초당 전송되는 심볼 수(Symbol, 의미 있는 데이터의 묶음). 심볼이란 말은 의미 있는 데이터 비트의 묶음으로 시리얼 통신에서는 데이터 비트가 8bit를 사용하므로 8bit가 하나의 심볼.
즉, 시리얼 통신에서 9600bps 통신 속도는 1200baud rate와 같다.
Baud는 상대적인 단위로 1bit가 정보의 기본 단위인 경우, bit rate와 baud rate는 같아 진다.
데이터 비트 ( Data bit )
실제 주거나 받을 데이터에 대한 비트 영역 규약이다. 5~9 비트를 선택할 수 있다.
패리티 비트 ( Pairty bit )
통신 에러 검출 방법인 패리티 비트를 사용하는 지에 대한 여부이다.
패리티 비트 검사 방식은 하나의 비트로 에러를 검출하는 것으로 데이터 내의 1 비트 수를 체크하여 짝수와 홀수에 따라 에러를 검출하는 방법이다.
스탑 비트 ( Stop bit )
주거나 받는 쪽의 통신을 언제 끊을 지에 대한 비트 영역이다.
통상적 세팅
9600 8N1
9600은 통신속도, 8은 데이터 영역 비트, N은 패리티 비트 미사용
스탑비트는 1비트로 하겠다는 뜻이다.
동기식 시리얼 통신에는 SPI, I2C 통신이 대표적이고
비동기식 시리얼 통신은 UART( RS232, RS422, RS485 ) 가 있다.
동기식 통신은 송신자와 수신자가 공통의 클럭 신호(Clock Signal) 를 사용하여 데이터를 전송하는 방식.
클럭 신호 사용 : 송신과 수신이 동일한 클럭을 기반으로 동작함.
빠른 데이터 전송 속도 : 비동기식보다 동기화 과정이 효율적이므로 속도가 빠름.
정확한 데이터 전송 가능 : 클럭 신호를 통해 동기화하여 데이터가 손실될 가능성 낮음.
추가적인 클럭 신호선 필요 : 데이터 신호 외에 클럭 신호선을 사용해야 함.
SPI 통신
https://velog.io/@huhwj3977/STM32-SPI

SS(Slave Select) :
각 슬레이브 장치는 슬레이브를 선택하는 데 사용되는 전용 SS(Slave Select) 신호선을 보유.
SS는 슬레이브 장치의 수 만큼 필요
마스터 장치는 이 신호선에 허용(Enable) 신호를 보내 통신할 슬레이브 장치를 선택한다.
선택된 슬레이브 장치의 SS는 LOW상태에 있고, 선택되지 않은 슬레이브 장치의 SS는 HIGH 상태에 있다.
MOSI(Master Out Slave In) :
마스터 장치에서 슬레이브 장치로 데이터를 전송
MISO(Master In Slave Out) :
슬레이브 장치에서 마스터 장치로 전송
SCLK :
별도의 클록 신호 선으로 데이터 통신의 동기를 맞추는 데 사용된다.
I2C 통신
https://velog.io/@huhwj3977/STM32-I2C

비동기식 통신은 송신자와 수신자가 별도의 클럭 신호 없이 데이터를 전송하는 방식
클럭 신호 없음 : 시작 비트(Start Bit)와 정지 비트(Stop Bit)를 통해 데이터 프레임을 구분.
송수신 속도가 다를 수 있음 : 각 데이터 프레임마다 동기화가 이루어짐.
간단한 구현 가능 : 클럭 신호가 필요 없으므로 하드웨어 구성이 간단함.
상대적으로 낮은 속도 : 동기식에 비해 오버헤드(Start/Stop Bit)가 추가되므로 속도가 느림.

UART (Universal Asynchronous Receiver/Transmitter)

RS-232 :


RS-422

일반적으로 사용되는 신호선은 TXD+, TXD-, RXD+, RXD- 입니다.
RS232 와의 차이는 하나의 신호선에 두 개의 라인이 필요한데, 신호선명 뒤에 +, -로써 구분표기.
RS232의 TXD 신호선이 RS422에서는 TXD+ 와 TXD-로 나눠짐

RS-485
RS485는 RS232나 RS422처럼 Full Duplex가 아닌 Half Duplex 전송방식만 지원
RS485의 모든 마스터는 TXD 신호를 멀티포인트 버스(RS485의 모든 마스터가 공유하는 신호라인)에 접속또는 단락시켜야만 할 뿐만 아니라 RXD 신호 역시 모드에 따라서는 접속, 단락의 제어를 해야 함
RS485에서는 Echo 모드와 Non Echo 모드 두 가지 존재.

Ref
https://machinejw.tistory.com/15
https://shek.tistory.com/46
https://blog.naver.com/logictechno1/221277279670
https://blog.naver.com/logictechno1/221277175404