1 장 USB(Universal Serial Bus) 기본개요 이번장에서는앞으로책에서소개하는 USB 와관련된개념을가볍게살펴보는시간을가진다. 구체적인내용은이어지는뒷장에서자세하게다룰것이다. [ 글을읽기전에잠시확인하자!] 저자의한마디 * USB 2.0 USB 릴리즈버젼의종류

Size: px
Start display at page:

Download "1 장 USB(Universal Serial Bus) 기본개요 이번장에서는앞으로책에서소개하는 USB 와관련된개념을가볍게살펴보는시간을가진다. 구체적인내용은이어지는뒷장에서자세하게다룰것이다. [ 글을읽기전에잠시확인하자!] 저자의한마디 * USB 2.0 USB 릴리즈버젼의종류"

Transcription

1 1 부 USB 2(Low Speed, Full Speed, High Speed) 와 USB 3(Super Speed, Super Speed Plus) 를소개한다. 다양한 USB 트랜잭션을소개하고, USB 버스에서전원을효과적으로사용하는방법이어떻게소 개되어있는지를살펴본다.

2 1 장 USB(Universal Serial Bus) 기본개요 이번장에서는앞으로책에서소개하는 USB 와관련된개념을가볍게살펴보는시간을가진다. 구체적인내용은이어지는뒷장에서자세하게다룰것이다. [ 글을읽기전에잠시확인하자!] 저자의한마디 * USB 2.0 USB 릴리즈버젼의종류로서, Low Speed, Full Speed, High Speed 를정의하고있다. * USB 3.0 USB 릴리즈버젼의종류로서, 이전버전의통신속도와 Enhanced Super Speed 를정의 하고있다. * USB USB 릴리즈버젼의종류로서, 이전버전의통신속도와 Enhanced Super Speed Plus 를 정의하고있다. 글의내용중에서 USB 2.0 이라는표현이자주나온다. 이것은당연히 USB 3.0 을의미하지는않 지만, USB 3.0 내부에 USB 2.0 이포함되어있다는점에서의미파악을잘해야한다. 근래에사용되는 USB 디바이스장치는 Low Speed, High Speed 가여전히많다. 따라서, 이들의통신속도를고려하는것은당연하며, 이것을 USB 2.0 이라는범주의용어로대체사용하는것이므로혹시독자들중에서 USB 2.0을과거버전이라는선입견을가지고가볍게치부해버리는실수를저지르지말기를바란다.

3 1.1 USB 통신과트랜잭션 그림 1-1 USB 호스트컨트롤러 (Host Controller) 와디바이스 (Device) 들의연결 [ 그림 1-1] 에서보여주는용어들은익숙해져야하는용어들이다. Host Controller USB 통신의주체. 모든 USB 통신은 Host Controller 가통신의시작을요구한다. Root Hub Host Controller 와함께물리적으로연결되어있는허브장치. USB 장치들이 Host Controller 와통신을하기위해서는 Root Hub 를거쳐야한다. 허브는 USB 장치를검색하고, 전원을 공급하는역할을한다. Upstream Port/Downstream Port USB 통신은작은의미에서 Upstream Port와 Downstream Port 간의링크 ( 연결 ) 를그주축으로한다. 모든 USB 장치들은저마다하나의 Upstream Port를가지고있어서, 자신의상위계층의 USB 장치혹은호스트컨트롤러와통신을하는링크를형성한다. 허브와같은장치들은복수개의 Downstream Port를가지고있어서, 하위계층의 USB 장치와통신을하는링크를형성한다. External Hub 일종의 USB 장치중하나이다. 복수개의 USB 장치를호스트컨트롤러에연결하는 기능을제공한다. USB 에서는최대 5 개의외장허브를직렬로연결하는것이허용된다. Device USB 통신의대상. USB 통신은주체 (Host Controller) 와대상 (Device) 간의통신을목적으로 한다. 여기에해당하는실예는, USB 마우스장치, USB 이동식디스크장치, USB 카메라장치등이될

4 수있다. USB(USB버스 ) 는호스트 ( 호스트컨트롤러 ) 와디바이스간의통신방법을사용한다. 여기서통신이란데이터송수신을의미한다. USB통신의한쪽대상은호스트가되고다른대상은디바이스가된다. 호스트에서디바이스로데이터를보내는것을송신 (Tx), 디바이스에서호스트로데이터를보내는것을수신 (Rx) 이라고부른다. 모든통신의시작은호스트가지시한다. 이것을다른식으로설명하자면, 송신 ( 데이터를보내라!) 과수신 ( 데이터를달라!) 의요청의시작을모두호스트가지시한다는뜻이다. USB 디바이스들간에는직접적인데이터송, 수신이불가능하다. 반드시 USB 디바이스는호스트와 데이터통신만가능하기때문에, 특정 USB 디바이스 A 와또다른 USB 디바이스 B 가데이터통신을 하기위해서는하나의호스트가그중재역할을수행해야한다. 또한, 하나의호스트가복수개의디바이스와동시에 USB 통신을하려면 USB 대역폭을나누어사용 할수밖에없다. 어떻게나눌것인가는아주중요한문제이다. 예를들어 USB마우스와 USB디스크를동시에사용하는상황에서, 사용자가 USB디스크에파일을복사하고있는과정중에 USB마우스를움직였다고가정해보자. 파일을복사하고있는상황이라고하더라도마우스커서가화면에서움직이는것이자주끊어지는느낌을준다면사용자는어떤느낌을가지게될까? 이번에는 USB 마우스를움직이고있는상황에서 USB 디스크를컴퓨터에연결하는상황을가정해 보자. 마우스를움직이고있는상황에서 USB 디스크를컴퓨터에연결할때잠시동안화면에마우 스커서의움직임이멈추는상황이벌어진다면사용자는어떤느낌을받을까? 이런모든상황은하나의호스트가복수개의 USB디바이스와통신하는데있어서 USB대역폭을재대로관리하지못한결과로나타나는현상이다. 호스트가디바이스가주고받아야하는큰양의데이터는보다작은크기의패킷 (Packet) 으로쪼개져서사용된다. 큰양의데이터가쪼개져서패킷형태로나누어져야, 호스트는현재연결되어있는디바이스간의형평성있는 USB대역폭관리알고리즘을사용할수있다. 이것을정리해서예로들어설명하면, 하나의호스트가 3 개의 USB 디바이스 (A, B, C) 와연결되어 있다면, 호스트가사용할수있는전체 USB 대역폭은 1/3 씩나누어서각각의 USB 디바이스와통 신하는목적으로사용되어진다는뜻이다.

5 그림 1-2 마우스, 디스크를동시에사용하는상황에서대역폭을쓰는모습 호스트는패킷형태로나누어진데이터를대역폭에사용하는데있어서트랜잭션 (Transaction) 이라는프로토콜을사용한다. 트랜잭션은호스트와디바이스 ( 정확하게말하자면, 엔드포인트 ) 간의주고받는프로토콜이다. 엔드포인트는디바이스내에존재하는구성요소이며, 패킷을생성하거나소비하는역할을수행한다. 트랜잭션은몇개의패킷 ( 데이터패킷, 토큰패킷, 상태패킷 ) 을사용해서호스트와디바이스사이에 데이터패킷을전송하는프로토콜을구성한다. 데이터패킷의종류와엔드포인트 (Endpoint) 에따라 서조금씩다른프로토콜을사용한다. 꼭기억해야하는것은, 각각의트랜잭션이서로겹치지않는다는점이다. 물론, 이들디바이스가 하나의동일한호스트와통신하는경우에한한다.

6 그림 1-3 다양한종류의데이터를전송하려는트랜잭션들 (USB 2.0) [ 그림 1-3] 을보면, 대표적인 5 가지트랜잭션을소개하고있다. 이들의목적을정확하게알고있어 야한다. SETUP 트랜잭션 SETUP Data(8 바이트 ) 패킷을호스트에서디바이스로전달하는것이목적이다. OUT 트랜잭션 Data ( 내용은중요하지않다 ) 패킷을호스트에서디바이스로전달하는것이목적 이다. IN 트랜잭션 Data ( 내용은중요하지않다 ) 패킷을디바이스에서호스트로전달하는것이목적이 다. OUT 트랜잭션 ( 상태패킷을사용하지않음 ) Data ( 내용은중요하지않다 ) 패킷을호스트에서디바 이스로전달하는것이목적이다. 디바이스는 Data 패킷의정상수신을호스트로보고하지않는다. IN 트랜잭션 ( 상태패킷을사용하지않음 ) Data ( 내용은중요하지않다 ) 패킷을디바이스에서호스 트로전달하는것이목적이다. 호스트는 Data 패킷의정상수신을디바이스로보고하지않는다. [ 표 1-1] 을보면 USB 2.0(Low Speed, Full Speed, High Speed) 에서사용되는패킷의종류를알수

7 있다. 패킷의종류는패킷에포함된패킷 ID(PID) 에의해서결정된다. 패킷은크게토큰 (Token) 패킷, 데이터패킷, 핸드쉐이크 ( 상태 ) 패킷그리고특별한목적으로사용되 는패킷들이있다. USB 2.0 트랜잭션은항상토큰패킷을그시작으로한다. 표 1-1 패킷 ID(PID) 에따르는패킷의종류 (USB 2.0) 패킷ID 유형 패킷ID 이름 4비트값 (2진수) 토큰 (Token) OUT 0001 IN 1001 SOF 0101 SETUP 1101 데이터 (Data) DATA DATA DATA MDATA 1111 핸드쉐이크 (Handshake) ACK 0010 NAK 1010 STALL 1110 NYET 0110 특별한사용 PRE(Low Speed) 1100 ERR 1100 SPLIT 1000 PING 0100 LPM에서사용됨 0000 우리는이책을통해서 USB 2.0 과 USB 3.0 의추가된내용을배우려고한다. 따라서, 간단하게라도 USB 3.0 에서추가된 Enhanced Super Speed 통신에서사용되는패킷들도설명하도록하겠다. 표 1-2 패킷의종류 (USB 3.0) 패킷유형 Link Management 패킷유형 5비트값 (2진수) 패킷서브유형 패킷서브유형 4비트값 (2진수) Set Link 0001 U2 Inactivity Timeout 0010

8 Packet Vendor Device Test 0011 Port Capability 0100 Port Configuration 0101 Port Configuration Response 0110 Transaction ACK 0001 Packet NRDY 0010 ERDY 0011 STATUS 0100 STALL 0101 DEV_NOTIFICATION 0110 PING 0111 PING_RESPONSE 1000 Data Packet Header 정의안됨 Isochronous Timestamp Packet 정의안됨 [ 그림 1-3] 을보면알수있듯이모든트랜잭션은호스트에서그요청을시작한다.( 여기서는독자 들의이해를돕기위해서 USB 2.0 의경우를예를들어서설명하고있다 ). 결국호스트가 USB 대역폭을스케쥴링 ( 계획 ) 하는가장기본적인단위는데이터전송을위해서패킷 을실어보내는트랜잭션이라고보는편이옳다. 주변에서 USB를많이이해하고있는독자들을쉽게판별해보는척도로삼는다면, 필자는여러가지트랜잭션의모습이머리속에이미지 (Image) 로서쉽게그려지는정도를삼기도한다. 그만큼트랜잭션은 USB에서중요한요점중에하나이다.( 고등수학에서배우던삼각함수정도의난이도와중요성이라고할까?) 1.2 USB 릴리즈버전과통신속도

9 USB 3.0(USB 3.1) 은기존 USB 2.0 보다약 10 배정도더빠른속도를지원하고있다. USB 3.0(USB 3.1) 은속도향상을위해서 Burst 벌크통신기능을제공한다. USB 3.0(USB 3.1) 은기존 USB 2.0 에없었던링크프로토콜층이보강되었다. USB 3.0(USB 3.1) 은기존 USB 2.0 보다불필요한전력소비량을줄였다 많이오해하고있는부분중에하나가 USB 릴리즈버전을통신속도로규정하고있는잘못된이해가그것이다. ( 우리는주변에서 USB 3.0 은 USB 2.0 보다빠른거잖아! 라는말을자주듣는다. 잘못된이해이다 ) 물론 USB버전은계속증가해오고있지만, USB가추구하고있는아주중요한특징중하나는과거버전과의호환성이다. 간단하게예를들면, 마우스는통상가장느린장치중에하나로서 USB 1.0때부터사용되던 Low Speed 장치이다. 지금대부분의메인보드에서채택하고있는 USB버스는 USB 3.0 이다. 그렇다면, 이와같은환경에서마우스를사용할수없다는것을이해하기는어렵다. 이처럼 USB버스는최신버젼으로릴리즈되었지만, 하위버전에서사용되는통신속도를그대로지원하는것이우리가 USB를선호하는이유중에하나이다. 사람들은대개 USB 3.0 이라고하면, Enhanced Super Speed( 줄여서 Super Speed) 만이야기를한 다. 잘못된언급이라고본다. 하위버젼을모두담고이야기를해야하는것이다. USB 3.1 이가장최신버젼이다. USB 3.1 은이전버전 (USB 3.0) 과호환성을두고있다. USB 1.x 에서는 Low Speed(LS) 와 Full Speed(FS) 를지원했다. USB 2.x 에서는추가로 High Speed(HS) 가. 지원되었다. USB 3.0 에서는추가로 Enhanced Super Speed(SS) 가지원되었다. USB 3.1 에서는추가로 Enhanced Super Speed Plus(SS+) 가지원되었다. (USB 3.0 과 USB 2.0 은많은차이점을가지고있지만, 구체적인내용을뒤장에서배우도록한다 ) 하위호환성을그대로가지고있기때문에, 결과적으로 USB 3.1 은 LS, FS, HS, SS 그리고 SS+ 모두 를지원하고있다.(USB 3.1 에서는 SS 를 SS Gen1, SS+ 을 SS Gen2 로부른다 ) 다시한번강조하지만, 대부분의일반버스에서는속도가빨라지면그만큼이전의느린속도는 잊혀지지만, USB 를사용하는주변장치들은이전에느린속도에맞추어서제작된하드웨어를그대 로사용하고있는것이현실이다. 이점을꼭기억해야한다.

10 USB 키보드는 Low Speed를사용하는대표적인장치이다. 이장치를 USB 3.1환경에서사용한다고하더라도지원되는속도는여전히 Low Speed라는것이다. 키보드장치는속도가그이상빨라지지않도록설계되어있기때문이다. 사실키보드장치가생성해내는데이터는아주작은양의데이터이기때문에 Low Speed에서도충분한속도를사용할수있다. 반면복사가빠르면빠를수록유리한 USB 이동식디스크의경우, 예전에는흔하지않았던 Enhanced Super Speed.(Plus) 를지원하는보다빠른이동식디스크가시중에많이나와있는것이 사실이다. 표 1-3 USB 가지원하는통신속도 LS FS HS SS SS+ 최대전송속도 1.5 Mbps 12Mbps 480Mbps 5Gbps 10Gbps USB 통신속도가결정되는요인은호스트 ( 허브 ) 와디바이스가어떤속도를지원하는가에따라서 결정된다. 아무리디바이스가 Enhanced Super Speed 를사용하고싶다고하더라도호스트 ( 허브 ) 가 High Speed 까지만지원한다면둘간의통신은 High Speed 를넘지못한다. 그림 1-4 호스트 ( 허브 ), 디바이스가연결된모습 ( 서로다른속도를지원하는장치 )

11 디바이스가빠른속도를원한다고하더라도연결된허브가이것을지원할수없는경우도있으며, 허브는빠른속도를지원할수있지만연결된디바이스가느린경우도있다. 이처럼가장빠른속도를사용하기위해서는디바이스와허브양쪽이모두빠른속도를지원할수있어야한다. ( 참고로허브에디바이스가연결된다는뜻은허브가제공하는 Downstream Port 에디바이스가제공하는 Upstream Port가연결된다는뜻이다. 앞으로허브에디바이스가연결된다는언급이나오면오해하지않기를바란다 ) 1.3 파이프 (PIPE) 와엔드포인트 (ENDPOINT) 그림 1-5 파이프와엔드포인트의연결관계도식도

12 파이프 (Pipe) 는호스트에서준비된메모리가그실체이다. 엔드포인트 (Endpoint) 는디바이스에서데이터를만들어내거나 (Source), 소비 (Sink) 하는주체이다. 호스트에서동작하는소프트웨어 (USB를사용하려는응용프로그램 ) 는엔드포인트와직접통신하는개념보다는파이프를통해서통신하게된다. 엔드포인트는데이터를만들어내거나, 소비하는주체이기때문에엔드포인트와실제로통신을하기위해서는적절한트랜잭션을사용해야한다. 이와같은트랜잭션절차는호스트에서스케쥴링하는 USB대역폭과관련된내용을포함해야하는조금은복잡한알고리즘이사용되기때문에, 응용프로그램에서이런트랜잭션의구체적인내용을모르는상황에서추상적인파이프 (Pipe) 라는개념의메모리를통해서데이터를엔드포인트로부터가져오거나, 엔드포인트로보내게된다. 호스트가엔드포인트로전송하기위해서파이프에담는데이터는그크기가데이터패킷의크기를고려할필요가없다. 호스트는큰양의데이터를전송요청할수있으며, 데이터가작은크기의패킷으로나누어지는부분은트랜잭션을통해서일어나는부분이지응용프로그램이구태여알필요가없는부분이기때문이다. 또한당연히호스트가엔드포인트로부터데이터를읽어오기위해서사용하는파이프도마찬가지이다. 1.4 USB 전체개요

13 그림 1-6 전체그림 USB 를가장협의의개념으로본다면, USB 케이블 (Cable) 과그양쪽에물려있는컨트롤러 ( 호스트컨 트롤러, 디바이스컨트롤러 ) 라고볼수있다. ( 호스트컨트롤러에붙어있는루트허브 (Root Hub) 을사 용하는것을가정한다 ) 보다넓은개념으로본다면, [ 그림 1-6] 과같이확대된다. 소프트웨어를개발하는개발자의관점에서 USB 를살펴보면, 어떤부분이소프트웨어의개입이예 상되는부분인지를파악하는것이중요해보인다. 소프트웨어가동작하는상황이데이터전송속도에영향을미치지않아야하므로, 호스트컨트롤러, 디바이스컨트롤러와연결케이블은다분하게물리적인것으로간주해도무방하다.

14 소프트웨어가개입하는부분은, 호스트측면에서호스트컨트롤러를프로그래밍하는부분 ( 보통시스템소프트웨어라고부른다 ) 호스트측면에서클래스를지원하는디바이스드라이버와드라이버가제공하는서비스를사용하려 는응용프로그램부분 디바이스측면에서디바이스컨트롤러를프로그래밍하는부분 ( 컨트롤러디바이스드라이버라고부 른다 ) 디바이스측면에서서비스를제공하는프로토콜을구현하는펑션디바이스드라이버부분 이렇게 4 부분이라고볼수있다. 1.5 USB 트랜잭션의우선순위 USB대역폭은정해져있는크기 ( 시간 = 데이터전송용량 ) 로인해서버스에연결된모든장치들과관련된각각의트랜잭션을호스트가동시에진행하는것은불가능하다. 따라서, 호스트는이들을적당하게스케쥴링하게되는데, 이와같은트랜잭션중에서우선순위가높은것이먼저 USB대역폭을사용하는것옳다. USB 트랜잭션의우선순위는해당하는트랜잭션이대상으로삼고있는엔드포인트의종류에따라서결정된다. 서로다른종류의엔드포인트라하더라도트랜잭션형태는같은것을사용할수있다. 우선순위는 엔드포인트의종류에따라서결정되어진다. 엔드포인트의종류를구분하는것은용도에따라서쓰임새가서로다르기때문이다. 사용자는자신이개발하려는솔루션의특성을고민해보아서 USB 버스가제공하는어떤엔드포인 트와통신할것인가를결정해야한다. 또한, 통신할대상의엔드포인트를결정했다면, 해당하는엔드포인트가데이터패킷을보내기위해 서어떤트랜잭션을어떻게사용해야하는지를파악해야한다. 그림 1-7 엔드포인트의종류와트랜잭션

15 이를위해서잠시엔드포인트의종류를잠시살펴보자. * 컨트롤엔드포인트 통신속도 느리다 바람직한전송데이터크기작다 우선순위 ( 재시간전송 ) 높다 신뢰성 높다 용도 순수한데이터패킷외에명령패킷을추가로함께다룰수있다 * 벌크엔드포인트 통신속도빠르다바람직한전송데이터크기크다우선순위 ( 재시간전송 ) 낮다

16 신뢰성 용도 높다 많은양의데이터를신뢰성있게전송하는용도에적합하다 * 인터럽트엔드포인트 통신속도 빠르다 바람직한전송데이터크기작다 우선순위 ( 재시간전송 ) 높다 신뢰성 높다 용도 작은양의데이터를빠르고신뢰성있게전송하는용도에적합하다 * 등시성전송엔드포인트 통신속도 느리다 바람직한전송데이터크기크다 우선순위 ( 재시간전송 ) 높다 신뢰성 낮다 용도 많은양의데이터패킷을정확한시간에전송하는것을그목적으로 한다. 상황에따라서데이터패킷이손상되는것을감수한다 USB 에서는보다효과적인 USB 대역폭사용을위해서크게 4 가지종류의엔드포인트를정의하고 있다. USB 호스트와디바이스에서는이들각각의종류가가지게되는우선순위와특징을그대로 반영하도록설계된다. 응용프로그램은이들엔드포인트의종류를선정하고이들의특징을잘살펴서원하는서비스결과 를얻을수있도록고민해야한다. 예를들어보자. USB 디스크의경우, 파일을복사하는데있어복사시간이빠른것도중요하지만, 데이터가깨지는것은절대로안된다. 데이터가깨질상황이라면, 보다속도를늦춰서라도깨지지않는데이터를전전송하는것중요하기때문이다. 이런경우, USB 디스크가사용하는엔드포인트는벌크엔드포인트일것이다. 벌크엔드포인트는 USB대역폭이충분히비워있을때는데이터전송속도가빠르겠지만, 대역폭이부족할때는여유가있을때까지충분히전송을미루고대기할것이다.

17 USB 오디오 ( 재생기 ) 의경우, 재생할음원데이타를호스트에서 USB 오디오디바이스로전송하려는 경우에, 전송속도가빠른것보다는재때전송되어져야하는것이더중요하다. 물론, 데이터가깨 져도않되지만최악에는데이터가깨지는것도감수해야한다. 왜냐하면, 음원을듣는과정중에데이터가깨지지않도록신경써서전송하느랴고재때호스트가데이터를오디오장치로보내지않으면그시간에사용자는실시간음원을듣지못하는상황이발생한다. 어느정도버퍼링은있겠지만, 영화를볼때립싱크가맞지않는짜증나는상황을기대하는사용자는없을것이다. 데이터는조금깨져서소리가틀어질때도있겠지만립싱크는정확하게맞기를기대하는사용자로서는이런경우, 벌크엔드포인트를가진오디오보다는등시성전송엔드포인트혹은인터럽트엔드포인트를사용하고싶을것이다.( 사실등시성전송엔드포인트를더선호한다. 왜냐하면, 인터럽트엔드포인트를통해서전송되는데이터는늘신뢰성검사를하기때문에그만큼전송속도에있어서오버헤드를가지기때문이다 ) 1.6 USB 와전원관리 USB는허브를통해서디바이스측으로필요한전력을공급해주는것을원칙으로한다. 따라서, 별도의전원공급이없는디바이스라고하더라도 USB허브에연결하는행위를통해서전원공급을받아서동작을할수있다. 그러나, 디바이스에서는허브가제공하는전력에있어서몇가지특징을알고있어야한다. 허브자체도전력을소비하는장치이다. 따라서, 허브도전력이공급되어져야하는데, 배터리전력 이공급되는허브와 AC 전원이공급되는허브는각각자신에게연결된디바이스로공급할수있 는최대전력량이다르다. AC 전원이공급되는허브의경우, USB 2.0 은최대 5V 500mA, USB 3.0 은최대 5V/12V 900mA 의 전력을공급할수있다. 배터리전원이공급되는허브 ( 보통배터리로동작중인노트북에내장된루트허브 ) 의경우, USB 2.0 은최대 5V 100mA, USB 3.0 은최대 5V/12V 150mA 의전력을공급할수있다. 따라서이이상의전력을사용하려는디바이스의경우이거나, 배터리전원을사용하는허브가공 급할수없는수준의전력을요구하는디바이스는반드시자체전력을가지고 USB 디바이스를구 동해야한다. 이와같은특징으로인해서, 모든 USB 디바이스는허브에연결되면, USB 2.0 허브의경우 100mA, USB 3.0 허브의경우 150mA 의기본전력을공급해준다. 이후, 열거과정 (Enumeration) 을통해서호

18 스트는디바이스가얼마큼의전력을요구하는지를확인 (Configuration Descriptor) 하게되고, 요구하는전력을허브가공급할수없는경우로판단되면해당하는디바이스를현재허브에서는사용할수없도록한다. 사용할수있는디바이스로판단되면, 디바이스측으로그사용의허가여부를알려주게되므로 ( 셋엇 - Configuration), 허가여부가결정되기이전에, 디바이스는절대로전력소비를많이하지않도록기다려야한다. 1.7 USB 가제공하는대표적인서비스들 USB 는호스트가모든통신의시작을요청하기때문에통상서비스라는것을호스트관점에서설 설명하는것자연스럽다. USB 호스트에서응용프로그램과디바이스드라이버를구분하는것은모호하다. 어떤운영체제를 사용하는가에따라서어디까지가응용프로그램이고어디가디바이스드라이버인지를구분하기어 려운상황이있다. 따라서, 여기서는디바이스드라이버가서비스를요청하는주체로보자. 디바이스드라이버가호 스트컨트롤러에게서비스를요청하는것으로간주한다. 서비스란데이터를호스트에서디바이스로보내거나, 디바이스에서호스트로데이터를읽어오는 기본서비스를포함한다. 그외에다른부가적인서비스들이존재하게되는데, 이와같은서비스 들을호스트가사용자에게제공하기위해서는디바이스측에서호스트를도와주어야한다. 대표적인서비스를정리하면다음과같다. * Setup Transfer 서비스 (Enumeration, Configuration, Standard Setup Command, 3 rd Party Defined Command) Setup Transfer 서비스는디바이스의디폴트엔드포인트 ( 컨트롤엔드포인트 ) 가대응해주는서비스 이다. 이것은크게 Standard Setup Command 와 3 rd Party Defined Command 로나뉜다. 표 1-4 Standard Setup Command 의종류및간단한설명 명령어 설명 비고 CLEAR_FEATURE 디바이스가특정기능을해제한다 GET_CONFIGURATION 현재셋업된 Configuration 식별자를 얻는다

19 GET_DESCRIPTOR 디스크립터를읽는다 GET_INTERFACE 특정인터페이스내의선택된대체인 터페이스값을얻는다 GET_STATUS 디바이스가진특정기능을조회한다 USB 3.0 에서추가된명령 SET_ADDRESS 디바이스에게고유한주소값을할당한다 SET_CONFIGURATION 파라미터로제공하는 Configuration 식별자를사용해서셋업한다 SET_DESCRIPTOR 디스크립터의내용을변경한다 SET_FEATURE 디바이스가특정기능을활성화한다 SET_INTERFACE 특정인터페이스내의대체인터페이스중하나를결정한다 SET_ISOCH_DELAY OUT등시성전송에서호스트가내려보 USB 3.0 에서추가된명령 낸패킷을디바이스가받을때까지지연되는시간정보를기록한다 SET_SEL 호스트측에서예상되는 U1, U2 에서 USB 3.0 에서추가된명령 U0으로회복하는데걸리는예상시간정보를디바이스에게보낸다 SYNC_FRAME IN등시성전송에서디바이스가동기화정보를어떤프레임에담아서호스트로보낼것인지를알려준다 표에나타난명령어들은 USB 표준스팩에서정의되고있는 Standard Command 들이다. 이들은 각각의목적에맡는서비스를호스트에제공하도록정의되고있다. Setup Transfer 서비스는이명령어를 SETUP 트랜잭션에담아서호스트에서디바이스로전달하는서비스이다. 이중에서특히 SET_ADDRESS, SET_CONFIGURATION 명령어는 Setup Transfer 서비스혹은호스트컨트롤러가별도로제공하는특별한서비스를사용해서수행되기도한다. 물론, 어떤서비스를사용하던지상관없이결과적으로는 SETUP 트랜잭션에해당하는명령어가담겨진다. * Data Transfer/Receiver 서비스 (Bulk, Interrupt, Isochronous Data) USB 가제공하는가장기본적인서비스이다. USB 디바이스의각각의엔드포인트와데이터통신을 수행하는기본서비스이다.

20 * RESET 서비스 (Host Controller Reset, RootHub/External Hub Port Reset) 호스트컨트롤러의동작을리셋 (Reset) 시키는서비스외에허브 (RootHub 또는 External Hub) 가제공하는포트 (Downstream Port) 가연결된디바이스의포트 (Upstream Port) 측으로 RESET 시그널을전송하는서비스를제공한다. 후자의 RESET 시그널은 USB 디바이스를알려진상태로전환하도록요청하는역할을수행한다. 알려진상태로전환되어져야호스트는디바이스의상태를정확하게관리, 파악할수있다. * SUSPEND/RESUME 서비스 (RootHub/External Hub Port Suspend/Resume) 허브 (RootHub 또는 External Hub) 가제공하는포트 (Downstream Port) 가연결된디바이스의포트 (Upstream Port) 측으로전원을공급을낮추어서버스상태를 Suspend 상태로전환시키는서비스를 제공한다. * POWER ON/OFF 서비스 (Host Controller/RootHub Power On/Off, RootHub/External Hub Port Power On/Off) 호스트컨트롤러의전원을 On/Off 시키는서비스외에허브 (RootHub 또는 External Hub) 가제공하 는포트 (Downstream Port) 가연결된디바이스의포트 (Upstream Port) 측으로전원을공급하는서 비스를제공한다. 전원공급을받은디바이스는 POWERED 상태로결정된다. 1.8 USB 디바이스프레임워크소개 상태다이아그램과상태변화 USB 디바이스는호스트에연결되어사용되어지는전체과정을상태다이아그램과같이모니터링 하고있어야한다. [ 그림 1-8] 은 USB 디바이스입장에서특정사건이발생하면어떤상태가되어있 어야하는지를보여주고있다. 그림 1-8 USB 디바이스가유지하는상태다이아그램

21 * 디바이스가호스트에연결되거나제거되는상황 디바이스가호스트에연결되면, 허브에의해서디바이스측으로전원이공급된다. 이렇게전원이공급되면호스트는디바이스측의프레임워크상의상태다이아그램을정해진상태로만들기위해서리셋 (RESET) 과정을진행한다. 이렇게리셋된이후에디바이스는다음과같은상태 ( 디폴트상태 ) 로가정된다. - USB 디바이스는주소값을 0(Zero) 으로가진다. 이것은누가할당해주는값이아니라, 자체적으 로이런값이자신의주소로여겨진다는뜻이다. - 디바이스는아직셋업 (Configuration) 되지않았다. * 디바이스에특정주소 (Address) 가할당되는상황 호스트는 USB 디바이스가사용해야할적당한주소값을준비해서, 이값을디바이스측으로알려주는과정을거친다. 모든디바이스는허브에연결되는상황에서는주소값을 0(Zero) 으로가지고있는상황이기때문에반드시자신만의 USB 주소값을가져야한다. 그렇지않으면다른 USB 디바이스를허브에꼽을수가없다. 왜냐하면, 허브에연결되는모든디바이스는자신이주소값 0(Zero) 을사용해야한다고알고있기때문이고이런이유로인해호스트가특정디바이스와통신할방

22 법이없어진다. 호스트는 Setup Data 명령어 (SET_ADDRESS) 를사용해서주소를할당한다. - 디바이스는아직셋업 (Configuration) 되지않았다. * 디바이스가본격적인동작을할수있도록셋업 (Configuration) 되는상황 본격적으로호스트가디바이스본연의동작을수행시키는상황이다. 모든디바이스는셋업과정을 거쳐야만자신의엔드포인트를활성화할수있다. 이과정을거치지않은디바이스는자신이가 지고있는엔드포인트중에서 Control 엔드포인트만사용이가능할뿐나머지는사용할수없다. 또한셋업과정을거치지않은 USB 디바이스는허브로부터전력을끌어서사용할때, 제한된용량 만큼만사용해야한다. 호스트는디바이스가제공하는 USB Configuration Descriptor 를통해서, 디바이스가요구하는전력 사용량을확인한뒤, 허가하는의미로서셋업과정을진행한다. 호스트는 Setup Data 명령어 (SET_CONFIGURATION) 를사용해서셋업과정을진행한다. * USB 전원공급에따라서상태변화가되는상황 합리적인전원공급을위해서, 호스트가 USB 디바이스로공급하는전력량은변할수있다. 예를들어 USB 마우스를꼽아서사용하는사용자의경우, 오랜시간동안마우스를사용하지않는경우, 마우스에공급하고있는전력량은손해가된다. 특히, 배터리전원으로유지되고있는노트북을컴퓨터로사용하는경우에는더욱민감한문제가될수있다. 이처럼특정상황에서 USB 전원공급상태를최대한낮추는상황을버스가서스팬드 (SUSPEND) 되 었다라고부른다. 서스팬드를요청하는주체는호스트이다. 호스트는원하는상황에서버스에공급하는전력상태를서스팬드로바꾸기를요청한다. 반면에서스팬드되어있는버스상태를원래의상태로회복시키는과정을리쥼 (RESUME) 이라고부른다. 서스팬드와달리, 리쥼요청은호스트와디바이스양쪽이모두시작할수있다. 이중에서디바이스측에서리쥼요청을하는경우를특별히, 원격깨어나기기능 (Remote Wakeup Function) 이라고부른다. 마우스를예로들어보자!

23 호스트는오랜시간동안마우스로부터데이터가호스트로들어오지않는것을확인하면, 특정시간에버스상태를서스팬드상태로바꾼다. 이와같은서스팬드상태에서는더이상의미있는 USB 패킷을주고받을수가없다. 이때, 다시버스상태를원래상태로회복하려는리쥼요청을호스트가보내는상황만예상해야한다면, 호스트는언제리쥼요청을디바이스로보낼것인가? 정답은알기어렵다. 왜냐하면, 마우스로부터데이터를읽어와야하는시기는결국사용자가물리적으로마우스를움직이는행위를통해서만알수있기때문이지, 호스트가그시기를아는것이아니기때문이다. 이런경우, 마우스장치는사용자에의해서마우스가조금이라도움직여지는것이파악되면, 서스팬드된버스상태를회복하기위해서스스로리쥼요청을호스트로보낼것이다. 이와같은기능을원격깨어나기기능이라고부르는것이다. 원격깨어나기기능이필요하지않은다른예를들어보자! USB 디스크를사용하는경우를가정해보자. 오랜시간동안디스크를사용하지않으면호스트는역시버스상태를서스팬드상태로바꾼다. 이런경우, 호스트와디바이스중에서누가리쥼상태로돌아오는요청을시작할것인가? 정답은호스트이다. 디스크로부터어떤데이터를읽거나기록하는요청이사용자프로그램으로부터발생되기때문에, 버스상태를원래대로되돌리는시기는누구보다호스트가잘알기때문이다. 이런경우에는 USB 디스크는원격깨어나기기능을가질필요가없다.( 버스의전원공급상태는사실이보다더많은내용을설명해야한다. 자세한내용은뒤쪽에서더살펴보도록한다 ) USB Device 표준요청 (Request) USB Device 표준요청은 SETUP 트랜잭션을사용해서호스트와 Control 엔드포인트가주고받는 데사용된다. 호스트는표에서설명하고있는표준 Device 요청을디바이스로전송하기위해서 SETUP 트랜잭션을사용한다.( 표준요청에대한자세한설명은뒤쪽에서배우도록한다 ) 표 1-5 USB 표준 Device 요청값 요청 (brequest) 값 (Value), 10진수 GET_STATUS 0 CLEAR_FEATURE 1 예약 2 SET_FEATURE 3 예약 4 SET_ADDRESS 5 GET_DESCRIPTOR 6

24 SET_DESCRIPTOR 7 GET_CONFIGURATION 8 SET_CONFIGURATION 9 GET_INTERFACE 10 SET_INTERFACE 11 SYNCH_FRAME 12 SET_SEL 48 SET_ISOCH_DELAY 49 SETUP 트랜잭션에서사용되는 8 바이트 Setup 데이터패킷은 bmrequest, brequest, wvalue, windex 그리고 wlength 로구성되어있다. SETUP 트랜잭션은이렇게구성된 8 바이트 Setup 데이터패킷을호스트가디바이스에게전달하는 목적으로사용된다. 표 1-6 USB 표준 Device 요청에사용되는 Setup 데이터패킷구조 (8 바이트 ) 오프셋필드 크기 ( 바이트 ) 값 설명 0 bmrequest 1 비트맵 비트맵설명 D7 이어지는추가 Data의전송방향 0 = 호스트 -> 디바이스 1 = 디바이스 -> 호스트 D6 5 명령유형 0 = 표준 1 = 클래스 2 = 제조사정의 3 = 예약 D4 0 명령대상 0 = 디바이스 1 = 인터페이스 2 = 엔드포인트 3 = 그밖에나머지 = 예약 1 brequest 1 값 위의표참조 2 wvalue 2 값 아래표참조 4 windex 2 Index 또는오프셋 아래표참조 6 wlength 2 길이 이어지는추가 Data의바이트길이

25 표 1-7 USB 표준 Device 요청과구조체필드 (8 바이트 ) BmRequest (1Byte) brequest (1Byte) wvalue (2Byte) windex (2Byte) wlength (2Byte) Data(wLength 에따라가변 ) B CLEAR_FEATURE Feature Selector 0 0 사용안함 B B Interface Endpoint B GET_CONFIGURATION Configuration Value B GET_DESCRIPTOR Descriptor Type, 0 또는 Language ID Descriptor Descriptor Index 길이 B GET_INTERFACE 0 Interface 1 Alternate Interface B GET_STATUS Device, Interface B Interface 또는 Endpoint B Endpoint Status B SET_ADDRESS Device Address 0 0 사용안함 B SET_CONFIGURATION Configuration Value 0 0 사용안함 B SET_DESCRIPTOR Descriptor Type, 0 또는 Language ID Descriptor Descriptor Index 길이 B SET_FEATURE Feature Selector Suspend 0 0 사용안함 B B Options Interface Point B SET_INTERFACE Alternate Setting Interface 0 사용안함 B SET_ISOCH_DELAY Delay in ns 0 0 사용안함 B SET_SEL Exit Latency Values B SYNCH_FRAME 0 Endpoint 2 Frame Number 이번장에서는구체적인포멧설명은생략한다. 다만, 이와같은 8 바이트의구조체 (Setup Data) 와 별도의 Data 가어떻게사용되어지는지를간단하게그림을통해서살펴보려고한다. USB 표준 Device 요청은크게 3 가지형태로분류할수있다. * 추가데이터전송이없으며, 8 바이트 Setup Data 만사용된다. 호스트에서디바이스로 8바이트 Setup Data명령어만전송하는경우이다. 별도의데이터전송과정은필요없지만, Setup Data 자체가 8바이트이기때문에이곳에들어있는 wvalue(2바이트 ), windex(2바이트 ) 등과같은파라미터를사용하면 4바이트의 INPUT방향의파라미터로서사용될수있다. 물론, 4바이트이상의파라미터를호스트가디바이스로보내야한다면, 이런경우에는별도

26 의추가데이터전송이필요하다. 그림 1-9 Control 엔드포인트와호스트간의통신, 8 바이트 Setup Data 만사용하는경우 CLEAR_FEATURE, SET_ADDRESS, SET_CONFIGURATION, SET_FEATURE, SET_INTERFACE, SET_ISOCH_DELAY 명령이여기에해당한다. * 추가데이터전송이있으며, 추가데이터는호스트에서디바이스로전송된다. 그림 1-10 Control 엔드포인트와호스트간의통신, 추가데이터를호스트가디바이스로전송하는 경우

27 호스트가디바이스로 8바이트의 Setup Data외에별도의파라미터를더전송해야하는경우에사용되는방식이다. 이때, 별도의파라미터는 OUT트랜잭션절차를사용해서호스트에서디바이스로전송된다. 또한, 이와같이추가되어전송되어지는데이터바이트량은 8바이트의 Setup Data내부에 wlength 필드에기록되어져서호스트는디바이스에게전달해야한다. SET_DESCRIPTOR, SET_SEL 명령이여기에해당한다. * 추가데이터전송이있으며, 추가데이터는디바이스에서호스트로전송된다. 그림 1-11 Control 엔드포인트와호스트간의통신, 추가데이터를디바이스가호스트로전송하는 경우

28 호스트가디바이스로 8 바이트의 Setup Data 를전송한뒤에그결과로서일련의데이터를디바이스 로부터받아야하는경우에사용되는방식이다. GET_DESCRIPTOR, GET_INTERFACE, GET_STATUS, SYNCH_FRAME 명령이여기에해당한다 USB 표준디스크립터 (Descriptor) 디스크립터란호스트가디바이스의특성을알기위해서 Setup Data 명령어 (GET_DESCRIPTOR) 를 통해서얻어가는디바이스의상세정보를의미한다. 초기버젼때부터정의되던디스크립터외에 USB 릴리즈버젼에따라서추가로정의되는디스크립터들이존재한다. 표 1-8 USB 표준디스크립터 디스크립터디스크립터를포함하는집합개념개체비고 Device( 디바이스 ) BOS Binary Device Object Store 구성요소 USB 3.0 에서추가됨

29 Device Capability( USB 2.0 Extension Super Speed USB Device Capability Container ID) Configuration( 헤더 ) Interface Association Interface Endpoint Super Speed Endpoint Companion String Binary Device Object Store 구성요소 Configuration Descriptor구성요소 Configuration Descriptor 구성요소 Configuration Descriptor 구성요소 Configuration Descriptor 구성요소 Configuration Descriptor 구성요소 USB 3.0 에서추가됨 USB 3.0 에서추가됨 USB 디바이스가제공해야하는디스크립터의종류중에서가장중요한디스크립터는 Device 와 Configuration 이다. 이두가지만사용해도왠만한 USB 디바이스로서동작하는데는큰문제가없 다. Device 디스크립터는 USB 디바이스의가장큰그림에서바라보는설명을포함한다. 이곳에는 USB 제조사가 USB.ORG협회에서부여받은고유한제조사ID(Vendor ID) 와제조사가부여하는제품ID(Product ID) 가포함된다. 또한, 지원하는 USB 릴리즈버젼과 Control 엔드포인트가지원하는데이터패킷의최대바이트수가여기에포함된다. 표 1-9 Device 디스크립터의구성 오프셋 필드 크기바이트 값 설명 0 blength 1 숫자 디스크립터길이 1 bdescriptortype 1 상수 디스크립터유형 2 bcdusb 2 BCD USB버젼 4 bdeviceclass 1 클래스 (Class) 5 bdevicesubclass 1 서브클래스 (SubClass) 6 bdeviceprotocol 1 프로토콜 (Protocol) 7 bmaxpacketsize0 1 숫자 디폴트엔드포인트 최대 데이타패킷크기 8 idvendor 2 ID 제조사ID 10 idproduct 2 ID 제품ID 12 bcddevice 2 BCD 제품릴리즈버젼

30 14 imanufacturer 1 인덱스 (Index) 스트링인덱스 15 iproduct 1 인덱스 (Index) 스트링인덱스 16 iserialnumber 1 인덱스 (Index) 스트링인덱스 17 bnumconfigurations 1 숫자 준비된 Configuration 개수 Configuration 디스크립터는디바이스가포함하는대부분의구체적인디스크립터를모두포함한 다. 인터페이스 (Interface), 엔드포인트 (Endpoint) 등과같은정보들이이곳에포함된다. 따라서, 호스트는 Setup Data(GET_DESCRIPTOR) 명령어를사용해서 Configuration 디스크립터를넉 넉하게읽어서이곳에포함된모든부분집합디스크립터들을확인하게된다. 아래는이중에서중요한 Configuration 디스크립터 ( 헤더 ) 와 Interface, Endpoint 디스크립터의구 조체형태를보여주고있다. 표 1-10 Configuration 디스크립터 ( 헤더 ) 의구성 오프셋 필드 크기바이트 값 설명 0 blength 1 숫자 디스크립터헤더길이 1 bdescriptortype 1 상수 디스크립터유형 2 wtotallength 2 숫자 Configuration 디스크립터의전체길이 4 bnuminterfaces 1 숫자 준비된 Interface개수 5 bconfigurationvalue 1 숫자 현재 Configuration 식별자 ID 6 iconfiguration 1 인덱스 (Index) 스트링인덱스 7 bmattributes 1 비트맵 속성 8 bmaxpower 1 ma 요구전력정보 표 1-11 Interface 디스크립터의구성 오프셋 필드 크기바이트 값 설명 0 blength 1 숫자 디스크립터길이 1 bdescriptortype 1 상수 디스크립터유형 2 binterfacenumber 1 숫자 Interface 수 3 balternatesetting 1 숫자 대체할 Interface 수

31 4 bnumendpoints 1 숫자 현재 Interface가포함하는엔드포인트수 ( 디폴트는제외 ) 5 binterfaceclass 1 클래스 (Class) 6 binterfacesubclass 1 서브클래스 (SubClass) 7 binterfaceprotocol 1 프로토콜 (Protocol) 8 iinterface 1 인덱스 (Index) 스트링인덱스 표 1-12 Endpoint 디스크립터의구성 오프셋 필드 크기바이트 값 설명 0 blength 1 숫자 디스크립터길이 1 bdescriptortype 1 상수 디스크립터유형 2 bendpointaddress 1 엔드포인트 엔드포인트주소 ( 방향 + 엔드포인트식별자 ) 3 bmattributes 1 비트맵 속성 4 wmaxpacketsize 2 숫자 엔드포인트가다룰수 있는 최대데이타패킷크 기 6 binterval 1 숫자 주기적인 엔드포인트의 경우주기시간을지정 Configuration 디스크립터전체크기를알기위해서, 호스트는 Configuration 디스크립터 ( 헤더 ) 를먼저디바이스로부터읽는다. 이크기는 9바이트로고정이다. 이렇게읽은디스크립터내의 wtotallength 필드의값은전체 Configuration 디스크립터크기를나타낸다. 호스트는이값을사용해서다시전체 Configuration 디스크립터를디바이스로부터읽는다. 호스트는 Configuration 디스크립터전체를읽어서디바이스의특성을확인한뒤, 해당하는디바이 스의동작을허용하고싶다면, Setup Data(SET_CONFIGURATION) 명령어를사용해서디바이스를셋 업 (Configuration) 시키게된다. 1.9 USB 허브 허브와포트 허브는루트허브를제외하고최대 5 개의허브를직렬로연결할수있다.

32 USB 3.0 을지원하는허브는 USB 2.0 까지사용하던허브와 USB 3.0 에서추가된 Super Speed Hub 가물리적으로함께포함되어있다. 외관에서볼때는하나의허브로보이지만, 내부에서는이와 같이별도의허브가따로따로존재하는셈이다. 허브는두가지종류의서로다른성격을가진포트 (Port) 를가진대표적인디바이스이다. 하나는 Upstream Port 로서, 위쪽방향의디바이스 ( 통상적으로루트허브 ) 와통신하는것이그목적이다. 다른하나는 Downstream Port 로서아래쪽방향의디바이스와통신하는것이그목적이다. 허브의위쪽방향이란결국호스트컨트롤러를향해서진행하는방향이된다. 위쪽방향으로전달되는모든데이터패킷은특별히대상을지정하는주소값이사용되지않는다. 이말은데이터패킷자체가전달되어져야하는대상은호스트이기때문에별도의주소가필요하지 않다는뜻이다. 반면아래쪽방향으로전달되는모든데이터패킷은디바이스를지정하는주소값이사용된다.( 링크 를관리하는목적에서사용되는특수한패킷은주소값이없다 ) 허브는하나의 Upstream Port 와복수개의 Downstream Port 를가진대표적인 USB 디바이스이다. 루트허브 (RootHub) 도허브의일종이기는하지만, 특별히호스트컨트롤러에내장된허브를의미하 고모든 USB 디바이스의 Upstream Port 는결국루트허브를가리키게된다 루팅 (Routing) USB 2.0 에서의루팅 USB 2.0 에서는루틴이라고부를만한부분이없다.

33 그림 1-12 호스트가디바이스로찾아가는모습 (USB 2.0) [ 그림 1-12] 를보면, USB 2.0에서호스트가특정디바이스에게토큰패킷을전달하면서트랜잭션을시작하는것을알수있다. 모든토큰패킷은특정디바이스를지칭하는주소값 ( 여기서는주소값 4) 을포함하고있다. 데이터패킷에는주소값이포함되어있지않다. 트랜잭션은항상토큰패킷으로시작하고, 동일한호스트를대상으로복수개의트랜잭션은서로중첩발생하지않기때문에, 주소값은토큰에만포함되어있어도무방하다. 참고로 SOF(Start Of Frame) 토큰패킷안에는주소값이포함되어있지않다. 호스트에서디바이스로전달되는패킷은브로드캐스트방식으로전달되고, 디바이스에서호스트로 올라오는패킷은유니캐스트방식으로전달되고있다. 이그림에서알아야하는중요한포인트는, 주소값 4 에해당하지않은모든 USB 디바이스들로 Token, Data 패킷을수신한다는점이다. 단지, 주소값 4 에해당하는디바이스만 Ack 패킷을응답 하고있다는점이다.

34 그림 1-13 패킷의구조 (USB 2.0) 그림처럼토큰패킷이포함하는 Address(USB 디바이스주소 ) 와 Endpoint Address( 통신대상엔드포인트주소 ) 는호스트에연결된모든 USB 디바이스에게전달된다. 이것은마치이더넷 (Ethernet) 통신과같은원리처럼보인다. 모든 USB 디바이스는자신에게전달된토큰패킷의 Address와 Endpoint Address를자신의것과비교해서자신의것이아닌경우, 아무런반응도보이지않는다. 이런경우다음토큰패킷을받을때까지아무런작업을하지않는다. 토큰패킷이포함하고있는 Address 와 Endpoint Address 가자신의것으로확인된 USB 디바이스 는해당하는토큰패킷을수용하고트랜잭션을시작한다. 이와같은성질때문에호스트컨트롤러 ( 루트허브 ) 로부터 USB 디바이스까지복수개의외장허브가 연결되어있다면, 이들외장허브는그어떤 Routing( 주소를통한패킷의방향결정 ) 작업을하지않 는다. 어떻게보면, 낭비적인특징이라고할수있다. 정리하면다음과같다. 호스트에서디바이스로전달되는모든패킷은브로드캐스트 (Broadcast) 형태로전달된다. 디바이스에서호스트로전달되는모든패킷은유니캐스트 (Unicast) 형태로전달된다. 모든트랜잭션의시작시사용되는토큰패킷에는 USB 디바이스를지칭하는주소값 ( 디바이스주

35 소와엔드포인트주소 ) 이포함되어있다 USB 3.0 에서의루팅 USB 3.0 에서허브는이전버젼의 USB 에서는보지못했던루팅 (Routing) 작업을돕는다. 호스트에서디바이스로전달되는패킷은 USB 2.0 에서사용되던디바이스주소 (Address) 와엔드포 인트주소 (Endpoint Address) 가그대로사용된다. 추가로루팅을돕기위해서 20 비트의루트문자 열 (Route String) 정보가존재한다.( 링크를관리하는특별한패킷들은이런정보가사용되지않는다 ) 허브는루트허브를제외하고직렬로 5 개까지외장허브를연결할수있다. 그림 1-14 루트스트링 (0x00421) 을사용하는예시 [ 그림 1-14] 을보면, 20 비트의루트스트링은 4 비트 (Nibble) 씩총 5 개의묶음으로나뉠수있다.

36 LSB 에서시작해서 0-3 비트는첫번째외장허브, 4 비트 -7 비트는두번째외장허브, 8 비트 -11 비트는 세번째외장허브, 12 비트 -15 비트는네번째외장허브, 16 비트 -19 비트는다섯번째외장허브가사용 하는정보이다. 이들정보 (4 비트 ) 가가질수있는값은 2 진수 0000 부터 1111(10 진수 15) 까지총 16 가지의경우의 수를가진다. 이중에서 0000 값은외장허브자체를나타내는정보로사용된다. 나머지숫자는외 장허브가가지고있는 Downstream Port 의일련번호 (1 번째부터 15 번째까지 ) 를나타낸다. 예를들어, 2 진수 0011(10 진수 3) 값은특정외장허브가관리하는 3 번째 Downstream Port 를의미 한다. 예를들어, 20 비트의루트스트링값이 0x00421 값을나타내는경우를루팅해보자. LSB 를기준으로 4 비트값 0 이처음나오는곳이전까지만해석을해야한다. 0x00421 값은 0x421 로해석해야한다. 이대로라면, 루트허브로부터시작해서, 첫번째외장허브의 1 번포트에연결된두번째외장허브의 2 번포트에연결된세번째외장허브의 4 번째포트가된다. USB 패킷을호스트에서디바이스로전송하는경우, 0x00421 루트스트링값이포함된 USB 패킷은 첫번째외장버브의 1 번포트로전달되고, 이패킷은다시두번째외장허브의 2 번포트로전달되 고, 또다시이패킷은세번째외장허브의 4 번포트 (Downstream Port) 로전달된다. 이와같은루팅방식은과거 USB 2.0 에서브로드캐스트방식으로토큰패킷을전송하던방식에비 하면확실하게버스를효과적으로사용하게해준다. 정확하게호스트에서허브에연결된디바이 스에게만 USB 패킷을전송할수있게된것이다. 디바이스에서호스트로올라가는 USB 패킷에대해서는 USB 2.0 에서와마찬가지로특별히주소값 을사용하지않는유니케스트 (Unicast) 형태의전송방법을사용한다 허브와 USB 링크 USB 2.0 와 USB 링크 허브는연결된디바이스에게전원을공급하거나서스팬드시킨다. 또한, 연결된디바이스를검색하고연결이해제되는디바이스또한검출한다. 이와같은작업은허브가가지고있는 Downstream Port와디바이스가가지고있는 Upstream Port간의연결 ( 링크 ) 상태를관리하는보다세련된관리방식을필요로한다.

37 USB 2.0 에서는별도의 USB 링크를관리하는준비작업이거의전무한상황이었으며, 이때문에 링크상에나타나는대부분의변화는허브가아닌호스트가주도하는작업이되어야만했다. 예를들어, 버스상태를서스팬드상태로전환하는작업은호스트가주도하는작업이지, 허브가주 도하는작업이아니다. 호스트는허브에게허브디바이스가이해할수있는전용명령어 (Setup Data) 를전송하여허브에연결된디바이스와의링크상태를변경하게된다. 그림 1-15 LPM 상태변화다이아그램 USB 2.0 에서는 LPM(Link Power Management) 프로토콜을소개하고있다. 이프로토콜은 USB 링크 의상태를 L0, L1, L2, L3 상태로규정한다. L0 는전력공급이충분한상태를말한다. L1 는 L0 보다부족한전력공급을사용하는상태를말한다.

38 L2 는서브팬드된버스상태를말한다. L3 는물리적으로끊어진버스상태를말한다. L0 상태에서 L1 상태, L2 상태, L3 상태로들어가는작업은전원공급이절전되는상황이다. L1, L2, L3 상태에서깨어나는것은 L0 상태로되돌아가는것을말한다. L1 상태에서 L0 상태로돌아가는시간은 L2 상태에서 L0 상태로돌아가는시간보다빨라야한다. L0 상태에서 L1 상태로들어가는방법은기존에사용되던토큰패킷중에서특별한 PID 를예약값 을사용하여추가정의한 LPM 토큰패킷 (PID 값이 0 인패킷 ) 을사용해서수행된다. LPM 토큰패킷을받은디바이스는 ACK 응답패킷을사용해서응답을하는행위로인해서 L0 상 태에서 L1 상태로들어가는것을허락하는의미를호스트에게알린다. L0 상태에서 L2 상태로들어가는방법은호스트에의해서버스상태를서스팬드하는상황이다. 이 런상황은호스트에서 3ms 이상동안버스를유휴상태 (IDLE) 로유지하면, 자연스럽게진입된다. L3 상태는 USB 디바이스를제거하는행위를통해서진입되므로구태여설명할필요가없다. L1, L2, L3 상태에서는 L0 상태로들어가는방법이소개된다. L1 상태, L2 상태에서 L0 상태로들어가는방법은동일하다. 버스상태를리쥼 (RESUME) 요청하는 작업을통해서진입된다. 물론리쥼요청은호스트와디바이스양쪽어느누구든지요청할수있 다.( 디바이스가요청하려면반드시원격깨우기기능이활성화되어있어야한다 )

39 그림 1-16 확장된 LPM 토큰패킷을사용하는 LPM 트랜잭션 표 1-13 LPM 토큰패킷의 bmattributes 필드해석 비트 필드 설명 사용안함 8 bremotewake 디바이스가 L1상태에서원격깨어나기기능을활성화시켜놓는다 7..4 HIRD Host Initiated Resume Duration. 호스트가리쥼신호를유지하는시간 3..0 blinkstate 이진수 0001 (Sleep), 나머지값사용안함 [ 표 1-13] 에서처럼 blinkstate 필드의값을 2 진수 0001(L1 Sleep) 값을사용해서호스트가디바이 스에게 LPM 트랜잭션을시작하면, 디바이스는이요청을수용하는경우에만 ACK 응답패킷으로응 답해야한다 USB 3.0 와 USB 링크 USB 3.0 에서, Enhanced Super Speed 통신에서사용되는허브의 Downstream Port 와디바이스의

40 Upstream Port 는새로운개념의 USB 링크 (Link) 계층을두고관리하는관리방법을사용하고있다. 기존에호스트가주도하던 USB링크의전원공급상태변화요청을어느정도허브와디바이스에게자율권을주게되었다. 이제, 허브와디바이스는호스트의개입없이도필요에따라서자연스럽게링크의전원공급상태를변경요청할수있게되었다. 또한, USB링크상태를보다세부적인연결상태다이아그램으로확장함으로써, 바야흐로프로토콜계층과어느정도독립성을유지하는링크계층이탄생하였다. USB 3.0 이사용하는 USB 링크의속성은고속시리얼통신을사용하는 PCI Express 에서도비슷한 모습의링크를구성할수있도록함으로써확장가능한링크가되었다. 그림 1-17 USB 3.0 LTSSM (Link Training and Status State Diagram)

41 USB 링크는허브의 Downstream Port 와디바이스의 Upstream Port 간에형성된다. 이들의연결상 태는 [ 그림 1-17] 에서보여주는여러가지상태로존재할수있다. USB 3.0 에서소개되는 LTSSM 에서는 12 개의상태 (State) 와각각의상태로들어오거나빠져나가는 사건을정의하고있다. 각각의상태를간단하게정리하면다음과같다. * ess.disabled USB 3.0 링크를사용할수없는상황을말한다 * ess.inactive USB 3.0 링크를처음생성할때상황을말한다. 보통 USB 장치를호스트허브에연결한상황이다. * Rx.Detect USB 3.0 링크는 Upstream Port 와 Downstream Port 각각을위한 Receiver 회로를검색한다. * Polling USB 3.0 링크가정상적으로사용되어질수있도록준비작업을수행한다. * U0 USB 3.0 링크가정상적으로프로토콜패킷을송수신할수있는상태를의미한다. * U1 USB 3.0 링크가 Sleep 상태로전환되었을상황을의미한다.

42 * U2 USB 3.0 링크가 Sleep 상태 (U1 보다더낮은전력만사용하는상태 ) 로전환되었을상황을의미한다. * U3 USB 3.0 링크가 Suspend 상태로전환되었을상황을의미한다. * Hot Reset USB 3.0 링크의 Downstream Port 가리셋명령어를전송하는상황을의미한다. U3, U2, U1, U0 상태의 USB 3.0 링크가 U0 상태로돌아오기위해서, 잠시거치는상황을의미한다. 이상태에서는 Polling 상태와유사한준비작업을거쳐서정상적으로 U0 상태를가질수있도록 한다 (Retraining) * Compliance Mode USB 3.0 링크를구성하는양쪽포트의 Transceiver 의동작을검증하는상태이다. 테스트목적으로 진입되어사용된다. * Loopback USB 3.0 링크를구성하는양쪽포트의 Receiver 의동작을검증하는상태이다. 테스트목적으로진 입되어사용된다. USB 2.0 에서 LPM(Link Power Management) 표준이정의한 L0, L1, L2, L3 상태는 USB 3.0 LTSSM 에서 U0, U1, U2, U3 상태로바뀌었다. 각각의전원공급상태로의전환과정에맞는조건이존재한다. 모든링크는 U0 상태를제외한나머지상태에서는정상적인 USB패킷을송, 수신할수없기때문에이와같은 U1, U2, U3상태에서는특별한하드웨어시그널 ( 예, LFPS) 을사용해서통신을수

43 행한다. LFPS(Low Frequency Polling Signal) 을사용해서 U1, U2, U3 상태는 U0 상태로돌아온다. LFPS 는 Super Speed(5GHz), Super Speed Plus(10GHz) 의주파수대를사용하지않고, 낮은주파수 대의신호를주기적으로발생시켜서원하는의미전달을하는방법이다. 현재 USB 3.0 에서는다음과같은 LFPS 신호가정의되어사용된다. * Polling.LFPS 링크의양쪽포트가 LTSSM 의 Polling 단계로진입하기위해서사용하는시그널 * Warm Reset 링크의 Downstream Port 에의해서발생되는리셋시그널으로서, 현재링크상태가어떤전원공급상 태 (U1, U2, U3) 에있다고하더라도 LTSSM 의 RxDetect 상태로진입시켜서다시 Polling 단계를거 쳐 U0 상태로진입하게한다. * U1, U2 Exit 링크의양쪽포트에서발생될수있는시그널로서, 현재전력공급이약한링크상태 (U1, U2) 를빠 져나가도록요청하는시그널 * U3 Exit(Wakeup) 링크의양쪽포트에서발생될수있는시그널로서, Suspend 상태의링크상태 (U3) 를빠져나가도록 요청하는시그널 LFPS 시그널은, U0 상태가아닌링크의상태에서는정상적인프로토콜패킷을송, 수신하지못하 는상황이기때문에이와같은시그널을사용해서링크의양쪽포트는서로의미를전달한다.

44 L0 상태에있는링크는자신의상태를 U1, U2, U3 상태로전환하기위해서 USB 2.0 에는없었던 새로운방식의링크전용명령어 (Link Command) 를정의해서사용한다. U0 상태에서는 LFPS 를사용하지않고링크단에서사용하는명령을직접사용할수있다. 여기에사용되는명령어는 LGO_U1, LGO_U2, LGO_U3 이있다. 표 1-14 링크전용명령어종류 링크명령어 LGOOD_0 LGOOD_1 LGOOD_2 LGOOD_3 LGOOD_4 LGOOD_5 LGOOD_6 LGOOD_7 LCRD_A LCRD_B LCRD_C LCRD_D LRTY LBAD LGO_U1 LGO_U2 LGO_U3 LAU LXU LPMA LUP LDN 설명포트에서포트로순서번호 0 패킷이잘전달되었다는뜻포트에서포트로순서번호 1 패킷이잘전달되었다는뜻포트에서포트로순서번호 2 패킷이잘전달되었다는뜻포트에서포트로순서번호 3 패킷이잘전달되었다는뜻포트에서포트로순서번호 4 패킷이잘전달되었다는뜻포트에서포트로순서번호 5 패킷이잘전달되었다는뜻포트에서포트로순서번호 6 패킷이잘전달되었다는뜻포트에서포트로순서번호 7 패킷이잘전달되었다는뜻포트내부에버퍼 A가비워졌다는뜻포트내부에버퍼 B가비워졌다는뜻포트내부에버퍼 C가비워졌다는뜻포트내부에버퍼 D가비워졌다는뜻최근전송했던데이터패킷을다시보내라는뜻최근수신했던데이터패킷이잘못되었다는뜻 U1 링크상태로전환하라는요청 U2 링크상태로전환하라는요청 U3 링크상태로전환하라는요청 LGO_Ux 요청명령어를수락한다는뜻 LGO_Ux 요청명령어를거절한다는뜻 LAU 명령어을받은포트가그응답으로회신하는응답 Upstream 포트가특별히전송할데이터가없다는뜻. 쉬고있다는의미 Downstream 포트가특별히전송할데이터가없다는뜻. 쉬고있다는의미 USB 디바이스로서의외장허브 USB 외장허브도 USB 디바이스이다. 따라서, USB 디바이스가처리하는트랜잭션을그대로사용해 서호스트와외장허브가 USB 패킷을송, 수신하게된다.

45 외장허브도자신의디스크립터 (Descriptor) 를가지게되며, 호스트는 Setup Data(GET_DESCRIPTOR) 명령어를통해서외장허브의디스크립터를가져와서, 셋업 (CONFIGURATION) 과정을통해외장허 브가동작을할수있도록한다. 표 1-15 외장허브가들어내는디스크립터내용 ( 인터페이스디스크립터 ) 필드 값 blength 9 bdescriptortype 4 binterfacenumber 0 balternatesetting 0 bnumendpoints 1 binterfaceclass HUB_CLASSCODE(9) binterfacesubclass 0 binterfaceprotocol 0 iinterface 1 외장허브도 USB 디바이스이기때문에 Setup Data 명령어를사용하는 SETUP 트랜잭션에반응을 보인다. USB 표준에서는외장허브가반응해야하는허브전용 Setup Data 명령어를정의하고있다. 표 1-16 외장허브가지원해야하는허브전용명령어 요청 bmrequesttype brequest wvalue windex wlength Data ClearHubFeature B CLEAR_FEATURE Feature 0 0 사용안함 Selector ClearPortFeature B CLEAR_FEATURE Feature Port 0 사용안함 Selector GetHubDescriptor B GET_DSCRIPTOR Descriptor 0 또는 Descriptor Descriptor 와인덱스 Language ID 길이 GetHubStatus B GET_STATUS 허브상태, 변화상태 GetPortStatus B GET_STATUS 0 Port 4 허브상태, 변화상태 GetPortErrorCount B GET_PORT_ERR_COUNT 0 Port 2 포트링크에러회수 SetHubDescriptor B SET_DESCRIPTOR Descriptor 0 또는 Descriptor Descriptor 와인덱스 Language 길이

46 ID SetHubFeature B SET_FEATURE Feature 0 0 사용안함 Selector SetHubDepth B SET_HUB_DEPTH Hub Depth 0 0 사용안함 SetPortFeature B SET_FEATURE Feature Selector Selector, Timeout Port 0 사용안함 호스트는외장허브전용명령어를사용해서허브 Downstream Port에연결된 USB장치의연결상태 를확인할수있으며, 특정 Dowstream Port로하여금링크상태를바꾸도록요청할수도있다 TT(Transaction Translator) 그림 1-18 USB 3.0 허브그림 ( 내부에 USB 2.0 허브가존재 ) USB 3.0 허브는내부에 USB 2.0 허브와 Enhanced Super Speed 전용허브를포함하고있다. 따라서, 이들은서로물리적으로분리되어있어서각자독립적으로서로에게영향을미치지않고동작한다. USB 2.0허브는같은물리적인회선을사용해서 Low Speed, Full Speed 그리고 High Speed 모두를지원해야한다. 호스트가트랜잭션을사용해서디바이스와통신을하는데있어서, USB 2.0 에서는브로드캐스트방

47 식의토큰패킷을사용하기때문에, 호스트에서연결된물리적인회선전체 ( 하나의링크가아니라 ) 가토큰패킷을기다려야한다. 자신에게전달되는토큰패킷을확인하기위해서디바이스는토큰패킷에포함된주소정보 (Device Address, Endpoint Address) 를확인하고, 자신에게전달된경우에만트랜잭션을진행한다. USB 2.0 허브는 Downstream Port에연결되는장치가 Low Speed, Full Speed 그리고 High Speed 모두의경우를다룰수있어야한다. 각각의속도차이는현저한차이를나타내고있기때문에, USB 2.0 허브가제공하는 Dowstream Port중하나에 Low Speed장치가, 또다른 Downstream Port에 High Speed장치가연결된다면, Low Speed장치로인해서트랜잭션의대응시간은무척오래걸릴수밖에없는상황이되버린다. 이것은허브에연결된 High Speed의장치입장에서는남아있는 USB대역폭을재대로사용할수없는상황이되버리고만다. 이후에설명할내용이지만, High Speed 가사용하는 Frame은 125us마다생성하는마이크로프레임을사용한다. Full Speed와 Low Speed는 1ms마다생성하는프레임을사용한다. High Speed의 125us는 Full Speed, Low Speed의프레임 (1ms) 의 1/8 시간을사용한다. 프레임만볼때 8배빠르다는뜻이다. 그림 1-19 USB 2.0 허브의 2 개의포트에 Low Speed, High Speed 장치를연결한그림

48 이와같은최악의상황을피하기위해서, USB 2.0허브는자신의 Upstream Port에있어서호스트와 High Speed를유지하면서, Dowstream Port는각각연결된장치의지원속도 (Low Speed, Full Speed, High Speed) 에맞추어서통신하는알고리즘을도입하게되었다. 이것을 TT(Transaction Translator) 라고부른다. 핵심은, USB 2.0 허브자신은호스트와 High Speed 속도를유지하는것이다. 자신의 Downstream Port에연결된장치의속도에영향을받지않고호스트와허브간의최대전송속도를낼수있도록하기위함이다. 어짜피 USB 2.0 통신은한번에하나의트랜잭션만처리할수있기때문에, 동시에두개이상의 Downstream Port를사용할필요가없다. 이와같은이유로하나의 TT 유닛을사용해서허브가가진하나의 Upstream Port와복수개의 Downstream Port간의변환알고리즘을적용하는유닛을 STT(Single TT) 라고부른다. 이경우, 하나의 STT를사용하기때문에, 복수개의 Downstream Port가서로다른속도의디바이스를사용하려한다면, 내부적으로배타적인자원사용알고리즘을사용하게되지만, 허브가가진복수개의 Downstream Port의개수만큼 TT유닛을사용하는 MTT의경우이런리소스부족문제는없기때문에보다적극적인알고리즘을사용할수있다. 그림 1-20 STT(Single TT), MTT(Multi TT)

49 TT 원리는간단하게설명하면다음과같다. 호스트가 High Speed 허브를통해서 Full Speed 의디바이스와통신하는경우를예로들어보자. 그림 1-21 TT 를사용하는예시그림 ( 벌크 OUT) [ 그림 1-21] 처럼, 호스트와허브는 High Speed 로연결되어있다. 허브와디바이스는 Full Speed 로연결되어있다고가정한다. 이경우, 호스트가디바이스로 OUT 트랜잭션을하려고하는경우,

50 호스트가먼저허브에게 Start Split( 분할시작 ) 패킷을먼저보낸다. 그다음, 이어서보내려고하던 OUT 트랜잭션을시작한다. 이후, 허브는 Full Speed 로연결된디바이스가수용할수있는속도로 OUT 트랜잭션을시작한다. OUT 트랜잭션의결과가디바이스로부터허브로올라온다. 호스트는적당한시간이후에 Complete Split( 분할완료 ) 패킷을먼저보낸뒤, OUT 트랜잭션의결과 를회신하는결과를얻는다. TT 알고리즘에있어서, USB 디바이스가가진엔드포인트속성중에서벌크, 컨트롤엔드포인트는 인터럽트, 등시성엔드포인트와완전히다른알고리즘을사용하게된다. 벌크, 컨트롤엔드포인트를위해서하나의 TT 는많으면많을수록좋은내부버퍼를가지고있다. 반면, 인터럽트와등시성엔드포인트를위해서는각각하나씩의분할시작, 분할완료버퍼만을가지 고있다. 하나의디바이스내부에복수개의벌크엔드포인트가있을수있다. 이와같은상황에서 TT 내부에 존재하는벌크, 컨트롤통신을위한내부버퍼는공유된다. 이런상황에서내부버퍼가크면클수 록유리한다. 반면에인터럽트와등시성엔드포인트처럼주기적인통신이필요한경우에는정확한주기에맞춰 서허브가디바이스와통신하는것이중요하다. High Speed 는 125us 프레임을사용하고, Full Speed 는 1ms 프레임을사용한다. 보다정교한타이밍관리를해야한다. 그리고인터럽트와등시성엔드포인트를사용하는데있어서, 중요한철학이있다. TT는호스트가디바이스로데이터를보내는경우, 가능하면디바이스가바쁘게데이터를받도록설계해야하고, 호스트가디바이스로부터데이터를읽어야하는경우, 가능하면디바이스가데이터를준비하기이전에먼저허브를통해서디바이스에게 IN 트랜잭션을발생시키도록해야한다. 이렇게해야 TT로인한오버헤드를줄이고보다정교하게데이터송수신이가능해진다.

51 1.10 데이터시그널링 (Signaling) USB PHY 기본 USB PHY 에서수행하는작업들을개념적으로살펴본다. 그림 1-22 USB 2.0 의물리적인신호선 그림 1-23 USB 3.0 의물리적인신호선

52 [ 그림 1-22, 1-23] 을통해알수있는가장큰차이는 USB 3.0 에서 4개의핀 (Pin) 이추가정의되었다는점이다. Txp, Txn 은 Super Speed Tx를위해서, Rxp, Rxn 은 Super Speed Rx를위해서사용된다. USB 2.0은동시에양방향의데이터통신을할수없다. USB 3.0의 Enhanced Super Speed에서는양방향의데이터통신이동시에발생될수있다. 데이터를발생하기위해서 USB 2.0에서는 D+, D- 2개의핀이사용되고, USB 3.0의 Enhanced Super Speed에서는 D+, D-가사용되지않는대신, Tx+(Txp), Tx-(Txn) 과 Rx+(Rx+), Rx-(Rxn) 이렇게 4개의핀이사용된다. Super Speed에서는핀이름을통해알수있듯이송신과수신각각 2핀씩제공되고있는것을알수있다. D+, D- (Tx+, Tx-, Rx+, Rx-) 는특정전압을가지도록설계되는데, 이와같은전압의최대값과최 소값은스팩에규정되어있는내용을따른다. D- 가음수전압을가진다는뜻이아니다. D+ 와 D- 는한쌍으로, Tx+ 와 Tx- 가한쌍으로, Rx+ 와 Rx- 가한쌍으로사용되어진다. 예를들어, D+ 의전압이 av, D- 의전압이 bv 라고가정한다. 그러면, 이들각각의전압을사용해서다음과같은결과의전압을얻을수있다. (D+) + (D-) = (a+b)v (D+) (D-) = (a-b)v (D-) (D+) = (b-a)v ((D+) + (D-))/2 = ((a+b)/2)v ((D+) (D-))/2 = ((a-b)/2)v 이와같은여러가지수학적인논리를그대로적용하면다양한전압값을얻을수있을것이다. USB는이와같이 D+ 와 D-의전압을적당하게수학적인논리에적용시켜서특별한값을얻어낸다. D+, D- 두가지전압값을사용해서신호데이터를만들어내기때문에, 이것을 Differential( 차등 ) 신호라고부른다. USB 에서는조금단순하게 D+, D- 의전압과관련해서다음과같은신호를사용한다. D+ 가논리적으로로우상태 ( 스팩에서규정한낮은전압상태 ), D- 가논리적으로하이상태 ( 스팩에서

53 규정한높은전압상태 ) 를차등 0 신호라고부른다. D- 가논리적으로로우상태, D+ 가논리적으로하이상태를차등 1 신호라고부른다. 그림 1-24 USB 차등 0 신호와차등 1 신호 이와같은차등신호를사용해서 2 진수의데이터를발생시킨다. Low Speed 에서는차등 0 신호를 J 데이터상태, 차등 1 신호를 K 데이터상태라고부른다. Full Speed 에서는차등 0 신호를 K 데이터상태, 차등 1 신호를 J 데이터상태라고부른다. High Speed 에서는차등 0 신호를 K 데이터상태, 차등 1 신호를 J 데이터상태라고부른다. Super Speed 에서는특별히정의되어있지않다. High Speed 와 Full Speed 는차등 0, 1 신호를같은 K, J 상태로규정하고있지만, 스팩에서규정하 는실제규정전압은서로다르다는점을기억해야한다. ( 같은통신이아니다 )

54 SE0 상태는 D+ 와 D- 신호가모두논리적으로로우상태인것을의미한다. USB 2.0 에서는 J, K 상태는 USB 디지털데이터를발생시키는목적으로사용되고, SE0 신호는 J, K 신호와함께조합되어여러가지시퀀스 (Sequence), 예를들어아이들 (IDLE), 리셋, 리쥼요청, 패킷 시작 (SOP), 패킷종료 (EOP) 등의의미로사용된다. 특별히 High Speed 에서는별도로쳡 J(Churp), 쳡 K(Churp) 상태를추가정의하여 High Speed 를지 원하는디바이스가리셋이후에 Full Speed 혹은 Low Speed 로동작시, High Speed 지원여부를조 사하는방법으로사용된다.(High Speed Handshaking) USB 3.0 은차등 0 과차등 1 의신호를사용해서데이터비트를생성한다. USB 3.0 은 USB 2.0 에비해서훨씬많은시퀀스 (Sequence) 를정의하고있다. 이와같은시퀀스는 프로토콜계층, 링크계층그리고 PHY 계층모두에서용도에맞게사용되어진다 USB 2.0 에서의데이터인코딩 / 디코딩 USB 2.0 은 Low Speed, Full Speed, High Speed 에따라서차등 0 신호와차등 1 신호는 J 상태, K 상 태로다르게부른다고배웠다. 그림 1-25 NRZI 방식의예제그림

55 다음시그널상태를가정해보자. K J K J K J K K 이것은 Low Speed 와 Full Speed 에서 SYNC(SOP) 시퀀스로사용하는신호이다. 이와같은차등신호가호스트에서디바이스로전달되었다면이것은어떤비트열을만들어낼까? 최근에전달된마지막상태가 J 상태라고가정한다. [ 그림 1-25] 은인코딩하는모습을보여주고있다. 시그널의위상이바뀌는구간을만나면, 데이터 비트값 0 이만들어진다. 위상이바뀌지않는구간에서는데이터비트값 1 이만들어진다. 결과적으로 J 상태가 K 상태로바뀌거나, K 상태가 J 상태로바뀌는구간에서는데이터비트값 0 이만 들어지고, 그렇지않은구간은데이터비트값 1 이만들어진다. J + K J K J K J K K 신호는이진수 값이된다. 그림 1-26 비트스터핑예제그림

56 USB 2.0 에서데이터인코딩 / 디코딩은 NRZI 방식과비트스터핑 (Stuffing) 알고리즘을사용하고있다. 이와같은알고리즘의단점은위상을바꾸지않는긴구간이발생되는경우, 데이터비트값이 1 로만들어지는구간이길어진다는점이다. 위상이너무오랫동안바뀌지않는상태로유지되면데이터생성및이후데이터디코딩시에오동작을나타낼소지가있기때문에, USB에서는위상변화가없이이어지는시그널이데이터비트 1을만들때, 이데이터 (1) 가연속으로 6번만들어지는구간이발생하면, 강제로데이터 0을억지로삽입하는방식을사용하는데이것을비트스터핑이라고부른다. USB 2.0 에서사용하는 USB 패킷은다음처럼만들어져서사용된다. 항상모든패킷은 SOP(Start Of Frame) 신호로부터시작되어 EOP(End Of Frame) 신호로끝난다. SOP 신호는 K J K J 의반복신호를사용해서만든 SYNC 명령어비트를만든다. Low Speed 와 Full Speed 에서는 K J K J K J K K 이렇게 8 개의신호를 SYNC 명령어비트를만드는

57 신호로사용한다. High Speed 에서는 K J K J K J 총 30 개의신호이후에이어지는 2 개의 K K 신 호를사용해서 32 개의신호를 SYNC 명령어비트를만드는신호로사용한다. 그림 1-27 USB 2.0 에서사용하는 USB 패킷모습 (SYNC, EOP) Low Speed 와 Full Speed 에서는인접한 2 비트의 SE0 신호와추가되는 J 데이터상태를 EOP 신호로 사용하고있다. Low Speed 와 Full Speed 에서아이들상태 (Idle) 가 J 데이터상태로규정되어있기때문에, 결국 EOP 신호는라인의상태를 J 데이터상태로만드는것이다. 반면 High Speed 에서는아이들상태로서 SE0와유사한상태를지속하는상태를사용하고있으며, J 데이터상태를아이들상태로사용하지않는다. 그렇기때문에 Low Speed, Full Speed에서사용하는패턴의 EOP신호를사용하지않는다. High Speed에서는강제로비트스터핑오류문제를발생시키는신호를만든다. 이것을 EOP신호로사용하고있다. 강제로비트스터핑오류문제를발생시킨다는것은만들어지는비트열속에비트값 1 이연속으로 7번이상나오도록하는것이다. 따라서, High Speed 에서는 EOP 를만들기바로직전의신호가 J 데이터신호의경우, 인접한 40 개 의신호를모두 KKKK 상태로만든다. 반면, EOP 를만들기바로직전의신호가 K 데이터신호

58 로끝난경우, 인접한 40개의신호를모두 JJJJ 상태로만든다. 결국, 이런작업들은 J가 K로, K 가 J로한번바뀌는행위로인해, 비트값 0이만들어진이후, 계속된 39개의신호들이비트값 1을만들어낸다. 결과적으로 2진수 이와같은데이터는정상적으로 USB 2.0에서만들어지지않는다. 비트스터핑이동작하기때문이다. 따라서, 이런데이터가수신되었다면비트스터핑이재대로동작하지않은상황의에러이지만, 이것을 EOP신호로간주하고있다 USB 3.0 Enhanced Super Speed 에서의데이터인코딩 / 디코딩 USB 3.0 에서데이터인코딩 / 디코딩은 Enhanced Super Speed 에서는 8b/10b, SS Plus 에서는 128b/132b 알고리즘을사용하고있다. 또한옵션으로데이터스크램블 (Scramble) 알고리즘을적용 하여데이터가깨지는상황을예측할수있도록지원하고있다. 데이터스크램블사용여부는 USB 3.0 LTSSM(Link Training and Status State Machine) 의 Polling 상 태에서양쪽포트가협상을한뒤결정된다. [ 그림 1-28, 1-29] 는 Super Speed 와 Super Speed Plus 각각에서사용되는 Transceiver 입장에서사 펴본 USB PHY 의구성모듈이다. [ 그림 1-30, 1-31] 는 Super Speed 와 Super Speed Plus 각각에서사용되는 Receiver 입장에서사펴 본 USB PHY 의구성모듈이다. 그림 1-28 USB Super Speed PHY 의구성 (Transceiver)

59 그림 1-29 USB Super Speed Plus PHY 의구성 (Transceiver) 그림 1-30 USB Super Speed PHY 의구성 (Receiver)

60 그림 1-31 USB Super Speed Plus PHY 의구성 (Receiver)

61 옵션으로사용될수있는스크램블 (Scramble) 작업과디스크램블 (Descramble) 작업은전체구조를 파악하는데있어서당분간은생략해도무방하다. 8b/10b 와 128b/132b 는각각 8비트의데이터를 10비트로, 128비트의데이터를 132비트로확장시키는알고리즘을의미한다. USB Super Speed 데이터는제어문자 (K문자) 와데이터문자 (D문자) 로구분되는데, 이들을표현함과동시에, 동일한비트가반복적으로나오는일이없도록새로운조합의비트열을만드는작업에사용된다. 그림 1-32 D26.0 데이타를 8b/10b 알고리즘을사용해서인코딩하는예시 K 문자는 Kx.y 형태를가지고, D 문자는 Dx.y 형태로사용한다. [ 그림 1-32] 에서 RD(Running Disparity)+ 와 RD- 중에서적당하게하나를선택하여전체비트열이 균형적으로비트 0 과비트 1 이나타나도록돕는다. D26.0 문자는 RD+ 의경우, 이진수 로대체되고, RD- 의경우, 이진수 로대체된다. 현실속에서 USB 데이터비트열은하나의 10 비트열값만사용하는것이아니라, 이어지는다른비 트열이존재한다. 이로인해, 하나의 10 비트열속에비트 0 과비트 1 이균형있게배치되었다고하 더라도이어지는 10 비트열과연속선상에서다시고려되어져야한다. 이와같은이유로다음과같은알고리즘을사용한다.

62 첫번째 10 비트열 (RD-), 두번째 10 비트열 (RD+), 세번째 10 비트열 (RD-),.. 이런식으로배열한다. 그림 b/10b 에서사용되는변환표 ( 일부분 ) 예를들어보자. 0x1A, 0x0F, 0x05, 0x1E 데이터 (4바이트가전부데이터문자라고가정한다 ) 를그순서대로변환하려고하면, 각각 [ 그림 1-33] 에서알수있는 RD-값과 RD+ 값이있는것을알수있다. 이중에하나씩을선택해야하는데, 그방법은다음과같다. RD-, RD+, RD-, RD+ 이런식순서로데이터를취해보자. 0x1A 는 RD- 값을취하므로 을선택한다.

63 0x0F 는 RD+ 값을취하므로 을선택한다. 0x05 는 RD- 값을취하므로 을선택한다. 0x1E 는 RD+ 값을취하므로 을선택한다. 결국이들 10 비트의 4 개의데이터를모두붙여본다 이렇게 40 비트의데이터스트림이만들어진다. 표 1-17 USB 3.0 Super Speed(Plus) 에서사용되는제어문자 심볼 이름 SS SS+ 설명 SKP Skip K28.1 CCh 동기화에사용되는문자. 데이터로간주하지않음 SKPEND Skip End X 33h 이어지는 SKP문자의경계문자 SDP Start Data Packet K h 데이터패킷의시작 EDB End Bad K h 잘못된패킷수신 SUB Decode Erro Substitution K28.4 X 디코딩에러상황대체문자 COM Comma K28.5 X 스크램블 (Scramble) 회로를리셋함 SHP Start Header Packet K27.7 X 헤더패킷의시작을알림 DPHP Start Data Packet Header X 9Ah 패킷데이터헤더의시작을알림 END End K h 데이터블록의마지막 SLC Start Link Command K h 링크명령의시작 EPF End Packet Framing K h 시퀀스패킷구성의마지막 SDS Start of Data Stream X 63h Data 스트림의시작 제어문자는단독으로사용되지않고두개이상의제어문자을연속으로배치하는문자열시퀀스 (Sequence) 형태로사용한다. 보통제어문자는특별한경우를제외하면스크램블 (Scramble) 에서제 외된다. Super Speed 를위한 LTSSM 상태도에서 Polling 상태에서수행하는링크양쪽포트의 Training 작 업과정중에서사용되는 TS1(Training Sequnce 1) 시퀀스는다음과같다.

64 표 1-18 USB 3.0 Super Speed 에서사용하는 TS1 시퀀스문자열 심볼문자개수 표현되는제어문자 설명 0,1,2,3 번째심볼 K28.5 COM(Comma) 4번째심볼 D0.0 예약됨 5번째심볼 파라미터 ( 나중에설명함 ) Link Functionality 6번째 - 15번째심볼 D10.2 TS1 식별자 USB 3.0 Super Speed 에서사용되는 TS1 시퀀스는총 16 문자로구성된다. 4 개의 COM 심볼로시 작된다. [ 그림 1-34] Super Speed Link command 시퀀스예시 [ 그림 1-34] 는이해를돕기위해서링크명령어를전송하기위해서준비되는문자시퀀스 (8 바이트 ) 를보여주고있다. ( 인코딩되지않은상태이다 )

65 [ 그림 1-35] 처럼 USB 3.0 Super Speed(Plus) 가사용하는데이터시그널인코딩방식은 NRZ(Non Return to Zero) 방식을사용한다. USB 2.0 에서 NRZI 방식을사용하는것과다른방식이다. NRZ 방식은시그널자체를디지털데이터로확인하기가용이한장점이있다. 그림 1-35 NRZ 방식의예제그림 Super Speed 는 5GHz, Super Speed Plus 는 10GHz 의주파수대를대역폭을사용하는고속전송이다. 이와같은고속전송에서데이터를만들어내는 Transceiver 와데이터를받는 Receiver 사이에연결 된케이블 ( 보통채널이라고부른다 ) 의길이와특성은전체속도에민감한영향을준다. Transceiver 에서송출되는데이터신호는채널을통과하면원래의데이터신호와조금다르게깨끗 하지못한신호가돼버린다. Transceiver 는 De-emphasis 방식을, Receiver 는이퀄라이져를사용해서 수신된데이터신호를증폭시킨다. Transceiver 를위한 De-emphasis 방식은변화가많은신호열 ( 고주파 ) 의성분은변화를주지않고 변화가적은신호열 ( 저주파 ) 의성분만높이를줄여서전송하는방식이다. 채널의특성을최소화하 는방식으로많이사용된다.

66 Receiver 에서사용하는이퀄라이져는필요한의미있는데이터신호를증폭시킨다. 이것역시채널 의특성을최소화하는목적으로사용된다. 이퀄라이져를사용할때, jitter( 잡음 ) 신호도함께증폭되 기때문에주의해서다루어야한다. 이렇게데이터신호를보정하는이유는 D+, D- 신호를깨끗하게검출할수있어야수신기측에서정 확하게데이터신호를분석할수있기때문이다. 데이터신호가얼마나깨끗한지를확인하는목적 으로살펴보는다이아그램을 Eye 다이아그램이라고한다. 그림 1-36 Super Speed D+, D- 의 Eye 다이아그램 D+ 와 D-는서로다른위상의신호를사용하기때문에눈 (Eye) 과같은모습의다이아그램이나타난다. [ 그림 1-36] 는 Super Speed 에서송신되는데이터신호중짦은시간구간동안의다이아그램이다. Eye 다이아그램의눈 (Eye) 의폭과높이가얼마나큰지와눈의양끝에나타나는 jitter( 잡음 ) 가얼마나작은지등을확인하는용도로사용한다. 좋은신호는눈의폭과높이가큰신호이다. [ 그림 1-36] 에있는 Minimum Eye Width 와 Minimum Eye Height 를 Eye Mask 라고부른다. 다이 아몬드형태의마름모영역은데이터신호로간주할수없는최소영역을의미한다. 최소한이영역

67 바깥쪽까지눈의크기가커져있어야데이터신호로간주될수있다.

를수있다. * 링크명령어 링크는양쪽파트너사이에지정된링크명령어 ( 프로토콜계층에서정의하지않은 ) 을별도로준비해 서사용한다. 링크명령어는링크상태의전환및흐름제어 (Flow Control) 등에사용된다. * 링크전원관리 USB 3 SS 에서는링크의버스전원사용상태가어떤상태인지를

를수있다. * 링크명령어 링크는양쪽파트너사이에지정된링크명령어 ( 프로토콜계층에서정의하지않은 ) 을별도로준비해 서사용한다. 링크명령어는링크상태의전환및흐름제어 (Flow Control) 등에사용된다. * 링크전원관리 USB 3 SS 에서는링크의버스전원사용상태가어떤상태인지를 4 장 USB 링크 (Link) USB 프로토콜에서링크가중요한역할로부각되기시작한것은 USB 3 슈퍼스피드 (SS) 로부터이 다. 링크는호스트 ( 루트허브포트 ) 또는외장허브의다운스트림포트 (DP) 와외장허브또는디바이스의 업스트림포트 (UP) 간의연결을의미한다. 이들간의서로를링크파트너 (Link Partner) 라고부른다. 이번장에서는 USB 링크에대한전체적인개념을배우도록한다.

More information

드포인트가지원하는 MaxPacketSize가 8, 16, 32, 64 중에하나이기때문에, 호스트는 FS 디바이스가지원하는컨트롤엔드포인트의 MaxPacketSize 값을정확하게알아야한다. 이런정보는디바이스디스크립터 (Device Descriptor) 에포함되어있으며, 이

드포인트가지원하는 MaxPacketSize가 8, 16, 32, 64 중에하나이기때문에, 호스트는 FS 디바이스가지원하는컨트롤엔드포인트의 MaxPacketSize 값을정확하게알아야한다. 이런정보는디바이스디스크립터 (Device Descriptor) 에포함되어있으며, 이 3 장 USB 통신속도별특징 USB 2 속도 ( 로우스피드, 풀스피드, 하이스피드 ) 와 USB 3 속도 ( 슈퍼스피드 ) 는단지속도의빠르기만차이를가지고있지않다. 각각의전송속도는다양한속성면에서서로다른특징을가지고있으며, 주변에서아직도로우스피드 ( 느린속도 ) 의주변장치를그대로사용하는현실적인면에서볼때, 로우스피드의속도가느리다는이유로이를관과할내용은아니다. 3.1

More information

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트워크주소와 브로드캐스트주소를설명할수있다. 학습내용 1 : IP 헤더필드구성 1. Network Layer Fields 2. IP 헤더필드의구성 1)

More information

제가되기때문에보다효과적이고공격적인전력공급정책이필요하게된다. 서스팬드 (Suspend) 상태의버스전력공급상태를원래의상태로복원하는작업을리쥼 (Resume) 이라 고부른다. USB 에서정의하는서스팬드는크게 2 가지로나뉜다. 하나는전역 (Global) 서스팬드이고다른하나는선택

제가되기때문에보다효과적이고공격적인전력공급정책이필요하게된다. 서스팬드 (Suspend) 상태의버스전력공급상태를원래의상태로복원하는작업을리쥼 (Resume) 이라 고부른다. USB 에서정의하는서스팬드는크게 2 가지로나뉜다. 하나는전역 (Global) 서스팬드이고다른하나는선택 6 장 USB 전원관리 필자는이번장에서전원관리, 전력관리, 전원절약등의단어를혼용해서사용한다. 참고해서읽어 주기를바란다 노트북 PC에 USB 이동식디스크를꽂은상태로장시간동안 USB 이동식디스크를사용하지않고다른작업을하고있었다고가정해보자. 그동안 USB 버스로불필요한전력이낭비되어사용된결과가되었다. 그렇지않아도배터리가부족한상황이라면, 노트북 PC 사용자에게이런낭비문제는심각한문제가아닐수없다.

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 USB Communication - Packet Structure 2004. 1. 김현수 (mclapd) 세미나를시작하기전에 USB 의 Low Level Communication 에관련한사항만다루기때문에펌웨어또는드라이버, 애플리케이션에관련된것은언급하지않습니다. * 몇페이지의내용은 DevGuru 송지호님의글을인용하였습니다. USB Bus Topology 1.

More information

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_ Sena Technologies 백서 : Latency/Throughput Test September 11, 2008 Copyright Sena Technologies, Inc 2008 All rights strictly reserved. No part of this document may not be reproduced or distributed without

More information

실험 5

실험 5 실험. OP Amp 의기초회로 Inverting Amplifier OP amp 를이용한아래와같은 inverting amplifier 회로를고려해본다. ( 그림 ) Inverting amplifier 위의회로에서 OP amp의 입력단자는 + 입력단자와동일한그라운드전압, 즉 0V를유지한다. 또한 OP amp 입력단자로흘러들어가는전류는 0 이므로, 저항에흐르는전류는다음과같다.

More information

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1 IP 심화 º 각 P 의게이트웨이는해당네트워크의마지막주소를사용한다. - P1 (210.220.10.1/26) 의게이트웨이 (5의 Fa0/0) : 210.220.10.63 /26 = 255.255.255.192 호스트비트수 : 32-26 = 6 비트 => = 64 그러므로 P1의 IP 210.220.10.1 중서브넷마스크에의거 26비트는변함이없고, 나머지 6비트가호스트비트로변하므로

More information

개요

개요 Application Note (003) 시리얼인터페이스 (RS232/RS422/RS485) Version 1.0 솔내시스템주식회사 1. 개요 는 RS232, RS422, RS485등 3개의시리얼인터페이스를지원합니다. 사용자는 의설정용유틸리티인 ezconfig를이용해서 3개의인터페이스중에서하나를선택하여설정할수있습니다. 1.1. RS232 Ground를기준으로한전압을이용해서통신하는형태입니다.

More information

일반적인 네트워크의 구성은 다음과 같다

일반적인 네트워크의 구성은 다음과 같다 W5200 Errata Sheet Document History Ver 1.0.0 (Feb. 23, 2012) First release (erratum 1) Ver 1.0.1 (Mar. 28, 2012) Add a solution for erratum 1, 2 Ver 1.0.2 (Apr. 03, 2012) Add a solution for erratum 3

More information

시스템, 네트워크모니터링을통한보안강화 네트워크의미래를제시하는세미나 세미나 NetFocus 2003 : IT 관리자를위한네트워크보안방법론 피지피넷 /

시스템, 네트워크모니터링을통한보안강화 네트워크의미래를제시하는세미나 세미나 NetFocus 2003 : IT 관리자를위한네트워크보안방법론 피지피넷 / 시스템, 네트워크모니터링을통한보안강화 네트워크의미래를제시하는세미나 세미나 NetFocus 2003 : IT 관리자를위한네트워크보안방법론 피지피넷 / 팀장나병윤!dewymoon@pgpnet.com 주요내용 시스템모니터링! 패킷크기와장비의 CPU 및 Memory 사용량! SNMP를장비의상태관찰 비정상적인트래픽모니터링! Packet 분석기의다양한트래픽모니터링도구를이용한비정상적인트래픽관찰!

More information

슬라이드 1

슬라이드 1 TCPdump 사용법 Neworks, Inc. (Tel) 070-7101-9382 (Fax) 02-2109-6675 ech@pumpkinne.com hp://www.pumpkinne.co.kr TCPDUMP Tcpdump 옵션 ARP 정보 ICMP 정보 ARP + ICMP 정보 IP 대역별정보 Source 및 Desinaion 대역별정보 Syn 과 syn-ack

More information

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation 1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP

More information

Microsoft Word - NAT_1_.doc

Microsoft Word - NAT_1_.doc NAT(Network Address Translation) 1. NAT 개요 1 패킷의 IP 헤더의수신지주소, 발신지주소또는그주소를다른주소로변경하는과정 2 NAT기능을갖는장치를 NAT-BOX라함 ( 시스코라우터, 유닉스시스템, 윈도우의호스트혹은몇개의다른시스템일수있기때문에이렇게지칭하기도함 ) 3 NAT 기능을갖는장치는일반적으로스텁도메인 (Stub-domain)

More information

Microsoft Word - How to make a ZigBee Network_kr

Microsoft Word - How to make a ZigBee Network_kr 1 단계 ZigBee 네트워크설정방법 이보기는 ProBee 기기를이용해 ZigBee 네트워크를설정하는방법을보여줍니다. 2 단계 이보기에서사용된 SENA 제품입니다 : ProBee ZE10 Starter Kit ProBee ZS10 ProBee ZU10 3 단계 ZigBee 네트워크입니다. SE1 SE2 SE3 ZS10 ZS10 ZS10 R4 R5 R3 R1

More information

원문 : USB in a NutShell, Beyond Logic. 번역자 : lifeisforu( ) 주의 : 허락받고번역한것이아니므로문제가되면삭제될수있습니다. 주의 : 번역

원문 : USB in a NutShell, Beyond Logic. 번역자 : lifeisforu(   ) 주의 : 허락받고번역한것이아니므로문제가되면삭제될수있습니다. 주의 : 번역 원문 : USB in a NutShell, Beyond Logic. 번역자 : lifeisforu( http://lifeisforu.tistory.com, lifeisforu@naver.com ) 주의 : 허락받고번역한것이아니므로문제가되면삭제될수있습니다. 주의 : 번역이개판이므로이상하면원문을참조하십시오. 주의 : 가독성을높이기위해서잘알려진용어나발음이비슷한용어는한글로표기합니다.

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 6 th Lecture 유명환 ( yoo@netplug.co.kr) 1 2 통신 관련이야기 시리얼통신 관련이야기 INDEX 3 ATmega128 시리얼통신회로도분석 4 ATmega128 시리얼통신컨트롤러 (USART) 분석 5 ATmega128 시리얼통신관련레지스터분석 6 ATmega128 시리얼통신실습 1 통신 관련이야기 동기

More information

Microsoft PowerPoint - 30.ppt [호환 모드]

Microsoft PowerPoint - 30.ppt [호환 모드] 이중포트메모리의실제적인고장을고려한 Programmable Memory BIST 2010. 06. 29. 연세대학교전기전자공학과박영규, 박재석, 한태우, 강성호 hipyk@soc.yonsei.ac.kr Contents Introduction Proposed Programmable Memory BIST(PMBIST) Algorithm Instruction PMBIST

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다 이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

그룹웨어와 XXXXX 제목 예제

그룹웨어와 XXXXX 제목 예제 데이터통신 부호화 (encoding) 부호화 (Encoding) 의개념 정보 Encoder 신호 1 Digital - to - Digital 2 Analog - to - Digital 3 Digital - to - Analog 4 Analog - to - Analog 2 1 Digital-to-Digital Encoding Digital 정보를 Digital

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

입출력된다. 이러한무선 USB 시스템에서데이터의송신은 MMC(Micro-scheduled Management Command) 내에 USB 토큰 (Token) 을전달 (broadcast) 하며, 데이터와핸드쉐이크단계에서데이터송수신 (data communication) 의

입출력된다. 이러한무선 USB 시스템에서데이터의송신은 MMC(Micro-scheduled Management Command) 내에 USB 토큰 (Token) 을전달 (broadcast) 하며, 데이터와핸드쉐이크단계에서데이터송수신 (data communication) 의 명세서 발명의명칭 무선 USB 시스템의데이터송수신방법 {DATA COMMUNICATION METHOD OF WIRELESS USB SYSTEM} 발명의상세한설명 기술분야 본발명은무선 USB 시스템의데이터송수신방법에관한것으로서, 보다상세하게는슬라이딩윈도우방식 을사용하여데이터를버스트모드로송수신할때슬라이딩윈도우의상태를인식비트벡터나송신비트벡터를통해간편하게계산하여데이터를송수신하는무선

More information

Microsoft Word - release note-VRRP_Korean.doc

Microsoft Word - release note-VRRP_Korean.doc VRRP (Virtual Router Redundancy Protocol) 기능추가 Category S/W Release Version Date General 7.01 22 Dec. 2003 Function Description VRRP 는여러대의라우터를그룹으로묶어하나의가상 IP 어드레스를부여해마스터로지정된라우터장애시 VRRP 그룹내의백업라우터가마스터로자동전환되는프로토콜입니다.

More information

슬라이드 1

슬라이드 1 USB Hacking mongii@grayhash Summary About USB protocol USB Packet Analysing USB Stack Fuzzing File System Fuzzing Multi-media File Fuzzing USB(Universal Serial Bus) 기초 USB(Universal Serial Bus) 소개 Host

More information

슬라이드 제목 없음

슬라이드 제목 없음 2006-11-02 경북대학교컴퓨터공학과 1 제 8 장인터넷프로토콜 : IP 데이터그램 단편화 검사합 옵션 IP 설계 IP 프로토콜 2006-11-02 경북대학교컴퓨터공학과 2 2006-11-02 경북대학교컴퓨터공학과 3 네트워크계층프로토콜 IP (Internet Protocol) TCP/UDP 세그먼트를받아서패킷별로경로선택 ICMP (Internet Control

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

Microsoft PowerPoint - 06-IPAddress [호환 모드]

Microsoft PowerPoint - 06-IPAddress [호환 모드] Chapter 06 IP Address IP Address Internet address IP 계층에서사용되는식별자 32 bit 2 진주소 The address space of IPv4 is 2 32 or 4,294,967,296 netid 와 hostid 로구분 인터넷에서호스트와라우터를유일하게구분 IP Address Structure 2-Layer Hierarchical

More information

1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op

1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op USB2CAN USB2CAN-VCP USB2CAN-FIFO API Reference Manual ver. 1.00 Updated in November 2013 1 1. INTRODUCTION 2 2. DOWNLOAD 2 2-1. Windows Desktop & Server 2 2-2. Max OS X, Linux, Windows CE 2 3. API REFERENCE

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

Microsoft Word - logic2005.doc

Microsoft Word - logic2005.doc 제 8 장 Counters 실험의목표 - Catalog counter 의동작원리에대하여익힌다. - 임의의 counter를통하여 FSM 구현방법을익힌다. - 7-segment display 의동작원리를이해한다. 실험도움자료 1. 7-segment display 7-segment는디지털회로에서숫자를표시하기위하여가장많이사용하는소자이다. 이름에서알수있듯이 7개의 LED(

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지 PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에

More information

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,

More information

그룹웨어와 XXXXX 제목 예제

그룹웨어와 XXXXX 제목 예제 데이터통신 데이타링크제어 차례 회선원칙 (line discipline) 흐름제어 (flow control) 오류제어 (error control) 2 회선원칙 링크에연결된장치간의상대적인관계 대등 (peer-to-peer) 관계 주종 (primary-secondary) 관계 회선구성 점대점 (point-to-point) 구성 다중점 (multipoint) 구성

More information

Switching

Switching Switching 강의의목표 Switching/Switching Network의필요성을이해한다. 세가지대표적교환기술에열거하고그차이를설명할수있다. 각교환기술의장, 단점을비교하여설명할수있다. Packet Switching 에서 Fairness 문제와 Pipelining 을 패킷크기와연계하여설명할수있다. Soft Switch 개념을이해하고설명할수있다. 교재 Chapter

More information

Chapter ...

Chapter ... Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준

More information

PowerPoint Presentation

PowerPoint Presentation Korea Tech Conference 2005 년 5 월 14 일, 서울 2005 년 5 월 14 일 CE Linux Forum Korea Tech Conference 1 Parallel port 를이용한가전제품 제어 임효준 LG 전자 imhyo@lge.com 2005 년 5 월 14 일 CE Linux Forum Korea Tech Conference 2

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는 Dong Yang E&P 인버터 Modbus Monitoring Protocol 2018. 08. 27 Sun Spec (Modbus-RTU) -. Modbus Protocol 각 Field에대한설명 Frame갂의구별을위한최소한의시갂 BaudRate 9600에서 1bit 젂송시갂은 Start 0.104msec, (3.5 character Times, 1 Character

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 유니티와아두이노를활용한 VR 컨트롤러개발 Part 06 헬로앱스코딩교육 김영준 공학박사, 목원대학교겸임교수前 Microsoft 수석연구원 splduino@gmail.com http://www.helloapps.co.kr 키보드로물체생성하기 키보드로물체생성하기 public GameObject CubeObject; public GameObject MyCamera;

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 네트워크계층프로토콜 쉽게배우는데이터통신과컴퓨터네트워크 학습목표 IPv6의필요성과헤더구조를이해한다. 이동 IP 프로토콜의터널링원리를이해한다. ARP/RARP의필요성을이해한다. ICMP의헤더와제어메시지를이해한다. IGMP의헤더와멀티캐스트그룹관리방식을이해한다. 2/27 1 절. IPv6 주소공간확장 IPv4의 32 비트에서 128 비트로확장 최대 2 128 개의호스트를지원

More information

슬라이드 제목 없음

슬라이드 제목 없음 ETOS-DPS-X Guide AC&T SYSTEM 1 ETOS-DPS-X 개요 ETOS-DPS-X Field Bus Network 중 Profibus-DP Network 에연결되는장비. ProfiBus-DP Network 시스템에 DP 통신을지원하지않는현장장비에대한통신서버기능구현. Profibus-DP Slave 동작하기때문에반드시 DP-Master 모듈이있는시스템에서적용가능.

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

USB Driver Interface(USBDI) 라고부른다. * 호스트컨트롤러드라이버 (xhcd) 호스트컨트롤러하드웨어와 USBD 사이에존재하는소프트 웨어영역을제공한다. * 호스트컨트롤러 (xhc) 보통 Low Speed, Full Speed, High Speed,

USB Driver Interface(USBDI) 라고부른다. * 호스트컨트롤러드라이버 (xhcd) 호스트컨트롤러하드웨어와 USBD 사이에존재하는소프트 웨어영역을제공한다. * 호스트컨트롤러 (xhc) 보통 Low Speed, Full Speed, High Speed, 10 장 xhci(extensible Host Controller Interface) USB 호스트시스템 (Host System) 은많은수의하드웨어와소프트웨어영역으로구성된다. [ 그림 10-1] 은개념적인호스트시스템을구성하는각종영역이어떻게연결되는지를보여주는 블록다이어그램을보여준다. 그림 10-1 USB 3.0 시스템블록다이아그램 * 응용프로그램소프트웨어 (Application

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

Mango-E-Toi Board Developer Manual

Mango-E-Toi Board Developer Manual Mango-E-Toi Board Developer Manual http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

More information

로거 자료실

로거 자료실 redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...

More information

1아이리포 기술사회 모의고사 참조답안

1아이리포 기술사회 모의고사 참조답안 아이리포지식창고 Data Link 계층프로토콜 STP 김우태컴퓨터시스템응용기술사 (matica5127@naver.com) STP(Spanning Tree Protocol) Concept + STP 을이해하기위한세가지개념 + STP 개요 - STP 정의 - Bridged LAN 에서의 Spanning Tree Algorithm - Bridge 구성에서의 Looping

More information

Microsoft PowerPoint - polling.pptx

Microsoft PowerPoint - polling.pptx 지현석 (binish@home.cnu.ac.kr) http://binish.or.kr Index 이슈화된키보드해킹 최근키보드해킹이슈의배경지식 Interrupt VS polling What is polling? Polling pseudo code Polling 을이용한키로거분석 방어기법연구 이슈화된키보드해킹 키보드해킹은연일상한가! 주식, 펀드투자의시기?! 최근키보드해킹이슈의배경지식

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

0. 들어가기 전

0. 들어가기 전 컴퓨터네트워크 14 장. 웹 (WWW) (3) - HTTP 1 이번시간의학습목표 HTTP 의요청 / 응답메시지의구조와동작원리이해 2 요청과응답 (1) HTTP (HyperText Transfer Protocol) 웹브라우저는 URL 을이용원하는자원표현 HTTP 메소드 (method) 를이용하여데이터를요청 (GET) 하거나, 회신 (POST) 요청과응답 요청

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Mango220 Android How to compile and Transfer image to Target

Mango220 Android How to compile and Transfer image to Target Mango220 Android How to compile and Transfer image to Target http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys

More information

USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB

USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB http://ntrexgo.com 설명서에포함된정보는정확하고신뢰성이있는내용입니다. 그러나출판당시발견되지않은 오류가있을수있으니사용자는자신의제품검증을수행하시기바라며, 전적으로설명서에포 함된정보에의존하지마시기바랍니다. 1 소개 1 2

More information

고객 카드 1588-7278

고객 카드 1588-7278 고객 카드 1588-7278 i 안전을 위한 경고사항 안전을 위한 주의사항 i 헤드유닛 DISP RADIO MEDIA PHONE SEEK TRACK 헤드유닛 FOLDER MUTE SCAN SETUP 스티어링 휠 리모트 컨트롤 + - MODE 기본모드 화면 Radio 모드 변경 RADIO 라디오 주파수 검색하기 SEEK TRACK 라디오 모드 사용하기 저장방송

More information

OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver of 8 Onsystech

OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver of 8 Onsystech OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver 1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-MOS100은 UART 인터페이스를통하여토양수분데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에적용할수있도록소형으로제작되었습니다. PC에서는 OSTSen-MOS100에서제공하는토양수분데이터를

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128

More information

노트북 IT / 모바일 데스크탑 34 올인원PC 35 PC 소프트웨어 포터블SSD / SSD / 메모리카드 36 태블릿 37 휴대폰 39 PC 솔루션 IT / 모바일 IT / 모바일 노트북 29 삼성전자는 Windows 를 권장합니다. 삼성전자만의 편리하고 다양한 소프트웨어를 통해 초보자도 보다 쉽고 빠르게 이용 가능합니다. Easy Settings 삼성 패스트

More information

hd1300_k_v1r2_Final_.PDF

hd1300_k_v1r2_Final_.PDF Starter's Kit for HelloDevice 1300 Version 11 1 2 1 2 3 31 32 33 34 35 36 4 41 42 43 5 51 52 6 61 62 Appendix A (cross-over) IP 3 Starter's Kit for HelloDevice 1300 1 HelloDevice 1300 Starter's Kit HelloDevice

More information

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1) [ Version 1.3 ] Access Point,. Access Point IP 10.0.0.1, Subnet Mask 255.255.255.224, DHCP Client. DHCP Server IP IP,, IP 10.0.0.X. (Tip: Auto Sensing Straight, Cross-over.) step 1]. step 2] LAN. step

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University Outline Network Network 구조 Source-to-Destination 간 packet 전달과정 Packet Capturing Packet Capture 의원리 Data Link Layer 의동작 Wired LAN Environment

More information

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E > 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 소켓 (Socket) (1/2) Socket 이란? 서버와클라이언트가서로특정한규약을사용하여데이터를전송하기위한방식 서버와클라이언트는소켓연결을기다렸다가소켓이연결되면서로데이터를전송 현재네트워크상에서의모든통신의근간은 Socket 이라할수있음 Page 2 1 소켓 (Socket) (2/2)

More information

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB Revision 1.0 Date 11th Nov. 2013 Description Established. Page Page 1 of 9 1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

Microsoft PowerPoint - tem_5

Microsoft PowerPoint - tem_5 2014 년도 1 학기 (961805-501) 컴퓨터네트워크 2014.04.30 장문정 (cathmjang@gmail.com) 홍익대학교게임소프트웨어전공 네트워크계층 이장의목표 : 네트워크계층서비스에대한기본원리를이해 네트워크계층서비스모델 포워딩 (forwarding) vs. 라우팅 (routing) 네트워크계층프로토콜 : IP, DHCP, ICMP 등 라우팅알고리즘

More information

Microsoft Word doc

Microsoft Word doc TCP/IP 구조 1. I.P 구조설명 2. ARP 구조설명 3. TCP 구조설명 4. UDT 구조설명 5. RIP 구조설명 6. BOOTP 구조설명 7. TFTP 구조설명 destination addr source addr type data CRC 6 6 2 46-1500 4 type 0X0800 IP datagram 2 46-1500 type 0X0806

More information

리눅스 프로세스 관리

리눅스 프로세스 관리 프로세스 (Process) Process 프로그램이나명령어를실행하면메모리에적재되어실제로실행되고있는상태를의미 이러한프로세스들은프로세스가시작하면서할당받는프로세스식별번호인 PID(Process ID), 해당프로세스를실행한부모프로세스를나타내는 PPID(Parent Process ID), UID 와 GID 정보를통해해당프로세스가어느사용자에속해있는지, 프로세스가파일에대해갖는권한및프로세스가실행된터미널,

More information

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

TTA Verified : HomeGateway :, : (NEtwork Testing Team) TTA Verified : HomeGateway :, : (NEtwork Testing Team) : TTA-V-N-05-006-CC11 TTA Verified :2006 6 27 : 01 : 2005 7 18 : 2/15 00 01 2005 7 18 2006 6 27 6 7 9 Ethernet (VLAN, QoS, FTP ) (, ) : TTA-V-N-05-006-CC11

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

chap 5: Trees

chap 5: Trees Chapter 5. TREES 목차 1. Introduction 2. 이진트리 (Binary Trees) 3. 이진트리의순회 (Binary Tree Traversals) 4. 이진트리의추가연산 5. 스레드이진트리 (Threaded Binary Trees) 6. 히프 (Heaps) 7. 이진탐색트리 (Binary Search Trees) 8. 선택트리 (Selection

More information

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Tablespace On-Offline 테이블스페이스 온라인/오프라인 2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가

More information

μ 1. SONET 이란무엇인가?B & B SONET 은동기식광전송망 (Synchronous Optical NETwork) 의줄임말이다. 여기서동기식이라고하는것은신호를보내는데있어서보낼데이터가존재하는지여부에상관없이일정한시간간격을가지고전송하는것을말한다. 이와반대로비동기식전송에서는시간간격과상관없이보낼데이터가있는경우에만보내는것을의미한다. Bellcore(Bell

More information

(MHT-SB112\273\347\276\347\274\255.hwp)

(MHT-SB112\273\347\276\347\274\255.hwp) 무한테크 Digital I/O Board MHT-SB112 경기도의왕시고천동 290-2 대영골든밸리 902 호 http:// Tel : 031-450 - 6737 Fax : 031-450 - 6738 Email : info@moohantechbiz 차례 1 사용되는용도및특징 2 구성요소 3 인터페이스구성 4 아날로그입력 5 통신프로토콜 6 딥스위치설정 7 PCB

More information

TTA Journal No.157_서체변경.indd

TTA Journal No.157_서체변경.indd 표준 시험인증 기술 동향 FIDO(Fast IDentity Online) 생체 인증 기술 표준화 동향 이동기 TTA 모바일응용서비스 프로젝트그룹(PG910) 의장 SK텔레콤 NIC 담당 매니저 76 l 2015 01/02 PASSWORDLESS EXPERIENCE (UAF standards) ONLINE AUTH REQUEST LOCAL DEVICE AUTH

More information

CAN-fly Quick Manual

CAN-fly Quick Manual adc-171 Manual Ver.1.0 2011.07.01 www.adc.co.kr 2 contents Contents 1. adc-171(rn-171 Pack) 개요 2. RN-171 Feature 3. adc-171 Connector 4. adc-171 Dimension 5. Schematic 6. Bill Of Materials 7. References

More information

슬라이드 제목 없음

슬라이드 제목 없음 2006-09-27 경북대학교컴퓨터공학과 1 제 5 장서브넷팅과슈퍼넷팅 서브넷팅 (subnetting) 슈퍼넷팅 (Supernetting) 2006-09-27 경북대학교컴퓨터공학과 2 서브넷팅과슈퍼넷팅 서브넷팅 (subnetting) 하나의네트워크를여러개의서브넷 (subnet) 으로분할 슈퍼넷팅 (supernetting) 여러개의서브넷주소를결합 The idea

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-PIR100은 UART 인터페이스를통하여인체모션감지 (PIR) 데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에적용할수있도록소형으로제작되었습니다. ( PIR: Pyroelectric

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

PowerPoint Template

PowerPoint Template SOFTWARE ENGINEERING Team Practice #3 (UTP) 201114188 김종연 201114191 정재욱 201114192 정재철 201114195 홍호탁 www.themegallery.com 1 / 19 Contents - Test items - Features to be tested - Features not to be tested

More information

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp l Y ( X g, Y g ) r v L v v R L θ X ( X c, Yc) W (a) (b) DC 12V 9A Battery 전원부 DC-DC Converter +12V, -12V DC-DC Converter 5V DC-AC Inverter AC 220V DC-DC Converter 3.3V Motor Driver 80196kc,PWM Main

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

온라인등록용 메뉴얼

온라인등록용 메뉴얼 WIZPLAT Corporation User Manual Gigabit LAN Port + USB3.0 HUB 사용자 설명서 이번에는 Gigabit LAN Port + USB3.0 HUB 를 구입해 주셔서 대단히 감사합니다. 이 사용설명서에는 중요한 주의 사항과 제품의 취급방법이 설명되어 있습니다. 사용하기 전에 설명서를 잘 읽어 보신 후 본 제품을 바르고

More information

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-THL100은 UART 인터페이스를통하여온도, 습도, 조도데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에쉽게적용할수있도록소형으로제작되었습니다. PC에서 OSTSen-THL100의온도,

More information