具有带内中断的相机控制接口扩展的制作方法

文档序号:11142248阅读:400来源:国知局
具有带内中断的相机控制接口扩展的制造方法与工艺

本专利申请要求于2015年1月12日提交的题为“Camera Control Interface Extension With In-Band Interrupt(具有带内中断的相机控制接口扩展)”的非临时申请No.14/595,030以及于2014年1月14日提交的题为“Camera Control Interface Extension With In-Band Interrupt(具有带内中断的相机控制接口扩展)”的临时申请No.61/927,102的优先权,它们被转让给本申请的受让人并藉此通过援引明确纳入于此。

技术领域

本公开涉及在无需专用中断线或引脚的情况下在共享控制数据总线上启用带内中断操作。

背景

集成电路间串行总线(也可被称为I2C总线或I2C总线)是旨在用于将低速外围设备连接至处理器的串行单端计算机总线。I2C总线是多主控总线,其中每个设备可以针对I2C总线上传送的不同消息充当主控设备和从动设备。I2C总线可以仅使用两个双向开漏(open-drain)连接器(包括串行数据线(SDA)和串行时钟线(SCL))来传送数据。这些连接器通常包括由上拉电阻器终接的信号导线。

管控I2C总线操作的协议定义了基本类型的消息,其中每种消息始于START(开始)并结束于STOP(停止)。I2C总线使用7位寻址并且定义两种类型的节点。主控节点是生成时钟并发起与从动节点的通信的节点。从动节点是接收时钟并在被主控节点寻址时进行响应的节点。I2C总线是多主控总线,这意味着可存在任何数目的主控节点。另外,主控角色和从动角色可以在消息之间(即,在STOP被发送之后)改变。

在相机实现的上下文中,单向传输可被用于从传感器捕捉图像并向基带处理器中的存储器传送此类图像数据,而控制数据可在该基带处理器与这些传感器以及其他外围设备之间被交换。在一个示例中,相机控制接口(CCI)协议可被用于基带处理器与图像传感器(和/或一个或多个从动节点)之间的此类控制数据。在一个示例中,CCI协议可在图像传感器与基带处理器之间的I2C串行总线上实现。CCI扩展(CCIe)协议已被定义以扩展I2C总线上的吞吐量。

在CCIe协议内,中断被用来允许从动节点向主控节点指示它希望使用总线。需要有准许从动节点向主控节点发送此类中断的机制。传统的基于I2C或相机控制接口的相机系统对每一从动节点使用单独的中断(IRQ)线,这由于大量引脚而增加了设备成本。用于每一从动节点的单独中断引脚这一概念意味着每一从动节点必须具有单个专用中断引脚。

因此,对CCIe实现消除对共享总线的主控节点和从动节点中的专用中断引脚的使用将会是合乎需要的。

概述

以下给出本公开的一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是本公开的所有构想到的特征的详尽综览,并且既非旨在标识出本公开的所有方面的关键性或决定性要素亦非试图界定本公开的任何或所有方面的范围。其唯一目的是以简化形式给出本公开的一个或多个方面的一些概念作为稍后给出的更详细描述之序言。

在各方面,一种在主控设备上操作的方法包括控制总线上的来自主控设备的数据传输,其中数据位被转码成码元以供跨该总线的两条线进行传输并且时钟信号被嵌入这些数据传输的码元转变内;以及在由主控设备正在该总线上传送“心跳”字之时提供中断时段,在该中断时段期间,耦合到该总线的一个或多个从动设备能够在该总线的第一线上断言中断请求。该心跳字可被周期性地传送以使得诸从动设备能够同步,这些从动设备从由主控设备在该总线的第一线和第二线上发送的传输来提取时钟信号。

在一方面,该中断请求是断言方从动设备希望请求由主控设备作出的某个动作的指示符。

在一方面,主控设备可以在该中断时段期间监视来自从动设备的中断请求。主控设备可以在总线上执行对诸从动设备的扫描以标识断言该中断请求的从动设备。主控设备可以在第一线上从断言方从动设备接收指示符。

在一方面,从动设备可以在该中断时段期间通过下拉第一线来断言中断请求。从动设备可以在该中断时段期间掩蔽第一线以用于解码在该总线上接收到的经转码数据位。

在一方面,可以在由主控设备在总线的第一线和第二线上发起的从动方标识符扫描的部分内提供从动方标识符扫描响应时段,在该时段期间,耦合到该总线的一个或多个从动设备能够在该总线的第一线上提供其唯一性标识符。

在一方面,可定义数据读取时段,在该时段中,先前标识的从动设备被允许在总线的第一线上传送数据而此时主控设备在该总线的第二线上发送全局读取时钟。全局读取时钟可以是双倍数据率时钟。

在各方面,设备包括具有第一线和第二线的总线、耦合到该总线并控制该总线上的数据传输的主控设备、以及耦合到该总线的一个或多个从动设备。主控设备可控制该总线上的数据传输,其中数据位被转码成码元以供跨该总线的两条线进行传输,并且时钟信号被嵌入这些数据传输的码元转变内。主控设备可以在由该主控设备在总线的第一线和第二线上进行的心跳传输的部分内提供中断时段,在该中断时段期间,耦合到该总线的一个或多个从动设备能够在该总线的第一线上断言中断请求。

在各方面,一种在从动设备上操作的方法包括在总线上从主控设备接收数据传输,其中数据位被转码成码元以供跨该总线的两条线进行传输并且时钟信号被嵌入这些数据传输的码元转变内,并且中断时段被定义在该总线上所接收到的这些码元内,以及于在该总线的第一线和第二线上从主控设备接收心跳传输之时在该总线的第一线上断言中断请求。

在一方面,该中断请求是断言方从动设备希望请求由主控设备作出的某个动作的指示符。该中断请求可以通过在中断时段期间下拉第一线来断言。

在一方面,第一线可以在中断时段期间被内部地掩蔽以用于解码在该总线上接收到的经转码数据位。

在一方面,从动方标识符扫描请求可以在总线的第一线和第二线上从主控 设备接收,并且唯一性从动方标识符可以在由从动方标识符扫描请求提供的从动方标识符扫描响应时段的部分内在该总线的第一线上提供。

在一方面,数据可以在主控设备定义的数据读取时段期间在总线的第一线上被发送,在该数据读取时段中,先前标识的从动设备被允许在总线的第一线上传送数据,而此时主控设备在该总线的第二线上发送全局读取时钟。

在各方面,从动设备包括用于耦合到第一线和第二线的总线接口、耦合到该总线接口的处理电路。处理电路可被配置成在总线上从主控设备接收数据传输,其中数据位被转码成码元以供跨该总线的两条线进行传输,时钟信号被嵌入这些数据传输的码元转变内,并且中断时段被定义在该总线上所接收到的这些码元内。处理电路可被配置成于在总线的第一线和第二线上从主控设备接收心跳传输之时在该总线的第一线上断言中断请求。

附图简述

在结合附图理解下面阐述的详细描述时,各种特征、本质和优点会变得明显,在附图中,相像的附图标记贯穿始终作相应标识。

图1描绘了在各集成电路设备之间采用数据链路的装置,该数据链路根据多个可用标准之一来选择性地操作。

图2是解说具有基带处理器和图像传感器并且实现图像数据总线和控制数据总线的设备的框图。

图3是解说根据本文所公开的某些方面的采用IC设备之间的数据链路的装置的简化系统架构的示图。

图4是解说根据本文公开的一些方面的单导线IRQ总线可如何由多个从动设备和一个或多个主控设备共享的框图。

图5解说根据本文公开的一些方面的可被指派或与不同群相关联的不同IRQ信号的示例。

图6解说根据本文公开的一些方面的由主控设备监视IRQ信号并标识IRQ断言方从动设备。

图7解说根据本文公开的一些方面的可避免共享的单线IRQ总线上的各IRQ的同时断言的第一技术。

图8解说根据本文公开的一些方面的可处置共享的单线IRQ总线上的各IRQ的同时断言的第二技术。

图9解说与最短IRQ信号长度相关联的定时。

图10是解说根据本文公开的一些方面的可被配置用于带内中断的多个从动设备的框图。

图11是解说I2C一字节写数据操作的时序图。

图12是解说根据CCIe协议的串行总线上的数据传输的示例的时序图。

图13是解说冲突的潜在发生的时序图。

图14是解说用于避免图13中所解说的冲突的技术的时序图。

图15是解说在使用带内IRQ时附加或错误时钟脉冲的潜在发生的时序图。

图16是解说根据本文公开的一些方面的对附加或错误时钟脉冲的抑制的时序图。

图17解说根据本文公开的一些方面的用以在支持I2C模式和CCIe模式两者的同时实现带内IRQ时段的一种办法。

图18解说其中当处于CCIe模式之时发出带内IRQ的示例。

图19解说用于在发射机处将数据位转码成经转码码元以将时钟信号嵌入在这些经转码码元内的方法的示例。

图20解说CCIe传输中的位19的编码的示例。

图21解说其中位19可以跨越各种数的示例。

图22解说位19数空间内的可被用于定义如本文公开的心跳的范围。

图23解说了根据本文公开的一些方面的心跳时钟。

图24解说了根据本文公开的一些方面的可以遵循CCIe协议并且以使CCIe设备能够获取心跳时钟的方式来传送的控制字的示例。

图25解说了心跳时钟在CCIe总线的SDA线上被传送的示例。

图26解说了根据本文公开的一些方面的用于三进制转变数与顺序码元之间的转换的方案。

图27解说了用于将转变数转换成码元数的技术的一个示例。

图28解说了图27中所解说的编码技术的一些方面。

图29解说了当SDA掩蔽在带内IRQ时段期间被断言时可能发生的一些状况。

图30解说了使用SDA掩蔽的副作用。

图31解说了与将心跳时钟用于带内IRQ有关的一些方面。

图32解说了使用图31中所解说的三进制数的位19来映射CCIe模式传输的示例。

图33和34解说了根据本文公开的一些方面的用于在控制数据总线330上实现在或能在CCIe模式中操作的带内IRQ的技术。

图35解说了在采用SDA掩蔽时可能发生的混叠状况。

图36解说了根据本文公开的一些方面的与在带内IRQ期间提供的心跳时钟有关的一些方面。

图37解说了可藉以在主控设备处于活跃模式或功率节省模式中时传送心跳的方法。

图38解说了根据本文公开的一些方面的组合同步字和心跳字。

图39解说了根据本文公开的一些方面的CCIe协议的位19内的同步和心跳映射的示例。

图40解说了根据本文所公开的某些方面的可由主控设备在控制数据总线上向从动设备发出的“SID扫描全部”命令的一个示例。

图41解说了根据本文公开的一些方面的从动设备对从主控设备接收到的“SID扫描全部”命令的响应的定时。

图42解说了根据本文公开的一些方面的可由CCIe协议使用的可能的SID扫描响应字。

图43解说了CCIe协议的一个示例内且根据本文公开的一些方面的中断群询问调用。

图44解说了用于图43中所解说的中断群询问调用的终止符字的一个示例。

图45解说了根据本文公开的一些方面的对群询问调用的响应的示例。

图46解说了根据本文公开的一些方面的DDR全局时钟读取实现的一个示例。

图47解说了根据本文公开的一些方面的与DDR全局时钟读取字相关联的定时。

图48是解说采用可根据本文所公开的某些方面来适配的处理电路的装置的示例的框图。

图49是根据本文所公开的某些方面的一种方法的第一示例的流程图。

图50是根据本文所公开的某些方面的一种方法的第二示例的流程图。

图51是解说适配成处置共享IRQ总线上的IRQ的装置的硬件实现的示例的示图。

详细描述

在以下描述中,给出了具体细节以提供对诸实施例的透彻理解。然而,本领域普通技术人员将理解,没有这些具体细节也可实践这些实施例。例如,电路可能用框图示出以免使这些实施例混淆在不必要的细节中。在其他实例中,公知的电路、结构和技术可能不被详细示出以免使这些实施例不明朗。

本文公开的一些实施例提供了可以改善使用串行总线的通信接口的性能的系统、方法和装置,该串行总线支持常规的I2C总线操作和使用公共I2C总线的增强型通信接口两者。在一个示例中,相机控制接口(CCI)可以基于I2C总线且可使用配置为连接主控设备和一个或多个从动设备的总线的双导线、双向、半双工、串行接口来部署。CCI操作可兼容I2C总线操作。根据一些方面,提供了使支持连接到I2C或CCI总线的多个外围设备所需的IRQ线的数量最小化的系统、装置和方法。

总览

如本申请中所使用的,术语“组件”、“模块”、“系统”及类似术语旨在包括计算机相关实体,诸如但并不限于硬件、固件、硬件与软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是,在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序和/或计算机。作为解说,在计算设备上运行的应用和该计算设备两者皆可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,且组件可以本地化在一台计算机上和/或分布在两台或更 多台计算机之间。此外,这些组件能从其上存储着各种数据结构的各种计算机可读介质来执行。这些组件可藉由本地和/或远程进程来通信,诸如根据具有一个或多个数据分组的信号来通信,这样的数据分组诸如是来自藉由该信号与本地系统、分布式系统中另一组件交互的、和/或跨诸如因特网之类的网络与其他系统交互的一个组件的数据。

此外,术语“或”旨在表示包含性“或”而非排他性“或”。即,除非另外指明或从上下文能清楚地看出,否则短语“X采用A或B”旨在表示任何自然的可兼排列。即,短语“X采用A或B”藉由以下实例中任何实例得到满足:X采用A;X采用B;或X采用A和B两者。另外,本申请和所附权利要求书中所用的冠词“一”和“某”一般应当被理解成表示“一个或多个”,除非另外声明或者可从上下文中清楚看出是指单数形式。

本发明的某些方面可适用于被部署在电子设备之间的通信链路,这些电子设备可包括装置(诸如电话、移动计算设备、电器、汽车电子设备、航空电子系统等)的子组件。图1描绘了可采用集成电路(IC)设备之间的通信链路的装置。在一个示例中,装置100可包括无线通信设备,该无线通信设备通过RF收发机与无线电接入网(RAN)、核心接入网、因特网和/或另一网络通信。装置100可包括可操作地耦合至处理电路102的通信收发机106。处理电路102可具有一个或多个IC设备,诸如专用IC(ASIC)108。ASIC 108可包括一个或多个处理设备、逻辑电路等等。处理电路102可包括和/或耦合至处理器可读存储(诸如存储器112),该处理器可读存储可维护可由处理电路102执行的指令和数据。处理电路102可由操作系统以及应用编程接口(API)110层中的一者或多者来控制,该API 110层支持并允许执行驻留在存储介质(诸如无线设备的存储器设备112)中的软件模块。存储器设备112可包括只读存储器(ROM)或随机存取存储器(RAM)、电可擦除可编程ROM(EEPROM)、闪存卡、或可以在处理系统和计算平台中使用的任何存储器设备。处理电路102可包括或访问本地数据库114,该本地数据库114可维护用于配置和操作该装置100的操作参数和其它信息。本地数据库114可使用数据库模块、闪存、磁介质、EEPROM、光学介质、磁带、软盘或硬盘等中的一者或多者来实现。处理电路也可以可操作地耦合至外部设备,诸如天线122、显示器124、操作者 控件(诸如按钮128和/或按键板126)、以及其他组件。

使用专用IRQ线的中断机制

图2是解说具有基带处理器204和图像传感器206的设备202的简化示例的框图200。图像数据总线216和多模控制数据总线208可以在设备202中实现。示图200仅作为示例解说了相机设备202,并且各种其他设备和/或不同功能性可以实现、操作、和/或使用控制数据总线208来通信。在所描绘的示例中,可以在图像数据总线216(诸如由MIPI定义的“DPHY”高速差分链路)上从图像传感器206向基带处理器204发送图像数据。在一个示例中,控制数据总线208可以具有能配置用于I2C总线模式中的操作的两条导线。相应地,控制数据总线208可以包括SCL和SDA导线。SCL可携带时钟信号,该时钟信号可被用于根据I2C协议来同步在控制数据总线208上的数据传输。数据线SDA和时钟线SCL可以耦合至控制数据总线208上的多个设备212、214和218a-218c。在该示例中,可以经由控制数据总线208在基带处理器204与图像传感器206以及其他外围设备218之间交换控制数据。根据I2C协议,SCL导线上的时钟速度对于正常I2C操作可高达100KHz,对于I2C快速模式可高达400KHz,并且对于I2C快速模式+(Fm+)可高达1MHz。在用于相机应用时,I2C总线上的这些操作模式可被称为CCI模式。

在一些实例中,两个或更多个从动设备214或218a可通过在相应的IRQ线220或222上断言预定义的逻辑电平来请求基带处理器204的关注。

解说使用共用IRQ总线来减少IRQ线的第一示例

图3是解说可以采用通信总线(诸如CCIe总线330)的装置300的某些方面的示意性框图。装置300可以实施在无线移动设备、移动电话、移动计算系统、无线电话、笔记本计算机、平板计算设备、媒体播放器、游戏设备等中的一者或多者中。装置300可以包括使用CCIe总线330来通信的多个CCIe设备302、320和/或322a-322n。CCIe总线330可以为被配置成用于CCIe总线330所支持的增强型特征的设备扩展常规CCI总线的能力。例如,CCIe总线330可以支持比CCI总线330高的比特率。根据本文所公开的某些方面,CCIe 总线330的一些版本可以被配置或适配成支持16.7Mbps或更大的比特率,并且CCIe总线的一些版本可以被配置或适配成支持每秒至少23兆比特的数据率。

在图3中解说的示例中,成像设备302被配置成作为CCIe总线330上的从动设备来操作。成像设备302可被适配成提供例如管理图像传感器的传感器控制功能304。另外,成像设备302可包括配置寄存器306和/或其他存储设备324、处理电路和/或控制逻辑312、收发机310和线驱动器/接收器314a和314b。处理电路和/或控制逻辑312可包括处理器,诸如状态机、定序器、信号处理器或通用处理器。收发机310可包括接收机310a、发射机310c和某些共用电路310b,包括定时、逻辑和存储电路和/或设备。在一些实例中,收发机310可包括编码器和解码器、时钟和数据恢复电路和类似物。

发射时钟(TXCLK)信号328可被提供给发射机310c,其中TXCLK信号328可被用来确定用于CCIe通信模式的数据传输速率。当SDA导线318和SCL导线316两者被用于编码所传送的数据时,TXCLK信号328可被嵌入在CCIe总线330上传送的码元序列内。在一个示例中,TXCLK信号328可以使用转变时钟转码来被嵌入,由此要在物理链路330上传送的数据被转码,以使得在CCIe总线330上传送的每一对连贯码元之间发生至少一根导线316和/或318的状态改变。

CCIe设备302、320和/或322a-322n可使用CCIe总线330的双导线316、318来通信。例如,双导线CCIe总线330可以支持可提供比I2C或CCI操作模式所支持的数据率显著更大的数据率的CCIe双向、半双工通信模式。CCIe设备302、320和/或322a-322n可以在控制数据总线330的SCL线316和SDA线318两者上传送数据,其中时钟信息嵌入在双导线控制数据总线330上传送的码元序列中。某些CCIe设备320可被配置为总线主控方,而某些设备302和/或322a-322n可被配置为从动设备。CCIe设备302、320和/或322a-322n可以兼容耦合至控制数据总线330的I2C和/或CCI设备或者与其共存,以使得CCIe设备302、320和/或322a-322n可以使用CCIe协议和信令规范来与一个或多个其他CCIe设备302、320和/或322a-322n通信,甚至在I2C设备正在监视控制数据总线330时亦是如此。本文所公开的一个示例提供了能在CCIe和 I2C/CCI设备两者均部署在同一总线上时用单个主控设备320来处置耦合到总线的多个从动设备302和/或322a-322n的接口。在后一示例中,两个或更多个CCIe设备302、320和/或322a-322n可以使用CCIe协议来通信,并且与I2C或CCI设备的任何通信事务根据I2C总线协议来进行。

根据本文公开的一些方面,CCIe设备302、320和/或322a-322n可以被耦合到共享中断请求(IRQ)总线326。根据一方面,共享IRQ总线326可以是耦合到从动设备302和/或322a-322n以及主控设备320的单条线。该共享IRQ总线326可以在空闲时使用电阻332或类似物等来被上拉(例如,拉高)。共享IRQ总线326可以在从动设备302、322a-322n断言中断信号时被拉低。即,每个从动设备302、322a-322n可通过向主控设备320发送IRQ信号来独立地请求接入以在控制数据总线330上进行传送。

在一些示例中,单线IRQ总线326可以是不受主控设备320或任何其他设备302、322a-322n管理的异步总线。相应地,从动设备302、322a-322n能在任何时间单方断言IRQ信号。

在另一示例中,单线IRQ总线326可专用于自从动设备到主控设备的单向信号传输。即,单线IRQ总线可被仅用于IRQ信号,而不被用于其他类型的信号。

在一个示例中,控制数据总线330可以是CCIe兼容总线。

在另一示例中,控制数据总线330可以是从动设备302、322a-322n与主控设备320之间的双向总线。

解说使用共用IRQ总线来减少IRQ线的第二示例

图4是解说其中一个或多个从动设备410、412、414、416、418可通过在共用或共享的单线IRQ总线422上断言预定义的逻辑电平来请求总线主控方404的关注的示例的框图400。单线IRQ总线420可由多个从动设备410、412、414、416、418共享,它们可包括I2C、CCI和/或CCIe设备。在所描绘的示例中,从动设备410、412、414、416、418中的每一者可被适配成支持CCIe通信模式,且总线主控设备404可被适配成充当I2C、CCI和CCIe操作模式中的总线主控方。

根据一个方面,共享的单线IRQ总线422被耦合到从动设备410、412、414、416、418和主控设备404。上拉电阻420可被耦合到IRQ总线422的导线以定义在从动设备410、412、414、416、418中没有一个从动设备正在断言中断请求时IRQ总线422的信令状态。在一个示例中,从动设备410、412、414、416、418可以将IRQ总线422驱低,以中断或请求主控设备404的中断。即,每一从动设备410、412、414、416和418可通过驱动IRQ信号来独立地断言中断请求,以请求来自主控设备404的关注。

共用、共享的单导线IRQ总线422可通过将从动设备410、412、414、416、418中的每一者配置成提供对已断言中断请求的一个或多个从动设备410、412、414、416和/或418的身份的指示来由多个从动设备410、412、414、416、418共享。在一些实例中,从动设备410、412、414、416、418中的两者或更多者可能竞争主控设备404的关注,且对这些竞争的从动设备410、412、414、416和/或418的身份的指示可被用来确定要准予对来自主控设备404的关注的哪一个请求。在一个示例中,每一个从动设备410、412、414、416、418可被配置成通过驱动IRQ总线422达具有与驱动IRQ总线422的设备410、412、414、416、418的身份相对应的长度的时间段来断言中断请求。

在一些实例中,用来驱动IRQ总线422的脉冲的长度可以标识从动设备410、412、414、416、418的包括正在竞争来自主控设备404的关注的从动设备410、412、414、416、418的群406、408。在一个示例中,第一多个从动设备410、412可以在第一群406中,而第二多个从动设备414、416可以在第二群408中,并且这样的编群可以例如是预先配置的或者在主控设备108引导之际动态地定义的(例如通过枚举)。这样的编群允许主控设备404更快地标识出哪个从动设备在IRQ总线422上触发了IRQ信号而没有不可接受的延迟。每一个从动设备410、412、414、416或418可被配置成生成具有针对从动设备410、412、414、416或418所属于的群406、408所定义和/或指派的宽度的脉冲。例如,第一群406中的从动设备410和412可被配置成生成共享单导线IRQ总线422上的具有与第二群408中的从动设备414和416所生成的脉冲的历时不同的历时的脉冲。每一群406和408包括至少一个从动设备。

IRQ总线422的断言的历时可以确定请求方从动设备410、412、414、416 或418是否被准予主控设备404的关注。在一个示例中,区分优先次序方案可以将较长脉宽指派给较高优先级从动设备410、412、414、416、418且将较短脉宽指派给较低优先级从动设备410、412、414、416、418。在操作中,第一从动设备410、412、414、416或418可以通过在IRQ总线422上提供脉冲来断言中断请求。第二、较高优先级从动设备410、412、414、416或418可以通过在IRQ总线422上提供具有比第一从动设备410、412、414、416或418所提供的脉冲的宽度更长的宽度的脉冲来断言中断请求。在IRQ总线422已被断言时,主控设备404可以使用IRQ总线422的断言的历时来标识包括断言方从动设备410、412、414、416的最高优先级群406或408和/或断言IRQ总线422的最高优先级从动设备410、412、414、416或418。主控设备随后可使用控制数据总线402上的信令来扫描一个或多个从动设备410、412、414、416、418上的被指派了在IRQ总线422上观察到的脉宽的IRQ状态寄存器。

在一些实例中,在第一从动设备410、412、414、416或418所提供的脉冲的终止之后IRQ总线422继续被活跃地驱动时,第一从动设备410、412、414、416或418可让步于第二从动设备410、412、414、416或418,从而指示至少第二、较高优先级从动设备410、412、414、416或418也正在通过用更长脉宽驱动IRQ总线422来请求主控设备404的关注。在这样的情形下,第一从动设备410、412、414、416或418可返回空闲或睡眠模式,直至竞争控制数据总线402的下一机会出现。

在一些实例中,单导线IRQ总线422可由从动设备410、412、414、416、418和一个或多个主控设备404共享。在该示例中,从动设备410、412、414、416、418可在逻辑上编组在一起。例如,第一群406可包括第一多个从动设备410和412,且第二群408可包括第二多个从动设备414和416。这样的编组可以例如是预配置的、动态地定义的和/或由主控设备404在初始化时通过枚举来定义。群406、408的使用可以准许主控设备404更快速地标识通过驱动IRQ总线422来断言中断请求的一个或多个从动设备410、412、414、416和/或418。

在一些实例中,单线IRQ总线可以异步地操作,而无需主控设备404或另一设备的管理。在异步操作中,从动设备410、412、414、416或418可在任何时间单方驱动IRQ总线422。在一些实例中,从动设备410、412、414、 416、418可以在断言中断请求之前确认IRQ总线422是空闲的(即,没有被另一设备驱动)。

在一些实例中,单线IRQ总线422可专用于从从动设备410、412、414、416、418到主控设备404的单向信号传输。即,IRQ总线422可被保留用于中断请求信令且其他类型的信号在IRQ总线422上不被支持。

从动设备410、412、414、416的群406、408可被配置成使用特异的IRQ信号。在一个示例中,第一群406可以使用具有第一时段的第一信号,第二群408可以使用具有第二时段的第二信号,以此类推。在一些实例中,未与另一从动设备编组在一起的从动设备418可被当作一个设备的群来对待,且可被指派使用具有第三时段的第三信号。IRQ信号的时段可被定义为IRQ总线420被断言方从动设备410、412、414、416或418所驱动(例如,拉低)的时长。其他形式的信号区分可被使用。例如,不同IRQ信号电压电平可被指派给从动设备410、412、414、416的不同群406、408和/或指派给未被指派到群或以其他方式被当作群的唯一成员来对待的从动设备418。

在一些实例中,群406、408可以定义从动设备410、412、414、416、418的逻辑群,以使得每一群406、408可包括至少一个从动设备410、412、414、416、418。群406、408可包括多个从动设备410、412、414、416、418。指派给每一群406、408的从动设备410、412、414、416、418的数量可以基于诸如查询并标识群406、408中的每一个潜在的断言方从动设备410、412、414、416、418的历时等因素来确定。例如,在耦合到IRQ总线422的所有从动设备410、412、414、416、418由主控设备404查询时,可结果造成不可接受的长延迟。

标识断言方从动设备410、412、414、416、418的时间可通过使用特异的IRQ信号标识其中从动设备410、412、414、416、418已断言IRQ的群406、408并随后查询所标识的群406、408中的每一成员从动设备410、412、414、416、418来显著得以减少。主控设备404可以检测IRQ总线422的断言的发生,且主控设备404可以确定该断言的历时。基于所确定的IRQ断言的历时,主控设备404可以标识与主控设备404观察到的长度的历时相对应的群406、408。主控设备404随后可查询群406、408中的每一个从动设备410、412、414、 416、418以标识哪个从动设备触发或断言了该IRQ信号。在一个示例中,主控设备404可以确定IRQ断言源自第一群406。主控设备404可以通过控制数据总线402向第一从动设备410或412传送请求或命令。主控设备404可以例如传送寄存器状态请求。作为响应,第一从动设备410或412可以向主控设备404传送状态信息。如果状态信息指示第一从动设备410或412不是IRQ请求的源,则主控设备404可以通过控制数据总线402向第一群406中的第二从动设备412或410传送寄存器状态请求。这一过程可针对第一群406中的所有从动设备410、412重复,直至标识出断言了该IRQ信号的从动设备410、412。

图5是解说分别由不同群406、408、514所使用的IRQ信号502、504、506的定时的示例的时序图500。不同IRQ信号定时可被指派或关联于每一不同群406、408、514,和/或每一群406、408或514的成员从动设备410、412、414、416、418的IRQ信号定时可以基于或导出自所指派或关联于对应群406、408、514的IRQ信号定时。每一群406、408、514可包括成员从动设备410、412、414、416、418中的单独一个从动设备或成员从动设备410、412、414、416、418中的多个从动设备。第一群406可以使用具有第一脉宽508的IRQ信号502,第二群408可以使用具有第二脉宽510的IRQ信号504,且第n群506可被配置成使用具有第三脉宽512的第三IRQ信号506。

图6解说从总线主控设备404的观点来看的共享IRQ总线422的操作。该示例可适用于根据I2C、CCI和/或CCIe协议操作的控制数据总线402上的操作的定时612。总线主控设备404可以监视IRQ总线422上的信号的定时602以确定中断请求是否已被断言。总线主控设备404可以基于IRQ总线422上的脉冲608、610的历时604、606来标识断言中断请求的从动设备。

在该示例中,从动设备的群406、408可被配置成驱动IRQ总线422达预定义时段604、606。相应地,总线主控设备404可监视IRQ总线422以发现脉冲608、610,且可测量或计时任何检测到的脉冲608、610的历时604、606。在一个示例中,总线主控设备404可包括在脉冲608、610的开始处检测到转变620、622之际发起的定时器或计数器。在脉冲608、610终止后的定时器或计数器值随后可与关联于每一群406、408的预定义历时进行比较。

在该示例中,在第一时段614期间、在接收到第一脉冲608之前,数据控 制总线402可以是空闲的。在第一IRQ信号被断言在共享单线IRQ总线422上时,总线主控设备404检测到IRQ总线已被拉低,并且确定该脉冲的时段、宽度、或历时604。例如,总线主控设备404可以在第一脉冲608终止之际确定第一脉冲608的历时604与来自设备的第一群406的成员的中断请求相一致。总线主控设备404可以发起对设备的第一群406的成员的扫描616以确定它们的IRQ状态并标识第一群406中的哪个或数个成员断言了IRQ请求608。在一个示例中,总线主控设备404可以在控制数据总线402上向第一群406的每一成员传送导致每一请求的接收方用IRQ状态进行响应的命令和/或请求。总线主控设备404可以与第一群406中的所标识出的中断方成员交换数据、控制以及其他信息。

第二中断请求脉冲610可以在第一中断请求脉冲608之后的某一点被接收。第二中断请求脉冲610可具有与从动设备的第二群408相对应的历时606。在接收到第二中断请求脉冲610时,总线主控设备404可检测、确定或计算脉宽、时段或历时606。总线主控设备404随后可以发起对设备的第二群409的成员的扫描618以确定它们的IRQ状态并标识第二群408中的哪个或数个成员断言了与第二脉冲610相对应的IRQ请求。

图7是解说根据本文公开的一些方面的用于避免同时的、交叠的、和/或冲突的中断请求的发生的方法的时序图。在一些实例中,避免可导致冲突或竞争的中断请求的交叠的IRQ脉冲的发生可能是合乎需要的。冲突的中断请求可通过将从动设备配置成在断言中断请求之前监视IRQ总线422来避免。如果另一设备已经在共享的单线IRQ总线422上断言了中断请求708,则中断请求712可被推迟714。

在所描绘的示例中,第一脉冲704被来自设备的第一群406的从动设备断言在IRQ总线422上。第二从动设备可能希望在第一脉冲708的历时704期间断言中断请求。根据一个方面,第二从动设备可延迟该中断请求在IRQ总线422上的断言。在时刻718,第二从动设备可决定发起中断请求。在检查IRQ总线422时,第二从动设备可确定脉冲708已被另一从动设备断言在IRQ总线422上。相应地,第二设备可发起拖延或延迟时段712以允许IRQ总线422返回空闲状态。拖延时段712可具有预定义历时、包括最小退避时段和/或随机延 迟的历时、或在IRQ总线422返回空闲状态之后的预定义时间终止的时段。第二从动设备可被排除断言中断请求达最小时段710,在该最小时段期间IRQ总线422将是自由或空闲的。IRQ总线空闲时段710可以从IRQ总线422上的第一脉冲708终止且例如IRQ总线422返回逻辑高状态的时间点720来测量。下一中断请求716可以在最小总线自由时间710期满之后被断言。在最小总线自由时间710期满之际,第二从动设备可以通过在IRQ总线422上提供脉冲716来断言中断请求。在该示例中,第二从动设备是从动设备的第二群408的成员,且第二脉冲716的历时706可以不同于第一脉冲708的历时704。

图8是解说在I2C、CCI和/或CCIe接口支持同时的IRQ信号时可被采用的单线IRQ总线的操作模式的示例的时序图800。同时的IRQ信号可能导致个体从动设备之间和/或使用共享的单个IRQ总线422的不同群406、408中的从动设备之间的竞争和/或冲突。IRQ总线422上的信号的定时在第一时序图802中示出,而第一和第二群406、408中的从动设备所作的贡献分别在第二和第三时序图表812、822中解说。第一IRQ脉冲814由第一群406中的第一从动设备断言,与此同时或并发地,第二IRQ脉冲824由第二群408中的第二从动设备断言。第二IRQ脉冲824可具有比第一脉冲806的历时更长的历时804。在第一脉冲814终止之后,第一从动设备可因为IRQ总线422上第二脉冲824的一部分808的存在而认识到更高优先级设备已断言了中断请求。第一从动设备可通过在第一脉冲814终止之后监视IRQ总线422来将IRQ总线422的这一状况808识别为有效冲撞、竞争或冲突。第一设备随后可确定第二从动设备具有更高优先级且可推迟更新的请求,直至在第二脉冲824终止之后开始的IRQ总线空闲时段818之后。总线主控设备404可检测第二脉冲824的历时并且处理设备的第二群408以标识和服务中断请求的源。总线主控设备404可不知晓第一脉冲814。

第一从动设备可通过在IRQ总线空闲时段818期满之后在IRQ总线422上提供第三脉冲826来重新发出其中断请求。

图9是解说与IRQ脉冲相关的定时容差的时序图900,其中该容差可以决定最小IRQ脉宽。在一些实例中,管控I2C、CCI和/或CCIe接口上的信令的协议可以定义长达低历时(tLOW)的最小值906以准许I2C、CCI和/或CCIe 主控设备404进行检测,但出于本描述的目的,可以假定该低历时可以不受制于指定的最小值。时序图900解说了单个脉冲902。

在该示例时序图900中,用于检测“高”信令状态的最小阈值电压是开关电路电源电压(“VDD”)电平的70%,且用于检测“低”信令状态的最大阈值电压是VDD电平的30%取决于接收机输入电平,接收机可以对IRQ总线422的位于VDD电平的30%和70%之间的电压电平确定高或低信令状态。最大下降-上升时间(TFRmax)904可被定义。TFRmax 904的历时可以决定指派给从动设备以用于断言中断请求的低时段(TLOW)910的历时。TLOW 910的值可被选择以使主控设备404能够在来自不同从动设备群的IRQ信号之间加以区分。从主控设备404的观点来看,在以下情况下可在IRQ总线422上观察到低状况:

TRFmax<TLOW

为了在从动设备的各群406、408之间加以区分,不同的TLOW单位可被指派为群406、408的IRQ脉宽。在一个示例中,第一群406可被指派TLOW的IRQ脉宽,而第二群408可被指派2xTLOW的IRQ脉宽。在该示例中,总线主控设备404观察到的低时段可如下计算:

第一群406:TLOW-TFR<tLOW<TLOW+TFR

第二群406:2TLOW-TFR<tLOW<2TLOW+TFR。

注意,在第一从动设备将IRQ信号断言为低之后,第二从动设备可能没有检测到IRQ信号为低长达将TFRmax延伸到tLOWmin的时段,其历时必然至少为TFRmax。因此,TLOW>3TFR max,且tLOW min>2TFRmax。相应地,tLOW 906的最小值可如下计算:

2TLOW-TFR>TLOW+TFR

→2TFRmax<TLOW

→3TFRmax<TLOW

图3-9中所解说的边带IRQ方法要求对每一从动设备和主控设备使用额外引脚。具体而言,从动设备经常受限于可用尺寸/空间,并且消除对边带中断的使用将会是合乎需要的。

共享总线上的带内中断机制

图10是解说其中中断总线已经被消除以利于带内中断的系统1000的框图。系统1000可包括耦合到共享控制数据总线1002的主控设备1004以及多个从动设备10061-1006N。在一个示例中,控制数据总线1002可以是I2C总线,其包括两条导线:时钟线(SCL)和串行数据线(SDA)。时钟线SCL可以被用来同步I2C总线1002上的所有数据传递。数据线SDA和时钟线SCL被耦合至I2C总线1004上的所有设备1004和10061-1006N。在该示例中,中断是在数据控制中心1002上被带内地发送的。在一些情形中,数据控制总线1002可同时支持I2C设备和CCIe设备两者。

图11是解说在根据I2C协议操作串行总线330(参见图3)时单字节写数据操作的示例的时序图1100。每个I2C传输1120始于在串行总线330上断言的开始状况1106,并且终止于在串行总线330上断言了停止状况1116时。开始状况1106在SDA信号导线318转变为低而SCL信号导线被保持在高状态之时被断言。停止状况1116在SDA信号导线318转变为高而SCL信号导线被保持在高状态之时被断言。根据I2C协议,SDA信号导线318上的转变在SCL信号导线316为低时发生,开始状况1106和停止状况1116除外。

在典型I2C操作中,I2C主控节点在SDA线318上发送7位从动方ID 1102以指示该主控节点希望访问I2C总线上的哪个从动节点,继以指示该操作是读操作还是写操作的读/写位1112,由此读/写位1112在逻辑0以指示写操作,以及在逻辑1以指示读操作。只有其ID匹配于该7位从动方ID 1102的从动节点才被准许响应该写(或任何其他)操作。为了使I2C从动节点检测其自己的ID 1102,主控节点在SDA线318上传送至少8位,连同SCL线316上的8个时钟脉冲。这种行为可被利用于在CCIe操作模式中传送数据以防止旧式I2C从动节点对CCIe操作作出反应。

图12是解说根据CCIe协议操作的串行总线330上、并且在两个或更多个通信设备202、220、222a-222n被配置或适配成根据CCIe协议来通信时的数据传输的时序图1200。在CCIe传输中,数据位可被转码成十二个码元以供在SDA线318和SCL线316上传输,并且传输模式可被称为“CCIe模式”。CCIe模式是源同步的,由推挽式驱动器来驱动。在控制数据总线330上传送数据的 设备也传送嵌入在该数据中的时钟信息。因此,在任一时间,控制数据总线上仅一个设备被允许驱动该总线。

在特定CCIe操作模式中,数据被编码成在CCIe总线的信号导线316、318上顺序传送的一组2位码元。码元序列1202、1204可在相继传输区间1206、1208中传送。每个码元序列1202、1204之前有开始状况1216、1218、1220。开始状况1216、1218、1220在SDA信号导线318转变为低而SCL信号导线保持在高状态时被断言。根据CCIe协议,当正在传送码元序列1202、1204时在SCL信号导线318上发生转变的同时,SDA信号导线316上的转变可发生。在一些CCIe模式中,开始状况1216、1218、1220可占用两个码元区间。

在所解说的示例中,每个码元序列1202、1204包括12个码元并编码可包括16位数据和3位开销的20位数据元素。12个码元的序列1202、1204中的每个码元针对每个码元周期(tsym)1210定义SDA信号导线318和SCL信号导线316的信令状态。在一个示例中,用于驱动信号导线316、318的推挽式驱动器214a、214b可使用20MHz码元时钟来支持50ns历时的码元周期1210。在连贯码元序列1202与1204之间的时段1214中传送可记为{3,1}的二码元序列。对于结果所得的14码元传输(12码元有效载荷以及开始状况1216、1218、1220),第一传输1206的开始与第二传输1208的开始之间的最小流逝时间1212可如下计算:

tword=14×tsym=700ns

由此,可每700ns传送20位,从而产生约28.6Mbps的原始比特率,其中有用比特率约为22.86Mbps,因为在每个12码元字(word)1206、1208中传送16个数据位。

主控设备控制对总线的接入,并且希望在控制数据总线330上进行传送的任何设备都被要求向主控设备请求接入控制数据总线330的准予。这一请求可通过发出中断请求来做出。根据一些方面,CCIe设备可通过根据预定义定时来发生的带内中断机制来发出中断请求。对这一带内中断机制的使用可防止总线争用和/或冲突。图13包括解说冲突1304的发生的时序图1300。当中断机制阻止从动设备在主控设备正在驱动1302控制数据总线330之时驱动控制数据总线330的SDA线318或SCL线316时,冲突1304可得以避免。

图14是解说用以避免图13的冲突潜在可能性的解决方案的时序图1400。在该办法中,该协议定义何时可发出带内IRQ。在一个示例中,当从动设备被准许驱动SDA线318时,主控设备可以在所定义的时间段1420期间在SCL线316上驱动时钟。在操作中,主控设备可将SDA线318驱高并启用上拉以便在SDA线318上的传送1402、1404后维持高状态。SDA线318可以在某一点1414被释放,此后从动方可以在SDA线318上进行传送1406、1408。该从动方然后可将SDA线318驱动1416为高并在时间点1418释放SDA线318。主控设备然后可以在SDA线318上开始进行传送1410。

如在图15的时序图1500中解说的,由从动设备在SDA线318上发送的带内IRQ可导致错误时钟1510被检测到。在CCIe模式中,码元转变被用来生成接收机时钟(RXCLK)1504。所有接收设备从控制数据总线330的状态转变中恢复时钟定时。状态转变对应于SDA线318和/或SCL线316的信令状态改变,并且状态转变将在SDA线318与SCL线316之间进行定时对齐。CCIe时钟数据恢复(CDR)电路可容忍SDA线318与SCL线316之间的一些偏斜,但大于CDR的容限的偏斜可导致CDR生成额外的接收机时钟脉冲1510,结果导致CCIe字边界处的同步丢失。

图16是解说可避免在RXCLK 1504上生成额外脉冲1510以及潜在的同步丢失的一种解决方案的时序图1600。在时钟数据恢复电路处门控或掩蔽用于带内IRQ的信号的SDA掩蔽(SDAMASK)信号1608由包括主控设备和从动设备在内的每一设备输入。例如,每一CDR电路在带内IRQ传输期间掩蔽SDA线318或SCL线(哪条线被用于带内IRQ就掩蔽哪条)。例如,如果主控设备准许从动设备用特定带内IRQ协议来驱动SDA线318,则控制数据总线330上的所有设备然后被要求在该时段期间掩蔽其SDA线318输入以防止错误/额外RXCLK脉冲被检测到。在一个示例中,每一设备门控SDA线318以便在带内IRQ时段期间抑制其值作为1(或高)进入CDR电路。

图17是解说用以在支持I2C模式和CCIe模式两者的同时实现带内IRQ时段的一种办法的示图1700。在该办法中,退出CCIe模式,然后在处于I2C模式之时发出带内IRQ。在发出带内IRQ后,控制数据总线回退到CCIe模式。然而,仅仅为了发出带内IRQ而不得不切换到I2C模式造成太大的开销(硬件 和时间两者)。

图18是解说其中当处于CCIe模式之时发出带内IRQ(IBI)的示例的示图1800。理想地,该协议可被维持为如一个或两个CCIe字那样紧凑,以使得带内IRQ能在具有尽可能最小的协议开销的情况下尽可能频繁地被发出。例如,可以定义周期性IRQ窗口。

尤其,此带内IRQ时段可以甚至在总线系统处于低功率模式时也是可用的,以防止从动设备“挨饿”。对此的一个解决方案可以是在由主控设备在总线上周期性地传送以允许从动设备同步的CCIe“心跳”字内定义带内IRQ。主控设备可以按足够慢以用于功率节省但足够快以不使从动设备挨饿的速率发送该“心跳”CCIe字。该“心跳”CCIe字可以用作对从动设备的指示它们可以发出IRQ的指示符。

图19是解说用于在发射机处将数据位转码成经转码码元以将时钟信号嵌入在这些经转码码元内的方法的一个示例的框图。在发射机1900处,输入数据位1904被转换成多数位三进制(基数为3)数,其中每一数位可被称为“转变数”。随后,该三进制数被转换成在物理链路1902的时钟线SCL 1912和数据线SDA 1914上传送的一组(顺序)码元。在一个示例中,原始的20位二进制数据被输入到位至转变数转换器块1908以被转换成12数位三进制数。该12数位三进制数的每一数位表示“转变数”。两个连贯的转变数可以具有相同的值。每个转变数在转变至码元块1910处被转换成顺序码元,以使得任何两个连贯的顺序码元不具有相同值。因为在每对顺序码元中的码元之间保证码元值(以及导线1912、1914的信令状态)上的转变,所以该顺序码元转变可以用于嵌入时钟信号。每个顺序码元1916随后在双导线物理链路1902上被发送,该双导线物理链路302可包括具有SCL线1912和SDA线1914的I2C总线。

图20是解说位19(即,当位计数在第一位为位0开始时的第20位)的编码的示例的示图2000。换言之,如计算机科学中典型的情况,从零开始逐位计数,并且位19为第20位。此处,位0-18在三进制数范围0000_0000_00003到2221_2201_20013内表示。范围2221_2201_20023到2222_2222_22223中的三进制数可以不被用于数据传输。因此,三进制数范围2221_2201_20023到2222_2222_22223可被用于表示位19(即,第20个位)。换言之,三进制 2221_2201_20023是二进制1000_0000_0000_0000_0000(十六进制0x80000),并且三进制2222_2222_22223(0x81BF0)是最大可能的12数位三进制数。图21和22解说了第20位(位19)利用的一个示例以及其中可传送心跳的第20位(位19)的数空间。

图21是解说其中位19可以跨越数字2221_2201_20023到2222_2222_22223,并且数字范围可被细分成图21左侧2102的各个分部的表2100。CCIe是多主控方控制数据总线架构,并且对控制数据总线的控制可以从一个主控设备转移到另一主控设备。因此,“主控总线请求”命令是可用的(在子范围2222_1121_02103至2222_2112_11213内),“主控切换”(在子范围2222_2220_00023至2222_2221_12103内)也是。

图22是解说位19数空间内的可被用于定义如本文公开的心跳的范围的表2200。

图23是解说具有心跳脉冲2302a、2302b、2302c、2302d的心跳时钟2300的时序图。根据本文公开的一些方面来定义的控制字2202(参见图22)可被用于提供心跳时钟2300。心跳时钟2300可提供具有相对较短的历时2306的脉冲2302a、2302b、2302c、2302d,这些脉冲被相对较大的时间段2304分隔开。在一个示例中,脉冲2302a、2302b、2302c、2302d可被定义为一码元的历时(例如,50ns)并且这些脉冲可相隔30微秒(30μs),由此提供具有33.33kHz频率的心跳时钟。在该示例中,CCIe从动设备可以使用从心跳字中提取的33.33kHz时钟以用于各种待机操作。

图24解说了可遵循CCIe协议并以使得CCIe设备能够获取心跳时钟(包括图23中解说的心跳时钟2300)的方式来传送的控制字2416的示例2400。在一个示例中,控制字2416可被表达为十六进制数0x81BEE,该十六进制数产生被映射到可被表达为12数位三进制数2414的转变数的位模式2412。可以随开始状况值封装以产生14个转变数2424的集合的转变数被计算以产生在码元流2422中提供的12码元序列2428。如时序图2420中所解说的,12码元序列2428的每隔一个码元2430具有值‘3’,这导致SDA信号导线318和SCL信号导线316两者上的高电压电平。在该示例中,在SDA信号导线318和SCL信号导线316两者皆处于高状态时,最小电流可在SDA信号导线318和SCL 信号导线316中流动。码元值‘3’可使与串行总线330相关联的功耗最小化。12码元序列2422还包括具有值‘1’或‘2’的码元2432、2434,其导致SDA信号导线318或SCL信号导线316被驱动为低,而SDA信号导线318或SCL信号导线316中的另一者保持为高。在每个12码元传输2428中,一个码元2434可被提供有值‘2’,而其余码元2432具有值‘1’。作为结果,心跳控制字2416在每次控制字2416被传送时在SDA信号导线318上产生6个脉冲并在SCL信号导线316上产生一个脉冲。在一个示例中,可通过重复地传送心跳控制字2416来在SCL信号导线316上提供1.43MHz时钟。

带内IRQ技术的第一示例

图25解说了心跳时钟可以在SDA线318和SCL线316上被传送的示例。在该示例中,心跳时钟包括该心跳时钟的在SDA线318上被传送的第一部分2502,而该心跳时钟的第二部分2504可以在SCL线316上被传送,藉此在SDA线318上为带内IRQ创造更大空间2506。

根据该协议,接收方从动设备可以检测例如在开始S指示符2512之后的第n个RXCLK 2514。第n个RXCLK 2514可触发接收方从动设备内的内部SDA掩蔽2524以内部地掩蔽SDA线318。

在n+1RXCLK 2516,该从动设备可通过拉低SDA线318来触发IRQ。SDA线318由主控设备拉高或浮置,以使得在它被拉低(由从动设备拉低)时这用于指示带内IRQ。在n+2RXCLK 2518,主控设备可以对SDA线318进行采样以查实带内IRQ是否已被断言。在n+3RXCLK 2520,从动设备可释放SDA线318,以使得带内IRQ被解除断言。在n+3与n+4RXCLK 2522之间,主控设备重新启用SDA驱动器并且开始将SDA线318驱高。因此,接收设备(例如,从动设备)能够在n+4RXCLK 2522处安全地释放SDA掩蔽2824。在n+4RXCLK 2522,从动设备可释放SDA掩蔽2524。以此方式,IRQ可由从动设备在SDA线318上所定义的IRQ时段2506期间传送。

图26是解说用于在三进制数(转变数)2602与(顺序)码元2604之间进行转换的方案的一个示例的示图2600。三进制数(基数为3的数,也被称为转变数)可具有这三个可能数位或状态0、1或2之一。虽然在两个连贯三进 制数中可能出现相同值,但任何两个连贯码元不具有相同值。

图6中解说性地阐述了转换功能。在传送侧(TX:T到S),逻辑是Ttmp=T=0?3:T和Cs=Ps+Ttmp。换言之,将转变数T与0进行比较,并且在T=0时,Ttmp(T临时)变成等于3,否则(在T不等于0时)Ttmp变成等于T。并且当前码元(Cs)变成先前码元值(Ps)值加Ttmp。例如,在第一循环2606中,T为2,所以Ttmp也为2,并且在Ps为1的情况下,新的Cs现在为3。

在第二循环2608中,转变数1在此下一循环中被输入,并且转变数不为3,所以将先前码元的为3的值加上为1的T值。由于该加法的结果4大于3,因此翻转数0成为当前码元。

在第三循环2610中,相同转变数1被输入。因为T为1,所以Ttmp也为1。转换逻辑将先前码元0加上1与以生成当前码元1。

在第四循环2612中,转变数0被输入。在T为0时,转换逻辑使Ttmp等于3。因此,将先前码元1加上3以生成当前码元0(由于该加法的结果4大于3,因而翻转数0成为当前码元)。

因此,即使两个连贯三进制数位2602具有相同数,该转换仍保证了两个连贯码元数具有不同状态值。正因如此,码元序列2604中的有保证码元转变可以用于嵌入时钟信号,藉此释放I2C总线中的时钟线SCL以用于数据传输。在接收机侧(RX:S到T),该逻辑反转:Ttmp=Cs+4–Ps并且T=Ttmp=3?0:Ttmp

图27是解说用于将转变数转换成码元数的技术的一个示例的第一示图2700。码元S可以在控制数据总线330在CCIe模式中操作时在SDA线318和SCL线316上被传送。在一个示例中,每一码元都可由2位构成,其中LSB被指派给SCL线216且MSB被指派给SDA线218。

每一三进制转变数T可被如下表征:

当S在码元排序圆圈上从前一状态顺时针转变一个状态至当前状态时,T=1;

当S在码元排序圆圈上从前一状态顺时针转变两个状态至当前状态时,T=2;以及

当S在码元排序圆圈上从前一状态顺时针转变三个状态至当前状态 时,T=0。

CCIe模式中的数据控制总线330上的数据传输可采用任何转变数。即,所有可能的转变数值都可供用于生成编码了数据的每一码元。码元使用转变数来被选择以标识与先前传送的码元不同的码元。

图28是解说图27中所解说的编码技术的一些方面的第二示图2800。在该示图2800中,每一三进制转变数T可被如下表征:

当S在码元排序圆圈上从前一状态顺时针转变一个状态至当前状态时,T=1;以及

当S跨越码元排序圆圈上从前一状态转变至当前状态时,T=2;以及

当S在码元排序圆圈上从前一状态逆时针转变一个状态至当前状态时,T=0。

第二示图2800示出SCL线316在T=0或1时总是翻转,并且SCL线316在T=2时不翻转。

图29是解说可能在SDA掩蔽3122被断言时发生的一些状况的示图,该状况可能在带内IRQ时段期间发生。如本文所提及的,SDA线318在带内IRQ时段期间被掩蔽以避免生成额外的时钟脉冲。SCL线316在转变数T=2被发送时不翻转,并且根据I2C协议,SDA线318在SDA信号被掩蔽时被观察到始终为高(无码元转变),而不管其实际状态如何。因此,T=2可以在SDA掩蔽=1时被禁止,因为从动设备在T=2是在SDA掩蔽时段期间的情况下不按其接收时钟生成任何转变。

图30解说了图25和29中的使用SDA掩蔽的副作用。即使T不等于2,任何将导致SDA线318为逻辑0的转变T值都被混叠至T[2:0]=010,其假定SDA位始终为1,这是因为SDA线318在带内IRQ时段期间始终被视作逻辑1状态。

图31包括解说与对带内IRQ使用心跳时钟有关的一些方面的表3100和时序图3120。心跳可使用占用三进制数空间内的数空间0x81BD6到0x81BF0(即,27个地址)的值来生成。在SDA掩蔽=1之时T=2被禁止且任何其它T个组合被混叠至T=010这一事实意味着支持带内IRQ的心跳字占用不仅仅是一个地址,而且它在实效上占用了位19区域的27个地址。对该特定心跳模式 的使用禁止使用三进制数2222_2222_2222(即十六进制81BF0),并且作为双字CCIe同步的第一字是非常有用的。三进制数2222_2222_2222促成绝对同步。

图32是解说使用图31中所解说的三进制数的位19来映射CCIe模式传输的示例的表3200。在该示例中,心跳可被指派给三进制数2222_2222_20103。注意在该示例中,只要检测到2222_2222_2xxx3的范围内的三进制数,这就可被解读为心跳和/或带内IRQ(例如,十六进制为0x81BD9)。

带内IRQ技术的第二示例

图33和34包括解说用于在控制数据总线330上实现在或能在CCIe模式中操作的带内IRQ的技术的时序图3300、3400。在一个示例中,执行带内IRQ所需的接收机时钟RXCLK循环数的减少可以是相对于参照图25描述的示例减少。时序图3300对应于用于提供带内IRQ时段3306的协议,其中接收方从动设备可以检测例如在开始S指示符3312之后的第n个RXCLK脉冲3314。第n个RXCLK脉冲3314可触发内部SDA掩蔽3324以内部地(例如,在接收从动设备内)掩蔽SDA线318。

在n+1RXCLK脉冲3316,从动设备可通过拉低SDA线318来触发IRQ。在n+1RXCLK脉冲3316到达之前,主控设备可使用电阻式上拉等来使得SDA线318来被(弱)拉至高状态。带内IRQ可以在从动设备将SDA线318拉低时被指示。

在n+1RXCLK脉冲3316之间但在n+2RXCLK脉冲3318之前,主控设备可监视SDA线318以查实该SDA线318是否和/或何时走低(作为带内IRQ请求已被断言的指示),而不是等待直至下一时钟循环。将领会到,由主控设备对SDA线318的这一监视可以只在IRQ时段期间被执行以便异步地检测来自从动设备的任何IRQ请求。在n+2RXCLK脉冲3318,从动设备可以释放SDA线318以解除断言该带内IRQ。在n+2与n+3RXCLK脉冲之间,主控设备可以重新启用SDA驱动器并且可以开始将SDA线318驱动至高电平。因此,断言方从动设备的接收机能够在n+3RXCLK脉冲3320处安全地释放SDA掩蔽。在n+3RXCLK脉冲3320处,从动设备可释放SDA掩蔽3324。以此方式,带内IRQ可在SDA线上所定义的IRQ时段3306期间由从动设备传送。

图35是解说当采用SDA掩蔽3324时的混叠状况的时序图3500,并且图36包括解说根据图33-35中提出的示例的与在带内IRQ期间提供的心跳时钟有关的一些方面的时序图3600。心跳字可占用三进制数空间内的数空间0x81BBB~0x81BD5(即,27个地址)。类似于参照图25-32讨论的心跳,图33-35的示例中的替代心跳也占用位19区域的27个地址。然而,该替代心跳不禁止使用2222_2222_2xxx三进制数空间,以使得2222_2222_2222字仍然可供用于同步。该心跳模式还可使得主控设备必须使用异步带内IRQ检测电路来容适更短的带内IRQ时段。

图37是解说可藉以在主控设备处于活跃模式3700时以及在主控设备处于功率节省模式3720时传送心跳的方法的示图。在正常操作期间,主控设备可以处于活跃模式3700,且主控设备可以周期性地发送心跳字3702以允许从动设备发出带内IRQ。心跳字区间可以使其将不会使从动设备缺少断言中断的机会。

当主控设备处于功率节省模式3720时,相同的心跳3702也可被传送,由此给予总线上的诸从动设备在功率节省模式期间发出带内IRQ的机会。

图38是解说组合同步字3804和心跳字3802的时序图3800。心跳字3802可用作二字同步字序列中的第二字。在一个示例中,此二字同步序列可以开始于所有数位=2(值=2222_2222_2222)且记为“SY-”的第一字3804,而心跳字3802可具有值=2222_2222_1101且记为“-NC”。“SY-”字可使得接收设备生成14个转变状态“2”,包括与开始状况相关联的一个“2”、以及最后码元后的一个“2”,此时表示总线信令状态的码元从1(SDA=0,SCL=1)转变为3(SDA=1,SCL=1)。“-NC”字可使得接收设备生成9个转变状态“2”,包括与开始状况相关联的一个“2”。

“SY-”和“-NC”字的组合可被称为“SYNC”,其提供总共23个转变状态“2”继以“1101”序列。该序列是唯一性序列并且不发生在其它CCIe事务中。CCIe设备可使用该序列来同步至CCIe字边界。

图39是解说CCIe协议的位19内的同步和心跳映射的表3900。跨越27个数的数空间0x81BD6到0x81BEF hex可被禁止以使得包括二十三个“2”以及“1101”位模式的此二字模式“SY-NC”是唯一性的且仅被用于同步。主控设备能 够周期性地在心跳(其为“-NC”字)之前发送“SY-”字,以允许从动设备在同步丢失的情形中重新同步,或者准许热插入的从动设备同步到总线。

带内SID扫描和响应

耦合到控制数据总线330的每一从动设备可由从动方标识符(SID)来唯一性地标识。主控设备可执行对耦合到控制数据总线的从动设备的扫描以获悉其SID。扫描可以在设备的启动和/或上电时,在有新设备已被插入该总线(例如,热插入)时,和/或周期性地被执行。当主控设备感测到IRQ已由从动设备发出时,它然后可扫描从动设备以标识哪个设备发出了该IRQ。在一个办法中,主控设备可发起SID扫描,其中SID或其元素的序列被发送并且匹配这一SID或SID元素的从动设备拉低SDA线以指示匹配。

图40解说了包括SID“扫描全部(Scan All)”命令4002及其相应的有效载荷4004的CCIe传输的一个示例4000。SID“扫描全部”命令4002(由“0x4码标识)可由主控设备发布。有效载荷4004可包括单元SID询问序列4010。每一单元SID询问序列4010包括SID掩码对4008以及响应(RESP)字4006。SID掩码对4008可定义标识SID内要询问的位位置的掩码。

如表4020中所解说的,该32位SID掩码对4008(展布在两个16位数据D0和D1上)用于标识16位SID是否有一个或多个位位置正被查询,并且若是,则还标识正为其查询哪个值(或位设置)。例如,SID掩码对4008的位[1]可定义SID的位[0]将被校验还是掩蔽(即,不被校验)。如果位[1]指示“校验”,则SID掩码对4008的位[0]定义该询问是针对“0”还是“1”。

由RESP字4006定义的时段允许从动设备在共享总线上带内地对SID询问进行响应。对于每个单元SID询问序列4010,具有匹配于相应的询问位的一个或多个未被掩蔽的SID位的每个从动设备(即,该从动设备的SID在所询问的一个或数个位置处具有与该一个或多个询问位相匹配的一个或多个位)在共享总线的至少一条线上带内地发送询问响应。这允许主控设备查明总线上是否有任何从动设备具有部分匹配的SID(即,在所询问的位位置处具有与该询问位相匹配的位的SID)。

多个单元SID询问序列4010由主控设备发送以完全标识耦合至共享总线 的所有设备的SID。

“扫描全部”命令4002或其变型可在与主控的引导不直接相关的时机被发布。在一个示例中,主控设备可扫描耦合至控制总线的所有从动设备以检查是否所有从动设备都处于同步。在该示例中,主控设备不一定需要执行完整的“盲扫描”,并且主控方可以发布无掩码和/或带有不将任何SID位从比较中排除的掩码的询问,因为主控设备可能已经知道哪些从动设备耦合至总线。在另一示例中,主控设备可扫描耦合至控制总线的所有从动设备以检查一个或多个特定设备是否处于同步。在该示例中,主控设备针对要被扫描的每个从动设备可仅发送一个单元SID询问。

图41解说了在包括SDA线和SCL线的共享总线上的SID扫描响应(RESP字4006)的时序图4100。在该示例中,SID扫描响应4130由三进制数2222_2221_21013或即十六进制0x81B8F(其等于12码元序列3131_3130_2323)标识。这些码元在SDA线4126和SCL线4127上被传送。为了允许从动设备在响应时段4106期间使用SDA线4126来对SID扫描询问作出响应,主控设备释放SDA线4126并使得SDA线4126被弱拉高。每个接收机设备随后掩蔽至其时钟数据恢复电路(CDR)的SDA线输入长达该响应时段4106。主控方翻转SCL线(改变其状态),从而每个接收机设备能够在SDA线处于使用中时从SCL线上的此类翻转中恢复时钟。

RESP字4006可以近乎等同于心跳字。RESP字4006可具有相对于心跳字的至少一个区别,以使得主控设备和/或从动设备能将RESP字4006与心跳字区分开来。心跳字和RESP字4006在位19三进制空间(即,其中位19值是恒定的地址空间)内可以是毗邻或近乎毗邻的,从而留下可用于其它控制和信令目的的大连续区域。在一个示例中,位19高区域的较低部分中的大连续区域可被保留和/或用于其它目的。RESP字4006提供的带内响应能力的可用性使从动设备能够带内地发送响应,而不是使用专用边带IRQ线。

根据CCIe协议,接收方从动设备可以例如检测在开始S指示符4112之后的第n个RXCLK 4114。第n个RXCLK 4114可触发内部SDA掩码4124以内部地(例如,在接收方从动设备内)掩蔽每一监听方CCIe设备内的SDA线4126。

在n+1RXCLK 4116处,从动设备可通过拉低SDA线4126来断言/发出响应。SDA线4126由主控设备弱拉高,从而在它被(从动设备)拉低时这用于指示对SID扫描询问的肯定响应。通过将SDA线4126弱拉高,这允许从动设备将SDA线4126拉低以断言对SID扫描询问的响应。

在n+1RXCLK 4116之间但在n+2RXCLK 4118之前,主控设备可监视SDA线4126以查明其是否和/或何时变低(意味着响应已被断言/发布),而非等待直至下一个时钟循环。注意,由主控设备对SDA线4126的此种监视可以仅在响应时段4106期间被执行以便异步地检测来自从动设备的任何所断言/发布的响应。

在n+2RXCLK 4118处,从动设备可释放SDA线4126。

在n+2RXCLK 4118与n+3RXCLK 4120之间,主控设备可重新启用其SDA线驱动器并开始将SDA线4126驱高。因此,接收机设备(例如,断言方从动设备)能够安全地在n+3RXCLK 4120处释放SDA掩码4124。

在n+3RXCLK 4120处,从动设备可释放SDA掩码4124。以此方式,SID扫描响应可由从动设备在SDA线4126上所定义的响应时段4106期间传送。

图42是解说可由CCIe协议使用以使用三进制数2222_2221_21013(0x81B8F hex)的可能的SID扫描响应字的表4200。

IRQ群询问

为了标识IRQ断言方从动设备,诸从动设备可被指派或关联于“群”。由此,主控设备可以发送询问以标识断言了IRQ请求的从动设备。断言了IRQ的从动设备只可在其所被指派的群内响应该询问,藉此向主控设备标识断言方从动设备。

图43是解说示例性CCIe协议内的IRQ群询问一般调用的示图4300。主控设备可以在共享总线上向所有从动设备广播一般调用IRQ群询问4320。在IRQ群询问命令0x0007(十六进制)4302后,多个IRQ群询问字4304被发送。在一个示例中,每一询问字都具有三个询问响应时隙,且对于群0到群32而言有总共33个时隙。在一个示例中,询问字4304可包括从一(1)到十一(11)的IRQ群询问字(IQ)以及末尾处的一个终止符字(Term)4306。终止符字 4400的示例在图44中解说。对于每一询问字4304,所有从动设备掩蔽共享总线的SDA线。在一般调用的有效载荷4304的每一IRQ群询问(IQ)字4308处,每一从动接收机必须在T11RXCLK开始掩蔽SDA并在虚设(T-1)RXCLK释放该掩蔽。

在图43中所描绘的示例中,IRQ群询问可以在调用的消息类型具有值0x7时被确定。如所提及,在指派给三个不同IRQ群的一般调用的有效载荷的每一IQ字中可以有三个时隙。在每一时隙中,每一所指派的群中的一个或多个从动设备可驱动SDA线作为询问响应以指示它已发出IRQ或者具有尚未被服务的IRQ。主控设备可基于与总线相关联的IRQ群的数目来选取IRQ群询问(IQ)字的数目。

在一些情形中,或在需要时,主控设备可以发送比覆盖所有现存群所需的序列长度要短的询问字序列。在一个示例中,此较短的询问字序列可被发送以缩短针对频繁且短等待时间事件的询问时间,并且完整询问可被不那么频繁地执行以覆盖总线上的所有群。IRQ群询问(IQ)字的序列可以结束于终止符字(Term)。

如图44中所解说的,终止符字4400的码元模式可被选取成使得每一接收机能在位置T11识别出该字是终止符字4400(即,Term字4306),而不是IRQ群询问(IQ),从而使得接收机知晓何时要停止掩蔽SDA并要终止IRQ群询问一般调用处理。使用终止符(Term字4400)方案准许有效载荷的长度被灵活地设置,且IRQ群询问(IQ)字序列的长度在必要时可以超过11字。

IRQ群询问调用可以为特定字定义位值以简化从动设备处的与可变长度传输和SDAMASK信号4124、4424的激活有关的逻辑和决策制定。在一个示例中,与一般调用相关联的RESP字4006(参见图40)与特定其它字之间的区别可以在图41中所解说的RESP字的初始码元4103与图44中所解说的Term字4306(参见图43)的初始码元4403之间的区别中观察到。即,在码元4104、4404的相应的已传送序列的第一(最高有效)码元4103、4403之间明显的区别可由接收机用来在整个字的解码完成之前快速确定SDAMASK信号4124、4424的布置。具体而言,从动设备可将START状况检测为收到码元序列4104、4404两者中的码元值{3,1}。在检测到START状况之际,每一从动设备可初 始化码元计数器(SYMCNT)4402,其能被用于跟踪从动设备接收到的码元的数目。在一个示例中,SYMCNT 4402可以用值0xB来初始化,并且对于接收到的每一码元,SYMCNT 4402可以被递减。相应地,从动设备可基于在SYMCNT 4402具有值0xB时接收到的码元4103或4403的值来确定SDAMASK信号4124、4424的状态。当RESP字4006正被接收时,码元4103在SYMCNT 4402具有值0xB时具有值3,这指示SDAMASK信号4124将被启用。当Term字4306正被接收时,码元4403在SYMCNT 4402具有值0xB时不具有值3(此处,该值为0),这指示SDAMASK信号4424将被禁用。用于编码RESP字4006和Term字4306的码元的配置使从动设备能够在中途终止RESP或一般调用序列,由此使得能够处置可变长度序列。

在一些实例中,用于第一IRQ群询问(IQ)的三个时隙被指派给群0、1和2。具有较小数字的群被指派给较早的响应时隙。群0可被保留以用于热插入设备或用于主控方尚未在总线系统上识别出的设备。由于必须发送至少一个IRQ群询问(IQ)字,因此发出IRQ的任何热插入设备总是能被识别出。

图45解说了对群询问调用的响应。在该示例中,一个或多个响应时段(即,询问字)可以通过将时钟计时转移至SCL线4510并使用SDA掩蔽4512来在SDA线4508上被定义。在该示例中,这些单独时隙4502、4504和4506已经针对每一询问(IQ)字4308来被定义(参见图43)。每一IQ字4308中的三个时隙4502、4504和4506中的每一者都可被指派给三个不同IRQ群。指派给每一时隙4502、4504和4506的从动设备可以在所指派的时隙4502、4504和4506期间驱动SDA线4508以作为询问响应来指示它已经发出IRQ或者具有尚未被服务的IRQ。由于每一IRQ群询问字4308具有三个询问响应时隙4502、4504和4506,并且在一般调用有效载荷4304中可以有最多11个IRQ群询问(IQ)字,因此在一个调用中可以有最多33个群时隙。

最多达三十二(32)个设备可被指派给各群以使得在一群中只有一个设备,藉此提供对IRQ发出者的即时标识。该办法一次标识多个IRQ群,藉此减少所需的IRQ扫描的次数(例如,更少的IRQ嵌套)。替代地,多个设备可被指派给每一群,但主控设备可能需要附加询问来标识该群中的这多个设备中的哪个设备发出了该IRQ。

主控设备可基于总线系统上的IRQ群的数目来选择要包括在一般调用中的IRQ群询问(IQ)字的数目。在一些示例中,主控设备可发送较少数目的询问字4308(例如,少于最大数目十一(11))。这可允许缩短用于IRQ群询问一般调用的时间。

IRQ群询问(IQ)字的序列以终止符字(Term)4306结束。终止符字4306的码元模式可被选择成使得每一接收机从动设备能在T11RXCLK识别出该字是终止符(Term),而不是IRQ群询问(IQ),以知晓何时要停止掩蔽SDA线4508以及结束IRQ群询问一般调用。

用于第一IRQ群询问(IQ)的三个时隙4502、4504和4506可被指派给群0、1和2。具有更少数目的群可被指派给较早的响应时隙。

在一个示例中,群0可被保留用于主控设备尚未在共享总线上识别出的一个或数个热插入设备。由于至少一个IRQ群询问(IQ)字必须被发送,因此发出过IRQ的任何热插入设备总是被识别出。

归功于使用终止符(Term)字4306,有效载荷4304的长度可以被灵活地设置,且IRQ群询问(IQ)字序列的长度在有需要时可以超过11字。

IRQ群询问可用于边带IRQ,其中单独的IRQ信号线可由从动设备用来请求中断服务。主控方可使用IRQ群询问来标识请求方设备,并且主控设备无需通过用精确的自由运行的计时器测量IRQ断言时段来确定IRQ群。在这方面,从动设备无需以精确的定时生成IRQ,并且从动设备无需冲裁IRQ。相应地,从动设备和/或主控设备可以在没有精确的自由运行的计时器的情况下操作以创建并测量用于群标识的IRQ时段。

根据一些方面,IRQ群询问可以支持由多个群进行同时IRQ断言而没有任何群遭受仲裁损失。主控设备可以一次识别所有IRQ,并且从动设备无需因仲裁损失而不断重复IRQ。相应地,从动设备不太可能经历接入“挨饿”。

全局时钟读取

CCIe是源同步码元转变时钟计时系统。在控制数据总线上发送数据的设备还发送嵌入在该数据内的时钟信息。不像I2C的是,所有从动设备必须使用其自己的时钟源来生成具有时钟信息的读取数据。本文描述的用于IRQ群询问 的技术(例如,始终翻转SCL线而同时使所有从动设备掩蔽其SDA输入并允许从动设备驱动SDA线)也可被用于执行全局时钟读取。

如从图43-45中可以领会的,IRQ群询问字可被限于携带仅3个从动方响应,主要是为了允许具有不同RXCLK定时的多个从动方在同一时隙内驱动SDA线。然而,只允许单个从动设备在SDA掩蔽期间驱动SDA线准许实现双倍数据率(DDR)全局时钟读取。

图46解说了对应于DDR全局时钟读取实现的示例的全局时钟读取一般调用的示例4600。在开始DDR全局时钟读取序列之前,主控设备可发出某一CCIe协议传输(诸如一般调用)。该一般调用传输可指示:

1.以下序列是DDR全局时钟读取。

2.DDR全局时钟读取的字数。

3.要自其读取数据的设备的SID。

4.要自其读取数据的设备的寄存器地址。

总线上的每一设备都被适配或配置成理解一般调用之后的所有CCIe事务都涉及DDR全局时钟读取,直到已发送指定数目的字。

在DDR全局时钟模式中,总线上的所有设备都可以在字末尾包括虚设码元的码元时段期间掩蔽至其时钟数据恢复(CDR)电路的SDA输入。被寻址的从动设备在第二个RXCLK脉冲(不包括藉由START状况的RXCLK)将SDA线318驱低,并且该逻辑0被主控设备用来校准其时钟以对SDA线(SDACLK)进行采样。从第三个RXCLK,被寻址的从动设备可以串行地驱动出9个数据位。该9个数据位可以是MSB居先或LSB居先或取决于系统要求的其它格式。在该时段期间,主控设备在SCL线上提供或驱动DDR全局时钟。从动设备可以在第12个RXCLK将SDA线318驱高,并在第13个RXCLK释放SDA线318。

主控设备在第一个码元“3”被发送后释放SDA线318,并在最后码元“2”之后启用其SDA驱动器并将SDA线318驱高。在释放SDA线318后,SDA线318可被弱拉至高状态。主控方以SDACLK定时在SDA线318中采样以移入这9个读取数据位。主控方可以在最后码元(“2”)后通过传送码元“3”来重新继续驱动SDA线318。

图47是解说全局时钟读取字的一些方面的时序图。第一时钟信号SDACLK 4702和第二时钟信号RXCLK 4704指示主控设备内的内部信号。第二时钟信号RXCLK 4704可由主控设备的时钟数据恢复电路(CDR)生成。第一时钟信号SDACLK 4702可由时钟生成电路4706生成,该时钟生成电路可由主控设备用来在被从动设备信号驱动时对来自SDA线4708(其为共享总线的一部分)的数据值进行采样。第一时钟信号SDACLK 4702只可在SDAMASK信号4710为1(对CDR的SDA线4708输入被掩蔽)时生成。

由于是从动设备在全局时钟读取时段期间驱动SDA线4708,因此总线上的所有设备(包括主控设备)在该时段期间掩蔽SDA线4708对其CDR的输入,该时段始于第二时钟信号RXCLK从START状况上升4712,且止于该字藉由虚设码元的最后RXCLK上升沿4714。

在该示例中,主控设备针对全局时钟读取字发送0x5BE75(2010_1010_10103)。由于这是全局时钟读取一般调用的有效载荷部分,因此共享总线上的每一设备都知道这些全局时钟读取字跟在调用消息“6”之后,每一设备还知道何时要开始和结束SDAMASK 4710。

在一些情形中,SDACLK 4702可以在主控设备处被生成,且具有相对于其RXCLK 4704而言的延迟以应对SDA线318上的读取数据周转延迟。此延迟的历时可通过测量主控设备处的第一已知数据(例如,SDA线318上的1到0下降)的周转延迟来优化。

在一些实例中,从动设备可以只在全局调用之后的每一全局时钟读取字处才激活SDAMASK。SDA线318的掩蔽可防止总线上任何未被寻址的从动设备不受GCR字数据(被每一从动方视作2010_1010_10103)所影响。

每一设备预期针对下一字的全局时钟读取字,除非下一字是在第一码元具有特异信号模式的“终止符”字。

由于SDA线4708上的数据信号由从动设备使用来自该从动设备的CDR的RXCLK 4716来驱动,因此主控设备必须“正确地”延迟其来自该主控设备的CDR的第二时钟信号RXCLK 4704以使该主控设备在有足够建立和保持时间的情况下对数据进行采样。主控设备获悉由从动设备按照全局时钟读取协议在主控设备发送出全局时钟读取字(即,T10循环)的第二码元后驱动的SDA 线4708的第一下降沿处的此正确摂延迟。“校准逻辑”4718测量从T10循环的开头下降的SDA线4708的延迟,并使用该延迟来配置“SDACLK延迟”,以使得主控设备可靠地从下一码元对来自从动设备的SDA线4708传输进行采样。

涉及共用IRQ总线的装置、系统和方法的示例

图48是解说采用可被配置成执行本文所公开的一个或多个功能的处理电路4802的装置的硬件实现的简化示例的概念图4800。根据本公开的各种方面,可使用处理电路4802来实现本文所公开的用于使用共用IRQ总线来管理或发起中断的元件、或元件的任何部分、或元件的任何组合。处理电路4802可包括一个或多个处理器4804,其由硬件和软件模块的某种组合来控制。处理器4804的示例包括:微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、状态机、定序器、门控逻辑、分立的硬件电路、以及其他配置成执行本公开中通篇描述的各种功能性的合适硬件。该一个或多个处理器4804可包括执行特定功能并且可由软件模块4816之一来配置、增强或控制的专用处理器。例如,该处理电路可被配置为适配成处置对数据的编码和解码以供在一个或多个无线网络上传输的通信处理器或另一类型的处理器。一个或多个处理器4804可通过在初始化期间加载的一个或多个软件模块4816的组合来配置,且可通过在操作期间加载或卸载软件模块4816中的一者或多者来进一步配置。

在所解说的示例中,处理电路4802可使用由总线4810一般化地表示的总线架构来实现。取决于处理电路4802的具体应用和整体设计约束,总线4810可包括任何数目的互连总线和桥接器。总线4810将各种电路链接在一起,包括一个或多个处理器4804、和存储4806。存储4806可包括存储器设备和大容量存储设备,并且在本文可被称为计算机可读介质。总线4810还可链接各种其他电路,诸如定时源、定时器、外围设备、稳压器、和功率管理电路。总线接口4808可提供总线4810与一个或多个收发机或线接口电路4812之间的接口。线接口电路4812可包括被用于通过可包括多导线串行总线的传输介质来与各种其他装置通信的差分线驱动器和接收机、CDR、编码器和解码器。取决于该装置的本质,也可提供用户接口4818(例如,按键板、显示器、扬声器、 话筒、操纵杆),并且该用户接口可直接或通过总线接口4808通信地耦合至总线4810。

处理器4804可负责管理总线4810和/或一般处理,包括对存储在计算机可读介质(其可包括存储4806)中的软件的执行。在这一方面,处理电路4802(包括处理器4804)可被用来实现本文所公开的方法、功能和技术中的任一种。存储4806可被用于存储处理器4804在执行软件时操纵的数据,并且该软件可被配置成实现本文所公开的方法中的任一种。

处理电路4802中的一个或多个处理器4804可执行软件。软件应当被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数、算法等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。软件可按计算机可读形式驻留在存储4806中或驻留在外部计算机可读介质中。计算机可读介质和/或存储4806可以是非瞬态计算机可读介质。作为示例,非瞬态计算机可读介质包括:磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩碟(CD)或数字多功能碟(DVD))、智能卡、闪存设备(例如,“闪存驱动器”、卡、棒、或钥匙驱动器)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦式PROM(EPROM)、电可擦式PROM(EEPROM)、寄存器、可移动盘、以及任何其他用于存储可由计算机访问和读取的软件和/或指令的合适介质。作为示例,计算机可读介质和/或存储4806还可包括载波、传输线、和任何其它用于传送可由计算机访问和读取的软件和/或指令的合适介质。计算机可读介质和/或存储4806可驻留在处理电路4802中、处理器4804中、在处理电路4802外部、或跨包括该处理电路4802在内的多个实体分布。计算机可读介质和/或存储4806可实施在计算机程序产品中。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。本领域技术人员将认识到如何取决于具体应用和加诸于整体系统上的总体设计约束来最佳地实现本公开中通篇给出的所描述的功能性。

存储4806可维持以可加载代码段、模块、应用、程序等来维持和/或组织的软件,其在本文中可被称为软件模块4816。软件模块4816中的每一者可包 括在安装或加载到处理电路4802上并被一个或多个处理器4804执行时有助于运行时映像4814的指令和数据,运行时映像4814控制一个或多个处理器4804的操作。在被执行时,某些指令可使得处理电路4802执行根据本文所描述的某些方法、算法和过程的功能。

软件模块4816中的一些可在处理电路4802初始化期间被加载,并且这些软件模块4816可配置处理电路4802以实现本文所公开的各种功能的执行。例如,一些软件模块4816可配置处理器4804的内部设备和/或逻辑电路4822,并且可管理对外部设备(诸如,线接口电路4812、总线接口4808、用户接口4818、定时器、数学协处理器等)的访问。软件模块4816可包括控制程序和/或操作系统,其与中断处理程序和设备驱动器交互并且控制对由处理电路4802提供的各种资源的访问。这些资源可包括存储器、处理时间、对线接口4812的访问、用户接口4818等。

处理电路4802的一个或多个处理器4804可以是多功能的,由此软件模块4816中的一些被加载和配置成执行不同功能或相同功能的不同实例。这一个或多个处理器4804可附加地被适配成管理响应于来自例如用户接口4818、线接口电路4812和设备驱动器的输入而发起的后台任务。为了支持多个功能的执行,这一个或多个处理器4804可被配置成提供多任务环境,由此多个功能中的每个功能按需或按期望实现为由一个或多个处理器4804服务的任务集。在一个示例中,多任务环境可使用分时程序4820来实现,分时程序4820在不同任务之间传递对处理器4804的控制权,由此每个任务在完成任何未决操作之际和/或响应于输入(诸如中断)而将对一个或多个处理器4804的控制权返回给分时程序4820。当任务具有对一个或多个处理器4804的控制权时,处理电路有效地专用于由与控制方任务相关联的功能所针对的目的。分时程序4820可包括操作系统、在循环法基础上转移控制权的主循环、根据各功能的优先级化来分配对一个或多个处理器4804的控制权的功能、和/或通过将对一个或多个处理器4804的控制权提供给处置功能来对外部事件作出响应的中断驱动式主循环。

图49是解说根据本文公开的一些方面的用于断言、接收和/或处理带内IRQ的方法的第一示例的流程图4900。该方法可由例如主控设备、或主控设备 和从动设备的组合来实现。

在框4902,可控制总线上的来自主控设备的数据传输。数据位可被转码成码元以供跨该总线的两条线进行传输,并且时钟信号被嵌入在这些数据传输的码元转变内。

在框4904,可以在与由主控设备在该总线的第一线和第二线上进行的心跳字的传输相关联的中断时段期间监视该总线。可使得该一个或多个从动设备能够响应于心跳字的传输使用该总线的第一线来断言中断请求。在总线处于空闲操作模式之时,心跳字的传输可以按从第一线和第二线的信令状态生成的接收时钟来产生脉冲。

在一些示例中,心跳字可以选自具有被设为第一逻辑值的最高有效位的二十位字的集合。在主控设备与该一个或多个从动设备之间传送的有效载荷数据可包括具有被设为第二逻辑电平的最高有效位的二十位字。该一个或多个从动设备可被适配成通过在总线的第一线和第二线上传送响应字来断言中断请求。响应字与心跳字的不同之处可以在于一个位,并且具有与心跳字的最高有效位相同的最高有效位。

在另一示例中,该一个或多个从动设备可被适配成在中断时段期间内部地掩蔽第一线以用于解码从总线接收到的经转码数据位。可以在由主控设备在总线的第一线和第二线上发起的从动方标识符扫描的部分内提供从动方标识符扫描响应时段,在该时段期间,耦合到该总线的一个或多个从动设备能在该总线的第一线上提供其唯一性标识符。

在另一示例中,该一个或多个从动设备中的每一者可被配置成掩蔽第一数据线。SID扫描响应时段可以在总线上的全局调用的传输期间被提供。该一个或多个从动设备中的每一者可被配置成当在已经在总线上传送全局调用后传送响应时掩蔽第一数据线。

在一个示例中,主控设备可以在总线上执行对从动设备的扫描以标识断言该中断请求的从动设备。主控设备可以在第一线上从断言方从动设备接收指示符。

在另一示例中,从动设备可以在中断时段期间通过下拉第一线来断言中断请求。从动设备可以在中断时段期间内部地掩蔽第一线以用于解码在总线上接 收到的经转码数据位。根据一些方面,耦合到总线的所有从动设备也在该中断时段期间内部地掩蔽第一线。

在另一示例中,可提供从动方标识符扫描响应时段。在该时段内,耦合到总线的一个或多个从动设备可以在由主控设备在总线的第一线和第二线上发起的从动方标识符扫描的部分内在总线的第一线上提供其唯一性标识符。

在另一示例中,可定义数据读取时段,其中先前标识的从动设备被允许在总线的第一线上传送数据,而此时主控设备在该总线的第二线上发送全局读取时钟。全局读取时钟可以是双倍数据率时钟。

图50是解说根据本文所公开的某些方面的用于生成IRQ的方法的示例的流程图5000。该方法可以由例如从动设备来实现。

在框5002,从动设备可以在总线上从主控设备接收数据传输。该数据中的数据位可被转码成码元以供跨该总线的两条线传输。时钟信号可被嵌入在这些数据传输的码元转变内。中断时段可被定义在该总线上所接收到的这些码元内。

在框5004,当在总线的第一线和第二线上从主控设备接收心跳传输之时,从动设备可以在该总线的第一线上断言中断请求该中断请求可以是断言方从动设备希望请求由主控设备作出的某一动作的指示符。该中断请求可以在该中断时段期间通过下拉第一线来被断言。

在一个示例中,该中断请求是断言方从动设备希望请求由主控设备作出的某一动作的指示符。该中断请求可以在中断时段期间通过下拉第一线来被断言。

在另一示例中,从动设备可以在检测到心跳字后掩蔽第一数据线。当在已经在总线上传送一般调用后传送对心跳字的响应之时,可掩蔽第一数据线。

在另一示例中,从动设备可以在总线的第一线和第二线上从主控设备接收从动方标识符扫描请求,并且可以在从动方标识符扫描请求所提供的从动方标识符扫描响应时段的部分内在该总线的第一线上提供唯一性从动方标识符。

在另一示例中,从动设备可以在主控设备所定义的数据读取时段期间在总线的第一线上发送数据,在该数据读取时段中,先前标识的从动设备被允许在总线的第一线上传送数据,而此时主控设备在该总线的第二线上发送全局读取 时钟。在一些情形中,耦合到总线的所有从动设备也在全局时钟读取时段期间内部地掩蔽SDA线。

图51是解说采用处理电路5102的装置5100的硬件实现的示例的概念图。在该示例中,处理电路5102可被实现成具有由总线5116一般化地表示的总线架构。取决于处理电路5102的具体应用和整体设计约束,总线5116可包括任何数目的互连总线和桥接器。总线5116将包括一个或多个处理器(由处理器5112一般化地表示)和计算机可读介质(由处理器可读存储介质5114一般化地表示)的各种电路链接在一起。一个或多个定时器可连接到总线和/或可以是可直接访问的或实施在处理器5112中。总线5116还可链接各种其他电路,诸如定时源、定时器、外围设备、稳压器、和功率管理电路。线接口电路5112可包括将处理电路5102耦合到控制数据总线的差分驱动器和接收机和/或将处理电路耦合至IRQ总线的电路。取决于该装置的性质,用户接口可被提供以支持诸如小键盘、显示器、扬声器、话筒、操纵杆等的设备。

处理器5112负责管理总线5116和一般处理,包括对存储在处理器可读存储介质5114上的软件的执行。该软件在由处理器5112执行时使处理电路5102执行上文针对任何特定装置描述的各种功能。处理器可读存储介质5114还可被用于存储由处理器5112在执行软件时操纵的数据。处理器可读存储介质5114还可被用于存储与一个或多个远程管理的设备以及装置5100本身相关的系统信息(例如,简档)。

在一种配置中,处理电路5102可以执行适配成作为I2C、CCI和/或CCIe总线上的总线主控设备来通信的设备的一个或多个功能。在第二配置中,处理电路5102可以执行适配成作为从动设备在I2C、CCI和/或CCIe总线上通信的设备的一个或多个功能。处理电路5102可通过接口电路5118连接到控制数据总线5120。处理电路5102可包括被配置成监视CCIe总线5120以查明带内IRQ信号何时被断言或何时能被至少一个从动设备断言的模块或电路5104、被配置成对在CCIe总线5120上传送的数据进行编码或解码的模块或电路5106、以及被配置成使用CCIe总线5120来传送和/或接收数据的模块或电路5108。

应该理解,所公开的方法中各步骤的具体次序或阶层是示例性过程的解说。基于设计偏好,应该理解,可以重新编排这些方法中各步骤的具体次序或 阶层。所附方法权利要求以样本次序呈现各种步骤的要素,且并不意味着被限定于所呈现的具体次序或阶层,除非在本文中有特别叙述。

提供先前描述是为了使本领域任何技术人员均能够实践本文中所描述的各种方面。对这些方面的各种改动将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。因此,权利要求并非旨在被限定于本文中所示出的各方面,而是应被授予与权利要求的语言相一致的全部范围,其中对要素的单数形式的引述并非旨在表示“有且仅有一个”——除非特别如此声明,而是旨在表示“一个或多个”。除非特别另外声明,否则术语“一些”指的是一个或多个。引述一列项目中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一者”旨在涵盖:a;b;c;a和b;a和c;b和c;以及a、b和c。本公开通篇描述的各种方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文中所公开的任何内容都并非旨在贡献给公众,无论这样的公开是否在权利要求书中被显式地叙述。权利要求的任何要素都不应当在35U.S.C.§112第六款的规定下来解释,除非该要素是使用措辞“用于……的装置”来明确叙述的或者在方法权利要求情形中该要素是使用措辞“用于……的步骤”来叙述的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1