명세서 발명의명칭 무선 USB 시스템의데이터송수신방법 {DATA COMMUNICATION METHOD OF WIRELESS USB SYSTEM} 발명의상세한설명 기술분야 본발명은무선 USB 시스템의데이터송수신방법에관한것으로서, 보다상세하게는슬라이딩윈도우방식 을사용하여데이터를버스트모드로송수신할때슬라이딩윈도우의상태를인식비트벡터나송신비트벡터를통해간편하게계산하여데이터를송수신하는무선 USB 시스템의데이터송수신방법에관한것이다. 배경기술 일반적으로 USB(Universal Serial Bus: 범용직렬버스 ) 는직렬포트의일종으로기존의외부확장포트 ( 시 리얼혹은패러럴 ) 들의느린속도와제한된장치연결문제를해결하여, 오디오플레이어, 조이스틱, 키보드, 전화, 스캐너및프린터등과같은주변장치와컴퓨터사이를연결하는플러그앤플레이인터페이스이다. 이러한 USB 는모뎀, 프린터, 스캐너등의디바이스만을연결하기위해서사용되었던외부확장포트들과달리서로다른방식으로연결하던키보드, 모니터, 마우스, 프린터, 모뎀등주변기기들을한번에연결할수있 는것으로서, PC 본체에 USB 접속기를하나만갖추고있으면성형접속또는방사형형태로최대 127 대의주변장치를연결할수있도록한다. 또한, 최근에는컴퓨터시스템과외부주변장치를접속시키기위한 USB 케이블을제거하기위한노력으로, 초광대역 (Ultra Wide Band : UWB) 기술에기반하는무선 USB(wireless USB : WUSB) 가표준화되었다. 무선 USB 는최대 10 미터까지의거리에걸쳐 USB 2.0 표준에필적하는통신속도 ( 예를들어, 최대 480Mbps) 를지향하고있다. 이러한무선 USB 시스템은무선 USB 채널을생성하고채널을관리할수있는기능이있는무선 USB 호스트와무선 USB 호스트에연결하여데이터를송수신할수있는무선 USB 디바이스로구분된다. 무선 USB 호스 트는마스터의역할을수행하며디바이스는슬레이브역할을수행한다. 도 1 은일반적인무선 USB 시스템을간략하게나타낸블록구성도이다. 여기에도시된바와같이무선 USB 시스템은 CPU(10) 와, 버퍼디스크립터메모리 (20) 와, 버퍼메모리 (30) 와, 버퍼관리유닛 (40) 과, DMA 핸들러 (50) 와, 송수신제어부 (60) 를포함하여이루어진다. 이때, CPU(10) 는 RISC, DSP 등과기타커스텀하드웨어등이포함되고, 시스템버스 (BUS) 에의해주변기기 들을연결하여 CPU(10) 의어드레스등을적절한주변기기들로전달하여어드레스에의해지정되는데이터를 CPU(10) 와주변기기간에주고받을수있도록한다. 송수신제어부 (60) 는 MMC 패킷과제어명령을처리하여 MMC 패킷내의채널할당메시지 (WCTA) 를토대로엔드포인트별로송수신시간을관리할뿐만아니라송 / 수신된패킷에헤더를추가하거나제거하며송수신되 는패킷을일시적으로저장하여데이터의송수신을제어한다. 버퍼디스크립터메모리 (20) 는버퍼관리유닛 (40) 에서사용하는디스크립터를저장하는부분이고, 송수신데 이터는실질적으로데이터가저장되는버퍼메모리 (30) 로부터 DMA 핸들러 (50) 를통해송수신제어부 (60) 에
입출력된다. 이러한무선 USB 시스템에서데이터의송신은 MMC(Micro-scheduled Management Command) 내에 USB 토큰 (Token) 을전달 (broadcast) 하며, 데이터와핸드쉐이크단계에서데이터송수신 (data communication) 의방향과송신타입에따라적절하게 TDMA 타임슬롯을사용하는방법으로호스트 (Host) 는 트랜잭션그룹 (Transaction group) 의송신을시작할수있다. 이는 MMC 내에무선 USB 트랜잭션에대한토큰이포함되어있기때문에가능하며호스트는각각의트랜잭션그룹내에서각각의트랜잭션들이어떻게스케줄될지를결정한다. 도 2 는유선 USB 시스템과무선 USB 시스템의트랜잭션을나타낸그래프이다. 여기에서도시된바와같이무선 USB 에서의 MMC 내의토큰블록 (token block) 들은토큰정보, 디바이스, 엔드포인트, 방향등과, 트랜잭션의데이터와핸드쉐이크에대한타임슬롯의설명등과같은중요한정보들을 포함한다. 유선 USB 의경우트랜잭션은각각하나의토큰 (Token), 데이터패킷 (Data), 핸드쉐이크패킷 (Hndsk) 으로 구분되는반면, 무선 USB 는트랜잭션그룹내에여러개의데이터패킷과핸드쉐이크패킷을포함할수있다. 즉각각의엔드포인트별로버스트 (burst) 데이터를송신할수있게구성된다. 무선 USB 의트랜잭션그룹은도 3 에도시된바와같이토큰단계와, 데이터단계와핸드쉐이크단계로이루어지게되며이러한버스트모드데이터단계는모든무선 USB 의데이터단계에서적용되는규격으로써 Long packet preambles, MIFS (Minimum Inter Frame Spacing), SIFS (Short Inter Frame Spacing) 등과같은패킷구분문자오버헤드 (packet delimiter overhead) 들로인해, 무선 USB 는데이터단계동안여러개 의데이터패킷을보낼수있는것으로이러한특성은패킷구분문자, 인터패킷 (inter-packet) 갭을줄여주기때문에잠재적으로더효율적인송신이가능하게한다. 일반적으로무선 USB 는트랜스미터와리시버사이에데이터시퀀스동기 (data sequence synchronization) 를보장하기위한메카니즘을제공한다. 즉, 트랜스미터는데이터단계에하나이상의데이터패킷을송신할수있고, 리시버는핸드쉐이크단계동안에데이터가수신되었다는인식 (acknowledge) 정보를제공해야한 다. 데이터단계타임슬롯에서송신된패킷들은보통 DATA (or IDATA) 의 PID 필드를갖으며디바이스는싱글핸드쉐이크패킷으로 WDTCTA 토큰에응답할수있고, 데이터패킷내의무선 USB 헤더는데이터시 퀀스카운터로사용되는시퀀스번호필드 (Sequence Number field) 를갖고있다. 또한, 무선 USB 의데이터버스팅은오류없는데이터전달을위해간단한슬라이딩윈도우프로토콜을사용 하여트랜스미터는시퀀스오더를 1 씩증가하는데이터시퀀스번호를사용하며리시버에서수신되는데이터패킷에도같은오더링규격을사용한다. 도 4 는무선 USB 의데이터버스팅에대한일반적인데이터플로우모델을나타낸도면이다. 여기에도시된바와같이트랜스미터는최대패킷사이즈내에서논리적으로분리된 DX 에서 DX+Y 까지의데이터스트림을갖으며, 다음트랜잭션데이터단계에대한시퀀스번호가각데이터패킷과어떻게연결될지조절하는슬라이딩송신윈도우를갖고, 시퀀스번호를데이터버퍼세그먼트와순서가바뀌지않도록정 확히연결시키도록한다. 또한, 리시버는다음트랜잭션에서사용될데이터시퀀스번호를가리키는수신윈도우를갖으며, 트랜잭션의핸드쉐이크단계동안버스트인식정보를제공하고, 1 씩증가하는시퀀스번호순으로정확히수신된데이터를사용해야한다. 도 5 와도 6 은일반적인무선 USB 시스템의슬라이딩윈도우방식에의한데이터송수신과정을나타낸도면이다.
여기에도시된바와같이트랜스미터 (70) 와리시버 (80) 의송신비트벡터와인식비트벡터에대해초기값으로각각 10'b00_0000_1111 로설정하고, 시작시퀀스번호를 '0' 과, 최종시퀀스번호를 '3' 으로설정한다 (S10) (S12). 이때송신비트벡터와인식비트벡터의 10'b00_0000_1111 은 10 개의비트로이루어지며각각의비트의값 에따라슬라이딩윈도우의상태를나태는것으로시퀀스번호 0 부터시퀀스번호 3 까지의슬라이딩윈도우가열린상태를나타내고있다. 이러한상태에서트랜스미터 (70) 는데이터패킷 D0, D1, D2, D3 을송신하게되고 (S14), 리시버 (80) 는데이터패킷 D0, D1, D2, D3 을정상적으로수신할경우인식비트벡터를 10'b00_1111_0000 으로변경하고, 변 경된인식비트벡터와슬라이딩윈도우의상태를토대로다음슬라이딩윈도우의시작시퀀스번호를 '4' 와, 최종시퀀스번호를 '7' 로변경한다 (S16). 이후, 변경된인식비트벡터를트랜스미터 (70) 로전송한다 (S18). 한편, 인식비트벡터를수신한트랜스미터 (70) 는리시버 (80) 가정상적으로수신한것으로확인하여인식비 트벡터에따라전송비트벡터를 10'b00_1111_0000 으로변경하고이를토대로다음송신할슬라이딩윈도우의상태를찾아시작시퀀스번호를 '4' 와, 최종시퀀스번호를 '7' 로변경한다 (S20). 이후트랜스미터 (70) 는슬라이딩윈도우의상태에따라패킷 D4, D5, D6, D7 을송신하게되고 (S22), 리시버 (80) 는데이터패킷 D4, D5, D6, D7 을정상적으로수신할경우인식비트벡터를 10'b11_0000_0011 로변경 하고, 변경된인식비트벡터와슬라이딩윈도우의상태를토대로다음슬라이딩윈도우의시작시퀀스번호를 '8' 과, 최종시퀀스번호를 '1' 로변경한다 (S24). 그런다음, 변경된인식비트벡터를트랜스미터 (70) 로전송한다 (S26). 그리고, 인식비트벡터를수신한트랜스미터 (70) 는리시버 (80) 가정상적으로수신한것으로확인하여인식비트벡터에따라전송비트벡터를 10'b11_0000_0011 로변경하고이를토대로다음송신할슬라이딩윈도우의상태를찾아시작시퀀스번호를 '8' 과, 최종시퀀스번호를 '1' 로변경한다 (S28). 그런다음트랜스미터 (70) 는슬라이딩윈도우의상태에따라패킷 D8, D9, D0, D1 을송신한다 (S30). 그러나, 도 6 에도시된송수신과정패킷이정상적으로수신되지못한경우의송수신과정으로써패킷 D0, D1, D2, D3 을정상적으로송수신한후 (S40 S50) 트랜스미터 (70) 에서슬라이딩윈도우의상태에따라패킷 D4, D5, D6, D7 을송신하였으나 (S52), 리시버 (80) 에서패킷 D4 를정상적으로수신하지못하였을경우에는인식비트벡터를 10'b11_0001_0001 로변경하고, 변경된인식비트벡터와슬라이딩윈도우의상태를토대로다음슬라이딩윈도우의시작시퀀스번호를 '4' 와, 최종시퀀스번호를 '0' 으로변경한다 (S54). 그리고, 변경된인식비트벡터를트랜스미터 (70) 로전송하며 (S56). 이는패킷 D4 를정상적으로수신하지못함으로써슬라이딩윈도우가전진하지못하고수신하지못한 D4 를다시수신할수있도록인식비트벡터를변경하여전송함으로써트랜스미터 (70) 에서는송신비트벡터를 10'b11_0001_0001 로변경하고, 이를토대로다음송신할슬라이딩윈도우의상태를찾아다시송신할패킷 D4 가포함되도록시작시퀀스번호를 '4' 와, 최종시퀀스번호를 '0' 으로변경한다 (S58). 이후트랜스미터 (70) 는슬라이딩윈도우의상태에따라패킷 D4, D8, D9, D0 을전송한다 (S60). 이와같은과정을반복하면서트랜스미터 (70) 와리시버 (80) 는인식비트벡터를받으면서전송비트벡터및슬라이딩윈도우를기반으로버스트패킷을송신한다. 위에서설명한기술은본발명이속하는기술분야의배경기술을의미하며, 종래기술을의미하는것은아니다.
발명의내용 해결하고자하는과제 이와같이무선 USB 시스템의데이터송수신과정은버스트모드에서데이터를송수신할때엔드포인트의 최대시퀀스로구성된슬라이딩윈도우를기반으로이루어진다. 이때트랜스미터와리시버는데이터버스트동기를위해슬라이딩윈도우의시작시퀀스번호와최종시퀀스번호를정확하게알아야할필요성이있다. 본발명은상기와같은필요성을충족시키기위해창작된것으로서, 슬라이딩윈도우방식을사용하여데이터를버스트모드로송수신할때슬라이딩윈도우의상태를인식비트벡터나송신비트벡터를통해간편하게계 산하여데이터를송수신하는무선 USB 시스템의데이터송수신방법을제공하는데그목적이있다. 과제해결수단 본발명의일측면에따른무선 USB 시스템의데이터송수신방법은버스트모드에서슬라이딩윈도우방식으로데이터를송수신하는무선 USB 시스템의데이터송수신방법에있어서, 슬라이딩윈도우의상태를나 타내는비트벡터와비트벡터를좌로최대시퀀스만큼비트쉬프트한후서로연결하여제 1 레지스터에저장하는제 1 단계 ; 제 1 레지스터에저장된값을좌로 1 비트로테이트비트쉬프트하여제 2 레지스터에저장하는 제 2 단계 ; 제 2 레지스터에저장된값을비트반전시킨후제 1 레지스터에저장된값과비트논리곱하여제 3 레지스터에저장하는제 3 단계 ; 제 3 레지스터에서이전시작시퀀스번호의위치로부터시퀀스를증가하면서저장된값을비교하여최초로 1 이검출되는위치를최대시퀀스로나머지연산한값을시작시퀀스번호로설 정하는제 4 단계 ; 제 1 레지스터에저장된값을우로 1 비트비트쉬프트하여제 4 레지스터에저장하는제 5 단계 ; 제 4 레지스터에저장된값을비트반전시킨후제 1 레지스터에저장된값과비트논리곱하여제 5 레지스터 에저장하는제 6 단계 ; 및제 5 레지스터에서이전시작시퀀스번호와최대시퀀스를합산하여 1 을뺀위치로부터시퀀스를감소하면서저장된값을비교하여최초로 1 이검출되는위치를최대시퀀스로나머지연산한값을최종시퀀스번호로설정하는제 7 단계 ; 를포함하는것을특징으로한다. 본발명에서비트벡터는트랜스미터의송신비트벡터나리시버의인식비트벡터인것을특징으로한다. 본발명의제 5 단계에서우로 1 비트비트쉬프트한후제 4 레지스터의최상위비트는 '0' 을삽입하는것을특징으로한다. 본발명에서제 2 단계내지제 4 단계와제 5 단계내지제 7 단계는병렬로진행되는것을특징으로한다. 효과 상기한바와같이본발명은슬라이딩윈도우방식을사용하여데이터를버스트모드로송수신할때다음슬 라이딩윈도우의상태를인식비트벡터나송신비트벡터를통해간소화된로직으로짧은시간안에간편하게계산하여데이터를송수신할수있다. 발명의실시를위한구체적인내용 이하, 첨부된도면을참조하여본발명에따른무선 USB 시스템의데이터송수신방법의일실시예를설명한다. 이과정에서도면에도시된선들의두께나구성요소의크기등은설명의명료성과편의상과장되게도시 되어있을수있다. 또한, 후술되는용어들은본발명에서의기능을고려하여정의된용어들로서이는사용자, 운용자의의도또는관례에따라달라질수있다. 그러므로, 이러한용어들에대한정의는본명세서전반에걸친내용을토대로내려져야할것이다. 도 7 은본발명의일실시예에따른무선 USB 시스템의데이터송수신방법을설명하기위한흐름도이고, 도 8 은본발명의실시예에의한무선 USB 시스템의데이터송수신방법에의해리시버에서시퀀스번호를산 출하는과정을나타낸도면으로써도 5 의 S16 단계에서인식비트벡터를기반으로제 1 내지제 5 레지스터의
값의변화를구체적으로도시하였다. 먼저, 시작시퀀스번호를계산 (S70) 하기위해리시버 (80) 에서슬라이딩윈도우의상태를나타내는인식비트벡터와인식비트벡터를좌로최대시퀀스만큼본실시예에서는 10 비트만큼비트쉬프트한후서로연결하여제 1 레지스터 (A) 에저장한다 (S72). 이렇게제 1 레지스터 (A) 에저장된값을좌로 1 비트로테이트비트쉬프트하여제 2 레지스터 (B) 에저장한다 (S74). 즉, 최상위비트를최하위비트로이동시키면서좌로 1 비트만큼비트쉬프트시킨다. 이는시작시퀀스번호에해당하는인식비트벡터의비트값은항상 1 이고, 바로이전비트값은항상 0 이기때문에좌로비트쉬프트하여시작시퀀스번호를찾게된다. 이후제 2 레지스터 (B) 에저장된값을비트반전시킨후제 1 레지스터 (A) 에저장된값과비트논리곱하여제 3 레지스터 (C) 에저장한다 (S76). 이를연산식으로나타낼경우에는 C = A &!B 로나타낼수있다. 이렇게구해진제 3 레지스터 (C) 에서이전시작시퀀스번호즉, 본실시예에서는이전단계인 S12 단계에서의시작시퀀스번호인 '0' 의위치로부터시퀀스를증가하면서저장된값을비교하여최초로 1 이검출되는위치 를최대시퀀스로나머지연산한값을시작시퀀스번호로설정한다 (S78). 즉, 최초로 1 이검출된위치가 '4' 인경우최대시퀀스인 10 으로나눈나머지값을취하여시작시퀀스번호로설정한다. 이와같이시작시퀀스번호를계산 (S70) 하면서병렬로최종시퀀스번호를계산 (S80) 할수있다. 최종시퀀스번호를계산하기위해서는제 1 레지스터 (A) 에저장된값을우로 1 비트비트쉬프트하여제 4 레지 스터 (D) 에저장한다 (S82)(S84). 이때, 우로 1 비트비트쉬프트함에따라제 4 레지스터 (D) 의최상위비트에는 '0' 이삽입된다. 이는최종시퀀스번호에해당하는인식비트벡터의비트값은항상 1 이고, 바로다음비트값은항상 0 이기때 문에우로비트쉬프트하여최종시퀀스번호를찾게된다. 이후제 4 레지스터 (D) 에저장된값을비트반전시킨후제 1 레지스터 (A) 에저장된값과비트논리곱하여제 5 레지스터 (E) 에저장한다 (S86). 이를연산식으로나타낼경우에는 E = A &!D 로나타낼수있다. 이렇게구해진제 5 레지스터 (E) 에서이전시작시퀀스번호즉, 본실시예에서는이전단계인 S12 단계에서의 시작시퀀스번호와최대시퀀스를합산하여 1 을뺀위치즉, 시작시퀀스번호인 '0' 에최대시퀀스인 10 을합산하여 1 을뺀 '9' 의위치로부터시퀀스를감소하면서저장된값을비교하여최초로 1 이검출되는위치를 최대시퀀스로나머지연산한값을최종시퀀스번호로설정한다 (S88). 즉, 최초로 1 이검출된위치가 '7' 인경우최대시퀀스인 10 으로나눈나머지값을취하여최종시퀀스번호로 설정한다. 본실시예에서는리시버 (80) 에서인식비트벡터를기반으로시작시퀀스번호와최종시퀀스번호를설정하 는방법을설명하였으나, 트랜스미터 (70) 에서송신비트벡터를기반으로시작시퀀스번호와최종시퀀스번
호를설정하는방법도동일한방법으로계산된다. 이와같이정확하게계산된슬라이딩윈도우의시작시퀀스번호와최종시퀀스번호를간소화된로직으로짧은시간안에간편하게계산하여데이터를송수신할수있다. 본발명은도면에도시된실시예를참고로하여설명되었으나, 이는예시적인것에불과하며, 당해기술이속하는분야에서통상의지식을가진자라면이로부터다양한변형및균등한타실시예가가능하다는점을이해할것이다. 따라서본발명의기술적보호범위는아래의특허청구범위에의해서정하여져야할것이다. 특허청구의범위 청구항 1. 버스트모드에서슬라이딩윈도우방식으로데이터를송수신하는무선 USB 시스템의데이터송수신방법에 있어서, 상기슬라이딩윈도우의상태를나타내는비트벡터와상기비트벡터를좌로최대시퀀스만큼비트쉬프트한 후서로연결하여제 1 레지스터에저장하는제 1 단계 ; 상기제 1 레지스터에저장된값을좌로 1 비트로테이트비트쉬프트하여제 2 레지스터에저장하는제 2 단계 ; 상기제 2 레지스터에저장된값을비트반전시킨후상기제 1 레지스터에저장된값과비트논리곱하여제 3 레 지스터에저장하는제 3 단계 ; 상기제 3 레지스터에서이전시작시퀀스번호의위치로부터시퀀스를증가하면서저장된값을비교하여최 초로 1 이검출되는위치를상기최대시퀀스로나머지연산한값을시작시퀀스번호로설정하는제 4 단계 ; 상기제 1 레지스터에저장된값을우로 1 비트비트쉬프트하여제 4 레지스터에저장하는제 5 단계 ; 상기제 4 레지스터에저장된값을비트반전시킨후상기제 1 레지스터에저장된값과비트논리곱하여제 5 레 지스터에저장하는제 6 단계 ; 및 상기제 5 레지스터에서상기이전시작시퀀스번호와상기최대시퀀스를합산하여 1 을뺀위치로부터시퀀 스를감소하면서저장된값을비교하여최초로 1 이검출되는위치를상기최대시퀀스로나머지연산한값을최종시퀀스번호로설정하는제 7 단계 ; 를포함하는것을특징으로하는무선 USB 시스템의데이터송수신 방법. 청구항 2. 제 1 항에있어서, 상기비트벡터는트랜스미터의송신비트벡터나리시버의인식비트벡터인것을특징으로하는무선 USB 시스템의데이터송수신방법. 청구항 3. 제 1 항에있어서, 상기제 5 단계에서우로 1 비트비트쉬프트한후상기제 4 레지스터의최상위비트는 '0' 을삽입하는것을특징으로하는무선 USB 시스템의데이터송수신방법.
청구항 4. 제 1 항에있어서, 상기제 2 단계내지상기제 4 단계와상기제 5 단계내지상기제 7 단계는병렬로진행되는것을특징으로하는무선 USB 시스템의데이터송수신방법. 도면의간단한설명 도 1 은일반적인무선 USB 시스템을간략하게나타낸블록구성도이다. 도 2 는유선 USB 시스템과무선 USB 시스템의트랜잭션을나타낸그래프이다. 도 3 은일반적인무선 USB 의트랜잭션그룹을나타낸그래프이다. 도 4 는무선 USB 의데이터버스팅에대한일반적인데이터플로우모델을나타낸도면이다. 도 5 와도 6 은무선 USB 시스템의데이터송수신방법을설명하기위한흐름도이다. 도 7 은본발명의실시예에의한무선 USB 시스템의데이터송수신방법을설명하기위한흐름도이다. 도 8 은본발명의실시예에의한무선 USB 시스템의데이터송수신방법에의해리시버에서시퀀스번호를 산출하는과정을나타낸도면이다. - 도면의주요부분에대한부호의설명 - 10 : CPU 20 : 버퍼디스크립터메모리 30 : 버퍼메모리 40 : 버퍼관리유닛 50 : DMA 핸들러 60 : 송수신제어부 70 : 트랜스미터 80 : 리시버 도면 도면 1
도면 2 도면 3
도면 4
도면 5
도면 6
도면 7
도면 8