시리얼 통신이란?
시리얼 통신은 직렬 연결이라는 뜻을 가지고 있으며, 직렬 연결은 한번 에 하나의 비트단위로 1(High)과 0(Low)의 신호로 데이터를 전송하는 통신 방법을 말한다. 이러한 시리얼 통신도 동기식과 비동기식의 2가지 방법으로 분류가 된다.
시리얼 통신 분류 | |
동기식 통신 | 데이터 신호와는 별도로 동기신호를 함께 보낸다. (쉽게 언제 데이터를 주고받을 지 정해져 있다는 것) |
비동기식 통신 | 데이터 신호만을 보내고 각각의 방식에 따라 데이터 비트를 찾아낸다. (데이터를 언제주고 받을 지 정해져 있지 않기 때문에 방식을 맞춰야 한다.) |
비동기식 통신의 경우 언제 데이터를 주고 받을지 정해져 있지 않기 때문에, 꼭 맞춰야 하는 몇가지 규약이 있다.
시리얼통신 동기 규약 | |
통신속도 ( Baud rate ) | 초당, 몇개의 비트를 읽을 것인지에 대한 규약이다. 이 통신 속도 또한 규격화가 되 있고 1200, 2400, 4800, 9600 등의 속도를 선택할 수 있다. |
데이터 비트 ( Data bit ) | 실제 주거나 받을 데이터에 대한 비트 영역 규약이다. 5~9 비트를 선택할 수 있다. |
패리티 비트 ( Pairty bit ) | 통신 에러 검출 방법인 패리티 비트를 사용하는 지에 대한 여부이다. 패리티 비트 검사 방식은 하나의 비트로 에러를 검출하는 것으로 데이터 내의 1 비트 수를 체크하여 짝수와 홀수에 따라 에러를 검출하는 방법이다. |
스탑 비트 ( Stop bit ) | 주거나 받는 쪽의 통신을 언제 끊을 지에 대한 비트 영역이다. |
비동기식 시리얼 통신에서 주는 쪽과 받는 쪽이 위와 같은 규약을 맞추지 않는다면, 일명 '데이터가 쪽난다'라는 현상이 발생한다. 보통 비동기식의 시리얼통신을 사용하는 경우 주는 쪽과 받는 쪽의 동기 규약을 일일이 맞춰줘야 하기 때문에,
통상적으로 국민 셋팅을 사용한다. 이 국민 셋팅은 비동기식 시리얼 통신 방법에서 암묵적인 룰과 같이 사용되는 데, 비동기식의 시리얼 통신을 사용한다면 알아두는 것이 유리하다.
9600 8N1
9600은 통신속도
8은 데이터 영역 비트
N은 패리티 비트를 사용하지 않는 다는 것이고
스탑비트는 1비트로 하겠다는 뜻이다.
동기식 시리얼 통신에는 SPI, I2C 통신이 대표적이고
비동기식 시리얼 통신은 UART( RS232, RS485 ) 가 있다.
시리얼 통신 방법을 사용하는 통신 종류는 매우 많다.
마이크로 컨트롤러에서 자주 사용되는 동기식 시리얼통신 몇가지만 소개해본다.
SPI 통신 (Serial Peripheral Interface)
고속의 주변장치 연결을 위한 시리얼 통신 방법이다. 1:N 통신이 가능한 동기식 통신이다.
SPI는 총 4개의 데이터 선을 사용하여 통신한다.
- SS(Slave Select)
각 슬레이브 장치는 슬레이브를 선택하는 데 사용되는 전용 SS(Slave Select) 신호선을 가지고 있다.
마스터 장치는 이 신호선에 허용(Enable) 신호를 보내 통신할 슬레이브 장치를 선택한다.
선택된 슬레이브 장치의 SS는 LOW상태에 있고, 선택되지 않은 슬레이브 장치의 SS는 HIGH 상태에 있다.
SS는 슬레이브 장치의 수 만큼 필요하다.
- MOSI(Master Out Slave In)
마스터 장치에서 슬레이브 장치로 데이터를 전송
- MISO(Master In Slave Out)
슬레이브 장치에서 마스터 장치로 전송
- SCLK
별도의 클록 신호 선으로 데이터 통신의 동기를 맞추는 데 사용된다.
I2C 통신
I2C는 2개의 데이터 선을 사용하는 동기식 통신 이다. I2C를 TWI(Two Wire Interface)라고도 한다.
적은 양의 데이터를 낮은 빈도로 전송하기 위해 만들어진 시리얼 통신 방법이다.
I2C는 디스플레이와 주변 장치 모듈들을 마이크로 컨트롤러에 연결하는 데 사용되거나 적은 데이터를 전송하는 센서 연결에 흔히 사용된다.
SPI와 마찬가지로 일대다 연결이 가능하고 데이터 동기화를 위한 별도의 클록을 사용하는 동기식 통신이다.
- SCL(Serial Clock Line)
클록
- SDA(Serial Data Line)
데이터 전송
'임베디드 하드웨어 > 통신 인터페이스' 카테고리의 다른 글
[통신] I2C (0) | 2023.03.08 |
---|---|
[프로토콜] Modbus(모드버스) (2) | 2022.12.27 |
[RF통신] RFID(Radio-Frequency Identification) (0) | 2022.12.22 |
[통신] RS485, RS232 (0) | 2022.12.13 |
[프로토콜] MQTT(Message Queuing Telemetry Transport) (0) | 2022.12.05 |