KR100290942B1 - 유니버설 시리얼 버스 디바이스 내부로 및 외부로 데이터를 송신 및 수신하기 위한 장치 및 방법 - Google Patents

유니버설 시리얼 버스 디바이스 내부로 및 외부로 데이터를 송신 및 수신하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR100290942B1
KR100290942B1 KR1019990000085A KR19990000085A KR100290942B1 KR 100290942 B1 KR100290942 B1 KR 100290942B1 KR 1019990000085 A KR1019990000085 A KR 1019990000085A KR 19990000085 A KR19990000085 A KR 19990000085A KR 100290942 B1 KR100290942 B1 KR 100290942B1
Authority
KR
South Korea
Prior art keywords
endpoint
mapping
token
pipe
pipes
Prior art date
Application number
KR1019990000085A
Other languages
English (en)
Other versions
KR19990067730A (ko
Inventor
브리프데이비드
딘그레고리루이스
Original Assignee
클라크 3세 존 엠.
내셔널 세미콘덕터 코포레이션
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 클라크 3세 존 엠., 내셔널 세미콘덕터 코포레이션 filed Critical 클라크 3세 존 엠.
Publication of KR19990067730A publication Critical patent/KR19990067730A/ko
Application granted granted Critical
Publication of KR100290942B1 publication Critical patent/KR100290942B1/ko

Links

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
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system

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 디바이스를 동적으로 구성하는 방법 및 장치. 상기 USB 디바이스는 수신된 토큰과 종단점 파이프를 연관시키는 복수의 매핑을 포함한다. 상기 매핑은 초기화에서 설정되고, USB 네트워크의 동작중에 동적으로 선택된다.

Description

유니버설 시리얼 버스 디바이스 내부로 및 외부로 데이터를 송신 및 수신하기 위한 장치 및 방법{AN APPARATUS AND METHOD FOR TRANSMITTING AND RECEIVING DATA INTO AND OUT OF A UNIVERSAL SERIAL BUS DEVICE}
본 장치 및 방법은 유니버설 시리얼 버스 네트워크를 통한 데이터 송신 및 수신과 관련된 것으로, 특히 복수 종단점 파이프에 데이터를 보내고 그로부터 데이터를 수신하는 것과 관련된다.
유니버설 시리얼 버스(USB) 는 퍼스널 컴퓨터를 다양한 장치들, 즉 디지털 전화선, 모니터, 모뎀, 마우스, 프린터, 스캐너, 게임 제어기, 키보드, 및 다른 주변장치들 등에 접속시키는 표준 주변 인터페이스이다. 따라서, USB 는 RS-232C 시리얼 포트, 병렬 포트, PS/2 인터페이스 및 게임/MIDI 포트 등과 같은 현존 인터페이스를 대신한다.
USB 에 의하면, 모든 부속 디바이스가 타이어드-스타(tiered-star) 토폴로지를 사용하여 단일 커넥터형으로 퍼스널 컴퓨터에 접속된다. 호스트 퍼스널 컴퓨터는 단일 USB 제어기를 포함한다. 상기 호스트 제어기는 USB 네트워크와 호스트 퍼스널 컴퓨터간에 인터페이스를 제공한다. 상기 호스트 제어기는 USB 자원에 대한 모든 액세스를 제어하고 버스의 토폴로지를 모니터한다. USB 허브는 USB 디바이스들에 대한 USB 부착점들을 제공한다.
도 1 에 USB 네트워크의 타이어드-스타 토폴로지의 일례가 도시되어 있다. 호스트 PC (100) 는 호스트 제어기 (102) 를 경유하는 USB 포트 접속부를 갖는 전형적인 퍼스널 컴퓨터이다. 전형적으로 호스트 PC (100) 의 일부로 구현되는 호스트 제어기 (102) 는 루트 허브 (110) 에 직접 접속되어 있다. 복합 디바이스 (120), 허브 (130), 및 디바이스 (140) 는 허브 (110) 를 통하여 호스트 제어기 (102) 에 접속된다. 디바이스 (132 및 134) 는 허브 (130) 및 허브 (110) 를 통해 호스트 제어기 (102) 에 접속된다.
복합 디바이스 (120) 는 디바이스 (124 및 126) 와 허브 (122) 를 포함한다. 복합 디바이스 (120) 의 허브 (122) 는 허브 (110) 를 통해 호스트 제어기 (102) 에 접속된다. 복합 디바이스 (120) 의 디바이스 (124 및 126) 는 호스트 제어기 (102) 에 허브 (122) 및 허브 (110) 를 통해 접속된다. 복합 디바이스의 실례는 통합된 프린터와 팩스이다. 프린터는 디바이스 (124) 이고, 팩스는 디바이스 (126) 이다.
도 1 에 도시된 타이어드-스타 토폴로지에 의하여 데이터가 다양한 디바이스들에서 호스트 PC (100) 의 내부로 송신되고, 호스트 PC (100) 에서 다양한 디바이스들로 데이터가 송신될 수 있다. 데이터가 호스트에서 디바이스로 송신될 때, 데이터는 상호접속 허브들을 통해 하류로 송신된다. 데이터가 디바이스로부터 호스트로 송신될 때는, 데이터는 상호접속 허브를 통해 상류로 송신된다.
상기 USB 허브들과 디바이스들은, USB 네트워크를 완전하게 재가동시키지 않고서 접속될 수도 있고 단절될 수도 있다. 디바이스 또는 허브가 상류 허부에 접속됨과 동시에, 상류 허브는 호스트 제어기에게 상태 변화를 고지한다. USB 프로토콜을 따라, 호스트 제어기는 디바이스에 접속된 허브의 포트를 인에이블한다. 호스트 제어기는 그리고 나서 고유한 기능 어드레스를 각 디바이스에 할당한다. 호스트 제어기 (102) 가 고유한 기능 어드레스들을 할당할 때 포트들은 한번에 하나씩 인에이블된다. 복합 디바이스의 접속과 동시에, 호스트 제어기는 고유한 기능 어드레스를 복합 디바이스 내에 수용된 각 디바이스에 할당한다.
도 1 로 돌아가서, 디바이스 (124, 126, 132, 134, 및 140) 는 USB 네트워크로의 접속과 동시에 고유한 기능 어드레스를 각각 할당받는다. 마찬가지로, 허브 (110, 122, 및 130) 도 각각 고유한 기능 어드레스를 할당받아 USB 네트워크로의 접속과 동시에 USB 디바이스로 작동한다.
USB 펑션(Fuction)은 버스 상에서 정보를 송신 및 수신할 수 있는 USB 디바이스이다. 상기 펑션은 하나 또는 그 이상의 구성들을 가질 수 있으며, 상기 구성 각각은 디바이스를 구성하는 인터페이스들을 정의한다. 각 인터페이스는 차례로 하나 이상의 종단점들로 이루어져 있다.
종단점은 데이터의 궁극적인 소스 또는 싱크이다. 종단점 파이프는 USB 와 메모리간의 데이터 이동을 제공하고, USB 호스트와 펑션 종단점간의 경로를 완성한다. USB 디바이스는 소정의 시간에 상기 종단점 파이프들을 16 개까지 지원할 수도 있다. 각 종단점 파이프는 동일한 기능 어드레스를 갖는다.
종단점 디바이스의 초기화시에, 호스트 제어기는 파이프를 종단점 펑션과 연계시킨다. 파이프에 의하여 호스트 제어기는 데이터를 종단점으로부터 호스트 메모리 버퍼 내로 그리고 데이터를 호스트 메모리 버퍼 외부로부터 종단점내로 이동시킬 수 있다. USB 명세는 두가지 형태의 파이프 통신 모드, 즉 스트림 및 메시지(stream and message) 모드를 구현한다. 스트림 데이터는 정의된 USB 구조를 갖지 않는다. 메시지 데이터는 정의된 USB 구조를 갖는다.
초기화시에, 파이프에 USB 버스 액세스와 대역폭 사용에 대한 청구가 지정된다. 상기 지정은 특정 파이프를 통해 종단점까지 데이터를 송신하기 위한 우선권을 결정한다. 또한, 종단점의 특성은 초기화시의 파이프와 관련되어 있다. 상기 특성은 최대 데이터 페이로드 사이즈(payload size), 전송의 방향성, 및 다른 적절한 특성 데이터를 포함한다. 상기 특성들은 파이프를 통한 데이터 전송시에 호스트에 의해 사용된다.
USB 버스 액세스와 대역폭에 대한 파이프에의 청구 지정에 의하여, 종단점에 대한 모든 입력/출력 데이터 요청이 USB 버스의 가용 대역폭에 대해 적절히 서비스되는 것을 확보하기 위하여 호스트 제어기는 최선을 다할 수 있다. 버스 액세스와 대역폭에 대한 파이프에의 청구 지정은 나중에 구성되는 디바이스로의 할당을 제한한다. USB 버스의 대역폭이 완전히 할당되면, 순차적으로 구성된 디바이스에는 버스 대역폭이 할당될 수 없다. 결과적으로 순차적으로 구성된 디바이스에는 파이프가 할당될 수 없다.
초기화 공정이 완료된 후 얼마뒤에, 디바이스의 특정 종단점에 대한 파이프 할당이 고정된다. 이것은 디바이스의 요청된 기능성이 발달함에 따라 변경될 수 있다. 따라서, 복수의 종단점 펑션들을 포함하는 디바이스들에는 복수의 파이프들(각각은 특정 종단점과 관련됨)이 할당될 것이다.
각 종단점은 USB 상에서 어드레스부여가능한 실체이며, USB 호스트 제어기의 IN 과 OUT 토큰에 응답하도록 요구된다. IN 토큰은 호스트가 종단점으로부터 정보를 수신하도록 요청받았다는 것을 나타내고, OUT 토큰은 호스트가 정보를 종단점에 막 보내려고 한다는 것을 나타낸다.
종단점에 어드레스지정된 IN 토큰을 검지하자마자, 상기 종단점은 데이터 패킷에 따라 반응해야 한다. 상기 종단점이 현재 기능정지되어(stall) 있으면, STALL 핸드쉐이크(handshake) 패킷이 복귀한다. 상기 종단점이 인에이블이지만, 어떤 데이터도 존재하지 않으면, NAK(Negative Acknowledgement) 핸드쉐이크 패킷이 송신된다.
상기와 마찬가지로, 종단점에 어드레스지정된 OUT 토큰의 검지시에, 상기 종단점은 호스트에 의해 보내진 데이터 패킷을 수신하여, 그것을 버퍼에 저장한다. 상기 종단점 파이프가 현재 기능정지되어 있다면, 데이터 송신의 끝에서, STALL 핸드쉐이크 패킷이 보내진다. 종단점 파이프가 현재 디스에이블이면, 데이터 송신의 끝에서, 어떤 핸드쉐이크 패킷도 보내지지 않는다. 종단점 파이프가 인에이블이지만, 데이터를 저장할 어떤 버퍼도 존재하지 않는다면, NAK 핸드쉐이크 패킷이 보내진다.
디스에이블된 종단점, 또는 종단점 파이프에 현재 매핑되지 않은 종단점들은 IN, OUT, 또는 SETUP 토큰들에 응답하지 않는다.
USB 는 파이프를 통한 4 가지 형태의 데이터 전송을 정의한다. 이는 제어, 벌크, 인터럽트, 및 등시성(isochronous) 이다.
제어 이전은 호스트에 의하여 사용되어 허브에 부착시의 디바이스를 구성한다. 제어 이전은 호스트 제어기에 의하여 디바이스와의 특정 트랜잭션을 구현하는데 사용될 수도 있다.
벌크 전송은 통상적으로 대량의 데이터의 순차적 전송이다. 벌크 전송은 에러 검지와 손상된 데이터의 재송신을 사용하여 신뢰성 있는 트랜잭션을 제공한다. 벌크 전송은 시간에 영향을 받지 않으므로, 벌크 전송에 할당된 버스 대역폭은 현재 사용가능한 어느 것이나 될 수 있다.
인터럽트 전송은 디바이스로부터 발생되는 작고 순간적인 데이터 트랜잭션이다.
등시성 전송은 연속적인 실시간 데이터 트랜잭션이다. 등시성 전송은 등시성 전송의 적시 완료를 보장하기 위해 USB 네트워크 대역폭의 전용 부분에 할당된다.
디바이스가 복수의 종단점 펑션을 포함하더라도, 이런 종단점 펑션들은 반드시 동시에 동작하지 않을 수도 있다. 예를 들면, 다기능 디바이스는 팩스와 디지털 전화 기능을 포함할 수도 있다. 초기화동안에, 상기 다기능 디바이스에는 고유한 기능 어드레스가 할당되고, 팩스 및 디지털 전화 기능들은 별개의 종단점 번호들과 각각 관련된다. 데이터를 각 펑션에 송신하는 OUT 파이프는 상기와 마찬가지로 초기화동안 할당된다. 일 OUT 파이프는 팩스 기능용 종단점 번호와 관련되고, 일 OUT 파이프는 프린터 기능용 종단점 번호와 관련된다. 팩스 및 디지털 전화는, 그들의 트랜잭션이 실시간으로 동작해야 하기 때문에 각각 전형적으로 등시성 OUT 파이프를 요구한다.
다기능 디바이스의 동작 동안에, 호스트 제어기는 한번에 펑션 중 하나에만 액세스한다. 결과적으로 팩스 및 디지털 전화 기능에 할당된 OUT 파이프들중 하나만이 소정 시간에 사용될 것이다.
복수의 디바이스가 USB 버스에 접속되어 있는 경우에, 대역폭 자원들은 모든 디바이스의 요구를 충족시킬 수 없을 수도 있다. 결과적으로, 팩스의 OUT 파이프와 디지털 전화의 OUT 파이프 양자로의 버스 액세스 및 대역폭에 대한 요청의 지정은 순차적으로 구성된 디바이스들에 대한 자원들의 할당을 제한할 수 있다. 상기 제한은 팩스 및 디지털 전화가 동시에 사용되지 않아도 순차적 할당에 영향을 미친다.
상기 문제점을 피하는 일방법은, 특정 개성(personality)을 갖는 디바이스를 구성하여, 다른 개성이 요청될 때, 디바이스를 리셋하며, 상이한 개성을 갖도록 구성하는 것이다. 예를 들면, 다기능 팩스 및 프린터 디바이스는 처음에 팩스로서 동작하도록 구성된다. 나중에, 호스트 PC 가 프린터를 요구하면, 호스트 PC 는 디바이스를 리셋하여, 상기 다기능 디바이스를 재구성하여 프린터로서 동작하도록 할 수 있다. 그리하여, 다기능 디바이스를 리셋함으로써, 상기 디바이스는 다중 개성들을 가질 수 있다. 그러나 다기능 디바이스의 리셋은 각 개성 변화를 달성하기 위하여 제어 이전을 요청한다.
선택적으로는, 다중 인터페이스가 종단점 하나를 공유할 수 있다. 이것은 소프트웨어의 부가적 레이어를 제공함으로써 달성될 수 있다. USB 특성 명세는 다중 인터페이스를 경유하는 종단점의 공유에 대한 상기 배치를 설명하고 있다. 그러나, 상기 배치는 소프트웨어 멀티플렉싱, 종단점 디스크립터용 부가적 필드, 및 플로우 제어 메카니즘을 요구한다.
본 발명의 목적은 다기능 USB 디바이스의 개성을 동적으로 변경하는 메카니즘을 제공하는 것이다.
본 발명의 부가적 목적은 복수의 펑션에 단일 파이프를 동적으로 할당하는 것이다.
본 발명의 일태양의 특징은, 동일한 기능 어드레스를 갖는 복수의 종단점에 단일 파이프를 매핑하는 것이다.
본 발명의 일태양의 다른 특징은, 상이한 기능 어드레스를 갖는 복수의 종단점에 단일 파이프를 매핑하는 것이다.
본 발명의 또다른 특징은, 종단점 번호들, 토큰 형태들, 하나 이상의 기능 어드레스 및 종단점 파이프들 간에 매핑을 제공하는 일반적 메카니즘을 제공하는 것이다.
본 발명의 일태양의 장점은, 동일 형태의 토큰들을 특정 종단점에 매핑하는 것이다.
또다른 장점은, 본 발명에 따른, 디바이스의 효율적인 게이트-레벨 구현들을 제공하는 것이다.
도 1 은 유니버설 시리얼 버스 네트워크의 블록도.
도 2 는 유니버설 시리얼 버스 디바이스에 대한 인터페이스 모듈의 바람직한 일실시예의 블록도.
도 3 은 바람직한 실시예의 파이프 맵 인덱스에 대한 도면.
도 4 는 종단점 제어기의 바람직한 실시예에 의해 구현된 매핑예를 나타내는 표.
도 5 는 종단점 제어기의 바람직한 일실시예에 의해 구현된 다른 매핑예를 나타내는 표.
도 6 은 도 2 의 종단점 제어기에 대한 바람직한 실시예의 블록도.
도 7 은 도 2 의 인터페이스 모듈을 포함하는 USB 디바이스의 바람직한 일실시예의 블록도.
*도면의 주요 부분에 대한 부호의 설명*
202 : 종단점 제어기 204 : SIE
602 : MAC 유저 I/F 604 : 디바이스 펑션들
606 : 종단점 상태 608 : PEPS
610 : AD GEN 612 : DALM
712 : RAM 718 : 코어 버스
본 발명의 일태양에 의하면, 유니버설 시리얼 버스 디바이스에서 다중 논리 노드를 가로질러 종단점 파이프를 매핑하는 방법은, 각각 종단점 번호와 관련된 기능 어드레스를 갖는 복수의 종단점을 형성하고, 복수의 종단점 파이프를 구축하며, 복수의 파이프와 복수의 종단점간에 매핑을 정의하고, 복수의 파이프에서 제 1 파이프를 통해 토큰을 수신하며, 그리고 상기 토큰 종단점 번호에 상기 매핑을 적용함으로써 상기 제 1 파이프를 선택된 종단점에 접속시키며, 상기 토큰은 종단점 번호를 가지며, 상기 토큰의 종단점 번호는 상기 선택된 종단점의 종단점 번호와 상이한 것을 특징으로 하는 방법이다.
본 발명의 다른 태양에 의하면, 유니버설 시리얼 버스 디바이스에서 다중 논리 노드를 가로질러 파이프를 매핑하는 방법은, 제 1 종단점 번호를 갖는 토큰을 수신하고, 상기 토큰을 제 2 종단점 번호를 갖는 종단점에 매핑하고, 상기 제 1 종단점 번호는 상기 제 2 종단점 번호와 상이한 것을 특징으로 하는 방법이다.
본 발명의 또다른 태양에 의하면, 유니버설 시리얼 버스 디바이스에서 다중 논리 노드를 가로질러 파이프를 매핑하는 방법은, 제 1 의 기능 어드레스와 제 1 종단점 번호를 갖는 제 1 종단점을 형성하고, 제 2 의 기능 어드레스와 제 2 종단점 번호를 갖는 제 2 종단점을 형성하며, 상기 제 1 의 기능 어드레스와 제 1 종단점 번호에 어드레스지정된 토큰을 수신하고, 상기 토큰을 상기 제 2 종단점에 매핑하고, 상기 제 2 의 기능 어드레스는 상기 제 1 의 기능 어드레스와 상이한 것을 특징으로 하는 방법이다.
본 발명의 또다른 태양에 의하면, 유니버설 시리얼 버스 디바이스는 복수의 종단점, 파이프와 종단점을 연계시키는 복수의 파이프 맵, 및 복수의 파이프 맵으로부터 선택하기 위한 구성 레지스터(configuration register)를 사용한다.
본 발명의 또다른 태양에 의하면, 다기능 USB 디바이스는 수신된 토큰들을 종단점 파이프들에 매핑하기 위한 제 1 매핑 펑션, 상기 제 1 매핑 펑션와는 상이하며 수신된 토큰들을 종단점 파이프들에 매핑하는 제 2 매핑 펑션, 및 복수의 상태를 갖는 구성 레지스터를 구비하는 것으로, 상기 상태들 중 하나 이상은 제 1 매핑 펑션을 선택하고, 상기 상태들 중 하나 이상은 제 2 매핑 펑션을 선택하는 것을 특징으로 하는 디바이스이다. 디바이스의 개성을 동적으로 변경하는 방법은, 디바이스를 초기화하여, 제 1 매핑 펑션을 구현하는 제 1 개성과, 제 2 매핑 펑션을 구현하는 제 2 개성을 정의하고; 상기 구성 레지스터를 제 1 상태로 설정하여 상기 제 1 개성을 선택하며; 그리고 상기 구성 레지스터를 제 2 상태로 설정하여 상기 개성을 선택한다.
상기 목적들 및 다른 목적들, 특징들, 및 장점들은 다음 상세한 설명과 첨부 도면들을 참조하여 고려하면 명백해질 것이다.
본원에 기재된 발명은 본원의 출원인이 모든 권리를 소유하고 있고, 참조로 본 명세서에 포함되는, 미국 출원일이 1998년 1월 7일이고 미국 특허 출원 번호가 09/003,963호이며 발명의 명칭이 'Apparatus and Method for Implementing a Versatile USB Endpoint Pipe' 인 미국출원; 미국 출원일이 1998년 1월 7일이고 미국 특허 출원 번호 제09/004,003호를 우선권 주장하여 본원과 동일자로 99년 1월 6일 한국에 출원된 발명의 명칭이 '이중 버퍼링을 지원하는 유니버설 시리얼 버스 종단점 파이프의 실시장치 및 실시방법' 인 한국출원; 미국 출원일이 1998년 1월 7일이고 미국 특허 출원 번호가 09/003,897호이며 발명의 명칭이 'Apparatus and Method of Transmitting and Receiving USB Isochronous Data' 인 미국출원; 미국 출원일이 98년 1월 7일이고 미국 특허 출원 번호 제09/004,002 호를 우선권 주장하여 본원과 동일자로 99년 1월 6일에 한국에 출원된 발명의 명칭이 '유니버설 시리얼 버스 제어 이전을 처리하는 장치 및 방법' 인 한국출원; 미국 출원일이 98년 1월 7일이고 미국 특허 출원 번호 제09/004,005호를 우선권 주장하여 본원과 동일자로 99년 1월 6일 한국에 출원된 발명의 명칭이 '복합 유니버설 시리얼 버스 제어기에 인터페이스를 제공하기 위한 장치 및 방법' 인 한국출원; 및 미국 출원일이 98년 1월 7일이고 미국 특허 출원 번호 09/003,925호를 우선권 주장하여 본원과 동일자로 99년 1월 6일 한국에 출원된 발명의 명칭이 '유니버설 시리얼 장치를 초기화하는 장치 및 방법' 인 한국 출원에 기재된 더 큰 발명군의 일태양이다.
추가적으로, 내셔널 세미콘덕터(National Semiconductor) 의 문서 USB Node Interface Architecture Specification, Revision 0.6 은 본 출원과 동일자로 심사 참고자료로서 제출하고 참조에 의해 본 명세서에 포함된다.
이제 도 7 을 참조하여, 본 발명에 따른 USB 디바이스 (710) 를 설명한다. 상기 디바이스의 바람직한 실시예는 USB 명세표의 개정판 1.0 을 충족하고, 다수의 장점들을 제공한다. 상기 USB 디바이스 (710) 는 USB 인터페이스 모듈 (200), 레지스터 세트 (714), RAM (712), 및 버스 인터페이스 장치(BIU) (716) 를 포함한다.
상기 인터페이스 모듈 (200) 은 USB 네트워크와 연결되어 데이터를 송신하고 수신한다. 상기 인터페이스 모듈 (200) 은 또한 코어 버스 (718) 를 통해 레지스터 세트 (714), RAM (712), 및 BIU (716) 에 접속된다. 상기 코어 버스 (718) 에 의해 인터페이스 모듈 (200) 은 레지스터 세트 (714) 와 RAM (712) 에 액세스할 수 있다. 상기 BIU (716) 는 코어 버스 (718) 어드레스 스페이스에 액세스를 제공한다.
이제 도 2 로 돌아가서, 도 7 의 USB 인터페이스 모듈 (200) 을 설명한다. 상기 USB 인터페이스 모듈 (200) 은 USB 디바이스 (710) 가 USB 네트워크와 연결되도록 하는 인터페이스를 제공한다. 상기 인터페이스 모듈 (200) 은 통합된 USB 트랜스시버 (206), 시리얼 인터페이스 엔진 (SIE) (204), 및 종단점 제어기 (202) 를 구비한다.
상기 트랜스시버 (206) 는 USB 네트워크와의 물리적 인터페이스를 제공한다. 상기 트랜스시버는 USB 명세의 개정판 1.0 의 물리적 레이어(layer) 명세표들에 부응하는 드라이버와 수신기를 둘다 포함한다.
상기 시리얼 인터페이스 엔진 (204) 은 동작시 트랜스시버 (206) 과 결합되고, 물리적 (PHY) 및 미디어 액세스 제어(MAC) 레벨로 구성된다. 상기 물리적 레벨은 디지털-클럭 회복 회로, 디지털 글리치 필터, End_Of_Packet 검출 회로, 및 비트-채움 및 비움(bit-stuffing and de-stuffing) 논리 회로를 구비한다.
상기 미디어 액세스 제어 레벨은 패킷 포맷팅, 순환적 용장 체크 생성 및 검사(cyclic redundancy check generation and checking), 종단점 어드레스 검출을 포함하고, 특정 종단점 파이프에 대하여 종단점 제어기 (202) 에 의해 결정되는 NAK, ACK 및 STALL 응답을 제공하기에 필요한 제어를 제공한다. 상기 시리얼 인터페이스 엔진 (204) 은 또한 Reset, Suspend 및 Resume 와 같은 USB-특정 이벤트를 검지하고 보고해야 한다.
상기 종단점 제어기 (202) 는 상기 시리얼 인터페이스 엔진 (204) 과 결합하여 동작하고, USB 펑션 종단점들에 대한 인터페이스를 제공한다.
상기 종단점 제어기 (202) 는 코어 버스 (718) 상에서 마스터 및 슬레이브로서 동작하고, 제어, 벌크, 등시성 및 인터럽트의 모든 USB 종단점 분류들을 지원한다. 슬레이브 액세스는 레지스터 세트 (714) 의 내부 제어 레지스터를 액세스하는데 사용되고, 마스터 액세스는 종단점들과 RAM (712) 간에 데이터를 전송하는데 사용된다.
상기 종단점 제어기 (202) 는 각 종단점 파이프에 대해 별개의 상태 정보를 유지한다. NAK 또는 STALL 핸드쉐이크에 따른 반응과 같은, 즉각적인 결정에 필요한 상태 정보가 각 종단점 파이프에 대해 항상 종단점 제어기 (202) 내에 유지된다. 상기 정보는 적절한 ACK, NAK, 및 STALL 응답을 제공하기 위해 시리얼 인터페이스 엔진 (204) 의 미디어 액세스 제어 레이어를 관리하는데 사용된다. 종단점 동작에 필요한 다른 정보는 RAM (712) 의 종단점 어레이에 보존된다. 상기 종단점 제어기 (202) 는 또한 종단점 상태 머신 (606) 을 포함한다. 오직 일 종단점 파이프가 소정 시간에 액티브이므로, 상기 종단점 파이프 상태 머신 (606) 은 모든 종단점 파이프간에 공유된다.
IN 토큰의 경우에, 상기 종단점 제어기 (202) 는 선택된 버퍼로부터 호스트로 데이터를 전송해야 한다. OUT 토큰의 경우에, 상기 종단점 제어기 (202) 는 상기 호스트로부터 선택된 버퍼로 데이터를 전송해야 한다. 버퍼를 종단점 파이프에 할당할 때 더 많은 융통성을 허용하기 위하여, 이중 버퍼링 방식이 각 종단점 파이프에 허용된다. 이에 의하여 종단점 제어기 (202) 가 NAK 에 의지하지 않고서 모든 트랜잭션에 즉각적인 응답을 제공한다.
상기 종단점 제어기 (202) 는 기능 어드레스, 토큰 형태 (IN, OUT, Setup) 및 종단점 번호로부터 종단점 파이프들 중 하나로의 매핑을 제공한다. 바람직한 실시예는 종단점 파이프들에 두 개의 고정된 매핑을 지원한다. 상기 매핑의 선택은 제어 레지스터 (714) 에 위치된 디바이스 구성 레지스터의 종단점 파이프 맵 선택 비트를 설정함으로써 제어된다. 호스트 제어기 (102) 는 상기 파이프 맵 선택 비트의 설정을 제어할 수도 있다.
종단점 제어기 (202) 는 토큰 패킷을 사용하여, 도 3 에 도시된 바이트-와이드의 파이프 맵 인덱스 (300) 를 생성한다. 파이프 맵 인덱스 (300) 의 비트 0-3 은 종단점 번호 (EN) 를 확인하기 위하여 사용된다. 비트 4-5 는 토큰 형태를 확인하기 위해 사용되는데, 00 은 OUT 토큰을 나타내고, 10 은 IN 토큰을 나타내고, 11 은 SETUP 토큰을 나타내며, 그리고 01 은 SOF 토큰을 나타낸다. 비트 6-7 은 선택된 기능 어드레스를 나타내기 위하여 사용된다.
토큰 패킷의 수신과 동시에, 종단점 제어기 (202) 는 파이프 맵 인덱스 (300) 를 생성한다. 그리고 나서 상기 종단점 제어기 (202) 는 종단점 파이프 맵 선택 비트에 액세스하여, 상기 토큰에 대해 적절한 매핑을 선택한다.
USB 디바이스 (710) 의 바람직한 일실시예는 두 가지 매핑을 지원한다. 따라서, 상기 종단점 파이프 선택 비트는 단일 비트로 구성된다. 상기 종단점 파이프 맵 선택 비트가 0 일때의 매핑이 도 4 에 도시되어 있다. 상기 종단점 파이프 맵 선택 비트가 1 일때의 매핑이 도 5 에 도시되어 있다.
상기 종단점 파이프 선택 비트를 변경함으로써, 상기 호스트 제어기 (102) 는 펑션들을 가로질러 종단점 파이프들의 매핑을 변경할 수 있다. 따라서, 상기 호스트 제어기 (102) 는 디바이스가 다중 개성을 가지도록 구성할 수 있다. 상기 호스트 제어기 (102) 는 그리고 나서 단순히 종단점 파이프 맵 선택 비트를 액세스함으로서 상기 디바이스 개성을 동적으로 변경할 수도 있다. 이에 의해 또한 상기 호스트 제어기 (102) 는 기능 어드레스, 토큰 형태 및 종단점을 가로질러 종단점 파이프들을 종단점 파이프들이 자원으로서 가장 필요한 곳에 할당할 수 있다.
먼저 도 4 를 참조하면, 종단점 매핑은 토큰 패킷의 기능 어드레스와 종단점 번호에 따라 관리된다. 지정자 (designator) FAO 는 초기화동안 디바이스 (710) 에 할당된 기능 어드레스를 나타낸다. 도시된 바와 같이, 기능 어드레스 FAO, 토큰 형태 IN, OUT 또는 SETUP 및 종단점 0 을 갖는 토큰 패킷이 종단점 파이프 # 0 에 매핑되어 있다. 이와 유사하게, 기능 어드레스 FAO, 토큰 형태 IN,, OUT 또는 SETUP, 및 종단점 1 - 15 를 갖는 토큰 패킷은 종단점 파이프 # 1 - 15 에 종단점 번호별로 각각 매핑되어 있다. SOF 토큰을 갖는 토큰 패킷은 자동적으로 SOF 종단점 파이프에 매핑된다. FAO 이외의 기능 어드레스를 갖는 토큰 패킷은 무시된다.
다음으로, 도 5 를 참조하여, 종단점 파이프 맵 비트가 설정될 때의 매핑에 대해 설명한다. 기능 어드레스 FAO, 토큰 형태 IN, OUT, 또는 SETUP, 및 종단점 0 을 갖는 토큰 패킷들이 종단점 파이프 # 0 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 IN, OUT, 또는 SETUP, 및 종단점 8 이 종단점 파이프 # 1 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 OUT, 및 종단점 1 을 갖는 토큰 패킷들이 종단점 파이프 # 2 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 IN, 및 종단점 1 을 갖는 토큰 패킷들이 종단점 파이프 # 3 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 OUT, 및 종단점 2 를 갖는 토큰 패킷들이 종단점 파이프 # 4 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 IN, 및 종단점 2 를 갖는 토큰 패킷들이 종단점 파이프 # 5 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 OUT, 및 종단점 3 을 갖는 토큰 패킷들이 종단점 파이프 # 6 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 IN, 및 종단점 3 을 갖는 토큰 패킷들이 종단점 파이프 # 7 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 OUT, 및 종단점 4 를 갖는 토큰 패킷들이 종단점 파이프 # 8 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 IN, 및 종단점 4 를 갖는 토큰 패킷들이 종단점 파이프 # 9 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 OUT, 및 종단점 5 를 갖는 토큰 패킷들이 종단점 파이프 # 10 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 IN, 및 종단점 5 를 갖는 토큰 패킷들이 종단점 파이프 # 11 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 OUT, 및 종단점 6 을 갖는 토큰 패킷들이 종단점 파이프 # 12 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 IN, 및 종단점 6 을 갖는 토큰 패킷들이 종단점 파이프 # 13 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 OUT, 및 종단점 7 을 갖는 토큰 패킷들이 종단점 파이프 # 14 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 IN, 및 종단점 7 을 갖는 토큰 패킷들이 종단점 파이프 # 15 에 매핑되어 있다. 기능 어드레스 FAO, 토큰 형태 SETUP, 및 종단점 1 - 7 을 갖는 토큰 패킷들은 종단점 파이프에 매핑되지 않는다. 기능 어드레스 FAO, 임의의 토큰 형태, 및 종단점 9 - 15 을 갖는 토큰 패킷들은 종단점 파이프에 매핑되지 않는다. 토큰 형태 SOF 를 갖는 토큰 패킷들은 SOF 종단점 파이프에 매핑된다. FAO 이외의 임의의 기능 어드레스를 갖는 토큰 패킷들은 종단점 파이프에 매핑되지 않는다.
상기 매핑에 의하여 IN 과 OUT 동작들에 대한 처음 8 개의 종단점 번호들의 할당이 가능하다. 이에 따라, 종단점 파이프들은 입력 또는 출력으로 사용될 수 있지만, 동시에 양자로는 사용될 수 없다. 그리하여 상기 매핑에 의해 종단점 1 IN 과 종단점 1 OUT 을 가질 수 있다.
도 4 와 도 5 의 종단점 매핑이 FAO 만을 나타내고 있지만, 복합 디바이스에 대한 매핑들은 부가적 기능 어드레스들을 포함할 것이다. 바람직한 실시예는 파이프 맵 인덱스 (300) 의 두 비트를 기능 어드레스에 할당하여, 네 개의 기능 어드레스가 지원될 수 있도록 한다. 상기 디바이스의 바람직한 실시예는 모든 제어 펑션들을 함께 일 종단점 파이프상으로 매핑한다. 이것은 필요한 종단점 파이프들의 전체적 개수를 감소시킨다.
프로그래밍 모델의 바람직한 실시예에서, 종단점 파이프들은 기능 어드레스, 토큰 형태, 및 종단점 번호들을 가로질러 매핑될 수도 있다. 이에 의하여 디바이스의 재구성을 회피할 수 있고, 실제 응용예들의 요구사항들에 기초하여 기능 어드레스들 사이의 종단점 파이프들의 완전히 동적인 할당이 가능하게 된다. 또한, 복수의 매핑이 데이터 레지스터내에 동적으로 프로그래밍될 수도 있다. 차례로 상기 매핑들은 인덱스 레지스터에 의해 동적으로 선택될 수도 있다.
데이터 전송 중 종단점 파이프들에 의해 사용되는 모든 정보는RAM (812) 에 위치한 종단점 어레이에 보전된다. 상기 어레이는 레지스터 세트 (814) 에 위치한 종단점 어레이 베이스 어드레스 레지스터내에 정의된 베이스 어드레스로부터, 종단점 파이프에 의해, 인덱스되어 있다. 상기 어레이는 각 종단점에 대한 제어 워드(control word)를 가지고 있다. 상기 제어 워드는, 관련 버퍼의 시작, 버퍼의 크기, 버퍼의 상태 및 다른 관련 파라미터들에 대한 포인터와 같은, 연계된 종단점 파이프에 대한 명령 및 상태 정보를 가지고 있다.
버퍼 상태는, 버퍼가 입력 또는 출력 트랜잭션용으로 사용되는가의 여부, 버퍼가 현재 액세스되고 있는가의 여부 또는 소망 동작을 완성했는가의 여부를 정의한다.
IN 또는 OUT 전송이 요청될 때, 상기 종단점 제어기 (202) 는 먼저 토큰을 적절한 종단점 파이프로 매핑한다. 상기 토큰이 종단점 파이프에 현존 버퍼로 매핑될 때, 상기 종단점 제어기 (202) 는 적절한 제어 워드를 판독한다. 상기 제어 워드는 트랜잭션 완성법을 종단점 제어기 (202) 에 전달한다. 트랜잭션의 끝에서, 상기 종단점 제어기는, 상기 버퍼를 해제한다는 지시로서 소프트웨어에 의해 사용되는 상태로 상기 제어 워드를 기입하여, 새로운 제어 워드를 제공한다.
종단점 제어기 (202) 는 트랜잭션을 처리하기에 필요한 메모리 액세스의 개수를 최소화한다. 토큰의 수신시에만 종단점 어레이에 액세스하기 위한 메모리 액세스가 필요하다. 상기 액세스는 데이터 전송에 대한 위치 및 크기 정보를 판독한다. 상기 데이터 전송은 연속적인 이중-워드 판독 또는 기입 동작에서 일어난다.
인터페이스 모듈 (200) 의 종단점 제어기 (202) 는 전송용 코어 버스 (718) 상에서 최우선권을 가지며, 전송 비율은 USB 의 전송 비율보다 상당히 높다. 따라서, 다음의 액세스와 현재의 액세스가 중복되는 잉여 워드를 제외하고는, 종단점 제어기 (202) 내에서 데이터 버퍼링에 대한 최소의 요구가 존재한다. 바이트 카운터는 전송되는 바이트들의 개수를 계속 추적한다. 전송의 마지막 액세스는 메모리의 부분적 판독 또는 기입을 요청할 수도 있다. 상기 마지막 액세스의 부분적 기입은 최종 바이트 카운트에 의해 결정된다. 전송의 끝에서, 현재의 제어 워드가 전송 상태로 기입되고, 상기 종단점에 대한 다른 제어 워드는 다른 버퍼가 준비되었는지의 여부를 검사하도록 판독된다. 제어 워드 동작이 종료된 후에, 종단점 파이프 상태는 종단점 파이프 상태 어레이 내에서 갱신된다. 이에 의하여 인터페이스 모듈 (200)의 종단점 제어기 (202) 에 의한 트랜잭션의 처리가 완성된다.
다음으로 도 6 을 참조하여, 종단점 제어기 (202) 의 구조를 더 자세하게 설명한다. 상기 종단점 제어기 (202) 는 몇 개의 기능 블록으로 구성된다. 구체적으로는, 상기 종단점 제어기 (202) 는 미디어 액세스 제어 인터페이스 (62), 디바이스 펑션 블록 (604), 종단점 상태 머신 (606), 부분 종단점 파이프 저장부 (PEPS) (608), 어드레스 발생기 (610), 및 데이터 정렬 멀티플렉서 (612) 를 구비한다.
상기 미디어 액세스 제어 인터페이스 (602) 는 상기 종단점 상태 머신 (606) 과 상기 데이터 정렬 먹스 (612) 와 결합되어, 시리얼 인터페이스 엔진 (204) 의 미디어 액세스 제어 레벨에 인터페이스를 제공한다. 종단점 제어기 (202) 의 어떤 도메인들은 코어 버스 (718) 상에서 클럭을 사용하여 동작하고, 다른 도메인들은 종단점 제어기 (202) 의 로컬 클럭을 사용하여 동작한다. 상기 미디어 액세스 제어 인터페이스 (602) 는 상기 종단점 제어기 (202) 로부터 전송되는 각 바이트에 대하여 비동기의 핸드쉐이크를 갖는 다양한 도메인들간의 데이터 바이트들을 동기화시킨다.
상기 디바이스 펑션 블록 (604) 은 어드레스 검사 및 생성과 같은 디바이스 기능들을 수행한다. 상기 디바이스 펑션 블록 (604) 은 동작시에 상기 종단점 상태 머신 (606) 과 결합되어, 현재 액세스되는 종단점 파이프와 관련한 정보를 제공한다.
상기 종단점 상태 머신 (606) 은 액티브 종단점 파이프의 상태를 유지하는 것과 관련된 기능들을 수행한다. 상기 종단점 상태 머신 (606) 은 하드웨어와 소프트웨의 상호 작용을 동기화하도록 잘 정의된 전이를 갖는 액티브 종단점 파이프의 상태를 유지한다. 호스트 제어기는 종단점 상태 레지스터를 통하여 현재 상태를 알 수 있다.
상기 부분적 종단점 파이프 저장부 (608) 는 각 종단점 파이프에 대한 최소량의 정보를 보유한다. 그 나머지는 로컬 RAM 내의 어레이에 저장된다.
상기 어드레스 발생기 (610) 는 코어 버스 상에서 전송용 어드레스를 생성한다. 통상적으로 상기 어드레스는 메모리 어드레스이다.
상기 데이터 정렬 먹스 (612) 는, 코어 버스 (718) 을 통한 전송이 이루어지기 전에 필요한 데이터 바이트 정렬을 제공한다.
여기에 설명된 실시예들이 특정 매핑들에 관련되어 있지만, 본 발명은 그 요지를 벗어남이 없이 다양한 다른 매핑 기능들에 적용될 수 있다. 이는 UIR 에 의해 결정되는 위치들을 기입함에 의한 프로그래밍가능 매핑들을 포함한다. 종래 분야에서 일반적 기술을 가진 사람들은 여기에 개시된 실시예들로부터 교습없이도 많은 변형예들이 가능하다는 것을 이해할 것이다. 상기의 모든 변형예들은 다음 청구범위내에 포함되도록 의도된다.
본 발명에 의하여, 다기능 USB 장치의 개성을 동적으로 변경할 수 있고, 복수의 펑션에 단일 파이프를 동적으로 할당할 수 있다.

Claims (5)

  1. 유니버설 시리얼 버스 디바이스에서 다중 논리 노드를 가로질러 종단점 파이프들을 매핑하는 방법에 있어서,
    각각 종단점 번호와 관련된 기능 어드레스를 갖는 복수의 종단점을 구성하는 단계,
    복수의 종단점 파이프를 구축하는 단계,
    상기 복수의 종단점 파이프와 상기 복수의 종단점 간에 매핑을 정의하는 단계,
    상기 복수의 파이프로부터 제 1 파이프를 통해 종점 번호를 갖는 토큰을 수신하는 단계, 및
    상기 매핑을 상기 토큰 종단점 번호에 적용함으로써 상기 제 1 파이프를 선택된 종단점에 연결하는 단계를 구비하며,
    상기 토큰의 상기 종단점 번호는 상기 선택된 종단점의 상기 종단점 번호와는 다른 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 복수의 종단점은 제 1 의 기능 어드레스를 갖는 제 1 종단점과 제 2 의 기능 어드레스를 갖는 제 2 종단점을 구비하고, 상기 제 1 의 기능 어드레스는 상기 제 2 의 기능 어드레스와 다르며,
    상기 종단점들과 상기 파이프들간의 매핑을 정의하는 단계는 기능 어드레스와 상기 복수의 종단점간에 상기 매핑을 정의하는 단계를 더 구비하고,
    상기 수신된 토큰은 기능 어드레스 데이터를 가지며, 그리고
    상기 제 1 파이프를 상기 종단점들 중 하나에 연결하는 단계는 상기 매핑을 상기 기능 어드레스 데이터에 적용하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  3. 유니버설 시리얼 버스 디바이스에서 다중 논리 노드를 가로질러 파이프들을 매핑하는 방법에 있어서,
    제 1 종단점 번호를 갖는 토큰을 수신하는 단계와,
    상기 토큰을 제 2 종단점 번호를 갖는 종단점으로 매핑하는 단계를 구비하고, 상기 제 1 종단점 번호는 상기 제 2 종단점 번호와 다른 것을 특징으로 하는 방법.
  4. 유니버설 시리얼 버스 디바이스에서 다중 논리 노드를 가로질러 파이프들을 매핑하는 방법에 있어서,
    제 1 의 기능 어드레스와 제 1 종단점 번호를 갖는 제 1 종단점을 구성하는 단계,
    제 2 의 기능 어드레스와 제 2 종단점 번호를 갖는 제 2 종단점을 구성하는 단계,
    상기 제 1 의 기능 어드레스와 제 1 종단점 번호에 어드레스지정된 토큰을 수신하는 단계, 및
    상기 토큰을 상기 제 2 종단점으로 매핑하는 단계를 구비하고,
    상기 제 2 의 기능 어드레스는 상기 제 1 의 기능 어드레스와 상이한 것을 특징으로 하는 방법.
  5. 복수의 다기능 USB 디바이스의 개성을 동적으로 변경하는 방법으로서,
    상기 디바이스는 수신된 토큰을 종단점 파이프로 매핑하는 제 1 매핑 기능, 상기 제 1 매핑 기능과는 상이하며 수신된 토큰을 종단점 파이프로 매핑하는 제 2 매핑 기능, 및 복수의 상태를 갖는 구성 레지스터를 구비하고, 상기 상태들 중 하나 이상은 상기 제 1 매핑 기능을 선택하고 상기 상태들 중 하나 이상은 상기 제 2 매핑 기능을 선택하며,
    상기 제 1 매핑 기능을 구현하는 제 1 개성과 상기 제 2 매핑 기능을 구현하는 제 2 개성을 정의하기 위해 USB 디바이스를 초기화하는 단계,
    상기 구성 레지스터를 제 1 상태로 설정하여 상기 제 1 개성을 선택하는 단계, 및
    상기 구성 레지스터를 제 2 상태로 설정하여 상기 제 2 개성을 선택하는 단계를 구비하는 것을 특징으로 하는 방법.
KR1019990000085A 1998-01-07 1999-01-06 유니버설 시리얼 버스 디바이스 내부로 및 외부로 데이터를 송신 및 수신하기 위한 장치 및 방법 KR100290942B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/004,004 US6122676A (en) 1998-01-07 1998-01-07 Apparatus and method for transmitting and receiving data into and out of a universal serial bus device
US9/004004 1998-01-07

Publications (2)

Publication Number Publication Date
KR19990067730A KR19990067730A (ko) 1999-08-25
KR100290942B1 true KR100290942B1 (ko) 2001-05-15

Family

ID=21708661

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990000085A KR100290942B1 (ko) 1998-01-07 1999-01-06 유니버설 시리얼 버스 디바이스 내부로 및 외부로 데이터를 송신 및 수신하기 위한 장치 및 방법

Country Status (3)

Country Link
US (1) US6122676A (ko)
KR (1) KR100290942B1 (ko)
DE (1) DE19900325B4 (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4026948B2 (ja) * 1997-09-29 2007-12-26 キヤノン株式会社 ネットワークシステム、デバイス、デバイスの制御方法、及び、記憶媒体
DE19900245B4 (de) 1998-01-07 2005-09-15 National Semiconductor Corp.(N.D.Ges.D.Staates Delaware), Santa Clara Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
US6363085B1 (en) * 1998-03-23 2002-03-26 Multivideo Labs, Inc. Universal serial bus repeater
US6311294B1 (en) * 1998-10-20 2001-10-30 Cypress Semiconductor Corp. Device and method for efficient bulk data retrieval using a universal serial bus
US6611552B2 (en) * 1999-01-28 2003-08-26 Intel Corporation Universal serial bus transceiver and associated methods
US6601109B1 (en) * 1999-03-31 2003-07-29 International Business Machines Corporation USB-based networking and I/O hub
JP3641169B2 (ja) * 1999-08-06 2005-04-20 株式会社エヌ・ティ・ティ・ドコモ Usb対応電子機器
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6523081B1 (en) * 1999-11-22 2003-02-18 Texas Instruments Incorporated Architecture using dedicated endpoints and protocol for creating a multi-application interface and improving bandwidth over universal serial bus
US6804243B1 (en) * 1999-11-22 2004-10-12 Texas Instruments Incorporated Hardware acceleration for segmentation of message packets in a universal serial bus peripheral device
JP4553279B2 (ja) * 2000-03-09 2010-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション データ転送システム、データ転送端末、コントローラ、およびインターフェイス方法
US6941114B1 (en) * 2000-03-28 2005-09-06 Behavior Tech Computer Corporation USB-based wireless transmitting/receiving system
US6718412B2 (en) * 2000-12-14 2004-04-06 Agilent Technologies, Inc. Apparatus and method for universal serial bus communications
US7076536B2 (en) * 2000-12-21 2006-07-11 Microsoft Corporation Method and system to access software pertinent to an electronic peripheral device at an address based on a peripheral device identifier
US7165109B2 (en) * 2001-01-12 2007-01-16 Microsoft Corporation Method and system to access software pertinent to an electronic peripheral device based on an address stored in a peripheral device
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
JP2002312296A (ja) * 2001-04-10 2002-10-25 Nec Microsystems Ltd 周辺装置のusbインタフェース装置、その制御方法およびプログラム並びにusbインタフェースシステム
KR100419278B1 (ko) * 2001-10-11 2004-02-18 삼성전자주식회사 유에스비 장치 구동 방법 및 이 구동 방법을 사용하는내장형 시스템
US20030229811A1 (en) * 2001-10-31 2003-12-11 Cross Match Technologies, Inc. Method that provides multi-tiered authorization and identification
US20030167347A1 (en) * 2002-02-11 2003-09-04 Combs James Lee Home network printer adapter
US6978339B2 (en) * 2002-02-22 2005-12-20 Canon Kabushiki Kaisha Communication system and method of controlling same
US7080189B1 (en) * 2002-05-31 2006-07-18 Cypress Semiconductor Corp. USB device communication
US6959350B1 (en) * 2002-06-28 2005-10-25 Cypress Semiconductor Corp. Configurable USB interface with virtual register architecture
DE10234991B4 (de) * 2002-07-31 2008-07-31 Advanced Micro Devices, Inc., Sunnyvale Hostcontrollerdiagnose für einen seriellen Bus
US7543080B2 (en) * 2003-03-28 2009-06-02 Peter Arthur Schade Dual port USB interface
US7823133B2 (en) * 2003-04-23 2010-10-26 Stmicroelectronics, Inc. Smart card device and method for debug and software development
US7181649B2 (en) * 2003-05-09 2007-02-20 Stmicroelectronics, Inc. Universal serial bus (USB) smart card having enhanced testing features and related system, integrated circuit, and methods
US7373522B2 (en) * 2003-05-09 2008-05-13 Stmicroelectronics, Inc. Smart card with enhanced security features and related system, integrated circuit, and methods
US7143224B2 (en) * 2003-05-09 2006-11-28 Stmicroelectronics, Inc. Smart card for performing advance operations to enhance performance and related system, integrated circuit, and methods
US6783078B1 (en) 2003-05-09 2004-08-31 Stmicroelectronics, Inc. Universal serial bus (USB) smart card having read back testing features and related system, integrated circuit, and methods
US7080789B2 (en) * 2003-05-09 2006-07-25 Stmicroelectronics, Inc. Smart card including a JTAG test controller and related methods
US7044390B2 (en) * 2003-06-02 2006-05-16 Stmicroelectronics, Inc. Smart card emulator and related methods using buffering interface
US7369982B2 (en) * 2003-06-04 2008-05-06 Stmicroelectronics, Inc. Multi-mode smart card emulator and related methods
US7127649B2 (en) * 2003-06-09 2006-10-24 Stmicroelectronics, Inc. Smartcard test system and related methods
US20040260823A1 (en) * 2003-06-17 2004-12-23 General Instrument Corporation Simultaneously transporting multiple MPEG-2 transport streams
GB2412757B (en) * 2004-03-31 2006-02-15 Mentor Graphics Multi-point USB connection
US7904607B2 (en) * 2004-04-21 2011-03-08 Stmicroelectronics, Inc. Smart card with self-reconfiguration features and related methods
US7328849B2 (en) * 2004-04-21 2008-02-12 Stmicroelectronics, Inc. Smart card providing data mapping for multiple applications and related methods
US8234421B2 (en) * 2004-04-21 2012-07-31 Stmicroelectronics, Inc. Smart card with selectively allocatable data buffers and associated methods
US8046508B2 (en) 2004-04-21 2011-10-25 Stmicroelectronics, Inc. Smart card with self-detachment features and related methods
US7685328B2 (en) * 2004-09-09 2010-03-23 Stmicroelectronics, Inc. Generic universal serial bus device operable at low and full speed and adapted for use in a smart card device
US7188206B2 (en) * 2004-10-22 2007-03-06 Conwise Technology Corporation Ltd. USB compound device without embedded hub and implement method in USB system
US8315269B1 (en) 2007-04-18 2012-11-20 Cypress Semiconductor Corporation Device, method, and protocol for data transfer between host device and device having storage interface
US20080276009A1 (en) * 2007-05-04 2008-11-06 Joe Mesa Enabling Efficient Communication Between a Host and Multiple USB Devices
TW200903262A (en) * 2007-07-05 2009-01-16 Weltrend Semiconductor Inc Method and related integrated circuit for dynamically configuring USB endpoint resource
TWI448902B (zh) * 2007-08-24 2014-08-11 Cypress Semiconductor Corp 具頁存取基礎處理器介面之橋接裝置
US8090894B1 (en) 2007-09-21 2012-01-03 Cypress Semiconductor Corporation Architectures for supporting communication and access between multiple host devices and one or more common functions
US7895387B1 (en) 2007-09-27 2011-02-22 Cypress Semiconductor Corporation Devices and methods for sharing common target device with two different hosts according to common communication protocol
US7987296B2 (en) * 2008-05-27 2011-07-26 Eyran Lida Methods and devices for CEC propagation control
US20100180064A1 (en) * 2009-01-14 2010-07-15 Huawei Device Co., Ltd. Method and device for implementing USB endpoint multiplexing
KR101566004B1 (ko) * 2009-03-05 2015-11-06 삼성전자주식회사 엔드 포인트를 복수개로 분할 가능한 반도체 장치
JP6531446B2 (ja) * 2015-03-20 2019-06-19 富士電機株式会社 Hid_usb通信を用いたups管理装置及び方法
GB202001700D0 (en) * 2020-02-07 2020-03-25 Blancco Tech Group Ip Oy USB controller endpoint resource management

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996041274A1 (en) * 1995-06-07 1996-12-19 Advanced Micro Devices, Inc. Dynamically reconfigurable data bus
US5751951A (en) * 1995-10-30 1998-05-12 Mitsubishi Electric Information Technology Center America, Inc. Network interface
US5848293A (en) * 1995-11-03 1998-12-08 Sun Microsystems, Inc. Method and apparatus for transmission and processing of virtual commands
US5729721A (en) * 1995-11-13 1998-03-17 Motorola, Inc. Timebase synchronization in separate integrated circuits or separate modules
US5774680A (en) * 1995-12-11 1998-06-30 Compaq Computer Corporation Interfacing direct memory access devices to a non-ISA bus
US5943506A (en) * 1996-03-25 1999-08-24 Intel Corporation System for facilitating data I/O between serial bus input device and non-serial bus cognition application by generating alternate interrupt and shutting off interrupt triggering activities
US5835791A (en) * 1996-03-26 1998-11-10 Vlsi Technology, Inc. Versatile connection of a first keyboard/mouse interface and a second keyboard/mouse interface to a host computer
US5841471A (en) * 1996-09-12 1998-11-24 Eastman Kodak Company Timing control for a digitally interfaced camera using variable line readout intervals
US5818948A (en) * 1996-10-23 1998-10-06 Advanced Micro Devices, Inc. Architecture for a universal serial bus-based PC speaker controller
US5778218A (en) * 1996-12-19 1998-07-07 Advanced Micro Devices, Inc. Method and apparatus for clock synchronization across an isochronous bus by adjustment of frame clock rates

Also Published As

Publication number Publication date
US6122676A (en) 2000-09-19
KR19990067730A (ko) 1999-08-25
DE19900325B4 (de) 2005-12-22
DE19900325A1 (de) 2000-03-16

Similar Documents

Publication Publication Date Title
KR100290942B1 (ko) 유니버설 시리얼 버스 디바이스 내부로 및 외부로 데이터를 송신 및 수신하기 위한 장치 및 방법
KR100290943B1 (ko) 유니버설 시리얼 버스 제어 이전을 처리하는 장치 및 방법
US6651119B2 (en) Method for allocating priorities to plurality of DMA engines for processing data packets based on bus phase and transactions status
KR100290944B1 (ko) 복합 유니버설 시리얼 버스 제어기에 인터페이스를 제공하기 위한 장치 및 방법
US6219736B1 (en) Universal serial bus (USB) RAM architecture for use with microcomputers via an interface optimized for integrated services device network (ISDN)
JP3641675B2 (ja) 分割バッファアーキテクチュア
US7356636B2 (en) Virtualized PCI switch
US6353866B1 (en) Apparatus and method for initializing a universal serial bus device
US6073205A (en) System and method of write posting in a universal serial bus system
JP4477613B2 (ja) AXIプロトコルを適用したNoCシステム
US7162566B2 (en) USB-based host-to-host networking method
US6901451B1 (en) PCI bridge over network
US7043568B1 (en) Configuration selection for USB device controller
CN109710548A (zh) 一种dma控制数据传输方法、系统及设备
JP2015537310A (ja) データ処理システム及びデータ処理方法
JP2000188626A (ja) 一体のマイクロコントロ―ラ・エミュレ―タを有するリンク/トランザクション層コントロ―ラ
EP1896965A1 (en) Dma descriptor queue read and cache write pointer arrangement
JPH09223089A (ja) 複数バス・ターゲットへのパケット・データの分割を可能にする方法および装置
US6516371B1 (en) Network interface device for accessing data stored in buffer memory locations defined by programmable read pointer information
US6401142B1 (en) Apparatus and method for selective bus transfer using master and slave modes
WO2005046146A1 (en) Method, system, and program for constructing a packet
US7124227B2 (en) Programmable interface link layer device
US7107381B2 (en) Flexible data transfer to and from external device of system-on-chip
KR20030083572A (ko) 상위버스와 하위버스를 가지며, 네트워크에서의 데이터액세스의 제어를 행하는 마이크로 컴퓨터 시스템
US6421745B1 (en) Asynchronous connections with scattering page tables for transmitting data from a producer device to a consumer device over an IEEE 1394 serial data bus

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130227

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee