본문 바로가기
Computer Science/Embedded System Design

[임베디드] 0장 임베디드 시스템과 아두이노 보드

by na1-4an 2023. 9. 20.

0-1 임베디드 시스템

1. 임베디드 시스템이란?

: 하드웨어, 운영체제, 응용 소프트웨어, 네트워킹 등을 특수 목적에 맞게 최적화한 시스템

 

2. 임베디드 시스템의 역사(3)

  - (초기): 제어용 시스템 -> 간단한 HD + 펌웨어 수준 실시간 운영체제 + 고정된 응용 프로그램

  - (현재): 다양한 임베디드 시스템 -> 정보 가전 시스템, 이동 단말기

  - (전망): 고 수준 제어 시스템 -> 일반화된 시스템에 소프트웨어를 교체하는 형태(고정 X)

(펌웨어: 특정 하드웨어 장치에 포함된 소프트웨어)

 

3. 임베디드 시스템 구성요소(3)

  - 하드웨어: 주 프로세서, 제어를 위한 장치 인터페이스

  - 소프트웨어: 임베디드 운영체제(실시간 운영체제, 임베디드 리눅스, 미들웨어 운영체제(안드로이드))

                  시스템 제어를 위한 응용 프로그램

  - 개발 환경: 교차 개발 환경, 개발 호스트 시스템, 개발 타겟 시스템

 

4. SoC란?

: System-On-Chip으로, 하나의 칩에 프로세서, 메모리, I/O 제어 회로를 포함한, 임베디드 시스템을 위한 패키지

 

5. SoC 예(7)

: ARM Processors • Intel StrongARM • TI OMAP • Motorola Dragon Ball • Samsung S5PC110 (Galaxy S 프로세서) • Apple A12 • Qualcomm SnapDragon

 

6. SoC의 발전(4)

  - 초기 SoC (3): Processor core + SRAM + Basic I/O

  - 간단한 이동기기를 위한 SoC (4): Processor core + LCD controller + Memory controller + Various I/O interfaces

  - 고기능 이동기기를 위한 SoC (4):간단한 이동 기기 SoC + Multimedia accelerator + Camera interface + 기타 다양한 기능을 위한 하드웨어

  - 멀티 코어 SoC (2): Generic purpose processor cores + DSP cores

 

7. Processor Cores (6)

  • X86: # intel 제작, # 임베디드에서는 사용률 낮음, # 리눅스와 윈도우에서 호환성이 높음
  • ARM: # 휴대전화 프로세서의 코어로 사용, # 모든 ARM 프로세서는 동일한 명령어 집합 사용, # binary code 수준의 호환성, # JAG 디버거 폭넓게 사용됨.
  • IBM/Motorola Power PC: # PPC리눅스 커널은 Java 등의 소프트웨어가 이식되어있음, # Apple에서 공동 개발
  • MIPS: # ARM과 달리 다양한 명령어 집합 구현이 존재, # PowerPC와 비교했을 때 리눅스 지원이 제한적임.
  • Hitachi SuperH: 
  • Motorola 68000: 

 

0-2 아두이노 보드

1. 아두이노

: 아두이노 보드 + 통합 개발 환경

  - Open 하드웨어(복제 보드 허용)/Open 소프트웨어(os지원, 임베디드 소프트웨어 개발이 쉬워짐)

 

2. 아두이노 보드

:마이크로 컨트롤러 보드.

  - 종류: UNO, MEGA, DUE, Ethernet 등. 가격 저렴. 사용편리.

 

3. 아두이노 목표

: 쉬운 개발 환경 제공. (기존에는 보드,부트로더 등 개발해야하고 광범위한 지식이 필요했음.)

 

4. 아두이노 프로그램 언어

  - 텍스트 기반 언어: C언어

  - 그래픽 기반 언어: LabView for Arduino, Scratch for Arduino

 

5. 아두이노 보드

:마이크로 컨트롤러 보드.

  - 종류(4): UNO, MEGA, DUE, Ethernet 등. 가격 저렴. 사용편리.

  - 프로세서 종류(3): Atmega 168, 328, 32U4, 2560 processors/ Arm Cortex M3/ Intel Arduino Compatible Board

 

6. 아두이노 개발 환경 구축

  - 아두이도 IDE 다운로드

  - 코드 구조:

  • setup()함수: 초기화 코드, 단 한번만 실행
  • loop()함수: 메인 코드, 무한히 반복

- 개발 과정: 코딩 → 컴파일 업로드 실행