KR101005397B1 - Bus connection system - Google Patents

Bus connection system Download PDF

Info

Publication number
KR101005397B1
KR101005397B1 KR1020057004937A KR20057004937A KR101005397B1 KR 101005397 B1 KR101005397 B1 KR 101005397B1 KR 1020057004937 A KR1020057004937 A KR 1020057004937A KR 20057004937 A KR20057004937 A KR 20057004937A KR 101005397 B1 KR101005397 B1 KR 101005397B1
Authority
KR
South Korea
Prior art keywords
host
station
bus
communication port
communication
Prior art date
Application number
KR1020057004937A
Other languages
Korean (ko)
Other versions
KR20050053683A (en
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 에스티 에릭슨 에스에이
Publication of KR20050053683A publication Critical patent/KR20050053683A/en
Application granted granted Critical
Publication of KR101005397B1 publication Critical patent/KR101005397B1/en

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

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)
  • Bus Control (AREA)

Abstract

하드웨어 동글의 형태인 버스 스테이션은 적절한 소프트웨어를 구동하는 USB 장치와 조합해서 동작한다. 버스 스테이션이 버스 호스트가 그 제 1 버스 통신 포트에 접속되었다고 판정하면, 이는 송수신기로 동작해서 이 버스 호스트와 제 2 버스 통신 포트에 접속된 버스 장치 사이의 기존의 버스 통신을 가능하게 한다. 버스 스테이션이 적절한 소프트웨어를 구동하는 버스 장치가 그 제 1 버스 통신 포트에 접속되어 있다고 판정하면, 이는 또 다른 호스트로서 동작해서 제 1 버스 통신 포트에 접속된 제 1 버스 장치와 제 2 버스 통신 포트에 접속된 버스 장치 사이의 버스 통신을 가능하게 한다. The bus station, in the form of a hardware dongle, works in combination with a USB device running the appropriate software. If the bus station determines that the bus host is connected to its first bus communication port, it acts as a transceiver to enable existing bus communication between this bus host and the bus device connected to the second bus communication port. If the bus station determines that a bus device that drives the appropriate software is connected to its first bus communication port, it acts as another host to connect the first bus device and the second bus communication port connected to the first bus communication port. Enable bus communication between connected bus devices.

Description

버스 스테이션 및 버스 통신 시스템{BUS CONNECTION SYSTEM}Bus station and bus communication system {BUS CONNECTION SYSTEM}

본 발명은 버스 접속 시스템에 관한 것이고, 특히 버스 통신 시스템 내의 전자 장치와 함께 사용되어 이 전자 장치가 시스템 내에서 호스트의 역할을 할 수 있게 하는 장치에 관한 것이다. The present invention relates to a bus connection system, and more particularly, to a device used with an electronic device in a bus communication system to enable the electronic device to act as a host in the system.

USB(Universal Serial Bus) 통신 시스템이 널리 사용되고 있다. Universal Serial Bus (USB) communication systems are widely used.

USB 시스템에서, 개인용 컴퓨터, 스캐너, 무선 전화, 프린터 등과 같은 많은 전자 장치의 아이템들을 상호 접속시킬 수 있다. 어떤 시스템에서든, 하나의 장치의 아이템이 항상 USB 호스트로 지정되어 있어서, 다른 모든 아이템 또는 USB 장치와의 접속을 제어한다. 개인용 컴퓨터에는 통상 USB 호스트의 역할을 가능하게 하는데 필요한 하드웨어 및 소프트웨어가 제공되지만, 다른 아이템들에는 통상 필수 하드웨어 및 소프트웨어가 제공되지 않으므로, 유일하게 USB 장치의 역할을 할 수 있다. In a USB system, items of many electronic devices such as personal computers, scanners, cordless phones, printers, and the like can be interconnected. In any system, an item on one device is always designated as the USB host, controlling access to all other items or USB devices. Personal computers are usually provided with the hardware and software necessary to enable the role of a USB host, while other items are typically not provided with the necessary hardware and software, so they can only act as USB devices.

그러나, 장치를 크게 수정하지 않고도, USB 호스트의 역할을 할 수 있는 장치의 아이템을 사용해야 하는 상황이 있을 수 있다. However, there may be situations where an item of device can be used that can act as a USB host without significantly modifying the device.

본 발명의 일 측면에 따라서, 바람직하게는 하드웨어 동글(dongle)의 형태인 버스 스테이션이 제공되며, 이는 버스 통신 장치의 버스 통신 포트에 접속되어, 버스 통신 장치가 버스 호스트의 역할을 할 수 있게 한다. 본 발명이 다른 버스 통신 시스템에도 적용될 수 있지만, 본 발명의 바람직한 실시예에서 버스 스테이션은 USB 시스템에서 동작한다. According to one aspect of the invention, there is provided a bus station, preferably in the form of a hardware dongle, which is connected to the bus communication port of the bus communication device, allowing the bus communication device to act as a bus host. . Although the present invention can be applied to other bus communication systems, in a preferred embodiment of the present invention the bus station operates in a USB system.

더 상세하게는, 본 발명의 일 측면은 버스 스테이션을 제공하되, 이 버스 스테이션은 버스 호스트가 그 제 1 버스 통신 포트에 접속되었다고 판정하면, 이 버스 호스트와 그 제 2 버스 통신 포트에 접속된 버스 장치 사이의 규정 버스 통신을 가능하게 하는 송수신기의 역할을 하고, 또한 적절한 소프트웨어를 구동하는 버스 장치가 제 1 버스 통신 포트에 접속되었다고 판정하면 제 1 버스 통신 포트에 접속된 제 1 버스 장치와 제 2 버스 통신 포트에 접속된 버스 장치 사이의 버스 통신을 가능하게 하는 다른 호스트의 역할을 한다. More specifically, one aspect of the present invention provides a bus station, which determines that the bus host is connected to its first bus communication port, and that the bus is connected to this bus host and its second bus communication port. The first bus device and the second bus device connected to the first bus communication port if it is determined that the bus device acting as a transceiver to enable prescribed bus communication between the devices and also driving appropriate software is connected to the first bus communication port. It acts as another host to enable bus communication between bus devices connected to the bus communication port.

도 1은 버스 통신 시스템의 개략 블록도, 1 is a schematic block diagram of a bus communication system;

도 2는 도 1의 시스템의 하드웨어 및 소프트웨어를 도시하는 블록도, 2 is a block diagram illustrating hardware and software of the system of FIG. 1;

도 3은 본 발명의 일 측면에 따른 방법을 도시하는 흐름도.3 is a flow diagram illustrating a method according to one aspect of the present invention.

도 1은 본 발명에 따른 버스 통신 시스템의 개략 블록도이다. 1 is a schematic block diagram of a bus communication system according to the present invention.

시스템(2)은 USB 포트(6)를 구비한 제 1 USB 장치(4), 제 2 USB 장치(8) 및 동글(10)을 포함하고 있다. The system 2 comprises a first USB device 4 with a USB port 6, a second USB device 8 and a dongle 10.

도시된 실시예에서, 제 1 USB 장치(4)는 PDA이지만, 본 발명이 모바일 통신 장치, 디지털 카메라 또는 전자 수첩과 같은 임의의 USB 장치에 적용될 수 있다는 것을 이해할 것이다. In the embodiment shown, the first USB device 4 is a PDA, but it will be appreciated that the invention can be applied to any USB device such as a mobile communication device, a digital camera or an electronic organizer.

제 2 USB 장치(8)는 프린터, 마우스, 하드 디스크 또는 모뎀을 포함한 임의의 USB 장치가 될 수 있다. The second USB device 8 can be any USB device, including a printer, mouse, hard disk or modem.

동글(10)은 제 1 호스트 포트(H1) 및 제 2 호스트 포트(H2)를 구비한 내장형 USB 호스트/장치 컨트롤러(12) 및 저전력 마이크로컨트롤러 장치(MCU:14)를 포함한다. The dongle 10 includes an embedded USB host / device controller 12 having a first host port H1 and a second host port H2 and a low power microcontroller device (MCU) 14.

동글(10)의 제 1 호스트 포트(H1)는 도 1에 도시된 바와 같이 PDA(4)의 USB 포트(6)에 접속된다. 동글(10)의 제 1 호스트 포트(H1)가 PDA(4)의 USB 포트(6)에 접속되면, PDA는 USB 호스트의 역할을 효율적으로 수행할 수 있게 되며, 동글(10)의 제 2 호스트 포트(H2)는 PDA(4)의 호스트 포트로서의 역할을 효율적으로 수행한다. 따라서, PDA(4)는 USB 버스(15)를 사용해서 동글(10)의 제 2 호스트 포트(H2)에 접속된 임의의 USB 장치와의 통신을 제어할 수 있다. The first host port H1 of the dongle 10 is connected to the USB port 6 of the PDA 4 as shown in FIG. When the first host port H1 of the dongle 10 is connected to the USB port 6 of the PDA 4, the PDA can efficiently perform the role of a USB host, and the second host of the dongle 10 can be used. The port H2 effectively serves as a host port of the PDA 4. Thus, the PDA 4 can control communication with any USB device connected to the second host port H2 of the dongle 10 using the USB bus 15.

제 1 호스트 포트(H1) 및 제 2 포스트 포트(H2)가 같은 USB 호스트/장치 컨트롤러(12)에 접속되는 것으로 도시되어 있지만, MCU(14)가 독립된 USB 호스트/장 치 컨트롤러를 통해서 제 1 호스트 포트(H1) 및 제 2 호스트 포트(H2)와 통신할 수 있다는 것을 이해할 것이며, 여기서 제 1 호스트 포트는 PDA(4)와의 통신 전용이고, 제 2 호스트 포트는 접속된 USB 장치 또는 장치(8)와의 통신 전용이라는 것을 이해할 것이다. Although the first host port H1 and the second post port H2 are shown to be connected to the same USB host / device controller 12, the MCU 14 is connected to the first host via an independent USB host / device controller. It will be appreciated that it can communicate with port H1 and second host port H2, where the first host port is dedicated to communication with PDA 4 and the second host port is connected to a USB device or device 8. It will be understood that the communication is with only.

PDA(4)가 동글(10)에 접속되었을 때, USB 호스트의 역할을 할 수 있게 하기 위해서, PDA(4)는 드라이버 업데이트를 필요로 한다. When the PDA 4 is connected to the dongle 10, the PDA 4 needs a driver update in order to be able to act as a USB host.

드라이버 업데이트는 사용되는 특정 USB 장치로 특정되는 것으로, PDA(4) 내의 현재의 USB 장치 하드웨어의 최상위에서 구동중인 가상 하드웨어 추상화 계층(Virtual HAL:Virtual Hardware Abstraction Layer) 소프트웨어 드라이버를 추가하는 역할을 한다. The driver update is specific to the particular USB device used, and serves to add a Virtual Hardware Abstraction Layer (HAL) software driver running on top of the current USB device hardware in the PDA 4.

도 2는 도 1의 시스템의 하드웨어 및 소프트웨어의 블록도이다.2 is a block diagram of hardware and software of the system of FIG.

종래와 같이 USB 장치(4)는 운영 체제(18), 호스트 스택(20) 및 장치 스택과 장치 하드웨어(22)를 구비하고 있다. USB 호스트로서 역할을 할 수 있기 위해서, PDA(4)는 가상 HAL 드라이버 소프트웨어(16)도 구동한다. USB 장치(4)가 가상 HAL 드라이버 소프트웨어(16)를 구동하고 있을 때, 이는 호스트 온 장치(HostOnDevice)라고 표현된다. As is conventional, the USB device 4 includes an operating system 18, a host stack 20, a device stack, and device hardware 22. In order to be able to act as a USB host, the PDA 4 also drives the virtual HAL driver software 16. When the USB device 4 is driving the virtual HAL driver software 16, it is represented as a HostOnDevice.

동글(10)은 호스트 하드웨어(12:즉, USB 호스트 컨트롤러), MCU(14) 및 소프트호스트 펌웨어(24)를 포함한다. The dongle 10 includes host hardware 12 (ie, a USB host controller), an MCU 14, and a softhost firmware 24.

이하 더 상세하게 설명될 소프트호스트 프로토콜 계층은 동글 커넥터(28) 상에서 장치(4)와 동글(10) 사이의 통신을 제어한다. The softhost protocol layer, which will be described in more detail below, controls the communication between the device 4 and the dongle 10 on the dongle connector 28.

도 3은 MCU(14)의 제어하에서, 동글(10)의 동작을 나타내는 흐름도이다. 도 3의 단계(32)에서, 전력이 상승하면 MCU는 단계(34)에서 제 1 호스트 포트(H1)를 조사해서 여기에 어떤 접속이 있는지 판정한다. 아무 것도 접속되어 있지 않다면, 단계(36)로 가서 처리를 종료한다. 3 is a flowchart showing the operation of the dongle 10 under the control of the MCU 14. In step 32 of FIG. 3, when the power goes up, the MCU examines the first host port H1 in step 34 to determine which connection there is. If nothing is connected, the process goes to step 36 and the process ends.

무언가 접속되어 있다면, 단계(38)에서 MCU는 USB 호스트가 제 1 호스트 포트(H1)에 접속되어 있는지 측정한다. USB 호스트가 제 1 호스트 포트(H1)에 접속되어 있다면, 처리는 단계(40)로 넘어가고 여기서 동글(10)은 USB 송수신기의 역할을 한다. 즉, 이는 제 1 호스트 포트(H1)와 제 2 호스트 포트(H2) 사이에서 직접 통신해서, 접속된 USB 호스트가 종래의 방식으로 제 2 호스트 포트(H2)에 접속된 임의의 USB 장치(또는 장치)와의 통신을 제어할 수 있게 한다.If something is connected, in step 38 the MCU measures whether the USB host is connected to the first host port H1. If the USB host is connected to the first host port H1, processing proceeds to step 40 where the dongle 10 serves as a USB transceiver. That is, it communicates directly between the first host port H1 and the second host port H2, such that any USB device (or device in which the connected USB host is connected to the second host port H2 in a conventional manner). To control communication with

MCU가 단계(38)에서 USB 호스트가 아닌 USB 장치가 제 1 호스트 포트(H1)에 접속되어 있다고 판정하면, 처리는 단계(41)로 넘어가서 제 2 호스트 포트(H2)에 USB 호스트가 접속되어 있는지 판정한다. 접속되어 있다면, 단계(42)에서, USB 호스트/장치 컨트롤러(12) 내에서 USB 장치 코어가 동작해서, 제 1 호스트 포트(H1)에 접속된 USB 장치와 제 2 호스트 포트(H2)에 접속된 USB 호스트 사이에서 종래의 USB 통신을 가능하게 한다. If the MCU determines in step 38 that a USB device other than the USB host is connected to the first host port H1, the process proceeds to step 41 where the USB host is connected to the second host port H2. Determine if there is any. If connected, in step 42, the USB device core is operated in the USB host / device controller 12 to connect the USB device connected to the first host port H1 and the second host port H2. Enables conventional USB communication between USB hosts.

제 2 호스트 포트(H2)에 USB 장치가 접속되어 있다면, MCU(14)는 단계(43)에서 제 1 호스트 포트에 접속된 USB 장치의 수를 세고, 이것이 가상 HAL을 구동하는 장치인지 체크한다. MCU가 단계(43)에서 접속된 장치(4)가 구동 가상 HAL이 아니라고 판정하면, 단계(44)에서 장치(4)를 디스에이블시키고, 예컨대 플래싱 LED를 트리거해서 접속된 장치(4)가 가상 HAL을 지원하지 않는다는 신호를 보낸다. If the USB device is connected to the second host port H2, the MCU 14 counts the number of USB devices connected to the first host port in step 43 and checks if this is the device driving the virtual HAL. If the MCU determines in step 43 that the connected device 4 is not a driving virtual HAL, then in step 44 the device 4 is disabled, for example by triggering a flashing LED to connect the connected device 4 to the virtual. Signals that HAL is not supported.

단계(42)에서 MCU가 접속된 장치(4)가 구동 가상 HAL이라고 판정하면(즉, 가상 HAL 드라이버(16)를 갖고 있다고 판정하면), MCU(14)는 단계(46)에서 동작 모드로 들어가서 동글(10:장치(4)와 함께)이 다른 USB 호스트의 역할을 할 수 있게 할 것이다. 이 모드에서, 동글(10)은 제 2 호스트 포트(H2)에 접속된 임의의 USB 장치(또는 장치)와의 통신을 제어할 수 있으며, 이는 이하 더 상세하게 설명될 것이다.If at step 42 the MCU determines that the connected device 4 is a driving virtual HAL (i.e. it has a virtual HAL driver 16), then the MCU 14 enters the operating mode at step 46 The dongle 10 (along with device 4) will be able to act as another USB host. In this mode, the dongle 10 can control communication with any USB device (or device) connected to the second host port H2, which will be described in more detail below.

개인용 컴퓨터가 USB 호스트인 종래의 시스템에서, 호스트 스택은 호스트 HAL을 통해서 하위의 USB 하드웨어에 액세스한다. 유사하게, 종래의 PDA USB 장치에서, 장치 스택은 장치 HAL을 통해서 하위의 USB 하드웨어에 액세스한다.In a conventional system where a personal computer is a USB host, the host stack accesses the underlying USB hardware through the host HAL. Similarly, in a conventional PDA USB device, the device stack accesses the underlying USB hardware through the device HAL.

그러나, 본 발명에 따라서, 소프트웨어 호스트 시스템에서, 호스트 스택(또는 호스트 스테이션 드라이버 소프트웨어:20)가 호스트 하드웨어(12)에 액세스하려하면, 이는 가상 HAL 드라이버(16)에 액세스 동작의 세부 사항을 전송한다. 가상 HAL 드라이버(16)는 이들 액세스 동작의 세부 사항을 미리 정해진 소프트 호스트 프로토콜 내로 둘러싼다. 소프트 호스트 프로토콜 패킷은 소프트호스트 동글(10)이 자신을 아웃스탠드(outstand)하기 위해서 이를 조사할 때 현재의 USB 장치 하드웨어(22)를 통해서 전송된다. However, in accordance with the present invention, in a software host system, if the host stack (or host station driver software 20) attempts to access the host hardware 12, it sends details of the access operation to the virtual HAL driver 16. . The virtual HAL driver 16 wraps the details of these access operations into a predetermined soft host protocol. Soft host protocol packets are transmitted through the current USB device hardware 22 when the soft host dongle 10 examines them to outstand itself.

따라서, 가상 HAL 드라이버 소프트웨어(16)는 호스트 스테이션 드라이버 소프트웨어에 대해서 호스트 컨트롤러의 존재를 에뮬레이트한다. 즉, 호스트 스택(20)의 관점에서 가상 HAL 드라이버(16)와의 통신은 종래의 시스템에서의 호스트 HAL과의 통신과 다르지 않다. 호스트 스택(20)은 가상 HAL 드라이버(16)를 통해서 실제 호스트 하드웨어를 볼 것이다. Thus, the virtual HAL driver software 16 emulates the presence of the host controller for the host station driver software. In other words, the communication with the virtual HAL driver 16 from the viewpoint of the host stack 20 is no different from the communication with the host HAL in a conventional system. The host stack 20 will see the real host hardware through the virtual HAL driver 16.

반대로, 가상 HAL 드라이버 소프트웨어(16)는 장치 컨트롤러(또는 장치 스택:22)에 대해서 장치 컨트롤러의 존재를 에뮬레이트한다. 따라서 가상 HAL 드라이버 소프트웨어(16)는 호스트 스테이션 드라이버 소프트웨어(20)와 장치 컨트롤러 사이의 통신을 변환한다. In contrast, the virtual HAL driver software 16 emulates the presence of a device controller for the device controller (or device stack 22). Thus, the virtual HAL driver software 16 translates the communication between the host station driver software 20 and the device controller.

소프트 호스트 프로토콜은 다음과 같은 액세스 기능을 제공한다. The soft host protocol provides the following access functions.

동글 호스트 하드웨어(12)에서 레지스터를 판독하는 기능.The ability to read registers from the dongle host hardware (12).

동글 호스트 하드웨어(12)에 레지스터를 기록하는 기능.The ability to write registers to the dongle host hardware (12).

동글 호스트 하드웨어(12) 내의 버퍼 메모리를 판독하는 기능.A function that reads the buffer memory in the dongle host hardware 12.

동글 호스트 하드웨어(12) 내의 버퍼 메모리에 기록하는 기능.Write to buffer memory in dongle host hardware 12.

예컨대 어떤 값과 AND/OR시키거나, 수정된 값을 레지스터로 재기록시키는 것과 같은 더 개선된 기능이 추가되어 시스템 성능을 개선할 수 있다. For example, more advanced features, such as AND / OR with certain values or rewriting the modified values into registers, can improve system performance.

소프트 호스트 프로토콜은 가상 HAL 상에서 수행 중인 호스트 스택(20)이 장치 컨트롤러 하드웨어를 사용하는 호스트 컨트롤러(12)의 하드웨어를 액세스할 수 있는 방법을 정의한다. 소프트 호스트 프로토콜이 이하 상세하게 설명된다. 이 설명에서, 용어 "호스트 동글"은 동글(10)을 나타내는 데 사용되고, 여기서 용어 "호스트 온 장치"는 장치(4), 즉 가상 HAL(16) 상에서 호스트 스택(20)을 구현하는 USB 장치 하드웨어(22)를 구비한 내장형 시스템을 나타내는 데 사용된다. The soft host protocol defines how the host stack 20 running on the virtual HAL can access the hardware of the host controller 12 using the device controller hardware. The soft host protocol is described in detail below. In this description, the term "host dongle" is used to refer to the dongle 10, where the term "host on device" refers to USB device hardware that implements the host stack 20 on the device 4, ie the virtual HAL 16. It is used to represent an embedded system with 22.

소프트 호스트 프로토콜은 도 3의 끝에서 시작하고, 여기서 호스트 동글(10) 은 접속된 장치(4)의 수를 세고, 접속된 장치(4)는 호스트 온 장치임이 확인된다. The soft host protocol begins at the end of FIG. 3, where the host dongle 10 counts the number of connected devices 4, and it is confirmed that the connected device 4 is a host on device.

동작 모드에서, MCU(14)는 인터럽트 파이프(an interrupt pipe)를 설정하고, 가상 HAL 드라이버(16)에 대해서 데이터를 수 밀리 초마다 조사한다. 장치(4)와 동글(10) 사이에 전송된 데이터는 소프트 호스트 프로토콜을 통해서 소프트 호스트 패킷의 형태로 전송된다. PDA(4) 상의 호스트 스택(20)이 가상 HAL 드라이버(16)를 통해서 하드웨어 액세스 요청을 전송했다면, 동글(10)의 제 1 호스트 포트(H1)가 인터럽트 파이프를 통해서 이를 조사할 때, 가상 HAL 드라이버(16)는 요청을 소프트 호스트 패킷으로 전송할 것이다. In the operating mode, the MCU 14 sets up an interrupt pipe and checks the virtual HAL driver 16 for data every few milliseconds. Data transmitted between the device 4 and the dongle 10 is transmitted in the form of soft host packets via the soft host protocol. If the host stack 20 on the PDA 4 has sent a hardware access request through the virtual HAL driver 16, when the first host port H1 of the dongle 10 examines it through the interrupt pipe, the virtual HAL Driver 16 will send the request in a soft host packet.

MCU(14)는 내장된 USB 호스트 컨트롤러(12)의 버퍼 메모리로부터 이 소프트 호스트 패킷을 검색할 것이며, 따라서 하드웨어 액세스를 수행할 것이다. 리턴되는 데이터가 있다면(판독 동작), MCU(14)는 대응하는 데이터를 호스트(1)를 통해서 전송할 것이다. MCU 14 will retrieve this soft host packet from the buffer memory of embedded USB host controller 12, thus performing hardware access. If there is data to be returned (read operation), MCU 14 will send the corresponding data through host 1.

트래픽traffic

호스트 동글(10) 및 호스트 온 장치(4)는 전용 양방향 벌크 파이프를 사용해서 통신한다. 4가지의 타입의 패이로드가 있다. The host dongle 10 and the host on device 4 communicate using a dedicated bidirectional bulk pipe. There are four types of payloads.

HRU (호스트 동글 요청 유닛)HRU (Host Dongle Request Unit)

호스트 동글(10)에 의해 전송됨Sent by host dongle 10

8바이트 패이로드의 벌크 패킷Bulk packet with 8 byte payload

호스트 온 장치(4)를 조사하는 데 사용됨Used to investigate host on device (4)

인터럽트 정보(HRU_IRQ)를 포함할 수 있음May contain interrupt information (HRU_IRQ)

호스트 동글(10)은 HRU를 전송한 이후에 항상 64바이트의 벌크 인(bulk-in)을 전송함The host dongle 10 always sends a 64-byte bulk-in after sending the HRU.

호스트 온 장치(4)는 이 벌크 인을 통해서 NOB 또는 CRP를 가지고 응답할 것임The host on device 4 will respond with NOB or CRP through this bulk in.

NOB (아웃스탠딩 비즈니스(Outstanding Business)가 아님)NOB (Not Outstanding Business)

호스트 온 장치(4)에 의해 전송됨Sent by Host On Device (4)

8바이트 패이로드의 벌크 패킷Bulk packet with 8 byte payload

아웃스탠딩 트랜잭션이 없을 때 전송됨Sent when there are no outstanding transactions

CRP (공통 요청 패킷)CRP (Common Request Packet)

호스트 온 장치(4)에 의해 전송됨Sent by Host On Device (4)

16-64 바이트의 벌크 패킷Bulk packet of 16-64 bytes

이전에 수신된 CRP 커맨드 및 최적의 데이터 세트의 결과를 포함Contains the results of previously received CRP commands and optimal data sets

APR (요청되는 바에 따라서)APR (as requested)

호스트 동글(10)에 의해 전송됨Sent by host dongle 10

16-64 바이트의 벌크 패킷Bulk packet of 16-64 bytes

플로우Flow

모든 USB 시스템에서와 같이 호스트에 의한 액션으로 전송이 시작한다. 소프트 호스트 프로토콜의 경우에, 소프트 호스트 동글(10)이 항상 호스트이다. 소프트 호스트 전송 사이클은 위에 설명된 바와 같이 HRU를 통해 시작한다. 현재의 전송 사이클은 호스트 동글(10)이 다음 전송 사이클을 개시하기 전에 완료되어야 한다. As with all USB systems, the transfer begins with action by the host. In the case of a soft host protocol, the soft host dongle 10 is always the host. The soft host transmission cycle begins with the HRU as described above. The current transmission cycle must be completed before the host dongle 10 starts the next transmission cycle.

폴 낫씽(Poll-nothing) 사이클 : HRU-NOBPoll-nothing cycle: HRU-NOB

호스트 동글(10)은 아웃스탠딩 커맨드 세트에 관해 호스트 온 장치(4)를 조사한다. 아웃스탠딩 커맨드 세트가 없으면, 호스트 온 장치(4)는 NOB로 응답한다. The host dongle 10 examines the host on device 4 for an outstand command set. If there is no outstand command set, the host on device 4 responds with a NOB.

트랜잭션transaction

호스트 동글(10)이 BULK-OUT를 전송한다. The host dongle 10 sends a BULK-OUT.

호스트 동글(10)이 DATA(HRU)를 전송한다. The host dongle 10 transmits DATA (HRU).

호스트 온 장치(4)가 ACK를 전송한다. The host on device 4 sends an ACK.

호스트 동글(10)은 BUKL-IN을 전송한다. The host dongle 10 transmits BUKL-IN.

호스트 온 장치(4)는 DATA(NOB)를 전송한다. The host on device 4 sends DATA (NOB).

호스트 동글(10)은 ACK를 전송한다. The host dongle 10 sends an ACK.

폴 섬씽(Poll-something) 사이클: HRU-CRP-APRPoll-something cycle: HRU-CRP-APR

호스트 동글(10)은 호스트 온 장치(4)에 대해서 아웃스탠딩 커맨드 세트를 조사한다. The host dongle 10 examines a set of outstanding commands to the host on device 4.

호스트 온 장치(4)는 CRP에 의해 아웃스탠딩 커맨드 세트를 전송한다. 호스트 동글(10)은 커맨드를 수행하고, APR에 의해 결과를 리턴한다. The host on device 4 sends a set of outstanding commands by CRP. The host dongle 10 performs a command and returns a result by the APR.

트랜잭션transaction

호스트 동글(10)은 BULK-OUT을 전송한다. The host dongle 10 transmits a BULK-OUT.

호스트 동글(10)은 DATA(HRU)를 전송한다. The host dongle 10 transmits DATA (HRU).

호스트 온 장치(4)는 ACK를 전송한다. The host on device 4 sends an ACK.

호스트 동글(10)은 BULK-IN을 전송한다. The host dongle 10 sends a BULK-IN.

호스트 온 장치(4)는 DATA(CRP)를 전송한다. The host on device 4 transmits DATA (CRP).

호스트 동글(10)은 ACK를 전송한다. The host dongle 10 sends an ACK.

호스트 동글(10)은 BULK-OUT을 전송한다. The host dongle 10 transmits a BULK-OUT.

호스트 동글(10)은 DATA(ARP)를 전송한다. The host dongle 10 transmits DATA (ARP).

호스트 온 장치(4)는 ACK를 전송한다.The host on device 4 sends an ACK.

인터럽트 사이클 : HRU_IRQ-CRP-APRInterrupt cycle: HRU_IRQ-CRP-APR

호스트 동글(10)은 아웃스탠딩 하드웨어 인터럽트시에 호스트 온 장치(4)에 경고한다. The host dongle 10 warns the host on device 4 upon outstanding hardware interrupts.

호스트 온 장치(4)는 적절한 커맨드 세트를 결정해서 이를 CRP에 의해 전송한다. The host on device 4 determines the appropriate command set and sends it by the CRP.

호스트 동글(10)은 커맨드를 수행해서, APR에 의해 결과를 리턴한다. The host dongle 10 performs a command and returns a result by the APR.

호스트 온 장치(4)는 아웃스탠딩 인터럽트를 제거하거나 HRU_IRQ의 생성을 불가능하게 해야 하며, 혹은 호스트 동글(10)이 계속해서 HRU_IRQ를 계속해서 전송해야 할 것이다. The host on device 4 should either remove the outstanding interrupt or disable the generation of the HRU_IRQ, or the host dongle 10 will continue to transmit the HRU_IRQ.

트랜잭션transaction

호스트 동글(10)은 BULK-OUT을 전송한다. The host dongle 10 transmits a BULK-OUT.

호스트 동글(10)은 DATA(HRU_IRQ)를 전송한다. The host dongle 10 transmits DATA (HRU_IRQ).

호스트 온 장치(4)는 ACK를 전송한다. The host on device 4 sends an ACK.

호스트 동글(10)은 BULK-IN을 전송한다. The host dongle 10 sends a BULK-IN.

호스트 온 장치(4)는 DATA(CRP)를 전송한다. The host on device 4 transmits DATA (CRP).

호스트 동글(10)은 ACK를 전송한다. The host dongle 10 sends an ACK.

호스트 동글(10)은 BULK-OUT을 전송한다. The host dongle 10 transmits a BULK-OUT.

호스트 동글(10)은 DATA(ARP)를 전송한다. The host dongle 10 transmits DATA (ARP).

호스트 온 장치(4)는 ACK를 전송한다.The host on device 4 sends an ACK.

패킷 포맷Packet format

HRU 포맷HRU format

HRU는 다음 정보를 포함한다. The HRU contains the following information.

현재 프레임 번호The current frame number

호스트 동글(10) 내의 호스트 컨트롤러(12)의 HcInterruptStatusHcInterruptStatus of the host controller 12 in the host dongle 10

장치 컨트롤러(22)의 인터럽트 상태Interrupt status of device controller 22

NOB 포맷NOB format

특별히 요구되는 정보 없음No information required specifically

CRP 및 APR 포맷CRP and APR Formats

헤더 내의 액티브 비트는 CRP의 경우에 1이고, APR의 경우에 0이다. The active bit in the header is 1 for CRP and 0 for APR.

CRP은 16-64바이트의 크기가 될 수 있다. 전체 크기는 CRP can be 16-64 bytes in size. Overall size

커맨드 세트의 수(각각 8바이트)The number of command sets (8 bytes each)

선택적인 데이터 세트Optional data set

CRP 내의 최대 커맨드 세트의 수는 8이다. The maximum number of command sets in a CRP is eight.

데이터 세트의 최대 크기는 64-(8*커맨드 세트의 수)이다. The maximum size of the data set is 64- (number of 8 * command sets).

단일 커맨드 요청 패킷 내의 다수의 커맨드 세트는 일련의 하드웨어의 액세스가 단일 패킷 내에서 통신될 수 있게 하고, 따라서 지연 전송을 감소시킨다. Multiple command sets in a single command request packet allow access of a set of hardware to be communicated within a single packet, thus reducing delayed transmission.

커맨드 세트 포맷Command set format

커맨드 세트는 8바이트 데이터 구조이다. 이는 다음 정보를 포함한다. The command set is an 8 byte data structure. This includes the following information:

커맨드 세트 헤더(1바이트)Command Set Header (1 byte)

커맨드 세트 인덱스(2바이트)Command set index (2 bytes)

커맨드 세트 데이터(4바이트)Command set data (4 bytes)

커맨드 세트 보조(1바이트)Command set auxiliary (1 byte)

Figure 112005015128567-pct00001
Figure 112005015128567-pct00001

Figure 112005015128567-pct00002
Figure 112005015128567-pct00002

따라서, 가상 하드웨어 추상화 계층(가상 HAL)은 USB 장치 하드웨어를 사용해서 접속된 동글 상의 타겟 하드웨어로의 완전한 액세스를 제공한다. 즉, 현재의 USB 장치 하드웨어는 비동기식 마이크로프로세서 인터페이스 버스로서 사용되어 USB 호스트 드라이버가 타겟 하드웨어에 액세스할 수 있게 한다. Thus, the virtual hardware abstraction layer (virtual HAL) provides full access to the target hardware on the dongle connected using the USB device hardware. That is, current USB device hardware is used as an asynchronous microprocessor interface bus, allowing the USB host driver to access the target hardware.

가상 HAL을 사용함으로써 하드웨어 동글이 USB 소프트웨어를 처리할 필요가 없게 되고, 이로써 동글의 비용이 낮아지고, 호스트 소프트웨어가 USB 장치 상의 내장된 시스템에 의해 처리될 수 있다는 이점을 제공한다. The use of a virtual HAL eliminates the need for hardware dongle to handle USB software, thereby lowering the cost of the dongle and providing the advantage that the host software can be handled by an embedded system on a USB device.

따라서, 본 발명의 바람직한 실시예에서, USB 장치로 하여금 현재의 하드웨어를 변경하는 일 없이 USB 호스트의 성능을 획득할 수 있게 하는 하드웨어 동글이 제공된다. 이를 달성하기 위해서, USB 장치는 USB 장치 상의 내장된 시스템에 의해 처리될 수 있는 에뮬레이션 소프트웨어를 구동한다. 이는 하드웨어 동글이 USB 소프트웨어를 처리할 필요가 없어서, 동글이 저렴해진다고 하는 이점을 제공한다. Thus, in a preferred embodiment of the present invention, a hardware dongle is provided that enables a USB device to obtain the performance of a USB host without changing the current hardware. To achieve this, the USB device runs emulation software that can be processed by the embedded system on the USB device. This provides the advantage that the dongle is inexpensive because the hardware dongle does not have to handle USB software.

본 발명은 가상 HAL 드라이버 소프트웨어가 USB 장치로 하여금 동글(10)과 관련해서 USB 호스트로서 기능하게 하는 시스템에 대해서 설명되었다. 그러나, 유사한 구조의 가상 HAL 드라이버 소프트웨어가 USB 장치 성능을 사용해서 시스템에 다수의 인터페이스/기능을 추가하는데 사용될 수도 있다. 예컨대, 드라이버 소프트웨어는 USB 장치가 블루투스, IrDa, USB-OTG 또는 다른 통신 프로토콜로 통신할 수 있게 한다. The present invention has been described with reference to a system in which virtual HAL driver software enables a USB device to function as a USB host in conjunction with the dongle 10. However, similarly structured virtual HAL driver software may be used to add multiple interfaces / functions to the system using USB device capabilities. Driver software, for example, allows USB devices to communicate over Bluetooth, IrDa, USB-OTG or other communication protocols.

Claims (6)

버스 통신 시스템에서 사용하는 버스 스테이션으로서, As a bus station used in bus communication systems, 제 1 통신 포트 및 제 2 통신 포트를 포함하고,A first communication port and a second communication port, 상기 버스 스테이션은 상기 제 2 통신 포트에 연결된 호스트 스테이션의 존재를 검출하게 되면 제 1 동작 모드로 동작하되,When the bus station detects the presence of a host station connected to the second communication port, the bus station operates in a first operation mode. 상기 제 1 동작 모드는 상기 제 2 통신 포트에 연결된 상기 호스트 스테이션과 상기 제 1 통신 포트에 연결된 제 1 장치 스테이션 사이의 통신을 전송하며, The first mode of operation transmits communication between the host station connected to the second communication port and a first device station connected to the first communication port, 상기 버스 스테이션은 또한 상기 제 2 통신 포트에 연결된 호스트 스테이션이 존재하지 않음을 검출하게 되면 대체 호스트 스테이션으로서 제 2 동작 모드로 동작하되,The bus station also operates in a second mode of operation as an alternate host station if it detects that there is no host station connected to the second communication port. 상기 버스 스테이션은 상기 제 2 동작 모드에서, 상기 제 2 통신 포트에 연결된 다른 장치 스테이션 대신에 상기 제 1 통신 포트에 연결된 상기 제 1 장치 스테이션과 통신 프로토콜에 따라 통신하고, 상기 버스 스테이션은 통신을 개시하며 상기 다른 장치 스테이션은 상기 제 1 장치 스테이션에 대한 호스트 스테이션으로서 나타나고 상기 제 1 장치 스테이션과의 통신을 포함하는 동작을 수행하는 The bus station communicates with the first device station connected to the first communication port in accordance with a communication protocol in the second mode of operation, instead of another device station connected to the second communication port, the bus station initiates communication And the other device station appears as a host station for the first device station and performs an operation including communication with the first device station. 버스 스테이션.Bus station. 제 1 항에 있어서, The method of claim 1, 상기 버스 스테이션은 상기 제 1 동작 모드에서 USB 송수신기로서 동작하고, 상기 제 2 동작 모드에서 USB 호스트로서 동작하는The bus station operates as a USB transceiver in the first mode of operation and operates as a USB host in the second mode of operation. 버스 스테이션.Bus station. 제 1 항에 있어서, The method of claim 1, 상기 버스 스테이션은 상기 제 1 동작 모드에서, 상기 제 1 및 제 2 통신 포트에 연결되어, 상기 제 2 통신 포트에 연결된 상기 호스트 스테이션과 상기 제 1 장치 스테이션 사이의 통신을 전송하는 송수신기 회로를 더 포함하는 The bus station further comprises transceiver circuitry, in the first mode of operation, coupled to the first and second communication ports to transmit communication between the host station and the first device station connected to the second communication port. doing 버스 스테이션.Bus station. 버스 시스템에서 사용하는 버스 스테이션으로서, As a bus station used in bus systems, 통신 포트에 연결된 장치 컨트롤러를 포함하되,Includes a device controller connected to a communications port, 상기 통신 포트는 장치 스테이션으로서 동작하고,The communication port acts as a device station, 상기 버스 스테이션은 운영 체제, 및 호스트 컨트롤러와 통신하고 상기 운영 체제와 정보를 주고 받는 호스트 스테이션 드라이버 소프트웨어를 포함하는 시스템 소프트웨어의 제어 하에 동작하며, The bus station operates under the control of an operating system and system software including host station driver software that communicates with and communicates with the host controller, 상기 시스템 소프트웨어는 상기 호스트 스테이션 드라이버 소프트웨어에 대해서 호스트 컨트롤러의 존재를 에뮬레이트하고, 상기 장치 컨트롤러에 대해서 장치 스테이션 드라이버 소프트웨어의 존재를 에뮬레이트하며, 또한 상기 호스트 스테이션 드라이버 소프트웨어로부터 상기 장치 컨트롤러로 혹은 상기 장치 컨트롤러로부터 상기 호스트 스테이션 드라이버 소프트웨어로 통신을 변환하는 호스트 에뮬레이션 소프트웨어를 더 포함하는The system software emulates the presence of a host controller for the host station driver software, emulates the presence of device station driver software for the device controller, and also from the host station driver software to the device controller or from the device controller. Further comprising host emulation software to convert communications to the host station driver software. 버스 스테이션.Bus station. 제 1 버스 통신 포트를 포함하는 제 1 버스 스테이션 및 제 2 버스 스테이션을 포함하는 버스 통신 시스템으로서,A bus communication system comprising a first bus station comprising a first bus communication port and a second bus station, comprising: 상기 제 2 버스 스테이션은 제 2 버스 통신 포트를 더 포함하고, The second bus station further comprises a second bus communication port, 상기 제 2 버스 스테이션은 상기 제 2 버스 통신 포트에 연결된 호스트 스테이션의 존재를 검출하게 되면 제 1 동작 모드로 동작하고, 상기 제 2 버스 통신 포트에 연결된 호스트 스테이션이 존재하지 않음을 검출하게 되면 제 2 동작 모드로 동작하며,The second bus station operates in a first operation mode when detecting the presence of a host station connected to the second bus communication port, and when detecting that no host station connected to the second bus communication port exists, Operating in the operating mode, 상기 제 2 버스 통신 포트에 장치 컨트롤러가 연결되되,A device controller is connected to the second bus communication port, 상기 장치 컨트롤러는 운영 체제, 및 호스트 컨트롤러와 통신하고 상기 운영 체제와 정보를 주고 받는 호스트 스테이션 드라이버 소프트웨어를 포함하는 시스템 소프트웨어의 제어 하에 동작하고,The device controller operates under the control of an operating system and system software including host station driver software that communicates with and communicates with the host controller, 상기 시스템 소프트웨어는 상기 호스트 스테이션 드라이버 소프트웨어에 대해서 호스트 컨트롤러의 존재를 에뮬레이트하고, 상기 장치 컨트롤러에 대해서 장치 스테이션 드라이버 소프트웨어의 존재를 에뮬레이트하며, 또한 상기 호스트 스테이션 드라이버 소프트웨어로부터 상기 장치 컨트롤러로 혹은 상기 장치 컨트롤러로부터 상기 호스트 스테이션 드라이버 소프트웨어로 통신을 변환하는 호스트 에뮬레이션 소프트웨어를 더 포함하는The system software emulates the presence of a host controller for the host station driver software, emulates the presence of device station driver software for the device controller, and also from the host station driver software to the device controller or from the device controller. Further comprising host emulation software to convert communications to the host station driver software. 버스 통신 시스템.Bus communication system. 삭제delete
KR1020057004937A 2002-09-24 2003-05-22 Bus connection system KR101005397B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SG200200239 2002-09-24
SGPCT/SG02/00239 2002-09-24

Publications (2)

Publication Number Publication Date
KR20050053683A KR20050053683A (en) 2005-06-08
KR101005397B1 true KR101005397B1 (en) 2010-12-30

Family

ID=37249212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057004937A KR101005397B1 (en) 2002-09-24 2003-05-22 Bus connection system

Country Status (1)

Country Link
KR (1) KR101005397B1 (en)

Also Published As

Publication number Publication date
KR20050053683A (en) 2005-06-08

Similar Documents

Publication Publication Date Title
US7640385B2 (en) Dual-mode bus station and system for communications
EP2047370B1 (en) Method and apparatus for distributing usb hub functions across a network
KR101497001B1 (en) Graphics multi-media ic and method of its operation
US6618788B1 (en) ATA device control via a packet-based interface
EP1866778B1 (en) Method and apparatus for improving the performance of usb mass storage devices in the presence of long transmission delays
EP2118759B1 (en) Enhanced wireless usb protocol and hub
US7162566B2 (en) USB-based host-to-host networking method
JPH07235964A (en) Data communication system between terminal device (dte) and data communication equipment (dce) and high-speed data-transmitting method
US20090063717A1 (en) Rate Adaptation for Support of Full-Speed USB Transactions Over a High-Speed USB Interface
US20070124527A1 (en) Virtual Serial Apparatus
US20070198761A1 (en) Connection management mechanism
US11500541B2 (en) Memory system and controlling method
EP1754160A1 (en) Bus connection device
EP0772831B1 (en) Bidirectional parallel signal interface
KR20040041623A (en) Bus system and bus interface for connection to a bus
CN110971621B (en) Embedded multi-CPU interconnection circuit based on SDIO interface, interconnection method and driving method
KR101005397B1 (en) Bus connection system
US6006284A (en) Method and apparatus for driving a parallel part to provide multiple modes of communications between a host and a peripheral
US20050273541A1 (en) Circuit and method for adaptively recognizing a data packet in a universal serial bus network device
TW200842601A (en) Method and apparatus for performing full transfer automation in a USB controller
CN117971751A (en) High-efficiency SPI and multi-channel UART conversion system and method

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
N231 Notification of change of applicant
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131209

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171211

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee