웹기반 임베디드 시스템 4주차 내용 정리 - Jecroia/Class_Embedded_System GitHub Wiki
웹기반 임베디드 시스템 4주차 내용 정리
목차
전자 기초 지식
전자 회로란?
어떠한 신호를 원하는 형태로 제어하고, 처리하는 시스템입니다. 모든 전자기기에는 전자 회로가 필수적으로 들어있으며, 전자기기를 동작시키는 역할을 합니다.
전압과 전류
- 전압(V): 전기를 공급하기 위해 사용되는 전기적인 차이 [단위: V(볼트)]
- 전류(I): 흐르는 전기의 양. 전압에 의해 유도됩니다. [단위: A(암페어)]
옴의 법칙
도체의 두 지점 사이에 나타나는 전위차에 흐르는 전류가 일정하다는 법칙. 즉, 전압(V), 전류(I), 저항(R) 간의 관계를 설명합니다.
아날로그 신호와 디지털 신호
- 아날로그 신호: 연속적인 값으로 표현되는 신호입니다. 시간에따라 연속적으로 변화합니다.
- 디지털 신호: 연속적인 값으로 표현되는 신호입니다. 시간에 따라 일정한 간격으로 값이 변화하며, 0과 1로 구성된 비트형태로 정보를 전달합니다.
직류와 교류
- 직류(DC): 전압의 크기와 방향이 일정하게 유지되는 전류의 형태를 말합니다.
- 교류(AC): 시간에따라 잔업의 크기와 방향이 주기적으로 변하는 전류의 형태를 말합니다.
전압 분배법칙
저항이 1개인 폐회로(닫힌 회로)에서 저항에 걸리게 되는 전압은 옴의 법칙에 의해서 전체 회로에 걸리는 전압과 같습니다.
펄스 폭 변조(PWM)
- 펄스 폭 변조, PWM은 펄스의 폭을 조절하는 제어 방법으로, 주로 LED의 밝기를 조절하거나 모터의 출력을 조절할 때 사용합니다.
- 일정한 주기동안 On/Off를 반복하며 ON이 되어있는 시간, Duty Cycle을 조절하여 원하는 출력을 조절하는 방법입니다.
- ->디지털 값을 아날로그 값처럼 사용할 수 있습니다.
전자 부품
수동소자와 능동소자
- 수동소자: 전기적 에너지를 소모, 축적 혹은 통과 할 뿐 다른 역할을 하지 않는 소자입니다. 수동적으로 작동하기에 외부전원이 필요 없습니다.
ex)인덕터, 커패시터, 저항
- 능동 소자: 작은 신호를 큰 출력 신호로 변화시킬 수 있는 전자 부품 소자입니다. 에너지 보존 법칙이 성립해야 하므로 다른 전원 장치가 필요합니다.
ex)트랜지스터, 다이오드
인덕터, 커페시터, 저항 (L, C, R)
- 인덕터(L): 전기적인 에너지를 저장하고 방출하는 소자로, 전류의 변화를 막거나 필터링하는 역할을 합니다.
- 커패시터(C): 두 개의 도체판 사이 공간에 전하를 모으는 소자로, 전기를 일시적으로 저장하는 소자입니다.
- 저항(R): 전기적인 저항을 가지는 소자로, 전류의 흐름을 방해하거나 전압을 나누는 역할을 합니다.
- 저항 읽는 법: 저항은 옴(Ω) 단위로 표시되며, 색상코드를 이용해 표시합니다.
- 4색띠 저항 읽기: 첫번째 띠는 10의 자릿수, 두번째는 1의 자릿수, 3번째는 10의 배수, 4번째는 오차의 범위입니다.
- 5색띠 저항 읽기: 첫번째 띠는 100의 자릿수, 두번째는 10의 자릿수, 3번째는 1의 자릿수, 4번째는 10의 배수, 5번째는 오차의 범위입니다.
다이오드와 트랜지스터
- 정류 다이오드: 전류를 일정한 방향으로 흐를수 있도록 도와주는 소자로 역전류를 방지하여 회로를 보호합니다.
전류의 방향이 정방향일 시 낮은 저항을, 역방향일 시 높은 저항을 가집니다.
- 트랜지스터: 전기 신호를 증폭하거나 스위칭하는 기능을 가진 소자입니다.
이미터(E), 베이스(B), 컬렉터(C) 세 개의 단자로 구성되어 있으며, 베이스 단자에는 작은 전류로 전하를 모을 수 있고, 이미터와 컬렉터 사이에 보다 큰 전류를 흐르게 할 수 있어 증폭하는데 쓰입니다.
GPIO와 통신 프로토콜
GPIO (General Purpose Input/Output)
전자 회로와의 상호작용을 위한 범용 핀. 디지털 신호를 입력받거나 출력할 수 있음.
- GPIO 핀 설명
- Physical Pn Numbering: 실제 보드에서의 핀 번호
- BCM Numbering: Broadcom SoC에서 정의된 핀 번호
- 3.3V핀, 5V 핀: 전원 공급
- GND 핀: 접지
- GPIO핀: 데이터 입/출력 제어
- GPIO 핀 주요 기능
- 입력: 스위치 등 외부 장치로부터 신호 수신
- 출력: LED 같은 장치 제어
- PWM: 서보 모터와 같은 장치의 속도 및 위치 제어
- 통신 프로토콜: I2C, SPI, UART 통신 프로토콜을 사용할 수 있다.
- GPIO 제어 방식 Python: RPi.GPIO 라이브러리로 핀 제어 가능 기타 언어: C/C++, Scratch, Node.js 등도 사용 가능
통신 프로토콜 (I2C, SPI, UART)
- I2C(Inter-Inegrated Circuit)
- 마스터-슬레이브 방식의 양방향 통신이다.
- 두개의 라인으로 여러 장치를 연결할 수 있다.
- 활용: 온도 센서, RTC(Real Time Clock), LCD 디스플레이
- SPI(Serial Peripheral Interface)
- 마스터-슬레이브 방식의 동기식 통신이다.
- 4개의 주요핀이 존재
- MOSI(Master Out Slave In): 마스터에서 슬레이브로 데이터 전송
- MISO(Master In Slave Out): 슬레이브에서 마스터로 데이터 전송
- SCK(Serial Clock): 마스터가 제공하는 클럭 신호
- CS(Chip Select): 슬레이브 장치를 선택함
- 고해상도 디스플레이, SD카드, DAC(디지털-아날로그 변환기)
- UART(Universal Asynchronous Receiver-Transmitter)
- 비동기식 직렬 통신: 두 장치간 직렬 통신, 마스터-슬레이브 개념이 없다.
- TX(전송), RX(수신) 두개의 핀만 사용한다.
- 속도: 전송 속도(baud rate)를 양쪽에서 동일하게 설정해야한다.
- 활용: 시리얼 콘솔, GPS모듈, 블루투스 모듈
- I2C, SPI, UART 비교
- 속도: SPI > I2C > UART
- 복잡성: SPI >> I2C:주소체계, UART: 점대점 간 통신
- 필요 핀: SPI(4개이상) > I2C(2개) = UART(2개)
- 장치 수: IC2와 SPI는 여러 슬레이브 가능, UART는 1:1 통신
PCle(Peripheral Component Interconnect Express)
고속 데이터 전송을 위한 직렬 통신 인터페이스 -> 고성능 그래픽 카드, NVMe SSD, 네트워크 카드
라즈베리파이 실습 예제
GPIO 예제
풀업
풀다운