728x90

임베디드 시스템 개발

- 하드웨어 개발 : 하드웨어 플랫폼 자체 개발, 설계에 적합한 상용 보드 구매 -> 프로토타입 구현 -> 상품화 시 전용보드

- 소프트웨어 개발

    운영체제 : 자체 개발 힘들 시 기존 운영체제 사용. 라이센스, 안정성 등 고려

    응용 소프트웨어 : 오픈소스 사용하여 개발 시간 단축

 

(1) 하드웨어 개발

1) 하드웨어 플랫폼

하드웨어 플랫폼 구성

- CPU 보드, IO보드

- CPU 보드 : CPU를 실장한 보드(PCB) -> Main Board, Mother Board

- IO보드 : 특정기능을 수행하는 입출력장치를 실장한 보드 -> Sub-board, Daughter board

 

2) 하드웨어 플랫폼 제작

1. 최적화 보드 자체 제작

2. 상용 보드 구매

3. 외부 전문 기업에 위탁 제작 

- 제작 비용과 시간, 성능을 고려하여 개발

 

응용 분야 최적화 보드 자체 제작

- PCB 설계 : 회로도 작성 -> 부품 배치 -> 부품 배선 -> 기반도면완성(Artwork)

         -> PCB 제작 ->부붐 실장(Mounting) -> 동작 테스트 -> 메모리 스프트웨어 로딩

        * PCB에 대한 열분석, 노이즈 분석 등으로 방열 대책, 노이즈 대책이 추가

 

3) 오픈 하드웨어 플랫폼

- 교육/개발용 오픈 아키텍처보드

- 짧은 시간 내, 제품 기능 구현 가능성 검증용으로 적합

ex) 8비트 아두이노 보드, 32비트 라즈베리파이, 32비트 갈릴레오보드

 

8비트 아두이노보드

- Atmel의 AVR 코어 기반

- 저가형 8비트 CPU 보드 -> 소규모 임베디드 시스템 구현에 적합

- 다양한 IO보드를 활용 -> 상용 시스템 구현 가능

 

32비트 라즈베리파이 보드

- 2006년 영국 라즈베리파이 재단이 개발한 싱글보드 컴퓨터

- ARM11 계열 프로세서를 사용. 운영체제는 리눅스 기반의 라즈비안

 

32비트 갈릴레오보드

- 인텔 Quark Soc X1000 프로세서 기반 마이크로 컨트롤러 보드(32비트 팬티엄급 CPU)

- 아두이노와 호환가능. 100MB 이더넷, RS-232 직렬, USB 호스트 포트 등 제공

 

(2) 소프트웨어 개발

1) 임베디드 OS

2) 실시간 OS

3) 응용프로그램 개발

4) 오픈 소스

 

1) 임베디드 OS

임베디드 OS 특성

- 범용 운영체제에 비해 작음

- 빠른 부팅, 저전력, 비디스크방식

- 다양한 프로세서 지원

- 빠른 응답속도 -> 실시간성 높음

- 메모리 기반 File System/Database 시스템 제공

- 컴포넌트 방식의 구성 - 목적 시스템에 따라 구성 변경이 가능

 

2) 실시간 OS

실시간 OS 특성

- 지정된 시간 제한 내 출력

- 정해진 시간 안에 작업 수행 가능한 환경

- 예측 가능하고 일정한 응답시간을 요구하는 응용프로그램 지원

- 하드웨어 자원사용으로 작업 시간 제한 충족

- 우선순위가 높은 작업에 많은 실행 시간 할당

 

실시간 OS 구분

- 경성 실시간 (Hard real-time) : 작업을 일정시간안에 처리해야함. 제한 시간 경과시 시스템 실패 ->비행기, 군장비

- 연성 실시간 (Soft real-time) : 제한 시간안에 실행못해도 실패로 끝나지 않음 -> 휴대폰, 라우터

- 상용 실시간

 

상용 실시간 (Commercial real-time) OS 특성

 - 선점형 멀티태스킹, POSIX(표준 유닉스 시스템 인터페이스) 지원

 - 작업 우선순위에 따라 실행

 - 시스템 콜에 의한 커널 모드와 사용자 모드 독립성 보장

 - 통합 개발환경과 디버깅 툴 제공하여 개발자들이 쉽게 개발할 수 있도록 지원

 - 고가 라이선스 비용

 

3) 응용 프로그램 개발

응용 프로그램

- 사용 목적에 따라 개발된 프로그램

- 하드웨어 플랫폼 위에서 실행 -> 특정 HW 플랫폼에 의존적

- 실행 속도 및 리소스 사용량 최소화를 위해 시스템 설계부터 코딩까지 최적화 과정을 거침

 

설계 사양 -> 설계 -> 시스템 설계 -> 최적 -> 최적설계결과

* 시스템 설계 평가의 설계 평가 요소 : 실행 속도, 하드웨어 사용량, 소비 전력

 

4) 오픈 소스

오픈 소스 소프트웨어 및 라이브러리

- 일반에 소스까지 공개된 SW/Lib

-> 설계 비용과 시간 절약

- 쉽게 검색 및 커뮤니티를 통한 기술지원

- 신뢰도와 안정성이 미흡할 수 있음

 

오픈소스의 정의

- 자유로운 재배포 -> 자유로운 배포 허용. 비용 받지 않아야함

- 소스(원시) 코드 -> 고의로 보기 힘들게 하지 않아야 함.

- 파생 저작물 -> 개작과 파생 저작물 허용. 파생 저작물은 원본 오픈소스에 적용된 라이선스 적용.

- 저작자의 소스 코드 원형 유지 : 변경된 소스 코드로 만들어진 결과 배포 허용.

- 개인이나 단체 차별 금지

- 사용분야 차별 금지

- 라이선스의 배포

- 특정 제품에만 유효한 사용 허가 금지 : 권리가 특정 소프트웨어 배포에만 한정적이여선 안됨. 

- 다른 소프트웨어에 대한 제한 금지 : 다른 라이선스를 가진 소프트웨어에 대한 제한을 포함해선 안됨

- 기술 중립적

 

Open CV

- Open Source Computer Vision

- 인텔 영상 처리 라이브러리

- 기초 ~ 고급 영상처리 알고리즘 함수로 구현되 포함됨

- 오픈 소스 규격으로 개발된 알고리즘은 라이브러리에 등록 가능

- 최적화된 C언어로 작성, 멀티코어 프로세서 장점 활용, 연산 효율성 고려하여 설계됨

 

안드로이드 플랫폼

- 모바일 디바이스를 위한 오픈 소스 소프트웨어 스택

- 언어는 JAVA, SDK와 API 사용

 

(3) HW-SW 공조설계

1) 공조설계 개요

2) 이론적 공조 설계 흐름

3) 현실적 공조 설계 흐름

 

1) 공조 설계 개요

HW-HW 공조설계

- 하드웨어, 소프트웨어가 조합된 시스템에서 기능, 성능을 목적을 달성하기 위해 협력성과 동시성을 지원하는 설계방법

 

공조설계방법

- 시스템 사양서 분석

- 실행속도가 중요한 부분은 하드웨어,  확장성 중요한부분은 소프트웨어로 구현할 부분 분할

- HW, SW 독립적으로 구현하여 통합

 

HW-SW 공조설계 문제점

- 시스템 통합과 검증에 많은 시간과 비용 소요

- HW SW 전문지식 가진 개발인력 부족

 

2) 이론적 공조 설계 흐름

 

3) 현실적 공조 설계 흐름

- 이론적 공조설계와 동일하나 설계 과정에 다소 차이

- 개략적인 개발 흐름 고려시 이런 흐름을 따름

 

300x250

+ Recent posts