• 검색 결과가 없습니다.

C 통신 제어

N/A
N/A
Protected

Academic year: 2022

Share "C 통신 제어"

Copied!
19
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

컴퓨터 네트워크 설계

청주대학교 융합전자공학부 전자공학전공 한철수

I

2

C 통신 제어

(2)

목차

2

• I2C 통신의 개요

• I2C 통신의 동작 방식

• I2C 통신 라이브러리 함수

• I2C 방식의 온도 센서

• 제어 연습

(3)

I

2

C 통신

3

• I2C(Inter-Integrated Circuit) 통신은 1980년대 초반 필립스 에서 제안한 근거리 통신 방식임.

‒ 마이크로 컨트롤러 및 각종 IC들의 통신을 위해 제안됨.

‒ I2C, IIC라고도 표기함.

• I2C에 호환성을 갖는 TWI(Two Wire Interface)라는 방식도 있음.

(4)

I

2

C 통신의 구성

4

• I2C 통신을 위한 장치는 마스터(Master)와 슬레이브(Slave) 로 나뉨.

‒ 하나의 마스터에 다수의 슬레이브가 연결될 수 있음.

‒ 구별을 위해 각 슬레이브마다 고유한 주소 값을 갖도록 해야 함.

‒ 슬레이브의 주소 값을 이용해 마스터는 한번에 하나의 슬레이브와 통 신을 수행함.

‒ SCL(Serial Clock)

• 통신의 동기를 맞추기 위한 클럭 신호를 마스터에서 슬레이브로 전송함.

‒ SDA(Serial Data)

• SCL의 클럭 신호에 맞추어 마스터와 슬레이브 간에 데이터를 송수신함.

(5)

I

2

C 통신의 장단점

5

• I2C 통신의 장점

‒ 2개의 입출력 핀을 이용해 장치들의 반이중통신이 가능함.

‒ 시스템 동작 중에도 I2C 통신 버스에 새 장치의 추가 및 제거가 가능함.

‒ 하드웨어 구성이 간단하며 대화형 동작이 가능함.

• I2C 통신의 단점

‒ 데이터 전송 속도가 비교적 저속임.

• 일반 모드: 최대 100kHz, 고속 모드: 최대 400kHz

• 따라서 저속 데이터 통신 또는 장치의 제어(예: 동작 모드 설정) 등에 적합 함.

‒ 전이중통신이 불가능함.

• 마스터와 슬레이브가 동시에 데이터를 송신할 수 없음.

‒ 슬레이브의 주소 값이 7 bit로 제한되어 있기 때문에, 슬레이브 장치를 동시에 최대 128개까지만 연결할 수 있음.

• 슬레이브 장치들 사이에 주소 충돌 가능성이 있음.

(6)

I

2

C 통신의 동작 방식

6

1) 마스터는 SCL과 SDA 핀이 모두 High 상태일 때, SDA를 Low로 바 꾸어 슬레이브에게 통신 시작을 알림.

2) 마스터는 우선 통신하고자 하는 슬레이브의 주소를 SDA를 통해 송신 함.

3) 마스터는 해당 주소의 슬레이브와 통신(데이터의 송신 또는 수신)을 수행함.

4) 마스터는 SCL이 High이고 SDA가 Low인 상태에서, SDA를 High로 바꾸어 슬레이브에게 통신 종료를 알림.

(7)

라즈베리 파이의 I

2

C 통신 핀

7

• 라즈베리 파이에는 2개의 I2C 통신 채널이 있음.

‒ I2C0

‒ I2C1

I2C1

I2C0

(8)

wiringPiI2C.h

8

• 와이어링 파이에서 제공하는 I2C 통신 라이브러리

• 주요 함수

‒ int wiringPiI2CSetup(const int devId)

• 슬레이브의 주소를 입력하여 통신을 초기화함.

• fd를 반환함. 단, 초기화가 실패했다면 -1을 반환함.

‒ int wiringPiI2CRead(int fd);

• fd의 슬레이브로부터 데이터를 수신함.

‒ int wiringPiI2CWrite(int fd, int data);

• fd의 슬레이브에 데이터를 송신함.

‒ int wiringPiI2CWriteReg8(int fd, int reg, int data);

‒ int wiringPiI2CWriteReg16(int fd, int reg, int data);

• 슬레이브의 장치 레지스터 reg에 8 또는 16 bit의 값을 전송함.

‒ int wiringPiI2CReadReg8(int fd, int reg);

‒ int wiringPiI2CReadReg16(int fd, int reg);

• 슬레이브의 장치 레지스터 reg로부터 8 또는 16 bit의 값을 수신함.

(9)

TMP102 온도 센서

9

• 온도 센서는 현재 기온을 측정하여 알려주는 센서임.

• 온도 센서가 온도 값을 아날로그 전압 형태로 출력하는 경우에 는 ADC가 필요함.

‒ 마이크로 컨트롤러의 ADC 핀에 연결하여 사용함.

• I2C 방식의 온도 센서를 이용하면 ADC가 없는 라즈베리 파이 에서도 온도를 측정할 수 있음.

• TMP102 온도 센서

‒ I2C 방식의 온도 센서로서 내부에 12 bit의 ADC를 내장하고 있음.

‒ 측정된 온도를 디지털 값으로 변환하여 I2C 방식으로 전송해 줌.

(10)

TMP102 온도 센서의 주소 값 설정

10

• ADD0핀의 연결 상태에 따른 TMP102 온도 센서의 주소 값

(0x48) (0x49) (0x4a) (0x4b)

(11)

TMP102 온도 센서의 내부 구조

11

(12)

TMP102 온도 센서의 레지스터 지정

12 (0x00)

(0x01) (0x02) (0x03)

(13)

TMP102 온도 센서의 읽기 타이밍도

13

마스터가 보냄.

마스터가 보냄.

마스터가 보냄.

슬레이브가 보냄.

슬레이브가 보냄.

(14)

키트의 온도 센서 회로 연결 (1/3)

14

온도 센서의 ADD0핀(4번 핀)이 그라운드에 연결되어 있으므로 슬레이브의 주소는 0x48임.

(15)

키트의 온도 센서 회로 연결 (2/3)

15

(16)

키트의 온도 센서 회로 연결 (3/3)

16

• wPi 8번 핀이 SDA.1을, 9번 핀이 SCL.1을 위한 핀임.

(17)

예제

17

(18)

수신 데이터의 비트 값 위치 조정

18

• 수신한 2바이트 데이터

• 수신 함수로부터 얻어진 데이터의 형태

• 수신 데이터의 비트 값을 원래대로 바꾼 후에 사용해야 함.

Data Byte 1

Data Byte 2

Data Byte 1 Data Byte 2

T3 … T0 0 0 0 0 T11 … T4

T3 … T0 T11 … T4

0 0 0 0

(19)

질문

19

Q&A

참조

관련 문서

시리얼 통신 포트로 통신 컨버터를 이용하여 PC와

 삽입된 아몬드 비스코티 그림에 회전, 흰색

제20장

자동화 설비로 통신(제어)하는 제어명령 Data Code 위변조 탐지. 제어망 내 Data 흐름 (Traffic

본 교과목은 전자, 전기 및 컴퓨터 분야를 전공하는 학생들을 대상으로 통신, 제어, 디지털 신호처리 분야 등에서 다루어지는 신호에 대한 개념을 이해하고 아날로그 및 디지털

정보(데이터)통신 시스템의

그렇지 않아도 5G 상용화로 전세계 통신사들이 네트워크 투자를 늘리는 상황에서 트래픽 증가는 5G 조기 투자 확대 및 백홀/스위치 등 제반 네트워크 장비의

주: 무선 데이터(전체)는 무선에서 발생한 모든 데이터,