일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Julia
- ChatGPT
- IEEE
- 고체역학
- Zotero
- 텝스
- pytorch
- 인공지능
- 논문작성
- 논문작성법
- JAX
- obsidian
- 수치해석
- 옵시디언
- 우분투
- 딥러닝
- matplotlib
- teps
- 수식삽입
- LaTeX
- 생산성
- WOX
- Dear abby
- Statics
- 텝스공부
- 에러기록
- Linear algebra
- MATLAB
- Python
- Numerical Analysis
- Today
- Total
뛰는 놈 위에 나는 공대생
[프로젝트] 시리얼 통신 정리 본문
통신에 대해서 공부하기 위해 유튜브의 좋은 영상들을 많이 참고하였다.
링크도 정리
Electronoobs
https://youtu.be/IyGwvGzrqp8
https://youtu.be/4xBjrE9csxg
왜 시리얼 통신(Serial communication)인가?
serial은 직렬이라는 의미를 갖고 있다. 즉, 직렬로 통신을 한다는 뜻이다. 시리얼 통신을 사용하는 이유는, 패러렐 통신(Parallel communication)이 어렵기 때문이다.
디지털 통신을 할 때 숫자를 보내는데 이 숫자가 1001과 같이 4bit로 되어있다고 해보자. 이 4 bit를 각각의 선으로 연결해서 동시에 보내면 좋겠지만, 숫자가 커질수록 많은 선이 필요하다는 치명적인 단점이 있다.
따라서 시간이 좀 더 걸리더라도 선 한 개로 4bit를 순차적으로 보내는 것이 더 유리하다.
1. I2C ($I^{2}C$, Inter-Integrated Circuit) 통신
GND
VCC
SDA 클럭신호에 맞춰 데이터 전송
SCL 클럭신호 전송
다중연결이 가능하다. 최대 128슬레이브
마스터(일반적으로 MCU)에서 슬레이브로 신호를 보내는데 주소도 같이 보내기 때문에 정해진 슬레이브만 데이터를 버퍼에 저장한다.
마스터와 슬레이브에는 같은 전압이 걸려있어야 한다.
2. SPI (Serial Peripheral Interface) 통신
I2C와 비슷하지만 다른 부분이 존재한다.
연결에
SCLK
MOSI : Master Output Slave Input
MISO : Master Input Slave Output
SS : Chip select (ground 겸 slave까지 연결하는 선)
4개의 선이 필요하다. (I2C는 SDA, SCL 2개)
송수신 동시에 가능하다
3. UART (Universal asynchronous receiver/transmitter) 통신
시리얼 통신 중 하나로 일대일 통신이다.
송신핀 1개, 수신핀 1개
TXD : 데이터를 보내는 핀
RXD : 데이터를 받는 핀
GND : 통신하는 하드웨어끼리 그라운드가 일치해야 함
통신할 때 서로 타이밍을 맞춰야 함
보드레이트 Baud rate : How many times a signal changes per second
비트레이트 Bit rate : How many bits can be sent per time unit(usually per second)
4. RS-232
UART와 비슷한 통신방식이다.
위 링크에 둔 영상을 보시면 도움이 많이 됩니다.