CN108369569A - 与硬件流控制的增强型串行外围接口 - Google Patents

与硬件流控制的增强型串行外围接口 Download PDF

Info

Publication number
CN108369569A
CN108369569A CN201680071711.5A CN201680071711A CN108369569A CN 108369569 A CN108369569 A CN 108369569A CN 201680071711 A CN201680071711 A CN 201680071711A CN 108369569 A CN108369569 A CN 108369569A
Authority
CN
China
Prior art keywords
selection line
equipment
voltage state
line
voltage
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201680071711.5A
Other languages
English (en)
Other versions
CN108369569B (zh
Inventor
L·J·米什拉
R·D·韦斯特费尔特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN108369569A publication Critical patent/CN108369569A/zh
Application granted granted Critical
Publication of CN108369569B publication Critical patent/CN108369569B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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

用于实现通过串行外围接口耦合的各设备之间的硬件流控制的系统、方法和装置。一种用于使用串行外围接口来传送信息的方法,包括:通过断言从选择线上的第一电压状态来发起在串行外围接口总线的一个或多个数据线上的数据交换,在从选择线保持在第一电压状态的同时在该串行外围接口总线上传送数据和时钟信号,在从选择线转变到第二第一电压状态时抑制在该串行外围接口总线上传送数据和时钟信号,在从选择线保持在第一电压状态的同时在从设备处将数据接收到接收缓冲器中,以及当该接收缓冲器的占用率达到或超过阈值占用率水平时,断言该从选择线上的第二电压状态。

Description

与硬件流控制的增强型串行外围接口
相关申请的交叉引用
本申请要求于2015年12月10日向美国专利商标局提交的临时专利申请No.62/265,877以及于2016年11月10日向美国专利商标局提交的非临时专利申请No.15/348,435的优先权及其权益。
技术领域
本公开一般涉及串行外围接口的操作,尤其涉及串行外围接口中硬件流控制的实现。
背景
移动通信设备可包括各种各样的组件,包括电路板、集成电路(IC)设备和/或片上系统(SoC)设备。各组件可包括通过串行总线进行通信的处理设备、用户界面组件、存储和其他外围组件。通用串行接口在本领域公知,包括串行外围接口(SPI),其通常被包括在移动通信设备中以在处理器与各种外围设备之间提供同步串行通信。
在一个示例中,SoC用作SPI主设备,该SPI主设备通过SPI总线耦合至被配置为从SPI设备的外围设备。主设备在SPI总线的时钟线上提供时钟信号,其中该时钟信号控制主设备与从设备之间的同步串行数据交换。可以使用SPI总线的两个或更多个数据线来传达数据。由于数据线中的一者或多者可以由多个从设备共享,所以SPI总线为每一从设备提供从选择线以控制对共享数据线的访问。
采用SPI总线的常规系统可以实现基于软件的流控制,其将等待时间引入通信链路。等待时间在诸如用于显示器覆盖触摸接口的接口中或者在具有如通过到NOR-闪存的SPI接口实现的原地执行(XIP)方法的系统中可能是有问题的。当前SPI接口技术越来越难以满足越来越多的链路吞吐量以及快速响应流控制要求。
随着移动通信设备继续包括更高级的功能性,需要改善的串行通信技术来支持外围设备与应用处理器之间的低等待时间传输。
概述
本公开的某些方面涉及能够为使用SPI总线耦合至主设备的从设备提供经优化的低等待时间硬件流控制的系统、装置、方法和技术。硬件流控制可以在不在从设备或主设备上指派附加引脚的情况下被实现。
在本公开的各方面,一种用于使用串行外围接口来传送信息的方法,包括:在主设备处,通过断言从选择线上的第一电压状态来发起在串行外围接口总线的一个或多个数据线上的数据交换;在从选择线保持在第一电压状态的同时在该串行外围接口总线上从主设备传送数据和时钟信号;在从选择线转变到第二第一电压状态时抑制在该串行外围接口总线上从主设备传送数据和时钟信号;在从选择线保持在第一电压状态的同时在从设备处将数据接收到接收缓冲器中;以及当接收缓冲器的占用率达到或超过阈值占用率水平时,由从设备断言从选择线上的第二电压状态。
在一些方面,主设备具有第一驱动器电路,该第一驱动器电路被配置成使用高阻抗输出将从选择线驱动至第一电压状态,并且从设备具有第二驱动器电路,该第二驱动器电路被配置成使用低阻抗输出将从选择线驱动至第一电压状态。第一驱动器电路和第二驱动器电路的阻抗被选择成,使得当高阻抗输出试图将从选择线驱动至第一电压状态时低阻抗输出被启用以将从选择线驱动至第二电压状态,并且反之亦然。
在一些方面,断言从选择线上的第一电压状态包括致使主设备的线驱动器将从选择线朝向第一电压状态驱动,并且在从选择线达到第一电压状态时致使主设备的线驱动器进入开路操作模式。主设备可包括保持器电路,该保持器电路被配置成在线驱动器已进入开路操作模式之后维持从选择线的信令状态。
在一方面,该方法可包括,在从设备已经断言从选择线上的第二电压状态后,当接收缓冲器的占用率落在阈值占用率水平之下时,使用从设备的线驱动器来断言从选择线上的第一电压状态。
在一些方面,该方法包括在从设备处监视接收缓冲器的占用率,监视从选择线的电压状态,以及在从选择线的电压状态处于第一电压状态并且占用率处于等于或超过阈值占用率水平的水平时致使从设备的驱动器将从选择线驱动至第二电压状态。该方法可包括在致使线驱动器电路断言第二电压状态之后并且在占用率落在低于阈值占用率水平之下的水平之后使从选择线返回至第一电压状态。
在本公开的各方面,一种装置具有多线串行外围接口总线、耦合至该串行外围接口总线的主设备、以及耦合至该串行外围接口总线的从设备,其中从设备具有接收缓冲器。主设备可以被适配成断言从选择线上的第一电压状态以发起在串行外围接口总线的一个或多个数据线上的数据交换。主设备可以被适配成在从选择线保持在第一电压状态的同时在串行外围接口总线的时钟线上传送时钟信号。数据交换可以与该时钟信号同步。主设备可以被适配成在从选择线处于第二电压状态的同时抑制在一个或多个数据线上传送数据。从设备可以被适配成在从选择线保持在第一电压状态的同时将数据接收到接收缓冲器中,并且在接收缓冲器的占用率达到或超过阈值占用率水平时断言从选择线上的第二电压状态。
在一些方面,主设备包括第一驱动器电路,该第一驱动器电路被配置成使用高阻抗输出将从选择线驱动至第一电压状态,并且从设备包括第二驱动器电路,该第二驱动器电路被配置成使用低阻抗输出将从选择线驱动至第一电压状态。第一驱动器电路和第二驱动器电路的阻抗可以被选择成,使得当高阻抗输出试图将从选择线驱动至第一电压状态时低阻抗输出被启用以将从选择线驱动至第二电压状态。
在一些方面,主设备可以被适配成通过致使线驱动器将从选择线朝向第一电压状态驱动并且在从选择线达到第一电压状态时致使线驱动器进入开路操作模式来断言第一电压状态。主设备可包括保持器电路,该保持器电路被配置成在线驱动器已进入开路操作模式之后维持从选择线的信令状态。
在一方面,从设备被适配成在断言从选择线上的第二电压状态之后并且在接收缓冲器的占用率落在阈值占用率水平之下时断言从选择线上的第一电压状态。
在一些方面,从设备包括流控制决策电路,该流控制决策电路被配置成监视接收缓冲器的占用率,监视从选择线的电压状态,并且在从选择线的电压状态处于第一电压状态并且占用率处于等于或超过阈值占用率水平的水平时致使线驱动器电路断言从选择线上的第二电压状态。该流控制决策电路可被配置成在致使线驱动器电路断言第二电压状态之后并且在占用率落在低于阈值占用率水平之下的水平之后致使线驱动器电路使从选择线返回至第一电压状态。
在本公开的各方面,一种装备,包括:用于断言串行外围接口总线的从选择线上的第一电压状态的装置,用于在该串行外围接口总线上传送数据和时钟信号的装置。第一电压状态可以在从选择线上被断言以发起在串行外围接口总线的一个或多个数据线上的数据交换。用于传送数据和时钟信号的装置可被配置成在从选择线保持在第一电压状态的同时从主设备向从设备传送数据,并且在从选择线从第一电压状态转变到第二电压状态时抑制从主设备向从设备传送数据。从设备可以被配置成在从选择线保持在第一电压状态的同时将数据接收到接收缓冲器中,并且在接收缓冲器的占用率达到或超过阈值占用率水平时断言从选择线上的第二电压状态。
在一些方面,主设备可包括第一驱动器电路,该第一驱动器电路被配置成使用高阻抗输出将从选择线驱动至第一电压状态,并且从设备可包括第二驱动器电路,该第二驱动器电路被配置成使用低阻抗输出将从选择线驱动至第一电压状态。第一驱动器电路和第二驱动器电路的阻抗可以被选择成,使得当高阻抗输出试图将从选择线驱动至第一电压状态时低阻抗输出被启用以将从选择线驱动至第二电压状态。
在一些方面,用于断言从选择线上的第一电压状态的装置可被配置成致使主设备的线驱动器将从选择线朝向第一电压状态驱动,并且在从选择线达到第一电压状态时致使主设备的线驱动器进入开路操作模式。主设备可包括保持器电路,该保持器电路被配置成在线驱动器已进入开路操作模式之后维持从选择线的信令状态。
在一些方面,从设备可被配置成监视从设备处的接收缓冲器的占用率,监视从选择线的电压状态,以及在从选择线的电压状态处于第一电压状态并且占用率处于等于或超过阈值占用率水平的水平时将从选择线驱动至第二电压状态。用于断言从选择线上的第一电压状态的装置可被配置成在从设备停止驱动从选择线之后使从选择线返回至第一电压状态。
在各方面,耦合至串行外围接口的从设备具有:耦合至串行外围接口的从选择线的接收电路,被配置成用低阻抗选择性地驱动串行外围接口的从选择线的线驱动器,被配置成从串行外围接口接收数据的接收缓冲器,以及流控制逻辑。该流控制逻辑可以被配置成监视接收电路的输出以确定从设备何时被选择成用于在串行外围接口上进行通信,监视从设备处的接收缓冲器的占用率,以及在从设备被选择成用于通信并且接收缓冲器的占用率处于等于或超过阈值占用率水平的水平时致使线驱动器将从选择线驱动至第二电压电平。当从选择线处于第一电压电平时,从设备可以被选择成用于进行通信。
在一方面,该流控制逻辑可以被配置成在接收缓冲器的占用率落在低于阈值占用率水平的水平之后致使从选择线返回至第一电压电平。线驱动器可以被配置成用输出阻抗将从选择线驱动至第二电压电平,该输出阻抗低于由主设备用来将从选择线驱动至第一电压状态的驱动器的输出阻抗。
在一些方面,该流控制逻辑可以被适配成在接收缓冲器的占用率处于低于阈值占用率水平的水平时将线驱动器配置成用低阻抗来驱动从选择线,以及在接收缓冲器的占用率处于低于阈值占用率水平的水平时将线驱动器配置成进入开路操作模式。该流控制逻辑可以被配置成在线驱动器进入开路操作模式之前致使线驱动器将从选择线驱动至第一电压电平。保持器电路可以被配置成在线驱动器已进入开路操作模式之后维持从选择线的信令状态。
在本公开的各方面,公开了一种处理器可读存储介质。该存储介质可以是非瞬态存储介质,并且可以存储代码,该代码在由一个或多个处理器执行时致使该一个或多个处理器:通过断言从选择线上的第一电压状态来发起在串行外围接口总线的一个或多个数据线上的数据交换,在从选择线保持在第一电压状态的同时在该串行外围接口总线上从主设备传送数据和时钟信号,以及在从选择线从第一电压状态转变到第二电压状态时抑制在该串行外围接口总线上从主设备传送数据和时钟信号。在从选择线保持在第一电压状态的同时数据可以被接收到接收缓冲器中,并且从设备可以被配置成在接收缓冲器的占用率达到或超过阈值占用率水平时断言从选择线上的第二电压状态。
在一些方面,主设备可包括第一驱动器电路,该第一驱动器电路被配置成使用高阻抗输出将从选择线驱动至第一电压状态。从设备可包括第二驱动器电路,该第二驱动器电路被配置成使用低阻抗输出将从选择线驱动至第一电压状态。第一驱动器电路和第二驱动器电路的阻抗可以被选择成,使得当高阻抗输出试图将从选择线驱动至第一电压状态时低阻抗输出被启用以将从选择线驱动至第二电压状态。
在一些方面,可以通过致使主设备的线驱动器将从选择线朝向第一电压状态驱动,并且在从选择线达到第一电压状态时致使主设备的线驱动器进入开路操作模式来断言从选择线上的第一电压状态。主设备可包括保持器电路,该保持器电路被配置成在线驱动器已进入开路操作模式之后维持从选择线的信令状态。
在一些方面,在从设备已经断言从选择线上的第二电压状态之后,当接收缓冲器的占用率落在阈值占用率水平之下时,从设备可以使用线驱动器来断言从选择线上的第一电压状态。从设备可以被配置成监视从设备处的接收缓冲器的占用率,监视从选择线的电压状态,以及在从选择线的电压状态处于第一电压状态并且占用率处于等于或超过阈值占用率水平的水平时将从选择线驱动至第二电压状态。在从设备已断言第二电压状态之后并且在占用率落在低于阈值占用率水平之下的水平之后从选择线可以被返回至第一电压状态。
附图简要说明
图1解说了在各IC设备之间采用数据链路的装置,该数据链路根据多个可用标准之一来选择性地操作。
图2解说了可根据本文公开的某些方面适配的双数据线串行外围接口的某些方面。
图3解说了可根据本文公开的某些方面适配的四串行外围接口的某些方面。
图4解说了根据本文公开的某些方面的被适配成提供硬件流控制的双数据线串行外围接口。
图5解说了根据本文所公开的某些方面的可被用于提供硬件流控制的线驱动电路的示例。
图6解说了可根据本文公开的某些方面实现的流控制的第一示例。
图7解说了可根据本文公开的某些方面实现的流控制的第二示例。
图8解说采用可根据本文所公开的某些方面适配的处理电路的装置的一个示例。
图9是解说根据本文公开的某些方面的被适配成致使从设备获得多个动态地址的应用处理器的某些操作的流程图。
图10解说了根据本文公开的某些方面的被适配成对多个动态地址作出响应的装置的硬件实现的第一示例。
详细描述
以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文所描述的概念的仅有配置。本详细描述包括具体细节以提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在一些实例中,以框图形式示出众所周知的结构和组件以避免湮没此类概念。
现在将参照各种装置和方法给出本发明的若干方面。这些装置和方法将在以下详细描述中进行描述并在附图中由各种框、模块、组件、电路、步骤、过程、算法等(统称为“元素”)来解说。这些元素可使用电子硬件、计算机软件或其任何组合来实现。此类元素是实现成硬件还是软件取决于具体应用和加诸于整体系统上的设计约束。
概览
包括多个SoC的设备和其他IC设备常常采用串行总线来将处理器与调制解调器和其他外围设备连接。该串行总线可以根据所定义的多个协议来操作。在一个示例中,串行外围接口(SPI)可用于使耦合至支持数据和时钟信号的总线的多个设备互连。主设备使用从选择信号来选择多个从设备之一。点到点通信在主设备与所选从设备之间进行。在各示例中,SPI总线可被配置为2数据线SPI接口或4数据线四串行外围接口(QSPI)。在2数据线SPI中,数据线是单向的,而在QSPI中,数据线可以是双向的。QSPI可以比2数据线SPI提供更高的数据率。这两种SPI类型使用呈扇形散开至所有从设备的专用时钟线。这两种SPI类型使用专用从选择线,而主设备为该主设备所耦合的每一从设备提供至少一个从选择。
根据本文公开的某些方面,耦合至SPI的各设备可以被适配成提供物理链路级硬件流控制而不向主设备和从设备增加引脚。在一些实例中,主设备和从设备上的从选择线可以被适配成准许将从选择线用作流控制信号。当从选择线为活跃低或活跃高时,这些技术适用。
采用串行数据链路的装置的示例
根据某些方面,串行数据链路可被用于将作为装置的子组件的电子设备互连,该装置诸如蜂窝电话、智能电话、会话发起协议(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可以受到提供应用编程接口(API)层的操作系统的控制,应用编程接口(API)层使得一个或多个处理器112能够执行驻留在板载存储器114或处理电路102上提供的其他处理器可读存储122中的软件模块。软件模块可包括存储在板载存储器114或处理器可读存储122中指令和数据。ASIC 104可以访问其板载存储器114、处理器可读存储122、和/或处理电路102外部的存储。板载存储器114和/或处理器可读存储122可包括只读存储器(ROM)或随机存取存储器(RAM)、电可擦除可编程ROM(EEPROM)、闪存卡、或可以在处理系统和计算平台中使用的任何存储器设备。处理电路102可包括、实现或能够访问本地数据库或其他参数存储,该本地数据库或其他参数存储可维护用于配置和操作装置100和/或处理电路102的工作参数和其他信息。可使用寄存器、数据库模块、闪存、磁介质、EEPROM、软盘或硬盘等来实现本地数据库。处理电路102也可以可操作地耦合至外部设备,诸如天线124、显示器126、操作者控件(诸如开关或按钮128、130和/或集成或外部按键板132)、以及其他组件。用户接口模块可被配置成通过专用通信链路或通过一个或多个串行数据互连与显示器126一起操作,显示器126可以是触敏的并且可以接受用户输入、小键盘132等。
处理电路102可以提供使得某些设备104、106和/或108能够进行通信的一个或多个总线118a、118b、120。在一个示例中,ASIC 104可包括总线接口电路116,总线接口电路116包括电路、计数器、定时器、控制逻辑、和其他可配置电路或模块的组合。在一个示例中,总线接口电路116可被配置成根据某些通信规定或协议操作。处理电路102可包括或控制配置并且管理装置100的操作的功率管理功能。
串行外围接口的示例
图2解说了2数据线SPI 200的某些方面。主设备202可以被纳入SoC中,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。如所解说的,第一从选择线218(SSI)控制第一从设备204的总线访问,第二从选择线220(SS2)控制第二从设备206的总线访问,并且第三从选择线222(SS3)控制第三从设备204的总线访问。主设备202可以断言从选择线218、220、222以致使对应的从设备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,主设备202中的驱动器可以被用来基于针对从选择线218、220、222期望的断言状态来对从选择线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中,SoC用作应用处理器、主机处理器、或装置或系统的其他功能组件。主设备302通过多线缆总线308耦合至多个从设备304、306、310。主设备302通过多线缆总线310的四线缆数据信道314来与从设备304、306、308交换数据。四线缆数据信道314可被用于提供比图2中解说的双线缆单向信令方案更大的数据传递率。
多线缆总线310包括针对每一从设备304、306、308的至少一个从选择线。如所解说的,第一从选择线316(SSI)控制第一从设备304的总线访问,第二从选择线318(SS2)控制第二从设备306的总线访问,并且第三从选择线320(SS3)控制第三从设备304的总线访问。主设备302可以断言从选择线316、318、320以致使对应的从设备304、306、308向对应的从设备304、306、308授予许可以通过数据信道314传送或接收数据。
在一个示例中,当低电压电平被施加到从选择线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,主设备302中的驱动器可以被用来基于针对从选择线316、318、320期望的断言状态来对从选择线316、318、320充电和放电。
根据多线缆总线310的时钟线312上提供的时钟信号,在主设备302和从设备304、306、208之间传送数据。数据信道314上的数据传递被同步到时钟线312上提供的时钟信号。
针对SPI的硬件流控制
根据本文公开的某些方面适配的SPI主设备和SPI从设备可被配置成在通过SPI总线通信时实现硬件流控制。本文所公开的技术适用于不同类型的SPI总线,包括2数据线SPI200和QSPI 300。硬件流控制使得从设备能够指示准备好接收主设备202、302传送的数据。例如,当从设备204、206、208、304、306、308上的接收缓冲器是满的或者不具有足够的容量来接收新发起的数据传输时,从设备204、206、208、304、306、308可指示它未准备好接收数据。
图4解说了已经根据本文公开的某些方面适配的2数据线SPI 400。主设备402耦合至至少一个从设备404。在这一示例中,假定从选择线(SS1线420)被主设备402驱动到高电压状态以使得从设备404能够与主设备402通信。在其他示例中,SS1线420可以被主设备402驱动至低电压状态以使得从设备404能够与主设备402通信。
适配使得SS1线420能够被主设备402和对应的从设备404两者驱动。主设备402通过主出从进线(MOSI线414)将数据传送到从设备404。当从设备404被SS1线420上的信令状态启用时,从设备404可以通过共享主进从出线(MISO线412)将数据驱动至主设备402。主设备402可以断言SS1线420上的使能信令状态以准许从设备404传送和/或接收数据。根据时钟线上提供的时钟信号在主设备402和从设备404之间传送数据。
在涉及从设备404的读或写操作中,主设备402将SS1线420驱动至高电压状态以选择从设备404。SS1线420被主设备402使用驱动器406以高输出阻抗来驱动。从设备404可以被适配成读取SS1线420和驱动SS1线420两者。从设备404可包括被配置成检测SS1线420的信令状态的接收机418。从设备404可以通过使用线驱动器416以低输出阻抗将SS1线420驱动至低电压状态来断言流控制。主设备402包括被配置成读取SS1线420的信令状态的线接收机408。主设备402可以通过停止向从设备404的数据传输来对从设备404断言的低电压状态作出响应。
图5解说了根据本文公开的某些方面可被用于驱动SS1线420的线接口电路502、512的示例500。当从设备404希望断言流控制时,SS1线420可以被主设备402和从设备404同时驱动。主设备402中的线接口电路502包括线驱动器(Tx驱动器504),该线驱动器具有高阻抗输出并且微弱地断言SS1线420,不管断言是高电压状态还是低电压状态。从设备404中的线接口电路512包括线驱动器(RTS驱动器514),该线驱动器具有能够克服主设备402对SS1线420的弱断言的低阻抗输出。
主设备402中的Tx驱动器504呈现被解说为具有值RTX的电阻器508的输出阻抗。从设备404的RTS驱动器514呈现被解说为具有值RRTS的电阻器518的输出阻抗。SS1线420上观察到的电压VSS1通过电阻器508、518之间的关系(RTX和RRTS)来确定。例如,当Tx驱动器504的电阻器508耦合至Vdd电压时,SS1线420上观察到的电压VRX可以被计算为:
VSS1=RRTS/(RRX+RRTS)×VDD 式1
在一些实现中,在断言SS1线420上的电压状态之后,驱动器504、514可以被置于高阻抗状态中。保持器电路528可以被耦合至SS1线420以维持SS1线420上最后被断言的电压。保持器电路528被Tx驱动器504和RTS驱动器514两者容易地克服。在这些实现中,Tx驱动器504在释放SS1线420之前断言SS1线420上的使能状态。例如,使能状态可以是逻辑1状态(由高或低电压表示),并且保持器电路528保持逻辑1状态,直到驱动器504、514之一改变SS1线420的状态。当接收缓冲器被填充满容量或者接近满容量时,从设备404可以致使RTS驱动器514改变SS1线420的状态。
从设备404可包括流控制决策逻辑520,流控制决策逻辑520接收SS1线420的电流信令状态以及Rx_缓冲器_水平输入526,Rx_缓冲器_水平输入526指示例如从设备404中的接收缓冲器是否已经达到或超过标识最大占用率水平的缓冲器阈值。如果缓冲器阈值已经被达到,则从设备404可以致使RTS驱动器514将SS1线420从逻辑1状态驱动至逻辑0状态(即,当从设备404已经被主设备402启用时)。RTS驱动器514采用低阻抗驱动器,低阻抗驱动器能够克服主设备402驱动的典型逻辑1。当主设备已经对于从设备404断言了其内部使能信号(SS 522)时,SS1线420的盖写值致使主设备402中的“同”逻辑门510的输出(FCF 524)呈现逻辑0值,从而指示从设备404未准备好接收。当SS1线420处于逻辑1电平时,FCF 524处于逻辑1,从而指示从设备404准备好接收数据。当从设备404未被选择时,SS 522不被断言,SS1 420通常为高并且FCF具有逻辑0值,从而指示从设备404未准备好。从设备404可以通过盖写SS1高状态(致使FCF转变到逻辑0)来用信号指示发送请求,从而指示从设备404准备好。
流控制决策逻辑520可包括状态机、定序器、或另一合适的逻辑电路,该状态机、定序器、或另一合适的逻辑电路被配置成监视SS1线420的状态以及Rx_缓冲器_水平输入526并且实现本文公开的基于阻抗的流控制规程和协议。在一些实例中,可以使用处理器或处理器和逻辑电路的某一组合来实现流控制决策逻辑520。从设备404可以能够控制RTS驱动器514的输出阻抗。在一些示例中,从设备404可以在必要时使得RTS驱动器514能够指示未准备好状态并且在从设备404准备好时可以禁用RTS驱动器514。在后一示例中,SS1线420被Tx驱动器504的内部电阻器508或被保持器电路528拉至表示逻辑1状态的电压。
保持器电路528可以在主设备402和/或从设备404中被提供。在一些实例中,保持器电路528可以被主设备402或从设备404控制,以使得主设备402或从设备404可以迫使SS1线420上的状态变化。例如,流控制决策逻辑520可以在SS1线420处于低状态时用信号向保持器电路528指示以将SS1线420驱动至高状态,和/或流控制决策逻辑520可以在SS1线420处于高状态时用信号向保持器电路528指示将SS1线420驱动至低状态。
在FCF输出信号524处于逻辑0的同时,主设备402可以抑制在MOSI线414上传送数据。主设备402可以通过停止、放缓或门控时钟线410上传送的时钟信号来停止数据传输。当对“同”逻辑门510的输入具有相同的被断言状态时,可以确定准备好接收的状态。FCF输出信号524因而被高断言至二进制一状态以用信号表明从设备404准备好接收数据。
主设备402和从设备404可包括实现流控制的附加逻辑和电路。在一个示例中,主设备402可包括线接收机(CTS接收机506),该线接收机被配置成监视SS1线420的信令状态,该信令状态可以不同于SS 522上断言的状态。在另一示例中,从设备404可包括线接收机(Rx接收机516),该线接收机被配置成监视SS1线420的信令状态,该信令状态可以不同于从设备404通过RTS驱动器514所断言的状态。
如参考图4和5中的示例所讨论的,硬件流控制可以被实现各设备中,其中SS1线420载送从选择信号,该从选择信号在SS1线420处于高电压状态时启用设备,或者硬件流控制可以被实现在各设备中,其中SS1线420载送从选择信号,该从选择信号在SS1线420处于低电压状态时启用设备。可以使用任何逻辑等级指派实现本文公开的原理以用信号指示SS1线420上和/或主设备402或从设备404内的状态。出于以下流程图的目的,可以假定逻辑1由高电压电平(例如,Vdd或电源电压电平)表示并且逻辑0由低电压电平(例如,0伏或电源接地)表示。
图6解说了可以由状态机、定序器逻辑和/或由处理器实现的流控制600的示例。在这一示例中,当SS1线420被设置为逻辑0(可以由低电压电平表示),从设备404被启用以在SPI总线上通信。
在框602,主设备402可致使其Tx驱动器504使用高电阻值输出电阻器508将对应的从设备404的SS1线420驱动至逻辑0状态。逻辑0可以被表示为接地电压电平。逻辑0状态可以由流控制决策逻辑520通过Rx接收机516来检测。在框604,流控制决策逻辑520可以基于Rx_缓冲器_水平输入526的状态来确定从设备404中的接收缓冲器的状态。如果从设备404中的接收缓冲器低于第一阈值占用率水平(例如,水印阈值),则从设备404可以在框606接收数据。流控制决策逻辑520继续监视Rx_缓冲器_水平输入526。在某一点,流控制决策逻辑520可以在框604确定从设备404中的接收缓冲器已经达到或超过第一阈值占用率水平,并且可以继续至框608以断言流控制。
在框608,流控制决策逻辑520致使RTS驱动器514使用低电阻值输出电阻器518将SS1线420驱动至逻辑1状态。逻辑1可以被表示为电源电压。主设备402可以停止数据传输。流控制决策逻辑520继续监视Rx_缓冲器_水平输入526。在某一点,流控制决策逻辑520可以在框610确定从设备404中的接收缓冲器已经落在第二阈值占用率水平以下,并且可以在继续在框606接收数据之前禁用RTS驱动器514或者以其他方式致使SS1线420返回至逻辑0状态。第二阈值占用率水平可具有与第一阈值占用率动作315相同的值或者可具有不同于第一阈值占用率的值。
图7解说了可以由状态机、定序器逻辑和/或由处理器实现的流控制700的示例。在这一示例中,当SS1线420被设置为逻辑1(可以由高电压电平表示),从设备404被启用以在SPI总线上通信。
在框702,主设备402可致使其Tx驱动器504使用高电阻值输出电阻器508将对应的从设备404的SS1线420驱动至逻辑1状态。逻辑1可以被表示为电源电压。逻辑1状态可以由流控制决策逻辑520通过Rx接收机516来检测。在框704,流控制决策逻辑520可以基于Rx_缓冲器_水平输入526的状态来确定从设备404中的接收缓冲器的状态。如果从设备404中的接收缓冲器低于第一阈值占用率水平(例如,水印阈值),则从设备404可以在框706接收数据。流控制决策逻辑520继续监视Rx_缓冲器_水平输入526。在某一点,流控制决策逻辑520可以在框704确定从设备404中的接收缓冲器已经达到或超过第一阈值占用率水平,并且可以继续至框708以断言流控制。
在框708,流控制决策逻辑520致使RTS驱动器514使用低电阻值输出电阻器518将SS1线420驱动至逻辑0状态。逻辑0可以被表示为接地电压电平。主设备402可以停止数据传输。流控制决策逻辑520继续监视Rx_缓冲器_水平输入526。在某一点,流控制决策逻辑520可以在框710确定从设备404中的接收缓冲器已经落在第二阈值占用率水平以下,并且可以在继续在框706接收数据之前禁用RTS驱动器514或者以其他方式致使SS1线420返回至逻辑1状态。第二阈值占用率水平可具有与第一阈值占用率水平相同的值或者可具有不同于第一阈值占用率的值。
处理电路和方法的示例
图8是解说采用SPI总线的装置800的硬件实现的示例的示图。在一些示例中,装置800可以执行本文公开的一个或多个功能。根据本公开的各种方面,可使用处理电路802来实现本文所公开的元素、或元素的任何部分、或者元素的任何组合。处理电路802可包括一个或多个处理器804,其由硬件和软件模块的某种组合来控制。处理器804的示例包括:微处理器、微控制器、数字信号处理器(DSP)、SoC、ASIC、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、状态机、定序器、门控逻辑、分立的硬件电路、以及其他配置成执行本公开中通篇描述的各种功能性的合适硬件。该一个或多个处理器804可包括执行特定功能并且可由软件模块816之一来配置、增强或控制的专用处理器。该一个或多个处理器804可通过在初始化期间加载的软件模块816的组合来配置,并且通过在操作期间加载或卸载一个或多个软件模块816来进一步配置。
在所解说的示例中,可使用由总线810一般化地表示的总线架构来实现处理电路802。取决于处理电路802的具体应用和整体设计约束,总线810可包括任何数目的互连总线和桥接器。总线810将各种电路链接在一起,包括一个或多个处理器804、和存储806。存储806可包括存储器设备和大容量存储设备,并且在本文可被称为计算机可读介质和/或处理器可读介质。总线810还可链接各种其他电路,诸如定时源、定时器、外围设备、稳压器、和功率管理电路。总线接口808可提供总线810与一个或多个收发机812之间的接口。可针对处理电路所支持的每种联网技术来提供收发机812。在一些实例中,多种联网技术可共享收发机812中找到的电路系统或处理模块中的一些或全部。每个收发机812提供用于通过传输介质与各种其它装置通信的手段。取决于该装置800的本质,也可提供用户接口818(例如,按键板、显示器、扬声器、话筒、操纵杆),并且该用户接口818可直接或通过总线接口808通信地耦合至总线810。
处理器804可负责管理总线810和一般处理,包括对存储在计算机可读介质(其可包括存储806)中的软件的执行。在这一方面,处理电路802(包括处理器804)可被用来实现本文所公开的方法、功能和技术中的任一种。存储806可被用于存储处理器804在执行软件时操纵的数据,并且该软件可被配置成实现本文所公开的方法中的任一种。
处理电路802中的一个或多个处理器804可执行软件。软件应当被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数、算法等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。软件可按计算机可读形式驻留在存储806中或驻留在外部计算机可读介质中。外部计算机可读介质和/或存储806可包括非瞬态计算机可读介质。作为示例,非瞬态计算机可读介质包括:磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩碟(CD)或数字多功能碟(DVD))、智能卡、闪存设备(例如,“闪存驱动器”、卡、棒、或钥匙驱动器)、RAM、ROM、可编程只读存储器(PROM)、可擦式PROM(EPROM)(包括电EEPROM)、寄存器、可移动盘、以及任何其他用于存储可由计算机访问和读取的软件和/或指令的合适介质。作为示例,计算机可读介质和/或存储806还可包括载波、传输线、和任何其它用于传送可由计算机访问和读取的软件和/或指令的合适介质。计算机可读介质和/或存储806可驻留在处理电路802中、处理器804中、在处理电路802外部、或跨包括该处理电路802在内的多个实体分布。计算机可读介质和/或存储806可实施在计算机程序产品中。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。本领域技术人员将认识到如何取决于具体应用和加诸于整体系统上的总体设计约束来最佳地实现本公开中通篇给出的所描述的功能性。
存储806可维持以可加载代码段、模块、应用、程序等来维持和/或组织的软件,其在本文中可被称为软件模块816。软件模块816中的每一者可包括在安装或加载到处理电路802上并由一个或多个处理器804执行时有助于运行时映像814的指令和数据,运行时映像814控制一个或多个处理器804的操作。在被执行时,某些指令可使得处理电路802执行根据本文所描述的某些方法、算法和过程的功能。
软件模块816中的一些可在处理电路802初始化期间被加载,并且这些软件模块816可配置处理电路802以实现本文所公开的各种功能的执行。例如,一些软件模块816可配置处理器804的内部设备和/或逻辑电路822,并且可管理对外部设备(诸如,收发机812、总线接口808、用户接口818、定时器、数学协处理器等)的访问。软件模块816可包括控制程序和/或操作系统,其与中断处理程序和设备驱动器交互并且控制对由处理电路802提供的各种资源的访问。这些资源可包括存储器、处理时间、对收发机812的访问、用户接口818等。
处理电路802的一个或多个处理器804可以是多功能的,由此软件模块816中的一些被加载和配置成执行不同功能或相同功能的不同实例。这一个或多个处理器804可附加地被适配成管理响应于来自例如用户接口818、收发机812和设备驱动器的输入而发起的后台任务。为了支持多个功能的执行,这一个或多个处理器804可被配置成提供多任务环境,由此多个功能中的每个功能按需或按期望实现为由一个或多个处理器804服务的任务集。在一个示例中,可使用分时程序820来实现多任务环境,分时程序820在不同任务之间传递对处理器804的控制权,由此每个任务在完成任何未决操作之际和/或响应于输入(诸如中断)而将对一个或多个处理器804的控制权返回给分时程序820。当任务具有对一个或多个处理器804的控制权时,处理电路有效地专用于由与控制方任务相关联的功能所针对的目的。分时程序820可包括操作系统、在循环基础上传递控制权的主环路、根据各功能的优先级化来分配对一个或多个处理器804的控制权的功能、和/或通过将对一个或多个处理器804的控制权提供给处置功能来对外部事件作出响应的中断驱动式主环路。
图9是用于使用串行外围接口交换信息的方法的流程图900。在框902,主设备可以通过断言从选择线上的第一电压状态来发起在串行外围接口总线的一个或多个数据线上的数据交换。
在框904,在从选择线保持在第一电压状态的同时,主设备402可以在串行外围接口总线上传送数据和时钟信号。
在框906,主设备402可以在从选择线转变到第二第一电压状态时抑制在该串行外围接口总线上传送数据和时钟信号。
在框908,从设备404可以在从选择线保持在第一电压状态的同时将数据接收到接收缓冲器中。
在框910,当接收缓冲器的占用率达到或超过阈值占用率水平时,从设备404可以断言该从选择线上的第二电压状态。
在一些示例中,主设备402可包括第一驱动器电路,该第一驱动器电路被配置成使用高阻抗输出将从选择线驱动至第一电压状态。从设备404可包括第二驱动器电路,该第二驱动器电路被配置成使用低阻抗输出将从选择线驱动至第一电压状态。第一驱动器电路和第二驱动器电路的阻抗可以被选择成,使得当高阻抗输出试图将从选择线驱动至第一电压状态时低阻抗输出被启用以将从选择线驱动至第二电压状态。
在一些示例中,断言从选择线上的第一电压状态包括致使主设备402的线驱动器将从选择线朝向第一电压状态驱动,并且在从选择线达到第一电压状态时致使主设备402的线驱动器进入开路操作模式。主设备402和/或从设备404可包括保持器电路528,该保持器电路528被配置成在线驱动器已进入开路操作模式之后维持从选择线的信令状态。
在一个示例中,在从设备404已经断言从选择线上的第二电压状态之后,当接收缓冲器的占用率落在阈值占用率水平之下时,从设备404的线驱动器可用于断言从选择线上的第一电压状态。
在一些示例中,从设备404可监视接收缓冲器的占用率,监视从选择线的电压状态,以及在从选择线的电压状态处于第一电压状态并且占用率处于等于或超过阈值占用率水平的水平时致使从设备404的驱动器将从选择线驱动至第二电压状态。从设备404可在致使线驱动器电路断言第二电压状态之后并且在占用率落在低于阈值占用率水平之下的水平之后使从选择线返回至第一电压状态。
图10是解说采用处理电路1002的装置1000的硬件实现的简化示例的示图。该装置可实现根据本文公开的某些方面的桥接电路。处理电路通常具有控制器或处理器1016,该控制器或处理器1016可包括一个或多个微处理器、微控制器、数字信号处理器、定序器和/或状态机。可以用由总线1020一般化地表示的总线架构来实现处理电路1002。取决于处理电路1002的具体应用和整体设计约束,总线1020可包括任何数目的互连总线和桥接器。总线1020将包括一个或多个处理器和/或硬件模块(由控制器或处理器1016、模块或电路1004、1006和1008以及计算机可读存储介质1018表示)的各种电路链接在一起。该装置可以使用物理层电路1014耦合至多线缆通信链路。物理层电路1014可将多线缆通信链路作为串行外围接口总线1012来操作。总线1020还可链接各种其他电路(诸如定时源、外围设备、稳压器和功率管理电路),这些电路在本领域中是众所周知的,并且因此将不再进一步描述。
处理器1016负责一般性处理,包括执行存储在计算机可读存储介质1018上的软件、代码和/或指令。该计算机可读介质可包括非瞬态存储介质。该软件在由处理器1016执行时使处理电路1002执行上文针对任何特定装置描述的各种功能。计算机可读存储介质可被用于存储由处理器1016在执行软件时操纵的数据。处理电路1002进一步包括模块1004、1006和1008中的至少一个模块。模块1004、1006和1008可以是在处理器1016中运行的软件模块、驻留/存储在计算机可读存储介质1018中、是耦合至处理器1016的一个或多个硬件模块、或是其某个组合。模块1004、1006和1008可包括微控制器指令、状态机配置参数、或其某种组合。
在一种配置中,装置1000包括模块和/或电路1008,该模块和/或电路1008被配置成断言从选择线上的第一电压状态以发起在串行外围接口总线1012的一个或多个数据线上的数据交换。装置1000可包括被配置成监视接收缓冲器的占用率的模块和/或电路1006,以及被配置成在接收缓冲器的占用率达到或超过阈值占用率水平时断言从选择线上的第二电压状态的模块和/或电路1008。
在各种示例中,装置1000可以被部署在耦合至串行外围接口总线1012的主设备402和/或从设备404。在一个示例中,耦合至串行外围接口总线1012的主设备402可以被适配成断言从选择线上的第一电压状态以发起在串行外围接口总线1012的一个或多个数据线上的数据交换,并且在从选择线保持在第一电压状态的同时在串行外围接口总线1012的时钟线上传送时钟信号。数据交换可以与该时钟信号同步。主设备402可以被进一步适配成在从选择线处于第二电压状态的同时抑制在一个或多个数据线上传送数据。主设备402被适配成通过致使线驱动器将从选择线朝向第一电压状态驱动并且在从选择线达到第一电压状态时致使线驱动器进入开路操作模式来断言第一电压状态。主设备402可包括或耦合至保持器电路528,该保持器电路528被配置成在线驱动器已进入开路操作模式之后维持从选择线的信令状态。
在另一示例中,耦合至串行外围接口总线1012的从设备404可包括接收缓冲器,并且被适配成在从选择线保持在第一电压状态的同时将数据接收到接收缓冲器中。当接收缓冲器的占用率达到或超过阈值占用率水平时,从设备404可以被适配成断言该从选择线上的第二电压状态。
主设备402可具有第一驱动器电路,该第一驱动器电路被配置成使用高阻抗输出将从选择线驱动至第一电压状态,并且从设备404可具有第二驱动器电路,该第二驱动器电路被配置成使用低阻抗输出将从选择线驱动至第一电压状态。第一驱动器电路和第二驱动器电路的阻抗可以被选择成,使得当高阻抗输出试图将从选择线驱动至第一电压状态时低阻抗输出被启用以将从选择线驱动至第二电压状态。从设备404可以被适配成当接收缓冲器的占用率提升到阈值占用率水平之上时已经断言从选择线上的第二电压状态之后,当接收缓冲器落在阈值占用率水平之下时断言从选择线上的第一电压状态。从设备404可包括流控制决策电路520,该流控制决策电路520被配置成监视接收缓冲器的占用率,监视从选择线的电压状态,并且在从选择线的电压状态处于第一电压状态并且占用率处于等于或超过阈值占用率水平的水平时致使线驱动器电路断言从选择线上的第二电压状态。该流控制决策电路520可被配置成在致使线驱动器电路断言第二电压状态之后并且在占用率落在低于阈值占用率水平之下的水平之后致使线驱动器电路使从选择线返回至第一电压状态。
在另一示例中,主设备402可包括被适配成断言串行外围接口总线1012的从选择线上的第一电压状态的模块或电路,被适配成在串行外围接口总线1012上传送数据和时钟信号的模块或电路。第一电压状态可以在从选择线上被断言以发起在串行外围接口总线1012的一个或多个数据线上的数据交换。被适配成传送数据和时钟信号的模块或电路可被配置成在从选择线保持在第一电压状态的同时从主设备402向从设备404传送数据,并且在从选择线从第一电压状态转变到第二电压状态时抑制从主设备402向从设备404传送数据。从设备404可以被配置成在从选择线保持在第一电压状态的同时将数据接收到接收缓冲器中,并且在接收缓冲器的占用率达到或超过阈值占用率水平时断言从选择线上的第二电压状态。
主设备402可包括第一驱动器电路,该第一驱动器电路被配置成使用高阻抗输出将从选择线驱动至第一电压状态,并且从设备404可包括第二驱动器电路,该第二驱动器电路被配置成使用低阻抗输出将从选择线驱动至第一电压状态。第一驱动器电路和第二驱动器电路的阻抗可以被选择成,使得当高阻抗输出试图将从选择线驱动至第一电压状态时低阻抗输出被启用以将从选择线驱动至第二电压状态。
被适配成断言从选择线上的第一电压状态的模块或电路可被配置成致使主设备402的线驱动器将从选择线朝向第一电压状态驱动,并且在从选择线达到第一电压状态时致使主设备402的线驱动器进入开路操作模式。主设备402可具有或耦合至保持器电路528,该保持器电路528被配置成在线驱动器已进入开路操作模式之后维持从选择线的信令状态。
从设备404可以被配置成监视从设备404处的接收缓冲器的占用率,监视从选择线的电压状态,以及在从选择线的电压状态处于第一电压状态并且占用率处于等于或超过阈值占用率水平的水平时将从选择线驱动至第二电压状态。
被适配成断言从选择线上的第一电压状态的模块或电路可被配置成在从设备404停止驱动从选择线之后使从选择线返回至第一电压状态。
在另一示例中,耦合至串行外围接口总线1012的从设备404具有:耦合至串行外围接口总线1012的从选择线的接收电路,被配置成用低阻抗选择性地驱动串行外围接口总线1012的从选择线的线驱动器,被配置成从串行外围接口总线1012接收数据的接收缓冲器,以及流控制逻辑。流控制逻辑可以被包括在例如流控制决策电路520中。该流控制逻辑可以被配置成监视接收电路的输出以确定从设备404何时被选择成用于在串行外围接口总线1012上进行通信,监视从设备404处的接收缓冲器的占用率,以及在从设备404被选择成用于通信并且接收缓冲器的占用率处于等于或超过阈值占用率水平的水平时致使线驱动器将从选择线驱动至第二电压电平。当从选择线处于第一电压电平时,从设备404可以被选择成用于进行通信。
该流控制逻辑可以被配置成在接收缓冲器的占用率落在低于阈值占用率水平的水平之后致使从选择线返回至第一电压电平。线驱动器可以被配置成用输出阻抗将从选择线驱动至第二电压电平,该输出阻抗低于由主设备402用来将从选择线驱动至第一电压状态的驱动器的输出阻抗。该流控制逻辑可以被配置成在接收缓冲器的占用率处于低于阈值占用率水平的水平时将线驱动器配置成用低阻抗来驱动从选择线,以及在接收缓冲器的占用率处于低于阈值占用率水平的水平时将线驱动器配置成进入开路操作模式。该流控制逻辑可以被配置成在线驱动器进入开路操作模式之前致使线驱动器将从选择线驱动至第一电压电平。保持器电路528可以被配置成在线驱动器已进入开路操作模式之后维持从选择线的信令状态。
应理解,所公开的过程中各步骤的具体次序或层次是示例性办法的解说。应理解,基于设计偏好,可以重新编排这些过程中各步骤的具体次序或层次。此外,一些步骤可被组合或被略去。所附方法权利要求以示例次序呈现各种步骤的要素,且并不意味着被限定于所给出的具体次序或层次。
提供先前描述是为了使本领域任何技术人员均能够实践本文中所描述的各种方面。对这些方面的各种改动将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。因此,权利要求并非旨在被限定于本文中所示出的方面,而是应被授予与语言上的权利要求相一致的全部范围,其中对要素的单数形式的引述除非特别声明,否则并非旨在表示“有且仅有一个”,而是“一个或多个”。除非特别另外声明,否则术语“一些”指的是一个或多个。本公开通篇描述的各种方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文中所公开的任何内容都并非旨在贡献给公众,无论这样的公开是否在权利要求书中被显式地叙述。没有任何权利要求元素应被解释为装置加功能,除非该元素是使用短语“用于……的装置”来明确叙述的。

Claims (29)

1.一种装置,包括:
多线串行外围接口总线;
主设备,所述主设备耦合至所述串行外围接口总线并且被适配成:
断言从选择线上的第一电压状态以发起在所述串行外围接口总线的一个或多个数据线上的数据交换;
在所述从选择线保持在所述第一电压状态的同时在所述串行外围接口总线的时钟线上传送时钟信号,其中所述数据交换与所述时钟信号同步;以及
在所述从选择线处于第二电压状态的同时抑制在所述一个或多个数据线上传送数据;以及
从设备,所述从设备耦合至所述串行外围接口总线,其中所述从设备具有接收缓冲器并且被适配成:
在所述从选择线保持在所述第一电压状态的同时将数据接收到所述接收缓冲器中;以及
当所述接收缓冲器的占用率达到或超过阈值占用率水平时断言所述从选择线上的所述第二电压状态。
2.如权利要求1所述的装置,其特征在于:
所述主设备包括第一驱动器电路,所述第一驱动器电路被配置成使用高阻抗输出将所述从选择线驱动至所述第一电压状态;以及
所述从设备包括第二驱动器电路,所述第二驱动器电路被配置成使用低阻抗输出将所述从选择线驱动至所述第一电压状态。
3.如权利要求2所述的装置,其特征在于,所述第一驱动器电路和所述第二驱动器电路的阻抗被选择成使得当所述高阻抗输出试图将所述从选择线驱动至所述第一电压状态时所述低阻抗输出被启用以将所述从选择线驱动至所述第二电压状态。
4.如权利要求1所述的装置,其特征在于,所述主设备被适配成通过以下来断言所述第一电压状态:
致使线驱动器将所述从选择线朝向所述第一电压状态驱动;以及
当所述从选择线达到所述第一电压状态时致使所述线驱动器进入开路操作模式。
5.如权利要求4所述的装置,其特征在于,所述主设备包括:
保持器电路,所述保持器电路被配置成在所述线驱动器已进入开路操作模式之后维持所述从选择线的信令状态。
6.如权利要求1所述的装置,其特征在于,所述从设备被适配成:
在断言所述从选择线上的所述第二电压状态之后,当所述接收缓冲器的占用率落在所述阈值占用率水平之下时断言所述从选择线上的所述第一电压状态。
7.如权利要求1所述的装置,其特征在于,所述从设备包括流控制决策电路,所述流控制决策电路被配置成:
监视所述接收缓冲器的占用率;
监视所述从选择线的电压状态;以及
当所述从选择线的电压状态处于所述第一电压状态并且所述占用率处于等于或超过阈值占用率水平的水平时致使线驱动器电路断言所述从选择线上的所述第二电压状态。
8.如权利要求7所述的装置,其特征在于,所述流控制决策电路被配置成:
在致使所述线驱动器电路断言第二电压状态之后并且在所述占用率落在低于阈值占用率水平之下的水平之后致使所述线驱动器电路使所述从选择线返回至所述第一电压状态。
9.一种用于使用串行外围接口来传送信息的方法,包括:
在主设备处,通过断言从选择线上的第一电压状态来发起在所述串行外围接口总线的一个或多个数据线上的数据交换;
在所述从选择线保持在所述第一电压状态的同时在所述串行外围接口总线上从所述主设备传送数据和时钟信号;
在所述从选择线从所述第一电压状态转变到第二电压状态时抑制在所述串行外围接口总线上从所述主设备传送数据和时钟信号;
在所述从选择线保持在所述第一电压状态的同时在所述从设备处将数据接收到接收缓冲器中;以及
当所述接收缓冲器的占用率达到或超过阈值占用率水平时,由所述从设备断言所述从选择线上的所述第二电压状态。
10.如权利要求9所述的方法,其特征在于:
所述主设备包括第一驱动器电路,所述第一驱动器电路被配置成使用高阻抗输出将所述从选择线驱动至所述第一电压状态;以及
所述从设备包括第二驱动器电路,所述第二驱动器电路被配置成使用低阻抗输出将所述从选择线驱动至所述第一电压状态。
11.如权利要求10所述的方法,其特征在于,所述第一驱动器电路和所述第二驱动器电路的阻抗被选择成使得当所述高阻抗输出试图将所述从选择线驱动至所述第一电压状态时所述低阻抗输出被启用以将所述从选择线驱动至所述第二电压状态。
12.如权利要求9所述的方法,其特征在于,断言所述从选择线上的所述第一电压状态包括:
致使所述主设备的线驱动器将所述从选择线朝向所述第一电压状态驱动;以及
当所述从选择线达到所述第一电压状态时致使所述主设备的所述线驱动器进入开路操作模式。
13.如权利要求12所述的方法,其特征在于,所述主设备包括:
保持器电路,所述保持器电路被配置成在所述线驱动器已进入开路操作模式之后维持所述从选择线的信令状态。
14.如权利要求9所述的方法,其特征在于,进一步包括:
在所述从设备已经断言所述从选择线上的所述第二电压状态之后,当所述接收缓冲器的占用率落在阈值占用率水平之下时,使用所述从设备的线驱动器来断言所述从选择线上的所述第一电压状态。
15.如权利要求9所述的方法,其特征在于,进一步包括:
在所述从设备处监视所述接收缓冲器的占用率;
监视所述从选择线的电压状态;以及
当所述从选择线的电压状态处于所述第一电压状态并且所述占用率处于等于或超过阈值占用率水平的水平时致使所述从设备的线驱动器电路将所述从选择线驱动至所述第二电压状态。
16.如权利要求15所述的方法,其特征在于,进一步包括:
在致使所述线驱动器电路断言所述第二电压状态之后并且在所述占用率落在低于阈值占用率水平之下的水平之后使所述从选择线返回至所述第一电压状态。
17.一种装备,包括:
用于断言串行外围接口总线的从选择线上的第一电压状态的装置,其中所述第一电压状态在所述从选择线上被断言以发起在所述串行外围接口总线的一个或多个数据线上的数据交换;以及
用于在所述串行外围接口总线上传送数据和时钟信号的装置,用于传送数据和时钟信号的装置被配置成:
在所述从选择线保持在所述第一电压状态的同时从主设备传送所述数据;以及
在所述从选择线从所述第一电压状态转变为第二电压状态时抑制从所述主设备向所述从设备传送数据,
其中所述从设备被配置成在所述从选择线保持在所述第一电压状态的同时将数据接收到接收缓冲器中,并且在所述接收缓冲器的占用率达到或超过阈值占用率水平时断言所述从选择线上的第二电压状态。
18.如权利要求17所述的装备,其特征在于:
所述主设备包括第一驱动器电路,所述第一驱动器电路被配置成使用高阻抗输出将所述从选择线驱动至所述第一电压状态;以及
所述从设备包括第二驱动器电路,所述第二驱动器电路被配置成使用低阻抗输出将所述从选择线驱动至所述第一电压状态。
19.如权利要求18所述的装备,其特征在于,所述第一驱动器电路和所述第二驱动器电路的阻抗被选择成使得当所述高阻抗输出试图将所述从选择线驱动至所述第一电压状态时所述低阻抗输出被启用以将所述从选择线驱动至所述第二电压状态。
20.如权利要求17所述的装备,其特征在于,用于断言所述从选择线上的所述第一电压状态的装置被配置成:
致使所述主设备的线驱动器将所述从选择线朝向所述第一电压状态驱动;以及
当所述从选择线达到所述第一电压状态时致使所述主设备的所述线驱动器进入开路操作模式。
21.如权利要求20所述的装备,其特征在于,所述主设备包括:
保持器电路,所述保持器电路被配置成在所述线驱动器已进入开路操作模式之后维持所述从选择线的信令状态。
22.如权利要求17所述的装备,其特征在于,所述从设备被配置成:
在所述从设备处监视所述接收缓冲器的占用率;
监视所述从选择线的电压状态;以及
当所述从选择线的电压状态处于所述第一电压状态并且所述占用率处于等于或超过阈值占用率水平的水平时将所述从选择线上驱动至所述第二电压状态。
23.如权利要求22所述的装备,其特征在于,用于断言所述从选择线上的所述第一电压状态的装置被配置成:
在所述从设备停止驱动所述从选择线之后使所述从选择线返回至所述第一电压状态。
24.一种耦合至串行外围接口的从设备,包括:
接收电路,所述接收电路耦合至串行外围接口的从选择线;
线驱动器,所述线驱动器被配置成用低阻抗选择性地驱动所述串行外围接口的所述从选择线;
接收缓冲器,所述接收缓冲器被配置成从所述串行外围接口接收数据;以及
流控制逻辑,其被配置成:
监视所述接收电路的输出以确定所述从设备何时被选择以在所述串行外围接口上通信,其中在所述从选择线处于所述第一电压电平时所述从设备被选择进行通信;
在所述从设备处监视所述接收缓冲器的占用率;以及
在所述从设备被选择进行通信并且所述接收缓冲器的占用率处于等于或超过阈值占用率水平的水平时,致使所述线驱动器将所述从选择线驱动至第二电压电平。
25.如权利要求24所述的从设备,其特征在于,所述流控制逻辑被配置成
在所述接收缓冲器的占用率落在低于所述阈值占用率水平的水平之后致使所述从选择线返回至所述第一电压电平。
26.如权利要求24所述的从设备,其特征在于:
所述线驱动器被配置成用一输出阻抗将所述从选择线驱动至所述第二电压电平,所述输出阻抗低于由主设备用来将所述从选择线驱动至所述第一电压状态的驱动器的输出阻抗。
27.如权利要求24所述的从设备,其特征在于,所述流控制逻辑被配置成
当所述接收缓冲器的占用率处于低于所述阈值占用率水平的水平时,将所述线驱动器配置成用低阻抗来驱动所述从选择线;以及
当所述接收缓冲器的占用率处于低于所述阈值占用率水平的水平时,将所述线驱动器配置成进入开路操作模式。
28.如权利要求27所述的从设备,其特征在于,所述流控制逻辑被配置成
致使所述线驱动器在进入开路操作模式之前将所述从选择线驱动至所述第一电压电平。
29.如权利要求27所述的从设备,其特征在于,保持器电路被配置成在所述线驱动器已进入开路操作模式之后维持所述从选择线的信令状态。
CN201680071711.5A 2015-12-10 2016-11-15 与硬件流控制的增强型串行外围接口 Active CN108369569B (zh)

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 2016-11-10
US15/348,435 US10140243B2 (en) 2015-12-10 2016-11-10 Enhanced serial peripheral interface with hardware flow-control
PCT/US2016/062106 WO2017099959A1 (en) 2015-12-10 2016-11-15 Enhanced serial peripheral interface with hardware flow-control

Publications (2)

Publication Number Publication Date
CN108369569A true CN108369569A (zh) 2018-08-03
CN108369569B CN108369569B (zh) 2021-04-27

Family

ID=57442825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680071711.5A Active CN108369569B (zh) 2015-12-10 2016-11-15 与硬件流控制的增强型串行外围接口

Country Status (9)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114138700A (zh) * 2021-12-03 2022-03-04 西安广和通无线软件有限公司 一种串口数据传输的流控方法、装置、设备及存储介质

Families Citing this family (7)

* 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
TWI812194B (zh) * 2022-04-27 2023-08-11 凌通科技股份有限公司 序列周邊介面相容性擴展切換方法與使用其之嵌入式系統
CN114911743B (zh) * 2022-07-12 2022-10-25 杭州晶华微电子股份有限公司 Spi从机设备、spi主机设备和相关的通信方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1373428A (zh) * 2001-02-28 2002-10-09 阿尔卡塔尔公司 串行外围接口主设备,串行外围接口从设备以及串行外围接口
CN101061468A (zh) * 2004-12-29 2007-10-24 摩托罗拉公司 用于扩展串行外围接口的系统、方法和设备
US20080010389A1 (en) * 2006-07-06 2008-01-10 Citizen Holdings Co., Ltd. Communications device, method for communications control, and printer comprising this communications device
US20080307126A1 (en) * 2007-06-07 2008-12-11 Via Technologies, Inc. System and method for serial-peripheral-interface data transmission

Family Cites Families (10)

* 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
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
US7509445B2 (en) 2006-04-12 2009-03-24 National Instruments Corporation Adapting a plurality of measurement cartridges using cartridge controllers
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1373428A (zh) * 2001-02-28 2002-10-09 阿尔卡塔尔公司 串行外围接口主设备,串行外围接口从设备以及串行外围接口
CN101061468A (zh) * 2004-12-29 2007-10-24 摩托罗拉公司 用于扩展串行外围接口的系统、方法和设备
US20080010389A1 (en) * 2006-07-06 2008-01-10 Citizen Holdings Co., Ltd. Communications device, method for communications control, and printer comprising this communications device
US20080307126A1 (en) * 2007-06-07 2008-12-11 Via Technologies, Inc. System and method for serial-peripheral-interface data transmission

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114138700A (zh) * 2021-12-03 2022-03-04 西安广和通无线软件有限公司 一种串口数据传输的流控方法、装置、设备及存储介质
CN114138700B (zh) * 2021-12-03 2023-11-24 西安广和通无线软件有限公司 一种串口数据传输的流控方法、装置、设备及存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
CN108369569A (zh) 与硬件流控制的增强型串行外围接口
CN108370338A (zh) 用于消息接发和输入/输出传递接口的最优等待时间分组化器有限状态机
CN106415518A (zh) 具有带内中断的相机控制接口扩展
CN108885602A (zh) 多协议i3c共用命令码
CN111078606B (zh) 一种模拟i2c从机及其实现方法、终端设备和存储介质
CN106020990A (zh) 一种中央处理器的控制方法及终端设备
CN101329663A (zh) 一种实现管脚分时复用的装置及方法
CN109644020A (zh) 用于自适应均衡、自适应边沿跟踪以及延迟校准的c-phy训练模式
CN110312998A (zh) 用于在总线上的设备之间发送带内中断消息的系统和方法
US20200344094A1 (en) Digital data and power transmission over single-wire bus
AU2016230022A1 (en) Impedance-based flow control for a two-wire interface system with variable frame length
CN105573948B (zh) 由主从式电路进行的芯片同步
CN108537525A (zh) 一种共识验证方法、装置及设备
CN107077397A (zh) 用于多处理器动态不对称和对称模式切换的硬件装置和方法
CN108351855A (zh) 单线pmic主机低级控制接口
CN105320568A (zh) 用于任务组迁移的方法和支持该方法的电子设备
CN107077187A (zh) 新颖的低成本、低功率高性能smp/asmp多处理器系统
US20130324186A1 (en) Single Transceiver for Wireless Peer-To-Peer Connections
CN101606135A (zh) 时钟控制装置、时钟控制方法、时钟控制程序及集成电路
CN110554926A (zh) 处理器间通信和信令系统和方法
CN109416678A (zh) 加速型i3c主设备停止
CN110945492A (zh) 用于传达波形的短地址模式
WO2019112700A1 (en) Clock line driving for single-cycle data over clock signaling and pre-emption request in a multi-drop bus
CN105988955A (zh) Sdio设备及其应用的电子装置和数据传输方法
CN107612162A (zh) 一种无线充电方法、终端及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant