(개정 4판) USB 완전정복 [3.0 버전까지 USB의 모든 것]
- 원서명USB Complete: The Developer's Guide (4th edition) (ISBN 9781931448086)
- 지은이Jan Axelson
- 옮긴이신진철
- 감수자디오이즈
- ISBN : 9788960771765
- 39,000원
- 2011년 01월 28일 펴냄
- 페이퍼백 | 636쪽 | 185*235mm
- 시리즈 : acorn classics, 임베디드 시스템
판매처
개정판책 소개
USB는 모든 IT 제품의 만능(Universal) 인터페이스로 자리 잡은 범용의 고속 인터페이스다. 『(개정 4판) USB 완전정복』은 이렇게 광범위 하게 사용되는 USB의 모든 것을 담은 책이다. 개정 4판에서는 USB 3.0 슈퍼스피드와 기타 최신 정보를 추가했다. 2011년부터는 USB 3.0 기술이 폭발적으로 확산되리라 예상된다. 인텔 샌드브릿지 마더보드가 USB 3.0을 기본 탑재하기 시작했으며 외장 SSD, HDD등 고속을 요하는 주변기기의 인터페이스로 속속 채용되고 있다. 『(개정 4판) USB 완전정복』은 USB를 개발하는 모든 개발자에게 완벽한 해답을 줄 것이다.
[ 소개 ]
● USB 제품 설계
● 닷넷을 통한 USB 디바이스 개발
● OTG와 무선 기술
● USB 3.0과 슈퍼스피드
● 임베디드 시스템의 USB 활용
강력한 USB를 탑재한 제품 설계
최신 USB 3.0과 슈퍼스피드 기술의 철저 해부
USB는 가장 성공한 개인용 컴퓨터 인터페이스다. 1996년 처음 등장한 이래로 더욱 진보한 전원 관리 기능과 다양한 디바이스 클래스, 무선 통신과 임베디드 컴퓨팅 등 광범위한 기능으로 진화했으며, 속도 또한 점점 더 빨라졌다.
최신 칩과 개발 툴을 반영한 『(개정 4판) USB 완전정복』에서는 USB 디바이스와 디바이스 소프트웨어 개발자를 위한 모든 내용을 담았다.
[ 이 책에서 다루는 내용 ]
■ 프로젝트에 적합한 디바이스 컨트롤러 칩을 선정하는 법
■ 특수 기능을 수행하는 디바이스 개발
■ 비주얼 베이직, 비주얼 C#을 통한 디바이스 개발
■ USB 디바이스 클래스를 사용한 개발 기간 단축
■ USB 디바이스에 접근하는 무선 인터페이스 사용
■ 전원 관리를 통한 배터리 사용 시간 극대화
■ 임베디드 시스템과 USB 디바이스
[ 개정 4판에서 달라진 점 ]
1996년 USB 1.0이 등장한 이후 USB의 핵심적인 내용은 많은 부분이 그대로 남아있지만 더 빠른 버스 속도, 전원 관리 개선, 다양한 디바이스 클래스, 무선 통신, 디바이스/호스트 겸용 디바이스 등 계속 발전했다. 요즘에는 개선된 칩과 개발 툴을 이용해 디바이스 개발과 디바이스 소프트웨어 개발도 쉽게 할 수 있다.
개정 4판은 많은 곳을 고치고 추가했다. 특히 USB 3.0과 슈퍼스피드에 대한 설명을 새롭게 추가했다. 또한 마이크로소프트 WinUSB 드라이버로 제조사 전용 기능을 수행하는 법도 수록했다. 주로 손을 본 주제로는 디바이스 컨트롤러 칩, 무선 USB 통신 기술, 절전 대응 프로토콜, USB 디바이스 클래스 등이다.
이 책은 비주얼 베이직과 비주얼 C#으로 쓴 애플리케이션 예제 코드를 둘 다 제공한다. 디바이스 펌웨어에서는 마이크로엔지니어링 랩스(microengineering Labs)의 PICBASIC PRO™와 마이크로칩 테크놀로지(Microchip Technology)의 MPLAB® C 컴파일러를 사용하는 법을 다룬다.
[ 소개 ]
● USB 제품 설계
● 닷넷을 통한 USB 디바이스 개발
● OTG와 무선 기술
● USB 3.0과 슈퍼스피드
● 임베디드 시스템의 USB 활용
강력한 USB를 탑재한 제품 설계
최신 USB 3.0과 슈퍼스피드 기술의 철저 해부
USB는 가장 성공한 개인용 컴퓨터 인터페이스다. 1996년 처음 등장한 이래로 더욱 진보한 전원 관리 기능과 다양한 디바이스 클래스, 무선 통신과 임베디드 컴퓨팅 등 광범위한 기능으로 진화했으며, 속도 또한 점점 더 빨라졌다.
최신 칩과 개발 툴을 반영한 『(개정 4판) USB 완전정복』에서는 USB 디바이스와 디바이스 소프트웨어 개발자를 위한 모든 내용을 담았다.
[ 이 책에서 다루는 내용 ]
■ 프로젝트에 적합한 디바이스 컨트롤러 칩을 선정하는 법
■ 특수 기능을 수행하는 디바이스 개발
■ 비주얼 베이직, 비주얼 C#을 통한 디바이스 개발
■ USB 디바이스 클래스를 사용한 개발 기간 단축
■ USB 디바이스에 접근하는 무선 인터페이스 사용
■ 전원 관리를 통한 배터리 사용 시간 극대화
■ 임베디드 시스템과 USB 디바이스
[ 개정 4판에서 달라진 점 ]
1996년 USB 1.0이 등장한 이후 USB의 핵심적인 내용은 많은 부분이 그대로 남아있지만 더 빠른 버스 속도, 전원 관리 개선, 다양한 디바이스 클래스, 무선 통신, 디바이스/호스트 겸용 디바이스 등 계속 발전했다. 요즘에는 개선된 칩과 개발 툴을 이용해 디바이스 개발과 디바이스 소프트웨어 개발도 쉽게 할 수 있다.
개정 4판은 많은 곳을 고치고 추가했다. 특히 USB 3.0과 슈퍼스피드에 대한 설명을 새롭게 추가했다. 또한 마이크로소프트 WinUSB 드라이버로 제조사 전용 기능을 수행하는 법도 수록했다. 주로 손을 본 주제로는 디바이스 컨트롤러 칩, 무선 USB 통신 기술, 절전 대응 프로토콜, USB 디바이스 클래스 등이다.
이 책은 비주얼 베이직과 비주얼 C#으로 쓴 애플리케이션 예제 코드를 둘 다 제공한다. 디바이스 펌웨어에서는 마이크로엔지니어링 랩스(microengineering Labs)의 PICBASIC PRO™와 마이크로칩 테크놀로지(Microchip Technology)의 MPLAB® C 컴파일러를 사용하는 법을 다룬다.
목차
목차
- 1장 USB 기초
- 사용상 제약 사항
- 사용자 이점
- 개발자 측면의 이점
- USB의 한계
- USB와 이더넷
- USB와 IEEE-1394
- 인터페이스의 진화
- USB 1.0
- USB 1.1
- USB 2.0
- USB 3.0
- USB OTG
- 무선 USB
- 버스 구성 요소
- 토폴로지
- 버스 속도에 관해
- 용어
- 역할
- 호스트의 역할
- 디바이스의 역할
- 버스 속도와 데이터 처리 능력
- 디바이스 개발
- 구성 요소
- 개발 도구
- 프로젝트 개발 단계
- USB 3.0 FAQ
- 기능
- 호환성
- 케이블
- 전원
- 사용상 제약 사항
- 2장 USB 전송
- 전송 기초
- 기초
- 통신의 목적
- 버스상의 데이터 관리
- 전송의 구성 요소
- 엔드포인트: 데이터를 만들거나 쓰는 곳
- 트랜잭션 형식
- 파이프: 엔드포인트를 호스트에 연결
- 전송 방식
- 스트림 파이프, 메시지 파이프
- 전송 개시
- USB 2.0 트랜잭션
- 트랜잭션 페이즈
- 패킷 순서
- 타이밍 제약과 타이밍 보장
- 분할 트랜잭션
- 전송 성공에 대한 보증
- 상태 코드와 제어 코드
- 제어 전송 상태 보고
- 에러 확인
- 슈퍼스피드 트랜잭션
- 패킷 형식
- 데이터 전송
- 링크 관리 패킷
- 전송 기초
- 3장 용도별 전송 방식
- 제어 전송
- 가용성
- 구조
- 데이터 크기
- 속도
- 에러 검출과 에러 처리
- 디바이스의 책임
- 벌크 전송
- 가용성
- 구조
- 데이터 크기
- 속도
- 에러 검출과 에러 처리
- 디바이스의 책임
- 인터럽트 전송
- 가용성
- 구조
- 데이터 크기
- 속도
- 에러 검출과 에러 처리
- 디바이스의 책임
- 등시성 전송
- 가용성
- 구조
- 데이터 크기
- 속도
- 에러 검출과 에러 처리
- 디바이스의 책임
- 시간이 중요한 전송
- 버스 대역폭
- 디바이스 기능
- 호스트 기능
- 호스트 지연
- 제어 전송
- 4장 열거
- 열거 프로세스
- 열거 단계
- 디바이스 제거
- 성공적인 열거를 위한 팁
- 디스크립터
- 디스크립터 종류
- 디바이스
- 디바이스 한정자
- 컨피규레이션
- 다른 속도 컨피규레이션
- 인터페이스 연관 디스크립터
- 인터페이스 디스크립터
- 엔드포인트
- 슈퍼스피드 엔드포인트 짝
- 문자열
- 바이너리 오브젝트 스토어와 디바이스 기능
- 기타 표준 디스크립터
- 마이크로소프트 OS 디스크립터
- USB 2.0용 디스크립터로 업데이트
- 열거 프로세스
- 5장 제어 전송
- 제어 전송의 요소
- SETUP 스테이지
- DATA 스테이지
- STATUS 스테이지
- 에러 처리
- 디바이스 펌웨어
- 표준 요청
- Get Status
- Clear Feature
- Set Feature
- Set Address
- Get Descriptor
- Set Descriptor
- Get Configuration
- Set Configuration
- Get Interface
- Set Interface
- Synch Frame
- Set SEL
- Set Isochronous Delay
- 기타 요청
- 클래스 전용 요청
- 제조사 전용 요청
- 제어 전송의 요소
- 6장 칩 선택
- USB 디바이스의 구성 요소
- USB 2.0 컨트롤러의 내부
- 기타 디바이스 요소
- 디바이스 개발 간소화
- 디바이스 요구 사항
- 칩 문서
- 드라이버 선택
- 디버깅 툴
- USB 마이크로 컨트롤러 211
- 마이크로칩 PIC18F4550
- 사이프레스 EZ-USB
- ARM
- 외부 CPU와 인터페이스하는 컨트롤러
- ST-NXP 와이어리스 ISP1582
- PLX 테크놀로지 NET2272
- FTDI USB UART와 USB FIFO
- USB 디바이스의 구성 요소
- 7장 디바이스 클래스
- 요소와 사용
- 공인 스펙
- 클래스 스펙 요소
- 정의된 클래스
- 오디오
- 통신 디바이스
- 컨텐츠 보안
- 디바이스 펌웨어 업그레이드
- 휴먼 인터페이스
- IrDA 브릿지
- 대용량 저장장치
- 개인 헬스케어
- 프린터
- 스마트카드
- 정지 이미지 캡처
- 실험 및 계측
- 비디오
- 비표준 기능 구현
- 드라이버 선택
- 범용 드라이버 선택
- RS-232로부터 변환
- 패러럴 포트로부터 변환
- PC 사이 통신
- 요소와 사용
- 8장 호스트와 통신
- 디바이스 드라이버
- 계층적 드라이버 모델
- 사용자 모드와 커널 모드
- 각 계층의 내부
- 애플리케이션
- 사용자 모드 클라이언트 드라이버
- 커널 모드 클라이언트 드라이버
- 버스와 호스트 컨트롤러 드라이버
- 드라이버 작성
- 커널 모드 드라이버
- 사용자 모드 드라이버
- 테스팅 도구
- GUID 사용
- 디바이스 셋업 GUID
- 디바이스 인터페이스 GUID
- 디바이스 드라이버
- 9장 디바이스와 드라이버 결합
- 장치 관리자 사용
- 디바이스 보기
- 속성 페이지
- 레지스트리 내부의 디바이스 정보
- 하드웨어 키
- 클래스 키
- 드라이버 키
- 서비스 키
- INF 파일
- 구조와 문법
- 디바이스 전용 값
- 디바이스 식별 문자열 사용
- 일치하는 것 검색
- INF 파일 제공
- 툴과 진단 지원
- INF 파일 사용 팁
- 사용자가 볼 수 있는 것
- 장치 관리자 사용
- 10장 디바이스 감지
- API 함수 호출 방법 개요
- 매니지드 코드와 언매니지드 코드
- 데이터 관리
- 디바이스 검색
- 디바이스 인터페이스 GUID 얻기
- 디바이스 정보 세트 포인터 요청
- 디바이스 인터페이스 식별
- 디바이스 경로 이름으로 구조체 요청
- 디바이스 경로 추출
- 통신 종료
- 핸들 얻기
- 통신용 핸들 요청
- 핸들 닫기
- 디바이스 장착/제거 감지
- 디바이스 알림
- 디바이스 알림 등록
- 디바이스 변경 메시지 캡처
- 디바이스 변경 메시지 읽기
- 메시지에서 디바이스 이름 얻기
- 디바이스 알림 정지
- API 함수 호출 방법 개요
- 11장 휴먼 인터페이스 장치: 제어와 인터럽트 전송
- HID란?
- 하드웨어 요구 사항
- 펌웨어 요구 사항
- 디스크립터
- HID 인터페이스
- HID 클래스 디스크립터
- 리포트 디스크립터
- HID 전용 요청
- Get Report
- Get Idle
- Get Protocol
- Set Report
- Set Idle
- Set Protocol
- 데이터 전송
- 펌웨어 작성
- 도구
- HID란?
- 12장 휴먼 인터페이스 장치: 리포트
- 리포트 구조
- HID 디스크립터 툴
- 컨트롤 아이템과 데이터 아이템 값
- 아이템 형식
- 메인 아이템 형식
- 입력, 출력, 특성 아이템
- 컬렉션
- 전역 아이템 형식
- 리포트 식별
- 데이터 사용에 관한 설명
- 단위 변경
- 원본 데이터 변환
- 데이터 크기와 형식 설명
- 전역 아이템 저장과 가져오기
- 로컬 아이템 형식
- 물리 디스크립터
- 패딩
- 리포트 구조
- 13장 휴먼 인터페이스 장치: 호스트 애플리케이션
- HID API 함수
- HID 정보 요청
- 리포트 송수신
- 리포트 데이터 제공과 사용
- HID 통신 관리
- 디바이스 식별
- Vendor ID와 Product ID 읽기
- 디바이스 기능 포인터 얻기
- 디바이스 기능 얻기
- 버튼, 값의 기능 얻기
- 리포트 전송과 수신
- 디바이스에 출력 리포트 전송
- 디바이스에서 입력 리포트 읽기
- 디바이스로 특성 리포트 전송
- 디바이스로부터 특성 리포트 읽기
- 통신 종료
- HID API 함수
- 14장 WinUSB
- 기능과 제약 사항
- 디바이스 요구 사항
- 호스트 요구 사항
- 디바이스 펌웨어
- WinUSB 드라이버 할당
- 디바이스 접근
- WinUSB 핸들 얻기
- 인터페이스 디스크립터 요청
- 엔드포인트 식별
- 파이프 규칙 설정
- 벌크, 인터럽트 전송으로 데이터 쓰기
- 벌크, 인터럽트 전송으로 데이터 읽기
- 제조사 정의 제어 전송 사용
- 통신 종료
- 기능과 제약 사항
- 15장 허브의 모든 것
- USB 2.0
- 허브 중계기
- 트랜잭션 변환기
- 허브 컨트롤러
- 속도
- 활성 링크 유지
- USB 3.0
- 버스 속도
- 구성 요소
- 관리 트래픽
- 허브 클래스
- 허브 디스크립터
- 허브 클래스 요청
- 포트 표시기
- USB 2.0
- 16장 전원 관리
- 전원 옵션
- 전압
- 버스 전원 사용
- 필요 전원
- 호스트로 알림
- 배터리 충전
- 허브 전원
- 전원 소스
- 과전류 보호
- 전원 스위칭
- 전원 절약
- USB 2.0 연결 전원 관리
- 서스펜드 상태
- 슬립 상태
- 슈퍼스피드 전원 관리
- 윈도우에서의 전원 관리
- 전원 옵션
- 17장 테스트와 디버깅
- 툴
- 하드웨어 프로토콜 분석기
- 소프트웨어 프로토콜 분석기
- 트래픽 발생기
- 테스팅
- 적합성 테스트
- 윈도우 로고
- 툴
- 18장 버스상의 패킷
- USB 2.0
- 로우스피드, 풀스피드 버스 상태
- 하이스피드 버스 상태
- 데이터 인코딩
- 동기 유지
- 타이밍 정확도
- 패킷 형식
- 패킷 간 지연
- 테스트 모드
- 슈퍼스피드
- 데이터 스크램블
- 인코딩
- 링크 계층
- 리셋
- USB 2.0
- 19장 전기적/물리적 인터페이스
- USB 2.0 송수신기
- 케이블 세그먼트
- 로우/풀스피드 송수신기
- 하이스피드 송수신기
- 신호 전압
- USB 2.0 케이블
- 접점
- 커넥터
- 분리 가능 케이블과 일체형 케이블
- 케이블 길이
- 버스 길이
- 회로에 의한 USB 직접 연결
- USB 3.0
- 송신기와 수신기
- 케이블
- 신호 품질 보장
- 노이즈 소스
- 평형 선로
- 꼬임선
- 차폐
- 엣지 레이트
- 분리된 인터페이스
- 무선화
- 무선 USB 인증
- 사이프레스 WirelessUSB
- 기타 옵션
- USB 2.0 송수신기
- 20장 임베디드 시스템용 호스트
- USB OTG
- 기능과 제한 사항
- OTG 커넥터
- A 디바이스와 B 디바이스
- OTG 디바이스의 요구 사항
- OTG 디스크립터
- HNP 특성 코드
- 기타 호스트 옵션
- 요구 사항
- 디바이스 포트
- 컨트롤러 칩
- 마이크로 컨트롤러
- USB OTG
도서 오류 신고
정오표
[ p82 표 2-3 'PID 이름' 열, 'DATA1' 행]
0011 → 1011
0011 → 1011