▶ 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 마이크로 컨트롤러
▶ Microchip PIC의 18F4550
▶ Cypress EZ_USB
▶ ARM
▶ 외부 CPU와 인터페이스하는 컨트롤러
▶ ST_NXP Wireless ISP1582
▶ PLX Technology NET2272
▶ FTDI USB UART와 USB FIFO
▶
▶ 7장 디바이스 클래스
▶ 요소와 사용
▶ 공인 스펙
▶ 클래스 스펙 요소
▶ 정의된 클래스
▶ 오디오
▶ 통신 디바이스
▶ 컨텐츠 보안
▶ 디바이스 펌웨어 업그레이드
▶ 휴먼 인터페이스
▶ IrDA 브릿지
▶ 대용량 저장장치
▶ 개인 헬스케어
▶ 프린터
▶ 스마트카드
▶ 정지 이미지 캡처
▶ 시험 측정
▶ 비디오
▶ 비표준 기능 구현
▶ 드라이버 선택
▶ 범용 드라이버 선택
▶ RS_232로부터 변환
▶ 패러럴 포트로부터 변환
▶ PC 사이 통신
▶
▶ 8장 호스트와 통신
▶ 디바이스 드라이버
▶ 계층적 드라이버 모델
▶ 사용자 모드와 커널 모드
▶ 각 계층의 내부
▶ 애플리케이션
▶ 사용자 모드 클라이언트 드라이버
▶ 커널 모드 클라이언트 드라이버
▶ 버스와 호스트 컨트롤러 드라이버
▶ 드라이버 작성
▶ 커널 모드 드라이버
▶ 사용자 모드 드라이버
▶ 테스팅 도구
▶ GUID 사용
▶ 디바이스 셋업 GUID
▶ 디바이스 인터페이스 GUID
▶
▶ 9장 디바이스와 드라이버 결합
▶ 장치 관리자 사용
▶ 디바이스 보기
▶ 속성 페이지
▶ 레지스트리 내부의 디바이스 정보
▶ 하드웨어 키
▶ 클래스 키
▶ 드라이버 키
▶ 서비스 키
▶ INF 파일
▶ 구조와 문법
▶ 디바이스 전용 값
▶ 디바이스 식별 문자열 사용
▶ 일치하는 것 검색
▶ INF 파일 제공
▶ 툴과 진단 지원
▶ INF 파일 사용 팁
▶ 사용자에게 보이는 것
▶
▶ 10장 디바이스 검출
▶ API 함수의 간단한 호출 방법
▶ 관리되는 코드와 관리되지 않는 코드
▶ 데이터 관리
▶ 디바이스 검색
▶ 디바이스 인터페이스 GUID 얻기
▶ 디바이스 정보 셋 포인터 요청
▶ 디바이스 인터페이스 식별
▶ 디바이스 경로 이름으로 구조체 요청
▶ 디바이스 경로 추출
▶ 통신 종료
▶ 핸들 얻기
▶ 통신용 핸들 요청
▶ 핸들 닫기
▶ 디바이스 장착/제거 검출
▶ 디바이스 알림
▶ 디바이스 알림 등록
▶ 디바이스 변경 메시지 캡처
▶ 디바이스 변경 메시지 읽기
▶ 메시지에서 디바이스 이름 얻기
▶ 디바이스 알림 정지
▶
▶ 11장 휴먼 인터페이스 장치: 제어와 인터럽트 전송
▶ HID란?
▶ 하드웨어 요구 사항
▶ 펌웨어 요구 사항
▶ 디스크립터
▶ HID 인터페이스
▶ HID 클래스 디스크립터
▶ 보고서 디스크립터
▶ HID 전용 요청
▶ Get Report
▶ Get Idle
▶ Get Protocol
▶ Set Report
▶ Set Idle
▶ Set Protocol
▶ 데이터 전송
▶ 펌웨어 작성
▶ 도구
▶
▶ 12장 휴먼 인터페이스 장치: 보고서
▶ 보고서 구조
▶ HID 디스크립터 툴
▶ 컨트롤 아이템과 데이터 아이템 값
▶ 아이템 형식
▶ 메인 아이템 형식
▶ 입력, 출력, 특성 아이템
▶ 컬렉션
▶ 전역 아이템 형식
▶ 보고서 식별
▶ 데이터 사용에 관한 설명
▶ 단위 변경
▶ 원본 데이터 변환
▶ 데이터 크기와 포맷 설명
▶ 전역 아이템 저장과 가져오기
▶ 로컬 아이템 형식
▶ 물리적 디스크립터
▶ 패딩
▶
▶ 13장 휴먼 인터페이스 장치: 호스트 애플리케이션
▶ HID API 함수
▶ HID 정보 요청
▶ 보고서 송수신
▶ 보고서 데이터 제공과 사용
▶ HID 통신 관리
▶ 디바이스 식별
▶ Vendor ID와 Product ID 읽기
▶ 디바이스 기능 포인터 얻기
▶ 디바이스 기능 얻기
▶ 버튼, 값의 기능 얻기
▶ 보고서 전송과 수신
▶ 디바이스에 출력 보고서 전송
▶ 디바이스에서 입력 보고서 읽기
▶ 장치로 특성 보고서 전송
▶ 장치로부터 특성 보고서 읽기
▶ 통신 종료
▶
▶ 14장 WinUSB
▶ 기능과 제약 사항
▶ 디바이스 요구 사항
▶ 호스트 요구 사항
▶ 디바이스 펌웨어
▶ WinUSB 드라이버 할당
▶ 디바이스 접근
▶ WinUSB 핸들 얻기
▶ 인터페이스 디스크립터 요청
▶ 엔드포인트 식별
▶ 파이프 규칙 설정
▶ 벌크, 인터럽트 전송으로 데이터 쓰기
▶ 벌크, 인터럽트 전송으로 데이터 읽기
▶ 제조사 정의 제어 전송 사용
▶ 통신 종료
▶
▶ 15장 허브의 모든 것
▶ USB 2.0
▶ 허브 중계기
▶ 트랜잭션 변환기
▶ 허브 컨트롤러
▶ 속도
▶ 활성 링크 유지
▶ USB 3.0
▶ 버스 속도
▶ 구성 요소
▶ 관리 트래픽
▶ 허브 클래스
▶ 허브 디스크립터
▶ 허브 클래스 요청
▶ 포트 표시기
▶
▶ 16장 전원 관리
▶ 전원 옵션
▶ 전압
▶ 버스 전원 사용
▶ 필요 전원
▶ 호스트로 알림
▶ 배터리 충전
▶ 허브 전원
▶ 전원 소스
▶ 과전류 보호
▶ 전원 스위칭
▶ 전원 절약
▶ USB 2.0 연결 전원 관리
▶ 서스펜드 상태
▶ 슬립 상태
▶ 슈퍼스피드 전원 관리
▶ 윈도우에서의 전원 관리
▶
▶ 17장 테스트와 디버깅
▶ 툴
▶ 하드웨어 프로토콜 분석기
▶ 소프트웨어 프로토콜 분석기
▶ 트래픽 발생기
▶ 테스팅
▶ 적합성 테스트
▶ 윈도우 로고
▶
▶ 18장 버스상의 패킷
▶ USB 2.0
▶ 로우스피드, 풀스피드 버스 상태
▶ 하이스피드 버스 상태
▶ 데이터 인코딩
▶ 동기 유지
▶ 타이밍 정확도
▶ 패킷 형식
▶ 패킷 간 지연
▶ 테스트 모드
▶ 슈퍼스피드
▶ 데이터 스크램블
▶ 인코딩
▶ 링크 계층
▶ 리셋
▶
▶ 19장 전기적/물리적 인터페이스
▶ USB 2.0 송수신기
▶ 케이블 세그먼트
▶ 로우/풀스피드 송수신기
▶ 하이스피드 송수신기
▶ 신호 전압
▶ USB 2.0 케이블
▶ 접점
▶ 커넥터
▶ 분리 가능 케이블과 일체형 케이블
▶ 케이블 길이
▶ 버스 길이
▶ 회로에 의한 USB 직접 연결
▶ USB 3.0
▶ 송신기와 수신기
▶ 케이블
▶ 신호 품질 보장
▶ 노이즈 소스
▶ 평형 선로
▶ 꼬임선
▶ 차폐
▶ 에지 레이트
▶ 분리된 인터페이스
▶ 무선화
▶ 무선 USB 인증
▶ 사이프레스 WirelessUSB
▶ 기타 옵션
▶
▶ 20장 임베디드 시스템용 호스트
▶ USB OTG
▶ 기능과 제한 사항
▶ OTG 커넥터
▶ A 디바이스와 B 디바이스
▶ OTG 디바이스의 요구 사항
▶ OTG 디스크립터
▶ HNP 특성 코드
▶ 기타 호스트 옵션
▶ 요구 사항
▶ 디바이스 포트
▶ 컨트롤러 칩
▶ 마이크로 컨트롤러
▶ 인터페이스 칩