제3장 디바이스 프로그래밍
강의 내용
- 3.1 입출력장치 개요 특성, 분류, 구조
- 3.2 입출력 모듈 입출력장치 일반 구조 – 설정, 데이터, 상태
- 3.3 펌웨어 구조 시스템 초기화, main(), setup(), loop() 무한루프
- 3.4 입출력 프로그래밍 프로그램에 의한 입출력, 인터럽트에 의한 입출력
- 3.5 펌웨어 개발 단계 문제정의 ~ 알고리즘 설계
- 3.6 통합 개발 환경
3.1 입출력장치 개요
입출력장치 = 디바이스(device)
- 데이터를 공급하고 처리 결과를 표시한다.
- 종류가 많고 동작 방법이 다양하다.
-
중앙처리장치가 보기에 기억장치와 비슷하다. – 장치를 주소로 구분한다.
- 입출력장치 분류
- GPIO(General Purpose Input/Output)에 연결되는 장치
- 비트 단위로 입력 또는 출력 설정
- 한 비트로 구동되는 입출력장치
- 입력장치: 스위치, 근접 센서
- 출력장치: LED(Light Emitted Diode), 릴레이(Relay), 부저
- 여러 비트를 사용하는 입출력장치
- 서보 모터: 펄스 폭에 따라 회전
- 스텝 모터: 펄스 수에 따라 회전
- 병렬 인터페이스: 키패드, FND(Flexible Numeric display)
- 병렬(8, 16, 24, 32비트) 데이터 입출력 장치
- 타이머/카운터
- A/D 변환기(Analog-to-Digital Converter): 볼륨, 온도 센서, 습도 센서, 마이크
- D/A 변환기(Digital-to-Analog Converter): 스피커
- 통신 장치
- 직렬 통신: UART, I2C, SPI, CAN
- 무선통신 장치: Zigbee, Bluetooth
- 네트워크 통신: Ethernet, Wifi
- GPIO(General Purpose Input/Output)에 연결되는 장치
- ATmega328P 입출력 모듈
- GPIO: 한 비트 구동 입출력 포트
- Timer/Counter: 8 비트 2 개, 16 비트 1 개
- SPI (Serial Peripheral Bus): 직렬 통신장치
- USART(Universal Synchronous/Asynchronous Receiver/Transmitter); 직렬 통신장치
- TWI (2-Wire Serial Interface): 직렬 통신장치
- AC (Analog Comparator): 병렬 입출력 장치
- ADC (Analog-to-Digital Converter): 병렬 입출력 장치