『(개정 4판) USB 완전정복』
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 특성 코드
___기타 호스트 옵션
______요구 사항
______디바이스 포트
___컨트롤러 칩
______마이크로 컨트롤러
______인터페이스 칩
『USB 대용량 저장장치』
1장 대용량 저장장치 기초
___저장장치의 필요성
______장점
______그밖의 고려사항
___요구사항
___디바이스
______임베디드 호스트
___매체 선택
______구동부
______어드레싱 방법
______읽기 쓰기에 대한 고려사항
______제거 가능 매체와 디바이스
______하드웨어 인터페이스
___하드 드라이브
______기술
______인터페이스
___플래시 메모리
______기술
______플래시 메모리 선택사항
______멀티미디어카드
______SD 메모리 카드
______컴팩트플래시
2장 USB 지원
___인터페이스 개요
______호스트와 디바이스
______호스트의 역할
______디바이스의 역할
______버스 속도
______엔드포인트
______전송방식
______트랜잭션
______데이터 토글
______디스크립터
______대용량 저장 요구사항
___디바이스 컨트롤러 선택
______플래시 메모리를 지원하는 컨트롤러
______ATA/ATAPI를 지원하는 컨트롤러
______펌웨어 선택
___마이크로칩 PIC18F4550
______구조
______펌웨어 지원
______USB 컨트롤러
3장 USB 대용량 저장 클래스
___요구사항
______명세
______논리 블록 어드레싱
______대용량 저장 리퀘스트
___디스크립터
______디바이스 디스크립터
______컨피규레이션 디스크립터
______인터페이스 디스크립터
______엔드포인트 디스크립터
______문자열 디스크립터
___명령에 대한 응답
______명령 블록 래퍼
______명령 상태 래퍼
______벌크 엔드포인트 상의 통신 관리
______STALL 세부사항
______가지 경우
___PC 지원
______윈도우
______리눅스
4장 플래시 메모리 카드 접근
___인터페이스
______신호와 전원
______예제 회로
___호스트 프로그래밍
______설정
______하드웨어 포트
______펌웨어가 제어하는 포트
___데이터 전송
______디폴트 상태
______PIC18F4550상의 SPI
______포트 설정
______바이트 쓰기
______바이트 읽기
5장 멀티미디어카드 프로토콜
___명령과 응답 형식
______명령
______응답 타입
______토큰 형식
___명령
______클래스
______대용량 저장 장치가 사용하는 명령
______레지스터
___명령 전송
______타이밍 고려사항
______데이터 전송이 없는 명령
______저장매체로부터 데이터를 읽는 명령
______저장매체에 데이터를 기록하는 명령
___애플리케이션 예제
______카드 감지 및 선택
______명령 전송
______섹터 읽기
______섹터 쓰기
______통신 초기화
6장 SCSI 명령
___명령
______명세
______구현해야 할 명령
___센스데이터
______고정 형식 센스데이터
______기본값 설정
___주요 명령
______INQUIRY
______MODE SELECT
______MODE SENSE
______PREVENT ALLOW MEDIUM REMOVAL
______REPORT LUNS
______REQUEST SENSE
______SEND DIAGNOSTIC
______TEST UNIT READY
___블록 명령
______FORMAT UNIT
______READ
______READ CAPACITY
______START STOP UNIT
______SYNCHRONIZE CACHE
______VERIFY
______WRITE
___멀티미디어 명령
______READ FORMAT CAPACITIES
______READ TOC/PMA/ATIP
___명령과 이벤트 처리
______명령 해석
______UNIT ATTENTION 상태
______호스트에게 매체 변경 통지
______리셋 동작
7장 매체 구조
___내부 들여다보기
______포맷된 매체의 컴포넌트
______MBR 섹터가 없는 드라이브
______바이트 정렬
___마스터 부트 레코드 섹터
______실행가능 코드
______파티션 테이블
______확장 파티션
______부트 시그니처
8장 FAT 파일 시스템
___FAT16 볼륨 내부
______예약 영역
______파일 할당 테이블 영역
______루트 디렉토리 영역
______파일과 디렉토리 데이터 영역
___FAT32 볼륨 내부
______예약된 영역
______파일 할당 테이블 영역
______파일 및 디렉토리 데이터 영역
___파일 시스템 선택
______클러스터 크기
______하드웨어 해결책
___파일 할당 테이블
______첫 개의 엔트리
______데이터 클러스터
___FAT에 접근하기
______볼륨 정보
______파일 정보
______클러스터의 논리 블록 주소 얻어내기
______FAT로부터 읽어내기
______FAT에 쓰기
______파일의 다음 클러스터 찾기
______순차적 읽기 수행
______빈 클러스터 찾기
9장 디렉토리
___엔트리의 내용
______파일 엔트리
______디렉토리 엔트리
______볼륨 레이블 엔트리
______하위디렉토리 엔트리
___긴 파일명 다루기
______LFN 엔트리
______체크섬
______짧은 파일명 생성
___디렉토리 사용
______엔트리 저장
______엔트리 읽기
______주 엔트리 얻기
______엔트리 갱신
______시간과 날짜 갱신
10장 파일 오퍼레이션
___클러스터 오퍼레이션
______클러스터 삭제
______사용 가능한 클러스터 예약
______파일의 첫 클러스터 할당
______클러스터 추가 할당
___파일 관리
______파일 정보 얻기
______파일 찾기
______디렉토리 엔트리 생성
______사용 가능한 엔트리 찾기
______파일 생성
______파일 삭제
______파일 열기
___파일로부터 읽기
______작업
______읽기 오퍼레이션 수행
___파일에 쓰기
______작업
______쓰기 오퍼레이션 수행
______파일 닫기
11장 임베디드 호스트
___임베디드 호스트 내부
______OTG 디바이스와 전통적인 호스트
______일반적인 호스트 기능
______대용량 저장 기능
______USB 명세에 따르지 않는 디바이스
___호스트 옵션
______사이프레스 EZ-HOST
______호스트 소프트웨어
______대용량 저장 호스트 모듈
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 특성 코드
___기타 호스트 옵션
______요구 사항
______디바이스 포트
___컨트롤러 칩
______마이크로 컨트롤러
______인터페이스 칩
『USB 대용량 저장장치』
1장 대용량 저장장치 기초
___저장장치의 필요성
______장점
______그밖의 고려사항
___요구사항
___디바이스
______임베디드 호스트
___매체 선택
______구동부
______어드레싱 방법
______읽기 쓰기에 대한 고려사항
______제거 가능 매체와 디바이스
______하드웨어 인터페이스
___하드 드라이브
______기술
______인터페이스
___플래시 메모리
______기술
______플래시 메모리 선택사항
______멀티미디어카드
______SD 메모리 카드
______컴팩트플래시
2장 USB 지원
___인터페이스 개요
______호스트와 디바이스
______호스트의 역할
______디바이스의 역할
______버스 속도
______엔드포인트
______전송방식
______트랜잭션
______데이터 토글
______디스크립터
______대용량 저장 요구사항
___디바이스 컨트롤러 선택
______플래시 메모리를 지원하는 컨트롤러
______ATA/ATAPI를 지원하는 컨트롤러
______펌웨어 선택
___마이크로칩 PIC18F4550
______구조
______펌웨어 지원
______USB 컨트롤러
3장 USB 대용량 저장 클래스
___요구사항
______명세
______논리 블록 어드레싱
______대용량 저장 리퀘스트
___디스크립터
______디바이스 디스크립터
______컨피규레이션 디스크립터
______인터페이스 디스크립터
______엔드포인트 디스크립터
______문자열 디스크립터
___명령에 대한 응답
______명령 블록 래퍼
______명령 상태 래퍼
______벌크 엔드포인트 상의 통신 관리
______STALL 세부사항
______가지 경우
___PC 지원
______윈도우
______리눅스
4장 플래시 메모리 카드 접근
___인터페이스
______신호와 전원
______예제 회로
___호스트 프로그래밍
______설정
______하드웨어 포트
______펌웨어가 제어하는 포트
___데이터 전송
______디폴트 상태
______PIC18F4550상의 SPI
______포트 설정
______바이트 쓰기
______바이트 읽기
5장 멀티미디어카드 프로토콜
___명령과 응답 형식
______명령
______응답 타입
______토큰 형식
___명령
______클래스
______대용량 저장 장치가 사용하는 명령
______레지스터
___명령 전송
______타이밍 고려사항
______데이터 전송이 없는 명령
______저장매체로부터 데이터를 읽는 명령
______저장매체에 데이터를 기록하는 명령
___애플리케이션 예제
______카드 감지 및 선택
______명령 전송
______섹터 읽기
______섹터 쓰기
______통신 초기화
6장 SCSI 명령
___명령
______명세
______구현해야 할 명령
___센스데이터
______고정 형식 센스데이터
______기본값 설정
___주요 명령
______INQUIRY
______MODE SELECT
______MODE SENSE
______PREVENT ALLOW MEDIUM REMOVAL
______REPORT LUNS
______REQUEST SENSE
______SEND DIAGNOSTIC
______TEST UNIT READY
___블록 명령
______FORMAT UNIT
______READ
______READ CAPACITY
______START STOP UNIT
______SYNCHRONIZE CACHE
______VERIFY
______WRITE
___멀티미디어 명령
______READ FORMAT CAPACITIES
______READ TOC/PMA/ATIP
___명령과 이벤트 처리
______명령 해석
______UNIT ATTENTION 상태
______호스트에게 매체 변경 통지
______리셋 동작
7장 매체 구조
___내부 들여다보기
______포맷된 매체의 컴포넌트
______MBR 섹터가 없는 드라이브
______바이트 정렬
___마스터 부트 레코드 섹터
______실행가능 코드
______파티션 테이블
______확장 파티션
______부트 시그니처
8장 FAT 파일 시스템
___FAT16 볼륨 내부
______예약 영역
______파일 할당 테이블 영역
______루트 디렉토리 영역
______파일과 디렉토리 데이터 영역
___FAT32 볼륨 내부
______예약된 영역
______파일 할당 테이블 영역
______파일 및 디렉토리 데이터 영역
___파일 시스템 선택
______클러스터 크기
______하드웨어 해결책
___파일 할당 테이블
______첫 개의 엔트리
______데이터 클러스터
___FAT에 접근하기
______볼륨 정보
______파일 정보
______클러스터의 논리 블록 주소 얻어내기
______FAT로부터 읽어내기
______FAT에 쓰기
______파일의 다음 클러스터 찾기
______순차적 읽기 수행
______빈 클러스터 찾기
9장 디렉토리
___엔트리의 내용
______파일 엔트리
______디렉토리 엔트리
______볼륨 레이블 엔트리
______하위디렉토리 엔트리
___긴 파일명 다루기
______LFN 엔트리
______체크섬
______짧은 파일명 생성
___디렉토리 사용
______엔트리 저장
______엔트리 읽기
______주 엔트리 얻기
______엔트리 갱신
______시간과 날짜 갱신
10장 파일 오퍼레이션
___클러스터 오퍼레이션
______클러스터 삭제
______사용 가능한 클러스터 예약
______파일의 첫 클러스터 할당
______클러스터 추가 할당
___파일 관리
______파일 정보 얻기
______파일 찾기
______디렉토리 엔트리 생성
______사용 가능한 엔트리 찾기
______파일 생성
______파일 삭제
______파일 열기
___파일로부터 읽기
______작업
______읽기 오퍼레이션 수행
___파일에 쓰기
______작업
______쓰기 오퍼레이션 수행
______파일 닫기
11장 임베디드 호스트
___임베디드 호스트 내부
______OTG 디바이스와 전통적인 호스트
______일반적인 호스트 기능
______대용량 저장 기능
______USB 명세에 따르지 않는 디바이스
___호스트 옵션
______사이프레스 EZ-HOST
______호스트 소프트웨어
______대용량 저장 호스트 모듈