임베디드 시스템
임베디드 시스템
- 단일 제품이 아닌 시스템에 내장된 부분 시스템
- 전자회로로 구성하면 업그레이드 하기 힘듬 -> 소프트웨어로 구현
-> 마이크로 프로세서에 특정 기능 수행하는 소프트웨어를 저장 => 임베디드 소프트웨어
- 임베디드 시스템 : 컴퓨터 하드웨어와 소프트웨어가 조합하여 특정 목적을 수행하는 시스템
임베디드 시스템 적용 사례
- 버스, 전철 출입문 단말기 -> 임베디드 시스템 내장
- 모든 사물에 임베디드 시스템이 내장되어 통신하는 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 계열 마이크로 프로세서를 주변 장치(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
'컴퓨터과학 > 임베디드' 카테고리의 다른 글
임베디드 SW 엔지니어링 - 3 펌웨어 분석 (0) | 2020.05.25 |
---|---|
임베디드 SW 엔지니어링 - 2 하드웨어 분석 (0) | 2020.05.24 |
펌웨어구현 환경구축 12 - 메모리 맵의 구성 및 운용 (0) | 2020.05.07 |
펌웨어구현 환경구축 10 - 마이크로 프로세서 내부 구조 (0) | 2020.05.07 |
펌웨어구현 환경구축 9 - 데이터시트 분석 (0) | 2020.05.06 |