KR20040043198A - 버스 시스템 및 버스 인터페이스 - Google Patents

버스 시스템 및 버스 인터페이스 Download PDF

Info

Publication number
KR20040043198A
KR20040043198A KR10-2004-7004359A KR20047004359A KR20040043198A KR 20040043198 A KR20040043198 A KR 20040043198A KR 20047004359 A KR20047004359 A KR 20047004359A KR 20040043198 A KR20040043198 A KR 20040043198A
Authority
KR
South Korea
Prior art keywords
bus
processor
bus interface
station
usb
Prior art date
Application number
KR10-2004-7004359A
Other languages
English (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 KR20040043198A publication Critical patent/KR20040043198A/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/14Handling requests for interconnection or transfer
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/426Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus

Abstract

본 발명은 데이터 및 제어 신호를 전송하는 버스에 결합된 제 1 스테이션(202) 및 제 2 스테이션(203, 204)을 포함하는 버스 시스템에 관한 것이다. 상기 버스는, 상기 제 1 스테이션(202)이 요청을 상기 제 2 스테이션(203, 204)에 반복해서 송신하고 상기 제 2 스테이션(203, 204)이 상기 요청에 응답하는 프로토콜에 따라서 동작한다. 상기 제 1 스테이션(202)은 인터럽트 가능한 프로세서(206)와 버스 인터페이스(207)를 포함한다. 상기 버스 인터페이스(207)는 상기 제 2 스테이션(203, 204)의 선택된 응답의 수신 시에 상기 인터럽트 가능한 프로세서(206)를 인터럽트하도록 동작가능하다. 상기 인터럽트 가능한 프로세서(206)는 상기 버스 인터페이스(207)의 인터럽트를 처리하도록 동작 가능하다.

Description

버스 시스템 및 버스 인터페이스{BUS SYSTEM AND BUS INTERFACE}
이러한 버스 시스템은 USB 명세서에 개시되어 있다. USB 명세서는 컴팩 컴퓨터 코포레이션, 휴렛패커드 컴퍼니, 인텔 코포레이션, 루센트 테크놀러지스 인크, 마이크로소프트 코포레이션, NEC 코포레이션, 코닌클리즈케 필립스 일렉트로닉스 엔.브이.를 포함하는 회사의 그룹에 의해 공표된 표준이다. 아래에는 본 발명의 완벽한 이해를 위한 USB의 다양한 측면들이 개시되어 있다. USB와 관련된 배경 기술은 USB 명세서 개정판 2.0으로부터 입수할 수 있는데, 이는 본 명세서에 참고로서 포함된다.
USB는 개인용 컴퓨터와 웹캠, 프린터, 스캐너, 마이크로폰 및 키보드와 같은 다양한 주변기기 간의 데이터 교환을 지원하도록 설계된 표준 버스이다. 따라서 USB는 RS-232C 직렬 포트, 병렬 포트 및 PS/2 인터페이스와 같은 기존의 인터페이스를 대신한다. 또한, 예컨대 USB 온-더-고(On-The-Go)에서와 같이 USB의 개발은 다른 장치가 개인용 컴퓨터를 대신하는 버스 시스템을 겨냥한다. 이러한 장치로는, 예를 들어, 디지털 스틸 카메라, 비디오 카메라, 개인용 디지털 보조 장치, 또는 셀룰러 폰을 들 수 있다.
USB 시스템과 같은 버스 시스템에서는, 전자 버스 스테이션이 버스를 통해 서로 접속된다. 일반적으로 버스 스테이션은 데이터를 처리하거나 생성하여 데이터의 흐름을 제어하는 프로세서 또는 컴퓨팅 시스템을 포함한다. USB 스테이션은 호스트(예를 들면, 개인용 컴퓨터) 및 (주변) 장치로서 규정된다. 일반적으로는 임의의 USB 시스템 상에 단 하나의 호스트만이 존재한다. 호스트에서의 USB 인터페이스는 호스트 컨트롤러로도 지칭된다. 호스트 컨트롤러는 하드웨어, 펌웨어 또는 소프트웨어의 조합으로 구현될 수도 있다. USB 장치는 시스템에 부가적인 부착점을 제공하는 허브 또는 시스템에 자격(capability)을 제공하는 펑션(function)으로서 규정된다. 허브는 USB 장치의 착탈을 지시한다. 호스트는 새로이 부착된 USB 장치가 허브인지 펑션인지를 판정하고, 고유의 USB 어드레스를 USB 장치에 할당한다. 모든 USB 장치는 고유한 USB 어드레스에 의해 액세스된다. 각각의 장치는 호스트가 통신하는 하나 이상의 엔드포인트(endpoint)를 부가적으로 지원한다. 다음의 설명은 펑션으로서 규정된 USB 장치로 한정한다.
USB는 폴링형 버스(polled bus)이다. 호스트 컨트롤러는 모든 데이터 전송을 개시한다. 대부분의 버스 트랜잭션은 세 개까지의 패킷 전송을 포함한다. 각각의 트랜잭션은 예정 기준에 따라서 호스트 컨트롤러가 트랜잭션의 유형 및 방향을 나타내는 USB 패킷과, USB 장치 어드레스와, 엔드포인트 번호를 송신할 때 개시된다. 이 패킷은 "토큰 패킷(token packet)"으로도 지칭된다. 어드레스 지정되는 USB 장치는 적절한 어드레스 필드를 디코딩함으로써 그 자신을 선택한다. 주어진 트랜잭션에서, 데이터는 호스트로부터 장치로 또는 장치로부터 호스트로 전송된다. 데이터 전송 방향은 토큰 패킷에서 지정된다. 트랜잭션의 소스는 데이터 패킷을 송신하거나 또는 전송할 데이터를 갖고 있지 않음을 나타낸다. 일반적으로 수신지는 전송이 성공했는지의 여부를 나타내는 핸드세이크(handshake) 패킷으로 응답한다.
USB 아키텍처는 다음과 같은 세 개의 기본적인 데이터 전송 유형을 포함한다. 즉, (1) 등시성 전송 : 호스트와 장치 간의 주기적이고 연속적인 통신으로, 통상적으로 시간 관련 정보에 사용되며, 사전에 절충된 지연을 갖는 사전에 절충된 양의 USB 대역폭을 점유함, (2) 인터럽트 전송 : 저 주파수, 제한된 지연 통신으로서, 통상적으로 사람이 감지할 수 있는 에코 또는 피드백 응답 특성을 갖는 좌표 또는 문자와 같은 비동기 데이터에 사용됨, (3) 벌크 전송 : 비주기적이며 대량의 패킷 버스티 통신으로서, 통상적으로 임의의 사용가능한 대역폭을 사용할 수 있으며 또한 대역폭이 사용가능할 때까지 지연될 수 있는 데이터에 사용됨.
일반적으로 버스 스테이션의 두 유형, 즉 호스트 및 장치는 프로세서 또는컴퓨팅 시스템을 포함하여 데이터를 처리 또는 생성하거나 데이터의 흐름을 제어하거나 또는 이 두 가지를 모두 실행한다. 전술한 USB 시스템의 실시에 의해 호스트로서 작동하는 버스 스테이션 내의 프로세서와 장치로서 작동하는 버스 스테이션 내의 프로세서 모두에 상당한 오버헤드가 발생한다. 이것은 인터럽트 전송에 대해서 특히 유효하다. 버스 시스템의 폴링 특성으로 인해, 호스트는 규칙적인 기준에 따라서, 예컨대 키보드와 같은 관련 장치에 질의하여 그 응답을 평가할 필요가 있다.
본 발명은, 데이터 및 제어 신호를 전송하는 버스에 의해 결합되는 제 1 스테이션 및 제 2 스테이션을 포함하는 버스 시스템에 관한 것으로 상기 버스는, 제 1 스테이션이 제 2 스테이션에게 반복적으로 요청을 송신하고 제 2 스테이션이 상기 요청에 응답하는 프로토콜에 따라서 동작하고 있다.
본 발명은 또한 버스에 대한 접속부와, 인터럽트를 인터럽트 가능한 프로세서에 인가하는 인터럽트 출력부를 포함하는 버스 인터페이스에 관한 것이다.
도 1은 USB 명세서, 개정판 2.0에 지정된 바와 같은 인터럽트 트랜잭션 포맷을 도시한 도면.
도 2는 본 발명에 따른 버스 시스템을 도시한 블록도.
도 3a는 데이터 송신을 위한 트랜잭션을 도시한 메시지도.
도 3b는 데이터 송신을 위한 트랜잭션을 도시한 메시지도.
도 4는 본 발명에 따른 버스 인터페이스를 도시한 블록도.
도 5는 선입 선출 방식으로 조직된 버퍼의 개략도.
본 발명의 목적은 버스 시스템의 제 1 스테이션 내의 프로세서로부터 버스 시스템의 제 2 스테이션으로 또는 그 반대로 데이터를 전송하는데 필요한 오버헤드의 양을 감소시키는 것이다.
상기 목적을 달성하기 위하여, 본 발명은 제 1 스테이션이 인터럽트 가능한 프로세서와 버스 인터페이스를 포함하되, 버스 인터페이스는 제 2 스테이션의 선택된 응답의 수신 시에 인터럽트 가능한 프로세서를 인터럽트하도록 동작가능하며, 인터럽트 가능한 프로세서는 버스 인터페이스의 인터럽트를 처리하도록 동작 가능한 것을 특징으로 하는 서두에서 규정한 버스 시스템을 포함한다.
동작시에 제 1 스테이션 내의 프로세서는 제 2 스테이션에 정보를 제공하거나 제 2 스테이션으로부터 정보를 획득할 필요가 있다. 이를 위해, 제 1 스테이션은 제 2 스테이션과 통신할 필요가 있다. USB 시스템과 같은 폴링된 버스 시스템에서, USB 시스템 내의 호스트인 제 1 스테이션에 의해 통신이 개시된다. USB 시스템 내의 장치인 제 2 스테이션이 불규칙적인 기준으로 데이터를 수신하거나 제공할 수만 있다면, 정보의 성공적인 전송이 이루어지기 전에 제 1 스테이션이 제 2 스테이션을 다수 회 폴링할 필요가 있는 경우가 빈번히 발생한다. 즉, 이들 환경에서, 제 1 스테이션은 정보의 성공적인 전송이 이루어지기 전에 비교적 흔히 제 2 스테이션의 응답을 평가할 필요가 있다.
반면에, 추가적인 액션이 요구되지 않는다면 상기 프로세서를 반드시 인터럽트하지는 않는다. 따라서, 통신이 예상대로 완료되거나 또는 데이터 항목이 아닌 새로운 정보가 제 2 스테이션에 의해 제공되면, 제 2 스테이션과의 통신 결과를 반드시 다시 보고하지는 않는다. 예를 들면, USB 시스템에서, 제 2 스테이션은 데이터 항목 확인 신호, 부의 확인 신호를 갖는 메시지를 송신하거나 중지를 나타내는 신호를 송신함으로써 응답할 수도 있다. 또한, 제 2 스테이션이 신호 송신에 의해 응답하지 않거나, 제 1 스테이션과 제 2 스테이션 간의 통신에서의 에러로 인해 제 1 스테이션에 의해 아무런 신호도 수신되지 않으면, 이것은 또한 응답으로서 인터럽트된다. 따라서, 선택된 응답은 제 2 스테이션으로부터의 응답 신호의 부재를 포함할 수도 있다. 따라서 프로세서에 의해 추가적인 액션을 요청하는 응답 수신 시에, 프로세서가 인터럽트되기만 하면 프로세서의 통신 오버헤드는 감소된다. 이 목적을 위해, 버스 인터페이스는 수신된 응답들 사이에서 이들 응답을 선택한다. 이러한 상황을 처리하도록 프로그램되면, 프로세서는 필요한 추가적인 액션을 취할 수 있다.
본 발명에 따른 버스 인터페이스는 버스에 대한 접속부와, 인터럽트 가능한 프로세서에 인터럽트를 인가하는 인터럽트 출력부를 포함하며, 상기 버스 인터페이스는 또한 접속부로부터의 응답을 수신하고, 선택된 응답의 수신 시에 인터럽트 신호를 인터럽트 출력부로 송신함으로써 프로세서를 인터럽트하도록 동작 가능한 컨트롤러를 포함하는 것을 특징으로 한다.
본 발명의 상기 및 다른 특징들은 후술하는 실시예를 참조하면 명백해질 것이다.
도면에서 동일 부분은 동일 참조부호로 표시되어 있다.
도 1은 USB 명세서, 개정판 2.0에 지정된 인터럽트 트랜잭션 포맷을 도시한도면이다. USB 내에서는 모든 통신이 호스트에 의해 개시된다. 모든 USB 장치는 고유한 USB 어드레스에 의해 액세스된다. 각각의 장치는 호스트가 통신하는 하나 이상의 엔드포인트를 부가적으로 지원한다.
USB는 기능적인 데이터를 지원하며 USB 호스트와 USB 장치 사이의 교환을 제어한다. USB 데이터 전송은 USB 장치 상의 특정 엔드포인트와 호스트 소프트웨어 사이에서 발생한다. USB 아키텍처는 다음과 같은 세 가지 기본적인 전송 유형을 포함한다.
등시성 전송 : 사전에 절충된 지연을 갖는 사전에 절충된 양의 USB 대역폭을 점유하는 동시성 또는 스트리밍 실시간 데이터.
인터럽트 전송 : 사람이 감지할 수 있는 에코 또는 피드백 응답 특성을 갖는 좌표 또는 문자와 같은 비동기 대화형 데이터.
벌크 전송 : 비교적 대량으로 발생되거나 소모되며 넓은 동적 범위 및 전송 한계를 갖는 비동기 블록 전송 데이터.
진행중인 트랜잭션이 없다면, USB 시스템은 유휴 모드(101)에 있다. 데이터 전송을 포함하는 버스 트랜잭션은 일반적으로 셋업 스테이지(102), 데이터 스테이지(103), 상태 스테이지(104)의 세 개의 스테이지를 포함한다.
데이터 전송을 포함하는 버스 트랜잭션은 일반적으로 토큰 패킷(105, 106), 데이터 패킷(107, 108), 핸드세이크 패킷(109, 110, 111, 112, 115, 116)의 세 개의 상이한 패킷의 전송을 포함한다.
인터럽트 트랜잭션은 IN 전송 또는 OUT 전송으로 이루어질 수도 있다. IN전송의 경우, USB 호스트는 IN 토큰(105)을 송신함으로써 트랜잭션을 시작한다. IN 토큰 수신시, USB 장치는 데이터(107), 부정의 응답 신호(NAK)(111), 또는 USB 장치가 커맨드를 완료할 수 없다는 것을 나타내는 신호(STALL)(112)를 반환한다. 엔드포인트가 반환할 새로운 인터럽트 정보를 갖고 있지 않으면(즉, 인터럽트가 보류중이면), USB 장치는 데이터 스테이지(103) 동안에 NAK 핸드세이크(111)를 반환한다. USB 장치가 커맨드를 완료할 수 없다면, USB 장치는 STALL 핸드세이크(112)를 반환한다. 인터럽트가 보류중이면, USB 장치는 데이터 패킷(107)으로서 인터럽트 정보를 반환한다. 데이터가 에러없이 수신되면 USB 호스트는 데이터 패킷(107)의 수신에 응답하여 ACK 핸드세이크(109)(응답 신호)를 발행하고, 데이터 패킷(107)이 손상된 채로 수신되면 핸드세이크를 반환하지 않는다(113). 또한, IN 토큰(105)에 대한 응답이 USB 장치로부터 전혀 수신되지 않으면 USB 호스트는 ACK(109)를 발행하지 않는다. 이 상황은 선(114)으로 표시된다. IN 전송 완료 후에, USB 시스템은 유휴 모드(101)로 돌아간다.
OUT 전송의 경우에, USB 호스트는 OUT 토큰(106)을 송신함으로써 트랜잭션을 시작한다. 그 다음에 데이터 패킷(108)을 송신한다. USB 장치는, 데이터 패킷 수신 시, 데이터가 에러 없이 수신되면 상태 스테이지(104)에서 ACK 핸드세이크(110)를 발행할 수 있으며, 또는 USB 장치가 현재 중지됨을 나타내는 STALL 핸드세이크(116)를 발행할 수도 있다. 데이터 패킷(107)이 손상된 채로 수신되면, USB 장치는 핸드세이크를 반환하지 않는다(117). 또한, USB 장치는 USB 호스트로부터 데이터를 수신하지 않는 경우에 ACK 핸드세이크(110)를 발행하지않는다(118). OUT 전송의 완료 후에 USB 시스템은 유휴 모드(101)로 돌아간다.
모든 패킷들은, 인입 데이터를 로컬 클록과 정렬하도록 입력 회로에 의해 사용되는 SYNC 필드로 시작한다. 각 USB 패킷의 SYNC 필드 바로 뒤에는 패킷 식별자(PID)가 후속한다. PID는 4비트 ID 필드와 그 다음의 4비트 검사 필드로 이루어진다. PID는 패킷의 유형(토큰(105, 106), 데이터(107, 108) 및 핸드세이크(109, 110, 111, 112, 115, 116) 및 패킷에 적용된 다양한 검출 유형과 함께 패킷의 포맷을 나타낸다. PID의 4비트 검사 필드는 신뢰할 수 있는 디코딩을 보장한다.
토큰 패킷(105, 106)은, 토큰(PID)의 값에 따라서, USB 어드레스, 즉, 데이터 패킷(107, 108)의 소스 또는 수신지를 통해, 목적(target) USB 장치를 지정하는 ADDR 필드를 포함한다. USB 장치는 ADDR 필드의 완벽한 디코딩을 수행해야 한다.
데이터 패킷(107, 108)은 0 내지 N 바이트 범위이며 정수 바이트인 데이터 필드를 포함한다. 각 바이트 내의 데이터 비트는 최상위 비트를 시프트시킨다. 데이터 패킷의 데이터 필드는, 요청이 이루어지면 여분의 정보를 USB 장치에 제공하는 필드들로 분할된다. 한 필드, 즉, 커맨드 코드는, USB 장치 스페이스로부터의 판독을 셋업하거나 USB 장치로의 기록을 셋업하는 것과 같이, 목적 USB 장치가 해야할 사항을 지시한다. 판독 스페이스 커맨드는 USB 장치의 주어진 스페이스 내의 소정의 위치로부터 정보를 요청하는데 사용된다. 커맨드는 판독을 셋업하는데 사용되며, 그 다음에 데이터 송신을 위한 USB 장치용 호스트로부터의 요청이 뒤따른다. 그러면, USB 장치는 사전에 지정된 스페이스로부터 검출한 데이터를 송신한다. 기록 스페이스는 판독 스페이스와 정확히 동일한 정의를 사용한다. 그러나, 데이터 패킷은 호스트에 의해 USB 장치로 전송된 데이터를 포함한다.
핸드세이크 패킷(109, 110, 111, 112, 115, 116)은 단지 PID로만 이루어진다. 전술한 바와 같이, 핸드세이크 패킷은 데이터 전송의 상태를 보고하는데 사용되며, 데이터의 성공적인 수신, CRC 실패, 흐름 제어 및 어떠한 장애 상태를 나타내는 값을 반환할 수 있다.
도 2는 본 발명에 따른 버스 시스템을 나타내는 블록도이다. 버스 시스템(201)은 USB 호스트로서 동작하는 제 1 스테이션(202)과, USB 장치와 같이 동작하는 제 2 스테이션(203, 204)을 포함한다. 스테이션(202, 203, 204)은 버스 접속부(205)에 의해 결합된다. 제 1 스테이션(202)을 보다 상세히 살펴보면, 제 1 스테이션은 인터럽트 가능한 프로세서(206) 및 버스 인터페이스(207)를 포함한다. 버스 인터페이스는 버퍼(208) 및 컨트롤러(209)를 포함한다. 버퍼는 반드시 버스 인터페이스의 일부일 필요는 없다. 다른 구성에서는, 버퍼는 제 1 스테이션(202) 내에 위치하지만, 버스 인터페이스의 외부에 위치할 수 있다. 프로세서(206) 및 컨트롤러(209)는 버퍼(208)에 액세스한다. 컨트롤러는 버스 접속부(205)에 결합된다. 또한, 컨트롤러(209)는 프로세서(206)에 대한 인터럽트 접속(210)을 갖는다.
도 3a는 데이터 전송을 위한 트랜잭션을 도시하는 메시지도이다. 이 메시지 도는 IN 전송으로 이루어진 인터럽트 트랜잭션에 대한 도 1의 시스템의 동작을 도시한다. 도면은 위에서 아래로 시간 순으로 도시되어 있다. 프로세서(206)와 버스 인터페이스(207) 간의 정보 교환은 제 1 라인(301)과 제 2 라인(302) 사이의 화살표로 기호화되어 있다. 버스 인터페이스와 제 2 스테이션(203, 204) 사이의 정보 교환은 제 2 라인(302)과 제 3 라인(303) 사이의 화살표로 부호화되어 있다.
프로세서(206)는 제 2 스테이션(203, 204), USB 장치 중 하나로부터 데이터를 요청한다. 따라서 버스 인터페이스(207)는 버스 접속(205)을 위한 데이터의 요청을 반복해서 발행한다. 프로세서에 대한 통신 오버헤드를 감소시키기 위해, 프로세서가 단 한번만 요청 특성을 제공하면 된다. 어드레스 지정된 USB 장치가 데이터를 반환하면, 버스 인터페이스(207)는 인터럽트 접속을 통해 프로세서를 인터럽트하고, 프로세서에게 데이터를 제공한다. 에러가 발생하면, 프로세서에게 통지된다. 이들 경우에, 버스 인터페이스(207)는 또한 프로세서를 인터럽트한다. 그 외의 경우에는 프로세서로부터 아무런 액션이 요구되지 않으며, 따라서, 버스 인터페이스(207)는 프로세서를 인터럽트하지 않는다.
IN 전송(304)에서, 메시지(309) 내의 프로세서(206)는 버퍼 내에 저장되어 있는 요청 특성을 버스 인터페이스(207)로 송신한다. 버퍼로부터 검색된 메시지(309) 내의 요청 특성에 따라서, 버스 인터페이스(207)는 버스 상에 IN 토큰(310)을 발행함으로써 IN 전송을 개시한다. 제 2 스테이션, 즉, 어드레스 지정된 USB 장치는 데이터 항목을 갖는 메시지(311)를 송신함으로써 응답한다. 이 메시지를 수신한 경우에, 버스 인터페이스(207)는 인터럽트 접속(210)을 통해 프로세서(206)로 인터럽트 신호(312)를 송신하여, 프로세서(206)에게 새로운 데이터가 사용 가능함을 통지한다. 또한, 버스 인터페이스는 어드레스 지정된 USB 장치로 응답 신호(313)를 발행한다. 이로서 IN 전송(304)을 완료한다.
동일한 요청 특성을 갖는 IN 전송(304) 다음의 IN 전송(305)에서는, 버스 인터페이스(207)는 다시 버퍼로부터 요청 특성을 검색하며, 이 때 새로운 정보가 프로세서(206)로부터 요청되지 않는다. 버스 인터페이스(207)는 버스 상에 IN 토큰(314)을 발행함으로써 IN 전송을 개시한다. 어드레스 지정된 USB 장치는 데이터 항목을 갖는 메시지(315)를 송신하여 응답한다. 버스 상의 에러로 인해 제 2 메시지(315)버스 인터페이스(207)에 의해 손상된 채로 수신된다. 따라서, 버스 인터페이스(207)는 ACK 핸드세이크를 발행하지 않는다. 대신에 인터럽트 신호(316)를 인터럽트 접속(210)을 통해 프로세서(206)로 송신하여 프로세서(206)에게 에러가 발생했음을 알린다. 이로서 IN 전송(305)을 완료한다.
동일한 요청 특성을 갖는 IN 전송(304) 다음의 IN 전송(306)에서, 버스 인터페이스(207)는 다시 버퍼(208)로부터 요청 특성을 검색하며, 이 때 새로운 정보가 프로세서(206)로부터 요청되지 않는다. 버스 인터페이스(207)는 버스 상에 IN 토큰(317)을 발행함으로써 IN 전송을 개시한다. 버스 상의 에러로 인해 IN 토큰(317)은 어드레스 지정된 USB 장치에서 손상된 채로 수신된다. 이러한 이유로, IN 토큰(317)에 응답하지 않는다. USB 장치에 의해 응답이 없으면, 버스 인터페이스(207)는 인터럽트 접속(210)을 통해 인터럽트 신호(318)를 프로세서(206)로 송신하여 프로세서(206)에게 에러가 발생했음을 알린다. 이로서 IN 전송(306)을 완료한다.
동일한 요청 특성을 갖는 IN 전송(304) 다음의 IN 전송(307)에서, 버스 인터페이스(207)는 다시 버퍼(208)로부터 요청 특성을 검색하며, 이 때 새로운 정보가프로세서(206)로부터 요청되지 않는다. 버스 인터페이스(207)는 버스 상에 IN 토큰(317)을 발행함으로써 IN 전송을 개시한다. 어드레스 지정된 USB 장치는 이용가능한 데이터가 없음을 나타내는 NAK 핸드세이크(320)로 응답한다. 이로서 IN 전송(307)을 완료한다.
동일한 요청 특성을 갖는 IN 전송(304) 다음의 IN 전송(308)에서는, 버스 인터페이스(207)는 다시 버퍼(208)로부터 요청 특성을 검색하며, 이 때 새로운 정보가 프로세서(206)로부터 요청되지 않는다. 버스 인터페이스(207)는 버스 상에 IN 토큰(321)을 발행함으로써 IN 전송을 개시한다. 어드레스 지정된 USB 장치는 커맨드를 완료할 수 없음을 나타내는 STALL 핸드세이크(322)로 응답한다. STALL 핸드세이크(322)를 수신하면, 버스 인터페이스(204)는 인터럽트 접속(210)을 통해 인터럽트 신호(323)를 프로세서(206)로 송신한다. 이로서 IN 전송(307)을 완료한다.
IN 전송(304, 305, 306, 307, 308)은 버스 시스템의 기능을 명확하게 하기 위한 일례에 불과하며, 버스 시스템의 기능은 도시된 IN 전송이나 IN 전송이 도시되어 있는 순서에 제한되지 않는다.
도 3b는 데이터 전송을 위한 트랜잭션을 도시한 메시지도이다. 메시지도는 OUT 전송으로 이루어진 인터럽트 트랜잭션에 대한 도 1의 시스템의 동작을 예시한다. 위에서 아래로 갈수록 시간은 증가한다. 프로세서(206)와 버스 인터페이스(207) 사이의 정보 교환은 제 1 라인(301)과 제 2 라인(302) 사이의 화살표에 의해 기호화되어 있다. 버스 인터페이스와 제 2 스테이션(203, 204) 사이의 정보 교환은 제 2 라인(302)과 제 3 라인(303) 사이의 화살표에 의해 기호화되어 있다.
프로세서(206)는 제 2 스테이션(203, 204), USB 장치 중 하나에 데이터를 전송할 필요가 있다. 따라서, 버스 인터페이스(207)는 버스 접속부(205)에 데이터를 수신하기 위한 요청을 반복해서 발행한다. 프로세서(206)에 대한 통신 오버헤드를 감소시키기 위해서는 프로세서가 요청 특성을 단 한번만 제공하도록 하는 것으로 충분하다. 어드레스 지정된 USB 장치가 데이터를 수신하면, 버스 인터페이스(207)는 인터럽트 접속을 통해 프로세서를 인터럽트하여 프로세서에게 통지한다. 에러가 발생한 경우에도, 프로세서(206)에 통지되어야 한다. 이러한 상황에서, 버스 인터페이스(207)는 프로세서(206)를 인터럽트한다. 다른 경우에는, 프로세서(206)로부터 아무런 액션이 요청되지 않으며, 따라서 버스 인터페이스(207)는 프로세서(206)를 인터럽트하지 않는다.
OUT 전송(324)에서, 메시지(329) 내의 프로세서는 요청 특성을 버스 인터페이스(207)에게 송신하며, 여기서 요청 특성은 버퍼에 저장된다. 버퍼로부터 검색되는 메시지(329) 내의 요청 특성에 기초하여, 버스 인터페이스(207)는 버스 상에 OUT 토큰(330)을 발행함으로써 OUT 전송을 개시한다. 이어서, 버스 인터페이스는 데이터 패킷(331)을 발행한다. 제 2 스테이션, 어드레스 지정된 USB 장치는 ACK 핸드세이크(332)를 송신하여 응답한다. ACK 핸드세이크(332)의 수신시, 버스 인터페이스(207)는 인터럽트 접속(210)을 통해 인터럽트 신호(333)를 프로세서(206)에게 송신하여, 프로세서(206)에게 데이터가 성공적으로 전송되었음을 통지한다. 다른 구성에서는, 버스 인터페이스(207)는 인터럽트 신호(332)를 프로세서(206)에 송신하지 않는데, 이는 프로세서(206)가 인터럽트되지 않으면 프로세서(206)가 데이터의 성공적인 전송이 발생했다고 추정하기 때문이다.
동일한 요청 특성을 갖는 OUT 전송(324) 다음의 OUT 전송(325)에서는, 버스 인터페이스(207)는 다시 버퍼(208)로부터 요청 특성을 검색하며, 이 때 새로운 정보가 프로세서(206)로부터 요청되지는 않는다. 버스 인터페이스(207)는 버스 상에 OUT 토큰(334)을 발행함으로써 OUT 전송을 개시한다. 이어서, 버스 인터페이스는 데이터 패킷(335)을 발행한다. 어드레스 지정된 USB 장치는 전송된 데이터를 처리할 준비가 되지 않았음을 나타내기 위해 NAK 핸드세이크(336)를 발행하여 응답한다. 이로서 OUT 전송(325)을 완료한다.
동일한 요청 특성을 갖는 OUT 전송(324) 다음의 OUT 전송(326)에서는, 버스 인터페이스(207)는 다시 버퍼(208)로부터 요청 특성을 검색하며, 이 때 새로운 정보가 프로세서(206)로부터 요청되지는 않는다. 버스 인터페이스(207)는 버스 상에 OUT 토큰(337)을 발행함으로써 OUT 전송을 개시한다. 이어서, 버스 인터페이스는 데이터 패킷(338)을 발행한다. 응답으로, USB 장치는 OUT 전송을 처리할 수 없음을 나타내기 위해 STALL 핸드세이크(339)를 송신한다. STALL 핸드세이크를 수신하면, 버스 인터페이스는 인터럽트 접속을 통해 인터럽트 신호(340)를 프로세서(206)에게 송신하여 프로세서에게 어드레스 지정된 USB 장치의 상태를 통지한다. 이로서 OUT 전송(326)을 완료한다.
동일한 요청 특성을 갖는 OUT 전송(324) 다음의 OUT 전송(327)에서는, 버스 인터페이스(207)는 다시 버퍼(208)로부터 요청 특성을 검색하며, 이 때 새로운 정보가 프로세서(206)로부터 요청되지는 않는다. 버스 인터페이스(207)는 버스 상에 OUT 토큰(341)을 발행함으로써 OUT 전송을 개시한다. 이어서, 버스 인터페이스는 데이터 패킷(342)을 발행한다. 버스 상의 에러로 인해, 데이터 패킷(342)은 어드레스 지정된 USB 장치에 의해 손상된 채로 수신된다. 이러한 이유로, 어드레스 지정된 USB 장치는 응답하지 않는다. USB 장치에 의해 아무런 응답이 없으면, 버스 인터페이스(207)는 인터럽트 접속(210)을 통해 인터럽트 신호를 프로세서(206)로 송신하여 프로세서에게 통지한다. 이로서 OUT 전송(327)을 완료한다.
동일한 요청 특성을 갖는 OUT 전송(324) 다음의 OUT 전송(328)에서는, 버스 인터페이스(207)는 다시 버퍼(208)로부터 요청 특성을 검색하며, 이 때 새로운 정보가 프로세서(206)로부터 요청되지는 않는다. 버스 인터페이스(207)는 버스 상에 OUT 토큰(334)을 발행함으로써 OUT 전송을 개시한다. 이어서, 버스 인터페이스는 데이터 패킷(335)을 발행한다. 에러 상태의 발생으로 인해, 버스 인터페이스는 후속 데이터 패킷의 이미 시작된 발생을 시작 또는 완료하지 않는다. 이러한 이유로, 버스 인터페이스(207)는 인터럽트 접속(210)을 통해 인터럽트 신호(345)를 프로세서(206)로 송신하여 프로세서에게 통지한다. 이로서 OUT 전송(328)을 완료한다.
OUT 전송(324, 325, 326, 327, 328)은 버스 시스템의 기능을 명확하게 하기 위한 일례에 불과하며, 버스 시스템의 기능은 도시된 OUT 전송이나 OUT 전송이 도시되어 있는 순서에 제한되지 않는다.
도 4는 본 발명에 따른 버스 인터페이스를 도시한 블록도이다. 도면에 도시된 블록도는 버스 인터페이스 집적 회로의 블록도이다. 버스 인터페이스 집적 회로(401)는 두 가지 역할을 한다. 버스 인터페이스 집적 회로는 USB 장치로서 작동하는 버스 스테이션 부분과 USB 호스트로서 작동하는 버스 스테이션 부분일 수 있다. 이것은 USB 온-더-고(On-The-Go)(OTG) 장치에서 특히 유용하다. 이러한 USB OTG 장치의 예로는, 어떠한 동작 모드에서 USB를 통해, 예컨대 매체 저장 장치(즉, 하드 디스크 드라이브, 광학 레코더, 또는 (solid state recorder)), 프린터 또는 셀룰러 폰에 접속되는 디지털 스틸 카메라, 디지털 비디오 카메라, 개인용 디지털 보조장치 또는 오실로스코프를 들 수 있다. 이 동작 모드에서, USB OTG 장치는 USB 호스트로서 작동한다. 다른 동작 모드에서는 USB OTG가 USB를 통해, 예컨대 개인용 컴퓨터에 접속된다. 이 동작 모드에서는 USB OTG 장치가 USB 장치로서 작동한다. USB OTG 장치의 버스 인터페이스 집적 회로가 동작하는 모드는 USB OTG 장치 내의 프로세서에 의해 결정되고 제어되는 소프트웨어일 수 있다.
USB OTG 장치가 휴대형인 경우에, 버스 인터페이스 집적 회로가 어떠한 기능 블록을 차단하거나 또는 예컨대 낮은 버스 트래픽 또는 버스 트래픽이 전혀 없는 시간 주기에서 보다 낮은 클록 속도로 동작하는 저 전력 소비 모드를 포함하는 것이 바람직할 수 있다. 이러한 저 전력 소비 모드는, 이른바 원격 웨이크-업(wake-up) 특성을 포함함으로써 개선될 수 있으며, 어떠한 또는 모든 기능 블록의 동작으로 되돌아가거나 버스 인터페이스 집적 회로의 클록 속도를 증가시키도록 USB OTG 장치의 프로세서에 의해 제어될 수 있다. 원격 웨이크-업 특성은, 예컨대 프로세서가 증가된 버스 트래픽을 예상하는 경우에, 활성화될 수 있다.
버스 인터페이스 집적 회로(401)는 프로세서와의 접속부(402), 버스 인터페이스 집적 회로(401)가 USB 호스트로서 동작하는 경우에 USB에 접속하기 위한 접속부(403) 및 버스 인터페이스 집적 회로(401)가 USB 장치로서 동작하는 경우에 USB에 접속하기 위한 접속부(404)를 포함한다. 실제 구현시에, 접속부(403, 404)는 동일한 I/O 단자를 공유할 수 있으며, 이 때 내부 멀티플렉서는 버스 신호의 내부 라우팅을 처리한다. 이러한 실시는 접속부(403)가 동시에 사용되지 않는다는 보장이 있는 경우에 바람직할 수 있다.
버스 인터페이스 집적 회로(401)는 또한 호스트-장치 멀티플렉서(405), 타이밍 블록(406), 호스트 인터페이스(407), 장치 인터페이스(408), 호스트 컨트롤러(409), 장치 컨트롤러(410), 호스트 버퍼(411), 장치 버퍼(412), 호스트 트랜시버(413) 및 장치 트랜시버(414)를 포함한다.
호스트-장치 멀티플렉서(405)는 프로세서와의 접속부(402)에 접속된다. 바람직하게는 프로세서의 제어 하에서, 버스 인터페이스 집적 회로(401)와 프로세서와의 통신의 내부 라우팅을 결정한다. 버스 인터페이스 집적 회로(401)는 USB 호스트로서 동작하는 경우에는, 호스트 장치 멀티플렉서(405)는 호스트 컨트롤러(409)를, 호스트 인터페이스(407)를 통해 프로세서에 연결한다. 버스 인터페이스 집적 회로(401)가 USB 장치로 동작하는 경우에는, 호스트 장치 멀티플렉서가 장치 컨트롤러(410)를 장치 인터페이스(408)를 통해 프로세서에 연결한다. 호스트 컨트롤러(409)는 호스트 트랜시버(413)를 통해 버스 접속부(403)에 액세스한다. 장치 컨트롤러(410)는 장치 트랜시버(414)를 통해 버스 접속부(404)에 액세스한다.
호스트 버퍼(411)는 호스트 컨트롤러(409) 및 호스트 장치 멀티플렉서(405)를 통해 프로세서에 의해 액세스 가능하다. 호스트 버퍼는, 예를 들면, 프로세서에 의해 발행된 요청 특성을 저장하고, 호스트 컨트롤러(411)와 USB 장치 사이의 통신의 결과를 저장하는데 사용될 수 있다.
장치 버퍼(412)는 장치 컨트롤러(410) 및 호스트 장치 멀티플렉서(405)를 통해, 프로세서에 의해 액세스 가능하다. 장치 버퍼는, 예를 들면, USB 호스트로 송신될, 프로세서에 의해 발생된 데이터를 버퍼링하는데 사용될 수 있다. 버스 인터페이스 집적 회로와 광범위의 프로세서 사이의 협동 작용을 지원하기 위해, 호스트 버퍼(411)와 장치 버퍼(412)는 직접 메모리 액세스(DMA) 모드와 병렬 입력-출력 모드 모두에서 프로세서에 의해 액세스 가능한 것이 바람직하다.
프로세서와 버스 인터페이스 집적 회로(401) 내의 버퍼 사이의 여러 방식의 통신을 지원하는 것이 바람직하다. 그 결과 보다 넓은 프로세서의 선택이 가능해진다. 예를 들면, 보다 복잡한 컴퓨팅 시스템은 DMA 동작을 지원할 것이다. 버스 인터페이스가 DMA 동작을 지원하면, 프로세서의 통신 오버헤드는 더욱 감소된다. 반면에, 덜 복잡한 버스 스테이션에서는, 프로세서가 DMA 컨트롤러의 지원 없이 모든 통신을 처리한다. 이러한 상황에서, 버스 인터페이스는 병력 입력-출력 모드에서 버스 인터페이스와 프로세서 사이의 데이터 교환을 지원할 필요가 있다.
전술한 실시예는 버스 인터페이스 집적 회로에 관한 것이지만, 당업자라면 도면 내의 다른 블록들 또는 블록들의 그룹이 상이한 집적 회로 및 분리된 구성요소로 구현될 수 있음을 알 수 있을 것이다. 따라서, 블록도로 나타낸 버스 인터페이스에 대한 다른 실시예들은 복수의 집적 회로 및 다양한 블록 기능을 수행하는 분리된 구성요소를 포함할 수 있다.
버스 시스템의 요건에 따라서, 버스 인터페이스를 집적 회로로서 구현하는 것이 바람직하다. 집적 회로 내의 기능 통합으로 구성요소의 수를 감축할 수 있고 면적을 최소화할 수 있으며, 따라서 버스 인터페이스를 포함하는 버스 스테이션의 물리적인 크기를 감소시킬 수 있다. 또한, 버스 인터페이스를 집적 회로로서 구현하면, 전력 소비를 줄일 수 있다.
버스 시스템의 요건에 따라서, 가능한 한 표준 구축 블록을 이용하여 복수의 집적 회로 및 분리된 전자 소자와의 버스 인터페이스를 실현하는 것이 바람직하다. 이렇게 하면 버스 인터페이스의 비용가격이 저감된다.
도 5는 선입 선출(FIFO) 방식으로 조직된 버퍼(501)의 개략도이다. 이것은 호스트 버퍼(411)를 조직하는 효율적인 방식이다. FIFO 버퍼의 최상부는 화살표(502)로 표시되어 있다. FIFO 버퍼의 최하부는 화살표(503)로 표시되어 있다. 버퍼는, 예를 들어 USB 트랜잭션, 특히 USB 인터럽션 트랜잭션을 개시하기 위해 여러 개의 요청(504, 505, 506)의 요청 특성을 저장한다. 개략하면 첫 번째 발행된 요청 특성은 504로 표시되고, 두 번째 발행된 요청은 505로 표시되며, 마지막으로 발행된 요청은 506으로 표시되어 있다. 영역(507)은 나머지 요청 특성을 나타내며, 영역(508)은 FIFO 버퍼 내의 사용되지 않는 나머지 공간을 나타낸다. 요청 특성은, 전송 설명어(transfer descriptor) 또는 헤더(509)와, 페이로드데이터(510)의 두 부분으로 분할된다. 전송 설명어(509)는 호스트 컨트롤러(409)에 의해 처리되는 트랜잭션의 특성을 설명한다. 페이로드 데이터(510)는 호스트 컨트롤러에 의해 처리되는 트랜잭션의 데이터 패킷 내에 포함되는 데이터이다. 전송 설명어는 또한 트랜잭션의 결과를 저장하기 위해 호스트 컨트롤러(409)에 의해 사용된다. 따라서, 프로세서 및 호스트 컨트롤러(409)는 모두 FIFO 버퍼(501)에 액세스한다.
선입 선출 모드로 버퍼를 구성하는 것이 바람직하다. 이 방법에서는, 프로세서 및 컨트롤러에 대해 버퍼에 저장된 데이터에 액세스하는 것이 비교적 간단하다.
요청 특성 및 제 2 스테이션과의 통신 결과를 저장하기 위해 버퍼를 사용하는 것이 바람직하다. 동일한 버퍼가 요청 특성 및 요청의 결과를 저장하는데 사용되기 때문에, 프로세서에게 버퍼 또는 적어도 버퍼의 지정된 부분에 대한 판독 액세스를 부여함으로써, 효율적인 통신 방법이 확립된다. 따라서, 프로세서는, 요청 특성을 기록할 때 단지 액세스 타입만이 기록 모드로부터 판독 모드로 변경되는 것과 동일한 방법으로 버퍼에 액세스할 수 있다.
프로세서에 의해 제공된 정보에 기초하여 정확한 폴링 레이트(polling rate)를 결정하는 버스 인터페이스를 갖는 것이 바람직하다. 가능한 폴링 레이트의 수를 제한하면, 상이한 폴링 레이트를 갖는 상이한 요청들을 처리하는 중에 버스 인터페이스의 작업을 단순화할 수 있다. 예를 들면, 프로세서가 1, 2, 3 및 128 밀리초 사이의 임의의 폴링 레이트를 선택하면, 버스 인터페이스는 선택된 폴링 레이트를 다음의 실제 폴링 레이트들, 즉 1, 2, 4, 8, 16, 32, 64 또는 128 밀리초 중 하나에 맵핑시키며, 따라서 가능한 수의 상이한 폴링 레이트를 감소시켜 128로부터 8로 처리할 수 있다. 바람직하게는, 버스 인터페이스는 선택된 폴링 레이트에 가장 가까운 실제 폴링 레이트 상에 프로세서에 의해 선택된 폴링 레이트를 맵핑시킨다.
하기 표는 전송 설명자의 포맷을 나타내고 있다. 도시되어 있는 포맷은 바이트 0, 바이트 1, ..., 바이트 7로서 표시된 8 바이트로 구성된다. 각각의 바이트는 0, 1, ..., 7로서 열거된 8 비트로 이루어진다.
하기 표는 상기 표의 파라미터의 의미를 설명한다.

Claims (6)

  1. 데이터 및 제어 신호를 전송하는 버스에 의해 결합된 제 1 스테이션(202) 및 제 2 스테이션(203, 204)을 포함하는 버스 시스템 -상기 버스는, 상기 제 1 스테이션(202)이 요청을 상기 제 2 스테이션(203, 204)으로 반복해서 송신하고 상기 제 2 스테이션(203, 204)이 상기 요청에 응답하는 프로토콜에 따라서 동작함- 에 있어서,
    상기 제 1 스테이션(202)은 인터럽트 가능한 프로세서(206)와 버스 인터페이스(207)를 포함하고,
    상기 버스 인터페이스(207)는 상기 제 2 스테이션(203, 204)의 선택된 응답의 수신 시에 상기 인터럽트 가능한 프로세서(206)를 인터럽트하도록 동작가능하며,
    상기 인터럽트 가능한 프로세서(206)는 상기 버스 인터페이스(207)의 인터럽트를 처리하도록 동작 가능한
    버스 시스템.
  2. 제 1 항에 있어서,
    상기 선택된 응답은 상기 제 2 스테이션으로부터 응답 신호의 부재를 포함하는 버스 시스템.
  3. 제 1 항에 있어서,
    상기 버스 시스템은 USB 버스 시스템인 버스 시스템.
  4. 버스에 대한 접속부(403)와, 인터럽트 가능한 프로세서에 인터럽트를 인가하는 인터럽트 출력부를 포함하는 버스 인터페이스에 있어서,
    상기 버스 인터페이스는 또한 상기 접속부(403)로부터의 응답을 수신하고, 선택된 응답의 수신 시에 인터럽트 신호를 상기 인터럽트 출력부로 송신함으로써 상기 프로세서를 인터럽트하도록 동작 가능한 컨트롤러(409)를 포함하는
    버스 인터페이스.
  5. 제 4 항에 있어서,
    상기 선택된 응답은 상기 접속에 대한 응답 신호의 부재를 포함하는 버스 인터페이스.
  6. 제 4 항에 있어서,
    상기 스테이션은 USB 인터페이스로서 동작하도록 구성되는 버스 인터페이스.
KR10-2004-7004359A 2001-09-27 2002-09-16 버스 시스템 및 버스 인터페이스 KR20040043198A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SG0100195 2001-09-27
SGPCT/SG01/00195 2001-09-27
PCT/IB2002/003820 WO2003029997A1 (en) 2001-09-27 2002-09-16 Bus system and bus interface

Publications (1)

Publication Number Publication Date
KR20040043198A true KR20040043198A (ko) 2004-05-22

Family

ID=20428994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7004359A KR20040043198A (ko) 2001-09-27 2002-09-16 버스 시스템 및 버스 인터페이스

Country Status (7)

Country Link
US (1) US7043589B2 (ko)
EP (1) EP1433070A1 (ko)
JP (1) JP2005504393A (ko)
KR (1) KR20040043198A (ko)
CN (1) CN1561491A (ko)
TW (1) TW583572B (ko)
WO (1) WO2003029997A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469343B2 (en) * 2003-05-02 2008-12-23 Microsoft Corporation Dynamic substitution of USB data for on-the-fly encryption/decryption
JP2005176233A (ja) * 2003-12-15 2005-06-30 Canon Inc 通信装置及び通信システム
US7413129B2 (en) * 2004-09-30 2008-08-19 Stmicroelectronics, Inc. USB device with secondary USB on-the-go function
DE102005009021A1 (de) * 2005-02-28 2006-09-07 Advanced Micro Devices Inc., Sunnyvale Vereinheitliche USB OTG-Steuerungseinheit
TWI321011B (en) * 2005-12-30 2010-02-21 Altek Corp Portable electronic device for sharing a common storage device via by-pass mode
CN102103560A (zh) * 2009-12-16 2011-06-22 中兴通讯股份有限公司 用于系统总线的防死锁方法及装置
EP2602959B1 (de) * 2011-12-06 2014-06-04 FESTO AG & Co. KG Busknoten und Steuerungssystem
US9817468B2 (en) 2014-02-03 2017-11-14 Dell Products, Lp System and method for automatic detection and switching between USB host and device rolls on a type-A connector
US9804942B2 (en) 2014-06-10 2017-10-31 Analog Devices, Inc. Safety node in interconnect data buses

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60126945A (ja) * 1983-12-14 1985-07-06 Hitachi Ltd ポ−リング方式
JPH0771094B2 (ja) * 1989-05-19 1995-07-31 オムロン株式会社 通信ネットワークシステム
US5675807A (en) * 1992-12-17 1997-10-07 Tandem Computers Incorporated Interrupt message delivery identified by storage location of received interrupt data
EP0652523B1 (en) * 1993-11-10 1999-06-02 Nec Corporation Remote monitoring system
JPH07210537A (ja) * 1993-12-10 1995-08-11 Advanced Micro Devicds Inc コンピュータシステム
EP1343076A3 (en) * 1995-05-26 2004-02-25 National Semiconductor Corporation integrated circuit with multiple functions sharing multiple internal signal buses according to distributed bus access and control arbitration
US5903912A (en) * 1996-08-14 1999-05-11 Advanced Micro Devices, Inc. Microcontroller configured to convey data corresponding to internal memory accesses externally
US5948097A (en) * 1996-08-29 1999-09-07 Intel Corporation Method and apparatus for changing privilege levels in a computer system without use of a call gate
US5854908A (en) * 1996-10-15 1998-12-29 International Business Machines Corporation Computer system generating a processor interrupt in response to receiving an interrupt/data synchronizing signal over a data bus
US6058440A (en) * 1997-09-05 2000-05-02 Intel Corporation Programmable and adaptive resource allocation device and resource use recorder
US6145045A (en) * 1998-01-07 2000-11-07 National Semiconductor Corporation System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points
US6449663B1 (en) * 1998-07-08 2002-09-10 International Business Machines Corporation Method and apparatus for adjusting an interval of polling a network printer based on changes in working status of the network printer
US6640268B1 (en) * 1998-08-28 2003-10-28 Intel Corporation Dynamic polling mechanism for wireless devices
US6665807B1 (en) * 1998-09-04 2003-12-16 Hitachi, Ltd. Information processing apparatus
US6742076B2 (en) * 2000-01-03 2004-05-25 Transdimension, Inc. USB host controller for systems employing batched data transfer
US6691190B1 (en) * 2000-01-24 2004-02-10 Agere Systems Inc. Inter-DSP data exchange in a multiple DSP environment
US6751724B1 (en) * 2000-04-19 2004-06-15 Motorola, Inc. Method and apparatus for instruction fetching

Also Published As

Publication number Publication date
JP2005504393A (ja) 2005-02-10
EP1433070A1 (en) 2004-06-30
CN1561491A (zh) 2005-01-05
US7043589B2 (en) 2006-05-09
WO2003029997A1 (en) 2003-04-10
TW583572B (en) 2004-04-11
US20030101298A1 (en) 2003-05-29

Similar Documents

Publication Publication Date Title
JP3636157B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US7802034B2 (en) Method for performing full transfer automation in a USB controller
EP2397949B1 (en) Flow control for universal serial bus (USB)
US6898751B2 (en) Method and system for optimizing polling in systems using negative acknowledgement protocols
JP3632695B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2519860B2 (ja) バ―ストデ―タ転送装置および方法
US5958024A (en) System having a receive data register for storing at least nine data bits of frame and status bits indicating the status of asynchronous serial receiver
US7028111B2 (en) Bus system and bus interface for connection to a bus
US7058747B2 (en) Bus system and bus interface for connection to a bus
US20070245059A1 (en) Bus Connection Device
US7337382B2 (en) Data transfer control device, electronic instrument, and data transfer control method
EP1516261B1 (en) Bus system, station for use in a bus system, and bus interface
JP3755594B2 (ja) データ転送制御装置及び電子機器
KR20040043198A (ko) 버스 시스템 및 버스 인터페이스
JP3636160B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US20040078502A1 (en) Virtual I/O device coupled to memory controller
JP4127071B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2948380B2 (ja) データ通信装置
CN114741345A (zh) 一种usb dma数据传输装置和方法
JP2003316730A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2003523575A (ja) 結合システムおよび方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid