KR101357162B1 - 호스트 장치와 usb 장치간의 통신을 제어하는 장치,방법 및 시스템 - Google Patents
호스트 장치와 usb 장치간의 통신을 제어하는 장치,방법 및 시스템 Download PDFInfo
- Publication number
- KR101357162B1 KR101357162B1 KR1020070031732A KR20070031732A KR101357162B1 KR 101357162 B1 KR101357162 B1 KR 101357162B1 KR 1020070031732 A KR1020070031732 A KR 1020070031732A KR 20070031732 A KR20070031732 A KR 20070031732A KR 101357162 B1 KR101357162 B1 KR 101357162B1
- Authority
- KR
- South Korea
- Prior art keywords
- communication
- usb
- host device
- data
- state
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
본 발명은 호스트 장치와 USB 장치간의 통신을 제어하는 장치, 방법 및 시스템에 관한 것으로, 본 발명에 따른 장치는 제 1 디바이스와 제 2 디바이스간의 통신을 위한 동작을 수행하는 제어부 및 제 1 디바이스와 제 2 디바이스간의 통신 상태를 나타내는 정보에 따라 선택적으로 제어부의 동작을 정지시키는 제 1 처리부를 포함함으로서, 제 1 디바이스와 USB 연결 중에도 USB 장치의 고유의 기능을 사용할 수 있다.
Description
도 1은 호스트 장치와 USB 케이블을 통해 연결된 USB 장치를 나타낸 도면이다.
도 2는 호스트 장치와 USB 장치 간의 데이터 전송 구조를 나타낸 도면이다.
도 3은 호스트 장치와 USB 장치 간의 데이터 처리의 흐름을 나타낸 도면이다.
도 4a는 USB 장치와 호스트 장치간의 통신 상태가 아이들(Idle) 상태를 나타낸 경우, 본 발명의 바람직한 일 실시예에 따른 USB 장치의 동작을 나타낸 도면이다.
도 4b는 USB 장치와 호스트 장치간의 통신 상태가 오퍼레이션(Operation) 상태를 나타낸 경우, 본 발명의 바람직한 일 실시예에 따른 USB 장치의 동작을 나타낸 도면이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 USB 장치가 USB Mass-Storage Class로 호스트 장치와 데이터를 송수신하는 과정을 나타낸 흐름도이다.
본 발명은 호스트 장치와 USB 장치간의 통신을 제어하는 장치, 방법 및 시스템에 관한 것이고, 보다 상세하게는 USB를 이용한 통신이나 충전 중에 물리적으로 USB 연결을 해지하지 않고, 호스트 장치의 동작이 없을 때 사용할 수 있는 USB 장치 및 그 방법에 관한 것이다.
마우스, 키보드, 프린터, 모뎀, 스피커 등과 같은 컴퓨터 주변기기와 컴퓨터를 연결하기 위한 인터페이스(Interface)를 규격화하기 위한 목적으로 USB(Universal Serial BUS)가 개발되었다. 이러한 USB를 통해 통신을 하면, 드라이버와 같은 복잡한 어댑터들의 설치 및 제거를 빠르게 할 수 있으므로, USB를 통한 통신은 현재 대부분의 PC 표준 장비로 채택되어 호스트에 장착되고 있다. 또한, 최근에는 모뎀이나 프린터 등과 같은 컴퓨터 주변기기뿐만 아니라 전화나 오디오 등과 같은 가정용 멀티미디어 기기의 데이터, 음성 등을 실시간으로 전송하는데 USB를 통한 통신을 할 수 있으므로, 핸드폰이나 디지털 카메라 등에서 호스트 장치로 데이터를 전송할 경우에도 USB를 통해 데이터를 전송한다.
도 1은 호스트 장치와 USB 케이블을 통해 연결된 USB 장치를 나타낸 도면이다.
도 1을 참조하면, USB 장치(110)는 USB 연결부(112)에 USB 케이블(120)을 결합하여 호스트 장치(100)와 연결되고, USB 장치(110)와 호스트 장치(100)는 연결된 USB 케이블(120)을 통해 데이터를 송수신한다. 이때, USB 장치(110)로는 컴퓨터 주 변 기기뿐만 아니라, 전화, 오디오, 핸드폰 등과 같은 멀티미디어 기기가 사용되고, 호스트 장치(100)로는 PC가 사용된다.
도 2는 호스트 장치와 USB 장치 간의 데이터 전송 구조를 나타낸 도면이다.
도 2에 도시된 바와 같이, 호스트 장치(200)는 클라이언트 소프트웨어(202)와 다수의 메모리 버퍼(204)들을 포함하며, 각각의 버퍼(204)에는 파이프(216)가 연결되어 있다. USB 장치(210)에는 엔드포인트(214)(Endpoint)가 존재하며, 엔드포인트(214)에도 파이프(216)가 연결되어 있으므로, 파이프(216)는 호스트 장치(200)와 USB 장치(210)간의 통신 흐름의 통로가 된다. 이때, 엔드포인트(214)는 그룹화되어 인터페이스(212)를 구성하고, 호스트 장치(200)의 클라이언트 소프트웨어(202)는 통신의 셋(Set)을 통하여 USB 장치(210)와 통신하게 된다. 이와 같이, 호스트 장치(200)와 USB 장치(210)간의 데이터 전송은 USB 장치(210)의 엔드포인트(214)에 대해 실행한다. 이때, 데이터 전송은 항상 호스트 콘트롤러(미도시)가 USB 장치(210)의 엔드포인트(214)를 처리하는 형태로 실행되므로, USB 장치(210)에서는 데이터 전송을 요구하거나 허가 없이 데이터를 전송할 수 없다.
도 3은 호스트 장치와 USB 장치 간의 데이터 처리의 흐름을 나타낸 도면이다.
보다 구체적으로, 도 3은 호스트 장치(300)와 USB 장치를 구성하는 USB 콘트롤러(310) 및 CPU(320)간의 데이터 처리를 나타내며, 특히 벌크(Bulk) 데이터 송신을 나타낸다.
301 단계에서 애플리케이션(Application)은 데이터 송신 지시를 한다. 302 단계에서 호스트 장치(300)는 송신할 데이터 패킷을 준비한다. 303 단계에서 호스트 장치(300)는 송신할 데이터 패킷이 준비되면, 준비된 데이터 패킷을 USB 장치(330)의 USB 콘트롤러(310)로 송신한다.
311 단계에서 USB 콘트롤러(310)는 호스트 장치로부터(300) 수신된 데이터 패킷에 대응하여 앤드 포인트가 레디 상태인지 확인하고, 확인된 엔드 포인트가 레디 상태이면, 312 단계를 수행하고, 확인된 엔드 포인트가 레디 상태가 아니면, 315 단계를 수행한다.
312 단계에서 USB 콘트롤러(310)는 엔드 포인트가 레디(Ready) 상태이면, 데이터를 수신한다.
313 단계에서 USB 콘트롤러(310)는 엔드 포인트를 비지(Busy)로 설정하고, 314 단계에서 USB 콘트롤러(310)는 ACK 패킷을 호스트 장치(300)로 송신한다.
또한, 앤드 포인트를 비지(Busy)로 설정하는 경우, 316 단계에서 USB 콘트롤러(310)는 314 단계를 수행함과 동시에 USB 장치의 CPU(320)에 인터럽트(interrupt)하여 이를 CPU(320)에 알린다.
반면에, USB 콘트롤러(310)는 엔드 포인트가 레디 상태가 아니면, 315 단계에서 USB 콘트롤러(310)는 NAK 패킷을 호스트 장치(300)로 송신한다.
다시, 호스트 장치(300)를 살펴보면, 304 단계에서 호스트 장치(300)는 USB 콘트롤러(310)로부터 수신된 데이터 패킷을 확인한다. 확인 결과 수신된 데이터 패킷이 ACK 패킷이면 305 단계를 수행하고, 수신한 데이터 패킷이 NACK 패킷이면, 307 단계에서 데이터를 재전송한다.
305 단계에서 호스트 장치는 모든 데이터를 송신하였는지 확인하고, 모든 데이터를 송신하였으면, 절차를 종료하고, 모든 데이터를 송신하지 않았으면, 306 단계에 의해 다음 데이터를 송신한다.
CPU를 살펴보면, 321 단계에서 CPU(320)는 호스트(300)로부터 수신된 데이터를 판독하여 메모리에 보전하는 등의 처리를 한다. 322 단계에서 CPU(320)는 앤드포인트를 레디 상태로 설정하고, USB 콘트롤러(310)가 다음의 데이터를 수신할 수 있도록 한다. 또한, 323 단계에서 CPU(320)는 데이터를 프로세스한 후, 324 단계에서 인터럽트에서 리턴(return)한다.
이와 같이, 호스트 장치(300)에 USB 장치를 연결할 경우, 데이터를 송수신하는 통신 과정은 항상 호스트 장치(300)에서 시작되므로, USB 장치(330)는 호스트 장치(300)가 언제 데이터를 송신할지 알 수 없다. 따라서, USB 통신 중, USB 장치(330)는 USB 장치(330) 고유의 다른 동작을 할 수 없다. 왜냐하면, 호스트 장치(300)로부터 전송되는 데이터에 따라서 동작이 결정되고, USB 장치(330)와 호스트 장치(300)간의 통신에 사용되는 프로세스의 용량이 매우 크므로, 호스트 장치(300)의 상태를 알지 못하는 상태에서 USB 장치(330)가 동작을 하게 되면, 호스트 장치(300)와 통신하는 프로세스와 USB 장치(330)를 동작하는 프로세스간의 충돌이 일어나, 호스트 장치(300)와의 통신이 끊길 수 있는 문제가 발생할 수 있기 때문이다.
이와 같이, 종래에는 호스트 장치와 USB 연결된 USB 장치의 통신 중에는 USB 장치를 단독으로 사용할 수 없는 문제점이 있었다.
본 발명이 이루고자 하는 기술적 과제는 본 발명은 호스트 장치와 USB 장치간의 통신을 제어하는 장치, 방법 및 시스템에 관한 것이고, 보다 상세하게는 호스트 장치와 USB 장치간의 통신을 제어하여 USB를 이용한 통신이나 충전 중에 물리적으로 USB 연결을 해지하지 않고, 호스트 장치의 동작이 없을 때 사용할 수 있는 USB 장치 및 그 방법을 제공하는데 있다. 또한, 상기된 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 호스트 장치와 USB 장치간의 통신을 제어하는 장치는 제 1 디바이스와 제 2 디바이스간의 통신을 제어하는 장치에 있어서, 상기 제 1 디바이스와 상기 제 2 디바이스간의 통신을 위한 동작을 수행하는 제어부 및 상기 제 1 디바이스와 상기 제 2 디바이스간의 통신 상태를 나타내는 정보에 따라 선택적으로 상기 제어부의 동작을 정지시키는 제 1 처리부를 포함한다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 따른 호스트 장치와 USB 장치간의 통신을 제어하는 방법은 제 1 디바이스와 통신하는 제 2 디바이스에서의 통신 제어 방법에 있어서, 상기 제 1 디바이스와 상기 제 2 디바이스간의 통신 상 태를 나타내는 정보를 획득하는 단계 및 상기 획득된 정보에 따라 선택적으로 상기 제 1 디바이스와 상기 제 2 디바이스의 통신을 위한 동작을 정지시키는 단계를 포함한다.
상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명은 호스트 장치와 USB 장치간의 통신을 제어하는 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 호스트 장치와 USB 장치간의 통신을 제어하는 시스템은 제 1 디바이스 상기 제 1 디바이스와의 통신을 위한 동작을 수행하고, 상기 제 1 디바이스와의 통신 상태를 나타내는 정보에 따라 선택적으로 상기 동작을 정지시키는 제 2 디바이스 및 상기 제 1 디바이스와 상기 제 2 디바이스간의 통신 상태를 나타내는 정보에 따라 선택적으로 상기 제 1 디바이스와 상기 제 2 디바이스의 통신을 위한 동작을 수행하는 제 3 디바이스를 포함한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세하게 설명한다.
도 4a는 USB 장치와 호스트 장치간의 통신 상태가 아이들(Idle) 상태를 나타낸 경우, 본 발명의 바람직한 일 실시예에 따른 USB 장치의 동작을 나타낸 도면이다.
본 발명의 바람직한 일 실시예에 따른 USB 장치(410)는 마이컴(412), CPU(414) 및 USB 콘트롤러(416)를 포함한다.
본 발명의 바람직한 일실시예에 따른 USB 장치는 USB 장치와 호스트 장치간의 통신 상태에 따라 그 동작을 다르게 한다. 이 때, USB 장치와 호스트 장치간의 통신 상태는 호스트 장치의 동작 상태와 동일한 의미를 나타낸다. 즉, USB 장치와 호스트 장치간의 통신 상태는 USB 장치와 호스트 장치간의 작업을 위한 데이터가 교환되는 오퍼레이션(Operation) 상태와 USB 장치와 호스트 장치간의 작업을 위한 데이터가 교환되지 않는 아이들(Idle)상태로 구분할 수 있는데, 본 발명의 바람직한 일 실시예에 따른 USB 장치는 호스트 장치가 오퍼레이션(Operation) 상태인지 또는 아이들(Idle) 상태인지에 따라 다르게 호스트 장치와 통신을 수행한다.
이하, 도 4a를 참조하여 USB 장치와 호스트 장치간의 통신 상태가 아이들(Idle) 상태를 나타낸 경우, 본 발명의 바람직한 일 실시예에 따른 USB 장치의 동작을 살펴본다.
일반적으로 USB 콘트롤러(416)는 USB 장치(410)와 USB 연결된 호스트 장치(400)와 데이터를 송수신하면, 마이컴(412)은 호스트 장치(400)가 별도의 동작을 하지 않을 때까지 호스트 장치(400)와 USB 콘트롤러(416)간의 송수신되는 데이터를 저장한다. 또한, 마이컴(412)은 호스트 장치(400)의 동작 상태가 아이들(Idle) 상태이면, 호스트 장치(400)로부터 호스트 장치(400)가 아이들(Idle) 상태를 나타내는 데이터를 획득하고, CPU(414)에 호스트 장치(400)가 아이들(Idle) 상태임을 전달한 후, 호스트 장치(400)가 송신하는 USB 연결 확인 데이터에 대해 지속적으로 응답을 한다. 본 발명의 바람직한 일 실시예에서 마이컴(412)는 USB 장치(410)의 내부에 위치하는 것으로 기술하였으나, 반드시 이에 한정하지 않고, USB 장치(410) 외부에 별도의 장치로 사용할 수도 있다. 이와 같이, 호스트 장치의 동작 상태가 아이들(Idle) 상태인 경우, USB 콘트롤러와 호스트 장치 간의 작업을 위한 데이터가 교환되지 않고, 마이컴(412)이 호스트 장치와 데이터를 송수신하므로, USB 장치는 호스트 장치와 USB 연결 중에도 USB 장치만의 고유의 기능을 사용할 수 있다.
CPU(414)는 USB 장치(410)의 전체를 제어하며, 그 중에서도 특히 USB 콘트롤러(416)의 동작을 제어한다. CPU(414)는 USB 장치(410)의 정책(policy)에 의해 USB 장치(410)가 USB 트랜스퍼(transfer)가 필요하지 않다고 판단하면, USB 콘트롤러(416)의 동작을 정지시킨다. 즉, CPU(414)는 호스트 장치(400)와 데이터를 송수신하는 USB 콘트롤러(416)의 동작을 제어하는데, 호스트 장치(400)가 아이들(Idle) 상태이면, 호스트 장치(400)와 데이터를 송수신하지 않도록 USB 콘트롤러(416)를 제어한다.
도 4b는 USB 장치와 호스트 장치간의 통신 상태가 오퍼레이션(Operation) 상태를 나타낸 경우, 본 발명의 바람직한 일 실시예에 따른 USB 장치의 동작을 나타낸 도면이다.
호스트 장치(400)가 동작을 하여 오퍼레이션(Operation) 상태가 되면, 마이컴(412)은 호스트 장치(400)로부터 오퍼레이션(Operation) 상태를 나타내는 데이터를 획득하고, CPU(414)에 호스트 장치(400)가 오퍼레이션(Operation) 상태임을 전달한다. 또한, 마이컴(412)은 호스트 장치(400)에 NACK 패킷을 지속적으로 전송하여, 호스트 장치(400)와 USB 콘트롤러(416) 간의 데이터 송수신을 지연시키고, 호스트 장치(400)가 아이들(Idle) 상태일 때 저장했던 호스트 장치(400)와 USB 콘트 롤러(416) 간의 송수신되는 데이터까지 USB 콘트롤러(416)와 통신을 복원한다.
CPU(414)는 마이컴(412)이 NACK 패킷을 지속적으로 전송하여 호스트 장치(400)와 USB 콘트롤러(416) 간의 데이터 송수신을 지연시킬 때, USB 콘트롤러(416)가 호스트 장치(400)와 데이터를 송수신하도록 USB 콘트롤러(416)를 구동시킨다.
이와 같이, CPU(414)가 호스트 장치(400)와 데이터를 송수신하도록 USB 콘트롤러(416)를 구동시키면, USB 콘트롤러(416)는 호스트 장치(400)와 데이터를 송수신하여 통신을 수행한다. 이 때, USB 콘트롤러(416)는 마이컴(412)에 저장된 데이터까지 통신이 복원되었으므로, 그 이후의 데이터를 송수신한다. 이와 같이, USB 콘트롤러(416)와 호스트 장치(400)가 데이터를 송수신할 때, 마이컴(412)은 USB 콘트롤러(416)와 호스트 장치(400)의 사이에서 송수신되는 데이터를 중계한다.
USB 콘트롤러(416)와 호스트 장치(400)가 통신을 재계하여 데이터를 송수신하면, 마이컴(412)은 저장되어 있던 데이터를 지우고 송수신되는 데이터를 새롭게 저장한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 USB 장치가 USB Mass-Storage Class로 호스트 장치와 데이터를 송수신하는 과정을 나타낸 흐름도이다.
도 5는 도 4a 및 도 4b에 도시된 바와 같이, 호스트 장치의 동작 상태가 아이들(Idle) 상태에서 오퍼레이션(Operation) 상태로 동작 상태가 변환하는 경우, USB 장치와 호스트 장치간의 데이터를 송수신하는 과정을 나타낸다. 도 5에서는 본 발명의 바람직한 일 실시예에 따른 USB 장치의 마이컴과 CPU/USB 콘트롤러를 구분 하여, 호스트 장치와 데이터를 송수신하는 과정을 나타내었다.
510 단계에서 호스트 장치(500)의 동작 상태가 아이들(Idle) 상태로 변환된다.
515 단계에서 호스트 장치(500)의 동작 상태의 변환에 대응하여, 호스트 장치(500)의 상태가 아이들(Idle) 상태임을 알 수 있는 데이터를 마이컴(502)으로 송신한다. USB Mass-Storage Class 스펙에 따르면, 호스트 장치(500)는 "TEST_UNIT_READY" 데이터를 마이컴(502)으로 송신하여, 호스트 장치(500)의 동작 상태가 아이들(Idle) 상태임을 마이컴(502)에 알린다. 하지만, 데이터를 전송하는 것은 USB Class에 따라 아이들 상태를 알리는 방법이 다르다. 다른 예를 들면, MTP Class의 경우는, 호스트 장치(500)가 데이터를 전송하지 않고, 일정 기간 데이터가 전송되지 않은 경우에 마이컴(502)은 호스트 장치(500)가 아이들(Idle) 상태임을 알 수 있다.
520 단계에서 마이컴(502)은 CPU(504)로 호스트 장치(500)의 동작 상태가 아이들(Idle) 상태임을 전달한다.
525 단계에서 CPU(504)는 호스트 장치(500)의 동작 상태가 아이들(Idle) 상태임을 확인한다.
530 단계에서 USB 콘트롤러(506)는 호스트 장치의 아이들(Idle) 상태에 대응하는 데이터를 호스트 장치(500)로 송신한다. USB Mass-Storage Class 스펙에 따르면, USB 콘트롤러(506)는 "TEST_UNIT_READY"를 호스트 장치(500)로 핸드쉐이크(handshake)한다. 이 때, 마이컴(502)은 USB 콘트롤러(506)와 호스트 장치(500)의 중간에서 송신되는 데이터를 중계할 수 있다.
535 단계에서 CPU(504)는 USB 장치의 정책(Policy)에 따라 호스트 장치(500)와 데이터를 송수신하는 USB 콘트롤러(506)의 동작을 정지시킨다. 이와 같이, USB 콘트롤러(506)의 동작을 정지시킴으로서, 호스트 장치(500)가 아이들(Idle) 상태인 경우, USB 콘트롤러(506)는 호스트 장치(500)와 직접적으로 데이터를 송수신하지 않게 된다.
540 단계에서 호스트 장치(500)는 USB 장치와 연결을 확인하기 위한 데이터를 USB 장치로 송신한다. 마이컴(502)은 수신된 데이터에 대응하는 데이터를 호스트 장치(500)로 송신한다. USB 연결을 확인하는 데이터에 대응하는 데이터는 그 응답이 간단한 사항이므로, 마이컴(502)이 USB 콘트롤러(506)를 대신하여 대응되는 데이터를 전송할 수 있고, 이로 인해 USB 장치는 USB 장치만의 고유의 다른 기능을 사용할 수 있다. USB Mass-Storage Class 스펙에 따르면, USB 호스트 장치(500)는 "TEST_UNIT_READY"를 마이컴(502)으로 송신하고, 마이컴(502)은 이에 대응하여 "TEST_UNIT_READY"에 대해 응답한다.
545 단계에서 호스트 장치(500)의 동작 상태가 오퍼레이션(Operation) 상태로 변환된다.
550 단계에서 호스트 장치(500)는 호스트 장치(500)의 동작 상태가 오퍼레이션(Operation) 상태임을 알 수 있는 데이터를 마이컴(502)으로 송신한다. 호스트 장치(500)가 USB 장치와 USB 통신 시, 사용하는 데이터를 송신함으로서, 호스트 장치(500)의 동작 상태가 오퍼레이션(Operation) 상태임을 마이컴(502)에 알릴 수 있다. USB Mass-Storage Class 스펙에 의하면, 호스트 장치(500)는 "READ_10"을 마이컴(502)로 송신하여, 호스트 장치(500)의 동작 상태가 오퍼레이션(Operation) 상태임을 마이컴(502)에 알릴 수 있다. 호스트 장치(500)에서 마이컴(502)으로 송신되는 데이터에는 단순한 응답이 아닌 송신되는 데이터에 대응하는 데이터의 수신이 요구된다.
555 단계에서 마이컴(502)은 NACK 패킷을 호스트 장치(500)로 송신한다. 즉, 550 단계를 통해, 호스트 장치(500)에서 마이컴(502)으로 전송되는 데이터는 USB 연결을 확인을 위해 송신되는 데이터와는 다르게, 대응되는 데이터가 요구되는데 마이컴(502)은 이러한 데이터를 송신할 수 없으므로, NACK 패킷을 호스트 장치(500)로 송신하여, 대응되는 데이터 송신을 지연시킨다. NACK 패킷을 호스트 장치(500)로 송신하여, 대응되는 데이터 송신의 지연은 USB 콘트롤러(506)와 호스트 장치(500)가 데이터 통신을 복원할 때까지 지속적으로 한다.
560 단계에서 마이컴(502)은 호스트 장치(500)의 동작 상태가 오퍼레이션(Operation) 상태로 변환되었음을 CPU(504)에 알린다.
565 단계에서는 호스트 장치(500)와 데이터를 송수신하는 USB 콘트롤러(506)가 다시 동작한다.
570 단계에서는 USB 콘트롤러(506)는 마이컴(502)에 저장된 데이터로 USB 통신을 복원한다. 마이컴(502)는 아이들(Idle) 상태일 때, USB 콘트롤러(506)와 호스트 장치(500)간에 송수신되는 데이터를 저장하는데, USB 콘트롤러(506)는 마이컴(502)에 저장된 데이터를 복원하여, USB 콘트롤러(506)가 동작하지 않았을 때까지의 통신을 복원한다.
575 단계에서 마이컴(502)은 호스트 장치(500)로부터 수신된 데이터를 USB 콘트롤러(506)로 송신한다. USB Mass-Storage Class 스펙에 의하면, 마이컴(502)은 "READ_10"USB 콘트롤러(506)로 송신한다.
580 단계에서 USB 콘트롤러(506)는 마이컴(502)으로부터 수신 받은 데이터에 대응하는 데이터를 호스트 장치(500)로 송신하여, 호스트 장치(500)와 직접적으로 데이터를 송수신한다. USB Mass-Storage Class 스펙에 의하면, USB 콘트롤러(506)는 "READ_10"에 대해 응답한다.
585 단계에서 USB 콘트롤러(506)는 호스트 장치(500)와 데이터를 송수신하여 USB 통신을 수행한다. 이때, 마이컴(502)은 USB 콘트롤러(506)와 호스트 장치(500)의 사이에서 송수신되는 데이터를 중계한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
또한 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다.본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질 적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 의한 호스트 장치와 USB 장치간의 통신을 제어하는 장치, 방법 및 시스템에 따르면, 본 발명에 따른 장치는 제 1 디바이스와 상기 제 2 디바이스간의 통신을 위한 동작을 수행하는 제어부 및 제 1 디바이스와 제 2 디바이스간의 통신 상태를 나타내는 정보에 따라 제어부의 동작을 정지시키는 제 1 처리부를 포함함으로서, 제 1 디바이스와 USB 연결 중에도 제 1 디바이스와 제 2 디바이스간의 통신 상태가 작업을 위한 데이터가 교환되지 않는 아이들(Idle) 상태이면, USB 장치의 고유의 기능을 사용할 수 있는 효과가 있다.
Claims (13)
- 제 1 디바이스와 제 2 디바이스간의 통신을 제어하는 장치에 있어서,상기 제 1 디바이스와 상기 제 2 디바이스간의 통신을 위한 동작을 수행하는 제어부;상기 제 1 디바이스와 상기 제 2 디바이스간의 통신 상태를 나타내는 정보에 따라 선택적으로 상기 제어부의 동작을 정지시키는 제 1 처리부; 및상기 제 1 디바이스와 상기 제 2 디바이스간의 통신 상태를 나타내는 정보를 획득하고, 상기 획득된 정보에 따라 상기 제 1 디바이스와 상기 제 2 디바이스의 통신을 위한 동작을 수행하는 제 2 처리부를 포함하고,상기 제 1 처리부는 상기 제 2 처리부에 의해 획득된 정보에 따라 상기 제어부의 동작을 정지시키는 것을 특징으로 하는 장치.
- 제 1 항에 있어서,상기 제 1 처리부는 상기 정보가 상기 제 1 디바이스와 상기 제 2 디바이스간의 작업을 위한 데이터가 교환되지 않는 아이들(Idle) 상태를 나타내면, 상기 제어부의 동작을 정지시키는 것을 특징으로 하는 장치.
- 제 1 항에 있어서,상기 제 1 처리부는 상기 정보가 상기 제 1 디바이스와 상기 제 2 디바이스간의 작업을 위한 데이터가 교환되는 오퍼레이션(Operation) 상태를 나타내면, 상기 제어부의 동작을 유지시키는 것을 특징으로 하는 장치.
- 삭제
- 제 1 항에 있어서,상기 제 2 처리부는 상기 제 1 디바이스와 상기 제 2 디바이스간의 통신 내용을 저장하고,상기 제어부는 상기 저장된 통신 내용을 기초로, 정지되었던 상기 제 1 디바이스와 상기 제 2 디바이스간의 통신을 위한 동작을 다시 수행하는 것을 특징으로 하는 장치.
- 제 1 디바이스와 제 2 디바이스간의 통신을 제어하는 장치에 있어서,상기 제 1 디바이스와 상기 제 2 디바이스간의 통신을 위한 동작을 수행하는 제어부; 및상기 제 1 디바이스와 상기 제 2 디바이스간의 통신 상태를 나타내는 정보에 따라 선택적으로 상기 제어부의 동작을 정지시키는 제 1 처리부를 포함하고,상기 제 1 처리부는 상기 제 1 처리부의 동작을 대행하는 상기 제 2 디바이스의 외부에 위치한 마이콤에 의해 획득된 정보에 따라 상기 제어부의 동작을 정지시키는 것을 특징으로 하는 장치.
- 제 1 항에 있어서,상기 제 1 디바이스는 호스트 장치이고, 상기 제 2 디바이스는 USB 장치이 며, 상기 제 1 디바이스와 상기 제 2 디바이스는 USB를 통하여 통신하는 것을 특징으로 하는 장치.
- 제 1 디바이스와 통신하는 제 2 디바이스에서의 통신 제어 방법에 있어서,(a) 상기 제 1 디바이스와 상기 제 2 디바이스간의 통신 상태를 나타내는 정보를 획득하는 단계 및(b) 상기 획득된 정보에 따라 선택적으로 상기 제 1 디바이스와 상기 제 2 디바이스의 통신을 위한 동작을 정지시키는 단계를 포함하고,상기 (b) 단계는 상기 제 1 디바이스와 상기 제 2 디바이스의 통신을 위한 동작을 정지시킴과 동시에 제 3 디바이스가 상기 제 2 디바이스를 대신하여 상기 제 1 디바이스와 상기 제 2 디바이스의 통신을 위한 동작을 수행하는 것을 특징으로 하는 방법.
- 삭제
- 제 8 항에 있어서,상기 (b) 단계는 상기 획득된 정보가 상기 제 1 디바이스와 상기 제 2 디바이스간의 작업을 위한 데이터가 교환되지 않는 아이들(Idle) 상태를 나타내면, 상기 제 1 디바이스와 상기 제 2 디바이스의 통신을 위한 동작을 정지시키는 것을 특 징으로 하는 방법.
- 제 8 항에 있어서,상기 (b) 단계는 상기 획득된 정보가 상기 제 1 디바이스와 상기 제 2 디바이스간의 작업을 위한 데이터가 교환되는 오퍼레이션(Operation) 상태를 나타내면, 상기 제 1 디바이스와 상기 제 2 디바이스의 통신을 위한 동작을 유지시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 8 항 및 제 10 항 내지 제 11 항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
- 제 1 디바이스상기 제 1 디바이스와의 통신을 위한 동작을 수행하고, 상기 제 1 디바이스와의 통신 상태를 나타내는 정보에 따라 상기 동작을 정지시키는 제 2 디바이스 및상기 제 1 디바이스와 상기 제 2 디바이스간의 통신 상태를 나타내는 정보에 따라 상기 제 1 디바이스와 상기 제 2 디바이스의 통신을 위한 동작을 수행하는 제 3 디바이스를 포함하고,상기 제 2 디바이스는 상기 제 3 디바이스에 의해 획득된 상기 제 1 디바이스와 상기 제 2 디바이스간의 통신 상태를 나타내는 정보에 따라 상기 제 1 디바이스와의 통신을 위한 동작을 정지시키는 것을 특징으로 하는 제 1 디바이스와 제 2 디바이스간의 통신을 제어하는 시스템.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070031732A KR101357162B1 (ko) | 2007-03-30 | 2007-03-30 | 호스트 장치와 usb 장치간의 통신을 제어하는 장치,방법 및 시스템 |
US11/935,547 US8082370B2 (en) | 2007-03-30 | 2007-11-06 | Apparatus, method, and system for controlling communication between host device and USB device |
CN200710160127XA CN101276316B (zh) | 2007-03-30 | 2007-12-24 | 用于控制主机设备与usb设备之间的通信的装置、方法及系统 |
EP08100014A EP1975804B1 (en) | 2007-03-30 | 2008-01-02 | Apparatus, method, and system for controlling communication between host device and USB device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070031732A KR101357162B1 (ko) | 2007-03-30 | 2007-03-30 | 호스트 장치와 usb 장치간의 통신을 제어하는 장치,방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080088885A KR20080088885A (ko) | 2008-10-06 |
KR101357162B1 true KR101357162B1 (ko) | 2014-02-04 |
Family
ID=39522699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070031732A KR101357162B1 (ko) | 2007-03-30 | 2007-03-30 | 호스트 장치와 usb 장치간의 통신을 제어하는 장치,방법 및 시스템 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8082370B2 (ko) |
EP (1) | EP1975804B1 (ko) |
KR (1) | KR101357162B1 (ko) |
CN (1) | CN101276316B (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578503B2 (en) * | 2007-08-17 | 2013-11-05 | Samsung Electronics Co., Ltd. | Portable storage device and method of managing resource of the portable storage device |
US8005998B2 (en) * | 2009-03-22 | 2011-08-23 | Silicon Motion Inc. | Method for controlling power consumption of a USB mass storage, associated personal computer, and storage medium storing an associated USB mass storage driver |
US8332737B2 (en) * | 2009-06-26 | 2012-12-11 | Agilent Technologies, Inc. | Instrument control system and methods |
KR101298593B1 (ko) * | 2009-12-21 | 2013-08-22 | 한국전자통신연구원 | Usb-무선 랜(lan) 시스템에서 usb 통신 동기화를 통한 데이터 송신 장치 및 방법 |
US8510583B2 (en) * | 2010-07-01 | 2013-08-13 | Intel Corporation | Asynchronous sleep mode for host controller |
CN102681965B (zh) * | 2012-05-03 | 2014-12-10 | 苏州佳世达电通有限公司 | 资料传输系统及方法 |
US9251105B2 (en) * | 2012-11-20 | 2016-02-02 | Intel Corporation | Transmitting an interrupt packet |
US10602361B2 (en) * | 2015-05-18 | 2020-03-24 | Sony Corporation | Storage device, reader writer, access control system, and access control method |
CN106897239A (zh) | 2015-12-21 | 2017-06-27 | 小米科技有限责任公司 | 状态切换方法及装置 |
US10541726B1 (en) * | 2018-07-02 | 2020-01-21 | Google Llc | Data over power line design |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070005824A1 (en) | 2005-06-29 | 2007-01-04 | Howard John S | Enhancements to Universal Serial Bus (USB) suspend and resume operations |
US7194638B1 (en) * | 2002-09-27 | 2007-03-20 | Cypress Semiconductor Corporation | Device and method for managing power consumed by a USB device |
US20070088796A1 (en) | 2005-10-17 | 2007-04-19 | Dell Products L.P. | System and method for managing console redirection at a remote information handling system |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0778113A (ja) * | 1993-06-30 | 1995-03-20 | Toyota Motor Corp | 通信データ処理装置 |
US6073193A (en) | 1997-04-24 | 2000-06-06 | Cypress Semiconductor Corp. | Fail safe method and apparatus for a USB device |
US6219736B1 (en) * | 1997-04-24 | 2001-04-17 | Edwin E. Klingman | Universal serial bus (USB) RAM architecture for use with microcomputers via an interface optimized for integrated services device network (ISDN) |
US6058441A (en) * | 1998-02-19 | 2000-05-02 | Shu; Han | USB multi-function connecting device |
US6119194A (en) | 1998-03-19 | 2000-09-12 | Advanced Micro Devices, Inc. | Method and apparatus for monitoring universal serial bus activity |
US6266715B1 (en) * | 1998-06-01 | 2001-07-24 | Advanced Micro Devices, Inc. | Universal serial bus controller with a direct memory access mode |
ATE305166T1 (de) * | 1998-07-28 | 2005-10-15 | Lg Electronics Inc | Datenaufzeichnungsverfahren und gerät auf optischem aufzeichnungsmedium |
US6021506A (en) | 1998-07-31 | 2000-02-01 | Intel Corporation | Method and apparatus for stopping a bus clock while there are no activities on a bus |
US6272644B1 (en) | 1999-01-06 | 2001-08-07 | Matsushita Electrical Industrial Co., Ltd. | Method for entering powersave mode of USB hub |
KR20000051115A (ko) | 1999-01-19 | 2000-08-16 | 박일근 | 데이터 송수신 장치 및 그 방법 |
DE60121075T2 (de) * | 2000-03-01 | 2007-02-01 | Matsushita Electric Industrial Co., Ltd., Kadoma | Navigationsvorrichtung |
TW512232B (en) * | 2001-05-08 | 2002-12-01 | Prolific Technology Inc | USB connection-detection circuitry and operation methods of the same |
US7200712B2 (en) * | 2001-07-24 | 2007-04-03 | Terminus Technology, Limited | Associative memory system, network device, and network system |
US6732218B2 (en) * | 2002-07-26 | 2004-05-04 | Motorola, Inc. | Dual-role compatible USB hub device and method |
US8090837B2 (en) * | 2004-05-27 | 2012-01-03 | Hewlett-Packard Development Company, L.P. | Communication in multiprocessor using proxy sockets |
JP4227564B2 (ja) * | 2004-06-08 | 2009-02-18 | キヤノン株式会社 | 管理装置、情報処理方法並びにプログラム |
US7478286B2 (en) * | 2005-04-08 | 2009-01-13 | Linear Technology Corporation | Circuit and method of detecting and resolving stuck I2C buses |
KR100748554B1 (ko) * | 2005-07-26 | 2007-08-10 | 삼성전자주식회사 | 유니버셜 시리얼 버스 호스트, 유니버셜 시리얼 버스시스템 및 그것의 구동 방법 |
US20080005395A1 (en) * | 2006-05-05 | 2008-01-03 | Ping-Wen Ong | Adapter to convert USB device into WUSB device |
US8200856B2 (en) * | 2006-05-25 | 2012-06-12 | Qualcomm Incorporated | Flow control for universal serial bus (USB) |
-
2007
- 2007-03-30 KR KR1020070031732A patent/KR101357162B1/ko active IP Right Grant
- 2007-11-06 US US11/935,547 patent/US8082370B2/en not_active Expired - Fee Related
- 2007-12-24 CN CN200710160127XA patent/CN101276316B/zh not_active Expired - Fee Related
-
2008
- 2008-01-02 EP EP08100014A patent/EP1975804B1/en not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194638B1 (en) * | 2002-09-27 | 2007-03-20 | Cypress Semiconductor Corporation | Device and method for managing power consumed by a USB device |
US20070005824A1 (en) | 2005-06-29 | 2007-01-04 | Howard John S | Enhancements to Universal Serial Bus (USB) suspend and resume operations |
US20070088796A1 (en) | 2005-10-17 | 2007-04-19 | Dell Products L.P. | System and method for managing console redirection at a remote information handling system |
Also Published As
Publication number | Publication date |
---|---|
KR20080088885A (ko) | 2008-10-06 |
US20080244109A1 (en) | 2008-10-02 |
EP1975804A1 (en) | 2008-10-01 |
US8082370B2 (en) | 2011-12-20 |
EP1975804B1 (en) | 2011-11-30 |
CN101276316A (zh) | 2008-10-01 |
CN101276316B (zh) | 2013-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101357162B1 (ko) | 호스트 장치와 usb 장치간의 통신을 제어하는 장치,방법 및 시스템 | |
CN111953387B (zh) | 近场通信和无线功率 | |
TWI296083B (en) | Communication controller, host-side controller, communication system, usb system, communication equipment, communication method, packet-based communication method, packet-based communication program, and storage medium | |
KR101197749B1 (ko) | 범용 직렬 버스(usb)의 플로우 제어 | |
US9875206B2 (en) | Methods and devices for extending USB 3.0-compliant communication | |
JP4377603B2 (ja) | バス通信システムおよびその通信制御方法 | |
KR20080106776A (ko) | 무선 usb를 이용하여 디바이스와 접속 가능한 호스트장치의 통신 방법 및 호스트 장치와 디바이스를 포함하는무선 접속 시스템 | |
US8788734B2 (en) | Methods and devices for universal serial bus port event extension | |
WO2003034206B1 (en) | Host network interface device and drive network interface device | |
TWI233553B (en) | Bus system and bus interface for connection to a bus | |
EP2320301B1 (en) | Control apparatus and method thereof | |
JP2006120115A (ja) | 情報機器及びその制御方法 | |
US6058440A (en) | Programmable and adaptive resource allocation device and resource use recorder | |
JP2012053792A (ja) | Usbアイソクロナス転送エラー低減システム | |
US20100106869A1 (en) | USB Storage Device and Interface Circuit Thereof | |
JP2948380B2 (ja) | データ通信装置 | |
JP2004246750A (ja) | Usb通信方法 | |
JP2001337911A (ja) | Usb−atapiインターフェイスシステムとこれに用いるatapi−usb変換機器 | |
CN102202041A (zh) | 适用于服务器的数据接收方法 | |
JP3677533B2 (ja) | 双方向転送方法 | |
JPS6249742A (ja) | デ−タ送受信方式 | |
JP2000047965A (ja) | 情報処理装置 | |
JP2004362422A (ja) | データ転送制御装置、接続機器及びデータ転送制御方法 | |
JPH08317013A (ja) | インターフェイスの制御方式 | |
JP2002218003A (ja) | データ転送装置 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20161228 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20171228 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20181227 Year of fee payment: 6 |