임베디드 시스템 개발
- 하드웨어 개발 : 하드웨어 플랫폼 자체 개발, 설계에 적합한 상용 보드 구매 -> 프로토타입 구현 -> 상품화 시 전용보드
- 소프트웨어 개발
운영체제 : 자체 개발 힘들 시 기존 운영체제 사용. 라이센스, 안정성 등 고려
응용 소프트웨어 : 오픈소스 사용하여 개발 시간 단축
(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) 현실적 공조 설계 흐름
- 이론적 공조설계와 동일하나 설계 과정에 다소 차이
- 개략적인 개발 흐름 고려시 이런 흐름을 따름
'컴퓨터과학 > 임베디드' 카테고리의 다른 글
ARM을 활용한 임베디드 시스템 설계 6 - 레지스터 (0) | 2020.05.04 |
---|---|
ARM을 활용한 임베디드 시스템 설계 5 - 메모리 (0) | 2020.05.03 |
ARM을 활용한 임베디드 시스템 설계 4 - ARM 프로세서 구조 (0) | 2020.05.03 |
ARM을 활용한 임베디드 시스템 설계 2 - 구성 (0) | 2020.05.03 |
ARM을 활용한 임베디드 시스템 설계 1 - 개요 (0) | 2020.05.03 |