KR20180092972A - 하드웨어 플로우-제어를 갖는 강화된 직렬 주변장치 인터페이스 - Google Patents

하드웨어 플로우-제어를 갖는 강화된 직렬 주변장치 인터페이스 Download PDF

Info

Publication number
KR20180092972A
KR20180092972A KR1020187016215A KR20187016215A KR20180092972A KR 20180092972 A KR20180092972 A KR 20180092972A KR 1020187016215 A KR1020187016215 A KR 1020187016215A KR 20187016215 A KR20187016215 A KR 20187016215A KR 20180092972 A KR20180092972 A KR 20180092972A
Authority
KR
South Korea
Prior art keywords
slave
voltage state
select line
slave select
line
Prior art date
Application number
KR1020187016215A
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 KR20180092972A publication Critical patent/KR20180092972A/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/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
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Power Sources (AREA)

Abstract

직렬 주변장치 인터페이스를 통해 커플링된 디바이스들 사이에 하드웨어 플로우 제어를 구현하기 위한 시스템들, 방법들, 및 장치들. 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법은, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트함으로써 직렬 주변장치 인터페이스 버스의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하는 단계, 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안, 직렬 주변장치 인터페이스 버스를 통해 데이터 및 클럭 신호들을 송신하는 단계, 슬레이브 선택 라인이 제 2 제 1 전압 상태로 천이할 때, 직렬 주변장치 인터페이스 버스를 통해 데이터 및 클럭 신호들을 송신하는 것을 자제하는 단계, 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안, 슬레이브 디바이스에서 수신 버퍼 내로 데이터를 수신하는 단계, 및, 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때, 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트하는 단계를 포함한다.

Description

하드웨어 플로우-제어를 갖는 강화된 직렬 주변장치 인터페이스
관련 출원들에 대한 상호 참조
본 출원은 2015년 12월 10일자로 미국 특허청에 출원된 가출원 제 62/265,877 호 및 2016년 11월 10일자로 미국 특허청에 출원된 비가출원 제 15/348,435 호의 이익 및 우선권을 주장하며, 그 전체 내용을 본원에서는 참조로서 포함한다.
기술 분야
본 개시는 일반적으로 직렬 주변장치 인터페이스의 동작에 관한 것이고, 보다 상세하게는, 직렬 주변장치 인터페이스에서의 하드웨어 플로우 제어의 구현에 관한 것이다.
모바일 통신 디바이스들은 회로 기판들, 집적 회로 (IC) 디바이스들 및/또는 시스템-온-칩 (SoC) 디바이스들을 포함하는 여러 컴포넌트들을 포함할 수도 있다. 컴포넌트들은 직렬 버스를 통하여 통신하는 프로세싱 디바이스들, 사용자 인터페이스 컴포넌트들, 스토리지 및 다른 주변 컴포넌트들을 포함할 수도 있다. 프로세서와 다양한 주변장치 디바이스들 사이에 동기적 직렬 통신을 제공하기 위해 모바일 통신 디바이스들에 통상적으로 포함되는 직렬 주변장치 인터페이스 (serial peripheral interface; SPI) 를 포함하는 범용 직렬 인터페이스들이 산업계에 알려져 있다.
하나의 예에서, SoC 는 슬레이브 SPI 디바이스들로서 구성된 주변장치 디바이스들에 SPI 버스를 통해 커플링된 SPI 마스터 디바이스로서 동작한다. 마스터 디바이스는 SPI 버스의 클럭 라인 상에 클럭 신호를 제공하고, 여기서, 클럭 신호는 마스터 및 슬레이브 디바이스들 사이의 동기적 직렬 데이터 교환들을 제어한다. 데이터는 SPI 버스의 2 이상의 데이터 라인들을 이용하여 통신될 수도 있다. 데이터 라인들의 하나 이상은 다수의 슬레이브 디바이스들에 의해 공유될 수도 있기 때문에, SPI 버스는 공유된 데이터 라인들에 대한 액세스를 제어하기 위해 각각의 슬레이브 디바이스에 대해 슬레이브 선택 라인을 제공한다.
SPI 버스를 채용하는 종래의 시스템들은 소프트웨어-기반 플로우 제어를 구현할 수도 있고, 이는 통신 링크에 레이턴시를 도입한다. 레이턴시들은, NOR-FLASH 스토리지에 대해 SPI 인터페이스를 통해 구현되는 바와 같은 XIP (execute in place) 방법을 이용한 디스플레이-중첩된 터치 인터페이스 또는 시스템들을 위해 사용되는 바와 같은 인터페이스들에서 문제가 될 수 있다. 계속 증가하는 링크 스루풋 및 고속-응답 플로우 제어 요건들은 현재의 SPI 인터페이스 기술들이 만족시키기가 점점 더 어려워지고 있다.
모바일 통신 디바이스들이 더 큰 레벨의 기능성을 계속해서 포함하고 있기 때문에, 개선된 직렬 통신 기술들이 주변장치들과 애플리케이션 프로세서들 사이에서 로우 레이턴시 송신들을 지원하는데 필요하다.
본 개시의 특정 양태들은 SPI 버스를 이용하여 마스터 디바이스 (master device) 에 커플링된 슬레이브 디바이스들 (slave devices) 에 대해 최적화된 로우-레이턴시 하드웨어 플로우-제어를 제공할 수 있는 시스템들, 장치들, 방법들 및 기법들에 관한 것이다. 하드웨어 플로우-제어는 슬레이브 디바이스 또는 마스터 디바이스 상에 추가적인 핀들을 할당함이 없이 구현될 수도 있다.
본 개시의 다양한 양태들에서, 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법은: 마스터 디바이스에서, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트함으로써 직렬 주변장치 인터페이스 버스의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하는 단계; 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안, 직렬 주변장치 인터페이스 버스를 통해 마스터 디바이스로부터 데이터 및 클럭 신호를 송신하는 단계; 슬레이브 선택 라인이 제 1 전압 상태로부터 제 2 전압 상태로 천이할 때, 직렬 주변장치 인터페이스 버스를 통해 마스터 디바이스로부터 데이터 및 클럭 신호를 송신하는 것을 자제하는 단계; 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안, 슬레이브 디바이스에서 수신 버퍼 내로 데이터를 수신하는 단계; 및, 수신 버퍼의 점유 (occupancy) 가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때, 슬레이브 디바이스에 의해, 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트하는 단계를 포함한다.
일부 양태들에서, 마스터 디바이스는 고 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 1 드라이버 회로를 가지고, 슬레이브 디바이스는 저 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 2 드라이버 회로를 갖는다. 제 1 드라이버 회로 및 제 2 드라이버 회로의 임피던스들은, 고 임피던스 출력이 슬레이브 선택 라인을 제 1 전압 상태로 구동하기 위해 시도하고 있을 때 저 임피던스 출력이 슬레이브 선택 라인을 제 2 전압 상태로 구동하기 위해 인에이블되도록 선택되고, 그리고 그 역도 성립된다.
일부 양태들에서, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하는 단계는, 마스터 디바이스의 라인 드라이버로 하여금 슬레이브 선택 라인을 제 1 전압 상태를 향해 구동하게 하는 것, 및, 마스터 디바이스의 라인 드라이버로 하여금 슬레이브 선택 라인이 제 1 전압 상태를 달성할 때 개방-회로 동작 모드에 진입하게 하는 것을 포함한다. 마스터 디바이스는, 라인 드라이버가 개방-회로 동작 모드에 진입한 후에 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성된 키퍼 회로 (keeper circuit) 를 포함할 수도 있다.
하나의 양태에서, 방법은, 슬레이브 디바이스가 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트한 후에, 수신 버퍼의 점유가 임계 점유 레벨 미만으로 떨어질 때, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트 (assert) 하기 위해 슬레이브 디바이스의 라인 드라이버를 이용하는 단계를 포함할 수도 있다.
일부 양태들에서, 방법은, 슬레이브 디바이스에서 수신 버퍼의 점유를 모니터링하는 단계, 슬레이브 선택 라인의 전압 상태를 모니터링하는 단계, 및, 슬레이브 선택 라인의 전압 상태가 제 1 전압 상태에 있고 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 슬레이브 디바이스의 라인 드라이버 회로로 하여금 슬레이브 선택 라인을 제 2 전압 상태로 구동하게 하는 단계를 포함한다. 방법은, 라인 드라이버 회로로 하여금 제 2 전압 상태를 어서트하게 한 후에 그리고 점유가 임계 점유 레벨 미만의 레벨로 떨어진 후에, 슬레이브 선택 라인을 제 1 전압 상태로 복귀시키는 단계를 포함할 수도 있다.
본 개시의 다양한 양태들에서, 장치는, 멀티-라인 (multi-line) 직렬 주변장치 인터페이스 버스, 직렬 주변장치 인터페이스 버스에 커플링된 마스터 디바이스 및 직렬 주변장치 인터페이스 버스에 커플링된 슬레이브 디바이스를 가지고, 여기서, 슬레이브 디바이스는 수신 버퍼를 갖는다. 마스터 디바이스는, 직렬 주변장치 인터페이스 버스의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하기 위해 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하도록 구성될 수도 있다. 마스터 디바이스는, 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안, 직렬 주변장치 인터페이스 버스의 클럭 라인을 통해 클럭 신호를 송신하도록 구성될 수도 있다. 데이터의 교환은 클럭 신호와 동기화될 수도 있다. 마스터 디바이스는, 슬레이브 선택 라인이 제 2 전압 상태에 있는 동안, 하나 이상의 데이터 라인들을 통해 데이터를 송신하는 것을 자제하도록 구성될 수도 있다. 슬레이브 디바이스는, 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안 수신 버퍼 내로 데이터를 수신하고, 그리고, 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트하도록 구성될 수도 있다.
일부 양태들에서, 마스터 디바이스는 고 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 1 드라이버 회로를 포함하고, 슬레이브 디바이스는 저 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 2 드라이버 회로를 포함한다. 제 1 드라이버 회로 및 제 2 드라이버 회로의 임피던스들은, 고 임피던스 출력이 슬레이브 선택 라인을 제 1 전압 상태로 구동하기 위해 시도하고 있을 때 저 임피던스 출력이 슬레이브 선택 라인을 제 2 전압 상태로 구동하기 위해 인에이블되도록, 선택될 수도 있다.
일부 양태들에서, 마스터 디바이스는, 라인 드라이버로 하여금 슬레이브 선택 라인을 제 1 전압 상태를 향해 구동하게 하는 것, 및, 라인 드라이버로 하여금 슬레이브 선택 라인이 제 1 전압 상태를 달성할 때 개방-회로 동작 모드에 진입하게 하는 것에 의해, 제 1 전압 상태를 어서트하도록 구성될 수도 있다. 마스터 디바이스는, 라인 드라이버가 개방-회로 동작 모드에 진입한 후에 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성된 키퍼 회로를 포함할 수도 있다.
하나의 양태에서, 슬레이브 디바이스는, 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트한 후에, 그리고 수신 버퍼의 점유가 임계 점유 레벨 미만으로 떨어질 때, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하도록 구성된다.
일부 양태들에서, 슬레이브 디바이스는, 수신 버퍼의 점유를 모니터링하고, 슬레이브 선택 라인의 전압 상태를 모니터링하며, 그리고, 슬레이브 선택 라인의 전압 상태가 제 1 전압 상태에 있고 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 라인 드라이버 회로로 하여금 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트하게 하도록 구성된 플로우 제어 결정 회로를 포함한다. 플로우 제어 결정 회로는, 라인 드라이버 회로로 하여금 제 2 전압 상태를 어서트하게 한 후에 그리고 점유가 임계 점유 레벨 미만의 레벨로 떨어진 후에, 라인 드라이버 회로로 하여금 슬레이브 선택 라인을 제 1 전압 상태로 복귀시키게 하도록 구성될 수도 있다.
본 개시의 다양한 양태들에서, 장치는, 직렬 주변장치 인터페이스 버스의 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하는 수단, 직렬 주변장치 인터페이스 버스를 통해 데이터 및 클럭 신호를 송신하는 수단을 포함한다. 제 1 전압 상태는 직렬 주변장치 인터페이스 버스의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하기 위해 슬레이브 선택 라인 상에서 어서트될 수도 있다. 데이터 및 클럭 신호를 송신하는 수단은, 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안, 마스터 디바이스로부터 슬레이브 디바이스로 데이터를 송신하고, 그리고, 슬레이브 선택 라인이 제 1 전압 상태로부터 제 2 전압 상태로 천이될 때, 마스터 디바이스로부터 슬레이브 디바이스로 데이터를 송신하는 것을 자제하도록 구성될 수도 있다. 슬레이브 디바이스는, 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안 수신 버퍼 내로 데이터를 수신하고, 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트하도록 구성될 수도 있다.
일부 양태들에서, 마스터 디바이스는 고 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 1 드라이버 회로를 포함할 수도 있고, 슬레이브 디바이스는 저 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 2 드라이버 회로를 포함할 수도 있다. 제 1 드라이버 회로 및 제 2 드라이버 회로의 임피던스들은, 고 임피던스 출력이 슬레이브 선택 라인을 제 1 전압 상태로 구동하기 위해 시도하고 있을 때 저 임피던스 출력이 슬레이브 선택 라인을 제 2 전압 상태로 구동하기 위해 인에이블되도록, 선택될 수도 있다.
일부 양태들에서, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하는 수단은, 마스터 디바이스의 라인 드라이버로 하여금 슬레이브 선택 라인을 제 1 전압 상태를 향해 구동하게 하고, 그리고, 마스터 디바이스의 라인 드라이버로 하여금 슬레이브 선택 라인이 제 1 전압 상태를 달성할 때 개방-회로 동작 모드에 진입하게 하도록 구성될 수도 있다. 마스터 디바이스는, 라인 드라이버가 개방-회로 동작 모드에 진입한 후에 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성된 키퍼 회로를 포함할 수도 있다.
일부 양태들에서, 슬레이브 디바이스는, 슬레이브 디바이스에서 수신 버퍼의 점유를 모니터링하고, 슬레이브 선택 라인의 전압 상태를 모니터링하며, 그리고, 슬레이브 선택 라인의 전압 상태가 제 1 전압 상태에 있고 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 슬레이브 선택 라인을 제 2 전압 상태로 구동하도록 구성될 수도 있다. 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하는 수단은, 슬레이브 디바이스가 슬레이브 선택 라인을 구동하는 것을 중지한 후에 슬레이브 선택 라인을 제 1 전압 상태로 복귀시키도록 구성될 수도 있다.
다양한 양태들에서, 직렬 주변장치 인터페이스에 커플링된 슬레이브 디바이스는, 직렬 주변장치 인터페이스의 슬레이브 선택 라인에 커플링된 수신 회로, 저 임피던스로 직렬 주변장치 인터페이스의 슬레이브 선택 라인을 구동하도록 구성된 라인 드라이버, 직렬 주변장치 인터페이스로부터 데이터를 수신하도록 구성된 수신 버퍼, 및, 플로우 제어 로직을 갖는다. 플로우 제어 로직은, 직렬 주변장치 인터페이스를 통해 통신하기 위해 슬레이브 디바이스가 선택되는 때를 결정하기 위해 수신 회로의 출력을 모니터링하고, 슬레이브 디바이스에서의 수신 버퍼의 점유를 모니터링하며, 그리고, 슬레이브 디바이스가 통신을 위해 선택되고 수신 버퍼의 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 라인 드라이버로 하여금 슬레이브 선택 라인을 제 2 전압 레벨로 구동하게 하도록 구성될 수도 있다. 슬레이브 디바이스는 슬레이브 선택 라인이 제 1 전압 레벨에 있을 때 통신을 위해 선택될 수도 있다.
하나의 양태에서, 플로우 제어 로직은, 수신 버퍼의 점유가 임계 점유 레벨 미만의 레벨로 떨어진 후에, 슬레이브 선택 라인을 제 1 전압 상태로 복귀시키게 하도록 구성될 수도 있다. 라인 드라이버는, 슬레이브 선택 라인을 제 1 전압 상태로 구동하기 위해 마스터 디바이스에 의해 사용되는 드라이버의 출력 임피던스보다 더 낮은 출력 임피던스로 슬레이브 선택 라인을 제 2 전압 레벨로 구동하도록 구성될 수도 있다.
일부 양태들에서, 플로우 제어 로직은, 수신 버퍼의 점유가 임계 점유 레벨 미만의 레벨에 있을 때, 저 임피던스로 슬레이브 선택 라인을 구동하도록 라인 드라이버를 구성하고, 그리고, 수신 버퍼의 점유가 임계 점유 레벨 미만의 레벨에 있을 때, 개방-회로 동작 모드에 진입하도록 라인 드라이버를 구성하도록, 적응될 수도 있다. 플로우 제어 로직은, 라인 드라이버로 하여금 개방-회로 동작 모드에 진입하기 전에 슬레이브 선택 라인을 제 1 전압 레벨로 구동하게 하도록 구성될 수도 있다. 키퍼 회로는, 라인 드라이버가 개방-회로 동작 모드에 진입한 후에, 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성될 수도 있다.
본 개시의 다양한 양태들에서, 프로세서 판독가능 저장 매체가 개시된다. 저장 매체는 비일시적 저장 매체일 수도 있고, 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트함으로써 직렬 주변장치 인터페이스 버스의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하게 하고, 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안, 직렬 주변장치 인터페이스 버스를 통해 마스터 디바이스로부터 데이터 및 클럭 신호를 송신하게 하며, 슬레이브 선택 라인이 제 1 전압 상태로부터 제 2 전압 상태로 천이할 때, 직렬 주변장치 인터페이스 버스를 통해 마스터 디바이스로부터 데이터 및 클럭 신호를 송신하는 것을 자제하게 하는 코드를 저장할 수도 있다. 데이터는 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안, 슬레이브 디바이스에서 수신 버퍼 내로 수신될 수도 있고, 슬레이브 디바이스는, 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때, 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트하도록 구성될 수도 있다.
일부 양태들에서, 마스터 디바이스는 고 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 1 드라이버 회로를 포함할 수도 있다. 슬레이브 디바이스는 저 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 2 드라이버 회로를 포함할 수도 있다. 제 1 드라이버 회로 및 제 2 드라이버 회로의 임피던스들은, 고 임피던스 출력이 슬레이브 선택 라인을 제 1 전압 상태로 구동하기 위해 시도하고 있을 때 저 임피던스 출력이 슬레이브 선택 라인을 제 2 전압 상태로 구동하기 위해 인에이블되도록 선택될 수도 있다.
일부 양태들에서, 제 1 전압 상태는, 마스터 디바이스의 라인 드라이버로 하여금 슬레이브 선택 라인을 제 1 전압 상태를 향해 구동하게 하는 것, 및, 마스터 디바이스의 라인 드라이버로 하여금 슬레이브 선택 라인이 제 1 전압 상태를 달성할 때 개방-회로 동작 모드에 진입하게 하는 것에 의해, 슬레이브 선택 라인 상에서 어서트될 수도 있다. 마스터 디바이스는, 라인 드라이버가 개방-회로 동작 모드에 진입한 후에 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성된 키퍼 회로를 포함할 수도 있다.
일부 양태들에서, 슬레이브 디바이스는, 슬레이브 디바이스가 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트한 후에, 수신 버퍼의 점유가 임계 점유 레벨 미만으로 떨어질 때 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하기 위해 라인 드라이버를 이용할 수도 있다. 슬레이브 디바이스는, 슬레이브 디바이스에서 수신 버퍼의 점유를 모니터링하고, 슬레이브 선택 라인의 전압 상태를 모니터링하며, 슬레이브 선택 라인의 전압 상태가 제 1 전압 상태에 있고 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 슬레이브 선택 라인을 제 2 전압 상태로 구동하도록 구성될 수도 있다. 슬레이브 선택 라인은, 슬레이브 디바이스가 제 2 전압 상태를 어서트한 후에 그리고 점유가 임계 점유 레벨 미만의 레벨로 떨어진 후에, 제 1 전압 상태로 복귀될 수도 있다.
도 1 은 복수의 이용가능한 표준들 중 하나에 따라 선택적으로 동작되는 IC 디바이스들 사이의 데이터 링크를 채택하는 장치를 예시한다.
도 2 는 본원에 개시된 특정 양태들에 따라 구성될 수도 있는 2-데이터라인 직렬 주변장치 인터페이스의 특정 양태들을 예시한다.
도 3 은 본원에 개시된 특정 양태들에 따라 구성될 수도 있는 쿼드-직렬 주변장치 인터페이스의 특정 양태들을 예시한다.
도 4 는 본원에 개시된 특정 양태들에 따라 하드웨어 플로우 제어를 제공하도록 구성된 2-데이터라인 직렬 주변장치 인터페이스를 예시한다.
도 5 는 본원에 개시된 특정 양태들에 따라 하드웨어 플로우 제어를 제공하기 위해 사용될 수도 있는 라인 구동 회로들의 일 예를 나타낸다.
도 6 은 본원에 개시된 특정 양태들에 따라 구현될 수도 있는 플로우 제어의 제 1 예를 나타낸다.
도 7 은 본원에 개시된 특정 양태들에 따라 구현될 수도 있는 플로우 제어의 제 2 예를 나타낸다.
도 8 은 본원에 개시된 특정 양태들에 따라 적응될 수도 있는 프로세싱 회로를 채택하는 장치의 하나의 예를 나타낸다.
도 9 는 본원에 개시된 특정 양태들에 따라 슬레이브 디바이스들로 하여금 다수의 동적 어드레스들을 획득하게 하도록 적응된 애플리케이션 프로세서의 특정 동작들을 나타내는 플로우차트이다.
도 10 은 본원에 개시된 특정 양태들에 따라 다수의 동작 어드레스들에 응답하도록 적응된 장치에 대한 하드웨어 구현의 제 1 예를 나타낸다.
첨부된 도면들과 연계하여 하기에 설명되는 상세한 설명은, 여러 구성들의 설명으로서 의도된 것이며 본원에서 설명되는 개념들이 실시될 수도 있는 구성들만을 나타내도록 의도된 것은 아니다. 상세한 설명은 여러 개념들의 철저한 이해를 제공하기 위한 목적으로 특정 세부사항들을 포함한다. 그러나, 이들 개념들이 이들 특정 세부사항들 없이 실시될 수도 있음이 당업자에게는 명백할 것이다. 몇몇 경우들에서, 이러한 개념들을 모호하게 하는 것을 방지하기 위해 공지의 구조들 및 컴포넌트들이 블록도의 형태로 도시된다.
이하, 발명의 수개의 양태들은 여러 장치들 및 방법들을 참조로 제시될 것이다. 이들 장치들 및 방법들은 다음의 상세한 설명에서 설명되며, 여러 블록들, 모듈들, 컴포넌트들, 회로들, 단계들, 프로세스들, 알고리즘들 등 (이하, 총괄하여 "엘리먼트들" 이라 지칭됨) 에 의해 첨부된 도면들에 예시된다. 이들 엘리먼트들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합을 이용하여 구현될 수도 있다. 이러한 엘리먼트들이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다.
개관
다수의 SoC 를 포함하는 디바이스들 및 다른 IC 디바이스들은 종종 모뎀들 및 다른 주변장치들과 프로세서들을 접속하도록 직렬 버스를 채택한다. 직렬 버스는 다수의 프로토콜들에 따라 동작될 수도 있다. 하나의 예에서, 직렬 주변장치 인터페이스 (SPI) 는 데이터 및 클럭 신호들을 지원하는 버스에 커플링된 다수의 디바이스들을 상호접속하기 위해 사용될 수도 있다. 마스터 디바이스는 슬레이브 선택 라인을 이용하여 다수의 슬레이브 디바이스들 중 하나를 선택한다. 포인트-대-포인트 통신은 마스터 디바이스와 선택된 슬레이브 디바이스 사이에서 행해진다. 다양한 예들에서, SPI 버스는 2-데이터라인 SPI 인터페이스로서 또는 4-데이터라인 쿼드-직렬 주변장치 인터페이스 (QSPI) 로서 구성될 수도 있다. 2-데이터라인 SPI 에서, 데이터 라인들은 단방향인 한편, QSPI 에서, 데이터 라인들은 양방향일 수도 있다. QSPI 는 2-데이터라인 SPI 보다 더 높은 데이터 레이트들을 제공할 수 있다. 양 SPI 유형들은 모든 슬레이브들에 걸친 전용 클럭 라인을 이용한다. 양 SPI 유형들은 전용 슬레이브 선택 라인들을 이용하고, 마스터 디바이스는, 마스터 디바이스가 커플링되는 슬레이브 디바이스 당 적어도 하나의 슬레이브 선택을 제공한다.
본원에 개시된 특정 양태들에 따르면, SPI 에 커플링된 디바이스들은 마스터 및 슬레이브 디바이스들에 핀들을 추가함이 없이 물리적 링크-레벨 하드웨어 플로우 제어를 제공하도록 구성될 수도 있다. 일부 경우들에서, 마스터 및 슬레이브 디바이스들 상의 슬레이브 선택 라인들은 플로우-제어 신호로서 기능하도록 슬레이브 선택 신호의 사용을 허용하도록 구성될 수도 있다. 이 기법들은 슬레이브 선택 라인이 액티브 로우 (active low) 또는 액티브 하이 (active high) 일 때 적용가능하다.
직렬 데이터 링크들을 채택하는 장치의 예들
특정 양태들에 따르면, 직렬 데이터 링크는 장치, 이를 테면, 셀룰라 폰, 스마트폰, 세션 개시 프로토콜 (SIP) 폰, 랩톱, 노트북, 넷북, 스마트북, 개인 휴대 정보 단말기 (PDA), 위성 라디오, 글로벌 포지셔닝 시스템 (GPS) 디바이스, 스마트 홈 디바이스, 인텔리전스 라이팅, 멀티미디어 디바이스, 비디오 디바이스, 디지털 오디오 플레이어 (예를 들어, MP3 플레이어), 카메라, 게임 콘솔, 엔터테인먼트 디바이스, 차량 컴포넌트, 웨어러블 컴퓨팅 디바이스 (예를 들어, 스마트 워치, 헬스 또는 피트니스 트랙커, 아이웨어 등), 가전기기, 센서, 보안 디바이스, 벤딩 머신, 스마트 미터, 드론, 멀티코퍼, 또는 임의의 다른 유사한 기능의 디바이스의 서브컴포넌트들인 전자 디바이스들을 상호접속하는데 이용될 수도 있다.
도 1 은 데이터 통신 버스를 채택할 수도 있는 장치 (100) 의 일 예를 예시한다. 장치 (100) 는 다수의 회로들 또는 디바이스들 (104, 106 및/또는 108) 을 갖는 프로세싱 회로 (102) 를 포함할 수도 있다. 이 회로들 또는 디바이스들 (104, 106 및/또는 108) 의 적어도 일부는 하나 이상의 ASIC들 또는 SoC 에서 구현될 수도 있다. 일 예에서, 장치 (100) 는 통신 디바이스일 수도 있고, 프로세싱 회로 (102) 는 ASIC (104) 에 제공된 프로세싱 디바이스, 하나 이상의 주변 디바이스들 (106) 및 장치가 안테나 (124) 를 통하여 무선 액세스 네트워크, 코어 액세스 네트워크, 인터넷 및/또는 다른 네트워크와 통신할 수 있게 하는 트랜시버 (108) 를 포함할 수도 있다.
ASIC (104) 은 하나 이상의 프로세서들 (112), 하나 이상의 모뎀들 (110), 온보드 메모리 (114), 버스 인터페이스 회로 (116), 및/또는 다른 로직 회로들 또는 기능부들을 가질 수도 있다. 프로세싱 회로 (102) 는 하나 이상의 프로세서들 (112) 이 온보드 메모리 (114) 또는 프로세싱 회로 (102) 에 제공된 다른 프로세서 판독가능 스토리지 (122) 에 상주하는 소프트웨어 모듈을 실행하게 하는 API (application programming interface) 를 제공하는 오퍼레이팅 시스템에 의해 제어될 수도 있다. 소프트웨어 모듈은 온보드 메모리 (114) 또는 프로세서 판독가능 스토리지 (122) 에 저장된 명령들 및 데이터를 포함할 수도 있다. ASIC (104) 은 자신의 온보드 메모리 (114), 프로세서 판독가능 스토리지 (122) 및/또는 프로세싱 회로 (102) 외부의 스토리지처리 회로 (102) 외부에 있는 스토리지에 액세스될 수도 있다. 온보드 메모리 (114) 및/또는 프로세서 판독가능 스토리지 (122) 는 ROM (read-only memory) 또는 RAM (random-access memory), EEPROM (electrically erasable programmable read-only memory), 플래시 카드들, 또는 프로세싱 시스템 및 컴퓨팅 플랫폼들에 이용될 수 있는 임의의 메모리 디바이스를 포함할 수도 있다. 프로세싱 회로 (102) 는 장치 (100) 및/또는 프로세싱 회로 (102) 를 구성하고 동작시키는데 이용되는 동작 파라미터들 및 다른 정보를 유지할 수 있는 로컬 데이터베이스 또는 다른 파라미터 스토리지를 포함하거나, 구현하거나, 또는 이들에 액세스할 수도 있다. 로컬 데이터베이스는 레지스터, 데이터베이스 모듈, 플래시 메모리, 자기 매체, EEPROM, 소프트 또는 하드 디스크 등을 이용하여 구현될 수도 있다. 프로세싱 회로 (102) 는 또한, 다른 컴포넌트들 중에서 안테나 (124), 디스플레이 (126), 오퍼레이터 제어부들, 이를 테면 버튼 (128, 130) 및/또는 통합되거나 외부의 키패드 (132) 와 같은 외부 디바이스들에 동작가능하게 커플링될 수도 있다. 사용자 인터페이스 모듈은 전용 통신 링크를 통해 또는 하나 이상의 직렬 데이터 상호 접속부들을 통해, 터치-감지성일 수도 있고 사용자 입력을 수용할 수도 있는 디스플레이 (126), 키패드 (132) 등과 함께 동작하도록 구성될 수도 있다.
프로세싱 회로 (102) 는 특정 디바이스들 (104, 106 및/또는 108) 이 통신할 수 있게 하는 하나 이상의 버스들 (118a, 118b, 120) 을 제공할 수도 있다. 일 예에서, ASIC (104) 은 회로, 카운터, 타이머, 제어 로직 및 다른 구성가능한 회로 또는 모듈의 조합을 포함하는 버스 인터페이스 회로 (116) 를 포함할 수도 있다. 일 예에서, 버스 인터페이스 회로 (116) 는 통신 사양들 또는 프로토콜들에 따라 동작하도록 구성될 수도 있다. 프로세싱 회로 (102) 는 장치 (100) 의 동작을 구성하고 관리하는 전력 관리 기능을 포함하거나 제어할 수도 있다.
직렬 주변장치 인터페이스들의 예들
도 2 는 2-데이터라인 SPI (200) 의 특정 양태들을 나타낸다. 마스터 디바이스 (202) 는 애플리케이션 프로세서, 호스트 프로세서, 또는 장치 또는 시스템의 다른 기능적 컴포넌트로서 기능하는 SoC 에 통합될 수도 있다. 마스터 디바이스 (202) 는 멀티-와이어 버스 (210) 를 통해 다수의 슬레이브 디바이스들 (204, 206, 208) 에 커플링된다. 마스터 디바이스 (202) 는 멀티-와이어 버스 (210) 의 마스터-아웃-슬레이브-인 라인 (MOSI 라인 (216)) 을 통해 슬레이브 디바이스들 (204, 206, 208) 에 데이터를 드라이브한다. 슬레이브 디바이스들 (204, 206, 208) 은 멀티-와이어 버스 (210) 의 공유된 마스터-인-슬레이브-아웃 라인 (MISO 라인 (214)) 을 통해 마스터 디바이스 (202) 에 데이터를 각각 드라이브할 수도 있다.
멀티-와이어 버스 (210) 는 각각의 슬레이브 디바이스 (204, 206, 208) 에 대해 적어도 하나의 슬레이브 선택 라인 (218, 220, 222) 을 포함한다. 예시된 바와 같이, 제 1 슬레이브 선택 라인 (218) (SS1) 은 제 1 슬레이브 디바이스 (204) 에 의한 버스 액세스를 제어하고, 제 2 슬레이브 선택 라인 (220) (SS2) 은 제 2 슬레이브 디바이스 (206) 에 의한 버스 액세스를 제어하며, 제 3 슬레이브 선택 라인 (222) (SS3) 은 제 3 슬레이브 디바이스 (204) 에 의한 버스 액세스를 제어한다. 마스터 디바이스 (202) 는 대응하는 슬레이브 디바이스 (204, 206, 208) 로 하여금 MOSI 라인 (216) 을 통해 데이터를 수신하게 하고, 및/또는, 대응하는 슬레이브 디바이스 (204, 206, 208) 가 MISO 라인 (214) 상에서 송신하도록 허가를 승인하기 위해 슬레이브 선택 라인 (218, 220, 222) 을 어서트할 수도 있다.
하나의 예에서, 슬레이브 선택 라인들 (218, 220, 222) 은 저 전압 레벨이 그 슬레이브 선택 라인들 (218, 220, 222) 에 인가될 때 어서트되지 않고, 슬레이브 선택 라인 (218, 220, 222) 은 그 슬레이브 선택 라인 (218, 220, 222) 을 고 전압 레벨로 (예컨대, 전력 공급 레벨을 향해) 구동함으로써 어서트된다. 다른 예에서, 슬레이브 선택 라인들 (218, 220, 222) 은 고 전압 레벨 (예컨대, 전력 공급 레벨) 이 그 슬레이브 선택 라인들 (218, 220, 222) 에 인가될 때 어서트되지 않고, 슬레이브 선택 라인 (218, 220, 222) 은 그 슬레이브 선택 라인 (218, 220, 222) 을 저 전압 레벨로 구동함으로써 어서트된다. 각각의 슬레이브 선택 라인 (218, 220, 222) 에 대해, 마스터 디바이스 (202) 에서의 드라이버는 슬레이브 선택 라인 (218, 220, 222) 에 대해 소망되는 어서션 상태 (assertion state) 에 기초하여 슬레이브 선택 라인 (218, 220, 222) 을 충전 또는 방전하도록 동작될 수도 있다.
멀티-와이어 버스 (210) 의 클럭 라인 (212) 상에 제공된 클럭 신호에 따라 마스터 디바이스 (202) 및 슬레이브 디바이스 (204, 206, 208) 사이에 데이터가 송신된다. MISO 라인 (214) 및 MOSI 라인 (216) 의 각각 상에서 데이터 시그널링은 단방향성이다. 데이터는 MOSI 라인 (216) 을 통해 전송되는 데이터의 방향과는 반대 방향으로 MISO 라인 (214) 을 통해 전송된다. MISO 라인 (214) 및 MOSI 라인 (216) 을 통한 데이터 전송들은 클럭 라인 (212) 상에 제공된 클럭 신호에 대해 동기화된다.
도 3 은 쿼드 직렬 주변장치 인터페이스 (QSPI) (300) 의 특정 양태들을 나타낸다. 마스터 디바이스 (302) 는 애플리케이션 프로세서, 호스트 프로세서, 또는 장치 또는 시스템의 다른 기능적 컴포넌트로서 기능하는 SoC 에 통합될 수도 있다. 마스터 디바이스 (302) 는 멀티-와이어 버스 (310) 를 통해 다수의 슬레이브 디바이스들 (304, 306, 308) 에 커플링된다. 마스터 디바이스 (302) 는 멀티-와이어 버스 (310) 의 4-와이어 데이터 채널 (314) 을 통해 슬레이브 디바이스들 (304, 306, 308) 과 데이터를 교환한다. 4-와이어 데이터 채널 (314) 은 도 2 에서 예시된 2-와이어 단방향 시그널링보다 더 큰 데이터 전송 레이트들을 제공하기 위해 채용될 수도 있다.
멀티-와이어 버스 (310) 는 각각의 슬레이브 디바이스 (304, 306, 308) 에 대해 적어도 하나의 슬레이브 선택 라인을 포함한다. 예시된 바와 같이, 제 1 슬레이브 선택 라인 (316) (SS1) 은 제 1 슬레이브 디바이스 (304) 에 의한 버스 액세스를 제어하고, 제 2 슬레이브 선택 라인 (318) (SS2) 은 제 2 슬레이브 디바이스 (306) 에 의한 버스 액세스를 제어하며, 제 3 슬레이브 선택 라인 (320) (SS3) 은 제 3 슬레이브 디바이스 (304) 에 의한 버스 액세스를 제어한다. 마스터 디바이스 (302) 는 대응하는 슬레이브 디바이스 (304, 306, 308) 로 하여금 데이터 채널 (314) 을 통해 데이터를 송신 또는 수신하도록 대응하는 슬레이브 디바이스 (304, 206, 208) 에 대한 허가를 승인하게 하기 위해 슬레이브 선택 라인 (316, 318, 320) 을 어서트할 수도 있다.
하나의 예에서, 슬레이브 선택 라인들 (316, 318, 320) 은 저 전압 레벨이 그 슬레이브 선택 라인들 (316, 318, 320) 에 인가될 때 어서트되지 않고, 슬레이브 선택 라인 (316, 318, 320) 은 그 슬레이브 선택 라인 (316, 318, 320) 을 고 전압 레벨로 (예컨대, 전력 공급 레벨을 향해) 구동함으로써 어서트된다. 다른 예에서, 슬레이브 선택 라인들 (316, 318, 320) 은 고 전압 레벨 (예컨대, 전력 공급 레벨) 이 그 슬레이브 선택 라인들 (316, 318, 320) 에 인가될 때 어서트되지 않고, 슬레이브 선택 라인 (316, 318, 320) 은 그 슬레이브 선택 라인 (316, 318, 320) 을 저 전압 레벨로 구동함으로써 어서트된다. 각각의 슬레이브 선택 라인 (316, 318, 320) 에 대해, 마스터 디바이스 (202) 에서의 드라이버는 슬레이브 선택 라인 (316, 318, 320) 에 대해 소망되는 어서션 상태에 기초하여 슬레이브 선택 라인 (316, 318, 320) 을 충전 또는 방전하도록 동작될 수도 있다.
데이터는 멀티-와이어 버스 (310) 의 클럭 라인 (312) 상에 제공된 클럭 신호에 따라 마스터 디바이스 (302) 와 슬레이브 디바이스 (304, 306, 308) 사이에 송신된다. 데이터 채널 (314) 상의 데이터 전송들은 클럭 라인 (312) 상에 제공된 클럭 신호에 대해 동기화된다.
SPI 에 대한 하드웨어 플로우 제어
본원에 개시된 특정 양태들에 따라 구성된 SPI 마스터 디바이스들 및 SPI 슬레이브 디바이스들은 SPI 버스를 통해 통신할 때 하드웨어 플로우 제어를 구현하도록 구성될 수도 있다. 본원에 개시된 기법들은 2-데이터라인 SPI (200) 및 QSPI (300) 를 포함하는 상이한 유형들의 SPI 버스에 대해 적용가능하다. 하드웨어 플로우 제어는 슬레이브 디바이스가 마스터 디바이스 (202, 302) 에 의해 송신되는 데이터를 수신하기 위한 준비를 나타내는 것을 가능하게 한다. 예를 들어, 슬레이브 디바이스 (204, 206, 208, 304, 306, 308) 는, 그 슬레이브 디바이스 (204, 206, 208, 304, 306, 308) 상의 수신 버퍼들이 가득 찼을 때 또는 데이터의 새롭게 개시되는 송신물을 수신하기에는 불충분한 용량을 가지고 있을 때 데이터를 수신할 준비가 되어 있지 않음을 나타낼 수도 있다.
도 4 는 본원에 개시된 특정 양태들에 따라 구성된 2-데이터라인 SPI (400) 을 나타낸다. 마스터 디바이스 (402) 는 적어도 하나의 슬레이브 디바이스 (404) 에 커플링된다. 이 예에서, 슬레이브 디바이스 (404) 가 마스터 디바이스 (402) 와 통신하는 것을 가능하게 하기 위해 슬레이브 선택 라인 (SS1 라인 (420)) 은 마스터 디바이스 (402) 에 의해 고 전압 상태로 구동된다고 가정된다. 다른 예들에서, 슬레이브 디바이스 (404) 가 마스터 디바이스 (402) 와 통신하는 것을 가능하게 하기 위해 SS1 라인 (420) 은 마스터 디바이스 (402) 에 의해 저 전압 상태로 구동될 수도 있다.
적응 (adaptation) 은 마스터 디바이스 (402) 및 대응하는 슬레이브 디바이스 (404) 에 의해 구동되도록 SS1 라인 (420) 을 인에이블한다. 마스터 디바이스 (402) 는 마스터-아웃-슬레이브-인 라인 (MOSI 라인 (414)) 을 통해 슬레이브 디바이스 (404) 에 데이터를 송신한다. 슬레이브 디바이스 (404) 는, SS1 라인 (420) 상의 시그널링 상태에 의해 인에이블될 때, 공유된 마스터-인-슬레이브-아웃 라인 (MISO 라인 (412)) 을 통해 마스터 디바이스 (402) 에 데이터를 드라이브할 수도 있다. 마스터 디바이스 (402) 는 슬레이브 디바이스 (404) 가 데이터를 송신 및/또는 수신하도록 허용하기 위해 SS1 라인 (420) 상의 인에이블 시그널링 상태를 어서트할 수도 있다. 데이터는 클럭 라인 (410) 상에 제공된 클럭 신호에 따라 마스터 디바이스 (402) 와 슬레이브 디바이스 (404) 사이에 송신된다.
슬레이브 디바이스 (404) 를 수반하는 판독 및 기입 동작에서, 마스터 디바이스 (402) 는 슬레이브 디바이스 (404) 를 선택하기 위해 SS1 라인 (420) 을 고 전압 상태로 구동한다. SS1 라인 (420) 은 고 출력 임피던스를 갖는 드라이버 (406) 를 이용하여 마스터 디바이스 (402) 에 의해 구동된다. 슬레이브 디바이스 (404) 는 SS1 라인 (420) 의 판독 및 구동 양자를 위해 적응될 수도 있다. 슬레이브 디바이스 (404) 는 SS1 라인 (420) 의 시그널링 상태를 검출하도록 구성된 수신기 (418) 를 포함할 수도 있다. 슬레이브 디바이스 (404) 는 저 출력 임피던스를 갖는 라인 드라이버 (416) 를 이용하여 SS1 라인 (420) 을 저 전압 상태로 구동함으로써 플로우 제어를 어서트할 수도 있다. 마스터 디바이스 (402) 는 SS1 라인 (420) 의 시그널링 상태를 판독하도록 구성된 라인 수신기 (408) 를 포함한다. 마스터 디바이스 (402) 는 슬레이브 디바이스 (404) 에 대한 데이터의 송신을 중지함으로써 슬레이브 디바이스 (404) 에 의해 어서트된 저 전압 상태에 응답할 수도 있다.
도 5 는 본원에 개시된 특정 양태들에 따라 SS1 라인 (420) 을 구동하기 위해 사용될 수도 있는 라인 인터페이스 회로들 (502, 512) 의 일 예 (500) 를 나타낸다. SS1 라인 (420) 은 슬레이브 디바이스 (404) 가 플로우 제어를 어서트하기를 희망할 때 마스터 디바이스 (402) 및 슬레이브 디바이스 (404) 양자에 의해 동시에 구동될 수도 있다. 마스터 디바이스 (402) 에서의 라인 인터페이스 회로 (502) 는, 어서션이 고 또는 저 전압 상태이어야 하는지 여부에 상관 없이, 고 임피던스 출력을 가지고 SS1 라인 (420) 을 약하게 어서트하는 라인 드라이버 (Tx 드라이버 (504)) 를 포함한다. 슬레이브 디바이스 (404) 에서의 라인 인터페이스 회로 (512) 는 마스터 디바이스 (402) 에 의한 SS1 라인 (420) 의 약한 어서션을 극복할 수 있는 저 임피던스 출력을 갖는 라인 드라이버 (RTS 드라이버 (514)) 를 포함한다.
마스터 디바이스 (402) 에서의 Tx 드라이버 (504) 는 값 RTX 를 갖는 저항기 (508) 로서 예시된 출력 임피던스를 나타낸다. 슬레이브 디바이스 (404) 의 RTS 드라이버 (514) 는 값 RRTS 를 갖는 저항기 (518) 로서 예시된 출력 임피던스를 나타낸다. SS1 라인 (420) 상에서 관찰되는 전압 (VSS1) 은 저항기들 (508, 518) (RTX 및 RRTS) 사이의 관계에 의해 결정된다. 예를 들어, Tx 드라이버 (504) 의 저항기 (508) 가 Vdd 의 전압에 커플링될 때, SS1 라인 (420) 상에서 관찰되는 전압 (VRX) 은 다음과 같이 계산될 수도 있다:
Figure pct00001
식 (1)
일부 구현들에서, 드라이버들 (504, 514) 은 SS1 라인 (420) 상의 전압 상태를 어서트한 후에 고 임피던스 상태에 놓일 수도 있다. 키퍼 회로 (528) 는 SS1 라인 (420) 상의 마지막으로 어서트된 전압을 유지하기 위해 SS1 라인 (420) 에 커플링될 수도 있다. 키퍼 회로 (528) 는 Tx 드라이버 (504) 및 RTS 드라이버 (514) 양자에 의해 쉽게 극복된다. 이들 구현들에서, Tx 드라이버 (504) 는 SS1 라인 (420) 을 릴리스하기 전에 SS1 라인 (420) 상의 인에이블링 상태 (enabling state) 를 어서트한다. 예를 들어, 인에이블링 상태는 (고 또는 저 전압에 의해 표현되는) 로직 1 상태일 수도 있고, 키퍼 회로 (528) 는 드라이버들 (504, 514) 중 하나가 SS1 라인 (420) 의 상태를 변경할 때까지 로직 1 상태를 유지한다. 슬레이브 디바이스 (404) 는 RTS 드라이버 (514) 로 하여금 수신 버퍼들이 용량까지 채워지거나 용량에 가깝게 될 때 SS1 라인 (420) 의 상태를 변경하게 할 수도 있다.
슬레이브 디바이스 (404) 는 SS1 라인 (420) 의 현재 시그널링 상태를 수신하는 플로우 제어 결정 로직 (520), 및, 예를 들어 슬레이브 디바이스 (404) 에서의 수신 버퍼들이 최대 점유 레벨을 식별하는 버퍼 임계치에 도달하거나 초과하였는지 여부를 나타내는 Rx_버퍼_레벨 입력 (526) 을 포함할 수도 있다. 버퍼 임계치가 도달된 경우에, 슬레이브 디바이스 (404) 는 RTS 드라이버 (514) 로 하여금 SS1 라인 (420) 을 로직 0 상태로부터 로직 1 상태로 구동하게 할 수도 있다 (즉, 슬레이브 디바이스 (404) 가 마스터 디바이스 (402) 에 의해 인에이블되었을 때). RTS 드라이버 (514) 는 마스터 디바이스 (402) 에 의해 구동된 통상적 로직 1 을 극복할 수도 있는 저 임피던스 드라이버를 채용한다. 마스터 디바이스가 슬레이브 디바이스 (404) 에 대해 그것의 내부 인에이블 신호 (SS (522)) 를 어서트했을 때, SS1 라인 (420) 의 오버라이딩된 값은 마스터 디바이스 (402) 에서의 배타적-NOR 로직 게이트 (510) 의 출력 (FCF (524)) 으로 하여금 슬레이브 디바이스 (404) 가 수신할 준비가 되지 않은 것을 나타내는 로직 0 의 값을 가정하게 한다. SS1 라인 (420) 이 로직 1 레벨에 있을 때, FCF (524) 는 슬레이브 디바이스 (404) 가 수신할 준비가 되었음을 나타내는 로직 1 이다. 슬레이브 디바이스 (404) 가 선택되지 않을 때, SS (522) 는 어서트되지 않고, SS1 (420) 은 보통 하이이고, FCF 는 슬레이브 디바이스 (404) 가 수신할 준비가 되지 않은 것을 나타내는 로직 0 의 값을 갖는다. 슬레이브 디바이스 (404) 는 SS1 하이 상태를 오버라이딩 (overriding) 함으로써 전송하도록 요청을 시그널링하여, FCF 로 하여금 슬레이브 디바이스 (404) 가 수신할 준비가 되었음을 나타내는 로직 0 으로 천이하게 할 수 있다.
플로우 제어 결정 로직 (520) 은, SS1 라인 (420) 및 Rx_버퍼_레벨 입력 (526) 의 상태를 모니터링하도록, 그리고 본원에 개시된 임피던스-기반 플로우 제어 프로시저들 및 프로토콜들을 구현하도록 구성된 상태 머신, 시퀀서, 또는 다른 적합한 로직 회로를 포함할 수도 있다. 일부 경우들에서, 플로우 제어 결정 로직 (520) 은 프로세서, 또는 프로세서와 로직 회로들의 몇몇 조합을 이용하여 구현될 수도 있다. 슬레이브 디바이스 (404) 는 RTS 드라이버 (514) 의 출력 임피던스를 제어하는 것이 가능할 수도 있다. 일부 예들에서, 슬레이브 디바이스 (404) 는 비-준비 상태를 표시하기 위해 필요할 때 RTS 드라이버 (514) 를 인에이블 (enable) 할 수도 있고, 슬레이브 디바이스 (404) 가 준비되었을 때 RTS 드라이버 (514) 를 디스에이블 (disable) 할 수도 있다. 후자의 예에서, SS1 라인 (420) 은 Tx 드라이버 (504) 의 내부 저항기 (508) 에 의해서, 또는 키퍼 회로 (528) 에 의해서 로직 1 상태를 나타내는 전압으로 끌어당겨진다.
키퍼 회로 (528) 는 마스터 디바이스 (402) 에 및/또는 슬레이브 디바이스 (404) 에 제공될 수도 있다. 일부 경우들에서, 키퍼 회로 (528) 는, 마스터 디바이스 (402) 또는 슬레이브 디바이스 (404) 가 SS1 라인 (420) 상의 상태 변경을 강제할 수도 있도록 마스터 디바이스 (402) 또는 슬레이브 디바이스 (404) 에 의해 제어될 수도 있다. 예를 들어, 플로우 제어 결정 로직 (520) 은, SS1 라인 (420) 이 로우 상태에 있을 때, SS1 라인 (420) 을 하이 상태로 구동하도록 키퍼 회로 (528) 를 시그널링할 수도 있고, 플로우 제어 결정 로직 (520) 은, SS1 라인 (420) 이 하이 상태에 있을 때, SS1 라인 (420) 을 로우 상태로 구동하도록 키퍼 회로 (528) 를 시그널링할 수도 있다.
마스터 디바이스 (402) 는, FCF 출력 신호 (524) 가 로직 0 에 있을 때, MOSI 라인 (414) 상에서 데이터를 송신하는 것을 자제할 수도 있다. 마스터 디바이스 (402) 는 클럭 라인 (410) 상에서 송신되는 클럭 신호의 중단, 늦춤, 게이팅에 의해 데이터 송신물들을 중지시킬 수도 있다. 배타적-NOR 로직 게이트 (510) 에 대한 입력들이 동일한 어서트된 상태를 가질 때 수신 준비 상태가 결정될 수도 있다. FCF 출력 신호 (524) 는 따라서, 슬레이브 디바이스 (404) 가 데이터를 수신할 준지가 되었다는 것을 의미하기 위한 바이너리 1 상태로의 어서트된 하이이다.
마스터 디바이스 (402) 및 슬레이브 디바이스 (404) 는 플로우 제어를 구현하기 위한 추가적인 로직 및 회로들을 포함할 수도 있다. 하나의 예에서, 마스터 디바이스 (402) 는 SS (522) 상에서 어서트된 상태와는 상이할 수도 있는 SS1 라인 (420) 의 시그널링 상태를 모니터링하도록 구성된 라인 수신기 (CTS 수신기 (506)) 를 포함할 수도 있다. 다른 예에서, 슬레이브 디바이스 (404) 는 RTS 드라이버 (514) 를 통해 RTS 드라이버 (514) 에 의해 어서트된 상태와는 상이할 수도 있는 SS1 라인 (420) 의 시그널링 상태를 모니터링하도록 구성된 라인 수신기 (Rx 수신기 (516)) 를 포함할 수도 있다.
도 4 및 도 5 에서의 예들과 관련하여 논의된 바와 같이, 하드웨어 플로우 제어는, SS1 라인 (420) 이 고 전압 상태에 있을 때 디바이스를 인에이블하는 슬레이브 선택 신호를 SS1 라인 (420) 이 운반하는 디바이스들에서, 또는, SS1 라인 (420) 이 저 전압 상태에 있을 때 디바이스를 인에이블하는 슬레이브 선택 신호를 SS1 라인 (420) 이 운반하는 디바이스들에서 구현될 수도 있다. 본원에 개시된 원리들은 마스터 디바이스 (402) 또는 슬레이브 디바이스 (404) 내에서 및/또는 SS1 라인 (420) 상의 시그널링 상태들에 대한 로직 레벨들의 임의의 할당을 이용하여 구현될 수 있다. 다음과 같은 플로우차트들의 목적들을 위해, 로직 1 은 고 전압 레벨 (예컨대, Vdd 또는 전력 공급 전압 레벨) 에 의해 표현되고, 로직 0 은 저 전압 레벨 (예컨대, 0 볼트 또는 전력 공급 그라운드) 에 의해 표현된다고 가정될 수도 있다.
도 6 은 상태 머신, 시퀀서 로직에 의해 및/또는 프로세서에 의해 구현될 수도 있는 플로우 제어 (600) 의 일 예를 나타낸다. 이 예에서, 슬레이브 디바이스 (404) 는, SS1 라인 (420) 이 저 전압 레벨에 의해 표현될 수도 있는 로직 0 으로 설정될 때 SPI 버스 상에서의 통신을 위해 인에이블된다.
블록 (602) 에서, 마스터 디바이스 (402) 는 그것의 Tx 드라이버 (504) 로 하여금, 대응하는 슬레이브 디바이스 (404) 에 대한 SS1 라인 (420) 을 고 저항 값 출력 저항기 (508) 를 이용하여 로직 0 상태로 구동하게 할 수도 있다. 로직 0 은 그라운드 전압 레벨에 의해 표현될 수도 있다. 로직 0 상태는 Rx 수신기 (516) 를 통해 플로우 제어 결정 로직 (520) 에 의해 검출될 수도 있다. 블록 (604) 에서, 플로우 제어 결정 로직 (520) 은 Rx_버퍼_레벨 입력 (526) 의 상태에 기초하여 슬레이브 디바이스 (404) 에서의 수신 버퍼의 상태를 결정할 수도 있다. 슬레이브 디바이스 (404) 에서의 수신 버퍼가 제 1 임계 점유 레벨 (예컨대, 워터마크 임계치) 미만인 경우에, 블록 (606) 에서 슬레이브 디바이스 (404) 는 데이터를 수신할 수도 있다. 플로우 제어 결정 로직 (520) 은 Rx_버퍼_레벨 입력 (526) 을 모니터링하는 것을 계속한다. 일부 시점에서, 플로우 제어 결정 로직 (520) 은, 블록 (604) 에서, 슬레이브 디바이스 (404) 에서의 수신 버퍼가 제 1 임계 점유 레벨에 도달하였거나 초과하였다고 결정할 수도 있고, 블록 (608) 으로 진행하여 플로우 제어를 어서트할 수도 있다.
블록 (608) 에서, 플로우 제어 결정 로직 (520) 은 RTS 드라이버 (514) 로 하여금, SS1 라인 (420) 을 저 저항 값 출력 저항기 (518) 를 이용하여 로직 1 상태로 구동하게 할 수도 있다. 로직 1 은 전력 공급 전압으로서 표현될 수도 있다. 마스터 디바이스 (402) 는 데이터 송신들을 중단할 수도 있다. 플로우 제어 결정 로직 (520) 은 Rx_버퍼_레벨 입력 (526) 을 모니터링하는 것을 계속한다. 일부 시점에서, 플로우 제어 결정 로직 (520) 은, 블록 (610) 에서, 슬레이브 디바이스 (404) 에서의 수신 버퍼가 제 2 임계 점유 레벨 미만으로 떨어진 것을 결정할 수도 있고, 블록 (606) 에서 데이터의 수신을 계속하기 전에, RTS 드라이버 (514) 를 디스에이블하거나 그 외에 SS1 라인 (420) 을 로직 0 상태로 복귀하게 할 수도 있다. 제 2 임계 점유 레벨은 제 1 임계 점유 액션 (315) 과 동일한 값을 가질 수도 있거나, 제 1 임계 점유와는 상이한 값을 가질 수도 있다.
도 7 은 상태 머신, 시퀀서 로직에 의해 및/또는 프로세서에 의해 구현될 수도 있는 플로우 제어 (700) 의 일 예를 나타낸다. 이 예에서, 슬레이브 디바이스 (404) 는, SS1 라인 (420) 이 고 전압 레벨에 의해 표현될 수도 있는 로직 1 로 설정될 때 SPI 버스 상에서의 통신을 위해 인에이블된다.
블록 (702) 에서, 마스터 디바이스 (402) 는 그것의 Tx 드라이버 (504) 로 하여금, 대응하는 슬레이브 디바이스 (404) 에 대한 SS1 라인 (420) 을 고 저항 값 출력 저항기 (508) 를 이용하여 로직 1 상태로 구동하게 할 수도 있다. 로직 1 은 전력 공급 전압에 의해 표현될 수도 있다. 로직 1 상태는 Rx 수신기 (516) 를 통해 플로우 제어 결정 로직 (520) 에 의해 검출될 수도 있다. 블록 (704) 에서, 플로우 제어 결정 로직 (520) 은 Rx_버퍼_레벨 입력 (526) 의 상태에 기초하여 슬레이브 디바이스 (404) 에서의 수신 버퍼의 상태를 결정할 수도 있다. 슬레이브 디바이스 (404) 에서의 수신 버퍼가 제 1 임계 점유 레벨 (예컨대, 워터마크 임계치) 미만인 경우에, 블록 (706) 에서 슬레이브 디바이스 (404) 는 데이터를 수신할 수도 있다. 플로우 제어 결정 로직 (520) 은 Rx_버퍼_레벨 입력 (526) 을 모니터링하는 것을 계속한다. 일부 시점에서, 플로우 제어 결정 로직 (520) 은, 블록 (704) 에서, 슬레이브 디바이스 (404) 에서의 수신 버퍼가 제 1 임계 점유 레벨에 도달하였거나 초과하였다고 결정할 수도 있고, 블록 (708) 으로 진행하여 플로우 제어를 어서트할 수도 있다.
블록 (708) 에서, 플로우 제어 결정 로직 (520) 은 RTS 드라이버 (514) 로 하여금, SS1 라인 (420) 을 저 저항 값 출력 저항기 (518) 를 이용하여 로직 0 상태로 구동하게 할 수도 있다. 로직 0 은 그라운드 전압 레벨로서 표현될 수도 있다. 마스터 디바이스 (402) 는 데이터 송신들을 중단할 수도 있다. 플로우 제어 결정 로직 (520) 은 Rx_버퍼_레벨 입력 (526) 을 모니터링하는 것을 계속한다. 일부 시점에서, 플로우 제어 결정 로직 (520) 은, 블록 (710) 에서, 슬레이브 디바이스 (404) 에서의 수신 버퍼가 제 2 임계 점유 레벨 미만으로 떨어진 것을 결정할 수도 있고, 블록 (706) 에서 데이터의 수신을 계속하기 전에, RTS 드라이버 (514) 를 디스에이블하거나 그 외에 SS1 라인 (420) 을 로직 1 상태로 복귀하게 할 수도 있다. 제 2 임계 점유 레벨은 제 1 임계 점유 레벨과 동일한 값을 가질 수도 있거나, 제 1 임계 점유 레벨과는 상이한 값을 가질 수도 있다.
프로세싱 회로들 및 방법들의 예들
도 8 은 SPI 버스를 채용하는 장치 (800) 에 대한 하드웨어 구현의 일 예를 나타내는 다이어그램이다. 일부 예들에서, 장치 (800) 는 본원에 개시된 하나 이상의 기능을 수행할 수도 있다. 본 개시의 여러 양태들에 따르면, 본원에 개시된 엘리먼트, 또는 엘리먼트의 임의의 부분 또는 엘리먼트들의 임의의 조합은 프로세싱 회로 (802) 를 이용하여 구현될 수도 있다. 프로세싱 회로 (802) 는 하드웨어 및 소프트웨어 모듈들의 일부 조합에 의해 제어되는 하나 이상의 프로세서들을 (804) 을 포함할 수도 있다. 프로세서들 (804) 의 예들은 마이크로프로세서들, 마이크로제어기들, 디지털 신호 프로세서들 (DSP들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 프로그래밍가능 로직 디바이스들 (PLD들), 상태 머신들, 시퀀서들, 게이트된 로직, 이산 하드웨어 회로들, 및 본 개시물에 걸쳐 설명된 여러 기능들을 수행하도록 구성되는 다른 적절한 하드웨어를 포함한다. 하나 이상의 프로세서들 (804) 은 특정 기능들을 수행하고 소프트웨어 모듈들 (816) 중 하나에 의해 구성, 증강 또는 제어될 수도 있는 특수화된 프로세서들을 포함할 수도 있다. 하나 이상의 프로세서들 (804) 은 초기화 동안에 로딩된 하나 이상의 소프트웨어 모듈들 (816) 의 조합을 통하여 구성될 수도 있고, 동작 동안에 소프트웨어 모듈들 (816) 중 하나 이상을 로딩 또는 언로딩함으로써 추가로 구성될 수도 있다.
예시된 예에서, 프로세싱 회로 (802) 는 버스 (810) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (810) 는 프로세싱 시스템 (802) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브릿지들을 포함할 수도 있다. 버스 (810) 는 하나 이상의 프로세서들 (804) 및 스토리지 (806) 를 포함하는 여러 회로들을 함께 링크한다. 스토리지 (806) 는 메모리 디바이스들 및 대용량 디바이스들을 포함할 수도 있고, 본원에서 컴퓨터 판독가능 매체 및/또는 프로세서 판독가능 매체로서 지칭될 수도 있다. 버스 (810) 는 또한 타이밍 소스들, 타이머들, 주변장치들, 전압 레귤레이터들, 및 전력 관리 회로들과 같은 여러 다른 회로들을 링크할 수도 있다. 버스 인터페이스 (808) 는 버스 (810) 와, 하나 이상의 트랜시버들 (812) 사이에 인터페이스를 제공할 수도 있다. 트랜시버 (812) 는 프로세싱 회로에 의해 지원되는 각각의 네트워킹 기술에 대하여 제공될 수도 있다. 일부 경우들에서, 다수의 네트워킹 기술들이 트랜시버 (812) 에서 찾아지는 프로세싱 모듈들 또는 회로의 일부 또는 전부를 공유할 수도 있다. 각각의 트랜시버 (812) 는 송신 매체를 통하여 여러 다른 장치와 통신하는 수단을 제공한다. 장치 (800) 의 특성에 의존하여, 사용자 인터페이스 (818) (예를 들어, 키패드, 디스플레이, 스피커, 마이크로폰, 조이스틱) 가 또한 제공될 수도 있고, 버스 인터페이스 (808) 를 통하여 또는 버스 (810) 에 직접적으로 통신가능하게 커플링될 수도 있다.
프로세서 (804) 는 스토리지 (806) 를 포함할 수도 있는 컴퓨터 판독가능 매체에 저장된 소프트웨어의 실행을 포함할 수도 있는 범용 프로세싱을 그리고 버스 (810) 의 관리를 담당할 수도 있다. 이 양태에서, 프로세서 (804) 를 포함한, 프로세싱 회로 (802) 는 본원에 개시된 방법들, 기능들, 및 기술들 중 어느 것을 구현하는데 이용될 수도 있다. 스토리지 (806) 는 소프트웨어를 실행할 때 프로세서 (804) 에 의해 조작되는 데이터를 저장하기 위해 이용될 수도 있고, 소프트웨어는 본원에 개시된 방법들 중 어느 하나를 구현하도록 구성될 수도 있다.
프로세싱 회로 (802) 에서의 하나 이상의 프로세서들 (804) 은 소프트웨어를 실행할 수도 있다. 본원에서 이용되는 바와 같이, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 달리 지칭되더라도, 소프트웨어는 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 하위프로그램들, 소프트웨어 모듈들, 애플리케이션들, 소프트웨어 애플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 실행가능물들, 실행의 스레드들, 절차들, 기능들, 알고리즘들 등을 의미하는 것으로 광범위하게 간주되어야 한다. 소프트웨어는 외부 컴퓨터 판독가능 매체에서 또는 스토리지 (806) 에서 컴퓨터 판독가능 형태로 상주할 수도 있다. 컴퓨터 판독가능 매체 및/또는 스토리지 (806) 는 비일시적 컴퓨터 판독가능 매체일 수도 있다. 비일시적 컴퓨터 판독가능 저장 매체는 예를 들어, 자기 저장 디바이스 (예를 들어, 하드 디스크, 플로피 디스크, 마그네틱 스트립), 광학 디스크 (예를 들어, 컴팩트 디스크 (CD) 또는 디지털 다기능 디스크 (DVD)), 스마트 카드, 플래시 메모리 디바이스 (예를 들어, "플래시 드라이브", 카드, 스틱, 키 드라이브), 랜덤 액세스 메모리 (RAM), ROM, PROM, 소거가능 PROM (EPROM), EEPROM, 레지스터, 탈착가능 디스크, 및/또는 컴퓨터에 의해 액세스 및 판독될 수도 있는 소프트웨어 및/또는 명령들을 저장하기 위한 임의의 다른 적절한 매체를 포함한다. 컴퓨터 판독가능 매체 및/또는 스토리지 (806) 는 또한 예를 들어, 반송파, 송신 라인, 및 컴퓨터에 의해 액세스 및 판독될 수도 있는 소프트웨어 및/또는 명령들을 송신하기 위한 임의의 다른 적절한 매체를 포함할 수도 있다. 컴퓨터 판독가능 매체 및/또는 스토리지 (806) 는 프로세싱 회로 (802) 에, 프로세싱 회로 (802) 의 외부에 있는 프로세서 (1004) 에 상주할 수도 있거나 또는 프로세싱 회로 (802) 를 포함한 다수의 엔티티들에 걸쳐 분산될 수도 있다. 컴퓨터 판독가능 매체 및/또는 스토리지 (806) 는 컴퓨터 프로그램 제품에서 구현될 수도 있다. 예를 들어, 컴퓨터 프로그램 제품은 패키징 재료들에서 컴퓨터 판독가능 매체를 포함할 수도 있다. 당해 기술 분야의 당업자는 전체 시스템 상에 부여되는 전체 설계 제약들 및 특정 애플리케이션에 따라 본 개시물 전반에 걸쳐 제시된 설명의 기능성을 최상으로 구현하는 방법을 알고 있을 것이다.
스토리지 (806) 는 소프트웨어 모듈들 (816) 로서 본원에서는 지칭될 수도 있는 로딩가능 코드 세그먼트들, 모듈들, 애플리케이션들, 프로그램들 등에서 유지 및/또는 조직화되는 소프트웨어를 유지할 수도 있다. 소프트웨어 모듈들 (816) 각각은 프로세싱 회로 (802) 상에 설치 또는 로딩되고 하나 이상의 프로세서들 (804) 에 의해 실행될 때 하나 이상의 프로세서들 (804) 의 동작을 제어하는 런타임 이미지 (814) 에 기여하는 명령들 및 데이터를 포함할 수도 있다. 실행될 때, 특정 명령들은 프로세싱 회로 (802) 로 하여금 본원에 설명된 특정 방법들, 알고리즘들, 및 프로세스들에 따라 기능을 수행하게 할 수도 있다.
소프트웨어 모듈들 (816) 의 일부는 프로세싱 회로 (802) 의 초기화 동안에 로딩될 수도 있고, 이들 소프트웨어 모듈들 (816) 은 본원에 설명된 여러 기능들의 수행을 실행하도록 프로세싱 회로 (802) 를 구성할 수도 있다. 예를 들어, 일부 소프트웨어 모듈들 (816) 은 프로세서 (804) 의 내부 디바이스들 및/또는 로직 회로들 (822) 을 구성할 수도 있고, 트랜시버 (812), 버스 인터페이스 (808), 사용자 인터페이스 (818), 타이머들, 수학적 코프로세서들 등과 같은 외부 디바이스들에 대한 액세스를 관리할 수도 있다. 소프트웨어 모듈들 (816) 은 인터럽트 핸들러들 및 디바이스 드라이버들과 상호작용하고 프로세싱 회로 (802) 에 의해 제공된 여러 리소스들에 대한 액세스를 제어하는 제어 프로그램 및/또는 오퍼레이팅 시스템을 포함할 수도 있다. 리소스들은 메모리, 프로세싱 시간, 트랜시버 (812), 사용자 인터페이스 (818) 에 대한 액세스 등을 포함할 수도 있다.
프로세싱 회로 (802) 의 하나 이상의 프로세서들 (804) 은 다기능성일 수도 있어, 소프트웨어 모듈들 (816) 중 일부가 상이한 인스턴스들, 또는 동일한 기능의 상이한 인스턴스들을 수행하도록 로딩 및 구성된다. 하나 이상의 프로세서들 (804) 은 예를 들어, 사용자 인터페이스 (818), 트랜시버 (812) 및 디바이스 드라이버들로부터의 입력들에 응답하여 개시된 백그라운드 작업들을 관리하도록 추가적으로 적응될 수도 있다. 다수의 기능들의 수행을 지원하기 위하여, 하나 이상의 프로세서들 (804) 은 멀티테스킹 환경을 제공하도록 구성될 수도 있어, 이에 의해 복수의 기능들 각각이 필요에 따라, 또는 원하는 바에 따라 하나 이상의 프로세서들 (804) 에 의해 서비스되는 작업들의 세트로서 구현된다. 일 예에서, 멀티태스킹 환경은 상이한 작업들 간에 프로세서 (804) 의 제어를 통과시키는 시간공유 프로그램 (820) 을 이용하여 구현될 수도 있고, 이에 의해 임의의 현저한 동작들의 완료시에, 및/또는 이러한 인터럽트와 같은 입력에 응답하여, 각각의 작업이 하나 이상의 프로세서들 (804) 의 제어를 시간공유 프로그램 (820) 으로 되돌린다. 작업이 하나 이상의 프로세서들 (804) 의 제어를 행할 때, 프로세싱 회로는 제어 중인 작업과 연관된 기능에 의해 어드레싱되는 목적들에 대하여 효과적으로 특수화된다. 시간공유 프로그램 (820) 은 오퍼레이팅 시스템, 라운드 로빈 기반으로 제어들을 트랜스퍼하는 메인 루프, 기능들의 우선순위화에 따라 하나 이상의 프로세서들 (804) 의 제어를 할당하는 기능 및/또는 하나 이상의 프로세서들 (804) 의 제어를 핸들링 기능에 제공함으로써 외부 이벤트들에 응답하는 인터럽트 구동된 메인 루프를 포함할 수도 있다.
도 9 는 직렬 주변장치 인터페이스를 이용하여 정보를 교환하기 위한 방법의 플로우차트 (900) 이다. 블록 (902) 에서, 마스터 디바이스 (402) 는 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트함으로써 직렬 주변 인터페이스 버스의 하나 이상의 데이터 라인들을 통한 데이터의 교환을 개시할 수도 있다.
블록 (904) 에서, 슬레이브 선택 라인이 제 1 전압 상태에서 그대로 유지되는 동안, 마스터 디바이스 (402) 는 직렬 주변 인터페이스 버스를 통해 데이터 및 클럭 신호를 송신할 수도 있다.
블록 (906) 에서, 마스터 디바이스 (402) 는 슬레이브 선택 라인이 제 2 제 1 전압 상태로 천이할 때 직렬 주변 인터페이스 버스를 통해 데이터 및 클럭 신호를 송신하는 것을 삼가할 수도 있다.
블록 (908) 에서, 슬레이브 디바이스 (404) 는 슬레이브 선택 라인이 제 1 전압 상태에서 그대로 유지되는 동안 수신 버퍼 내로 데이터를 수신할 수도 있다.
블록 (910) 에서, 슬레이브 디바이스 (404) 는, 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때, 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트할 수도 있다.
일부 예들에서, 마스터 디바이스 (402) 는 고 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 1 드라이버 회로를 포함할 수도 있다. 슬레이브 디바이스 (404) 는 저 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 2 드라이버 회로를 포함할 수도 있다. 고 임피던스 출력이 슬레이브 선택 라인을 제 1 전압 상태로 구동하기 위해 시도하고 있을 때 저 임피던스 출력이 슬레이브 선택 라인을 제 2 전압 상태로 구동하기 위해 인에이블되도록, 제 1 드라이버 회로 및 제 2 드라이버 회로의 임피던스들이 선택될 수도 있다.
일부 예들에서, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하는 것은, 마스터 디바이스 (402) 의 라인 드라이버로 하여금 슬레이브 선택 라인을 제 1 전압 상태를 향해 구동하게 하는 것, 및, 마스터 디바이스 (402) 의 라인 드라이버로 하여금 슬레이브 선택 라인이 제 1 전압 상태를 달성할 때 개방-회로 동작 모드에 진입하게 하는 것을 포함한다. 마스터 디바이스 (402) 및/또는 슬레이브 디바이스 (404) 는, 라인 드라이버가 개방-회로 동작 모드에 진입한 후에 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성된 키퍼 회로 (528) 를 포함할 수도 있다.
하나의 예에서, 슬레이브 디바이스 (404) 의 라인 드라이버는, 슬레이브 디바이스 (404) 가 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트한 후에, 수신 버퍼의 점유가 임계 점유 레벨 미만으로 떨어질 때, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하기 위해 이용될 수도 있다.
일부 예들에서, 슬레이브 디바이스 (404) 는, 수신 버퍼의 점유를 모니터링하고, 슬레이브 선택 라인의 전압 상태를 모니터링하며, 그리고, 슬레이브 선택 라인의 전압 상태가 제 1 전압 상태에 있고 점유가 임계 점유 레벨과 동일한 레벨에 있거나 임계 점유 레벨을 초과할 때 슬레이브 디바이스 (404) 의 라인 드라이버로 하여금 슬레이브 선택 라인을 제 2 전압 상태로 구동하게 할 수도 있다. 슬레이브 디바이스 (404) 는, 라인 드라이버 회로로 하여금 제 2 전압 상태를 어서트하게 한 후에 그리고 점유가 임계 점유 레벨 미만의 레벨로 떨어진 후에, 슬레이브 선택 라인을 제 1 전압 상태로 복귀시킬 수도 있다.
도 10 은 프로세싱 회로 (1002) 를 채용하는 장치 (1000) 에 대한 하드웨어 구현의 단순화된 예를 예시하는 다이어그램이다. 장치는 본원에 개시된 특정 양태에 따라 브리징 회로를 구현할 수도 있다. 프로세싱 회로는 통상적으로 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서, 시퀀서, 및/또는 상태 머신 중 하나 이상을 포함할 수도 있는 제어기 또는 프로세서 (1016) 를 갖는다. 프로세싱 회로 (1002) 는 버스 (1020) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (1020) 는 프로세싱 회로 (1002) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하여 임의의 수의 상호접속 버스들 및 브릿지들을 포함할 수도 있다. 버스 (1020) 는 제어기 또는 프로세서 (1016), 모듈들 또는 회로들 (1004, 1006 및 1008), 및 컴퓨터 판독가능 저장 매체 (1018) 에 의해 표현된 하나 이상의 프로세서들 및/또는 하드웨어 모듈들을 포함하는 다양한 회로들을 함께 링크시킨다. 장치는 물리 계층 회로 (1014) 를 이용하여 멀티-와이어 통신 링크에 커플링될 수도 있다. 물리 계층 회로 (1014) 는 직렬 주변장치 인터페이스 버스 (1012) 로서 멀티-와이어 통신 링크를 동작시킬 수도 있다. 버스 (1020) 는 또한 다른 회로들, 예컨대, 타이밍 소스들, 주변장치들, 전압 조절기들, 및 전력 관리 회로들을 링크할 수도 있으며, 이는 공지되어 있으므로, 더 이상 설명되지 않을 것이다.
프로세서 (1016) 는 컴퓨터 판독가능 저장 매체 (1018) 상에 저장된 소프트웨어, 코드, 및/또는 명령들의 실행을 포함하는, 일반 프로세싱을 담당한다. 컴퓨터 판독가능 저장 매체는 비일시적 판독가능 저장 매체를 포함할 수도 있다. 프로세서 (1016) 에 의해 실행될 때, 소프트웨어는 프로세싱 회로 (1002) 로 하여금 임의의 특정 장치에 대하여 위에 설명된 여러 기능들을 수행하게 한다. 컴퓨터 판독가능 저장 매체는 소프트웨어를 실행시킬 때 프로세서 (1016) 에 의해 조작되는 데이터를 저장하는데 이용될 수도 있다. 프로세싱 회로 (1002) 는 모듈들 (1004, 1006 및 1008) 중 적어도 하나를 더 포함한다. 모듈들 (1004, 1006 및 1008) 은 컴퓨터 판독가능 저장 매체 (1018) 상에 상주/저장되는, 프로세서 (1016) 에서 실행되는 소프트웨어 모듈, 프로세서 (1016) 에 커플링되는 하나 이상의 하드웨어 모듈들 또는 이들의 일정 조합일 수도 있다. 모듈들 (1004, 1006 및/또는 1008) 은 마이크로컨트롤러 명령들, 상태 머신 구성 파라미터들, 또는 이들의 일정 조합을 포함할 수도 있다.
하나의 구성에서, 장치 (1000) 는, 직렬 주변장치 인터페이스 버스 (1012) 의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하기 위해 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하도록 구성된 모듈들 및/또는 회로들 (1008) 을 포함한다. 장치 (1000) 는, 수신 버퍼의 점유를 모니터링하도록 구성된 모듈들 및/또는 회로들 (1006), 및, 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때, 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트하도록 구성된 모듈들 및/또는 회로들 (1008) 을 포함할 수도 있다.
다양한 예들에서, 장치 (1000) 는, 직렬 주변장치 인터페이스 버스 (1012) 에 커플링된 마스터 디바이스 (402) 및/또는 슬레이브 디바이스 (404) 에서 전개될 수도 있다. 하나의 예에서, 직렬 주변장치 인터페이스 버스 (1012) 에 커플링된 마스터 디바이스 (402) 는 직렬 주변장치 인터페이스 버스 (1012) 의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하기 위해 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하고, 슬레이브 선택 라인이 제 1 전압 상태에서 그대로 유지되는 동안, 직렬 주변장치 인터페이스 버스 (1012) 의 클럭 라인을 클럭 신호를 송신하도록 구성될 수도 있다. 데이터의 교환은 클럭 신호와 동기화될 수도 있다. 마스터 디바이스 (402) 는, 슬레이브 선택 라인이 제 2 전압 상태에 있는 동안, 하나 이상의 데이터 라인들을 통해 데이터를 송신하는 것을 자제하도록 더 구성될 수도 있다. 마스터 디바이스 (402) 는, 라인 드라이버로 하여금 슬레이브 선택 라인을 제 1 전압 상태를 향해 구동하게 하는 것, 및, 라인 드라이버로 하여금 슬레이브 선택 라인이 제 1 전압 상태를 달성할 때 개방-회로 동작 모드에 진입하게 하는 것에 의해, 제 1 전압 상태를 어서트하도록 구성될 수도 있다. 마스터 디바이스 (402) 는, 라인 드라이버가 개방-회로 동작 모드에 진압한 후에 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성된 키퍼 회로 (528) 를 포함하거나 그 키퍼 회로 (528) 에 커플링될 수도 있다.
다른 예에서, 직렬 주변장치 인터페이스 버스 (1012) 에 커플링된 슬레이브 디바이스 (404) 는, 수신 버퍼를 포함할 수도 있고, 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안 수신 버퍼 내로 데이터를 수신하도록 구성될 수도 있다. 슬레이브 디바이스 (404) 는 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트하도록 구성될 수도 있다.
마스터 디바이스 (402) 는 고 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 1 드라이버 회로를 가질 수도 있고, 슬레이브 디바이스 (404) 는 저 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 2 드라이버 회로를 가질 수도 있다. 제 1 드라이버 회로 및 제 2 드라이버 회로의 임피던스들은, 고 임피던스 출력이 슬레이브 선택 라인을 제 1 전압 상태로 구동하기 위해 시도하고 있을 때 저 임피던스 출력이 슬레이브 선택 라인을 제 2 전압 상태로 구동하기 위해 인에이블되도록, 선택될 수도 있다. 슬레이브 디바이스 (404) 는, 수신 버퍼의 점유가 임계 점유 레벨 이상으로 상승할 때 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트한 후에, 수신 버퍼의 점유가 임계 점유 레벨 미만으로 떨어질 때, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하도록 구성될 수도 있다. 슬레이브 디바이스 (404) 는, 수신 버퍼의 점유를 모니터링고, 슬레이브 선택 라인의 전압 상태를 모니터링하며, 슬레이브 선택 라인의 전압 상태가 제 1 전압 상태에 있고 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 라인 드라이버 회로로 하여금 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트하게 하도록 구성된 플로우 제어 결정 로직 (520) 을 포함할 수도 있다. 플로우 제어 결정 로직 (520) 은, 라인 드라이버 회로로 하여금 제 2 전압 상태를 어서트하게 한 후에 그리고 점유가 임계 점유 레벨 미만의 레벨로 떨어진 후에, 슬레이브 선택 라인을 제 1 전압 상태로 복귀시키게 하도록 구성될 수도 있다.
다른 예에서, 마스터 디바이스 (402) 는, 직렬 주변장치 인터페이스 버스 (1012) 의 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하도록 구성된 모듈들 또는 회로들, 직렬 주변장치 인터페이스 버스 (1012) 를 통해 데이터 및 클럭 신호를 송신하도록 구성된 모듈들 또는 회로들을 포함할 수도 있다. 제 1 전압 상태는 직렬 주변장치 인터페이스 버스 (1012) 의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하기 위해 슬레이브 선택 라인 상에서 어서트될 수도 있다. 데이터 및 클럭 신호를 송신하도록 구성된 모듈들 또는 회로들은, 슬레이브 선택 라인이 제 1 전압 상태에서 유지되는 동안, 마스터 디바이스 (402) 로부터 슬레이브 디바이스 (404) 로 데이터를 송신하고, 그리고, 슬레이브 선택 라인이 제 1 전압 상태로부터 제 2 전압 상태로 천이될 때, 마스터 디바이스 (402) 로부터 슬레이브 디바이스 (404) 로 데이터를 송신하는 것을 자제하도록 구성될 수도 있다. 슬레이브 디바이스 (404) 는, 슬레이브 선택 라인이 제 1 전압 상태에서 그대로 유지되는 동안 수신 버퍼 내로 데이터를 수신하고, 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때 슬레이브 선택 라인 상에서 제 2 전압 상태를 어서트하도록 구성될 수도 있다.
마스터 디바이스 (402) 는 고 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 1 드라이버 회로를 포함할 수도 있고, 슬레이브 디바이스 (404) 는 저 임피던스 출력을 이용하여 슬레이브 선택 라인을 제 1 전압 상태로 구동하도록 구성된 제 2 드라이버 회로를 포함할 수도 있다. 제 1 드라이버 회로 및 제 2 드라이버 회로의 임피던스들은, 고 임피던스 출력이 슬레이브 선택 라인을 제 1 전압 상태로 구동하기 위해 시도하고 있을 때 저 임피던스 출력이 슬레이브 선택 라인을 제 2 전압 상태로 구동하기 위해 인에이블되도록, 선택될 수도 있다.
슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하도록 구성된 모듈들 또는 회로들은, 마스터 디바이스 (402) 의 라인 드라이버로 하여금 슬레이브 선택 라인을 제 1 전압 상태를 향해 구동하게 하고, 그리고, 마스터 디바이스 (402) 의 라인 드라이버로 하여금 슬레이브 선택 라인이 제 1 전압 상태를 달성할 때 개방-회로 동작 모드에 진입하게 하도록 구성될 수도 있다. 마스터 디바이스 (402) 는, 라인 드라이버가 개방-회로 동작 모드에 진압한 후에 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성된 키퍼 회로 (528) 를 가지거나 그러한 키퍼 회로 (528) 에 커플링될 수도 있다.
슬레이브 디바이스 (404) 는, 슬레이브 디바이스 (404) 에서 수신 버퍼의 점유를 모니터링하고, 슬레이브 선택 라인의 전압 상태를 모니터링하며, 그리고, 슬레이브 선택 라인의 전압 상태가 제 1 전압 상태에 있고 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 슬레이브 선택 라인을 제 2 전압 상태로 구동하도록 구성될 수도 있다.
슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하도록 구성된 모듈들 또는 회로들은, 슬레이브 디바이스 (404) 가 슬레이브 선택 라인을 구동하는 것을 중지한 후에 슬레이브 선택 라인을 제 1 전압 상태로 복귀시키도록 구성될 수도 있다.
다른 예에서, 직렬 주변장치 인터페이스 버스 (1012) 에 커플링된 슬레이브 디바이스 (404), 직렬 주변장치 인터페이스 버스 (1012) 의 슬레이브 선택 라인에 커플링된 수신 회로, 낮은 임피던스로 직렬 주변장치 인터페이스 버스 (1012) 의 슬레이브 선택 라인을 선택적으로 구동하도록 구성된 라인 드라이버, 직렬 주변장치 인터페이스 버스 (1012) 로부터 데이터를 수신하도록 구성된 수신 버퍼, 및 플로우 제어 로직. 플로우 제어 로직은 예를 들어 플로우 제어 결정 로직 (520) 에 포함될 수도 있다. 플로우 제어 로직은 직렬 주변장치 인터페이스 (1012) 를 통해 통신하기 위해 슬레이브 디바이스 (404) 가 선택되는 때를 결정하기 위해 수신 회로의 출력을 모니터링하고, 슬레이브 디바이스 (404) 에서의 수신 버퍼의 점유를 모니터링하며, 그리고, 슬레이브 디바이스 (404) 가 통신을 위해 선택되고 수신 버퍼의 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 라인 드라이버로 하여금 슬레이브 선택 라인을 제 2 전압 레벨로 구동하게 하도록 구성될 수도 있다. 슬레이브 디바이스 (404) 는 슬레이브 선택 라인이 제 1 전압 레벨에 있을 때 통신을 위해 선택될 수도 있다.
플로우 제어 로직은, 수신 버퍼의 점유가 임계 점유 레벨 미만의 레벨로 떨어진 후에, 슬레이브 선택 라인을 제 1 전압 상태로 복귀시키게 하도록 구성될 수도 있다. 라인 드라이버는, 슬레이브 선택 라인을 제 1 전압 상태로 구동하기 위해 마스터 디바이스 (402) 에 의해 사용되는 드라이버의 출력 임피던스보다 더 낮은 출력 임피던스로 슬레이브 선택 라인을 제 2 전압 레벨로 구동하도록 구성될 수도 있다. 플로우 제어 로직은, 수신 버퍼의 점유가 임계 점유 레벨 미만의 레벨에 있을 때, 저 임피던스로 슬레이브 선택 라인을 구동하도록 라인 드라이버를 구성하고, 그리고, 수신 버퍼의 점유가 임계 점유 레벨 미만의 레벨에 있을 때, 개방-회로 동작 모드에 진입하도록 라인 드라이버를 구성하도록, 구성될 수도 있다. 플로우 제어 로직은, 라인 드라이버로 하여금 개방-회로 동작 모드에 진입하기 전에 슬레이브 선택 라인을 제 1 전압 레벨로 구동하게 하도록 구성될 수도 있다. 키퍼 회로 (528) 는, 라인 드라이버가 개방-회로 동작 모드에 진입한 후에, 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성될 수도 있다.
개시된 프로세스들에서 단계들의 특정의 순서 또는 계층은 예시적인 접근방식들의 예시인 것이 이해된다. 설계 선호사항들에 기초하여, 프로세서들에서의 단계들의 특정 순서 또는 계층은 재배열될 수도 있음이 이해된다. 추가로, 일부 단계들은 결합 또는 생략될 수도 있다. 수반하는 방법 청구항들은 샘플 순서에서의 다양한 단계들의 요소들을 제시하고, 제시된 특정 순서 또는 계층으로 제한되는 것으로 의도되지 않는다.
이전 설명은 임의의 당업자가 여러 본원에서 설명하는 양태들을 실시할 수 있도록 하기 위해서 제공된다. 이들 양태들에 대한 여러 변경들은 당업자들에게 매우 자명할 것이며, 본원에서 정의하는 일반 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 본원에서 나타낸 양태들에 한정시키려고 의도된 것이 아니며, 전문용어 청구항들 (language claims) 에 부합하는 전체 범위를 부여하려는 것이며, 여기서, 엘리먼트에 대한 단수형 참조는 "하나 및 오직 하나" 로 구체적으로 달리 말하지 않는 한, "하나 및 오직 하나" 를 의미하기 보다는, "하나 이상" 을 의미하도록 의도된다. 달리 구체적으로 언급하지 않는 한, 용어 "일부 (some)" 는 하나 이상을 지칭한다. 당업자들에게 알려져 있거나 또는 추후 알려지는, 본 개시물을 통해서 설명한 여러 양태들의 엘리먼트들에 대한 모든 구조적 및 기능적 균등물들이 본원에 참조로 명백히 포함되며, 청구항들에 의해 포괄되도록 의도된다. 또한, 본원에서 개시된 어떤 것도 이런 개시물이 청구항들에 명시적으로 인용되는지에 상관없이, 대중에 지정되도록 의도된 것이 아니다. 어떤 청구항 엘리먼트도 그 엘리먼트가 어구 "하는 수단" 을 이용하여 명백히 언급되지 않는 한, 기능식 (means plus function) 청구항으로서 해석되지 않아야 한다.

Claims (29)

  1. 장치로서,
    멀티-라인 직렬 주변장치 인터페이스 버스;
    상기 직렬 주변장치 인터페이스 버스에 커플링된 마스터 디바이스로서,
    상기 직렬 주변장치 인터페이스 버스의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하기 위해 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하고;
    상기 슬레이브 선택 라인이 상기 제 1 전압 상태에서 유지되는 동안, 상기 직렬 주변장치 인터페이스 버스의 클럭 라인을 통해 클럭 신호를 송신하는 것으로서, 상기 데이터의 교환은 상기 클럭 신호와 동기화되는, 상기 클럭 신호를 송신하는 것을 행하며; 그리고
    상기 슬레이브 선택 라인이 제 2 전압 상태에 있는 동안, 상기 하나 이상의 데이터 라인들을 통해 데이터를 송신하는 것을 자제하도록 구성되는, 상기 마스터 디바이스; 및
    상기 직렬 주변장치 인터페이스 버스에 커플링된 슬레이브 디바이스로서, 상기 슬레이브 디바이스는 수신 버퍼를 가지고, 상기 슬레이브 디바이스는,
    상기 슬레이브 선택 라인이 상기 제 1 전압 상태에서 유지되는 동안 상기 수신 버퍼 내로 데이터를 수신하고; 그리고
    상기 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때 상기 슬레이브 선택 라인 상에서 상기 제 2 전압 상태를 어서트하도록 구성되는, 상기 슬레이브 디바이스를 포함하는, 장치.
  2. 제 1 항에 있어서,
    상기 마스터 디바이스는 고 임피던스 출력을 이용하여 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 구동하도록 구성된 제 1 드라이버 회로를 포함하고; 그리고
    상기 슬레이브 디바이스는 저 임피던스 출력을 이용하여 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 구동하도록 구성된 제 2 드라이버 회로를 포함하는, 장치.
  3. 제 2 항에 있어서,
    상기 고 임피던스 출력이 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 구동하기 위해 시도하고 있을 때 상기 저 임피던스 출력이 상기 슬레이브 선택 라인을 상기 제 2 전압 상태로 구동하기 위해 인에이블되도록, 상기 제 1 드라이버 회로 및 상기 제 2 드라이버 회로의 임피던스들이 선택되는, 장치.
  4. 제 1 항에 있어서,
    상기 마스터 디바이스는,
    라인 드라이버로 하여금 상기 슬레이브 선택 라인을 상기 제 1 전압 상태를 향해 구동하게 하는 것; 및
    상기 라인 드라이버로 하여금 상기 슬레이브 선택 라인이 상기 제 1 전압 상태를 달성할 때 개방-회로 동작 모드에 진입하게 하는 것
    에 의해, 상기 제 1 전압 상태를 어서트하도록 구성되는, 장치.
  5. 제 4 항에 있어서,
    상기 마스터 디바이스는, 상기 라인 드라이버가 상기 개방-회로 동작 모드에 진입한 후에 상기 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성된 키퍼 회로를 포함하는, 장치.
  6. 제 1 항에 있어서,
    상기 슬레이브 디바이스는, 상기 슬레이브 선택 라인 상에서 상기 제 2 전압 상태를 어서트한 후에, 상기 수신 버퍼의 점유가 상기 임계 점유 레벨 미만으로 떨어질 때 상기 슬레이브 선택 라인 상에서 상기 제 1 전압 상태를 어서트하도록 구성되는, 장치.
  7. 제 1 항에 있어서,
    상기 슬레이브 디바이스는,
    상기 수신 버퍼의 점유를 모니터링하고;
    상기 슬레이브 선택 라인의 전압 상태를 모니터링하며; 그리고
    상기 슬레이브 선택 라인의 상기 전압 상태가 상기 제 1 전압 상태에 있고 상기 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 라인 드라이버 회로로 하여금 상기 슬레이브 선택 라인 상에서 상기 제 2 전압 상태를 어서트하게 하도록
    구성된 플로우 제어 결정 회로를 포함하는, 장치.
  8. 제 7 항에 있어서,
    상기 플로우 제어 결정 회로는, 상기 라인 드라이버 회로로 하여금 상기 제 2 전압 상태를 어서트하게 한 후에 그리고 상기 점유가 상기 임계 점유 레벨 미만의 레벨로 떨어진 후에, 상기 라인 드라이버 회로로 하여금 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 복귀시키게 하도록 구성되는, 장치.
  9. 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법으로서,
    마스터 디바이스에서, 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트함으로써 직렬 주변장치 인터페이스 버스의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하는 단계;
    상기 슬레이브 선택 라인이 상기 제 1 전압 상태에서 유지되는 동안, 상기 직렬 주변장치 인터페이스 버스를 통해 상기 마스터 디바이스로부터 데이터 및 클럭 신호를 송신하는 단계;
    상기 슬레이브 선택 라인이 상기 제 1 전압 상태로부터 제 2 전압 상태로 천이할 때, 상기 직렬 주변장치 인터페이스 버스를 통해 상기 마스터 디바이스로부터 데이터 및 상기 클럭 신호를 송신하는 것을 자제하는 단계;
    상기 슬레이브 선택 라인이 상기 제 1 전압 상태에서 유지되는 동안, 슬레이브 디바이스에서 수신 버퍼 내로 데이터를 수신하는 단계; 및
    상기 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때, 상기 슬레이브 디바이스에 의해, 상기 슬레이브 선택 라인 상에서 상기 제 2 전압 상태를 어서트하는 단계를 포함하는, 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법.
  10. 제 9 항에 있어서,
    상기 마스터 디바이스는 고 임피던스 출력을 이용하여 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 구동하도록 구성된 제 1 드라이버 회로를 포함하고; 그리고
    상기 슬레이브 디바이스는 저 임피던스 출력을 이용하여 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 구동하도록 구성된 제 2 드라이버 회로를 포함하는, 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법.
  11. 제 10 항에 있어서,
    상기 고 임피던스 출력이 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 구동하기 위해 시도하고 있을 때 상기 저 임피던스 출력이 상기 슬레이브 선택 라인을 상기 제 2 전압 상태로 구동하기 위해 인에이블되도록, 상기 제 1 드라이버 회로 및 상기 제 2 드라이버 회로의 임피던스들이 선택되는, 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법.
  12. 제 9 항에 있어서,
    상기 슬레이브 선택 라인 상에서 상기 제 1 전압 상태를 어서트하는 단계는,
    상기 마스터 디바이스의 라인 드라이버로 하여금 상기 슬레이브 선택 라인을 상기 제 1 전압 상태를 향해 구동하게 하는 것; 및
    상기 마스터 디바이스의 상기 라인 드라이버로 하여금 상기 슬레이브 선택 라인이 상기 제 1 전압 상태를 달성할 때 개방-회로 동작 모드에 진입하게 하는 것을 포함하는, 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법.
  13. 제 12 항에 있어서,
    상기 마스터 디바이스는, 상기 라인 드라이버가 상기 개방-회로 동작 모드에 진입한 후에 상기 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성된 키퍼 회로를 포함하는, 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법.
  14. 제 9 항에 있어서,
    상기 슬레이브 디바이스가 상기 슬레이브 선택 라인 상에서 상기 제 2 전압 상태를 어서트한 후에 상기 수신 버퍼의 점유가 상기 임계 점유 레벨 미만으로 떨어질 때 상기 슬레이브 선택 라인 상에서 상기 제 1 전압 상태를 어서트하기 위해 상기 슬레이브 디바이스의 라인 드라이버를 이용하는 단계를 더 포함하는, 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법.
  15. 제 9 항에 있어서,
    상기 슬레이브 디바이스에서 상기 수신 버퍼의 점유를 모니터링하는 단계;
    상기 슬레이브 선택 라인의 전압 상태를 모니터링하는 단계; 및
    상기 슬레이브 선택 라인의 상기 전압 상태가 상기 제 1 전압 상태에 있고 상기 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 상기 슬레이브 디바이스의 라인 드라이버 회로로 하여금 상기 슬레이브 선택 라인을 상기 제 2 전압 상태로 구동하게 하는 단계를 더 포함하는, 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법.
  16. 제 15 항에 있어서,
    상기 라인 드라이버 회로로 하여금 상기 제 2 전압 상태를 어서트하게 한 후에 그리고 상기 점유가 상기 임계 점유 레벨 미만의 레벨로 떨어진 후에, 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 복귀시키는 단계를 더 포함하는, 직렬 주변장치 인터페이스를 이용하여 정보를 송신하기 위한 방법.
  17. 장치로서,
    직렬 주변장치 인터페이스 버스의 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하는 수단으로서, 상기 제 1 전압 상태는 상기 직렬 주변장치 인터페이스 버스의 하나 이상의 데이터 라인들을 통해 데이터의 교환을 개시하기 위해 상기 슬레이브 선택 라인 상에서 어서트되는, 상기 슬레이브 선택 라인 상에서 제 1 전압 상태를 어서트하는 수단; 및
    상기 직렬 주변장치 인터페이스 버스를 통해 데이터 및 클럭 신호를 송신하는 수단으로서, 상기 데이터 및 클럭 신호를 송신하는 수단은,
    상기 슬레이브 선택 라인이 상기 제 1 전압 상태에서 유지되는 동안, 마스터 디바이스로부터 슬레이브 디바이스로 상기 데이터를 송신하고; 그리고
    상기 슬레이브 선택 라인이 상기 제 1 전압 상태로부터 제 2 전압 상태로 천이될 때, 상기 마스터 디바이스로부터 상기 슬레이브 디바이스로 상기 데이터를 송신하는 것을 자제하도록 구성되는, 상기 데이터 및 클럭 신호를 송신하는 수단을 포함하고,
    상기 슬레이브 디바이스는, 상기 슬레이브 선택 라인이 상기 제 1 전압 상태에서 유지되는 동안 수신 버퍼 내로 상기 데이터를 수신하고, 상기 수신 버퍼의 점유가 임계 점유 레벨에 도달하거나 임계 점유 레벨을 초과할 때 상기 슬레이브 선택 라인 상에서 상기 제 2 전압 상태를 어서트하도록 구성되는, 장치.
  18. 제 17 항에 있어서,
    상기 마스터 디바이스는 고 임피던스 출력을 이용하여 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 구동하도록 구성된 제 1 드라이버 회로를 포함하고; 그리고
    상기 슬레이브 디바이스는 저 임피던스 출력을 이용하여 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 구동하도록 구성된 제 2 드라이버 회로를 포함하는, 장치.
  19. 제 18 항에 있어서,
    상기 고 임피던스 출력이 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 구동하기 위해 시도하고 있을 때 상기 저 임피던스 출력이 상기 슬레이브 선택 라인을 상기 제 2 전압 상태로 구동하기 위해 인에이블되도록, 상기 제 1 드라이버 회로 및 상기 제 2 드라이버 회로의 임피던스들이 선택되는, 장치.
  20. 제 17 항에 있어서,
    상기 슬레이브 선택 라인 상에서 상기 제 1 전압 상태를 어서트하는 수단은,
    상기 마스터 디바이스의 라인 드라이버로 하여금 상기 슬레이브 선택 라인을 상기 제 1 전압 상태를 향해 구동하게 하고; 그리고
    상기 마스터 디바이스의 상기 라인 드라이버로 하여금 상기 슬레이브 선택 라인이 상기 제 1 전압 상태를 달성할 때 개방-회로 동작 모드에 진입하게 하도록 구성되는, 장치.
  21. 제 20 항에 있어서,
    상기 마스터 디바이스는, 상기 라인 드라이버가 상기 개방-회로 동작 모드에 진입한 후에 상기 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성된 키퍼 회로를 포함하는, 장치.
  22. 제 17 항에 있어서,
    상기 슬레이브 디바이스는,
    상기 슬레이브 디바이스에서 상기 수신 버퍼의 점유를 모니터링하고;
    상기 슬레이브 선택 라인의 전압 상태를 모니터링하며; 그리고
    상기 슬레이브 선택 라인의 상기 전압 상태가 상기 제 1 전압 상태에 있고 상기 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 상기 슬레이브 선택 라인을 상기 제 2 전압 상태로 구동하도록
    구성되는, 장치.
  23. 제 22 항에 있어서,
    상기 슬레이브 선택 라인 상에서 상기 제 1 전압 상태를 어서트하는 수단은, 상기 슬레이브 디바이스가 상기 슬레이브 선택 라인을 구동하는 것을 중지한 후에 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 복귀시키도록 구성되는, 장치.
  24. 직렬 주변장치 인터페이스에 커플링된 슬레이브 디바이스로서,
    직렬 주변장치 인터페이스의 슬레이브 선택 라인에 커플링된 수신 회로;
    저 임피던스로 상기 직렬 주변장치 인터페이스의 상기 슬레이브 선택 라인을 선택적으로 구동하도록 구성된 라인 드라이버;
    상기 직렬 주변장치 인터페이스로부터 데이터를 수신하도록 구성된 수신 버퍼; 및
    플로우 제어 로직을 포함하고,
    상기 플로우 제어 로직은,
    상기 직렬 주변장치 인터페이스를 통해 통신하기 위해 상기 슬레이브 디바이스가 선택되는 때를 결정하기 위해 상기 수신 회로의 출력을 모니터링하는 것으로서, 상기 슬레이브 선택 라인이 제 1 전압 레벨에 있을 때 상기 슬레이브 디바이스가 통신을 위해 선택되는, 상기 수신 회로의 출력을 모니터링하는 것을 행하고;
    상기 슬레이브 디바이스에서의 상기 수신 버퍼의 점유를 모니터링하며; 그리고
    상기 슬레이브 디바이스가 통신을 위해 선택되고 상기 수신 버퍼의 상기 점유가 임계 점유 레벨과 동일하거나 임계 점유 레벨을 초과하는 레벨에 있을 때, 상기 라인 드라이버로 하여금 상기 슬레이브 선택 라인을 제 2 전압 레벨로 구동하게 하도록
    구성되는, 슬레이브 디바이스.
  25. 제 24 항에 있어서,
    상기 플로우 제어 로직은, 상기 수신 버퍼의 상기 점유가 상기 임계 점유 레벨 미만의 레벨로 떨어진 후에, 상기 슬레이브 선택 라인을 상기 제 1 전압 상태로 복귀시키게 하도록 구성되는, 슬레이브 디바이스.
  26. 제 24 항에 있어서,
    상기 라인 드라이버는, 상기 슬레이브 선택 라인을 상기 제 1 전압 레벨로 구동하기 위해 마스터 디바이스에 의해 사용되는 드라이버의 출력 임피던스보다 더 낮은 출력 임피던스로 상기 슬레이브 선택 라인을 상기 제 2 전압 레벨로 구동하도록 구성되는, 슬레이브 디바이스.
  27. 제 24 항에 있어서,
    상기 플로우 제어 로직은,
    상기 수신 버퍼의 점유가 상기 임계 점유 레벨 미만의 레벨에 있을 때, 저 임피던스로 상기 슬레이브 선택 라인을 구동하도록 상기 라인 드라이버를 구성하고; 그리고
    상기 수신 버퍼의 점유가 상기 임계 점유 레벨 미만의 레벨에 있을 때, 개방-회로 동작 모드에 진입하도록 상기 라인 드라이버를 구성하도록
    구성되는, 슬레이브 디바이스.
  28. 제 27 항에 있어서,
    상기 플로우 제어 로직은, 상기 라인 드라이버로 하여금 상기 개방-회로 동작 모드에 진입하기 전에 상기 슬레이브 선택 라인을 상기 제 1 전압 레벨로 구동하게 하도록 구성되는, 슬레이브 디바이스.
  29. 제 27 항에 있어서,
    키퍼 회로는, 상기 라인 드라이버가 상기 개방-회로 동작 모드에 진입한 후에, 상기 슬레이브 선택 라인의 시그널링 상태를 유지하도록 구성되는, 슬레이브 디바이스.
KR1020187016215A 2015-12-10 2016-11-15 하드웨어 플로우-제어를 갖는 강화된 직렬 주변장치 인터페이스 KR20180092972A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562265877P 2015-12-10 2015-12-10
US62/265,877 2015-12-10
US15/348,435 US10140243B2 (en) 2015-12-10 2016-11-10 Enhanced serial peripheral interface with hardware flow-control
US15/348,435 2016-11-10
PCT/US2016/062106 WO2017099959A1 (en) 2015-12-10 2016-11-15 Enhanced serial peripheral interface with hardware flow-control

Publications (1)

Publication Number Publication Date
KR20180092972A true KR20180092972A (ko) 2018-08-20

Family

ID=57442825

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187016215A KR20180092972A (ko) 2015-12-10 2016-11-15 하드웨어 플로우-제어를 갖는 강화된 직렬 주변장치 인터페이스

Country Status (9)

Country Link
US (1) US10140243B2 (ko)
EP (1) EP3387542B1 (ko)
JP (1) JP2018536942A (ko)
KR (1) KR20180092972A (ko)
CN (1) CN108369569B (ko)
AU (1) AU2016369271A1 (ko)
BR (1) BR112018011598A2 (ko)
TW (1) TW201729110A (ko)
WO (1) WO2017099959A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170371830A1 (en) * 2016-06-28 2017-12-28 Qualcomm Incorporated Accelerated i3c master stop
US9734099B1 (en) * 2017-04-27 2017-08-15 Micro Lambda Wireless, Inc. QSPI based methods of simultaneously controlling multiple SPI peripherals
US10459869B2 (en) * 2017-12-17 2019-10-29 Himax Technologies Limited Electronic apparatus and operation method thereof
CN110008155B (zh) * 2018-01-04 2023-02-28 奇景光电股份有限公司 电子装置及其操作方法
US11288215B2 (en) * 2020-08-28 2022-03-29 Juniper Networks, Inc. Mapped register access by microcontrollers
CN114138700B (zh) * 2021-12-03 2023-11-24 西安广和通无线软件有限公司 一种串口数据传输的流控方法、装置、设备及存储介质
TWI812194B (zh) * 2022-04-27 2023-08-11 凌通科技股份有限公司 序列周邊介面相容性擴展切換方法與使用其之嵌入式系統
CN114911743B (zh) * 2022-07-12 2022-10-25 杭州晶华微电子股份有限公司 Spi从机设备、spi主机设备和相关的通信方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3134819B2 (ja) 1997-06-04 2001-02-13 ソニー株式会社 データ処理装置
US5933025A (en) * 1997-01-15 1999-08-03 Xilinx, Inc. Low voltage interface circuit with a high voltage tolerance
US7171542B1 (en) * 2000-06-19 2007-01-30 Silicon Labs Cp, Inc. Reconfigurable interface for coupling functional input/output blocks to limited number of i/o pins
US20030028864A1 (en) 2001-01-29 2003-02-06 Matt Bowen System, method and article of manufacture for successive compilations using incomplete parameters
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
US6957284B2 (en) 2002-01-16 2005-10-18 Microsoft Corporation System and method for pendant bud for serially chaining multiple portable pendant peripherals
JP4834294B2 (ja) 2004-01-07 2011-12-14 日立オートモティブシステムズ株式会社 データ通信装置及びそれを用いたコントローラ
US20050223141A1 (en) * 2004-03-31 2005-10-06 Pak-Lung Seto Data flow control in a data storage system
US20060143348A1 (en) * 2004-12-29 2006-06-29 Wilson Matthew T System, method, and apparatus for extended serial peripheral interface
US7509445B2 (en) 2006-04-12 2009-03-24 National Instruments Corporation Adapting a plurality of measurement cartridges using cartridge controllers
JP4066383B2 (ja) 2006-07-06 2008-03-26 シチズンホールディングス株式会社 通信装置および通信制御方法、並びに当該通信装置を備えたプリンタ
TWI334547B (en) * 2007-06-07 2010-12-11 Via Tech Inc System and method for serial peripheral interface data transmission
US7755412B2 (en) 2008-04-01 2010-07-13 Kyocera Corporation Bi-directional level shifted interrupt control
US8732366B2 (en) 2012-04-30 2014-05-20 Freescale Semiconductor, Inc. Method to configure serial communications and device thereof

Also Published As

Publication number Publication date
EP3387542A1 (en) 2018-10-17
CN108369569B (zh) 2021-04-27
EP3387542B1 (en) 2019-12-25
TW201729110A (zh) 2017-08-16
AU2016369271A1 (en) 2018-05-24
JP2018536942A (ja) 2018-12-13
US10140243B2 (en) 2018-11-27
US20170168978A1 (en) 2017-06-15
BR112018011598A2 (pt) 2018-11-27
CN108369569A (zh) 2018-08-03
WO2017099959A1 (en) 2017-06-15

Similar Documents

Publication Publication Date Title
KR20180092972A (ko) 하드웨어 플로우-제어를 갖는 강화된 직렬 주변장치 인터페이스
US10482055B2 (en) Hardware event priority sensitive programmable transmit wait-window for virtual GPIO finite state machine
KR20180092969A (ko) 메시징을 위한 최적의 레이턴시 패킷화기 유한 상태 머신 및 입력/출력 트랜스퍼 인터페이스들
US11256651B2 (en) Multiple master, multi-slave serial peripheral interface
WO2016144828A1 (en) Impedance-based flow control for a two-wire interface system with variable frame length
US10579549B2 (en) Staggered transmissions on a multi-drop half-duplex bus
US10572438B1 (en) Dynamic optimal data sampling time on a multi-drop bus
US20180260357A1 (en) I2c clock stretch over i3c bus
KR20190006487A (ko) 라인 멀티플렉싱된 uart 플로우 제어를 위한 디지털 시그널링 방식들
US20190018818A1 (en) Accelerated i3c stop initiated by a third party
US20180181532A1 (en) Data transfer ending in phase differential modes
US10545886B2 (en) Clock line driving for single-cycle data over clock signaling and pre-emption request in a multi-drop bus
US10684981B2 (en) Fast termination of multilane single data rate transactions
US20170371830A1 (en) Accelerated i3c master stop
US20190171611A1 (en) Protocol-framed clock line driving for device communication over master-originated clock line
US20180357121A1 (en) Error correction calculation upon serial bus abort
US20200042750A1 (en) Secure access for system power management interface (spmi) during boot
US11023408B2 (en) I3C single data rate write flow control
CN117222994A (zh) 使用共享时钟和专用数据线的i2c总线架构
US20180181533A1 (en) Ending write data transfer in i3c hdr-ddr mode