비동기식 데이터 전송과 동기식 데이터 전송의 차이: 비동기식은 상대방이 데이터를 언제 보낼지 모름. 동기식은 클럭 신호를 이용해서 데이터를 보내기 전에 상대방에게 미리 알려줄 수 있다.
2개의 선을 사용하는 시리얼 통신(직렬 통신) 방식을 I2C라고 부른다. 시리얼 통신의 반대되는 개념으로는 병렬 통신(버스)이 있다.
그림과 같이 시리얼 통신은 I2C 통신, SPI 통신, UART 통신으로 나눌 수 있다.
위의 그림은 2선으로 구성되는 비동기 통신이다. TX는 송신하는 선, RX는 수신하는 선, GND는 Ground이다. 비동기 통신은 상대방이 데이터를 언제 전송할 지 알 수 없으므로 만약 0(Low) 상태에 있다가 0110 1101 이란 데이터를 수신하게 된다고 하면, 0110 1101? 의 데이터를 받은 것인지 110 1101? 의 데이터를 받은 것인지 알 수가 없으므로 이에 대한 해결책이 필요하다.
그래서 UART serial 통신을 지원한다고 datasheet에 나와 있다면 데이터의 앞 뒤로 head와 tail부분을 부수적으로 덧붙여주는 기능이 들어가 있는 것이다(Head와 Tail 펄스를 만들어내는 기능). head만 붙일 수도 있는데 그렇다면 1byte씩만 받겠다던지 하는 약속이 정해져 있는 것이다.
만약 UART serial 통신을 지원하지 않는다고 datasheet에 나와 있다면 저런 기능을 SW적으로 구현을 해줘야한다. 부수적으로 덧붙이는 것을 오버헤드라고 부른다. Serial 통신이 느려지는 이유.
위의 그림은 5선으로 구성된 동기화 통신 방식이다. 예로 USB가 5선식 동기화 통신 방식으로 구성돼 있다. CLK는 클럭선인데 CLK에서 신호를 보내면서 데이터의 송수신이 시작된다. USB는 고속시리얼 통신으로 클럭선을 사용하여 속도가 매우 빠르다.
'언어 > 큐브인턴(Embedded)' 카테고리의 다른 글
실행 파일과 코드 영역 (0) | 2016.09.04 |
---|---|
Embeded 기초4(GND, oscillator, watchdog, BOD, ISR) (0) | 2016.09.03 |
Embeded 기초2 (Flash, EEPROM, PWM, OCM, channel) (0) | 2016.09.03 |
Embeded 기초(ADC, DAC, JTAG) (0) | 2016.09.03 |
풀업 저항, 풀다운 저항, 플로팅 (0) | 2016.08.31 |