통신의 기본 요소
- 시간 동기화
- 데이터를 주고 받는 선
- 통신 대상 지정
시간 동기화
통신은 low와 high로 구분되어 오게 되는데 해당 신호 구분을 위하여 신호를 쪼갤 수 있는 기준이 필요
- 동기: master와 slave 간의 동기화 신호인 clock을 사용
- 비동기: master와 slave 간 같은 시간 베이스를 사용 (ex: baud rate), clock을 사용할 때에 비해 전송 속도에 한계가 있음
데이터를 주고 받는 선
데이터는 주는 선, 받는 선을 구분할 수도 있고, 한 선을 공통으로 같이 사용할 수 있음.
한 선을 공통으로 같이 사용하는 경우에는 송신과 수신이 동시에 이루어질 수 없음
- 전이중 방식: 송신선과 수신선이 구분, 송수신이 동시에 이루어짐
- 반이중 방식: 공통된 송수신선 사용, 송수신이 동시에 이루어질 수 없음
통신 대상 지정
master에서 보낸 신호가 어떤 slave로 갈지 정해줘야 함
- 별도의 선 존재 (ex: cs선)
- 모든 slave에 신호를 전달하는 대신 신호 앞에 주소를 명시하여 어떤 slave에게 보내는 신호인지 알 수 있도록 함
예시
UART (Universal Asynchronous Receiver/Transmitter)
- CLK선 없음 = 해당 통신은 비동기 통신이며, 신호 구분을 위하여 공통된 time base를 사용한다 (baud rate)
- RX, TX선이 각각 존재 = 전이중 방식으로 송수신이 동시에 가능. master에서 slave로 송신만 필요한 경우에는 TX 선만 있어도 됨
- 기본적으로 UART는 1:1 통신을 염두에 두고 설계됨
- GND선은 신호의 low 기준을 잡아줘서 안정적인 통신을 가능하게 함
SPI (Serial Peripheral Interface)
- CLK선 존재(SCLK) = 동기 통신, UART에 비해서 빠른 데이터 전송 속도
- MOSI (Master Out Slave In), MISO (Master In Slave Out)으로 송수신 선이 각각 존재하는 전이중 방식, 데이터의 송수신이 동시에 가능
- SS (Slave Select or CS Chip Select)선이 존재하여 특정 slave와 활성화
I2C (Inter-Integrated Circuit)
- CLK선 존재(SCL) = 해당 통신은 동기 통신
- 한 개의 데이터 선 = 반이중 방식으로 송수신이 동시에 불가능
- SS선 없음, 데이터 구조 앞에 address 존재 = 모든 slave에 신호를 전달하고 데이터 앞의 address로 수신 slave를 지정
CAN (Controller Area Network)
- CLK 선 없음 = 비동기 통신
- CAN_H, CAN_L이라는 2개의 데이터 선으로 통신. 신호선 간의 전압 차이를 통해 데이터가 전송하는 차동 신호 방식. 해당 방식은 노이즈에 강하고, 데이터 신호의 무결성을 보장.
- 따라서 데이터 선은 2개를 사용하지만 이는 송수신 선이 따로 구성되어 있는 것이 아니라 신뢰성이 높은 공통된 송수신선을 사용하는 방식인 반이중 통신
- SS 선 없음, 데이터 구조 앞에 identifier 존재 = 모든 node에 신호를 전송하고 각 node는 identifier를 보고 메세지의 우선 순위와 필터링을 적용하여 필요한 메세지만을 수신하게 됨
'Computer Science > 임베디드' 카테고리의 다른 글
Memory Mapped IO (0) | 2024.12.13 |
---|---|
임베디드 개발 영역 (1) | 2024.12.13 |