1. 광고배너
  2. 광고배너
  3. 광고배너
  4. 광고배너
/ 이전버튼 다음버튼
2
미리보기

고성능 임베디드 시스템 설계-FPGA 맞춤형 회로 기반 고성능 실시간 디지털 시스템 설계와 구축
저자 : 짐레딘 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 정병혁

2022.09.23 ㅣ 396p ㅣ ISBN-13 : 9791161756721

정가35,000
판매가35,000원 (0%)
적립금 0원 (0%)
배송일정 02월 01일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 시스템공학 > 아키텍처/시스템프로...
최신 기술의 디바이스를 설계하기 위해 고성능 임베디드 시스템 개발 과정 및 FPGA를 이용한 펌웨어 개발을 설명한다. 세 파트에서 각각 임베디드 시스템과 FPGA 개념 소개, FPGA 기능, 고성능 회로 설계, 펌웨어 개발 및 테스트를 자세히 설명한다. 이 책으로 임베디드 개발자가 고성능 임베디드 디바이스 전체 개발 과정을 알 수 있다.
펼쳐보기

[목 차]

1부. 고성능 임베디드 시스템 기초


1장. 고성능 임베디드 시스템 설계
__기술 요구 사항
__임베디드 시스템 요소
____전원
____시간 축
____디지털 처리
____메모리
____소프트웨어와 펌웨어
____특수 회로
____환경으로부터 입력
____환경으로 출력
____네트워크 통신
____사물인터넷
__실시간 동작
____주기적 동작
____이벤트 기반 동작
____실시간 운영체제
__임베디드 시스템에서의 FPGA
____디지털 논리 게이트
____플립플롭
____FPGA 요소
____FPGA 합성
____하드웨어 설계 언어
____임베디드 시스템 설계에서 FPGA 사용의 장점
____자일링스 FPGA 및 개발 도구
__요약


2장. 세계를 감지하기
__기술 요구 사항
__수동 선서, 능동 센서, 스마트 센서의 개요
__아날로그-디지털 변환기 적용
__임베디드 시스템이 사용하는 센서 유형
____빛
____온도
____압력
____습도
____유체 흐름
____힘
____초음파
____오디오
____자기
____화학
____이온화 방사선
____레이더
____라이다
____비디오와 적외선
____관성
____GPS
__센서와의 통신
____GPIO
____아날로그 전압
____I2C
____SPI
____CAN 버스
____무선
__센서 데이터 처리
__요약


3장. 실시간 동작
__기술 요구사항
__실시간의 의미
__실시간 임베디드 시스템의 속성
____다중 작업 수행하기
____비율 단조 스케줄링
__주요 RTOS 기능 및 과제 이해
____뮤텍스
____세마포어
____큐
____이벤트 플래그
____타이머
____동적 메모리 할당
____교착상태
____우선순위 역전
__많이 사용되는 실시간 운영체제
____embOs
____FreeRTOS
____INTEGRITY
____Neutrino
____μc/OS-III
____VxWorks
__요약


2부. 고성능 임베디드 시스템 설계 및 구축


4장. FPGA 프로그램 개발 시작하기
__기술 요구사항
__실시간 임베디드 시스템 설계에서 FPGA 사용
____블록 램과 분산 램
____FPGA 입출력 핀과 관련 기능
____전문 하드웨어 자원
____프로세서 코어
__FPGA 0구현 언어
____VHDL
____Verilog
____블록 다이어그램
____C/C++
__FPGA 개발 과정
____시스템 요구사항 정의하기
____FPGA에 기능 할당하기
____필요한 FPGA 기능 식별하기
____FPGA 설계 구현하기
__첫 FPGA 프로젝트 개발
____프로젝트 설명
____Vivado 도구 설치하기
____프로젝트 만들기
____VHDL 소스 파일 만들기
____로직 동작 테스트하기
____입출력 신호 정의하기
____최상위 VHDL 파일 만들기
____FPGA 비트스트림 합성 및 구현하기
____비트스트림을 보드에 다운로드하기
____비트스트림을 탑재된 플래시 메모리에 프로그램하기
__요약


5장. FPGA로 시스템 구현하기
__기술 요구사항
__FPGA 컴파일 과정
____설계 엔트리
____로직 합성
____설계 최적화
____상위 수준 합성
____최적화와 제약사항
__FPGA 구현에 최적인 알고리듬 유형
____고속 데이터 스트림을 처리하는 알고리듬
____병렬 알고리듬
____비표준 데이터 크기를 사용하는 알고리듬
__오실로스코프 FPGA 프로젝트 시작
____프로젝트 설명
____기본 Vivado 프로젝트
__요약


6장. KiCad를 이용한 회로 설계하기
__기술 요구사항
__KiCad 소개
__KiCad 기본 절차
____회로 부품 배치 및 연결
____부품 심볼 생성
__프로젝트 회로도 다이어그램 개발
____텍스트 주석 추가
____신호 레이블 추가
____전역 레이블 추가
____차동 신호 쌍 생성
____외장 연결 생성
____심볼 주석 및 전기 규칙 확인
__PCB 레이아웃 만들기
__회로기판 프로토타입 만들기
__요약


7장. 고성능 디지털 회로 만들기
__기술 요구사항
__회로 기판 조립 도구 및 과정
____광학 확대
____핀셋
____플럭스
____땜납
____정전기 보호
____수작업 납땜
____솔더 윅
____솔더 페이스트 애플리케이션
____리플로우 납땜
____조립 준비 및 부품 배치
__리플로우 납땜과 수작업 납땜
____리플로우 납땜
____수작업 납땜
__조립 후 보드 세척 및 검사
____플럭스 제거
____조립 후 시각적 검사
____전기적 단락 검사
__요약


3부. 실시간 펌웨어 구현 및 테스트


8장. 처음으로 보드 브링업하기
__기술적 요구사항
__전원 켜기 준비
____기판 전원 공급
__회로 기본 기능 검사
____기판 전원 공급 검사
____아날로그 증폭기 검사
____ADC 검사
__문제 발생 시 회로 수정
____PCB 트레이스 절단
____솔더 점퍼와 점퍼 와이어 설치
____부품 제거
____부품 추가
__FPGA 로직 추가 및 I/O 신호 검사
ADC 인코더 클럭과 1KHz 보정 신호 생성
__요약


9장. 펌웨어 개발 과정
__기술 요구사항
__FPGA 알고리듬 설계 및 구현
____디지털 오실로스코프 시스템 개요
____직병렬 변환기 추가
____FIFO 버퍼 추가
____AXI 버스 인터페이스 추가
____MQTT 프로토콜 추가
__코딩 스타일
____이름 규칙
____코드 내 주석
____리터럴 숫자 값 피하기
____괄호와 들여쓰기, 세로 간격
____가독성과 정확도에 우선순위 두기
____어설픈 최적화 피하기
____구현 정의된 동작 피하기
____무조건 점프 피하기
____식별자 범위 최소화
____상수 항목은 상수로 표현하기
____코드 자동 포맷팅
__소스코드 정적 분석
____소스코드 정적 분석의 의미
____정적 소스 분석 도구
____정적 코드 분석을 효과적으로 사용하기
____가장 중요한 메시지부터 시작하기
____분석기 출력 메시지 해결하기
____일반적인 소스 코드 분석기 메시지
__소스코드 버전 제어
____Git을 사용한 버전 제어
____테스트 주도 개발
____임베디드 시스템에 적용되는 TDD
__요약


10장. 임베디드 시스템 테스트 및 디버깅
__기술적 요구사항
__시스템 수준 테스트 설계
____요구사항 주도 테스트
____수행 가능한 조건과 수행 가능하지 않은 조건에서 테스트
____단위 테스트와 기능 테스트
____음성 테스트와 침투 테스트
____시뮬레이션된 환경에서 테스트
____반복 가능한 테스트 결과 얻기
____테스트 계획 개발
__테스트 수행 및 결과 기록
____수집할 데이터 식별
____테스트 할 시스템 구성
____테스트 절차 수행
____테스트 결과에 관한 빠른 평가
____필요 시 테스트 반복
____기존 코드의 회귀 테스트
__포괄적인 테스트 범위 보장
____요구사항 추적성 매트릭스
____코드 적용 범위 추적
____어느 수준의 테스트가 충분한지 정의하는 기준 설정
__효과적인 디버깅 기법
____문법 혹은 컴파일 에러 및 경고 처리
____정적 코드 분석과 단위 테스트 사용
____문제를 명확히 정의하고 재현하기
____입력이 올바른지 결정하기
____시스템에 대한 가시성 확보 방법 찾기
____이진 탐색 디버깅 과정 사용
____기능의 일부를 임시로 제거하기
____문제를 나타내는 가장 작은 프로그램 만들기
__고성능 임베디드 시스템 개발의 모범사례 요약
____테스트를 위한 설계
____개선을 위한 여지 남기기
____미래의 기능을 고려한 하드웨어 설계
____현재 필요한 코드만 개발하기
____철저한 버전 제어 유지하기
____코드 개발 중에 단위 테스트 개발하기
____기능이 구현되는 시점부터 시스템 수준 테스트 시작하기
__요약

[본 문]

◈ 옮긴이의 말 ◈

임베디드 디바이스를 만들고 동작시키려면 다양한 기술이 필요하다. 그러므로 여러 팀의 협업이 필요하다. 임베디드 디바이스를 다루는 대학이나 회사들은 임베디드 디바이스를 크게 소프트웨어와 하드웨어로 나누고, 기술별, 모듈별, 부품별로 세분화해 연구나 작업을 진행한다. 이런 세분화된 팀을 만들어 각 업무의 전문성을 높이는 것은 업무의 효율성을 높이는 장점이 있다.
다만 소프트웨어 엔지니어나 하드웨어 엔지니어가 이런 세분화된 팀에서 각자 맡은 일 혹은 연관된 일만 수행한다. 그래서 실제 임베디드 디바이스 동작을 위한 다른 중요한 작업에 대해서 모르는 경우가 많다. 예를 들어 임베디드 소프트웨어 엔지니어들은 이미 만들어진 기본 보드위에서 기능을 개발하기 때문에 보드 관련 정보나 하드웨어 관련 정보를 알지 못하는 경우가 많다. 이런 정보 부족은 최적화를 위한 크로스 레이어 설계를 할 수 없게 만든다. 역자 역시 임베디드 및 반도체 업계에서 펌웨어 및 드라이버를 개발하지만 하드웨어 관련 용어나 지식이 부족해 문서 이해 등 여러 어려움을 겪었다. 또한 하드웨어 엔지니어와 의사소통이 원활하지 않았던 적도 있다. 심지어 소프트웨어 내부에서도 여러 계층이 있어 각 계층간 지식 공유가 원활하지 않은 경우도 흔하다.
개발 혹은 연구하는 임베디드 디바이스가 어떤 설계 및 개발 과정을 거치고 어떤 부품들이 조합되며 유지보수 되는지 전체적으로 살펴볼 기회가 있다면 임베디드 디바이스를 최적화할 수 있다. 물론 개발자 스스로의 역량에도 도움이 될 것이다.
이 책은 임베디드 디바이스 개념에서 시작해 디바이스에서 동작하는 운영체제, 고성능 작업을 위해 임베디드 디바이스에 연결되는 FPGA 개발, 보드 브링업, 펌웨어 개발 및 디버깅까지 다룬다. 임베디드 디바이스 개발 전체 과정을 디지털 오실로스코프를 직접 만들며 설명하고 있어 독자는 실제적인 임베디드 디바이스 개발을 직접 혹은 간접적으로 겪어볼 수 있다. 이를 통해 담당하지 않았던 다양한 분야의 작업들을 알 수 있을 것이다.
임베디드 디바이스의 다양한 분야를 다루기 때문에 독자와 친숙한 부분도 있지만 친숙하지 않은 부분도 있을 수 있다. 그러나 저자가 이런 부분들은 쉽게 설명하고, 실제 예제로 독자가 직접 수행할 수 있으므로 무난하게 이해할 것이다. 나는 알지 못했던 지식들을 배우며 재밌게 번역을 했다. 같은 임베디드 업계의 동료로서 독자들도 이런 재미를 느끼고 조금이나마 지식에 도움이 되기를 바란다.
정병혁

리눅스 기반의 고성능 프로세스를 채용한 임베디드 시스템이 보편화됐다. 이는 소프트웨어 엔지니어가 하드웨어에 대한 지식이 부족하더라도 잘 갖춰진 개발 환경에서 요구사항에 부합하는 애플리케이션을 개발하고 배포하는 것을 가능케 했다. 최근 들어 IoT 환경과 같이 다량의 저가형 디바이스를 사용하거나 비용 문제로 리눅스 기반의 범용 시스템을 사용하지 못하는 경우가 있다. 이런 요구사항에도 적합한 시스템을 설계하고 개발할 줄 알아야 한다. 하지만 현재 분업화된 개발 환경에서는 자신의 개발 영역이 아닌 부분에 대한 지식을 습득하기 어렵다.
이 책은 고성능 임베디드 시스템 설계를 위한 전체적인 내용을 다룬다. 독자에게 익숙한 부분도, 생소한 부분도 있을 것이다. 천천히 따라가다 보면 디지털 오실로스코프를 직접 만들어 보면서 전반적인 임베디드 시스템 전체에 대한 이해를 높일 수 있을 것이다. 더불어 현재 개발 중인 임베디드 시스템에 대한 이해를 높이고, 각 계층을 이해하고 협업을 하는 데 도움이 될 것이다.
곽종원
펼쳐보기
◈ 이 책에서 다루는 내용 ◈

◆ 실시간 임베디드 시스템과 센서의 기본
◆ FPGA의 기능과 개발 도구 사용법
◆ 디지털 회로 설계와 KiCad를 사용한 PCB 레이아웃
◆ 저렴한 비용으로 고속 회로 보드 프로토타입 제작
◆ FPGA용 고성능 알고리듬 설계 및 개발
◆ C를 이용한 견고하고 안정적이며 효과적인 펌웨어 개발
◆ 임베디드 디바이스 하드웨어와 펌웨어의 완전한 테스트 및 디버깅


◈ 이 책의 대상 독자 ◈

소프트웨어 개발자나 하드웨어 엔지니어, 사물인터넷 개발자, 고성능 임베디드 시스템 개발 과정을 이해하고자 하는 이들을 위한 책이다. FPGA 개발의 기본 및 C나 C++로 작성된 펌웨어 개발에 관심이 있다면 도움이 될 것이다. C 언어와 디지털 회로, 전자 부품 납땜(솔더링)등의 기초를 알고 있어야 한다.


◈ 이 책의 구성 ◈

1장, ‘고성능 임베디드 시스템 설계’에서는 임베디드 시스템 구조를 이루는 요소를 소개하고 여러 임베디드 애플리케이션에서 공통적으로 사용하는 주요 시스템 기능을 소개한다.
2장, ‘세계를 감지하기’에서는 다양한 임베디드 애플리케이션에서 사용되는 센서의 이론 및 구현을 소개한다.
3장, ‘실시간 동작’에서는 임베디드 시스템이 센서나 다른 자원들로부터 측정된 입력에 대해 실시간 응답을 생성해야 할 필요성을 다룬다. 실시간 운영체제(RTOS)의 개념 및 주요 기능을 소개하며, 실시간 애플리케이션에서 멀티태스킹을 구현할 때 흔히 겪는 어려움도 알아본다.
4장, ‘FPGA 프로그램 개발 시작하기’에서는 실시간 임베디드 시스템에서 FPGA 장치의 효과적인 사용법이 무엇인지 설명한다. 표준 FPGA에 포함된 기능적 요소를 알아본다. HDL(하드웨어 명세 언어)와 블록 다이어그램 기법, C나 C++ 같은 자주 사용되는 소프트웨어 프로그래밍 언어를 포함하는 다양한 FPGA 설계 언어를 소개한다.
5장, ‘FPGA로 시스템 구현하기’에서는 FPGA를 사용한 임베디드 디바이스 설계 및 구현 과정을 깊게 살펴본다.
6장, ‘KiCad를 이용한 회로 설계하기’에서는 훌륭한 전자 설계 및 자동화 도구 오픈소스인 KiCad를 소개한다. KiCad을 통해 회로도를 사용한 회로를 설계하고 해당 인쇄 회로 기판 레이아웃을 개발한다.
7장, ‘고성능 디지털 회로 만들기’에서는 표면 실장(surface mount)과 삽입 실장(through hole) 전자부품을 사용한 프로토타입 고성능 디지털 회로 조립 관련 과정과 기법을 설명한다. 그리고 솔더링 스테이션과 확대경, 현미경, 작은 부품을 처리하기 위한 핀셋 등의 도구들을 추천한다.
8장, ‘처음으로 보드 브링업하기’에서는 이미 설계 및 구성, 청소, 검사된 인쇄 회로 기판에 전원을 공급하는 방법 즉, 악명 높은 기초 안전성 검사(스모크 테스트) 수행하는 법을 다룬다.
9장, ‘펌웨어 개발 과정’에서는 기본 동작하는 회로 보드에 아날로그-디지털 변환기(ADC)와의 통신을 포함한 FPGA 알고리듬의 남은 주요 과정들을 다루며, 마이크로 블레이즈 프로세서 펌웨어를 개발한다.
10장, ‘임베디드 시스템 테스트 및 디버깅’에서는 이제 임베디드 시스템 개발이 거의 완성됐으므로 시스템이 동작할 환경에서 완전한 테스트 방법을 설명한다. 또한 권장하는 디버깅 과정에 관한 논의와 고성능 임베디드 시스템 개발의 모범 사례를 살펴본다.
펼쳐보기
짐 레딘(Jim Ledin)
레딘 엔지니어링사의 CEO로, 임베디드 소프트웨어/하드웨어 설계 및 개발, 테스트 전문가다. 임베디드 시스템 사이버 보안 평가 및 모의 해킹에 참여했다. 아이오와 주립대학교에서 항공 공학을 전공했고, 조지아 공과대학에서 전기 및 컴퓨터 공학으로 석사를 받았다. 캘리포니아주 공인 전문 전기기사이며, CISSP(Certified Information System Security Professional), CEH(Certified Ethical Hacker), CPT(Certified Penetration Tester)이다.

옮긴이 정병혁
고려대학교 컴퓨터학과와 동 대학원 네트워크 연구실을 졸업한 뒤, 임베디드 환경에서 Wifi 드라이버/펌웨어 개발 및 안정성 이슈를 담당하고 있다. 임베디드 환경에서의 펌웨어, 드라이버, RTOS, Linux/Android, WIFI 분야에 관심이 많다.

옮긴이 곽종원
경희대학교 기계공학과와 고려대학교 대학원 네트워크 연구실을 졸업했다. 스마트 TV 환경에서 방송 시스템과 서비스 애플리케이션을 개발하고 있다.
펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
0/2000자

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2020-서울강남-01007 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기