1 분 소요

Hits

통신

데이터 전달 방식에 따라 직렬 통신과 병렬 통신으로 구분

직렬 통신

한번에 하나의 데이터 비트를 전송

  • UART: 병렬 데이터를 직렬화 하여 통신하는 개별 집적 회로.
    비동기 통신이므로 동기 신호가 전달되지 않음
    따라서 수신 쪽에서 동기신호를 찾아내어 데이터의 시작과 끝을 시간적으로 알아 처리할 수 있도록 약속함
    전이중방식. 일대일 통신
  • I2C 통신(IIC) : 동기식 직렬통신. 양방향(반이중). 선 2개. 일대다통신.
    master slave (만약 마스터들이 동시에 start신호를 보내면 낮은 slave address를 보낸 master가 우선순위를 가짐)
  • SPI 통신 : 동기식 직렬통신. 양방향(전이중, 전이중)
  • CAN 통신 : 비동기식 직렬 통신

병렬 통신

한번에 여러 개의 데이터 비트를 전송

MSB (Most Significant Bit) : 데이터 형의 최상위 비트
LSB (Least Significant Bit) : 데이터 형의 최하위 비트


양방향 통신

반이중(Half-Duplex)

정보의 전송이 양방향이지만, 한쪽이 송신하는 동안은 다른 쪽이 송신하지 못하는 방식
ex. 무전기

전이중(Full-Duplex)

정보의 전송이 양방향으로 이루어지고 양쪽 모두 동시에 송신이 가능한 방식
유선인 경우 4선 식으로 구성
ex. 전화기

단방향 통신

정보의 전송이 한 방향으로만 이루어지는 방식


동기 통신

약속

비동기 통신

비약속


일대일 통신

일대다 통신

다대다 통신


연결

20241115_uart_memo

  • RS232 레벨 (PC)
    0 : -12V
    1 : 12V

USB-시리얼 변환 장치를 사용하면 라즈베리와 PC가 통신할 수 있다 (ex. FTDI232)

  • TTL 레벨 (라즈베리파이, 아두이노)
    0 : 0V
    1 : 3.3V

라즈베리파이_1와 라즈베리파이_2 간 연결

Physical 기준 8번 : TX
Physical 기준 10번 : RX

라즈베리파이_1의 TX와 라즈베리파이_2의 RX 연결
라즈베리파이_1의 RX와 라즈베리파이_2의 TX 연결
라즈베리파이_1의 GND와 라즈베리파이_2의 GND 연결

터미널에서 하는 방법

sudo raspi-config

3 Interface Options > I4, I5, I6 을 Yes

VNC에서 하는 방법

Raspberry Pi Configuration > Interfaces >
SPI: ON, I2C : ON, Serial Port : ON, Serial Console : OFF

Putty로 Serial 연결하기

라즈베리파이 VNC 터미널에서

sudo apt install putty

라즈베리파이 VNC 터미널에서

putty

Connect type : Serial 선택하고 Open 한다.

Font > Font used for ordinary text 에 server.fixed가 되어 있어서 문제가 된다.
대충 다른 폰트로 선택하고,

putty_font

defaul setting > Save

Comments