통신의 기본 요소

  1. 시간 동기화
  2. 데이터를 주고 받는 선
  3. 통신 대상 지정

 

시간 동기화

SPI 통신 - 해당 그림은 clock이 low에서 high로 갈 때 신호 구분 (라이징) / 반대의 경우인 폴링일 수도 있음

통신은 low와 high로 구분되어 오게 되는데 해당 신호 구분을 위하여 신호를 쪼갤 수 있는 기준이 필요

  1. 동기: master와 slave 간의 동기화 신호인 clock을 사용
  2. 비동기: master와 slave 간 같은 시간 베이스를 사용 (ex: baud rate), clock을 사용할 때에 비해 전송 속도에 한계가 있음

데이터를 주고 받는 선

데이터는 주는 선, 받는 선을 구분할 수도 있고, 한 선을 공통으로 같이 사용할 수 있음.

한 선을 공통으로 같이 사용하는 경우에는 송신과 수신이 동시에 이루어질 수 없음

  1. 전이중 방식: 송신선과 수신선이 구분, 송수신이 동시에 이루어짐
  2. 반이중 방식: 공통된 송수신선 사용,  송수신이 동시에 이루어질 수 없음

통신 대상 지정

master에서 보낸 신호가 어떤 slave로 갈지 정해줘야 함

  1. 별도의 선 존재 (ex: cs선)
  2. 모든 slave에 신호를 전달하는 대신 신호 앞에 주소를 명시하여 어떤 slave에게 보내는 신호인지 알 수 있도록 함

 

예시

UART (Universal Asynchronous Receiver/Transmitter)

UART

  • CLK선 없음 = 해당 통신은 비동기 통신이며, 신호 구분을 위하여 공통된 time base를 사용한다 (baud rate)
  •  RX, TX선이 각각 존재 = 전이중 방식으로 송수신이 동시에 가능. master에서 slave로 송신만 필요한 경우에는 TX 선만 있어도 됨
  • 기본적으로  UART는 1:1 통신을 염두에 두고 설계됨
  • GND선은 신호의 low 기준을 잡아줘서 안정적인 통신을 가능하게 함

SPI (Serial Peripheral Interface)

SPI

  • 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)

I2C 통신선 및 데이터 구조

  • CLK선 존재(SCL) = 해당 통신은 동기 통신
  • 한 개의 데이터 선 = 반이중 방식으로 송수신이 동시에 불가능
  • SS선 없음, 데이터 구조 앞에 address 존재 = 모든 slave에 신호를 전달하고 데이터 앞의 address로 수신 slave를 지정 

CAN (Controller Area Network)

CAN 통신선 및 데이터 구조

  • 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

+ Recent posts