KR101088376B1 - Usb 호스트와 usb 디바이스간의 통신 방법 및 이를위한 장치 - Google Patents

Usb 호스트와 usb 디바이스간의 통신 방법 및 이를위한 장치 Download PDF

Info

Publication number
KR101088376B1
KR101088376B1 KR1020060134985A KR20060134985A KR101088376B1 KR 101088376 B1 KR101088376 B1 KR 101088376B1 KR 1020060134985 A KR1020060134985 A KR 1020060134985A KR 20060134985 A KR20060134985 A KR 20060134985A KR 101088376 B1 KR101088376 B1 KR 101088376B1
Authority
KR
South Korea
Prior art keywords
usb
data
packet
host
delete delete
Prior art date
Application number
KR1020060134985A
Other languages
English (en)
Other versions
KR20080060642A (ko
Inventor
김민수
김형석
김정욱
공지영
예경욱
채종우
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060134985A priority Critical patent/KR101088376B1/ko
Priority to US11/852,569 priority patent/US8117365B2/en
Priority to CN200710163044.6A priority patent/CN101212480B/zh
Publication of KR20080060642A publication Critical patent/KR20080060642A/ko
Application granted granted Critical
Publication of KR101088376B1 publication Critical patent/KR101088376B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 USB 호스트와 USB 디바이스 간의 인터페이스 방법에 관한 것으로, 본 발명에 따르면 USB 호스트와 USB 디바이스가 USB 버스 인터페이스 대신 네트워크 프로토콜에 따라 패킷을 처리하는 모듈을 구비함으로써, USB 호스트와 USB 디바이스는 USB 케이블을 사용하지 않고 거리에 따른 제한 없이 통신할 수 있다.

Description

USB 호스트와 USB 디바이스간의 통신 방법 및 이를 위한 장치{Method and apparatus for communication between USB host and USB device}
도 1은 일반적인 USB 통신 방법을 설명하기 위한 도면,
도 2는 본 발명에 따른 USB 호스트 및 USB 디바이스의 구조를 나타낸 도면,
도 3은 본 발명에 따라 USB 호스트가 USB 디바이스에게 데이터를 전송하는 과정을 나타낸 순서도,
도 4는 본 발명에 따라 USB 호스트가 USB 디바이스로부터 데이터를 수신하는 과정을 나타낸 순서도,
도 5는 본 발명에 따라 USB 디바이스가 USB 호스트로부터 데이터를 수신하는 과정을 나타낸 순서도,
도 6은 본 발명에 따라 USB 디바이스가 USB 호스트에게 데이터를 전송하는 과정을 나타낸 순서도,
도 7은 본 발명에 따라 USB 디바이스와 USB 호스트 간에 전송되는 패킷의 구조를 나타낸 도면이다.
본 발명은 USB 통신 방법에 관한 것으로, 더욱 상세하게는 USB 호스트와 USB디바이스 간의 인터페이스에 관한 것이다.
USB(Universal Serial Bus)는 마우스, 키보드, 프린터, 모뎀, 스피커 등과 같은 컴퓨터 주변기기와 컴퓨터를 연결하기 위한 인터페이스의 규격화하기 위해 개발된 직렬 포트의 일종으로, USB를 이용하면 디바이스의 설치와 제거를 쉽고, 빠르게 할 수 있어 현재 대부분의 PC 표준 장비로 채택되고 있다.
도 1은 일반적인 USB 통신 방법을 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, USB 시스템은 USB 호스트와 USB 디바이스로 구성된다. USB 호스트(이하 호스트라고 칭함)는 일반적으로 PC이며 USB 디바이스(이하 디바이스라고 칭함)는 USB 인터페이스를 가진 주변 기기이다. 호스트는 Client S/W, USB System S/W, USB Bus Interface로 구성되고, 디바이스는 Function, USB Logical Device, USB Bus Interface로 구성되며, 호스트와 디바이스는 USB 케이블을 통해서 연결된다.
디바이스의 펑션(Function)을 실제로 사용하는 것은 호스트의 Client S/W이다. Client S/W가 Function을 사용하기 위하여 발생시키는 모든 데이터의 흐름을 살펴보면 다음과 같다. Client S/W가 디바이스의 Function을 사용하기 위하여 발생시킨 데이터는 System S/W, Host Controller를 거쳐서 USB 케이블을 통하여 Device에 있는 USB 버스 인터페이스로 전달된다. 이 데이터는 USB Bus Interface에서 USB Logical Device를 거쳐서 펑션에 전달되고 Function은 클라이언트 소프트웨어가 전송한 데이터를 처리하게 된다. 펑션이 클라이언트 소프트웨어에게 전송하는 데이터 는 클라이언트 소프트웨어가 전송한 데이터의 역순으로 전달된다.  
디바이스는 제공하는 기능에 따라서 특정 USB Class에 속하게 된다. 예를 들어, 디바이스는 Printer, Mass Storage, HID등과 같은 Class에 속할 수 있다. 클라이언트 소프트웨어와 Device의 Function사이에 주고받는 데이터의 내용과 형식은 Device가 어떠한 USB Class에 속하는가에 의해 결정되며 USB Class Specification에 모두 정의되어 있다. 클라이언트 소프트웨어와 하위 계층에 있는 USB System S/W는 USB Class Specification에서 정의된 형태의 데이터를 주고 받는다. 마찬가지로 Device의 Function과 USB Logical Device도 USB Class에서 정의한 형태의 데이터를 주고 받는다. 이 데이터는 실제로는 USB 케이블을 통해 전송되지만, 논리적으로는 호스트의 클라이언트 소프트웨어와 디바이스의 펑션 간에 송수신되는 것으로 볼 수 있는데, 이 때의 전송 통로를 파이프라고 하며, USB 디바이스에서 파이프의 종단을 엔드포인트라고 한다.
디바이스가 USB 케이블을 통하여 호스트에 연결되면 Enumeration이 발생한다. Enumeraion은 호스트가 디바이스의 Endpoint type과 개수, 제품 종류 등을 결정하는 과정인데, 이 과정에서 호스트는 디바이스에게 주소를 할당하고, Device Descriptor 및 Configuration Descriptor를 디바이스로부터 가져와서 데이터를 송수신할 수 있도록 준비한다. 이러한 과정은 호스트의 시스템 소프트웨어와 디바이스의 USB 논리 디바이스(엔트포인트 0)간에 데이터를 송수신함으로써 수행되는데, 이 때 송수신되는 데이터를 셋업 데이터(Setup Data)라고 한다. 또한, 셋업 데이터를 송수신하기 위한 논리적인 전송 통로를 디폴트 파이프라고 한다.
결국, 클라이언트 소프트웨어와 펑션 간에 송수신하는 데이터 및 시스템 소프트웨어와 USB 논리 디바이스 간에 송수신되는 셋업 데이터는 논리적으로 파이트를 통해 전송되지만, 물리적으로는 모두 USB 케이블을 통해 전송되는데, USB 케이블의 물리적 한계로 인하여 호스트와 디바이스는 약 5미터 이내에서만 통신이 가능하다. 따라서, 사용자는 호스트와 인접한 디바이스만을 사용해야 하는 문제가 있다.
본 발명은 USB 호스트와 USB 디바이스 간에 거리의 제한 없이 데이터를 송수신하기 위한 장치 및 방법을 제공하는데 그 목적이 있다.
이러한 목적을 달성하기 위한 본 발명은, USB(Universal Serial Bus) 호스트가 USB 디바이스와 통신하는 방법에 있어서, 시스템 소프트웨어가 호스트 컨트롤러에게 전송하는 데이터를 이용하여 외부 네트워크에서 사용되는 포맷의 패킷을 생성하는 단계; 및 상기 생성된 패킷을 상기 네트워크를 통해 상기 USB 디바이스에게 전송하는 단계를 포함하는 것을 특징으로 한다.
상기 데이터는 셋업 데이터(Setup data) 또는 상기 USB 호스트의 클라이언트 소프트웨어가 상기 USB 디바이스의 펑션(Function)에게 전송한 데이터일 수 있다.
상기 패킷은 전송 타입에 관한 정보, 엔트 포인트의 주소, 전송 방향에 관한 정보 및 디바이스 주소 중 적어도 하나를 포함할 수 있다.
상기 데이터는 상기 USB 호스트가 서스펜드 상태(suspended state)임을 나타내는 정보 또는 상기 USB 디바이스를 리셋하기 위한 정보를 포함할 수 있다.
상기 네트워크는 무선랜, 이더넷, 토큰링 중 하나일 수 있다.
또한, 본 발명은 상기 통신 방법을 실행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
또한, 본 발명은 USB 호스트가 USB 디바이스와 통신하는 방법에 있어서, 외부 네트워크를 통해 상기 USB 디바이스로부터 상기 네트워크에서 사용되는 패킷을 수신하는 단계; 상기 수신된 패킷으로부터 시스템 소프트웨어가 인지할 수 있는 데이터를 추출하는 단계; 및 상기 추출된 데이터를 상기 시스템 소프트웨어에게 전달하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은 USB 디바이스와 통신하는 USB 호스트 장치에 있어서, 외부 네트워크를 통해 상기 USB 디바이스와 패킷을 송수신하는 네트워크프로토콜부; 및 시스템 소프트웨어가 호스트 컨트롤러에게 전송하는 데이터를 이용하여 상기 네트워크프로토콜부가 전송할 패킷의 페이로드를 생성하고, 상기 네트워크프로토콜부가 수신한 패킷의 페이로드에서 상기 시스템 소프트웨어가 인지할 수 있는 데이터를 추출하여 상기 시스템 소프트웨어에게 전달하는 호스트인터페이스부를 포함하는 것을 특징으로 한다.
상기 데이터는 셋업 데이터(Setup data) 또는 USB 디바이스의 펑션(Function)과 상기 USB 호스트의 클라이언트 소프트웨어 간에 송수신하는 데이터일 수 있다.
또한, 본 발명은 USB 디바이스가 USB 호스트와 통신하는 방법에 있어서, USB 논리 디바이스(USB Logical Device)가 USB 버스 인터페이스에게 전송하는데이터를 이용하여 외부 네트워크에서 사용되는 포맷의 패킷을 생성하는 단계; 및 상기 생성된 패킷을 상기 네트워크를 통해 상기 USB 호스트에게 전송하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은, USB 디바이스가 USB 호스트와 통신하는 방법에 있어서, 외부 네트워크를 통해 상기 USB 호스트로부터 상기 네트워크에서 사용되는 패킷을 수신하는 단계; 상기 수신된 패킷으로부터 USB 논리 디바이스(USB Logical Device)가 인지할 수 있는 데이터를 추출하는 단계; 및 상기 추출된 데이터를 상기 USB 논리 디바이스에게 전달하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은 USB 호스트와 통신하는 USB 디바이스에 있어서, 외부 네트워크를 통해 상기 USB 호스트와 패킷을 송수신하는 네트워크프로토콜부; 및 USB 논리 디바이스(USB Logical Device)가 USB 버스 인터페이스에게 전송하는 데이터를 이용하여 상기 네트워크프로토콜부가 전송할 패킷의 페이로드를 생성하고, 상기 네트워크프로토콜부가 수신한 패킷의 페이로드에서 상기 USB 논리 디바이스가 인지할 수 있는 데이터를 추출하여 상기 USB 논리 디바이스에게 전달하는 디바이스인터페이스부를 포함하는 것을 특징으로 한다.
이하에서 첨부된 도면을 참조하여, 본 발명의 바람직한 실시예를 상세히 설명한다.
도 2는 본 발명에 따른 USB 호스트 및 USB 디바이스의 구조를 나타낸 도면이 다.
도 2에 도시된 바와 같이, 본 발명에 따른 호스트(250)와 디바이스(280)는 USB 버스 인터페이스를 포함하지 않으며, USB 케이블이 아닌 네트워크(206)를 통해서 통신한다.
본 발명에 따른 호스트(250)는 호스트 인터페이스부(203) 및 네트워크 프로토콜부(205)를 포함한다. 호스트 인터페이스부(203)는 클라이언트 소프트웨어(201)가 펑션(211)에게 전송하는 데이터 및 시스템 소프트웨어가 USB 논리 디바이스에게 전송하는 데이터(셋업 데이터)를 시스템 소프트웨어로부터 수신하여 네트워크 패킷의 페이로드를 생성한다.
일반적으로, USB 시스템에서 호스트와 디바이스 간에 송수신하는 USB 트래픽에는 특정의 정보들이 포함되어 있고, 이러한 정보들은 클라이언트 소프트웨어(201), 시스템 소프트웨어(202), 펑션(211) 및 논리 디바이스(210)에 의해 참조된다. 이러한 정보에는 전송 타입에 관한 정보, 엔트 포인트의 주소, 전송 방향(Direction)에 관한 정보, 디바이스 주소 등이 있다. 여기서, 전송 타입은 Bulk, Isochronous, Interrupt, Control과 같은 종류가 있으며, 전송 방향은 In, Out이 있다. 보다 상세한 설명은 USB 규격에 나와있으므로 여기서는 생략한다.
종래 기술에 따르면, 호스트에 포함된 호스트 컨트롤러가 시스템 소프트웨어로부터 수신한 데이터를 이용하여 USB 케이블을 통해 전송되는 형식(이하 링크 레이어 포맷이라고 칭함)의 패킷을 생성할 때 이러한 정보들을 삽입하는데, 본 발명에 따른 호스트(250)에는 호스트 컨트롤러가 존재하지 않으므로 본 발명에 따른 호 스트 인터페이스(203)가 호스트 컨트롤러의 이러한 기능을 대신하여 수행해야 한다. 즉, 호스트 인터페이스(203)가 생성하는 네트워크 패킷의 페이로드에는 전송 타입에 관한 정보, 엔트 포인트의 주소, 전송 방향(Direction)에 관한 정보, 디바이스 주소 등이 포함된다.
또한, 호스트 인터페이스부(203)는 루트 허브(Root Hub)의 역할도 수행해야 한다. 루트 허브는 원래 호스트 컨트롤러에 포함된 허브로서, 전기적 신호(Electrical Signal)를 이용하여 서스펜드 신호 또는 포트 리셋 신호 등을 디바이스에게 전송한다. 서스펜드 신호는 호스트가 서스펜드된(suspeded) 상태임을 알리는 신호이고, 포트 리셋 신호는 디바이스를 초기화시키기 위한 신호이다. 본 발명에 따른 호스트(250)는 호스트 컨트롤러를 구비하지 않으므로, 전기적 신호를 이용하여 이러한 신호를 디바이스(280)에게 전달할 수 없다. 따라서, 호스트 인터페이스부(203)는 서스펜드 신호 또는 포트 리셋 신호에 해당하는 네트워크 패킷의 페이로드를 생성한다. 이러한 페이로드가 포함된 패킷은 후술할 디바이스 인터페이스(209)에 의해 해석될 것이다. 또한, 호스트 인터페이스부(203)는 디바이스(280)로부터 수신된 패킷의 페이로드에서 시스템 소프트웨어(202)가 인지할 수 있는 데이터를 추출하여 시스템 소프트웨어(202)에게 전달한다. 이 때 추출되는 데이터는 셋업 데이터 또는 클라이언트(201)와 펑션(211) 간에 송수신하는 데이터이다.
본 발명에서 클라이언트 소프트웨어(201), 시스템 소프트웨어(202), 펑션(211) 및 논리 디바이스(210)는 종래 기술로부터 변경되지 않으므로, 이들은 네트워크 패킷의 페이로드 포맷을 해석할 수 없기 때문에, 호스트 인터페이스부(203) 가 필요한 데이터를 추출한 후, 시스템 소프트웨어에게 전달하는 것이다. 즉, 시스템 소프트웨어(202)는 종래 기술에서와 같이 호스트 컨트롤러와 통신할 때와 동일하게 동작한다.
호스트 인터페이스(203)가 네트워크 프로토콜부(205)로부터 전달받는 네트워크 패킷의 페이로드는 전송 타입에 관한 정보, 엔트 포인트의 주소, 전송 방향(Direction)에 관한 정보, 디바이스 주소 외에도 이전에 호스트로부터 수신된 패킷이 성공적으로 수신되었는지의 여부를 나타내는 정보를 더 포함할 수 있다.
네트워크 프로토콜부(205)는 호스트 인터페이스부(203)가 생성한 페이로드를 이용하여 네트워크(206)에서 사용되는 패킷을 생성한 후, 네트워크(206)를 통해 디바이스(280)에게 전송한다. 이 때, 네트워크(206)는 무선랜, 이더넷, 토큰링 등이 될 수 있으며, 네트워크 프로토콜부(205)는 네트워크의 종류에 따라 IP, IPX, X.25 등의 프로토콜을 이용하여 패킷을 전송한다.
한편, 본 발명에 따른 디바이스(280)는 디바이스 인터페이스부(209) 및 네트워크 프로토콜부(207)을 포함한다. 디바이스 인터페이스부(209)는 USB 논리 디바이스(210)가 USB 버스 인터페이스에게 전송하는 데이터를 이용하여 네트워크 프로토콜부(207)가 전송할 패킷의 페이로드를 생성하고, 네트워크 프로토콜부(207)가 수신한 패킷의 페이로드에서 USB 논리 디바이스(210)가 인지할 수 있는 데이터를 추출하여 상기 USB 논리 디바이스(209)에게 전달한다.
즉, 호스트 인터페이스부(203)에서와 마찬가지로, 디바이스 인터페이스부(209)가 USB 논리 디바이스(210)와 주고받는 데이터는 셋업 데이터 또는 클라이 언트(201)와 펑션(211) 사이에서 송수신되는 데이터이다. 또한, 서스펜드 신호 또는 포트 리셋 신호에 해당하는 데이터일 수도 있을 것이다.
디바이스 인터페이스부(209)가 처리하는 네트워크 패킷의 페이로드는 전송 타입에 관한 정보, 엔트 포인트의 주소, 전송 방향(Direction)에 관한 정보, 디바이스 주소 등을 포함하는데, 호스트(250)에게 전송하기 위한 패킷의 페이로드는 이 외에도 이전에 호스트로부터 수신된 패킷이 성공적으로 수신되었는지의 여부를 나타내는 정보를 더 포함할 수 있다.
네트워크 프로토콜부(207)는 호스트(250)의 네트워크 프로토콜부(205)와 동일한 기능을 수행한다. 즉, 디바이스 인터페이스부(209)가 생성한 페이로드를 이용하여 네트워크 패킷을 생성한 후, 네트워크(206)를 통해 호스트(250)에게 전송하고, 또한 호스트(250)로부터 네트워크 패킷을 수신하여 그 패킷의 페이로드를 디바이스 인터페이스부(209)에게 전달한다.
호스트 인터페이스부(203)와 디바이스 인터페이스부(209)는 소프트웨어는 물론 하드웨어로도 구현될 수 있을 것이다.
도 3은 본 발명에 따라 USB 호스트가 USB 디바이스에게 데이터를 전송하는 과정을 나타낸 순서도이다.
단계 310에서, 호스트 인터페이스는 시스템 소프트웨어가 호스트 컨트롤러에게 전송하는 데이터를 수신한다. 즉, 본 발명에 따른 호스트는 호스트 컨트롤러를 구비하고 있지 않으므로, 시스템 소프트웨어가 호스트 컨트롤러에게 보낸 데이터를 본 발명에 따른 호스트 인터페이스가 대신 수신하는 것이다.
이 때, 시스템 소프트웨어가 호스트 컨트롤러에게 전송하는 데이터란, 호스트의 시스템 소프트웨어와 디바이스의 USB 논리 디바이스 간에 주고 받는 데이터, 즉 셋업 데이터일 수도 있고, USB Class 규격에서 정의하는 데이터, 즉 호스트의 클라이언트 소프트웨어와 디바이스의 펑션 간에 주고 받는 데이터일 수도 있다.
또한, 호스트가 서스펜드 상태(suspended state)임을 나타내는 정보 또는 상기 USB 디바이스를 리셋하기 위한 정보를 포함하는 데이터일 수도 있다.
단계 320에서, 호스트 인터페이스는 시스템 소프트웨어로부터 수신한 데이터를 이용하여 네트워크를 통해 전송할 패킷의 페이로드를 생성한다. 이 페이로드에는 전송 타입에 관한 정보, 엔트 포인트의 주소, 전송 방향(Direction)에 관한 정보, 디바이스 주소 등이 포함될 수 있다.
단계 330에서, 호스트의 네트워크 프로토콜부는 네트워크에서 사용되는 포맷의 패킷을 생성한다.
단계 340에서, 호스트의 네트워크 프로토콜부는 네트워크 프로토콜에 따라 생성된 패킷을 디바이스에게 전송한다.
도 4는 본 발명에 따라 USB 호스트가 USB 디바이스로부터 데이터를 수신하는 과정을 나타낸 순서도이다.
단계 410에서, 호스트의 네트워크 프로토콜부는 네트워크를 통해 디바이스로부터 패킷을 수신하고, 수신된 패킷의 페이로드를 호스트 인터페이스에게 전달한다.
단계 420에서, 호스트 인터페이스는 패킷의 페이로드를 분석하여 시스템 소 프트웨어가 인지할 수 있는 데이터를 추출한다.
추출된 데이터는 호스트의 시스템 소프트웨어와 디바이스의 USB 논리 디바이스 간에 주고 받는 데이터, 즉 셋업 데이터일 수도 있고, USB Class 규격에서 정의하는 데이터, 즉 호스트의 클라이언트 소프트웨어와 디바이스의 펑션 간에 주고 받는 데이터일 수도 있다.
한편, 수신된 패킷의 페이로드는 전송 타입에 관한 정보, 엔트 포인트의 주소, 전송 방향(Direction)에 관한 정보, 디바이스 주소 외에도 이전에 디바이스에게 전송된 패킷이 성공적으로 수신되었는지의 여부를 나타내는 정보를 더 포함할 수 있다.
단계 430에서, 호스트 인터페이스는 추출한 데이터를 시스템 소프트웨어에게 전달한다.
도 5는 본 발명에 따라 USB 디바이스가 USB 호스트로부터 데이터를 수신하는 과정을 나타낸 순서도이다.
단계 510에서, 디바이스의 네트워크 프로토콜부는 네트워크를 통해 호스트로부터 패킷을 수신하고, 패킷의 페이로드를 디바이스 인터페이스부에게 전달한다.
단계 520에서, 디바이스 인터페이스부는 패킷의 페이로드를 분석하여 USB 논리 디바이스가 인지할 수 있는 데이터를 추출한다.
단계 530에서, 디바이스 인터페이스부는 추출된 데이터를 USB 논리 디바이스에게 전달한다.
도 6은 본 발명에 따라 USB 디바이스가 USB 호스트에게 데이터를 전송하는 과정을 나타낸 순서도이다.
단계 610에서, 디바이스 인터페이스부는 USB 논리 디바이스가 USB 버스 인터페이스에게 전송한 데이터를 수신한다. 본 발명에 따른 디바이스는 USB 버스 인터페이스를 구비하지 않기 때문에, 본 발명에 따른 디바이스 인터페이스부가 USB 버스 인터페이스를 대신하여 데이터를 수신하는 것이다.
단계 620에서, 디바이스 인터페이스부는 수신된 데이터를 이용하여 호스트에게 전송할 네트워크 패킷의 페이로드를 생성한다. 이 때, 페이로드에는 전송 타입에 관한 정보, 엔트 포인트의 주소, 전송 방향(Direction)에 관한 정보, 디바이스 주소, 이전에 디바이스에게 전송된 패킷이 성공적으로 수신되었는지의 여부를 나타내는 정보 등을 포함할 수 있다.
단계 630에서, 디바이스의 네트워크 프로토콜부는 네트워크에서 사용되는 포맷의 패킷을 생성한다.
단계 640에서, 디바이스의 네트워크 프로토콜부는 생성된 패킷을 네트워크를 통해 호스트에게 전송한다.
도 7은 본 발명에 따라 USB 디바이스와 USB 호스트 간에 전송되는 패킷의 구조를 나타낸 도면이다.
여기서는 이더넷을 통해 TCP/IP 프로토콜을 사용하여 전송되는 패킷을 가정하였다. 네트워크를 통해 송수신되는 패킷(710)의 페이로드(720)는 USB 트래픽인데, 헤더(725)와 페이로드(728)로 구성된다. 패킷(710)의 페이로드(720)는 호스트의 호스트 인터페이스부와 디바이스의 디바이스 인터페이스부가 처리할 수 있는 포 맷을 가지는데, 본 실시예에서는 헤더(725)에 시퀀스 번호를 나타내는 필드, 파이프 정보를 나타내는 필드, 페이로드(728)의 길이를 나타내는 필드가 포함되는 것으로 가정하였다. 페이로드(728)의 Control Request 필드는 셋업 데이터가 기록되는 필드이며, 버퍼는 그 외의 데이터가 기록되는 필드이다.
도시된 바와 같이, 파이프의 정보를 나타내는 필드(730)는 전송 타입에 관한 정보(731), 엔트 포인트의 주소(732), 전송 방향에 관한 정보(733), 디바이스 주소(734) 및 패킷 성공 여부를 나타내는 상태 정보(735)를 포함할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으 로 해석되어야 할 것이다.
본 발명에 따르면, USB 디바이스는 USB 케이블이 없어도 네트워크를 통해 호스트와 연결이 가능하게 되므로, 거리의 제한에 영향을 받지 않는다. 또한, 본 발명의 구현을 위해 USB 호스트의 클라이언트 소프트웨어 및 시스템 소프트웨어를 수정할 필요가 없으며, 마찬가지로 USB 호스트의 펑션이나 USB Logical Device를 변경할 필요가 없다.

Claims (28)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. USB 디바이스가 USB 호스트와 통신하는 방법에 있어서,
    USB 논리 디바이스(USB Logical Device)가 USB 버스 인터페이스에게 전송하는데이터를 이용하여 외부 네트워크에서 사용되는 포맷의 패킷을 생성하는 단계; 및
    상기 생성된 패킷을 상기 네트워크를 통해 상기 USB 호스트에게 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  18. 제17항에 있어서,
    상기 데이터는 셋업 데이터(Setup data) 또는 상기 USB 디바이스의 펑션(Function)이 상기 USB 호스트의 클라이언트 소프트웨어에게 전송한 데이터임을 특징으로 하는 방법.
  19. 제17항에 있어서,
    상기 패킷은 전송 타입에 관한 정보, 엔트 포인트의 주소, 전송 방향에 관한 정보, 디바이스 주소 및 상기 USB 디바이스에서의 패킷 수신 성공 여부를 나타내는 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  20. 제17항에 있어서,
    상기 네트워크는 무선랜, 이더넷, 토큰링 중 하나인 것을 특징으로 하는 방법.
  21. 제17항 내지 제20항 중 어느 한 항에 의한 방법을 실행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  22. USB 디바이스가 USB 호스트와 통신하는 방법에 있어서,
    외부 네트워크를 통해 상기 USB 호스트로부터 상기 네트워크에서 사용되는 패킷을 수신하는 단계;
    상기 수신된 패킷으로부터 USB 논리 디바이스(USB Logical Device)가 인지할 수 있는 데이터를 추출하는 단계; 및
    상기 추출된 데이터를 상기 USB 논리 디바이스에게 전달하는 단계를 포함하는 것을 특징으로 하는 방법.
  23. 제22항에 있어서,
    상기 데이터는 셋업 데이터(Setup data) 또는 상기 USB 호스트의 클라이언트 소프트웨어가 상기 USB 디바이스의 펑션(Function)에게 전송한 데이터임을 특징으로 하는 방법.
  24. 제22항에 있어서,
    상기 패킷은 전송 타입에 관한 정보, 엔트 포인트의 주소, 전송 방향에 관한 정보 및 디바이스 주소 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  25. 제22항에 있어서,
    상기 데이터는 상기 USB 호스트가 서스펜드 상태(suspended state)임을 나타내는 정보 또는 상기 USB 디바이스를 리셋하기 위한 정보를 포함하는 것을 특징으로 하는 방법.
  26. 제22항에 있어서,
    상기 네트워크는 무선랜, 이더넷, 토큰링 중 하나인 것을 특징으로 하는 방법.
  27. 제22항 내지 제26항 중 어느 한 항에 의한 방법을 실행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  28. USB 호스트와 통신하는 USB 디바이스에 있어서,
    외부 네트워크를 통해 상기 USB 호스트와 패킷을 송수신하는 네트워크프로토콜부; 및
    USB 논리 디바이스(USB Logical Device)가 USB 버스 인터페이스에게 전송하는 데이터를 이용하여 상기 네트워크프로토콜부가 전송할 패킷의 페이로드를 생성하고, 상기 네트워크프로토콜부가 수신한 패킷의 페이로드에서 상기 USB 논리 디바이스가 인지할 수 있는 데이터를 추출하여 상기 USB 논리 디바이스에게 전달하는 디바이스인터페이스부를 포함하는 것을 특징으로 하는 장치.
KR1020060134985A 2006-12-27 2006-12-27 Usb 호스트와 usb 디바이스간의 통신 방법 및 이를위한 장치 KR101088376B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020060134985A KR101088376B1 (ko) 2006-12-27 2006-12-27 Usb 호스트와 usb 디바이스간의 통신 방법 및 이를위한 장치
US11/852,569 US8117365B2 (en) 2006-12-27 2007-09-10 Method and apparatus for communication between universal serial bus (USB) host and USB device
CN200710163044.6A CN101212480B (zh) 2006-12-27 2007-09-29 在usb主机和usb装置之间通信的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060134985A KR101088376B1 (ko) 2006-12-27 2006-12-27 Usb 호스트와 usb 디바이스간의 통신 방법 및 이를위한 장치

Publications (2)

Publication Number Publication Date
KR20080060642A KR20080060642A (ko) 2008-07-02
KR101088376B1 true KR101088376B1 (ko) 2011-12-01

Family

ID=39585613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060134985A KR101088376B1 (ko) 2006-12-27 2006-12-27 Usb 호스트와 usb 디바이스간의 통신 방법 및 이를위한 장치

Country Status (3)

Country Link
US (1) US8117365B2 (ko)
KR (1) KR101088376B1 (ko)
CN (1) CN101212480B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264341B2 (en) * 2009-07-24 2016-02-16 Broadcom Corporation Method and system for dynamic routing and/or switching in a network
KR101749851B1 (ko) * 2013-05-16 2017-06-21 인텔 코포레이션 디바이스가 디폴트 상태로 천이하는 것을 표시하는 프로토콜 적응 계층(pal) 통신의 장치, 시스템 및 방법
US9612991B2 (en) * 2013-10-10 2017-04-04 Nokia Technologies Oy Connector interface pin mapping
US9529758B1 (en) * 2015-10-05 2016-12-27 Nanoport Technology Inc. Multiple port configuration
CN108664441B (zh) * 2018-07-13 2020-03-31 重庆爱思网安信息技术有限公司 Usb只读控制系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223119A1 (en) * 2004-03-31 2005-10-06 Keys John S Operating a remote USB host controller
US20050228933A1 (en) * 2004-04-02 2005-10-13 Uli Electronic Inc. Remote control method and apparatus for USB host

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389029B1 (en) * 1998-11-10 2002-05-14 Nortel Networks Limited Local area network incorporating universal serial bus protocol
KR100679023B1 (ko) * 2004-11-03 2007-02-05 삼성전자주식회사 조정자 기반 무선 네트워크에서 복수의 무선 범용 직렬버스 호스트를 지원하는 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223119A1 (en) * 2004-03-31 2005-10-06 Keys John S Operating a remote USB host controller
US20050228933A1 (en) * 2004-04-02 2005-10-13 Uli Electronic Inc. Remote control method and apparatus for USB host

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문1:정보과학회논문지-기술교육

Also Published As

Publication number Publication date
US8117365B2 (en) 2012-02-14
US20080162756A1 (en) 2008-07-03
CN101212480A (zh) 2008-07-02
KR20080060642A (ko) 2008-07-02
CN101212480B (zh) 2015-01-14

Similar Documents

Publication Publication Date Title
JP5917474B2 (ja) 統合マルチ転送媒体コネクタを利用するシステム及びルーティング方法
JP5103371B2 (ja) 長い伝送遅延の存在下でusb大容量記憶装置の性能を改善する方法及び装置
AU2007278728B2 (en) Method and apparatus for distributing usb hub functions across a network
KR101088376B1 (ko) Usb 호스트와 usb 디바이스간의 통신 방법 및 이를위한 장치
WO2011088154A2 (en) Multi-media usb data transfer over digital interaction interface for video and audio (diiva)
JP4432385B2 (ja) データ中継システム
US7831748B2 (en) Extended USB protocol with selective broadcast mechanism
US6968462B2 (en) Verifying physical universal serial bus keystrokes
JP4444101B2 (ja) バスシステム、バスシステム内で用いるためのステーション、及びバスインタフェース
WO2000011839A1 (en) Network controller
CN106716392B (zh) 用于串行通信的栈定时调整
WO2013114398A2 (en) Fpga system for usb bridge implementation
US20150350014A1 (en) Networking implementation using a converged high speed input/output fabric technology
US6779054B2 (en) Method and apparatus for operating a network controller
JPWO2014156020A1 (ja) イニシエータ端末、ターゲット端末、イニシエータ端末のアクセス中断方法およびターゲット端末のアクセス中断方法
KR101502147B1 (ko) 네트워크 상에서 usb 호스트와 usb 디바이스 간의 통신 방법, 장치 및 기록매체
JP3790710B2 (ja) データ処理システムにおけるシリアル・ポートを仮想化するための方法及び装置
US20050273541A1 (en) Circuit and method for adaptively recognizing a data packet in a universal serial bus network device
JP2004246750A (ja) Usb通信方法
Purcell The search for a GPIB replacement
KR20150071946A (ko) 데이터 처리 장치 및 데이터 처리 방법
JP2008134698A (ja) Usb機器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee