728x90

임베디드 시스템

임베디드 시스템

- 단일 제품이 아닌 시스템에 내장된 부분 시스템

- 전자회로로 구성하면 업그레이드 하기 힘듬 -> 소프트웨어로 구현

-> 마이크로 프로세서에 특정 기능 수행하는 소프트웨어를 저장 => 임베디드 소프트웨어

- 임베디드 시스템 : 컴퓨터 하드웨어와 소프트웨어가 조합하여 특정 목적을 수행하는 시스템

 

 

임베디드 시스템 적용 사례

- 버스, 전철 출입문 단말기 -> 임베디드 시스템 내장

- 모든 사물에 임베디드 시스템이 내장되어 통신하는 Iot 시대

 

임베디드 시스템 특징 case of 스마트폰, 휴대폰

- 폰이 너무 크다면, 비싸면, 베터리가 빨리 준다면 불편

-> 임베디드 시스템 특징 : 더 작고, 가볍고, 오래가는 베터리, 안정적 동작과 개발 노력

 

임베디드 시스템

1. 경량화, 최적화

2. 실시간성

3. 저전력화

4. 멀티미디어 지원

5. 신뢰성

6. 네트워크 지원

 

 

임베디드 시스템 구성

- Hardware + software

- hw : 마이크로 프로세서, 마이크로 컨트롤러, 메모리, 센서, 구동기

- sw : 운영체제, 디바이스 드라이버, 어플리케이션 프로그램, 네트워크 응용

 

 

임베디드 시스템 개발 구조

- 임베디드 소프트웨어(3,4), 임베디드 하드웨어 개발(1,2)로 나누어 진행

1. 하드웨어 개발

2. 펌웨어 개발

3. OS 포팅(이식)/ 디바이스 드라이버 개발

4. 임베디드 어플리케이션 개발

 

 

 

 

임베디드 시스템 개발 과정

1. 설계

2. 시스템 용도 분석

              HW                                                          SW

3. 하드웨어 사양 결정                               소프트웨어 사양 결정

4. 프로세서, 메모리 및 주변장치 선정       OS 사용 여부 및 OS 선정

5. 회로도 설계                                         개발 환경 선정

6. PCB 설계                                            시스템 소프트웨어 설계

7. 하드웨어 조립                                      디바이스 드라이버 설계

8. 하드웨어 시험                                      어플리케이션 설계

9. 시스템 통합

10. 종료

=> 하드웨어 개발, 소프트웨어 개발 팀 긴밀한 협력 필요

 

 

 

 

하드웨어 자료 수집하기

오픈소스 자료 수집 수행 순서

1. 오픈소스 하드웨어 플랫폼 선정

2. 하드웨어 구성도 입수

3. 회로도 입수

4. 부품 리스트 및 데이터 시트 입수

5. 하드웨어 관련 표준 문서 수집

6. 하드웨어 샘플 입수

7. 입수 자료에 대한 형상 관리

 

플랫폼이란?

- 버스 승강장, 기차역에 타고 내리는것을 의미

- IT분야에서 플랫폼, 기능 제공측과 기능 사용측이 만나는 장소

 

 

임베디드 플랫폼

- 원하는 기능을 쉽게 구현해 전자 제어 장치를 개발할수 있도록 제공되는 하드웨어 보드와 소프트웨어 개발 환경

- 특정 기능을 제공하는 완제품이 아니라 누구나 원하는 기능을 쉽게 구현하도록하는 기반

 

대표적인 오픈소스 플랫폼

- 일반 시중 : 아두이노, 라즈베리파이

- 산업 현장에서 주로 사용 : ST 

 

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

1. 마이크로 프로세서 MPU Micro Processor Unit

- CPU ( 연산, 제어장치, 레지스터)를 단일 칩으로 만든 반도체

- 마이크로 프로세서만으로 사용불가 -> 주변 장치 필요

- PC 등 범용 컴퓨터에서 주로 사용

 

2. 마이크로 컨트롤러 MCU Micro Controller Unit

- CPU(마이크로 프로세서) + 메모리(ROM, RAM) + 주변장치 인터페이스 ( 통신, ADC/DAC, Timer 등)

- 싱글 칩 마이크로 컴퓨터

- 임베디드 시스템

- 특정 목적의 기기 제어용으로 주로 사용

=> 최근 임베디드 시스템은 마이크로 컨트롤러를 사용하는것이 보편 적임

* ARM 계열 마이크로 프로세서와 마이크로 컨트롤러를 많이 사용

 

 

ARM 계열이란

- ARM Advanced RISC Machine

- RISC 구조를 가지는 32비트, 64비트 프로세서 군을 부르는 용어

 

ARM 프로세서 특징

- 동작 속도가 빠름

- 내장된 주변장치가 많아 고성능

- 전력 소비가 작다

 

ARM

- 마이크로 프로세서를 만드는 회사 ? no

- 프로세서 코어를 설계해서 다른 제조사에 설계 내용을 지적재산권 IP 형태로 판매

-> 차에 비유하자면 엔진을 설계하는 회사가 있고, 그 설계도로 엔진을 만드는 회사가 따로 있음. ARM은 엔진을 설계하는 회사

 

ARM 계열 프로세서 발전 과정

- 아키텍처 발전과, 성능의 발전과전으로 볼수있음

- 아키텍처는 V4/V4T -> V5

- 최신 암계열은 Cortex라는 이름으로 출시

- 부 이름으로 A(Application), R(Realtime), M(Micro Controller) 의미

- 뒤의 숫자는 성능

ARM 계열 프로세서 발전 과정

 

시중의 마이크로 컨트롤러

- 여러 회사들이 ARM 계열 마이크로 프로세서를 주변 장치(Uart, 입출력 포트, 인터럽트, AD변환기, 타이머) 등을 하나의 칩(마이크로 컨트롤러)로 만들어 판매

- Cortex-M3 마이크로 프로세서 주변에 주변장치를 붙여 Cortex-M3마이크로 컨트롤러가 많이 사용하여 임베디드 소프트웨어 개발

 

ARM 계열 이외 계열

- Atmel 사의 AVR 시리즈 -> 대표적으로 Atmega 128

 

오픈소스 플랫폼 특징

- 아두이노 : 오픈소스 중 가장 대중적인 보드. ATmega328 마이크로 컨트롤러 사용. 매우 저렴. 다양한 자료 제공

- 라즈베리 파이 : 초소형, 초저가 임베디드 보드. 교육용 일환으로 개발. 아두이노와 함께 가장 대중적. 리눅스, 윈도우10 포팅가능

 

 

 

하드웨어 플랫폼 선정후 준비사항

- 하드웨어 구성도 입수해야함

- 입수 경로 : 인터넷 검색, 제작사 제공

 

회로도 입수 다음 과정

- 데이터 시트와 부품 리스트

- 부품 스펙. 용량, 크기를 정해야함

- 데이터 시트 : 부품, 하부시스템(전원 공급장치 등), 소프트웨어 성능, 특성등을 정리한 문서

-> 하드웨어 관련 표준문서 수집

-> 하드웨어 샘플 입수

-> 입수 자료에 대한 형상관리

 

 

 

 

실습

1. 사용자 요구사항

- 소수 관리인이 CCTV 관리가 힘듬

- 사람을 도와 사물을 인식하는 인공지능 CCTV 필요

 

2. 하드웨어 스펙 선정

- 플랫폼 예시 :아두이노, STM, 라즈베리파이

-> 라즈베리 파이 사용

 

3. 운영체제 필요성 파악

- 윈도우, 맥, 리눅스

- 파이에 적합한 라즈비안 사용

- 소프트웨어 : 구글 비전 API

 

4. 개발환경 설정

4.1 운영체제 설치

 - 깃헙에서 라즈비안 소스 다운

 - 소스코드 디렉토리서 make 명령어로 컴파일

 - sd 카드에 이미지 플래시. 에처 주로 사용

 4.2 구글 비전 API 키 발급받기

 - 구글 클라우드 플랫폼 검색, 접속

 - 프로젝트를 생성하고, 클라우드 비전 API서 서비스 계정 키 발급

 

5. 라즈베리파이에 모듈 연결

 - 모니터, 파이카메라 연결

 

6. 임베디드 어플리케이션 설계 및 구현

6.1 VNC를 통한 원격 접속

6.2 관리자 권한 사용 - sudo su

 

300x250

+ Recent posts