USB드라이버
시작하기에 앞서.. 과정 개요를 보겠습니다.
|
|||
- USB물리계층의이해(USB호스트및USB디바이스) - USB논리계층의이해(USB드라이버스텍및디스크립터구성) - USB장치드라이버기초(리눅스/윈CEUSB드라이버) - USB장치드라이버작성실무(리눅스/윈CE) - USB장치드라이버활용(응용과의인터페이스) |
|||
기초, 실무, 활용 전체적인 교육목표가 되겠습니다. 이래는 교육목적 제가 쓴 것과 같은 말이죠? (글자가 틀리다고 다른말은 아닙니다.) |
|||
|
|||
- 산업용기기및임베디드시스템에서USB장치의활용 - 임베디드운영체제에서의USB드라이버개발및활용 |
|||
|
|||
|
|||
- C언어 또는 임베디드 관련 배경지식을 가진 개발자 - 정보통신기기 개발 업무 종사자 또는 예비 종사자 - USB 장치를 활용한 제품개발과 활용이 필요한 실무자 |
자 그럼 어떤 내용을 배우는지 검색을 통해서 알아봅시다.
USB란?
USB를 찾아보았습니다. - 이하 내용 출처 : http://ko.wikipedia.org/wiki/USB
USB(범용 직렬 버스, 汎用直列버스 , Universal Serial Bus, 문화어: 범용직렬모선, 汎用直列母線, 일반직렬모선, 一般直列母線)는 컴퓨터와 주변 기기를 연결하는 데 쓰이는 입출력 표준 가운데 하나이다. 대표적인 버전으로는 USB 1.0, 1.1, 2.0, 3.0, 3.1 등이 있다.
이놈의 정체는 '입출력(I/O) 표준'이다.
그럼 이 표준의 등장배경과 현재 어떻게 이용하고 있는지를 알아보자.
USB는 다양한 기존의 직렬, 병렬 방식의 연결을 대체하기 위하여 만들어졌다. 키보드, 마우스, 게임패드, 조이스틱, 스캐너, 디지털 카메라, 프린터, PDA, 저장장치 와 같은 다양한 기기를 연결하는 데 사용되고 있다. 이러한 기기 연결의 대부분은 표준 연결 방식을 이용하여 이루어지고 있다. USB는 PC를 위하여 개발되었지만 지금은 PDA나 게임콘솔 등에서도 채택되어 사용되고 있고, USB의 전원 공급 기능을 이용하여 충전 용도로도 많이 사용되고 있다. 2008년에는 전 세계적으로 약 20억 개의 USB 장치가 있다.
기존의 여러가지의 입출력기기들의 연결을 표준화하기 위해 만들어졌다. 입출력뿐만 아니라 전원 공급 기능을 이용하여 충전용도로도 많이 사용된다. 2008년에 약 20억개의 USB 장치가 있었다고하니... 지금은 더 어마어마하겠지??
USB는 USB표준을 결정하는 USB Implementers Forum에서 표준을 결정한다. 2010년 3월 현재 포럼 의장은 인텔사의 제프(Jeff Ravencraft)이다. 컴퓨터 메인보드 시장에서 인텔의 I/O칩 점유율이 압도적[1][2](메릴린치의 2004년 3사분기 보고서에 따르면 62.1%)이기 때문에 소비자 시장에서의 가장 큰 수요를 쥐고 포럼 내 영향력도 가장 큰 인텔사의 주도에 의해 만들어지고 있다.
경쟁 규격으로 언급되는 IEEE 1394가 주로 캠코더에 탑재되어 DV규격으로 주로 사용되는 반면 USB는 저가격의 다수의 기기에 채택되어 있다.
USB 표준은 'USB Implementers Forum'에서 결정한다. 포음의 의장은 인텔사의 제프란다. 인텔이 시장 점유율이 높기 때문에 인텔사의 주도로 만들어 지고 있다. 경쟁 규격인 IEEE 1394 는 주로 캠코더(이건 아마 소니가 아닐까?)에서 쓰이는 반면 USB는 저가의 다수 기기에 채택되어 있다. 컴퓨터 주변기기에서 USB를 안쓰는걸 찾는게 더 힘들겠다.
이정도가 USB의 정의로 쓰일만한 내용이다.
USB의 구성
USB의 가장 윗 부분에는 주 컨트롤러(host controller)가 있다. 주 컨트롤러는 루트 허브를 통해 두 개의 USB 단자를 제공한다. 보통 이 단자에 주변 기기를 연결해 사용하며, 포트가 부족하면 허브를 연결하여 더 많은 포트를 마련할 수 있다. 하나의 주 컨트롤러에는 나뭇가지 모양으로 주변 기기를 많으면 127개까지 연결할 수 있다. USB 방식으로 연결된 주변 기기는 대부분 핫 플러그(또는 핫 스왑: 사용 도중 아무 때나 주변 장치를 연결하거나 제거할 수 있는 기능)를 지원한다. USB 방식으로 연결된 주변 기기에는 약간의 전력이 함께 공급된다. 따라서 보통은 외부 전원을 이용하지 않고도 쉽게 주변 기기를 사용할 수 있다. USB 2.0의 정격 전류용량은 5V 500mA 이며, USB3.0의 정격 전류용량은 5V/12V 900mA이다..[3]
주 컨트롤러(host controller) : 루트 허브를 통해 두개의 USB 단자를 제공한다. 보통 이 단자에 주변 기기를 연결해 사용하며, 포트가 부족하면 허브를 연결하여 더 많은 포트(최대 127 나머지 1개는 컨트롤러 자신이 아닐까??)를 마련할 수 있다.
연결된 주변기기는 대부분 핫 플러그(핫 스왑, Plug and Play) 기능을 지원한다. 그리고 약간의 전력이 함께 공급되어 외부전원을 이용하지 않거나 주변기기 충전에도 이용된다.
USB 2.0의 정격 전류용량은 5V 500mA 이며, USB 3.0의 정격 전류용량은 5V/12V/900mA 이다.
USB의 속도
USB 표준의 이론상 최고 전송 속도는 다음과 같다.
- Low speed(초당 1.5 메가비트)
- Full speed(초당 12 메가비트)
- High-speed(초당 480 메가비트)
- SuperSpeed(초당 5 기가비트)
- SuperSpeedPlus(초당 10 기가비트)
USB 초기에 Low speed로 연결되는 키보드, 마우스 같은 제품들이 있었지만 이제는 거의 쓰이지 않는다.
Full
speed의 USB 1.0도 1.1 규격으로 업데이트된 다음 USB 2.0으로 전환되었다.
2010년 초 USB 3.0을 적용한 제품들이 나오기 전에는 대부분 USB 2.0을 사용했다. USB 2.0 제품의 이론상 최대 전송속도는 60MB/s(480Mb/s)이지만 실제 속도는 절반 정도인 30MB/s(240Mb/s)가 나온다.
USB 3.0 방식은 이론상으로는 초당 5000Mbps다. 최근 판매중인 USB 3.0 제품은 초당 읽기/쓰기 150MB/s를 초과하는 경우가 허다하다.
USB 3.1 방식은 현재 표준만 발표된 상태이다. (그렇군..HTML5 같은 자식!!)
그러나 USB의 속도에는 치명적인 제약이 있는데 주 컨트롤러(host controller)에 연결된 기기들 간에는 대역폭을 나누어 쓰게 되므로 장치가 늘어날수록 속도는 현저히 떨어진다. (많이 연결하면 병목현상 발생하는군..)
2014년에는 새로운 단자 형태인 C형이 등장한다. 이는 뒤집어 끼울 수도 있다. 맥북에서 처음 썼다고 하며 향우 젠더를 이용하여 하위 호환을 지원할 것으로 보인다.(자연스럽게 넘어 가겠군..)
C타입의 개발 완료예상 시기는 올해인 2015년 이라는데... 완료되면 문제출제 소지도 다분하다. (비교하시오.... 같은 문제)
USB 연결 단자 형태
USB 형태에 대한 도식도
마이크로USB 3.0 타입B에 대한 도식도
왼쪽부터
마이크로USB 타입B 수, 미니USB(8핀) 타입A 수, 미니USB(5핀) 타입B 수,
일반USB 타입A 암, 일반USB 타입A 수, 일반USB 타입B 수
왼쪽이 미니USB (5핀) 타입A, 오른쪽이 타입B
C 타입은 http://www.usb.org/developers/usbtypec/
Image Gallery
USB Type-C™ Cable and Connector Image 1
USB Type-C™ Cable and Connector Image 2을 참고하면 되겠다. (이미지 용량 너무 크다.. ㅠㅠ)
이상이 USB 에 대한 내용이다.
다음 포스팅은 USB 드라이버에 대해 알아보자.