USB (Universal Serial Bus) 범용 직렬 버스
USB는 범용 직렬 버스(Universal Serial Bus)의 약자이고, 입출력단자중의 하나이다.
대표적인 버전으로는 USB 1.0, 1.1, 2.0 등이 있다.
USB[유에스비]는 윈도우98의 출시와 더불어 관심을 끌게된 직렬 포트의 일종으로서, 오디오플레이어,
조이스틱, 키보드, 전화, 스캐너 및 프린터 등과 같은 주변장치와 컴퓨터 간의 플러그 앤 플레이 인터페이스이다.
윈도우95 OSR2부터 지원하고 대부분의 펜티엄 II 메인보드에서 제공되었던 규격이지만, 윈도우98이
출시됨으로 안정성이 높아지고 관련 제품이 폭발적으로 출시되었다. 최근에는 iMac에도 채택되어
더욱 관심이 고조되고 있다.
USB의 원리는 직렬 포트와 동일하지만 직렬 포트보다 더 빠르고, 연결하기 편리하다.
USB는 12 Mbps의 데이터 전송속도를 지원하므로 웬만한 주변기기를 연결해도 속도가 충분하고,
최대 127개까지 장치들을 사슬처럼 연결할 수 있다.
또한 PC를 사용하는 도중에 연결해도 인식이 되며, 별도의 주변장치용 전원이 필요 없다.
일반적으로 PC에는 2개의 USB 포트가 있지만 USB 허브가 있어서 하나의 포트를 다수의 포트로
나누어주기 때문에 다양한 주변장치를 연결할 수 있다.
USB 주변장치 버스 표준은 인텔, 컴팩, IBM, DEC, 마이크로소프트, NEC, 노던텔레콤 등 7개 기업에
의해 개발되었으며, 이 기술은 별도의 비용 부담없이 컴퓨터나 주변기기 개발자들이 사용할 수 있다.
1996년 2월에 USB 1.0규격이 발표되었고 몇 달 후에 인텔에서 USB를 지원하는 칩셋인 430HX를
발표하면서 컴퓨터에 장착되기 시작했습니다. 운영체제의 지원은 그보다 시간이 조금 더 지난 '96년
말경에 윈도우 95 OSR2 버전에서부터 지원되기 시작하였습니다.
바꾸어 말하면 96년 이전에 나온 컴퓨터를 가지신 분은 USB 포트가 컴퓨터에 장착되어 있지 않고
윈도우 95 OSR2 이하의 운영체제를 사용하시는 분이라면 USB 포트가 있어도 사용이 불가능하다는 말입니다.
이제 USB의 장점들을 살펴보도록 하겠습니다. USB의 장점 중
첫 번째는 포트 하나에 최대 128개의 주변장치를 연결할 수 있다는 것입니다.
연결에 사용하는 방식은 스카시의 연결방식인 데이지 체인 방식을 고려했으나 실제로는 허브를 이용한
트리 구조의 연결방식을 사용하는 것이 보통입니다.
두 번째의 장점은 바로 핫 플러깅이 가능하다는 것입니다.
USB 자체가 휴대용 기기에서 사용하기 위해서 개발된 것이니 만큼 당연한 것으로 생각할 수도 있겠군요.
사용자가 원할 때 장치를 연결하면 자동으로 인식됩니다.
세 번째의 장점은 USB로 연결된 주변기기들은 IRQ를 점유하지 않는다는 것입니다.
노트북에서는 그다지 큰 메리트가 없는 일이지만 PCI슬롯을 이용하여 다양한 주변기기를 사용하고
계신 분들은 IRQ 충돌의 걱정이 해결된 것만으로도 USB를 선호하시더군요.
네 번째의 장점은 전원을 케이블에서 자체적으로 공급한다는 것입니다.
USB케이블을 구성하는 4핀의 케이블에서 두 가닥은 전원을 공급하는 케이블입니다.
5v, 500mA의 전원을 공급해 줍니다.
작은 주변기기는 알아서 사용이 가능하지요. 하지만 이 이상의 전원을 사용하는 장비라면 별도의 전원을
사용해야 합니다. 포트를 확장하기 위해 허브를 사용한다면 전원이 모자라서 오동작을 일으킬 수 있으니
허브에 별도의 전원을 공급해 주는 것이 좋습니다.
다섯 번째의 장점은 바로 전송 모드가 두 가지로 나누어진다는 것입니다.
키보드와 마우스등 입력 디바이스는 굳이 고속의 전송이 필요 없는데 저속모드의 장치들은 낮은 가격의 컨트롤러
칩과 케이블을 사용할 수 있어 단가를 낮출 수 있습니다.
USB는 고속의 IEEE1394와 함께 컴퓨터 케이블을 간소화시킬 주목받는 새로운 인터페이스입니다.
IBM의 PS/2 기종 이후로 오랫동안 계속되어 왔던 PS/2 포트의 시대는 USB의 등장으로 막을 내리게
될 것으로 예상됩니다
USB 규격과 기본 설계
PC와 주변기기간의 새로운 인터페이스
■ USB의 시스템 구성과 규격 해설
USB의 탄생과 개요, USB의 특징, 금후의 USB 보급 전망, USB의 학습 키트(USB 컨트롤러를 내장한
마이컴 보드의 입수, USB 컨트롤의 지식) USB 시스템의 구성과 물리적 사양: USB의 구성과 뮤니케이션의 흐름,
USB의 접속 토폴러지, USB 커뮤니케이션 흐름, end-point, 파이프 USB 케이블과 커넥터의 구조와 사양: USB의
전기적 특성(USB의 DC 전기특성, USB의 데이터 전송속도와 AC 전기특성, 전송속도의 검출)
USB의 데이터 전송과 프로토콜: 데이터 전송의 개요, 파이프와 엔드포인트, USB에 있어서 데이터 처리의 흐름,
USB의 전송 모드(isochronous 전송, 벌크 전송, 인터럽트 전송, 컨트롤 전송), full speed와 low speed,
USB의 데이터 전송 프로토콜 데이터의 전송 포맷 해설(frame, transaction, packet): 패킷(packet):
SOF(Start Of Frame) packet, token packet, data packet, handshake packet transaction:
bulk/interrupt transaction, isochronous transaction, control transaction 전원제어와 USB 시스템의 구성
사례: 전원의 공급, USB 디바이스의 전원 제어, USB 시스템의 구성 사례(PC측의 구성 사례, 주변기기측의
구성 사례) USB의 디바이스 드라이버와 개발 툴 및 기타: 디바이스 클래스, 개발 tool, USB hub SB2.0의
개요: USB2.0의 허브, 데이터 전송, AWG(American Wire Guage)와 Twist Pair
■ USB 전용 마이크로컨트롤러의 활용
USB용 원칩 마이크로컴퓨터의 구조와 응용: CY7C63000 패밀리의 개요와 특징, 메모리 구성과 설정,
I/O 공간의 설정, CY7C63000의 reset mode, counter, 범용 I/O 포트, Serial Interface Engine(SIE), 인터럽트,
suspend와 resume CY7C63000의 명령 세트, CY7C63000 패밀리용의 개발 키트 CY36502.
멀티채널 녹음/재생용 USB 오디오 컨트롤러: TUSB3200의 개요, MCU와 DMA의 동작, CODEC port interface
TUSB3200의 응용회로 USB 타겟 컨트롤러 USBN 9602의 특징과 구성, CPU와의 인터페이스
(non-multiplex parallel interface, multiplex parallel interface, Microwire interface)
DMA 전송, 컨트롤러의 동작 상태, end point, 저소비전력 모드, 레지스터, USBN 9603에 대하여,
USB 인터페이스 대응 스테레오 오디오용 D-A 컨버터 PCM2702의 특징, 블록다이어그램과 각 부분의
동작(OSC부 및 USB 클록 제너레이터부, SPACT부, 오디오 클록 제너레이터부, D-A 컨버터부,
PCM2702의 스펙, USB 오디오 기능 평가 보드 DEM-PCM2702의 기능과 특성 평가와 실측 결과
USB 전용 컨트롤러에 의한 HID 설계 사례
■ USB 키보드와 마우스의 설계 기법
USB 마우스의 설계: 마우스의 구조, USB 마우스의 하드웨어(클록회로, USB 인터페이스,
포토트랜지스터/LED와의 인터페이스, 마우스 버튼의 입력회로, Cext 입력, VPP)
USB용 조이스틱과 키보드의 설계 사례: 조이스틱에 응용한 사례, USB 키보드의 설계 사례
USB의 디바이스 및 인터페이스 프로그램 사례: USB 디바이스용 프로그램, 각종 범용 I/O 포트의 사용 예,
스위치 입력을 판독하기 위한 프로그램의 예, 스위치 매트릭스의 스캔, LED의 휘도조절, 포토트랜지스터의
감도조정 프로그램의 예, 퍼텐쇼미터의 저항값 판독 프로그램의 예
USB와의 인터페이스 프로그램: device plug-in, bus reset, enumeration
Cypress사 kit로 오리지널 USB 디바이스의 제작
■ USB Starter kit의 사용법과 체험
USB starter kit CY3640의 개요와 내용: CD-ROM, USB Thermometer 평가용 기판, PROM 라이터
애플리케이션의
인스톨과 기능 설명: 인스톨 순서, 애플리케이션의 기능, 샘플 프로그램의 통신 방법, starter kit의 tool류
오리지널 USB 디바이스의 제작, 키트에 부속된 샘플 프로그램의 소스, trip counter 회로의 동작, pulse counter,
시간 경과 데이터, speed pulse의 검출 루틴 윈도우 애플리케이션, starter kit 사용시에 발생한 현상
USB 인터페이스 장치의 응용설계
device request, de-scriptor의 이해
■ USB 게임 컨트롤러 어댑터의 설계
USB의 디바이스 인식에 대한 기초지식: device request와 de-scriptor의 이해
(컨트롤 전송, device request, de-scriptor), Human Interface Device (HID)
PS용 아날로그 컨트롤러: PS용 아날로그 컨트롤러의 내부 및 결선, 프로토콜에 대하여
인터페이스의 구성과 하드웨어 및 개발환경: PIC-USB 컨트롤러간의 인터페이스
(동기 시리얼 인터페이스, Microwire 인터페이스)
마이크로컴퓨터 보드의 주변 하드웨어, PS용 컨트롤러와의 인터페이스, 프로그램의 개발 환경과 순서,
데이터 전송의 동작 프로그램의 구성과 리스트 해설: 메인루틴 프로그램(PIC16F877의 초기화,
USBN9602의 초기화), 인터럽트(INT 외부 인터럽트, 타이머 인터럽트, 시리얼 인터럽트)
디스크립터: device de-scriptor, configuration de-scriptor, interface de-scriptor, HID de-scriptor,
end point de-scriptor, 파이프와 엔드포인트, report de-scriptor plug & play 동작: 컨트롤러의 설정,
de-scriptor의 문의, PIC의 de-scriptor 처리 PS용 컨트롤러의 사용법과 디바이스 기능 변경: 디바이스의 인식,
동작 체크, PS용 에뮬레이션 소프트웨어의 실행, 마우스 기능의 실현
8비트 마이크로컨트롤러와 USBN9602에 의한
■ USB용 A-D 컨버터의 설계
설계 제작한 A-D 컨버터의 하드웨어 구성: USB 내장 마이컴 보드 UB-H8-256의 회로, UB-H8-256의 외부 접속,
Bus power 사양으로 변경 소프트웨어 해설과 동작 실험: 전체 프로그램의 흐름, H8/3048F 측의 프로그램 해설
(메인 루틴, 파이프 1에 의한 호스트로부터 명령 데이터 전송, 커맨드의 해석, 파이프 2에 의한 호스트의 데이터 수신,
A-D 변환, DMA 전송, 버스 파워, 디스크립터, configuration de-scriptor, end point 호스트 측의 프로그램
(form load, timer interrupt routine), 디바이스 드라이버, 소프트웨어의 개발, 프로그램의 실행, 동작 실험,
전송속도, 저소비전력 모드
PIC 마이컴과 USBN9602에 의한
■ USB용 패럴렐 I/O 어댑터의 설계
인텔리전트 I/O 어댑터의 개요와 하드웨어 해설: I/O 단자, 어댑터 회로, 버스 파워 사양에 대한 변경점,
PC와 I/O 어댑터의 입출력 관계, 데이터 입출력의 순서 프로그램 해설과 디스크립터: PIC16F877의
프로그램(메인 루틴, 파이프 1에 의한 호스트로부터 명령 데이터 전송, 파이프 2에 의한 호스트의 데이터 수신,
파이프 3에 의한 호스트로부터의 데이터 전송) 디스크립터: device de-scriptor, configuration de-scriptor,
interface de-scriptor, end point 호스트 측의 프로그래밍, device driver의 내장, VB 애플리케이션의 실행,
USB 케이블을 접속한 그대로 개발
USB 내장 8비트 RISC 마이컴을 사용한
■ USB-패럴렐 I/O 보드의 설계
USB-패럴렐 I/O 보드의 개요와 개발 환경: 본 장치의 용도, USB의 vendor ID와 product ID USB
starter kit에 의한 개발 환경: Cypress사 USB starter kit의 입수, Windows용 DDK(Driver Development Kit)의 입수,
C 컴파일러의 개발 환경 I/O 보드의 하드웨어 설계: I/O 보드를 제작하기까지의 순서(HEX 파일의 써넣기,
CY7C63001의 plug-in 테스트, 부품의 실장) I/O에 대한 액세스 방법(Win32API 커맨드를 이용하여 액세스,
디바이스 드라이버의 액세스 배리에이션), 동작을 체크하기 위한 시험회로(LED의 점등 상태로 I/O 출력을 체크,
각 비트에 대응한 스위치를 조작하여 I/O 입력을 체크) CY7C63001의 펌웨어(펌웨어는 3개의 루틴으로 구성,
커스텀 리퀘스트와 펌웨어의 어레인지), 디바이스 드라이버(GUID(Globally Unique Identifier)
애플리케이션의 사례(Rwdcy63.c 테스트 프로그램, Sample.c 테스트 프로그램) Windows 애플리케이션에 대한 응용
동작 검사와 사용법: 제작과 동작 체크, 본 장치의 사용법(입력 버퍼에 데이터를 넣고 디바이스를 제어,
커스텀 리퀘스트의 이용, I/O 포트의 입력 비트를 인터럽트 라인으로 이용), 동일 VID와 PID의 디바이스 구별
SX 마이컴과 USS-820에 의한
■ USB-시리얼 통신 어댑터의 설계
USB 컨트롤러 USS-820(Lucent Technologies사)의 개요와 각 기능에 대한 설명(Serial Interface Engine(SIE),
Protocol Layer, FIFO 제어 FIFO 프로그램 기능, 송신 FIFO, 수신 FIFO, 레지스터 인터페이스, shared register bit
SX28AC의 해설과 하드웨어: 개발 환경, Virtual Peripheral, 메모리 관리, 하드웨어에 대하여
소프트웨어 구성과 프로그래밍 기법: SX28의 프로그래밍(메인루프 처리, 인터럽트 처리, 셋업 처리,
GET DEnullOR 처리, 엔드포인트 2 처리 호스트측의 프로그램 개발: 디바이스 드라이버 설계 도구의 사용,
소스의 실장과 드라이버의 생성, 실험용 윈도우 애플리케이션 사용법과 평가: EIA-574 호스트측의 준비,
USB 호스트측의 준비, 통신의 실행, 통신의 종료
SX 마이컴과 NET2890에 의한
■ USB-SCSI 어댑터의 설계
시스템 구성과 하드웨어 해설: 개발 동기와 시스템 구성, USB 컨트롤러 NET2890의 아키텍처, 원칩
마이컴 SX28의 개발 환경, SCSl 인터페이스에 대하여, USB-SCSI 어댑터의 하드웨어 펌웨어와 소프트웨어 해설:
어댑터의 펌웨어(데이터 형식, USB의 처리, SCSI의 처리), 호스트 컴퓨터측의 소프트웨어(USB 드라이버를
만드는 방법과 내장, USB 조작용 DLL을 만드는 방법) 사용법과 평가: 디벅의 준비, 드라이버의 인스톨,
SX28의 디벅, SCSI 테스트의 준비, VB로부터의 사용법
SX 마이컴과 NET2890에 의한
■ USB-GPIB 어댑터의 설계
GPIB의 기초지식과 하드웨어 해설: GPIB의 핸드세이크, GPIB의 커맨드 모드, GPIB의 관리 버스,
USB-GPIB 어댑터의 하드웨어 펌웨어와 소프트웨어 해설 및 사용법: 어댑터의 펌웨어, USB의 처리,
GPIB의 처리, 호스트 컴퓨터측의 소프트웨어(USB 드라이버를 만드는 방법과 내장, USB 조작용 DLL을
만드는 방법 사용법과 평가: GPIB 테스트의 준비, VB로부터의 사용법
첫댓글 좋은 게시물이네요. 스크랩 해갈게요~^^
잘 읽고 갑니다 ㄳ~~~
좋은 게시물이네요. 스크랩 해갈게요~^^
좋은 게시물이네요. 스크랩 해갈게요~^^
좋은 공부했읍니다.
좋은 게시물이네요. 스크랩 해갈게요~^^
십자가전도단-교정선교 카페(http://cafe.daum.net/cm9125)로 담아갑니다. 귀한 자료 나누어 주셔서 감사합니다. 샬롬~
좋은 공부 하고 갑니다 수고 많으시네요