[아두이노] MCU에 대해 알아보자

김우경·2021년 4월 21일
0

아두이노

목록 보기
1/9

마이크로 컨트롤러 (MCU)

  • 칩 위의 컴퓨터
    : 컴퓨터 본체의 기능을 하나의 칩 위에 구현
  • 전원만 주어지면 컴퓨터로 동작 : 저전력으로 이용
  • 입출력 장치 연결로 완전한 컴퓨터로서 동작 가능
  • 다른 시스템의 일부로 포함되어 사용
  • 목적 : 범용화된 Device보다 훨씬 저렴하게 사용하자 !

용도

  • 특수 목적용 -> 데스크탑과 비교했을때 낮은 성능 + 작은 메모리
  • 작고 간단한 제어 장치 제작용
  • 용도에 맞게 사양 세분화 및 최적화가 가능
  • 목적에 맞는 다양한 종류의 제품이 존재
    -> CPU, RAM, main board, GPU 등이 하나의 package로
    <-> PC 기준? CPU, RAM, main board, SSD, GPU 등 : 범용적 용도, 가격이 높음

장점

  • 제품의 소형화 + 경량화 + 저전력
  • 저렴한 가격
  • 신뢰성 향상 : 유지보수의 용이성 -> 고장나면 버리고 다시 사면 됨
  • 융통성 : 프로그램에 의한 손쉬운 기능 추가 및 변경

단점

  • 한정된 처리 능력
  • 한정된 범용성 : 단일 목적으로만 사용
    -> 시각에 따라 단점으로 생각하지 않을 수도 있다 : 뭘 만들건지에 따라 최적의 MCU를 고르면 됨

마이크로 프로세서와 마이크로 컨트롤러

마이크로 프로세서 (MPU)

  • CPU하나의 칩으로 구현
  • 무어의 법칙으로 기하급수적으로 성능 향상

마이크로 컨트롤러 (MCU)

  • CPU + 메모리 + HDD의 일부 기능 + I/O interface
  • 칩 위의 컴퓨터
  • 특수목적용으로 사용되는 MPU의 한 종류
  • 용도에 따른 최적화 & 적은 비용으로 구현 가능

한마디로 이렇게 표현이 가능하다~

주변 장치와 데이터 교환

  • MCU 내부 : 바이트(8bits) 단위로 데이터 처리
  • MCU 외부 : 비트 단위로 데이터 송수신
  • 1 바이트 데이터를 MCU의 외부와 교환하는 방법 ?
    • 병렬방식 : 8개의 데이터 핀 사용 -> 연결을 위한 채널 수가 많아짐
    • 직렬방식 : 1개의 데이터 핀으로 데이터 8번 나눠서 전송 -> 송수신 간의 데이터 동기화가 중요하다

시리얼 데이터 동기화 방법

위의 직렬 방식으로 데이터를 전송할때, 데이터를 동기화 하는 방법에는 두가지가 있다.

  1. 동기방식
    • 별도의 CLK 사용
    • CLK 기준으로 데이터 확인
    • 동기 방식 시리얼 통신의 예 - SPI
      : 송수신 채널을 공유해서 여러 장치의 data를 받는다
    • 동기 방식 시리얼 통신의 예 - I2C
      : half duplex 채널
  2. 비동기방식
    • 별도의 CLK 사용 x : rising edge와 falling edge 등 특정 이벤트를 기준으로 한다.
    • 약속된 속도로 데이터 확인 -> 프로토콜
      -> 비동기 방식 시리얼 통신의 예 - UART

시리얼 통신 비교

UARTSPII2C
연결 방법1:11:N1:N
전송 방법full duplexfull duplexhalf duplex
데이터 연결선221
동기 신호 연결선-11
제어 연결선-1-
총 연결선242
N개 슬레이브 연결선2N3+N2
특징속도는 빠르지만 채널수 늘어남속도는 빠르지만 채널수 늘어남많은 기기 연결할때 유리, 전송속도는 느림

MCU를 위한 프로그램

  • 개발 프로그램: MCU에서 실행될 프로그램 개발하는 컴퓨터
    -> 아두이노의 경우 스케치가 동작하는 PC
  • 교차 컴파일러 : High level 언어 -> Low level 언어로 변환, MCU에서 실행될 기계어 파일 생성
    -> 아두이노의 경우 스케치가 개발 언어 겸 컴파일러 역할
  • 목적 시스템 : 개발된 프로그램이 실행되는 환경 - HEXA file, firmware가 다운로드 되는 위치
    -> 아두이노의 경우 UNO 보드
  • 프로그램 업로드 : 개발 시스템 -> 목적 시스템으로 프로그램 이동 및 설치

MCU를 사용하는 이유

case 1) MCU 없이 하드웨어로만 구현

  • 항상 전력을 소모하는 구조
  • 비용이 증가한다

case 2) MCU를 사용해서 하드웨어 + 소프트웨어로 구현

  • 전력 소모량이 줄어든다
  • 비용의 절감 & 편의성 증가
  • MCU 가격의 하락으로 소형화, 경량화, 초기 개발 시간 단축, 유지보수 비용 절감

아두이노 우노

ATmega328

  • ATmega328 : MCU

PIN map

특징

  • 부품에 대한 data sheet을 참고한다.

AVR

: ATmega328를 포함하는 MCU 시리즈 -> 8bit, RISC 구조

아두이노 우노

: ATmega328를 이용해서 만들어진 MCU 보드
-> ATmega328를 쉽게 쓰기 위해서 주로 사용하는 기능을 라이브러리화

구성

컴퓨터의 메모리

-> MCU의 HEXA 파일은 메모리에 저장
: power 공급시 memory 저장 순서대로 프로그램 실행

메모리의 종류

  • 하드디스크 : 프로그램 설치 및 저장
  • 메인 메모리 : 프로그램 실행 중 프로그램 저장 & 결과 데이터 저장
  • 레지스터 : MCU의 기능 제어용 메모리
    - CPU 내부의 메모리
    - 프로그램 실행 직전 프로그램 저장 & 실행 직후 결과 저장

데스크탑과 ATmega 328 메모리

데스크탑 컴퓨터 메모리ATmega 328의 메모리
프로그램 메모리프로그램이 설치되는 메모리하드디스크플래시 메모리 -> 비휘발성
프로그램이 실행되는 메모리DRAM플래시 메모리 -> 비휘발성
데이터 메모리연산 결과가 임시 저장되는 메모리DRAMSRAM -> 휘발성
연산 결과가 영구 저장되는 메모리하드디스크EEPROM -> 비휘발성
  • EEPROM : 전기 신호로 바이트 단위의 읽기와 쓰기 가능
  • 플래시 메모리 : EEPROM의 변형 -> 블록 단위의 쓰기 가능
    -> 읽기에 최적화된 NOR형과 쓰기에 최적화된 NAND형(SSD에 사용)이 있다.
  • DRAM과 SRAMDRAMSRAM
    기반capacitorflipflop
    전원 공급시내용 유지 x내용 유지됨
    읽기/쓰기 속도느림빠름
    리프레쉬필요필요 x
    가격저렴비쌈

ATmega 328 메모리 구조

profile
Hongik CE

0개의 댓글