KR20190006487A - 라인 멀티플렉싱된 uart 플로우 제어를 위한 디지털 시그널링 방식들 - Google Patents

라인 멀티플렉싱된 uart 플로우 제어를 위한 디지털 시그널링 방식들 Download PDF

Info

Publication number
KR20190006487A
KR20190006487A KR1020187031724A KR20187031724A KR20190006487A KR 20190006487 A KR20190006487 A KR 20190006487A KR 1020187031724 A KR1020187031724 A KR 1020187031724A KR 20187031724 A KR20187031724 A KR 20187031724A KR 20190006487 A KR20190006487 A KR 20190006487A
Authority
KR
South Korea
Prior art keywords
wire
flow
control
period
voltage level
Prior art date
Application number
KR1020187031724A
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 KR20190006487A publication Critical patent/KR20190006487A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4213Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Dc Digital Transmission (AREA)
  • Information Transfer Systems (AREA)
  • Bidirectional Digital Transmission (AREA)

Abstract

라인 멀티플렉싱된 시리얼 인터페이스들에 대한 시스템들, 방법들 및 장치가 개시된다. 송신 디바이스에 의해 수행되는 방법은, 정지 조건의 지속기간 미만인 제 1 기간 동안 제 1 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크의 와이어 상에서 정지 조건을 표명하는 단계, 제 1 기간 후에 와이어를 모니터링하는 단계, 와이어가 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 유지될 때 그리고 제 1 기간이 경과한 후에 플로우-제어가 표명되었다고 결정하는 단계, 플로우-제어가 표명되는 동안 와이어 상에서 데이터를 송신하는 것을 보류하는 단계, 및 플로우-제어가 표명 해제될 때 와이어 상에서 데이터를 송신하는 단계를 포함한다.

Description

라인 멀티플렉싱된 UART 플로우 제어를 위한 디지털 시그널링 방식들
관련 출원들의 상호 참조
본 출원은 2016년 5월 10일 미국 특허청에 출원된 가출원 번호 62/334,141, 2017년 5월 5일 미국 특허청에 출원된 가출원 번호 62/502,503 및 2017년 5월 8일 미국 특허청에 출원된 가출원 번호 15/589,805 의 이익을 우선권으로 주장하며, 그 전체 내용을 본원에서는 참조로서 포함한다.
기술 분야
본 개시는 일반적으로 주변 통신 인터페이스들에 관한 것이고, 보다 구체적으로, 각각의 신호에 대한 핀을 이용하여 플로우-제어 신호들을 통신하는 인터페이스 디바이스들과, 감소된 핀 카운트들을 이용하여 플로우-제어 신호들을 통신하는 인터페이스 디바이스들을 통합하는 것에 관한 것이다.
모바일 통신 디바이스들은 회로 기판들, 집적 회로 (IC) 디바이스들 및/또는 시스템-온-칩 (SoC) 디바이스들을 포함하는 여러 컴포넌트들을 포함할 수도 있다. 컴포넌트들은 프로세싱 회로들, 사용자 인터페이스 컴포넌트들, 저장부 및 다른 주변 컴포넌트들을 포함할 수도 있다. 컴포넌트들 간의 통신은 유니버설 비동기식 수신기/송신기 (universal asynchronous receiver/transmitter; UART) 디바이스들을 이용하여 구현될 수도 있다. 많은 인터페이스들에서, 4-와이어 UART 디바이스들은 하나의 와이어 (Tx 와이어) 상에서 데이터를 송신하고 다른 와이어 (Rx 와이어) 상에서 데이터를 수신하고, 그리고 플로우-제어 신호들을 반송하기 위해 2 개의 와이어들을 이용한다. 하나의 플로우-제어 신호는 UART 가 송신될 데이터를 가짐을 표시하는데 이용될 수도 있는 전송 요청 (request-to-send; RTS) 신호이다. 다른 플로우 제어 신호는 UART 에서 수신되는 송신 준비 완료 (clear-to-send; CTS) 신호이고, UART 가 데이터를 송신할 수 있음을 표시하는데 이용될 수도 있다.
기능의 증가 및 보다 고밀도의 입력/출력 (I/O) 구성들은 SoC 및/또는 다른 IC 디바이스들을 상호접속하는데 이용된 인터페이스들에서 감소된 핀 카운트를 위한 요구를 가져온다. 라인 멀티플렉싱된 유니버설 비동기식 수신기/송신기 (LM-UART) 는 I/O 접속들의 수를 감소시키면서, 풀 듀플렉스 동작 모드에서 하드웨어 기반 플로우 제어 메카니즘을 지원하는 능력을 유지하기 위해 Rx 와 Tx 와이어들 상에서의 데이터 송신들 간의 RTS 와 CTS 를 멀티플렉싱하는 것에 의해 Rx, Tx, RTS 및 CTS 신호들을 반송하는데 2 개의 와이어들을 이용하는 UART 이다.
예를 들어, 모바일 디바이스들, 이를 테면, 셀룰라 폰들의 제조자들은 상이한 제조자들을 포함한 여러 소스들로부터 모바일 디바이스들의 컴포넌트들을 구할 수 있다. 예를 들어, 셀룰라 폰에서의 애플리케이션 프로세서는 제 1 제조자로부터 구할 수도 있는 한편, 셀룰라 폰에 대한 모뎀은 제 2 제조자로부터 구할 수도 있다. 애플리케이션 프로세서 및 모뎀 또는 다른 디바이스는 UART들을 이용하여 상호접속될 수도 있다. 일부 디바이스들은 LM-UART 를 포함할 수 있고 2 개의 와이어들과 멀티플렉싱된 플로우-제어를 이용하여 동작 모드들을 지원할 수도 있다. 이에 따라, LM-UART들을 갖는 4-와이어 UART들을 채택하는 디바이스들에서의 시그널링 및 개선된 라인 드라이버들을 제공하는 것에 대한 계속되는 요구가 있다.
본 개시의 특정 양태들은 LM-UART들 간의 개선된 시그널링 신뢰도를 제공하는 시스템들, 장치, 방법들 및 기술들에 관한 것이다.
본 개시의 여러 양태들에서, 송신 디바이스에서 수행되는 방법은, 정지 조건의 지속기간 미만인 제 1 기간 동안 제 1 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크의 와이어 상에서 정지 조건을 표명하는 단계, 제 1 기간 후에 와이어를 모니터링하는 단계, 와이어가 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 유지될 때 그리고 제 1 기간이 경과한 후에 플로우-제어가 표명되었다고 결정하는 단계, 플로우-제어가 표명되는 동안 와이어 상에서 데이터를 송신하는 것을 보류하는 단계, 및 플로우-제어가 표명 해제될 때 상기 와이어 상에서 데이터를 송신하는 단계를 포함한다.
일 양태에서, 와이어는 제 2 기간의 만료 후에 제 1 전압 레벨로 리턴된다. 일부 사례들에서, 본 방법은 와이어가 제 2 기간의 만료시 제 1 전압 레벨로 리턴한 후에 시작하는 제 3 기간 동안 제 2 전압 레벨로 유지될 때 그리고 제 3 기간이 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과할 때 플로우-제어가 표명 해제된다고 결정하는 단계를 포함한다. 일부 사례들에서, 본 방법은 제 2 기간의 지속기간에 기초하여 제 4 기간을 계산하고, 제 4 기간이 경과한 후에 플로우-제어가 표명 해제된다고 결정하는 단계를 포함한다.
일 양태에서, 플로우-제어는 와이어가 정지 조건의 지속기간 내에서 제 2 전압 레벨로 트랜지션할 때 표명되었다고 결정된다. 본 방법은 정지 조건이 종료된 후에 제 2 전압 레벨로의 와이어의 트랜지션이 발생할 때 에러 조건을 결정하는 단계, 및 에러 조건이 결정될 때 제 1 전압 레벨로 와이어를 구동시키는 단계를 포함할 수도 있다. 와이어는 킵퍼 회로를 플립하는 것에 의해 에러 조건이 결정될 때 제 1 전압 레벨로 구동될 수도 있다.
일 양태에서, 본 방법은 데이터그램에 대한 송신 시간에 대응하는 주기가 경과한 후에, 와이어를 액티브 상태로 구동시키는 것에 의해 플로우-제어를 오버라이드하는 단계를 포함한다.
본 개시의 여러 양태들에서, 송신 장치는, 시리얼 데이터 링크의 와이어에 커플링된 라인 드라이버를 제공하며, 상기 라인 드라이버는, 와이어를 통하여 데이터 패킷을 송신하고, 그리고 정지 조건의 지속기간 미만인 제 1 기간 동안 제 1 전압 레벨로 와이어를 구동시키는 것에 의해 데이터 패킷을 송신한 후에 정지 조건을 제공하도록 구성된다. 송신 장치는 플로우-제어 회로를 포함할 수도 있고, 플로우-제어 회로는, 제 1 기간이 경과한 후에 와이어를 모니터링하고, 와이어가 제 1 기간이 경과한 후에 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 유지될 때 플로우-제어가 표명되었다고 결정하도록 구성된다. 라인 드라이버는 플로우-제어가 표명되는 동안 와이어 상에서 데이터를 송신하는 것을 보류하고, 플로우-제어가 표명 해제될 때 와이어 상에서 데이터를 송신하도록 구성될 수도 있다.
일 양태에서, 와이어는 제 2 기간의 만료 후에 제 1 전압 레벨로 리턴된다. 일부 사례들에서, 플로우-제어 회로는 와이어가 제 2 기간의 만료시 제 1 전압 레벨로 리턴한 후에 시작하는 제 3 기간 동안 제 2 전압 레벨로 유지될 때 그리고 제 3 기간이 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과할 때 플로우-제어가 표명 해제된다고 결정하도록 구성된다. 일부 사례들에서, 플로우-제어 회로는 제 2 기간의 지속기간에 기초하여 제 4 기간을 계산하고, 제 4 기간이 경과한 후에 플로우-제어가 표명 해제된다고 결정하도록 구성된다. 플로우-제어 회로는 제 4 기간에 대응하는 클록 펄스들의 수를 카운트하도록 카운터를 프로그래밍하고, 그리고 카운터가 제 4 기간에 대응하는 클록 펄스들의 수를 카운트한 후에 플로우-제어가 표명 해제된다고 결정하도록 구성된다.
일 양태에서, 플로우-제어는 와이어가 정지 조건의 지속기간 내에서 제 2 전압 레벨로 트랜지션할 때 표명되었다고 결정된다. 플로우-제어 회로는 정지 조건이 종료된 후에 제 2 전압 레벨로의 와이어의 트랜지션이 발생할 때 에러 조건이 발생하였다고 결정하도록 구성될 수도 있다. 플로우-제어 회로는 에러 조건이 결정될 때 제 1 전압 레벨로 와이어를 구동시키도록 구성될 수도 있다. 플로우-제어 회로는 에러 조건이 결정될 때 킵퍼 회로를 플립하도록 구성될 수도 있다.
일 양태에서, 장치는 시리얼 데이터 링크가 동기식으로 동작될 때 데이터 패킷들을 송신하도록 구성가능할 수도 있다.
일 양태에서, 플로우-제어 회로는 데이터 바이트에 대한 송신 시간에 대응하는 주기가 경과한 후에 와이어를 액티브 상태로 구동시키는 것에 의해 플로우-제어를 오버라이드하도록 구성된다.
본 개시의 여러 양태들에서, 프로세서 판독가능 저장 매체가 개시된다. 저장 매체는 비일시적 저장 매체일 수도 있고, 코드를 저장할 수도 있으며, 코드는 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 정지 조건의 지속기간 미만인 제 1 기간 동안 제 1 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크의 와이어 상에서 정지 조건을 표명하게 하고, 제 1 기간 후에 와이어를 모니터링하게 하고, 와이어가 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 유지될 때 그리고 제 1 기간이 경과한 후에 플로우-제어가 표명되었다고 결정하게 하고, 플로우-제어가 표명되는 동안 와이어 상에서 데이터를 송신하는 것을 보류하게 하고, 그리고 플로우-제어가 표명 해제될 때 와이어 상에서 데이터를 송신하게 한다.
본 개시의 여러 양태들에서, 수신 디바이스에서 수행되는 방법은 정지 조건이 시리얼 데이터 링크의 와이어 상에서 표명되었다고 결정하는 단계를 포함한다. 정지 조건은 데이터가 와이어로부터 수신된 후에 와이어가 제 1 전압 레벨로 구동될 때 개시되는 제 1 기간 동안 지속된다. 본 방법은 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크에 대한 플로우-제어를 표명하는 단계, 제 2 기간이 종료된 때 제 1 전압 레벨로 와이어를 구동시키는 것을 포함하여, 시리얼 데이터 링크에 대한 플로우-제어를 표명 해제하는 단계, 및 시리얼 데이터 링크에 대한 플로우-제어를 표명 해제한 후에 와이어로부터 데이터를 수신하는 단계를 포함할 수도 있다.
일 양태에서, 시리얼 데이터 링크에 대한 플로우-제어를 표명 해제하는 단계는 제 2 기간이 경과한 후에 와이어 상에서 펄스를 송신하는 단계를 포함한다. 펄스는 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 지속기간을 가질 수도 있다.
일 양태에서, 본 방법은 시리얼 데이터 링크에 대한 플로우-제어가 표명되는 동안의 제 3 기간을 선택하고, 제 3 기간의 지속기간에 기초하여 제 2 기간을 계산하는 단계를 포함한다.
일 양태에서, 본 방법은 제 1 기간이 만료하였을 때 시리얼 데이터 링크에 대한 플로우-제어를 표명하는 것을 보류하는 단계를 포함한다.
일 양태에서, 본 방법은, 시리얼 데이터 링크에 대한 플로우-제어가 표명되지 않는다고 결정하는 단계, 시리얼 데이터 링크에 대한 플로우-제어가 표명되지 않는다고 결정한 후에 제 2 전압 레벨로의 와이어의 트랜지션이 제 1 기간 동안 발생할 때 에러 조건을 결정하는 단계, 및 에러 조건이 결정될 때 제 1 전압 레벨로 와이어를 구동시키는 단계를 포함할 수도 있다. 에러 조건이 결정될 때 제 1 전압 레벨로 와이어를 구동시키는 단계는, 킵퍼 회로를 플립하는 단계를 포함할 수도 있다.
본 개시의 여러 양태들에서, 장치는 시리얼 데이터 링크의 와이어 상에서 정지 조건이 표명되었다고 결정하기 위한 수단을 포함한다. 정지 조건은 데이터가 와이어로부터 수신된 후에 와이어가 제 1 전압 레벨로 구동될 때 개시되는 제 1 기간 동안 지속된다. 본 장치는, 플로우-제어 시그널링을 제공하기 위한 수단을 포함할 수도 있고, 플로우-제어 시그널링을 제공하기 위한 수단은, 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크에 대한 플로우-제어를 표명하고, 그리고 제 2 기간이 종료된 때 제 1 전압 레벨로 와이어를 구동시키는 것을 포함하여, 시리얼 데이터 링크에 대한 플로우-제어를 표명 해제하도록 구성된다. 본 장치는 플로우-제어가 시리얼 데이터 링크에 대해 표명 해제된 후에 와이어로부터 데이터를 수신하기 위한 수단을 포함할 수도 있다.
일 양태에서, 플로우-제어 시그널링을 제공하기 위한 수단은 제 2 기간이 경과한 후에 와이어 상에서 펄스를 송신하도록 구성될 수도 있다. 펄스는 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 지속기간을 가질 수도 있다.
일 양태에서, 플로우-제어 시그널링을 제공하기 위한 수단은, 시리얼 데이터 링크에 대한 플로우-제어가 표명되는 동안의 제 3 기간을 선택하고, 제 3 기간의 지속기간에 기초하여 제 2 기간을 계산하도록 구성될 수도 있다.
일 양태에서, 플로우-제어 시그널링을 제공하기 위한 수단은 제 1 기간이 만료하였을 때 시리얼 데이터 링크에 대한 플로우-제어를 표명하는 것을 보류하도록 구성될 수도 있다.
일 양태에서, 본 장치는 시리얼 데이터 링크 상에서 시그널링 에러들을 수정하기 위한 수단을 포함하고, 시그널링 에러들을 수정하기 위한 수단은, 시리얼 데이터 링크에 대한 플로우-제어가 표명되지 않는다고 결정하고, 그리고 시리얼 데이터 링크에 대한 플로우-제어가 표명되지 않는다고 결정한 후에 제 2 전압 레벨로의 와이어의 트랜지션이 제 1 기간 동안 발생할 때 에러 조건이 발생하였다고 결정하도록 구성된다. 플로우-제어 시그널링을 제공하기 위한 수단은 에러 조건이 발생이 결정될 때 제 1 전압 레벨로 와이어를 구동시키도록 구성된다. 플로우-제어 시그널링을 제공하기 위한 수단은 에러 조건의 발생이 결정될 때 킵퍼 회로를 플립하도록 구성될 수도 있다.
일 양태에서, 와이어로부터 데이터를 수신하기 위한 수단은 시리얼 데이터 링크가 동기식으로 동작될 때 데이터를 수신하도록 구성가능할 수도 있다.
본 개시의 여러 양태들에서, 프로세서 판독가능 저장 매체가 개시된다. 저장 매체는 비일시적 저장 매체일 수도 있고, 코드를 저장할 수도 있으며, 코드는 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 정지 조건이 시리얼 데이터 링크의 와이어 상에서 표명되었다고 결정하게 한다. 정지 조건은 데이터가 와이어로부터 수신된 후에 와이어가 제 1 전압 레벨로 구동될 때 개시되는 제 1 기간 동안 지속된다. 코드는 하나 이상의 프로세서들로 하여금, 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크에 대한 플로우-제어를 표명하게 하고, 제 2 기간이 종료된 때 제 1 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크에 대한 플로우-제어를 표명 해제하게 하고, 그리고 시리얼 데이터 링크에 대한 플로우-제어를 표명 해제한 후에 와이어로부터 데이터를 수신하게 할 수도 있다.
도 1 은 본원에 개시된 특정 양태들에 따라 적응될 수도 있는 장치의 일 예를 예시한다.
도 2 는 4-와이어 고속 유니버설 비동기 수신기/송신기 디바이스 (HS-UART) 에 기초한 시리얼 인터페이스의 일 예 및 2-와이어 LM-UART 에 기초한 시리얼 인터페이스의 일 예를 예시한다.
도 3 은 본원에 개시된 특정 양태들에 따라 적응될 수도 있는 LM-UART 에서의 단일 와이어 인터페이스를 예시한다.
도 4 는 LM-UART들 사이의 접속의 특정 전기적 접속들을 예시한다.
도 5 는 킵퍼 회로들을 채용하는 장치의 일 예를 예시한다.
도 6 은 본원에 개시된 특정 양태들에 따른 수신 디바이스에 의한 플로우-제어 표명의 타이밍의 예들을 예시한다.
도 7 은 본원에 개시된 특정 양태들에 따라 송신 디바이스에 의해 가해진 플로우-제어 표명 해제와 연관된 타이밍의 일 예를 예시한다.
도 8 은 본원에 개시된 특정 양태들에 따라 적응된 LM-UART들 간의 개선된 시그널링의 제 1 예를 예시한다.
도 9 는 본원에 개시된 특정 양태들에 따라 적응된 LM-UART들 간의 개선된 시그널링의 제 2 예를 예시한다.
도 10 및 도 11 은 본원에 개시된 특정 양태들에 따라 적응된 LM-UART들 간의 개선된 시그널링의 제 3 예를 예시한다.
도 12 는 은 본원에 개시된 특정 양태들에 따라 적응될 수도 있는 프로세싱 회로를 채용하는 장치의 일 예를 예시하는 블록도이다.
도 13 은 본원에 개시된 특정 양태들에 따라 LM-UART 인터페이스를 동작시키는 방법의 제 1 예의 플로우차트이다.
도 14 는 본원에 개시된 특정 양태들에 따라 LM-UART 인터페이스를 동작시키는 방법의 제 2 예의 플로우차트이다.
도 15 는 본원에 개시된 특정 양태들에 따른 장치에 대한 하드웨어 구현의 제 1 예를 예시한다.
도 16 은 본원에 개시된 특정 양태들에 따라 LM-UART 인터페이스를 동작시키는 방법의 제 3 예의 플로우차트이다.
도 17 은 본원에 개시된 특정 양태들에 따라 LM-UART 인터페이스를 동작시키는 방법의 제 4 예의 플로우차트이다.
도 18 은 본원에 개시된 특정 양태들에 따른 장치에 대한 하드웨어 구현의 제 2 예를 예시한다.
첨부된 도면들과 연계하여 하기에 설명되는 상세한 설명은, 여러 구성들의 설명으로서 의도된 것이며 본원에서 설명되는 개념들이 실시될 수도 있는 구성들만을 나타내도록 의도된 것은 아니다. 상세한 설명은 여러 개념들의 철저한 이해를 제공하기 위한 목적으로 특정 세부사항들을 포함한다. 그러나, 이들 개념들이 이들 특정 상세들 없이 실시될 수도 있음이 당업자에게는 명백할 것이다. 일부 사례들에서, 이러한 개념들을 모호하게 하는 것을 방지하기 위해 공지의 구조들 및 컴포넌트들이 블록도의 형태로 도시된다.
이하, 발명의 수개의 양태들은 여러 장치들 및 방법들을 참조로 제시될 것이다. 이들 장치들 및 방법들은 다음의 상세한 설명에서 설명되며, 여러 블록들, 모듈들, 컴포넌트들, 회로들, 단계들, 프로세스들, 알고리즘들 등 (이하, 총괄하여 "엘리먼트들" 이라 지칭됨) 에 의해 첨부된 도면들에 예시된다. 이들 엘리먼트들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 임의의 조합을 이용하여 구현될 수도 있다. 이러한 엘리먼트들이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다.
개관
다수의 SoC 를 포함하는 디바이스들 및 다른 IC 디바이스들은 종종 모뎀들 및 다른 주변기기들과 프로세서들을 접속하도록 시리얼 버스를 채택한다. 일부 사례들에서, 시리얼 인터페이스에 배정된 핀 카운트를 최소화하기 위하여 응용 주문형 집적 회로 (application-specific integrated circuit; ASIC) 또는 SoC 상에서 2-와이어 LM-UART 를 구현하는 것이 바람직할 수도 있다. 일부 사례들에서, 2-와이어 LM-UART 에서의 이용에 유용한 라인 드라이버들은 임피던스 제어 회로들 또는 능력들을 갖지 않을 수도 있다. 이들 사례들에서, 플로우-제어 시그널링은 신호의 상태를 기록하는 회로들을 플립할 수 있는 전압 스파이크들을 도입할 수도 있거나 또는 그렇지 않으면 플로우-제어 시그널링에서의 변경으로서 해석될 수도 있는 잡음 및 다른 효과들에 작용받기 쉬울 수도 있다.
본원에 개시된 특정 양태들에 따르면, 개선된 시그널링은 ASIC들 및 SoC들 상에서 LM-UART들을 구현하도록 범용 드라이버들의 이용을 가능하게 하는 개선된 시그널링이 채택된다. 본 개시의 특정 양태들은 LM-UART 플로우 제어 구현들의 신뢰도를 개선하는 디지털 시그널링 방식들에 관한 것이다. 일 양태에서, 특정 기술들은 디지털 시그널링을 채택하고 제한된 출력 임피던스 제어를 갖는 라인 드라이버들에 적용가능하다. 일 양태에서, 특정 플로우-제어 기술들은 정상 출력 임피던스로 라인을 구동시킬 수 있고, 라인을 구동시키지 않을 때 하이 임피던스 모드에 진입하는 라인 드라이버들에 적용가능하다. 다른 양태에서, 에러 수정 기술들은 제한된 출력 임피던스 제어를 갖는 라인 드라이버들을 이용하여 구현되는 플로우-제어 시그널링에 적용될 수도 있다.
본원에 개시된 특정 양태들은 비동기식으로 동작하는 LM-UART들에 및/또는 동기식으로 동작하는 LM-UART들에 적용가능할 수도 있다. 본원에 개시된 특정 양태들에 따라 적응된 LM-UART들은 RTS 및 CTS 와이어들을 대체하는 것에 의해 핀들 (범용 입력/출력) 의 수를 감소시키는 시리얼 링크들을 구현하는데 이용될 수 있다. 따라서, 통상의 UART 에 요구되는 4-핀들 및/또는 4-와이어들은 2-핀 및/또는 2-와이어 LM-UART 로 감소될 수도 있다. 특정 양태들에 따르면, 2-와이어 LM-UART 는 하드웨어 플로우 제어로 구현될 수도 있고, 이에 의해, 플로우 제어의 소프트웨어 기반 방법들을 이용하거나 또는 플로우 제어를 지원하지 않는 디바이스들에 대해 링크 스루풋 및 전력 소모를 개선시킨다. 플로우 제어의 소프트웨어 기반 방법들은 XON/XOFF 시퀀스들 등을 채택할 수도 있다.
시리얼 데이터 링크들을 갖는 장치의 예
특정 양태들에 따르면, 시리얼 데이터 링크는 장치, 이를 테면, 셀룰라 폰, 스마트폰, 세션 개시 프로토콜 (SIP) 폰, 랩톱, 노트북, 넷북, 스마트북, 개인 휴대 정보 단말기 (PDA), 위성 라디오, 글로벌 포지셔닝 시스템 (GPS) 디바이스, 스마트 홈 디바이스, 인텔리전스 라이팅, 멀티미디어 디바이스, 비디오 디바이스, 디지털 오디오 플레이어 (예를 들어, MP3 플레이어), 카메라, 게임 콘솔, 엔터테인먼트 디바이스, 차량 컴포넌트, 웨어러블 컴퓨팅 디바이스 (예를 들어, 스마트 워치, 헬스 또는 피트니스 트랙커, 아이웨어 등), 가전기기, 센서, 보안 디바이스, 벤딩 머신, 스마트 미터, 드론, 멀티코퍼, 또는 임의의 다른 유사한 기능의 디바이스의 서브컴포넌트들인 전자 디바이스들을 상호접속하는데 이용될 수도 있다. 도 1 은 이러한 장치 (100) 의 일 예를 나타낸다. 장치 (100) 는 다수의 회로들 또는 디바이스들 (122, 124, 126, 128, 134, 136, 및/또는 138) 을 갖는 프로세싱 회로 (120) 를 포함할 수도 있다. 프로세싱 회로 (120) 는 다수의 회로들 또는 디바이스들 (122, 124, 126, 128, 134, 136, 및/또는 138) 을 포함할 수도 있는 ASIC 또는 SoC 에서 구현될 수도 있다. 일 예에서, 장치 (100) 는 통신 디바이스일 수도 있고, 프로세싱 회로 (120) 는 무선 액세스 네트워크, 코어 액세스 네트워크, 인터넷 및/또는 다른 네트워크와 하나 이상의 안테나들 (140) 을 통하여 장치가 통신하게 하는 RF 프론트-엔드 회로 (126) 를 포함할 수도 있다.
도 1 에 예시된 예에서, 프로세싱 회로 (120) 는 하나 이상의 프로세서들 (132), 하나 이상의 모뎀들 (130), 및/또는 다른 로직 회로들 또는 기능부들을 갖는 ASIC 디바이스 (122) 를 포함한다. 프로세싱 회로 (120) 는 오퍼레이팅 시스템에 의해 제어될 수도 있고, 예를 들어, 하나 이상의 프로세서들 (132) 이 메모리 디바이스 (134) 에 있는 소프트웨어 모듈들을 실행하도록 애플리케이션 프로그래밍 인터페이스 (application programming interface; API) 계층을 제공할 수도 있다. 소프트웨어 모듈들은 메모리 디바이스 (134) 와 같은 프로세서 판독가능 저장부에 저장된 명령들을 및 데이터를 포함할 수도 있다. ASIC 디바이스 (122) 는 그 내부 메모리, 프로세싱 회로 (120) 의 메모리 디바이스 (134) 및/또는 외부 메모리에 액세스할 수도 있다. 메모리는 ROM (read-only memory) 또는 RAM (random-access memory), EEPROM (electrically erasable programmable read-only memory), 플래시 카드들, 또는 프로세싱 시스템들 및 컴퓨팅 플랫폼들에 이용될 수 있는 임의의 메모리 디바이스를 포함할 수도 있다. 프로세싱 회로 (120) 는 장치 (100) 및/또는 프로세싱 회로 (120) 를 구성하고 동작시키는데 이용되는 동작 파라미터들 및 다른 정보를 유지할 수 있는 로컬 데이터베이스 또는 다른 파라미터 저장부를 포함하거나, 또는 이들에 액세스할 수도 있다. 로컬 데이터베이스는 레지스터들, 데이터베이스 모듈, 플래시 메모리, 자기 매체, EEPROM, 광학 매체, 테이프, 소프트 또는 하드 디스크 등을 이용하여 구현될 수도 있다. 프로세싱 회로 (120) 는 또한, 다른 컴포넌트들 중에서 안테나 (140), 디스플레이 (102), 오퍼레이터 제어부들, 이를 테면 버튼 (106) 및/또는 통합형 또는 외부의 키패드 (104) 와 같은 외부 디바이스들에 동작가능하게 커플링될 수도 있다. 사용자 인터페이스 회로 (124) 는 전용 통신 링크 (138) 를 통해 또는 하나 이상의 시리얼 데이터 상호 접속부들을 통해 디스플레이 (102), 키패드 (104) 등과 통신할 수도 있다.
프로세싱 회로 (120) 는 회로들, 카운터들, 타이머들, 제어 로직 및 다른 구성가능한 회로들 또는 모듈들의 조합을 포함할 수도 있는 하나 이상의 인터페이스 회로들 (128) 을 통하여 통신할 수도 있다. 일 예에서, 인터페이스 회로 (128) 는 통신 사양들 또는 프로토콜들에 따라 동작하도록 구성될 수도 있다. 프로세싱 회로 (120) 는 인터페이스 회로 (128), 사용자 인터페이스 회로 (124), RF 프론트-엔드 회로 (126), 및 예를 들어, ASIC 디바이스 (122) 에 상주하는 하나 이상의 애플리케이션 프로세서들 (132) 의 동작을 구성 및 관리하는 전력 관리 기능부를 포함 또는 제어할 수도 있다.
LM-UART 의 개요
LM-UART 아키텍처의 특정 양태들은 통상의 UART들에 백워드 호환성을 제공하는 방식으로 구현된다. 플로우 제어는 송신 디바이스가 정지 비트를 전송하는 동안 수신 디바이스에 의해 표명될 수도 있다. 일부 예들에서, 정지 비트의 지속기간은 1 내지 3 비트 주기들의 범위 내에서 가능한 하프-비트 증분들을 구성가능할 수도 있다. 즉, 정지 비트는 확장될 수도 있고, 3-비트 주기까지의 지속기간을 가질 수도 있다. 일부 예들에서, 수신 디바이스 및 송신 디바이스는 병치될 수도 있고 동일한 루트 클록 소스로부터 유도된 클록을 이용하여 동작될 수 있고, 1 비트 정지 비트는 신뢰가능한 플로우 제어 동작을 보장할 수 있다. 송신 디바이스는 수신 디바이스에 의해 표명된 플로우 제어를 오버라이드 또는 선점할 수도 있다. 예를 들어, 송신 디바이스는 최소 수의 오버샘플링 클록 사이클들 (예를 들어, 3 클록 사이클들) 동안 라인을 하이로 구동시킬 수도 있다. 일 구현에서, 송신 디바이스는 적어도 1 데이터-프레임 시구간을 대기한 후에 플로우 제어를 오버라이드 또는 선점할 수도 있다. 일부 예들에서, 수신 디바이스는 소프트웨어 기반 플로우-제어를 추가적으로 또는 대안적으로 이용할 수도 있다.
도 2 는 통상의 4-와이어 UART 디바이스를 채택한 시리얼 인터페이스의 예 (200) 및 2-와이어 LM-UART 디바이스에 기초한 시리얼 인터페이스의 예 (220) 를 예시한다. 제 1 예 (200) 에서, 2 개의 4-와이어 HS-UART들 (202, 204) 은 4 개의 와이어들 (206a, 206b, 208a, 208b) 을 통한 하드웨어 플로우-제어로 풀-듀플렉스 링크를 구현한다. 데이터는 2 개의 와이어들 (206a 및 206b) 을 통하여 송신된다. 예를 들어, 데이터는 제 1 와이어 (206a) 를 통하여 제 1 HS-UART (202) 에 의해 송신되고, 제 2 와이어 (206b) 로부터 제 1 HS-UART (202) 에 의해 수신된다. 데이터는 제 1 와이어 (206a) 로부터 제 2 HS-UART (204) 에 의해 수신되고, 제 2 HS-UART (204) 는 제 2 와이어 (206b) 를 통하여 데이터를 송신할 수도 있다. 제 1 HS-UART (202) 는 자신의 RTS 신호를 제 3 와이어 (208a) 를 통하여 제 2 HS-UART (204) 의 CTS 입력에 송신한다. 제 4 와이어 (208b) 로부터 제 1 HS-UART (202) 에 의해 수신된 CTS 신호는 제 2 HS-UART (204) 의 RTS 신호로서 송신된다.
일 동작 모드에서, 각각의 HS-UART (202, 204) 는 액티브 시그널링 상태가 CTS 신호 상에서 검출될 때 (예를 들어, CTS 가 로직 하이 레벨에 있을 때) 에만 프레임을 송신한다. 수신 HS-UART (204, 202) 측은 자신이 새로운 프레임을 수신할 준비가 될 때 자신의 RTS 신호를 표명한다. RTS/CTS 플로우-제어는 각각의 HS-UART (202, 204) 에서 버퍼 제어 로직에 의해 관리될 수도 있다. 버퍼 제어 로직은 송신 또는 수신 버퍼들의 점유도 레벨들을 검출하도록 적응될 수도 있고 예를 들어, RTS 신호는 점유도 레벨들에 따라 표명될 수도 있다. 제 1 HS-UART (202) 는 제 3 와이어 (208a) 를 통하여 전송된 RTS 신호를 이용하여 제 2 HS-UART (204) 에 의한 송신들을 선택적으로 제어할 수도 있다. 제 1 HS-UART (202) 는 제 1 HS-UART (202) 에서 CTS 로서 수신된 제 4 와이어 (208b) 를 통하여 RTS 신호를 이용하여 전송된 제 3 와이어 (208a) 를 통하여 전송된 RTS 신호를 이용하여 제 2 HS-UART (204) 에 의해 데이터를 송신하는 것이 선택적으로 금지될 수도 있다.
도 2 에 예시된 제 2 예 (220) 에서, 2 개의 고속 유니버설 비동기식 수신기/송신기 디바이스들 (LM-UART들; 222, 224) 은 2개의 와이어들 (226a, 226b) 을 통한 멀티플렉싱된 하드웨어 플로우 제어를 이용하여 풀-듀플렉스 시리얼 링크를 구현한다. 데이터는 패킷들에서 2 개의 와이어들 (226a 및 226b) 을 통하여 패킷들에서 송신되고, 제 1 LM-UART (222) 의 Tx 출력으로부터 송신된 데이터 패킷들은 제 1 와이어 (226a) 를 통하여 제 2 LM-UART (224) 의 Rx 입력으로 반송된다. 제 1 LM-UART (222) 의 Rx 입력에서 수신된 데이터 패킷들은 제 2 LM-UART (224) 의 Tx 출력을 통하여 제 2 와이어 (206b) 를 통하여 송신된다. 플로우 제어 정보는 와이어들 (226a, 226b) 양쪽 상에서 데이터 패킷들 사이에서 송신된다. 각각의 LM-UART (222 또는 224) 에서 통합된 송신 데이터 버퍼링 및 플로우 제어 로직 (228 또는 234) 은 단일 와이어 (226a 또는 226b) 를 이용하여 데이터를 송신하고 플로우 제어 정보 (flow control information; CTS) 를 수신할 수도 있고 통합된 수신 데이터 버퍼링 및 플로우 제어 로직 (230 또는 232) 은 단일 와이어 (226b 또는 226a) 를 통하여 데이터를 수신하고 플로우 제어 정보 (flow control information; RTS) 를 수신 및 송신할 수도 있다.
도 3 은 풀-듀플렉스 2-와이어 시리얼 데이터 링크에 기여하거나 또는 그 일부일 수도 있는 단일 와이어 인터페이스 (300) 를 예시한다. 단일 와이어 인터페이스 (300) 는 2 개의 LM-UART들 (302, 322) 을 이용하여 구현될 수도 있다. 제 1 LM-UART (302) 의 송신기 회로는 단일 와이어 (320) 를 통하여 제 2 LM-UART (322) 의 수신기 회로에 커플링된다. 데이터 플로우 다이어그램 (340) 은 와이어 (320) 상에서의 패킷 송신의 일 예를 예시한다.
제 1 LM-UART (302) 는 와이어 (320) 를 통하여 데이터 패킷들을 송신하는데 이용되는 라인 드라이버 (312) 를 포함한다. 라인 드라이버의 출력은 데이터 패킷들 사이에서 하이 임피던스 상태에 있을 수도 있는 한편, 와이어 (320) 에 커플링된 라인 수신기 (314) 는 플로우 제어 로직 (316) 에 의해 모니터링된 신호를 제공한다. 플로우 제어 로직 (316) 은 데이터 패킷들 사이에서 단일 와이어 인터페이스 (300) 의 CTS 상태를 결정한다. CTS 상태는 라인 드라이버 (312) 가 인에이블되는지 또는 하이 임피던스 모드에 놓이는지의 여부를 결정하기 위해 그리고 병렬/직렬 (parallel-to-serial) 컨버터 (308)(예를 들어, 시프트 회로 또는 레지스터) 의 동작을 제어하기 위해 그리고/또는 하나 이상의 선입 선출 (First-In-First-Out) 메모리 구조체들 또는 레지스터들 (FIFO; 306) 을 포함하는 데이터 버퍼들의 동작을 제어하도록 송신기 제어 로직 (310) 에 의해 이용된다. 데이터는 시스템 버스 (304) 를 통하여 FIFO (306) 에 제공될 수도 있다.
제 2 LM-UART (322) 는 제 1 LM-UART (302) 에 의해 와이어 (320) 를 통하여 송신된 데이터 패킷들을 수신하는 라인 수신기 (332) 를 포함한다. 라인 수신기 (332) 의 출력은 수신기 제어 로직 (330) 의 제어 하에서 직렬/병렬 (serial-to-parallel) 컨버터 (328)(예를 들어, 시프트 회로 또는 시프트 레지스터) 에 제공된다. 직렬/병렬 (serial-to-parallel) 컨버터 (328) 의 출력은 예를 들어, 시스템 버스 (324) 를 통하여 판독하기 위하여 FIFO 메모리 구조체 또는 레지스터 (FIFO; 326) 에 배치될 수도 있다. 수신기 제어 로직 (330) 는 데이터 패킷들 사이에 플로우 제어 정보를 송신하도록 구성되는 플로우 제어 로직 (334) 를 관리할 수도 있다. 일 예에서, 수신기 제어 로직 (330) 는 FIFO (326) 의 점유도를 모니터링할 수도 있고 FIFO (326) 가 최대 데이터 점유도 임계값을 초과할 때를 결정할 수도 있다. 최대 데이터 점유도 임계값이 초과될 때, 수신기 제어 로직 (330) 은 플로우 제어 로직 (334) 으로 하여금 RTS 가 표명되지 않음을 표시하기 위해 데이터 패킷들 사이에서 와이어 (320) 를 구동시키는 것에 의해 플로우-제어를 표명하게 할 수도 있다. 일 예에서, 와이어 (320) 는 플로우-제어를 표명하기 위해 데이터 패킷들 사이에서 로우 시그널링 상태로 구동될 수도 있다. 플로우-제어를 표명하는 것은 로직 로우 시그널링 상태로 물리적 RTS 와이어를 구동시키는 것과 동등한 것으로 고려될 수도 있다. 최대 데이터 점유도 임계값이 초과되지 않을 때, 수신기 제어 로직 (330) 는 플로우 제어 로직 (334) 으로 하여금 RTS 가 표명됨을 표시하기 위해 플로우-제어를 표명 해제하게 할 수도 있다. 이 예에서, RTS 는 와이어 (320) 를 하이 시그널링 상태로 리턴하는 것 및/또는 와이어 (320) 를 데? 패킷들 사이에서 구동시키는 것을 보류하는 것에 의해 표명될 수도 있다. 플로우-제어를 표명 해제하는 것은 로직 하이 시그널링 상태로 물리적 RTS 와이어를 구동시키는 것과 동등한 것으로 고려될 수도 있다.
특정 양태들에 따르면, LM-UART 플로우 제어는 UART 프레임 내에서 중간 비트들에서 발생하지 않고 바이트 레벨 바운더리들에서 수행되는 UART 데이터 플로우 제어 결정 수행의 이점을 취하도록 적응될 수도 있다. 일반적으로, 단일 데이터 프레임은 LOW 시작 비트 및 HIGH 정지 비트에 의해 규정되는 8 데이터 비트들로 구성된다. 일부 사례들에서, 그리고 특정 UART 프로토콜들에 따라, 패리티 및 체크섬 비트들이 선택적으로 송신될 수도 있다. 데이터 플로우 다이어그램 (340) 은 패리티 및 체크섬 비트들을 보여주지 않는다.
수신 LM-UART (322) 는 예를 들어, 수신 LM-UART (322) 에서의 FIFO (326) 의 상태에 기초하여 다음 프레임을 수신할 준비가 되어 있는지의 여부를 표시할 수도 있다. (수신할 준비가 되어 있지 않음을 표시하는) 플로우 제어의 표명은 현재 패킷의 정지 비트 (342) 의 수신 동안 행해진다. 정지 비트 (342) 는 하드웨어 플로우 제어 표명이 행해지는 동안의 윈도우로서 정의되며, 적어도 일부 구현들에서, LM-UART 아키텍처는 임의의 다른 시간에 하드웨어 플로우 제어 표명을 허용하지 않는다. 소프트웨어 플로우 제어는 통상의 UART 프로토콜들에 따라 표명될 수도 있다.
라인 멀티플렉싱된 UART들과 연관된 시그널링
특정 양태들에 따르면, LM-UART 아키텍처는 표준의 범용 입력/출력 (general purpose input/output; GPIO) 패드들을 프로비저닝 및 구성하는 것에 의해 하드웨어 플로우-제어 시그널링을 용이하게 한다. 일 예에서, LM-UART 시그널링에 수반되는 GPIO 패드들은 킵퍼 회로를 이용하도록 구성될 수도 있다. 다른 예에서, LM-UART 시그널링에 수반되는 GPIO 패드들은 출력 드라이버의 임피던스의 동적 제어를 가능하게 하도록 구성될 수도 있다.
임피던스 제어 회로들을 포함하는 LM-UART들의 라인 드라이버 회로들은 액티브 상태로 송신할 때 로우-임피던스 드라이버 회로를, 수신 모드에 있을 때 하이 임피던스 입력들을 제공할 수도 있다. 도 3 을 다시 참조하여 보면, 송신 LM-UART (302) 에서의 라인 드라이버 (312) 는 데이터를 송신하는 동안 로우 임피던스 출력을 제공하고, STOP 조건 (342) 을 개시한 후에 다음 START 조건 (344) 전에 하이 임피던스 입력을 제공한다. 하이 임피던스 입력은 수신 LM-UART (322) 에서의 RTS 라인 드라이버 (336) 가 와이어 (320) 를, 송신 디바이스가 송신을 보류해야 함을 표시하는 로우 로직 레벨로 구동하게 한다.
일부 사례들에서, 원하지 않는 조건들은 임피던스 제어 회로들을 갖지 않는 GPIO 디바이스들의 이용에 기인하여, 또는 라인 드라이버들 (312, 336) 이 하이 임피던스 모드에 있을 때 와이어 (320) 의 시그널링 상태에 영향을 줄 때 발생할 수 있다. 정상 동작 조건들에서 신뢰성있는 플로우 제어에 이용되는 임피던스 제어 방법은 프로세스, 전압 및 온도 (process, voltage and temperature; PVT) 의 가변성들의 영향들을 통하여 도입되는 프로세스 노드 가변성 및 가변성들에 의해 영향을 받을 수도 있다.
본 개시의 특정 양태들은 LM-UART 플로우 제어 구현들의 신뢰도를 개선하는 디지털 시그널링 방식들에 관한 것이다. 일 양태에서, 특정 기술들은 드라이버들에서의 임피던스 변동을 회피하고 디지털 시그널링 접근방식을 채택하는 라인 드라이버들에 적용가능하다. 다른 양태에서, 특정 기술들은 정상 출력 임피던스로 라인을 구동시킬 수 있고, 라인을 구동시키지 않을 때 하이 임피던스 모드에 진입하는 라인 드라이버들에 적용가능하다.
도 4 는 LM-UART들 (402, 412) 의 구성 (400) 의 동작적인 특정 양태들을 예시한다. 라인 또는 와이어 (410) 는 송신 LM-UART (402) 의 Tx 라인 드라이버 (404) 와 수신 LM-UART (412) 의 RTS 라인 드라이버 (414) 를 접속하는 송신 경로에 포함된다. 송신 LM-UART (402) 의 Tx 라인 드라이버 (404) 는 값 RTX 를 가진 레지스터 (408) 로서 예시된 출력 임피던스를 제시한다. 수신 LM-UART (412) 의 RTS 라인 드라이버 (414) 는 값 RRTS 를 가진 레지스터 (418) 로서 예시된 출력 임피던스를 제시한다. 와이어 (410) 상에서 (예를 들어, 수신 LM-UART (412) 에 대한 입력에서) 관찰되는 전압 (VRX) 은 레지스터들 (408, 418; RTX 및 RRTS) 사이의 관계에 의해 결정된다. 예를 들어, Tx 라인 드라이버 (404) 의 레지스터 (408) 는 VDD 의 전압에 커플링되고, 수신 LM-UART (412) 에 대한 입력에서 관찰되는 전압 (VRX) 는 다음과 같이 계산될 수도 있다:
Figure pct00001
식 1
도 4 에서의 타이밍 다이어그램 (420) 은 송신 LM-UART (402) 가 수신 LM-UART (412) 에 데이터를 통신중일 때, 와이어 (410) 상에서 시그널링 (430) 에 관련된 특정 양태들을 예시한다. 예시된 예에서, 송신 LM-UART (402) 로부터 수신 LM-UART (412) 로 전송된 송신 (422) 은 시작 비트 (START 조건 (424)) 로 시작하여 8 개의 데이터 비트들 (426) 이 뒤따른다. 송신 (422) 은 정지 비트 (STOP 조건 (428)) 에 의해 종료된다. 송신 LM-UART (402) 의 Tx 라인 드라이버 (404) 는 와이어 (410) 를 로우 로직 상태 (432) 에 대응하는 전압 레벨로 구동시키는 것에 의해 시그널링될 수도 있는 START 조건 (424) 을 시그널링한다. 그 후, Tx 라인 드라이버 (404) 는 송신되는 데이터 비트들 (426) 에 따라 와이어 (410) 를 구동시킨다. Tx 라인 드라이버 (404) 는 그후, 와이어 (410) 를 하이 로직 상태 (434) 에 대응하는 전압 레벨로 구동시키는 것에 의해 STOP 조건 (428) 을 시그널링한다. 오버샘플링 클록 (440) 은 와이어 (410) 상에서의 송신들의 타이밍을 제어하기 위해 송신 LM-UART (402) 에 의해 채택될 수도 있다. 추가적으로 또는 대안적으로, 오버샘플링 클록 (440) 은 와이어 (410) 로부터 수신된 신호들을 샘플링하기 위해 수신 LM-UART (412) 에 의해 채택될 수도 있다.
STOP 조건 (428) 을 시그널링하기 위해 하이 로직 상태 (434) 를 표명한 후, Tx 라인 드라이버 (404) 는 와이어 (410) 를 릴리즈하고, 이는 이후에 Tx 라인 드라이버 (404) 에서의 레지스터 (408) 에 의해 로직 하이 상태 (436) 에서 유지될 수도 있다. 이 예에서, 와이어 (410) 는 STOP 조건 (428) 과 연관된 시구간의 완료 전에 수신 LM-UART (412) 의 RTS 라인 드라이버 (414) 에 의해 로우 로직 상태 (438) 에 대응하는 전압 레벨로 구동된다. 로우 로직 상태 (438) 가 표명되는 동안, 송신 LM-UART (402) 가 데이터를 송신하는 것을 보류한다. RTS 라인 드라이버 (414) 가 와이어 (410) 를 하이 로직 상태 (434) 로 리턴시킬 때, Tx 라인 드라이버 (404) 는 그 후, START 조건을 시그널링하기 위해 와이서 (410) 상에서 로우 로직 상태 (432) 를 표명하는 것에 의해 다음 송신을 시작한다.
라인 드라이버들 (404, 414) 의 출력 임피던스 관계가 특정 범위들 내에서 유지된다고 주어지면, LM-UART들 (402, 412) 은 수신 LM-UART (412) 로부터 플로우-제어 표명을 지원할 수 있고 송신 LM-UART (402) 로부터 플로우-제어 오버라이드를 지원할 수 있다. CTS 수신기 (406) 및 Rx 수신기 (416) 를 포함하는 수신기들에 의해 인식된 전압 레벨들은 각각 로직 하이 (“1”) 및 로우 (“0”) 상태들에 대한 VIOH 및 VIOL 로서 표현될 수도 있다. 일 예에서, 다음의 조건들이 적용될 수도 있다:
1. 로직 "1" 의 송신 동안, VRX ≥ VIOH_MIN
2. 로직 "0" 의 송신 동안, VRX ≤ VIOL_MAX
3. 플로우-제어 표명 동안 그리고 플로우-제어 표명시 VRX ≤ VIOL_MAX
4. "1"을 송신하면서 플로우-제어 오버라이드 동안 VRX ≥ VIOH_MIN
5. "0"을 송신하면서 플로우-제어 오버라이드 동안 VRX ≤ VIOL_MAX
임피던스 제어된 라인 드라이버에서, 조건들 1-5 는 설계에 의해 통상적으로 충족될 수 있다. 일부 사례들에서, 제한된 임피던스 제어가 이용가능할 수도 있다. 예를 들어, GPIO 라인 드라이버는 와이어 (410) 를 구동시키는 동안 로우 임피던스를 그리고 라인 드라이버가 인액티브 상태일 때 하이 임피던스 입력을 제공할 수도 있다. 라인 드라이버들이 제한되거나 또는 어떠한 임피던스 제어도 갖지 않을 때, 조건들 1 및 2 는 상대적으로 쉽게 충족될 수도 있는 한편, 조건들 3, 4 및 5 는 신호 레벨이 원하는 영역들 밖에 있게 하는 PVT 변동들에 의해 영향을 받을 수도 있다.
도 5 는 킵퍼-기반 솔루션을 구현하는 장치 (500) 의 일 예를 예시한다. 예시된 예에서, 제 1 LM-UART (402) 에서의 Tx 라인 드라이버 (502) 는 와이어 (410) 를 통하여 제 2 LM-UART (412) 로 신호들을 송신하도록 구성되고, 제 2 LM-UART (412) 에서의 RTS 라인 드라이버 (506) 는 제 1 LM-UART (402) 에 의해 송신된 데이터 패킷들 사이의 와이어 (410) 상에서 플로우-제어 신호들을 표명하도록 구성된다. 제 1 LM-UART (402) 에서의 킵퍼 회로 (504) 및/또는 제 2 LM-UART (412) 에서의 킵퍼 회로 (508) 는 와이어 (410) 에 커플링된 라인 드라이버들 (502 및/또는 506) 이 인액티브 상태일 때 약한 풀업을 제공하도록 동작한다. 킵퍼 회로들 (504, 508) 은 와이어 (410) 가 아이들 시그널링 상태 (하이 로직 상태) 에 또는 플로우-제어 (flow-control; FC) 표명된 시그널링 상태 (로우 로직 상태) 에 유지하도록 적응될 수도 있다.
킵퍼 회로들 (504, 508) 은 STOP 정지 (428) 가 와이어 (410) 상에서 표명된 후에, 아이들 상태로 라인을 유지시킬 수도 있다. STOP 조건 (428) 은, 정상 출력 임피던스로 동작하는 Tx 라인 드라이버 (502) 가 오버샘플링 클록 (440) 의 하나 이상의 사이클들 동안 와이어 (410) 상에서 정지 비트를 구동시킬 때 표명되는 것으로 간주될 수도 있다. Tx 라인 드라이버 (502) 는 그후, 와이어 (410) 를 릴리즈하고 하이 임피던스 상태에 진입한다. 하나 이상의 킵퍼 회로들 (504, 508) 은 STOP 조건 (428) 과 연관된 시그널링 상태에서 와이어 (410) 를 홀딩시킨다. 수신 LM-UART (412) 는 오버샘플링 클록 (440) 의 적어도 하나의 사이클에 대하여 RTS 라인 드라이버 (506) 로 하여금 와이어 (410) 가 로우 로직 상태로 구동하게 하는 것에 의해 플로우-제어를 표명할 수도 있다. RTS 라인 드라이버 (506) 는 그 후, 라인을 구동하는 것을 중단시키고 하이 임피던스 상태에 진입한다. 킵퍼 회로들 (504 및/또는 508) 은 로우 로직 상태와 연관된 전압 레벨에서 와이어 (410) 를 유지시킨다. 수신 LM-UART (412) 는 오버샘플링 클록 (440) 의 적어도 하나의 사이클에 대하여 RTS 라인 드라이버 (506) 로 하여금 와이어 (410) 가 하이 로직 상태로 구동하게 하는 것에 의해 플로우-제어를 표명 해제할 수도 있다. 그 후, 수신 LM-UART (412) 는 와이어 (410) 를 구동시키는 것을 중단시키고, 하이 임피던스 상태로 진입할 수도 있어, 킵퍼 회로들 (504 및/또는 508) 가 로우 로직 상태와 연관된 전압 레벨에서 와이어 (410) 를 유지시킨다.
임의의 액티브 라인 드라이버 (502 또는 506) 는 킵퍼 회로들 (504 및/또는 508) 을 넘어설 수도 있다. 킵퍼 회로들 (504, 508) 은 와이어 상의 전압을 추종할 전자기 간섭 또는 다른 신호 잡음에 의해 야기된 상태 플립핑으로 입증될 수도 있다. 예를 들어, 로우 에너지 전자기적 유도된 스파이크가 킵퍼 회로들 (504, 508) 로 하여금 상태를 변경하게 하는 와이어 (410) 상에서의 전압 글리치를 야기할 수도 있다. 플로우 제어 데드-로크는 킵퍼 회로들 (504, 508) 이 잡음에 의해 플립될 때를 초래할 수도 있다. STOP 조건 (428) 이 송신된 후에, 킵퍼 회로들 (504, 508) 이 와이어 (410) 상에서 로우 로직 상태를 표명할 때 데드-로크가 발생할 수 있다. 송신 LM-UART (402) 는 로우 로직 상태를 네가티브 송신 준비 완료 (clear-to-send) 표시로서 인식하는 한편, 수신 LM-UART (412) 는 로우 로직 상태가 특정 라인 인터페이스 회로들의 리셋을 야기하는 브레이크 조건인 것으로 고려할 수도 있다.
도 6 은 플로우-제어가 표명되지 않을 때 제 1 예 (608), 및 플로우-제어가 표명될 때의 제 2 예 (620), 및 플로우-제어가 표명 해제될 때의 제 3 예 (630) 를 예시하는 타이밍 다이어그램 (600) 이다. 제 1 예 (608) 는 플로우-제어 표명과 연관된 타이밍 윈도우들 (614, 616 및 618) 을 예시한다. STOP 비트 (604) 가 개시된 후에 오버샘플링 클록 (602) 의 제 1 사이클 동안에, 라인은 송신 LM-UART (402) 에 의해 액티브하게 구동된다 (612a). 제 1 사이클 후에, 송신 LM-UART (402) 는 하이 임피던스 상태 (612b) 에 진입하고, 라인의 시그널링 상태는 킵퍼 회로에 의해 유지된다. 송신 LM-UART (402) 는 STOP 비트 (604) 가 완료된 후에 라인을 액티브하게 구동시킨다. 일 예에서, STOP 비트 (604) 는 STOP 비트 (604) 의 중심 상에 집중된, 오버샘플링 클록 (602) 의 10 개 사이클들 상으로 확장될 수도 있는 제 1 타이밍 윈도우 (614) 동안에 샘플링될 수도 있다. 플로우 제어는 제 1 타이밍 윈도우 (614) 후에 1 클록 사이클을 시작하는 오버샘플링 클록 (602) 의 10 개 사이클들 상으로 확장하는 제 2 타이밍 윈도우 (616) 동안에, 수신 LM-UART (412) 에 의해 표명될 수도 있다. 송신 LM-UART (402) 는 제 2 타이밍 윈도우 (616) 와 동일한 시간에 시작하는 오버샘플링 클록 (602) 의 11 개 사이클들 상으로 확장하는 제 3 타이밍 윈도우 (618) 동안에, 플로우 제어 표명에 대하여 라인을 모니터링할 수도 있다.
제 2 예 (620) 에서, 제한된 임피던스 제어를 갖는 송신 LM-UART (402) 는 오버샘플링 클록 (602) 의 1 사이클 동안 로직-1 로 라인 (610) 을 액티브하게 구동시키는 것에 의해 정지 비트 (604) 를 론칭할 수도 있다. 이 액티브하게 구동된 기간 후에, 송신 LM-UART (402) 는 라인 (610) 을 구동시키는 것을 정지시킬 수 있고 라인 (610) 은 송신 LM-UART (402) 의 송신 핀과 수신 LM-UART (412) 의 대응하는 수신 핀 양쪽 모두 상에서 킵퍼들에 의해 로직-1 로 유지된다. 킵퍼들은 정지 비트 (604) 의 지속기간 동안 로직-1 시그널링 상태에서 라인 (610) 을 유지시키며, 이는 오버샘플링 클록 (602) 의 1 내지 3 주기들로 프로그래밍될 수도 있다. 송신 LM-UART (402) 는 집합 {1 비트, 1.5 비트, 2 비트, 2.5 비트, 3 비트} 와 같은 지속기간의 구성된 세트로부터 정지 비트 (604) 의 지속기간을 선택할 수도 있다.
제 2 타이밍 윈도우 (616) 는 플로우 제어를 표명할 기회를 수신 LM-UART (412) 에 제공한다. 수신 LM-UART (412) 가 플로우 제어가 표명되기를 요구하거나 또는 원하면, 오버샘플링 클록 주기의 1 사이클 동안에 라인 (610) 을 로직-0 시그널링 상태로 액티브하게 구동시킨다 (624). 수신 LM-UART (412) 가 하이 임피던스 모드에 진입하고 킵퍼들은 플로우-제어의 지속기간 동안에 라인 (610) 을 로직-0 시그널링 상태 (626) 로 유지시킨다. 특정 예들에서, 수신 LM-UART (412) 는 STOP 비트 (604) 의 중앙 (606) 에서 플로우 제어를 표명하려 시도할 수도 있다. 송신 LM-UART (402) 와 수신 LM-UART (412) 에 의해 이용된 오버샘플링 클록들 사이의 주파수 및 위상 미스매치들은 STOP 비트 (604) 의 중앙 (606) 에 대하여 타이밍에 있어서 변동들을 야기할 수도 있다. 연장된 플로우-제어 검출의 제공은 타이밍에서의 변동들을 수용할 수도 있다.
일부 예들에서, 송신 LM-UART (402) 에서의 CTS 수신기 (406) 는 라인 (610) 의 시그널링 상태에서의 트랜지션들 및 라인 (610) 의 시그널링 상태를 모니터링하도록 구성된다. 정지 비트 (604) 동안의 (즉, 제 3 윈도우 (618) 동안의) 로직-1 시그널링 상태로부터 로직-0 시그널링 상태로의 트랜지션은 수신 LM-UART (412) 에 의한 플로우 제어의 표명을 구성할 수도 있다.
송신 LM-UART (402) 는 플로우-제어 검출에 대하여 오버샘플링 클록 (604) 의 한 사이클로 이용가능한 최소 마진을 가질 수도 있다. 송신 LM-UART (402) 에서의 플로우 제어 검출 회로들은 포지티브 및 네가티브 에지 기반 라인 상태 샘플링 양쪽 모두를 채택할 수도 있다. 이는 예를 들어, 반전된 오버샘플링 클록을 이용하여 구현될 수도 있다.
플로우 제어는 제 3 타이밍 예 (630) 에서 예시된 바와 같이 수신 LM-UART (412) 에 의해 표명 해제될 수도 있다. 수신 LM-UART (412) 는 오버샘플링 클록 (602) 의 1 사이클 동안 로직-1 로 라인 (610) 을 구동시키는 것 (632, 638) 에 의해 플로우 제어 표명 해제를 개시할 수도 있다. 수신 LM-UART (412) 는 그 후, 하이 임피던스 상태 (634) 에 진입할 수도 있고, 라인 (610) 의 시그널링 상태는 송신 및 수신 핀들 상에서 키퍼들에 의해 로직-1 로 유지될 수도 있다. 송신 LM-UART (402) 는 자신의 CTS 수신기 (406) 가 로직-0 시그널링 상태로부터 로직-1 시그널링 상태로의 트랜지션을 검출할 때 라인 (610) 의 액티브한 구동을 재개할 수도 있다. 송신 LM-UART (402) 는 데이터가 송신을 위하여 데이터 버퍼에서 이용가능할 때까지 로직-1 시그널링 상태에서 라인 (610) 을 유지시킬 수도 있다.
정상 동작에서, 수신 LM-UART (412) 는 수신 LM-UART (412) 의 수신 버퍼들에서 공간이 확립된 후에 플로우 제어를 적절하게 표명 해제할 수도 있다. 송신 LM-UART (402) 는 적절한 표명 해제가 발생할 때 플로우 제어 표명 후에 수반되는 라인 (610) 을 통상적으로 액티브하게 구동시키지 않는다. 송신 LM-UART (402) 는 다음 프레임의 송신을 재개하기 전에 플로우 제어의 형식적 표명 해제를 대기한다. 일부 사례들에서, 플로우 제어 지속기간 (640) 은 수신 LM-UART (412) 상에서의 에러 조건에 기인하여 과도하게 길 수도 있다. 이러한 사례들에서, 송신 LM-UART (402) 는 논리적 브레이크 조건을 론칭할 수도 있다. 일부 사례들에서, 송신 LM-UART (402) 는 플로우 제어 표명 해제에 대하여 대기함이 없이 데이터 프레임을 론칭하기를 원할 수도 있다.
특정 양태들에 따르면, 송신 LM-UART (402) 는 논리적 브레이크 조건을 론칭하거나 또는 플로우 제어 표명 해제를 강제할 수도 있다. 도 7 은 송신 LM-UART (402) 가 플로우 제어 표명 해제를 강제할 때의 타이밍의 일 예 (702) 를 예시한다. 도 7 은 도 6 에 예시된 바와 같이 플로우 제어의 표명 및 비표명에 대하여 동일한 타이밍을 포함한다. 강제된 플로우 제어 표명 해제는 라인 (610) 이 킵퍼들에 의해 로직-0 시그널링 상태 (626) 에서 유지될 때 송신 LM-UART (402) 에 의해 수행될 수도 있고, 이는 송신 LM-UART (402) 가 액티브 구동 모드를 재개할 때 쉽게 오버라이드될 수도 있다.
플로우 제어 표명이 제 2 예 (608) 에서 검출될 때 송신 LM-UART (402) 는 다음 패킷의 송신을 보류한다. 일 예에서, 송신 LM-UART (402) 는 하나 이상의 데이터그램 시간-범위들에 대응하는 주기에 대해 대기한 후에 소프트웨어 제어 하에서 플로우-제어를 오버라이드할 수도 있다. 송신 LM-UART (402) 는 로직-1 시그널링 상태로 라인 (610) 을 액티브하게 구동시킨 다음, 최소 기간 동안 로직-1 시그널링 상태를 유지하는 것에 의해 플로우 제어 조건을 오버라이드한다. 일 예에서, 최소 기간은 3 사이클들의 오버샘플링 클록 (602) 이다. 송신 LM-UART (402) 는 수신 LM-UART (412) 가 수신 동작들을 재개하기 위해 충분하고/하거나 필요한 턴-어라운드 시간을 갖는 것을 보장하기 위해 최소 기간 동안 로직-1 시그널링 상태를 유지한 후에 새로운 데이터 패킷을 론칭할 수도 있다. 송신 LM-UART (402) 는 플로우-제어 표명과 연관된 경과된 시구간들을 측정하기 위해 타이머 회로 또는 소프트웨어 엘리먼트를 채택할 수도 있다.
송신 오버라이드 동안의 수신 LM-UART (412) 의 거동은 유사한 조건들 하에서 통상의 UART 의 거동과 유사할 수도 있다. 송신 데이터는 이용가능한 공간이 있다면, 수신 버퍼에 수용될 수도 있다. 그렇지 않으면, 데이터 오버라이드로 인한 데이터 손상이 초래될 수 있다. 수신 LM-UART (412) 는 통상의 UART 의 것과 유사한 방식으로 브레이크 조건 송신에 응답한다.
특정 양태들에 따르면, STOP 비트 (60) 의 지속기간은 플로우 제어 회로 구현들을 수용하도록 선택될 수도 있다. 1-비트 STOP 비트는 설계 제약들 또는 요건들에 기초하여 불충분할 수도 있지만, 일부 구현들에서는 플로우 제어 표명 목적들에 대해 충분한 것으로 될 수도 있다. STOP 비트 (604) 가 1 비트보다 더 큰 지속기간을 가질 때 (즉, 1 데이터 비트 지속기간), 타이밍 윈도우들 (614, 616, 618) 및/또는 플로우 제어 시그널링을 결정하는데 이용된 오버샘플링 클록 (602) 의 사이클들의 수는 달라질 수도 있다. 예를 들어, 도 6 및 도 7 에 예시된 16 클록 사이클들은 비례해서 곱해질 수도 있고 정지 비트 지속기간이 2 또는 3 비트 주기로 프로그래밍되어야 한다. STOP 비트 (604) 의 지속기간이 1 비트 주기와 같도록 선택되었을 때, 수신 LM-UART (412) 의 관점에서 정지 비트 샘플링은 제 1 비트의 중점에서 발생할 수도 있다. 따라서, STOP 비트 (604) 의 전체 제 2 비트는 플로우 제어 로직 구현 동안 연장된 윈도우 (618) 를 제공한다. 많은 구현들에서, 단일-비트 STOP 비트 (604) 가 스루풋을 최대화하도록 채택될 수도 있다. STOP 비트 (604) 의 지속기간은 플로우 제어 시그널링과 연관된 로직 및 전파 지연들을 수용하도록 프로그래밍가능할 수도 있다.
잡음은 다른 구현들보다 더 큰 정도로 킵퍼 기반 구현들에 영향을 줄 수 있다. 일부 사례들에서, 송신 LM-UART (402) 는 풀 비트-주기를 위한 STOP 비트 (604) 를 액티브하게 구동시키고 플로우 제어 시그널링을 위한 STOP 비트의 송신 후에 제공된 제 2 비트 주기를 이용하도록 구성될 수도 있다.
라인 멀티플렉싱된 UART들에 대한 개선된 시그널링
본 원에 개시된 특정 양태들에 따르면, LM-UART 가 임피던스 제어된 라인 드라이버들을 갖지 않을 때 개선되고 신뢰성있는 플로우 제어 시그널링을 지원하도록 적응될 수도 있다. 하나 이상의 양태들에 따라 적응된 LM-UART들은 모든 예상되는 PVT 조건들 상에서 플로우-제어 동작을 보장하면서 킵퍼 회로들 또는 멀티-레벨 (2 개 레벨들보다 많음) 출력 임피던스 제어 없이 동작할 수 있다.
도 8 은 LM-UART 구성들 (800, 820) 에 대한 개선된 시그널링 (840) 의 제 1 예를 예시한다. 예시된 시그널링 (840) 은 라인 드라이버들 (802, 806) 이 인액티브 상태이고 와이어 (808) 에 하이 임피던스를 제공할 때 풀-업 레지스터 (804) 가 와이어 (808) 상에서 하이 전압 레벨을 유지하는데 이용되는 LM-UART 구성 (800) 에 채택될 수도 있다. 예시된 시그널링 (840) 은 또한 라인 드라이버들 (822, 826) 이 인액티브 상태일 때 와이어 (834) 상에서 하이 전압 레벨을 유지하기 위하여, 액티브 상태일 때 정상 (로우) 출력 임피던스를 제공하고 인액티브 상태일 때 더 높은 임피던스를 제공하는 내부 회로들을 포함하는 LM-UART 구성 (820) 에 채택될 수도 있다.
이 예에서, 플로우-제어는 수신기가 아직 준비가 되지 않음을 시그널링하도록 제 1 플로우-제어 (FCON) 펄스 (850) 를 송신하고, 수신기가 준비되었음을 시그널링하도록 제 2 플로우-제어 (FCOFF) 를 송신하는 것에 의해 구현된다. 펄스들 (850, 856) 은 프로그래밍가능 지속기간을 가질 수도 있다. 특정 구현들에서, 펄스들 (850, 856) 은 하프-비트 간격들에서 측정된 지속기간을 갖도록 프로그래밍될 수도 있다. 펄스 검출 기법들은 잡음에 기인한 오류 트리거링을 방지하도록 구현될 수도 있다. 일 예에서, 펄스들 (850, 856) 은 중앙 구역 샘플링을 이용하여 검출될 수도 있다. 다른 예에서, 펄스들 (850, 856) 은 잡음에 기인한 오류 트리거를 방지하도록 보팅 로직 (voting logic) 으로 멀티-포인트 샘플링을 이용하여 검출될 수도 있다.
LM-UART 는 펄스들 (850, 856) 을 검출하고 검출된 펄스들 (850, 856) 의 지속기간을 측정하도록 적응될 수도 있다. 예를 들어, LM-UART 는 펄스들 (850, 856) 에 따라 펄스 폭들을 측정하고, 펄스들의 유효성을 결정하고 그리고 플로우 제어를 구현하도록 제어 모듈 (832) 에 제공된, 하나 이상의 카운터들 (830) 및 로직 회로들을 포함할 수도 있다. 펄스 (850, 856) 의 지속기간은 추가적인 정보를 제공할 수 있다. 일부 사례들에서, 제 1 플로우-제어 펄스 (850) 는 제 2 플로우-제어 펄스 (856) 와는 상이한 지속기간을 가질 수도 있다.
도 9 는 제한된 임피던스 제어를 갖는 갖는 라인 드라이버들을 이용하여 구현되는 LM-UART들 간의 신뢰성있는 플로우-제어 시그널링을 가능하게 할 수 있는 개선된 시그널링 (900) 의 일 예를 예시한다. 예시된 시그널링 (900) 은 라인 드라이버들 (924, 942) 이 인액티브 상태이고 와이어 (936) 에 하이 임피던스를 제공할 때 풀-업 레지스터 (926) 가 와이어 (936) 상에서 하이 전압 레벨을 유지하는데 이용되는 LM-UART 인터페이스 구성 (920) 에 채택될 수도 있다. 예시된 시그널링 (900) 은 또한 라인 드라이버들 (954, 970) 이 인액티브 상태일 때 와이어 (964) 상에서 하이 전압 레벨을 유지하기 위하여, 액티브 상태일 때 정상 (로우) 출력 임피던스를 제공하고 인액티브 상태일 때 더 높은 임피던스를 제공하는 제한된 내부 임피던스 제어를 갖는 라인 드라이버들 (954, 970) 을 포함하는 LM-UART 구성 (950) 에 채택될 수도 있다.
본원에 개시된 특정 양태들에 따르면, 플로우 제어는 가변 길이 플로우-제어 (FCON) 펄스 (910)의 지속기간 (TWidth; 912) 에 대응하는 기간 동안 준비되어 있지 않음을 수신기 (938, 966) 가 시그널링하기 위해 가변 길이 플로우-제어 (FCON) 펄스 (910) 를 이용하여 구현될 수 있다. 일 예에서, 송신기 (922, 952) 에서의 제어 로직 (930, 958) 은 FCON 펄스 (910) 의 폭에 의해 나타내어지는 경과 시간의 지속기간을 측정하는 카운터 (932, 960) 를 개시한다. 송신은 카운터 (932, 960) 가 구성된 카운트 값을 만료 또는 도달할 때 재개될 수도 있다. 일 예에서, 카운터 (932, 960) 는 오버샘플링 클록 (440; 도 4 참조) 또는 다른 클록 신호를 이용하여 카운트되는 FCON 펄스 (910) 의 지속기간에 기초하여 계산된 값을 로딩하는 것에 의해 구성될 수도 있다. 다른 예에서, 카운터 (932, 960) 는 FCON 펄스 (910) 의 지속기간 또는 추정된 지속기간으로부터 유도되는 인덱스를 이용하여 룩업 테이블로부터 선택되는 값을 로딩하는 것에 의해 구성될 수도 있다. 수신기에서, 플로우 제어 주기의 지속기간은 이미 알려져 있고 RTS-기반 카운터 메카니즘은 수신기 동작에 대해 요구되지 않을 수도 있다.
도 10 및 도 11 은 플로우-제어 시그널링에 대한 에러 검출을 제공하는 LM-UART들에 대한 개선된 시그널링의 일 예를 예시한다. 도 10 은 송신 타이밍 (1002), 에러 없는 CTS 타이밍 (1004) 및 킵퍼 회로가 LM-UART 구현에 이용될 때 야기될 수도 있는 시그널링 에러들 (1006, 1008) 의 2 개의 예들을 예시하는 타이밍 다이어그램 (1000) 이다. 킵퍼 회로들은 킵퍼 회로들에 대해 입력에서 스파이크들을 야기하는 잡음에 노출되기 쉬울 수 있다.
CTS 타이밍 (1004) 으로서 예시된 타이밍은 통상의 LM-UART 플로우-제어 타이밍에 대응할 수 있거나 도 8 및 도 9 에 예시된 펄스-기반 플로우-제어 구현들에 대응할 수도 있다. 플로우-제어는 송신 LM-UART 및 수신 LM-UART 를 커플링하는 단일 와이어 상에서 로직 로우 펄스 (1024)를 구동시키는 것에 의해 표명될 수도 있다. 로직 로우 펄스 (1024) 는 수신기가 데이터를 수신할 준비가 되지 않음을 표시하고 추가적인 정보를 전달하기 위해 가변 지속기간을 가질 수도 있다. 로직 로우 펄스 (1024) 는 이것이 STOP 조건 (1012) 이 먼저 표명된 후에 송신되는 제 1 펄스 (FCON 펄스) 일 때 알려진 최소 지속기간을 가질 수도 있다. 예를 들어, 로직 로우 펄스 (1024) 는 킵퍼 회로를 플립하기에 충분한 지속기간을 가질 수도 있다. 시그널링 에러들 (1006, 1008) 은 LM-UART들 사이의 링크의 플로우 제어 상태를 반영하지 않는 상태로 킵퍼 회로를 플립시키는 잡음에 의해 야기될 수도 있다. 시그널링 에러 (1006) 의 제 1 카테고리는 STOP 조건 (1012) 의 종료 후에 와이어가 잡음에 의해 로우로 구동될 때 발생한다. 시그널링 에러 (1008) 의 제 2 카테고리는 STOP 조건 (1012) 동안에 수신 LM-UART 에 의해 와이어가 로우로 구동되고 하이 상태로 리턴하지 않거나 또는 수신 LM-UART 에 의해 하이로 구동된 후 하이 상태로 유지될 때 발생한다.
이들 시그널링 에러들 (1006, 1008) 은 로크-아웃 조건을 가져올 수도 있고, 이에 의해, LM-UART들 각각이 다른 LM-UART 로부터의 시그널링에 대해 대기한다. 특정 양태들에 따르면, LM-UART들은 특정 로직 규칙들에 따라 에러들을 수정하는 것에 의해 로크-아웃 조건들을 회피하도록 적응될 수도 있다.
도 11 은 본원에 개시된 특정 양태들에 따라 적응될 수도 있는 LM-UART들 (1102, 1122) 을 채용하는 단일 와이어 인터페이스 (1100) 를 예시한다. 일 예에서, 단일 와이어 인터페이스는 도 3 에 예시된 단일 와이어 인터페이스 (300) 로부터 또는 이에 기초하여 유도된다. 단일 와이어 인터페이스 (1100) 는 풀-듀플렉스 2-와이어 시리얼 데이터 링크에 포함되거나 기여할 수도 있다. 단일 와이어 인터페이스 (1100) 는 2 개의 LM-UART들 (1102, 1122) 을 이용하여 구현될 수도 있다. 제 1 LM-UART (1102) 의 송신기 회로는 라인 또는 와이어 (1120) 를 통하여 제 2 LM-UART (1122) 의 수신기 회로에 커플링된다.
제 1 LM-UART (1102) 는 와이어 (1120) 를 통하여 데이터 패킷들을 송신하는데 이용되는 라인 드라이버 (1104) 를 포함한다. 라인 드라이버의 출력은 데이터 송시들 간의 하이 임피던스 상태에 있을 수도 있다. 와이어 (1120) 에 커플링된 라인 수신기 (1106) 는 데이터 송신들 간의 단일 와이어 인터페이스 (1100) 의 CTS 상태를 결정하는데 이용되는 신호를 제공한다. CTS 상태는 라인 드라이버 (1104) 가 인에이블되거나 또는 하이 임피던스 모드에 놓이는지의 여부를 결정하기 위해 그리고 시프트 레지스터들 및 버퍼들을 포함하는 송신기 회로들의 동작을 제어하기 위해 송신기 제어 로직 (1108) 에 의해 이용된다.
제 2 LM-UART (1122) 는 송신 LM-UART (1102) 에 의해 와이어 (1120) 를 통하여 송신된 데이터를 수신하는 라인 수신기 (1124) 를 포함한다. 수신기 제어 로직 (1128) 은 데이터 송신들 사이에 플로우 제어 정보의 시그널링을 개시할 수도 있다. 일 예에서, 수신기 제어 로직 (1128) 은 수신기 회로들에서의 버퍼들의 점유도를 모니터링할 수도 있고 플로우 제어 로직 (1134) 으로 하여금 데이터 송신들 간의 플로우 제어를 표명하게 할 수도 있다.
예시된 예에서, LM-UART들 (1102 및 1122) 각각은 송신기 제어 로직 (1108) 및 수신기 제어 로직 (1128) 각각에 의해 제어될 수도 있는 킵퍼 회로 (1110 및 1130) 를 포함한다. 일 예에서, 송신기 제어 로직 (1108) 및 수신기 제어 로직 (1128) 은 와이어 (1120) 상에서의 상태 변경을 강제하기 위해 개별적인 킵퍼 회로들 (1110 및 1130) 에 신호 (1112, 1132) 를 제공할 수도 있다. 예를 들어, 송신기 제어 로직 (1108) 은 와이어 (1120) 가 로우 상태에 있을 때 하이 상태로 와이어 (1120) 를 구동시키도록 킵퍼 회로 (1110) 에 시그널링할 수도 있다. 그 후, 킵퍼 회로 (1110) 는 송신기 제어 로직 (1108) 의 제어 하에서 플립될 수도 있다.
도 10 에 예시된 시그널링 에러 (1006) 의 제 1 카테고리는 송신 LM-UART (1102) 에 의해 수정될 수도 있다. 수신 LM-UART (1122) 는 STOP 조건 (1012) 동안 초기 플로우 제어를 표명하도록 구성될 수도 있다. 초기 플로우 제어는 플로우 제어 신호의 표명에 대응하는 에지 (1030) 또는 FCON 펄스 (850)(도 8 참조) 를 포함할 수도 있다. STOP 조건 (1012) 의 종료 후에 초기 플로우-제어의 표명의 발생은 에러 조건으로서 간주될 수도 있다. 송신 LM-UART (1102) 는 STOP 조건 (1012) 의 종료 후에 시작하는 에러 조건, 상승 에지 (1026) 또는 로우 상태로서 식별하도록 구성될 수도 있다. 송신 LM-UART (1102) 는 와이어 (1120) 가 하이 상태인 것으로 추정되도록 킵퍼 회로 (1110) 를 플립핑하는 것에 의해 에러 조건을 수정할 수도 있다. 송신 LM-UART (1102) 는 에러성의 로우 상태가 수신 LM-UART (1122) 에 의해 예상되는 정지 비트에 대한 최소 지속기간보다 더 낮도록 하기 위하여, 오버샘플링 클록 (440) 의 1 또는 2 개의 사이클들 (도 4 를 참조) 내에서 킵퍼 회로 (1110) 를 플립할 수도 있다. 수신 LM-UART (1122) 는 유효하지 않은 펄스로서 에러성 로우 상태를 무시한다.
도 10 에 예시된 시그널링 에러 (1008) 의 제 2 카테고리는 수신 LM-UART (1122) 에 의해 수정될 수도 있다. 수신 LM-UART (1122) 는 수신 LM-UART (1122) 가 플로우-제어를 표명하지 않는 환경들 하에서 와이어 (1120) 가 로우 상태에 있을 때 에러 조건을 인식하도록 구성될 수도 있다. STOP 조건 (1012) 동안에 잡음에 의해 야기되는 와이어 (1120) 상의 에러성 트랜지션 (1028) 은 수신 LM-UART (1122) 에 의해 수정될 수도 있다. 수신 LM-UART (1122) 는 와이어 (1120) 가 하이 상태인 것으로 추정되도록 킵퍼 회로 (1130) 를 플립핑하는 것에 의해 에러 조건의 이 카테고리를 수정하도록 구성될 수도 있다. 수신 LM-UART (1122) 는 오버샘플링 클록 (440) 의 1 또는 2 개의 사이클들 (도 4 를 참조) 내에서 킵퍼 회로 (1130) 를 플립할 수도 있다. 일 예에서, 송신 LM-UART (1102) 는 플로우-제어의 표명 해제에 의해 고속으로 추종되는 플로우-제어의 표명을 볼 수도 있다. 다른 예에서, 송신 LM-UART (1102) 는 도 8 및 도 9 에 예시된 플로우-제어 시그널링에 대하여 정의된 최소 펄스 폭보다 더 짧은 펄스를 검출할 수도 있다. 이들 예 어느 것이든, 송신 LM-UART (1102) 는 STOP 조건 (1012) 동안에 와이어 (1120) 상의 에러성의 트랜지션들을 효과적으로 무시한다.
프로세싱 회로들 및 방법들의 예들
LM-UART들은 다수의 플로우-제어 모드들에서 동작하도록 구성가능할 수도 있다. 예를 들어, LM-UART 는 펄스 기반 플로우 제어 모드에서 동작하도록 초기에 구성될 수도 있고 펄스 기반 플로우 제어 기술을 이용하지 않는 모드에서 동작하도록 재구성될 수도 있다.
도 12 는 본원에 개시된 하나 이상의 기능들을 수행하도록 구성될 수도 있는 프로세싱 회로 (1202) 를 채택하는 장치 (1200) 에 대한 하드웨어 구현의 일 예를 예시하는 다이어그램이다. 본 개시의 여러 양태들에 따르면, 본원에 개시된 소자, 또는 소자의 임의의 부분 또는 소자들의 임의의 조합은 프로세싱 회로 (1202) 를 이용하여 구현될 수도 있다. 프로세싱 회로 (1202) 는 하드웨어 및 소프트웨어 모듈들의 일부 조합에 의해 제어되는 하나 이상의 프로세서들 (1204) 을 포함할 수도 있다. 프로세서들 (1204) 의 예들은 마이크로프로세서들, 마이크로제어기들, 디지털 신호 프로세서들 (DSP들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 프로그래밍가능 로직 디바이스들 (PLD들), 상태 머신들, 시퀀서들, 게이트된 로직, 이산 하드웨어 회로들, 및 본 개시물에 걸쳐 설명된 여러 기능들을 수행하도록 구성되는 다른 적절한 하드웨어를 포함한다. 하나 이상의 프로세서들 (1204) 은 특정 기능들을 수행하고 소프트웨어 모듈들 (1216) 중 하나에 의해 구성, 증강 또는 제어될 수도 있는 특수화된 프로세서들을 포함할 수도 있다. 하나 이상의 프로세서들 (1204) 은 초기화 동안에 로딩된 하나 이상의 소프트웨어 모듈들 (1216) 의 조합을 통하여 구성될 수도 있고, 동작 동안에 소프트웨어 모듈들 (1216) 중 하나 이상을 로딩 또는 언로딩함으로써 추가로 제어될 수도 있다.
예시된 예에서, 프로세싱 회로 (1202) 는 버스 (1210) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (1210) 는 프로세싱 회로 (1202) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 버스 (1210) 는 하나 이상의 프로세서들 (1204) 및 저장부 (1206) 를 포함하는 여러 회로들을 함께 링크한다. 저장부 (1206) 는 메모리 디바이스들 및 대용량 디바이스들을 포함할 수도 있고, 본원에서 컴퓨터 판독가능 매체 및/또는 프로세서 판독가능 매체로서 지칭될 수도 있다. 버스 (1210) 는 또한 타이밍 소스들, 타이머들, 주변기기들, 전압 레귤레이터들, 및 전력 관리 회로들과 같은 여러 다른 회로들을 링크할 수도 있다. 버스 인터페이스 (1208) 는 버스 (1210) 와, 하나 이상의 트랜시버들 (1212) 사이에 인터페이스를 제공할 수도 있다. 트랜시버 (1212) 는 프로세싱 회로에 의해 지원되는 각각의 네트워킹 기술에 대하여 제공될 수도 있다. 일부 경우들에서, 다수의 네트워킹 기술들이 트랜시버 (1212) 에서 발견되는 프로세싱 모듈들 또는 회로의 일부 또는 전부를 공유할 수도 있다. 각각의 트랜시버 (1212) 는 송신 매체를 통하여 여러 다른 장치와 통신하는 수단을 제공한다. 장치 (1200) 의 특성에 의존하여, 사용자 인터페이스 (1218)(예를 들어, 키패드, 디스플레이, 스피커, 마이크로폰, 조이스틱) 가 또한 제공될 수도 있고, 버스 인터페이스 (1208) 를 통하여 또는 버스 (1210) 에 직접적으로 통신가능하게 커플링될 수도 있다.
프로세서 (1204) 는 저장부 (1206) 를 포함할 수도 있는 컴퓨터 판독가능 매체에 저장된 소프트웨어의 실행을 포함할 수도 있는 범용 프로세싱을 그리고 버스 (1210) 의 관리를 담당할 수도 있다. 이 관점에서, 프로세서 (1204) 를 포함한 프로세싱 회로 (1202) 는 본원에 개시된 방법들, 기능들, 및 기술들 중 어느 것을 구현하는데 이용될 수도 있다. 저장부 (1206) 는 소프트웨어를 실행할 때 프로세서 (1204) 에 의해 조작되는 데이터를 저장하기 위해 이용될 수도 있고, 소프트웨어는 본원에 개시된 방법들 중 어느 하나를 구현하도록 구성될 수도 있다.
프로세싱 회로 (1202) 에서의 하나 이상의 프로세서들 (1204) 은 소프트웨어를 실행할 수도 있다. 본원에서 이용되는 바와 같이, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 달리 지칭되더라도, 소프트웨어는 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 하위프로그램들, 소프트웨어 모듈들, 애플리케이션들, 소프트웨어 애플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 실행가능물들, 실행의 스레드들, 절차들, 기능들, 알고리즘들 등을 의미하는 것으로 광범위하게 간주되어야 한다. 소프트웨어는 외부 컴퓨터 판독가능 매체에서 또는 저장부 (1206) 에서 컴퓨터 판독가능 형태로 상주할 수도 있다. 외부의 컴퓨터 판독가능 매체 및/또는 저장부 (1206) 는 비일시적 컴퓨터 판독가능 매체일 수도 있다. 비일시적 컴퓨터 판독가능 저장 매체는 예를 들어, 자기 저장 디바이스 (예를 들어, 하드 디스크, 플로피 디스크, 마그네틱 스트립), 광학 디스크 (예를 들어, 컴팩트 디스크 (CD) 또는 디지털 다기능 디스크 (DVD)), 스마트 카드, 플래시 메모리 디바이스 (예를 들어, "플래시 드라이브", 카드, 스틱, 키 드라이브), 랜덤 액세스 메모리 (RAM), ROM, PROM, 소거가능 PROM (EPROM), EEPROM, 레지스터, 탈착가능 디스크, 및/또는 컴퓨터에 의해 액세스 및 판독될 수도 있는 소프트웨어 및/또는 명령들을 저장하기 위한 임의의 다른 적절한 매체를 포함한다. 컴퓨터 판독가능 매체 및/또는 저장부 (1206) 는 또한 예를 들어, 반송파, 송신 라인, 및 컴퓨터에 의해 액세스 및 판독될 수도 있는 소프트웨어 및/또는 명령들을 송신하기 위한 임의의 다른 적절한 매체를 포함할 수도 있다. 컴퓨터 판독가능 매체 및/또는 저장부 (1206) 는 프로세싱 회로 (1202) 에, 프로세싱 회로 (1202) 의 외부에 있는 프로세서 (1204) 에 상주할 수도 있거나 또는 프로세싱 회로 (1202) 를 포함한 다수의 엔티티들에 걸쳐 분산될 수도 있다. 컴퓨터 판독가능 매체 및/또는 저장부 (1206) 는 컴퓨터 프로그램 제품에서 구현될 수도 있다. 예를 들어, 컴퓨터 프로그램 제품은 패키징 재료들에서 컴퓨터 판독가능 매체를 포함할 수도 있다. 당해 기술 분야의 당업자는 전체 시스템 상에 부여되는 전체 설계 제약들 및 특정 애플리케이션에 따라 본 개시 전반에 걸쳐 제시된 설명의 기능성을 최상으로 구현하는 방법을 알고 있을 것이다.
저장부 (1206) 는 소프트웨어 모듈들 (1216) 로서 본원에서는 지칭될 수도 있는 로딩가능 코드 세그먼트들, 모듈들, 애플리케이션들, 프로그램들 등에서 유지 및/또는 조직화되는 소프트웨어를 유지할 수도 있다. 소프트웨어 모듈들 (1216) 각각은 프로세싱 회로 (1202) 상에 설치 또는 로딩되고 하나 이상의 프로세서들 (1204) 에 의해 실행될 때 하나 이상의 프로세서들 (1204) 의 동작을 제어하는 런타임 이미지 (1214) 에 기여하는 명령들 및 데이터를 포함할 수도 있다. 실행될 때, 특정 명령들은 프로세싱 회로 (1202) 로 하여금 본원에 설명된 특정 방법들, 알고리즘들, 및 프로세스들에 따라 기능을 수행하게 할 수도 있다.
소프트웨어 모듈들 (1216) 의 일부는 프로세싱 회로 (1202) 의 초기화 동안에 로딩될 수도 있고, 이들 소프트웨어 모듈들 (1216) 은 본원에 설명된 여러 기능들의 수행을 실행하도록 프로세싱 회로 (1202) 를 구성할 수도 있다. 예를 들어, 일부 소프트웨어 모듈들 (1216) 은 프로세서 (1204) 의 내부 디바이스들 및/또는 로직 회로들 (1222) 을 구성할 수도 있고, 트랜시버 (1212), 버스 인터페이스 (1208), 사용자 인터페이스 (1218), 타이머들, 수학적 코프로세서들 등과 같은 외부 디바이스들에 대한 액세스를 관리할 수도 있다. 소프트웨어 모듈들 (1216) 은 인터럽트 핸들러들 및 디바이스 드라이버들과 상호작용하고 프로세싱 회로 (1202) 에 의해 제공된 여러 리소스들에 대한 액세스를 제어하는 제어 프로그램 및/또는 오퍼레이팅 시스템을 포함할 수도 있다. 리소스들은 메모리, 프로세싱 시간, 트랜시버 (1212), 사용자 인터페이스 (1218) 에 대한 액세스 등을 포함할 수도 있다.
프로세싱 회로 (1202) 의 하나 이상의 프로세서들 (1204) 은 다기능성일 수도 있어, 소프트웨어 모듈들 (1216) 중 일부가 상이한 인스턴스들, 또는 동일한 기능의 상이한 인스턴스들을 수행하도록 로딩 및 구성된다. 하나 이상의 프로세서들 (1204) 은 예를 들어, 사용자 인터페이스 (1218), 트랜시버 (1212) 및 디바이스 드라이버들로부터의 입력들에 응답하여 개시된 백그라운드 작업들을 관리하도록 추가적으로 적응될 수도 있다. 다수의 기능들의 수행을 지원하기 위하여, 하나 이상의 프로세서들 (1204) 은 멀티테스킹 환경을 제공하도록 구성될 수도 있어, 이에 의해 복수의 기능들 각각이 필요에 따라, 또는 원하는 바에 따라 하나 이상의 프로세서들 (1204) 에 의해 서비스되는 작업들의 세트로서 구현된다. 일 예에서, 멀티태스킹 환경은 상이한 작업들 간에 프로세서 (1204) 의 제어를 통과시키는 타임쉐어링 프로그램 (1220) 을 이용하여 구현될 수도 있고, 이에 의해 임의의 현저한 동작들의 완료시에, 및/또는 이러한 인터럽트와 같은 입력에 응답하여, 각각의 작업이 하나 이상의 프로세서들 (1204) 의 제어를 타임쉐어링 프로그램 (1220) 으로 되돌린다. 작업이 하나 이상의 프로세서들 (1204) 의 제어를 행할 때, 프로세싱 회로는 제어 중인 작업과 연관된 기능에 의해 어드레싱되는 목적들에 대하여 효과적으로 특수화된다. 타임쉐어링 프로그램 (1220) 은 오퍼레이팅 시스템, 라운드 로빈 기반으로 제어들을 트랜스퍼하는 메인 루프, 기능들의 우선순위화에 따라 하나 이상의 프로세서들 (1204) 의 제어를 할당하는 기능 및/또는 하나 이상의 프로세서들 (1204) 의 제어를 핸들링 기능에 제공함으로써 외부 이벤트들에 응답하는 인터럽트 구동된 메인 루프를 포함할 수도 있다.
도 13 은 송신 LM-UART 에서 수행될 수도 있는 제 1 방법의 플로우차트 (1300) 이다.
블록 1302 에서, LM-UART 는 제 1 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터의 와이어 상에서 정지 조건을 표명할 수도 있다.
블록 1304 에서, LM-UART 는 와이어의 액티브 구동을 중단시킬 수도 있다. LM-UART 는 하이 임피던스 동작 모드에 진입할 수도 있고 와이어는 킵퍼 회로에 의해 제 1 전압 레벨에서 유지될 수도 있다. 일부 사례들에서, LM-UART 는 하이 임피던스 동작 모드에 진입할 수도 있고 와이어는 풀업 또는 풀다운 저항에 의해 제 1 전압 레벨에서 유지될 수도 있다. 일부 사례들에서, LM-UART 는 와이어가 제 1 전압 레벨에서 패시브하게 유지되도록 출력 임피던스를 수정할 수도 있다.
블록 1306 에서, LM-UART 는 와이어가 정지 조건 동안 제 2 전압 레벨로 트랜지션하였는지를 결정하도록 와이어를 모니터링할 수도 있다.
블록 1306 에서 와이어가 정지 조건 동안에 제 2 전압 레벨로 트랜지션하지 않았다고 LM-UART 가 결정할 때, LM-UART 는 블록 1308 에서 와이어 상에서 데이터를 송신하거나 계속 송신중일 수도 있다.
블록 1306 에서 와이어가 정지 조건 동안에 제 2 전압 레벨로 트랜지션하였다고 LM-UART 가 결정할 때, LM-UART 는 블록 1310 에서 플로우-제어가 표명되었다고 결정할 수도 있다.
블록 1312 에서, LM-UART 는 플로우-제어가 표명되는 동안 와이어 상에서 데이터를 송신하는 것을 보류하게 할 수도 있다.
블록 1314 에서, LM-UART 는 와이어가 플로우 제어의 표명 해제를 표시하는 제 1 전압 레벨로 다시 트랜지션할 때까지 대기할 수도 있다. 와이어가 제 1 전압 레벨로 다시 트랜지션할 때, LM-UART 는 블록 1308 에서 와이어 상에서 데이터를 송신하거나 계속 송신중일 수도 있다.
도 14 는 송신 LM-UART 에서 수행될 수도 있는 제 2 방법의 플로우차트 (1400) 이다.
블록 1402 에서, LM-UART 는 정지 조건의 지속기간 미만인 제 1 기간 동안 제 1 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크의 와이어 상에서 정지 조건을 표명할 수도 있다.
블록 1404 에서, LM-UART 는 제 1 기간 후에 와이어를 모니터링할 수도 있다.
블록 1406 에서, LM-UART 는 와이어가 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 유지될 때 그리고 제 1 기간이 경과한 후에 플로우-제어가 표명되었다고 결정할 수도 있다.
블록 1408 에서, LM-UART 는 플로우-제어가 표명되는 동안 와이어 상에서 데이터를 송신하는 것을 보류하게 할 수도 있다.
블록 1410 에서, LM-UART 는 플로우-제어는 표명 해제될 때 와이어 상에서 데이터를 송신할 수도 있다.
일부 예들에서, 와이어는 제 2 기간의 만료 후에 제 1 전압 레벨로 리턴된다. LM-UART 는 와이어가 제 2 기간의 만료시 제 1 전압 레벨로 리턴한 후에 시작하는 제 3 기간 동안 제 2 전압 레벨로 유지될 때 그리고 제 3 기간이 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과할 때 플로우-제어가 표명 해제된다고 결정할 수도 있다. LM-UART 는 제 2 기간의 지속기간에 기초하여 제 4 기간을 계산하고, 제 4 기간이 경과한 후에 플로우-제어가 표명 해제된다고 결정할 수도 있다.
일부 예들에서, 플로우-제어는 와이어가 정지 조건의 지속기간 내에서 제 2 전압 레벨로 트랜지션할 때 표명되었다고 결정된다.
일부 예들에서, LM-UART 는 정지 조건이 종료된 후에 제 2 전압 레벨로의 와이어의 트랜지션이 발생할 때 에러 조건을 결정할 수도 있고 에러 조건이 결정될 때 제 1 전압 레벨로 와이어를 구동시킬 수도 있다. 와이어는 킵퍼 회로를 플립하는 것에 의해 에러 조건이 결정될 때 제 1 전압 레벨로 구동될 수도 있다.
일 예에서, LM-UART 는 데이터그램에 대한 송신 시간에 대응하는 주기가 경과한 후에, 와이어를 액티브 상태로 구동시키는 것에 의해 플로우-제어를 오버라이드할 수도 있다. 데이터그램은 프레이밍 및 제어 비트들과 함께 또는 이들 없이 8-비트 데이터 바이트, 16-비트 데이터 워드 또는 일부 다른 수의 비트들을 반송할 수도 있다.
도 15 는 프로세싱 회로 (1502) 를 채용하는 장치 (1500) 에 대한 하드웨어 구현의 단순화된 예를 예시하는 다이어그램이다. 장치는 본원에 개시된 특정 양태에 따라 브리징 회로를 구현할 수도 있다. 프로세싱 회로는 통상적으로 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서, 시퀀서, 및/또는 상태 머신 중 하나 이상을 포함할 수도 있는 제어기 또는 프로세서 (1516) 를 갖는다. 프로세싱 회로 (1502) 는 버스 (1520) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (1520) 는 프로세싱 회로 (1502) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하여 임의의 수의 상호접속하는 버스들 및 브리지들을 포함할 수도 있다. 버스 (1520) 는 제어기 또는 프로세서 (1516), 모듈들 또는 회로들 (1504, 1506, 1508 및 1510), 및 컴퓨터 판독가능 저장 매체 (1518) 에 의해 표현된 하나 이상의 프로세서들 및/또는 하드웨어 모듈들을 포함한 다양한 회로들을 함께 링크시킨다. 장치는 인터페이스 (1512) 마다 여러 수의 와이어들 (1514) 을 이용하여 플로우 제어를 갖는 풀-듀플렉스 시리얼 통신에 적응된 복수의 멀티-와이어 인터페이스들 (1512) 을 가질 수도 있다. 버스 (1520) 는 또한 다른 회로들, 이를 테면, 타이밍 소스들, 주변기기들, 전압 조절기들, 및 전력 관리 회로들을 링크할 수도 있으며, 이는 공지되어 있으므로, 더 이상 설명되지 않을 것이다.
프로세서 (1516) 는 컴퓨터 판독가능 저장 매체 (1518) 상에 저장된 소프트웨어, 코드, 및/또는 명령들의 실행을 포함하는, 일반 프로세싱을 담당한다. 컴퓨터 판독가능 저장 매체는 비일시적 저장 매체를 포함할 수도 있다. 프로세서 (1516) 에 의해 실행될 때, 소프트웨어는 프로세싱 회로 (1502) 로 하여금 임의의 특정 장치에 대하여 위에 설명된 여러 기능들을 수행하게 한다. 컴퓨터 판독가능 저장 매체는 소프트웨어를 실행시킬 때 프로세서 (1516) 에 의해 조작되는 데이터를 저장하는데 이용될 수도 있다. 프로세싱 회로 (1502) 는 모듈들 (1504, 1506, 1508 및 1510) 중 적어도 하나를 더 포함한다. 모듈들 (1504, 1506, 1508 및 1510) 은 컴퓨터 판독가능 저장 매체 (1518) 상에 상주/저장되는, 프로세서 (1516) 에서 실행되는 소프트웨어 모듈, 프로세서 (1516) 에 커플링되는 하나 이상의 하드웨어 모듈들 또는 이들의 일정 조합일 수도 있다. 모듈들 (1504, 1506, 1508 및 1510) 은 마이크로컨트롤러 명령들, 상태 머신 구성 파라미터들, 또는 이들의 일정 조합을 포함할 수도 있다.
일 구성에서, 장치 (1500) 는 시리얼 데이터 링크의 와이어들 (1514) 중 하나에서 정지 조건을 표명하도록 구성되는 모듈들 및/또는 회로들 (1506, 1508), 제 1 기간 후에 와이어를 모니터링하도록 구성되는 모듈들 및/또는 회로들 (1504, 1506, 1508, 1510), 플로우-제어가 표명되었다고 결정하도록 구성되는 모듈들 및/또는 회로들 (1506, 1510), 및 플로우-제어가 표명 해제될 때 와이어 상에서 데이터를 송신하도록 구성되는 모듈들 및/또는 회로들 (1506) 을 포함한다. 장치 (1500) 는 시리얼 데이터 링크가 동기식으로 동작될 때 데이터 패킷들을 송신하도록 구성가능할 수도 있다. 장치 (1500) 는 시리얼 데이터 링크가 비동기식으로 동작될 때 데이터 패킷들을 송신하도록 구성가능할 수도 있다.
도 16 은 수신 LM-UART 에서 수행될 수도 있는 제 1 방법의 플로우차트 (1600) 이다.
블록 1602 에서, LM-UART 는 와이어로부터 시리얼 데이터를 수신할 수도 있다. LM-UART 는 직렬/병렬 (serial-to parallel) 컨버터로 데이터의 비트들을 수신할 수도 있고 프레임의 끝은 STOP 비트에 의해 표시될 수도 있다.
블록 1604 에서, LM-UART 는 STOP BIT 가 수신되었는지의 여부를 결정할 수도 있다. STOP BIT 가 수신되지 않았다면, LM-UART 는 블록 1602 에서 와이어로부터 시리얼 데이터의 비트들을 계속 수신한다. STOP BIT 가 수신되었다면, LM-UART 는 블록 1606 에서 계속 진행한다.
블록 1606 에서, LM-UART 는 시리얼 데이터 또는 병렬 데이터가 가득 찬 상태이거나 또는 임계 점유도 레벨을 초과하였는지의 여부를 결정할 수도 있다. LM-UART 가 버퍼가 가득찬 상태가 아니라고 결정하면, LM-UART 는 블록 1602 에서 와이어로부터 시리얼 데이터를 계속 수신한다. LM-UART 가 버퍼가 가득 찬 상태라고 결정하면, LM-UART 는 블록 1610 에서 계속 진행한다.
블록 1610 에서, LM-UART 는 로우 로직 상태로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크에 대한 플로우 제어를 표명할 수도 있다 (여기에서 STOP 비트는 하이 로직 상태로서 표현된다).
블록 1612 에서, LM-UART 는 데이터를 계속 수신하기 위해 버퍼가 빈 상태로 되거나 충분한 공간을 가질때를 대기한다. 버퍼가 더 많은 데이터를 수신할 수 있을 때, LM-UART 는 하이 로직 상태로 와이어를 구동시키는 것에 의해 블록 1616 에서 플로우 제어를 표명 해제할 수도 있다. LM-UART 는 블록 1602 에서 와이어로부터 시리얼 데이터를 수신하는 것을 재개할 수도 있다.
도 17 은 수신 LM-UART 에서 수행될 수도 있는 제 2 방법의 플로우차트 (1700) 이다.
블록 1702 에서, LM-UART 는 시리얼 데이터 링크 상에서 정지 조건이 표명되었다고 결정할 수도 있다. 정지 조건은 데이터가 와이어로부터 수신된 후에 와이어가 제 1 전압 레벨로 구동될 때 개시되는 제 1 기간 동안 지속된다.
블록 1704 에서, LM-UART 는 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크에 대한 플로우-제어를 표명할 수도 있다.
블록 1706 에서, LM-UART 는 제 2 기간이 종료된 때 제 1 전압 레벨로 와이어를 구동시키는 것을 포함하여, 시리얼 데이터 링크에 대한 플로우-제어를 표명 해제할 수도 있다. 시리얼 데이터 링크에 대한 플로우-제어를 표명 해제하는 것은 제 2 기간이 경과한 후에 와이어 상에서 펄스를 송신하는 것을 포함할 수도 있다. 펄스는 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 지속기간을 가질 수도 있다.
블록 1708 에서, LM-UART 는 시리얼 데이터 링크에 대한 플로우-제어를 표명 해제한 후에 와이어로부터 데이터를 수신할 수도 있다.
일부 예들에서, LM-UART 는 시리얼 데이터 링크에 대한 플로우-제어가 표명되는 동안의 제 3 기간을 선택하고, 제 3 기간의 지속기간에 기초하여 제 2 기간을 계산할 수도 있다.
일부 예들에서, LM-UART 는 제 1 기간이 만료하였을 때 시리얼 데이터 링크에 대한 플로우-제어를 표명하는 것을 보류할 수도 있다. LM-UART 는 시리얼 데이터 링크에 대한 플로우 제어가 표명되지 않는다고 결정하고, 시리얼 데이터 링크에 대한 플로우-제어가 표명되지 않는다고 결정한 후의 제 1 기간 동안 제 2 전압 레벨로의 와이어의 트랜지션이 발생할 때 에러 조건을 결정하고, 에러 조건이 결정될 때 제 1 전압 레벨로 와이어를 구동시킬 수도 있다. 와이어는 킵퍼 회로를 플립하는 것에 의해 에러 조건이 결정될 때 제 1 전압 레벨로 구동될 수도 있다.
도 18 은 프로세싱 회로 (1802) 를 채택하는 장치 (1800) 에 대한 하드웨어 구현의 간략화된 예를 예시하는 다이어그램이다. 장치는 본원에 개시된 특정 양태에 따라 브리징 회로를 구현할 수도 있다. 프로세싱 회로는 통상적으로 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서, 시퀀서, 및/또는 상태 머신 중 하나 이상을 포함할 수도 있는 제어기 또는 프로세서 (1816) 를 갖는다. 프로세싱 회로 (1802) 는 버스 (1820) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (1820) 는 프로세싱 회로 (1802) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 버스 (1820) 는 제어기 또는 프로세서 (1816), 모듈들 또는 회로들 (1804, 1806, 1808 및 1810), 및 컴퓨터 판독가능 저장 매체 (1818) 에 의해 표현된 하나 이상의 프로세서들 및/또는 하드웨어 모듈들을 포함한 다양한 회로들을 함께 링크시킨다. 장치는 인터페이스 (1812) 마다 여러 수의 와이어들 (1814) 을 이용하여 플로우 제어를 갖는 풀-듀플렉스 시리얼 통신에 적응된 복수의 멀티-와이어 인터페이스들 (1812) 을 가질 수도 있다. 버스 (1820) 는 또한 여러 다른 회로들, 예컨대, 타이밍 소스들, 주변기기들, 전압 조절기들, 및 전력 관리 회로들을 링크할 수도 있으며, 이는 공지되어 있으므로, 더 이상 설명되지 않을 것이다.
프로세서 (1816) 는 컴퓨터 판독가능 저장 매체 (1818) 상에 저장된 소프트웨어, 코드, 및/또는 명령들의 실행을 포함하는, 일반 프로세싱을 담당한다. 컴퓨터 판독가능 저장 매체는 비일시적 저장 매체를 포함할 수도 있다. 프로세서 (1816) 에 의해 실행될 때, 소프트웨어는 프로세싱 회로 (1802) 로 하여금 임의의 특정 장치에 대하여 위에 설명된 여러 기능들을 수행하게 한다. 컴퓨터 판독가능 저장 매체는 소프트웨어를 실행시킬 때 프로세서 (1816) 에 의해 조작되는 데이터를 저장하는데 이용될 수도 있다. 프로세싱 회로 (1802) 는 모듈들 (1804, 1806, 1808 및 1810) 중 적어도 하나를 더 포함한다. 모듈들 (1804, 1806, 1808 및 1810) 은 컴퓨터 판독가능 저장 매체 (1818) 상에 상주/저장되는, 프로세서 (1816) 에서 실행되는 소프트웨어 모듈, 프로세서 (1816) 에 커플링되는 하나 이상의 하드웨어 모듈들 또는 이들의 일정 조합일 수도 있다. 모듈들 (1804, 1806, 1808 및 1810) 은 마이크로컨트롤러 명령들, 상태 머신 구성 파라미터들, 또는 이들의 일정 조합을 포함할 수도 있다.
일 구성에서, 장치 (1800) 는 시리얼 데이터 링크의 와이어들 (1814) 중 하나에서 정지 조건이 표명될 때를 결정하는 모듈들 및/또는 회로들 (1806, 1808), 와이어 상에서 플로우-제어를 표명하도로 구성되는 모듈들 및/또는 회로들 (1810), 및 플로우-제어가 표명 해제될 때 와이어로부터 데이터를 수신하도록 구성되는 모듈들 및/또는 회로들 (1806) 을 포함한다. 장치 (1800) 는 시리얼 데이터 링크가 동기식으로 동작될 때 데이터를 수신하도록 구성가능할 수도 있다. 장치 (1800) 는 시리얼 데이터 링크가 비동기식으로 동작될 때 데이터를 수신하도록 구성가능할 수도 있다.
개시된 프로세스들에서 단계들의 특정의 순서 또는 계층은 예시적인 접근방식들의 예시인 것이 이해된다. 설계 선호사항들에 기초하여, 프로세서들에서의 단계들의 특정 순서 또는 계층은 재배열될 수도 있음이 이해된다. 추가로, 일부 단계들은 결합 또는 생략될 수도 있다. 수반하는 방법 청구항들은 샘플 순서에서의 다양한 단계들의 요소들을 제시하고, 제시된 특정 순서 또는 계층으로 제한되는 것으로 의도되지 않는다.
이전 설명은 임의의 당업자가 여러 본원에서 설명하는 양태들을 실시할 수 있도록 하기 위해서 제공된다. 이들 양태들에 대한 여러 변경들은 당업자들에게 매우 자명할 것이며, 본원에서 정의하는 일반 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 본원에서 나타낸 양태들에 한정시키려고 의도된 것이 아니며, 전문용어 청구항들 (language claims) 에 부합하는 전체 범위를 부여하려는 것이며, 여기서, 엘리먼트에 대한 단수형 참조는 "하나 및 오직 하나" 로 구체적으로 달리 말하지 않는 한, "하나 및 오직 하나" 를 의미하기 보다는, "하나 이상" 을 의미하도록 의도된다. 달리 구체적으로 언급하지 않는 한, 용어 "일부 (some)" 는 하나 이상을 지칭한다. 당업자들에게 알려져 있거나 또는 추후 알려지는, 본 개시물을 통해서 설명한 여러 양태들의 엘리먼트들에 대한 모든 구조적 및 기능적 균등물들이 본원에 참조로 명백히 포함되며, 청구항들에 의해 포괄되도록 의도된다. 또한, 본원에서 개시된 어떤 것도 이런 개시물이 청구항들에 명시적으로 인용되는지에 상관없이, 대중에 지정되도록 의도된 것이 아니다. 어떤 청구항 엘리먼트도 그 엘리먼트가 어구 "하는 수단" 을 이용하여 명백히 언급되지 않는 한, 기능식 (means plus function) 청구항으로서 해석되지 않아야 한다.

Claims (30)

  1. 송신 디바이스에서 수행되는 방법으로서,
    정지 조건의 지속기간 미만인 제 1 기간 동안 제 1 전압 레벨로 와이어를 구동시키는 것에 의해 시리얼 데이터 링크의 와이어 상에서 상기 정지 조건을 표명하는 단계;
    상기 제 1 기간 후에 상기 와이어를 모니터링하는 단계;
    상기 와이어가 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 유지될 때 그리고 상기 제 1 기간이 경과한 후에 플로우-제어가 표명되었다고 결정하는 단계;
    플로우-제어가 표명되는 동안 상기 와이어 상에서 데이터를 송신하는 것을 보류하는 단계; 및
    플로우-제어가 표명 해제될 때 상기 와이어 상에서 데이터를 송신하는 단계를 포함하는, 송신 디바이스에서 수행되는 방법.
  2. 제 1 항에 있어서,
    상기 와이어는 상기 제 2 기간의 만료 후에 상기 제 1 전압 레벨로 리턴되고,
    상기 와이어가 상기 제 2 기간의 만료시 상기 제 1 전압 레벨로 리턴한 후에 시작하는 제 3 기간 동안 상기 제 2 전압 레벨로 유지될 때 그리고 상기 제 3 기간이 플로우-제어 펄스들에 대해 정의된 상기 최소 기간을 초과할 때 플로우-제어가 표명 해제된다고 결정하는 단계를 더 포함하는, 송신 디바이스에서 수행되는 방법.
  3. 제 1 항에 있어서,
    상기 와이어는 상기 제 2 기간의 만료 후에 상기 제 1 전압 레벨로 리턴되고,
    상기 제 2 기간의 지속기간에 기초하여 제 4 기간을 계산하는 단계; 및
    상기 제 4 기간이 경과한 후에 플로우-제어가 표명 해제된다고 결정하는 단계를 더 포함하는, 송신 디바이스에서 수행되는 방법.
  4. 제 1 항에 있어서,
    플로우-제어는 상기 와이어가 상기 정지 조건의 지속기간 내에서 상기 제 2 전압 레벨로 트랜지션할 때 표명되었다고 결정되는, 송신 디바이스에서 수행되는 방법.
  5. 제 4 항에 있어서,
    상기 정지 조건이 종료된 후에 상기 제 2 전압 레벨로의 상기 와이어의 트랜지션이 발생할 때 에러 조건을 결정하는 단계; 및
    상기 에러 조건이 결정될 때 상기 제 1 전압 레벨로 상기 와이어를 구동시키는 단계를 더 포함하는, 송신 디바이스에서 수행되는 방법.
  6. 제 5 항에 있어서,
    상기 에러 조건이 결정될 때 상기 제 1 전압 레벨로 상기 와이어를 구동시키는 단계는:
    킵퍼 회로를 플립 (flip) 하는 단계를 포함하는, 송신 디바이스에서 수행되는 방법.
  7. 제 1 항에 있어서,
    데이터그램에 대한 송신 시간에 대응하는 주기가 경과한 후에, 상기 와이어를 액티브 상태로 구동시키는 것에 의해 플로우-제어를 오버라이드하는 단계를 더 포함하는, 송신 디바이스에서 수행되는 방법.
  8. 송신 장치로서,
    시리얼 데이터 링크의 와이어에 커플링된 라인 드라이버로서:
    상기 와이어를 통하여 데이터 패킷을 송신하고; 그리고
    정지 조건의 지속기간 미만인 제 1 기간 동안 제 1 전압 레벨로 상기 와이어를 구동시키는 것에 의해 상기 데이터 패킷을 송신한 후에 상기 정지 조건을 제공하도록 구성되는, 상기 라인 드라이버;
    플로우-제어 회로로서;
    상기 제 1 기간이 경과한 후에 상기 와이어를 모니터링하고; 그리고
    상기 와이어가 상기 제 1 기간이 경과한 후에 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 유지될 때 플로우-제어가 표명되었다고 결정하도록 구성되는, 상기 플로우-제어 회로를 포함하고,
    상기 라인 드라이버는 또한:
    플로우-제어가 표명되는 동안 상기 와이어 상에서 데이터를 송신하는 것을 보류하고; 그리고
    플로우-제어가 표명 해제될 때 상기 와이어 상에서 데이터를 송신하도록 구성되는, 송신 장치.
  9. 제 8 항에 있어서,
    상기 와이어는 상기 제 2 기간의 만료 후에 상기 제 1 전압 레벨로 리턴되고,
    상기 플로우-제어 회로는:
    상기 와이어가 상기 제 2 기간의 만료시 상기 제 1 전압 레벨로 리턴한 후에 시작하는 제 3 기간 동안 상기 제 2 전압 레벨로 유지될 때 그리고 상기 제 3 기간이 플로우-제어 펄스들에 대해 정의된 상기 최소 기간을 초과할 때 플로우-제어가 표명 해제된다고 결정하도록 구성되는, 송신 장치.
  10. 제 8 항에 있어서,
    상기 와이어는 상기 제 2 기간의 만료 후에 상기 제 1 전압 레벨로 리턴되고,
    상기 플로우-제어 회로는:
    상기 제 2 기간의 지속기간에 기초하여 제 4 기간을 계산하고; 그리고
    상기 제 4 기간이 경과한 후에 플로우-제어가 표명 해제된다고 결정하도록 구성되는, 송신 장치.
  11. 제 10 항에 있어서,
    상기 플로우-제어 회로는;
    상기 제 4 기간에 대응하는 클록 펄스들의 수를 카운트하도록 카운터를 프로그램하고; 그리고
    상기 카운터가 상기 제 4 기간에 대응하는 클록 펄수들의 수를 카운트한 후에 플로우-제어가 표명 해제된다고 결정하도록 구성되는, 송신 장치.
  12. 제 8 항에 있어서,
    플로우-제어는 상기 와이어가 상기 정지 조건의 지속기간 내에서 상기 제 2 전압 레벨로 트랜지션할 때 표명되었다고 결정되는, 송신 장치.
  13. 제 12 항에 있어서,
    상기 플로우-제어 회로는 상기 정지 조건이 종료된 후에 상기 제 2 전압 레벨로의 상기 와이어의 트랜지션이 발생할 때 에러 조건이 발생하였다고 결정하도록 구성되는, 송신 장치.
  14. 제 13 항에 있어서,
    상기 플로우-제어 회로는 상기 에러 조건이 결정될 때 상기 제 1 전압 레벨로 상기 와이어를 구동시키도록 구성되는, 송신 장치.
  15. 제 13 항에 있어서,
    상기 플로우-제어 회로는 상기 에러 조건이 결정될 때 킵퍼 회로를 플립하도록 구성되는, 송신 장치.
  16. 제 8 항에 있어서,
    상기 장치는 상기 시리얼 데이터 링크가 동기식으로 동작될 때 데이터 패킷들을 송신하도록 구성가능한, 송신 장치.
  17. 제 8 항에 있어서,
    상기 플로우-제어 회로는;
    데이터 바이트에 대한 송신 시간에 대응하는 주기가 경과한 후에, 상기 와이어를 액티브 상태로 구동시키는 것에 의해 플로우-제어를 오버라이드하도록 구성되는, 송신 장치.
  18. 수신 디바이스에서 수행되는 방법으로서,
    정지 조건이 시리얼 데이터 링크의 와이어 상에서 표명되었다고 결정하는 단계로서, 상기 정지 조건은 데이터가 상기 와이어로부터 수신된 후에 상기 와이어가 제 1 전압 레벨로 구동될 때 개시되는 제 1 기간 동안 지속되는, 상기 정지 조건이 표명되었다고 결정하는 단계;
    플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 상기 와이어를 구동시키는 것에 의해 상기 시리얼 데이터 링크에 대한 플로우-제어를 표명하는 단계;
    상기 제 2 기간이 종료된 때 상기 제 1 전압 레벨로 상기 와이어를 구동시키는 것을 포함하여, 상기 시리얼 데이터 링크에 대한 상기 플로우-제어를 표명 해제하는 단계; 및
    상기 시리얼 데이터 링크에 대한 상기 플로우-제어를 표명 해제한 후에 상기 와이어로부터 데이터를 수신하는 단계를 포함하는, 수신 디바이스에서 수행되는 방법.
  19. 제 18 항에 있어서,
    상기 시리얼 데이터 링크에 대한 상기 플로우-제어를 표명 해제하는 단계는:
    상기 제 2 기간이 경과한 후에 상기 와이어 상에서 펄스를 송신하는 단계로서, 상기 펄스는 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 지속기간을 갖는, 상기 펄스를 송신하는 단계를 포함하는, 수신 디바이스에서 수행되는 방법.
  20. 제 18 항에 있어서,
    상기 시리얼 데이터 링크에 대한 상기 플로우-제어가 표명되는 동안의 제 3 기간을 선택하는 단계; 및
    상기 제 3 기간의 지속기간에 기초하여 상기 제 2 기간을 계산하는 단계를 더 포함하는, 수신 디바이스에서 수행되는 방법.
  21. 제 18 항에 있어서,
    상기 제 1 기간이 만료하였을 때 상기 시리얼 데이터 링크에 대한 플로우-제어를 표명하는 것을 보류하는 단계를 더 포함하는, 수신 디바이스에서 수행되는 방법.
  22. 제 18 항에 있어서,
    상기 시리얼 데이터 링크에 대한 플로우-제어가 표명되지 않는다고 결정하는 단계;
    상기 시리얼 데이터 링크에 대한 플로우-제어가 표명되지 않는다고 결정한 후에 상기 제 2 전압 레벨로의 상기 와이어의 트랜지션이 상기 제 1 기간 동안 발생할 때 에러 조건을 결정하는 단계; 및
    상기 에러 조건이 결정될 때 제 1 전압 레벨로 상기 와이어를 구동시키는 단계를 더 포함하는, 수신 디바이스에서 수행되는 방법.
  23. 제 22 항에 있어서,
    상기 에러 조건이 결정될 때 상기 제 1 전압 레벨로 상기 와이어를 구동시키는 단계는:
    킵퍼 회로를 플립하는 단계를 포함하는, 수신 디바이스에서 수행되는 방법.
  24. 장치로서,
    정지 조건이 시리얼 데이터 링크의 와이어 상에서 표명되었다고 결정하기 위한 수단으로서, 상기 정지 조건은 데이터가 상기 와이어로부터 수신된 후에 상기 와이어가 제 1 전압 레벨로 구동될 때 개시되는 제 1 기간 동안 지속되는, 상기 정지 조건이 표명되었다고 결정하기 위한 수단;
    플로우-제어 시그널링을 제공하기 위한 수단으로서:
    플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 제 2 기간 동안 제 2 전압 레벨로 상기 와이어를 구동시키는 것에 의해 상기 시리얼 데이터 링크에 대한 플로우-제어를 표명하고;
    상기 제 2 기간이 종료된 때 상기 제 1 전압 레벨로 상기 와이어를 구동시키는 것을 포함하여, 상기 시리얼 데이터 링크에 대한 상기 플로우-제어를 표명 해제하도록 구성되는, 상기 플로우-제어 시그널링을 제공하기 위한 수단; 및
    상기 플로우-제어가 상기 시리얼 데이터 링크에 대해 표명 해제된 후에 상기 와이어로부터 데이터를 수신하기 위한 수단을 포함하는, 장치.
  25. 제 24 항에 있어서,
    상기 플로우-제어 시그널링을 제공하기 위한 수단은:
    상기 제 2 기간이 경과한 후에 상기 와이어 상에서 펄스를 송신하도록 구성되고, 상기 펄스는 플로우-제어 펄스들에 대해 정의된 최소 기간을 초과하는 지속기간을 갖는, 장치.
  26. 제 24 항에 있어서,
    상기 플로우-제어 시그널링을 제공하기 위한 수단은:
    상기 시리얼 데이터 링크에 대한 플로우-제어가 표명되는 동안의 제 3 기간을 선택하고; 그리고
    상기 제 3 기간의 지속기간에 기초하여 상기 제 2 기간을 계산하도록 구성되는, 장치.
  27. 제 24 항에 있어서,
    상기 플로우-제어 시그널링을 제공하기 위한 수단은:
    상기 제 1 기간이 만료하였을 때 상기 시리얼 데이터 링크에 대한 플로우-제어를 표명하는 것을 보류하도록 구성되는, 장치.
  28. 제 24 항에 있어서,
    상기 시리얼 데이터 링크 상에서 시그널링 에러들을 수정하기 위한 수단으로서:
    상기 시리얼 데이터 링크에 대한 플로우-제어가 표명되지 않는다고 결정하고; 그리고
    상기 시리얼 데이터 링크에 대한 플로우-제어가 표명되지 않는다고 결정한 후에 상기 제 2 전압 레벨로의 상기 와이어의 트랜지션이 상기 제 1 기간 동안 발생할 때 에러 조건이 발생하였다고 결정하도록 구성되는, 상기 시그널링 에러들을 수정하기 위한 수단을 더 포함하고,
    상기 플로우-제어 시그널링을 제공하기 위한 수단은 상기 에러 조건이 발생이 결정될 때 상기 제 1 전압 레벨로 상기 와이어를 구동시키도록 구성되는, 장치.
  29. 제 28 항에 있어서,
    상기 플로우-제어 시그널링을 제공하기 위한 수단은 상기 에러 조건의 발생이 결정될 때 킵퍼 회로를 플립하도록 구성되는, 장치.
  30. 제 24 항에 있어서,
    상기 와이어로부터 데이터를 수신하기 위한 수단은 상기 시리얼 데이터 링크가 동기식으로 동작될 때 데이터를 수신하도록 구성가능한, 장치.
KR1020187031724A 2016-05-10 2017-05-09 라인 멀티플렉싱된 uart 플로우 제어를 위한 디지털 시그널링 방식들 KR20190006487A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201662334141P 2016-05-10 2016-05-10
US62/334,141 2016-05-10
US201762502503P 2017-05-05 2017-05-05
US62/502,503 2017-05-05
US15/589,805 2017-05-08
US15/589,805 US20170329738A1 (en) 2016-05-10 2017-05-08 Digital signaling schemes for line multiplexed uart flow control
PCT/US2017/031802 WO2017196875A1 (en) 2016-05-10 2017-05-09 Digital signaling schemes for line multiplexed uart flow control

Publications (1)

Publication Number Publication Date
KR20190006487A true KR20190006487A (ko) 2019-01-18

Family

ID=58772637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187031724A KR20190006487A (ko) 2016-05-10 2017-05-09 라인 멀티플렉싱된 uart 플로우 제어를 위한 디지털 시그널링 방식들

Country Status (9)

Country Link
US (1) US20170329738A1 (ko)
EP (1) EP3423950B1 (ko)
JP (1) JP2019517066A (ko)
KR (1) KR20190006487A (ko)
CN (1) CN109074339A (ko)
AU (1) AU2017264691A1 (ko)
BR (1) BR112018073048A2 (ko)
TW (1) TW201743572A (ko)
WO (1) WO2017196875A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649946B1 (en) * 2019-01-15 2020-05-12 Nxp Usa, Inc. Fast link turnaround using MIPI D-PHY
DE102019126668A1 (de) * 2019-10-02 2021-04-08 Phoenix Contact Gmbh & Co. Kg Ein-/ausgabe-einheit zur datenerfassung bei einem feldbussystem
CN111338856A (zh) * 2020-02-21 2020-06-26 深圳震有科技股份有限公司 一种串口硬件流控实现方法、智能终端及存储介质
CN112003775B (zh) * 2020-07-27 2022-02-18 苏州浪潮智能科技有限公司 一种单电平单线全双工总线通信方法和系统
US11204887B1 (en) * 2020-11-24 2021-12-21 Texas Instruments Incorporated Methods and systems for using UART and single wire protocols
CN115361345B (zh) * 2022-10-24 2023-01-24 北京智芯微电子科技有限公司 一种基于单总线信息传输的数据流控方法、装置及通信系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643717B1 (en) * 1999-11-10 2003-11-04 Digi International Inc. Flow control
EP1237090A1 (en) * 2001-02-28 2002-09-04 Alcatel Serial peripheral interface master device, a serial peripheral interface slave device and a serial peripheral interface
US7260660B1 (en) * 2004-05-21 2007-08-21 Zilog, Inc. Flow control by supplying a remote start bit onto a single-wire bus
US7127538B1 (en) * 2004-05-21 2006-10-24 Zilog, Inc. Single-pin serial communication link with start-bit flow control
US7707441B2 (en) * 2004-10-22 2010-04-27 Broadcom Corporation Method and system for reducing power consumption of handsets through UART auto flow control
TWI334547B (en) * 2007-06-07 2010-12-11 Via Tech Inc System and method for serial peripheral interface data transmission
DE102010055618A1 (de) * 2010-12-22 2012-06-28 Austriamicrosystems Ag Eingangsschaltungsanordnung, Ausgangsschaltungsanordnung und System mit einer Eingangs- und einer Ausgangsschaltungsanordnung
US9497710B2 (en) * 2013-11-25 2016-11-15 Qualcomm Incorporated Multipoint interface shortest pulse width priority resolution
US9563398B2 (en) * 2015-03-06 2017-02-07 Qualcomm Incorporated Impedance-based flow control for a two-wire interface system with variable frame length

Also Published As

Publication number Publication date
AU2017264691A1 (en) 2018-10-25
TW201743572A (zh) 2017-12-16
EP3423950A1 (en) 2019-01-09
EP3423950B1 (en) 2019-08-07
JP2019517066A (ja) 2019-06-20
WO2017196875A1 (en) 2017-11-16
BR112018073048A2 (pt) 2019-02-26
US20170329738A1 (en) 2017-11-16
CN109074339A (zh) 2018-12-21

Similar Documents

Publication Publication Date Title
KR20190006487A (ko) 라인 멀티플렉싱된 uart 플로우 제어를 위한 디지털 시그널링 방식들
US10482055B2 (en) Hardware event priority sensitive programmable transmit wait-window for virtual GPIO finite state machine
US10635630B2 (en) Flexible protocol and associated hardware for one-wire radio frequency front-end interface
US9971666B2 (en) Technique of link state detection and wakeup in power state oblivious interface
KR20180121531A (ko) 최적의 퍼포먼스 및 전력 절약을 위한 적응적 주변 컴포넌트 상호접속 익스프레스 링크 하위상태 개시
KR20180092969A (ko) 메시징을 위한 최적의 레이턴시 패킷화기 유한 상태 머신 및 입력/출력 트랜스퍼 인터페이스들
EP3411999A1 (en) Unidirectional clock signaling in a high-speed serial link
KR20180017035A (ko) 50 나노초 스파이크 필터를 위한 테스트
US10838898B2 (en) Bit-interleaved bi-directional transmissions on a multi-drop bus for time-critical data exchange
US10579549B2 (en) Staggered transmissions on a multi-drop half-duplex bus
US11023409B2 (en) MIPI D-PHY receiver auto rate detection and high-speed settle time control
US20190171609A1 (en) Non-destructive outside device alerts for multi-lane i3c
KR20180092972A (ko) 하드웨어 플로우-제어를 갖는 강화된 직렬 주변장치 인터페이스
US10572438B1 (en) Dynamic optimal data sampling time on a multi-drop bus
WO2019050773A1 (en) ULTRA SHORT DATAGRAMS FOR LATENCY-SENSITIVE RADIO FREQUENCY FRONT DEVICE
US20180181532A1 (en) Data transfer ending in phase differential modes
US10684981B2 (en) Fast termination of multilane single data rate transactions
US20190377701A1 (en) Vector decoding in time-constrained double data rate interface
US20170329737A1 (en) Two-wire line-multiplexed uart to four-wire high-speed uart bridging with integrated flow control
US20170371830A1 (en) Accelerated i3c master stop
US20190171611A1 (en) Protocol-framed clock line driving for device communication over master-originated clock line
WO2018226505A1 (en) Error correction calculation upon serial bus abort
US11023408B2 (en) I3C single data rate write flow control
US10572439B1 (en) I3C read from long latency devices
WO2019112709A1 (en) Super-speed uart with per-frame bit-rate and independent variable upstream and downstream rates

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application