CN106462533A - 用于多码元字的同步方法 - Google Patents
用于多码元字的同步方法 Download PDFInfo
- Publication number
- CN106462533A CN106462533A CN201580021178.7A CN201580021178A CN106462533A CN 106462533 A CN106462533 A CN 106462533A CN 201580021178 A CN201580021178 A CN 201580021178A CN 106462533 A CN106462533 A CN 106462533A
- Authority
- CN
- China
- Prior art keywords
- code
- serial bus
- universal serial
- equipment
- ccie
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Abstract
描述了提供相机控制接口(CCIe)总线的改进性能的系统、方法和装置。一种数据通信方法,包括:在串行总线上传送第一同步码;响应于第一同步码建立与耦合到串行总线的第一设备的同步;在建立与第一设备的同步之后,根据第一协议在串行总线上与第一设备通信;在串行总线上传送第一不同步码,其中所述不同步码被配置成致使失去与所述第一设备的同步;在串行总线上传送第二同步码;响应于第二同步码建立与耦合到串行总线的第二设备的同步;以及在建立与第二设备的同步之后,根据第二协议在串行总线上与第二设备通信。
Description
相关申请的交叉引用
本申请要求于2014年4月22日在美国专利局提交的临时专利申请No.61/982,466以及于2015年4月9日在美国专利局提交的非临时申请No.14/682,846的优先权和权益,这两篇申请的全部内容通过引用纳入于此。
背景
技术领域
本公开一般涉及主机处理器与外围设备(诸如相机)之间的接口,尤其涉及改进相机控制通信接口总线上的数据率。
背景技术
移动设备(诸如蜂窝电话)的制造商可从各种来源(包括不同制造商)获得移动设备的各组件。例如,蜂窝电话中的应用处理器可从第一制造商获得,而蜂窝电话的显示器可从第二制造商获得。可使用基于标准的或专有物理接口来互连应用处理器和显示器或其他设备。例如,显示器可提供遵从由移动行业处理器接口(MIPI)联盟所规定的相机串行接口标准的接口。
在一个示例中,MIPI标准定义了相机控制接口(CCI),CCI使用被配置为连接主控设备和一个或多个从动设备的总线的双线、双向、半双工串行接口。常规CCI与集成电路间(I2C)总线的变体中所使用的协议兼容并且能够用单个主控设备来处置该总线上的多个从动设备。CCI总线可包括串行时钟(SCL)和串行数据(SDA)信号。CCI设备和I2C设备可被部署在同一总线上以使得两个或更多个CCI设备可使用CCI协议来通信,同时涉及I2C总线的任何通信使用I2C协议。CCI的较新版本可使用经修改的协议来支持较快信令速率以提供较高吞吐量。
在一个示例中,CCI扩展(CCIe)总线可被用于为与CCIe总线操作兼容的设备提供较高数据率。此类设备可被称为CCIe设备,并且CCIe设备可以在彼此通信时通过将数据编码为在常规CCI总线的SCL线和SDA线两者上传送的码元来达到较高数据率。CCIe设备和I2C设备可以在相同的CCIe总线上共存,以使得在第一时间区间中可以使用CCIe编码来传送数据,并且可以在不同的时间区间中根据I2C信令约定来传送其他数据。
存在着在被配置为连接移动设备内的主组件和从组件的总线的串行接口上提供优化通信的现行需要。
概述
本文公开的各实施例提供了可改进使用CCIe总线的相机控制接口的性能的系统、方法以及装置。
在本公开的一方面,一种数据通信方法,包括:在串行总线上传送第一同步(SYNC)码;响应于第一同步码建立与耦合到串行总线的第一设备的同步;在建立与第一设备的同步之后,根据与第一协议相关联的第一操作模式在串行总线上与第一设备通信;在串行总线上传送第一不同步(UNSYNC)码,其中所述不同步码被配置成致使失去与所述第一设备的同步;在串行总线上传送第二同步码;响应于第二同步码建立与耦合到串行总线的第二设备的同步;以及在建立与第二设备的同步之后,根据与第一协议相关联的第二操作模式在串行总线上与第二设备通信。
在本公开的一方面,一种配置成用于数据通信的装备,包括:用于在串行总线上传送第一同步码的装置;用于响应于第一同步码建立与耦合到串行总线的第一设备的同步的装置;用于在建立与第一设备的同步之后,根据与第一协议相关联的第一操作模式在串行总线上与第一设备通信的装置;用于在所述串行总线上传送不同步码的装置,其中所述不同步码被配置成致使失去与所述第一设备的同步;用于在串行总线上传送第二同步码的装置;用于响应于第二同步码建立与耦合到串行总线的第二设备的同步的装置;以及用于在建立与第二设备的同步之后,根据与第一协议相关联的第二操作模式在串行总线上与第二设备通信的装置。
在本公开的一方面,一种装置包括:配置成在串行总线上通信的收发机;以及至少一个处理器。该至少一个处理器可被配置成:将第一同步码提供给所述收发机以用于在所述串行总线上传输;在响应于所述第一同步码建立与第一设备的同步之后,根据与第一协议相关联的第一操作模式在所述串行总线上与所述第一设备通信;将不同步码提供给所述收发机以用于在所述串行总线上传输,其中所述不同步码被配置成致使失去与所述第一设备的同步;将第二同步码提供给所述收发机以用于在所述串行总线上传输;以及在响应于所述第二同步码建立与第二设备的同步之后,根据与所述第一协议相关联的第二操作模式在所述串行总线上与所述第二设备通信。
在本公开的一方面,计算机可读存储介质存储或维持指令和/或数据。存储介质可以是瞬态或非瞬态的。该指令可由处理器执行和/或控制处理电路的操作。在一些示例中,指令在由处理器执行时致使处理器或处理电路:将第一同步码提供给收发机以用于在串行总线上传输;在响应于所述第一同步码建立与第一设备的同步之后,根据与第一协议相关联的第一操作模式在串行总线上与所述第一设备通信;将不同步码提供给所述收发机以用于在所述串行总线上传输,其中所述不同步码被配置成致使失去与所述第一设备的同步;将第二同步码提供给所述收发机以用于在所述串行总线上传输;以及在响应于所述第二同步码建立与第二设备的同步之后,根据与所述第一协议相关联的第二操作模式在所述串行总线上与所述第二设备通信。
附图简述
图1描绘了在各集成电路(IC)设备之间采用数据链路的装置,该数据链路选择性地根据多个可用标准之一来操作。
图2解说了用于在IC设备之间采用数据链路的装置的系统架构。
图3解说了根据本文所公开的某些方面的发射机和接收机的某些方面。
图4解说了根据本文所公开的某些方面的用于转码数据的编码方案。
图5解说I2C一字节写数据操作的时序图。
图6解说了开始状况对旧式I2C从节点的影响。
图7解说了用于I2C设备的状态机。
图8解说了防止I2C设备在共享总线上的CCIe传输期间发生故障的传输方法。
图9解说了通过SDA线和SCL线上的输入滤波器对脉冲的滤波。
图10解说了通过I2C接收机的输入滤波器对码元的滤波。
图11解说了在CCIe设备上传送的码元的拉伸。
图12解说了在码元周期被拉伸时的最佳和最差情况吞吐量。
图13解说了用于确定何时拉伸码元的技术。
图14解说了其中在传输期间由CCIe设备选择性地拉伸码元时隙的另一示例。
图15解说了其中在传输期间由CCIe设备选择性地拉伸码元时隙的又一示例。
图16解说了可发生亚稳状态的状况。
图17解说了在SDA线和SCL线两者同时改变状态时亚稳状况的发生。
图18解说了必须被避免以防止非预期开始或停止状况的状况。
图19解说了消除可造成亚稳状况的码元之间的转变。
图20比较使用每码元3个状态的12个码元和每码元2个状态的20个码元的传输模式。
图21解说了用于使用具有每码元2个状态的20个码元的CCIe传输的某些场景。
图22解说了与在CCIe接口上传送的字的第十九比特相关的某些方面。
图23和24提供了解说在CCIe传输系统中使用的映射的一个示例的表。
图25解说了可如何在SDA线和SCL线上传送心跳时钟以及可在心跳时钟的传输期间出现的同步机会的一个示例。
图26解说了在12码元和20码元CCIe传输模式中可用的某些数据范围。
图27解说了CCIe接口上的12码元和20码元操作模式的转变图的示例。
图28解说了用于12码元和20码元传输模式两者的SDA线和SCL线的信令状态。
图29解说了可以在SYNC(同步)检测期间使用的电路。
图30解说了被适配成准许SCL和/或SDA信号的掩码的时钟和数据恢复电路。
图31解说了可被用来确定CCIe传输模式以及生成SCL掩码信号的逻辑电路。
图32解说了用于生成SDA掩码信号的逻辑电路。
图33解说了可被用来确定20码元CCIe传输模式的逻辑电路中的信号的定时。
图34解说了可被用来确定12码元CCIe传输模式的逻辑电路中的信号的定时。
图35解说了在CCIe接口上传送的通信符合I2C协议时CCIe SYNC检测逻辑的操作。
图36解说了用于在混合CCIe和I2C环境中操作的CCIe设备的帧同步过程。
图37解说了可被传送以获得CCIe设备到未经同步状态的转变的CCIe字。
图38解说了根据本文公开的各方面的用于在串行总线的操作模式之间和/或在可被用在串行总线上的多个协议之间的转变的一般化模式。
图39解说了根据本文公开的某些方面的I2C和CCIe协议之间以及CCIe传输模式之间的模式切换。
图40解说了根据本公开的某些方面的与不同CCIe传输模式之间的切换相关的模式切换序列。
图41是解说采用可根据本文所公开的某些方面来适配的处理系统的装置的示例的框图。
图42是根据本文公开的一个或多个方面的用于在CCIe总线上通信的方法的流程图。
图43是解说根据本文公开的一个或多个方面的在CCIe总线上进行通信的装置的硬件实现的示例的示图。
详细描述
现在参照附图描述各个方面。在以下描述中,出于解释目的阐述了众多具体细节以提供对一个或多个方面的透彻理解。但是显然的是,没有这些具体细节也可实践此(诸)方面。
如本申请中所使用的,术语“组件”、“模块”、“系统”及类似术语旨在包括计算机相关实体,诸如但并不限于硬件、固件、硬件与软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是,在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序和/或计算机。作为解说,在计算设备上运行的应用和该计算设备两者皆可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,且组件可以本地化在一台计算机上和/或分布在两台或更多台计算机之间。此外,这些组件能从其上存储着各种数据结构的各种计算机可读介质来执行。这些组件可藉由本地和/或远程进程来通信,诸如根据具有一个或多个数据分组的信号来通信,这样的数据分组诸如是来自藉由该信号与本地系统、分布式系统中另一组件交互的、和/或跨诸如因特网之类的网络与其他系统交互的一个组件的数据。
此外,术语“或”旨在表示包含性“或”而非排他性“或”。即,除非另外指明或从上下文能清楚地看出,否则短语“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以及其他组件)。
图2是解说连接到通信总线的装置200的某些方面的示意框图,其中该装置可被实施在以下一者或多者中:无线移动设备、移动电话、移动计算系统、无线电话、笔记本计算机、平板计算设备、媒体播放器、游戏设备等。装置200可以包括使用CCIe总线230来通信的多个设备202、220和222a-222n。CCIe总线230可以为被配置成用于CCIe总线230所支持的增强型特征的设备扩展常规CCI总线的能力。例如,CCIe总线230可以支持比CCI总线高的比特率。根据本文所公开的某些方面,CCIe总线的一些版本可以被配置或适配成支持16.7Mbps或更大的比特率,并且CCIe总线的一些版本可以被配置或适配成支持每秒至少23兆比特的数据率。
在图2中解说的示例中,成像设备202被配置成作为CCIe总线230上的从动设备来操作。成像设备202可被适配成提供例如管理图像传感器的传感器控制功能204。另外,成像设备202可包括配置寄存器206或其他存储设备、控制逻辑212、收发机210以及线驱动器/接收机214a和214b。控制逻辑212可包括处理电路,诸如状态机、定序器、信号处理器或通用处理器。收发机210可包括接收机210a、发射机210c和共用电路210b(包括定时、逻辑和存储电路和/或设备)。在一个示例中,发射机210c基于由时钟生成电路208提供的定时来编码并传送数据。
图3是解说可根据本文所公开的某些方面来配置的发射机300和接收机320的示例的框图。对于CCIe操作,发射机300可以将输入数据310转码成三进制(基数3)数,该三进制数被编码为在SCL信号216和SDA信号218信号线上传送的码元。在所描绘的示例中,输入数据310的每个数据元素(亦称为数据字)可以具有19或20比特。转码器302可接收输入数据310并产生每个数据元素的三进制数序列312。三进制数312可被编码在两个比特中,并且每个三进制数的序列312中可以有12个三进制数。编码器304产生通过线驱动器306传送的2比特码元流314。在所描绘的示例中,线驱动器306包括开漏输出晶体管308。然而,在其他示例中,线驱动器306可以使用推挽式驱动器来驱动SCL信号216和SDA信号218信号线。通过确保没有任一对连贯码元包括两个相同码元,由编码器生成的2比特码元输出流314在连贯码元314之间具有SCL信号216和SDA信号218信号线中的至少一者的状态转变。至少一个信号216和/或218中的状态转变可用性准许接收电路320从数据码元流314中提取接收时钟338。
在CCIe系统中,接收机320可以包括时钟和数据恢复(CDR)电路328或与其协作。接收机320可包括向CDR 328提供原始2比特码元流336的线接口电路326。CDR 328从原始码元336中提取接收时钟338并向接收机320的其他电路324和322提供2比特码元流334和接收时钟338。在一些示例中,CDR 328可以产生多个时钟338。解码器324可使用接收时钟338来将码元流334解码成12个三进制数的序列332。三进制数332可使用2个比特来编码。转码器322随后可将12个三进制数的每个序列332转换成19比特或20比特输出数据元素330。
图4是解说可由编码器304用于产生具有嵌入式时钟的码元序列314以供在CCIe总线230上传输的编码方案400的图示。编码方案400还可由解码器324用于从接收自CCIe总线230的码元中提取三进制转变数。在CCIe编码方案400中,CCIe总线230的两根导线准许定义4个基本码元S:{0,1,2,3}.码元序列314、334中的任何两个连贯码元具有不同状态,并且码元序列0,0、1,1、2,2和3,3是连贯码元的无效组合。相应地,在每个码元边界处仅3个有效码元转变可用,其中码元边界由传送时钟确定并且表示第一码元(先前码元Ps)422终止且第二码元(当前码元Cs)424开始的点。
根据本文所公开的某些方面,针对每个Ps码元422,这三个可用转变被指派具有值“T”的转变数426。T可由三进制数表示。在一个示例中,转变数426的值通过指派用于编码方案的码元排序圆402来确定。码元排序圆402为4个可能码元分配码元排序圆402上的位置404a-404d以及位置404a-404d之间的旋转方向406。在所描绘的示例中,旋转方向406为顺时针。转变数426可以表示有效的当前码元424与前一紧邻码元422之间的间隔。间隔可被定义为从先前码元424到达当前码元Cs 422所需要的在码元排序圆406上沿旋转方向402的步数。步数可被表达为一位基数为3的数字。将领会,码元之间的三步差异可被表示为0基数-3。图4中的表420概述了采用这种办法的编码方案。
在发射机300处,在给定先前生成的码元422和用作转变数426的输入三进制数的知识的情况下,表420可被用于查找要被传送的当前码元424。在接收机320处,表420可被用作查找表以确定表示先前接收的码元422与当前接收的码元424之间的转变的转变数426。转变数426可作为三进制数来输出。
图5是解说I2C一字节写数据操作的时序图500。I2C主节点在SDA信号218上发送7比特从标识符(从ID)502以指示该主节点希望访问I2C总线上的哪个从节点,继以指示该操作是读操作还是写操作的读/写比特512,由此读/写比特512为逻辑0以指示写操作以及为逻辑1以指示读操作。仅ID匹配该7比特从ID 502的从节点能够响应该写(或另一)操作。为了使I2C从节点检测其自己的从ID 502,主节点在SDA信号218上传送至少8比特,连同SCL信号216上的8个时钟脉冲。这种行为可被利用于在CCIe操作模式中传送数据以防止旧式I2C从动节点对CCIe操作作出反应。
图6解说了开始状况606、608或610对旧式I2C从节点的影响的一个示例600,其中开始状况606、608或610通过SDA信号218上的高到低信令状态转变而同时SCL信号216处于高信令状态来指示。在此示例600中,可以在完整的7比特从ID已被传送之前检测到某些开始状况608或610。结果得到的不完整的从ID 602、604不会被任何从动设备识别出。在操作中,主节点在SCL信号216上仅发送6个脉冲612之后发布开始状况608、610的作用包括使所有旧式I2C从节点在SDA信号218上识别出其相应I2C从ID的可能性发生之前使其总线逻辑复位。换言之,SDA信号218上在两个开始状况606、608和/或610之间发送的6比特序列602、604中的信息不被任何从节点解码为有效的从ID。因此,旧式I2C从节点预期不会对不完整的从ID 602、604作出响应。
图6还包括解说在CCIe模式中将I2C总线的SCL信号216和SDA信号218的组合用于数据传输的示例620。CCIe码元可以在与针对I2C传输在SCL信号216上传送的时钟信号614的每次翻转相对应的时间传送。在两个开始状况608、610之间传送的时钟翻转数可以因此定义可以为每个CCIe传输传送的码元数。因此,可以在与不完整的从ID 602、604传输等效的6-SCL脉冲序列期间可用的12个信令状态中提供12码元传输622、624,而不会使任何从节点将该序列检测为I2C从ID。
在SDA信号216上发生的转变与SCL信号216上的转变相重合对于旧式I2C设备而言是不合逻辑的,这些旧式I2C设备可以将此类转变解读为开始状况。然而,旧式I2C设备检测稍后发生的有效开始状况628、630,该有效开始状况628、630使I2C从节点的总线逻辑检测复位。因而,I2C从节点可将在CCIe传输622、624期间发生的一些SDA转变检测为停止状况,但是检测到CCIe传输622、624内的此类停止状况仅导致不完整SID 602、604的提前终止。类似地,在CCIe传输622、624期间检测到开始状况仅执行从节点的I2C功能的总线逻辑复位。
因此,明显的是,旧式I2C从节点预期会将在6SCL脉冲序列期间的12码元CCIe传输622、624作为不完整的I2C从ID 602、604而忽略。另外,在开始状况606、608和610之间的14个SCL翻转期间,可以在SCL信号216和/或SDA信号218上传送十二(12)个码元。
当时钟信号已被嵌入在码元转变内时,I2C总线的SCL信号216和/或SDA信号218可被用于CCIe模式中的数据传输。因此,SDA信号218和SCL信号216可被用于在两个连贯的开始状况626、628和/或630之间传送任何任意的12个码元,而不影响旧式I2C从节点功能性并且无需使用桥接设备来将旧式I2C从节点与具有CCIe能力的节点分隔开。在I2C模式中,开始状况仅由I2C主节点发送,而在CCIe模式中,开始状况由将传送12码元字的任何节点发送。
在某些状况下,I2C设备可能将传输622、624中的某些CCIe码元序列混淆或误判为有效I2C脉冲,从而导致对I2C设备状态机的不想要和不可预测的改变。例如,以短于I2C规范所允许的最大周期(tBIT)的一半的码元周期发送的I2C CCIe码元可能导致I2C设备状态机由于设置定时误差而进入未知状态。减缓CCIe码元速率以满足大于最小tBIT需求的最小SCL周期可将CCIe比特率从14Mbps降至2.4Mbps。因此,CCIe设备可被配置成在I2C总线上操作而不导致I2C设备上的冲突或不想要的状态改变。
图7包括解说I2C设备的状态机700的框图。在I2C协议中,状态机700被维持以跟踪I2C帧和/或字传输和/或接收。状态机700基于总线的SCL信号216以及通过各状态702的转变来触发。状态机转变图714解说了对于状态机700的一个示例,状态702中的可能转变。
时序图的两个示例710、712解说了在SCL信号216上的信号的边沿的发生频率增加时,状态机700的行为的差异。因而,第一时序图710可与较慢CCIe码元传输周期相关,而第二时序图712解说了体验到较高频率的不可预知的改变的状态机700的状态702的转变。作为这些不可预知的改变的结果,I2C设备可在它不应这样做时在总线上发起接收或传送,或进入中间状态(其中I2C设备变得不能响应、停止受控操作和/或停止进一步功能)。
在一个示例中,在维持状态机700的状态702的触发器在组合逻辑732已产生最终稳定结果之前对组合逻辑732的输出进行采样时,可发生问题。具体而言,顺序逻辑可能在一个或多个非预期状态之间转变,因为组合逻辑732不能跟上SCL信号216上的信号的边沿之间的最短周期,这对于CCIe通信模式可以是2码元周期。换言之,SCL线上的码元传输的周期短于状态机组合逻辑732以及维持状态702的触发器的最大可允许设置时间。I2C设备可包括滤除历时小于50ns的码元传输周期的输入滤波器。经滤波的信号可被提供给I2C设备中的组合逻辑732,以使得50ns或更小的码元传输不会触发状态变化。然而,大于50ns的码元传输周期通过输入滤波器到达组合逻辑732,并且这些较长码元传输可触发可能乱序的状态变化,从而导致I2C设备中的问题。在该示例中,较短时钟信号706b可捕捉无效状态值716,从而导致在不正确地捕捉的状态716处的不定分支。
图8解说了可防止I2C设备状态机700在共享总线上的CCIe传输期间改变的传输方法的示例。在这一办法中,所有CCIe码元传输802(还参见图6)从50ns拉伸到500ns。使用500ns码元周期,最短的可能SCL周期是1000ns(1MHz),这满足快速模式加(Fm+)设置(fSCL)最大要求,从而允许I2C设备被设计用于支持Fm+以避免设置定时问题。然而,将码元周期从50ns拉伸到500ns具有将吞吐量从14.04Mbps降至2.45Mbps的不合意效果。
图9是解说通过SDA线和SCL线上的输入滤波器对具有小于50ns的码元周期的脉冲的滤波的示图900。I2C规范的要求是50ns或更小的码元可被兼容或符合I2C快速模式(Fm)或Fm+设备的设备滤除。相应地,在某些情形下,选择性拉伸可被应用,以使得仅仅造成大于或等于50ns的有效周期的码元传输被拉伸。
图10是解说其中一些码元可被I2C设备接收机的输入滤波器过滤的示例的示图1000。在第一图表1002中,SDA信号218和SCL信号216具有50ns或更小的码元历时。即,在这一示例中,SCL信号216上的码元在每一周期都切换状态(例如,低-高或高-低)。SCL信号216上的码元被I2C设备接收机的输入滤波器滤除,致使SCLI线708没有转变(即,没有时钟信号到达组合逻辑704)。
在第二图表1004中,SCL信号216上的码元中的一些没有每周期改变状态,所以一些码元看起来是周期大于50ns的脉冲1008。因此,SCLI线708上的这些脉冲1008没有被I2C设备接收机的输入滤波器滤除。这些脉冲1008随后到达组合逻辑并且可导致不想要的状态变化。
在第三图表1006中,更多脉冲到达SCLI线708,从而导致对I2C设备的不想要的状态变化。
图11解说了其中在CCIe模式中在SCL信号216上传送的一些码元可被选择性地拉伸以使得不想要的状态变化不会发生在I2C设备上的示例。第一图表1102解说了可被I2C设备接收机的输入滤波器过滤的一些脉冲,同时一些码元时隙可需要拉伸。例如,各自在单个码元时隙内的第一脉冲1110和第二脉冲1111可被过滤(参见SLCI线706)。第一码元时隙1120(具有第一码元脉冲1114)、第二码元时隙1122(具有第二码元脉冲1106)以及第三码元时隙1124(具有第三码元脉冲1112)可被拉伸。例如,因为低到高转变发生在第一码元脉冲1114和下一码元时隙之间,所以可导致I2C设备中的不想要的状态变化的状况发生。因此,对应的码元时隙1120可需要拉伸。类似状况存在于第二码元脉冲1106和第三码元脉冲1112之后。
在第二图表1104中,经拉伸的码元时隙1120’、1122’以及1124’被解说,以使得状态改变之间的周期是至少500ns,从而防止对I2C设备状态的改变。注意,为执行这样的拉伸,传送方CCIe设备可预测至少下一码元脉冲以查明状态改变是否发生。
图12包括解说针对选择性地拉伸某些码元周期的办法的最佳和最差情况数据吞吐量的计算的时序图1202、1204的示例。平均吞吐量的示例可被计算以提供通信接口的不同配置可达到的数据率的比较。不同配置可被应用以解决与最大fSCL和/或非预期S/P亚稳性相关联的问题。
第一时序图1202解说了一个示例。在该示例中,在没有旧式I2C设备在同一总线上操作时或者在连接到总线的所有设备能够在每一I2C字之前在tSYM检测开始状况时,12码元CCIe配置可达到约23Mbps的数据率。在这一示例中,tSTART=2x tSYM,且tSYM未被拉伸。当在同一总线上操作的所有旧式I2C设备被同步地设计成与合理快的时钟一起使用时并且最大fSCL和非预期S/P亚稳性问题不存在时,12码元CCIe配置可达到约14Mbps的数据率。在这一示例中,tSTART被定义为I2C AC,且tSYM未被拉伸。
第二时序图1204解说了另一示例。在这一示例中,当在同一总线上操作的所有旧式I2C设备被同步地设计且没有非预期S/P亚稳性问题但一个或多个旧式I2C设备可能受最大fSCL问题影响时,12码元CCIe配置可达到9.8Mbps的平均数据率。在这一示例中,tSTART被定义为I2C AC,且tSYM被拉伸。当在同一总线上操作的一个或多个旧式I2C设备可易受最大fSCL问题和/或非预期S/P亚稳性问题影响时,20码元CCIe配置可达到6.2Mbps平均数据率。在这一示例中,tSTART被定义为I2C AC,且tSYM被拉伸。
图13解说了可由CCIe发射机使用来确定应当何时拉伸码元的技术的一个示例。在此,SCL信号216可以在低信令状态中拉伸。当两个或更多个码元创建同一信令模式(诸如恒定高或低逻辑状态)时,倒计数值(STCNT)被发起以查明应当拉伸特定码元的时间量。倒计数值可以按每预拉伸码元周期来降低,直至它达到零。在该示例中,在倒计数值降至零时,在I2C接收机处感知到的脉冲是至少500ns长。在这一示例中,码元11到5在SCL信号216上产生相同的信令状态(即,逻辑低),而码元4产生不同的信令状态(即,逻辑高)。因而,码元5可被拉伸,以使得在I2C设备处感知到的脉冲等于或大于500ns。
图14解说了其中在传送方CCIe设备的传输期间码元时隙被选择性地拉伸以使得第五码元时隙1402处的第一码元脉冲和第二码元时隙1404处的第二连贯脉冲被拉伸的另一示例。在这一示例中,在至少两个连贯码元脉冲致使SCL信号216要处于同一状态时,第二码元时隙1404可被盲拉伸,而无需与后续脉冲1406的长度有关的考虑。
图15解说了其中在传送方CCIe设备的传输期间拉伸两个码元时隙1502和1504的另一示例。在此,高拉伸只发生在低拉伸之后。相应地,对于码元10-9,没有发生高拉伸,因为在这些码元之前没有低拉伸,因为SCL=0的码元11被I2C设备滤除。
在这一示例中,第六码元时隙1502处于低状态并且被拉伸,且第三码元时隙1504也处于高状态并且被拉伸。这一示例还解说了即使存在从码元脉冲11到码元脉冲10的码元转变,也无需拉伸码元时隙11,因为该脉冲被I2C设备的输入滤波器滤除1506。然而,从第九码元时隙到第八码元时隙的高到低转变被I2C接收机感知为脉冲。因此,因为存在从第六码元脉冲到第五码元脉冲的低到高转变,所以第六码元时隙被拉伸,直至倒计数值(STCNT)达到零(例如,直至感知到的脉冲周期是至少500ns)。
在另一示例中,预测办法致使两个码元时隙要在传送方CCIe设备的传输期间被拉伸。预测是在传输模式上执行的,并且发射机基于后续码元时隙中的将来码元传输来决定用于高时段的拉伸的历时。如果将来没有未过滤的低时段,则一个高时段拉伸可持续尽可能所需的码元以最小化字时间。
在CCIe传输期间可发生某些亚稳状况。在本文描述的十二个CCIe码元传输期间,信号亚稳性可发生在耦合到与CCIe设备共享的总线的旧式I2C设备的逻辑设备中。这样的亚稳性可例如发生在SDA信号218和SCL信号216的状态同时改变时。旧式I2C设备可以在一些实例中确定该转变是开始或停止状况并在其他实例中可以其他方式来确定。这样的检测可变得是亚稳的,这可导致耦合到共享总线的旧式I2C设备中的逻辑设备进入错误/未知状态。
图16解说了可在一个或多个I2C设备处发生亚稳状态的状况。亚稳状态可包括在数据信号(SDA信号218)和时钟信号(SCL信号216)两者同时1602、1604改变时的信令状态。
图17解说了亚稳状态对I2C设备的状态机1702的潜在影响。在I2C协议中,状态机1702被维持以跟踪I2C帧和/或字传输和/或接收。基于总线和转变的SCL信号216和SDA信号218中的转变来触发状态机1702。状态机可包括在检测到开始状况时初始化的触发器1716。开始状况可由开始检测逻辑1706来检测,而停止状况可由第二逻辑1708来检测。状态机转变可在检测到开始状况之后根据状态图1710来配置,且在检测到停止状况时状态机1702可被复位或中止(参见状态图1712)。在SDA信号218和SCL信号216两者改变状态时,亚稳状况1714可按致使开始检测逻辑1706对开始状况的明显发生作出响应的方式发生。
图18解说了可被避免以防止非预期START或STOP状况的状况。“码元”1802可由SDA信号218和SCL信号216之间的状态组合来定义。例如,码元“0”是SDA信号218和SCL信号216两者都低(0)的时候。码元“1”是SDA信号218低(0)而SCL信号216高(1)的时候。码元“2”是SDA信号218高(1)而SCL信号216低(0)的时候。码元“3”是SDA信号218高(1)且SCL信号高(1)的时候。在此,可以明白,从码元“2”到码元“1”以及从码元“3”到码元“0”的码元转变造成开始指示符的亚稳状况。类似地,从码元“0”到码元“3”以及从码元“2”到码元“1”的码元转变造成停止指示符的亚稳状况。
图19解说了可消除可造成亚稳状况的码元之间的某些转变的技术。在这样的模式下,数据吞吐量可降低且每字20比特可被发送以增加有效数据吞吐量以及尽可能多地保持与初始12码元CCIe系统的兼容性。
图20解说了使用每码元3状态的12个码元的第一传输模式以及使用每码元2状态的20个码元的第二传输模式之间的比较。第一传输模式可以在12个码元内传送19.02比特,而第二传输模式可以在20个码元内传送20比特。
根据一个方面,耦合到总线的主控设备可以查明是否存在耦合到总线的任何旧式I2C设备。如果没有旧式I2C设备耦合到总线,则CCIe设备不必担心造成亚稳状况且可传送每码元3个状态的12个码元。
即使I2C设备耦合到总线,如果总线上的所有旧式I2C设备使用同步设计的逻辑电路和/或具有相当快的时钟(这可避免对码元时隙的选择性拉伸的需求以及亚稳状况的可能性),CCIe设备也仍然可传送每码元3状态的12个码元,而无需码元时隙拉伸或尝试避免亚稳状况。
如果存在耦合到总线的旧式I2C设备,且总线上的所有旧式I2C设备被同步地设计并且没有亚稳性的可能性,但一些I2C设备对状态机改变不免疫,则可使用码元时隙拉伸。CCIe设备仍然可传送每码元3状态的12个码元,但由于经拉伸的码元时隙而可导致平均9.6Mbps,如图12所示。
如果存在耦合到总线的旧式I2C设备,且旧式I2C设备中的至少一者被异步地设计且易受亚稳性影响,则码元时隙拉伸和阻止导致亚稳状态转变的码元两者被实现。CCIe设备随后可传送每码元2状态的20个码元,可造成平均6.5Mbps(图21中解说)。
图21解说了用于CCIe传输的最快和最慢速率场景,其中20个码元(每码元2个状态)被用在两个开始指示符之间,而不包括开销比特。
在总线上,各种数据吞吐量情况是可能的。在第一情况下,如果总线上不存在旧式I2C从动设备或者如果同一总线上的所有设备能在tSYM在每一CCIe字之前正确地检测开始,则12码元CCIe传输系统可达到23Mbps。在第二情况下,如果同一总线上的所有旧式I2C设备被同步地设计有避免对码元时隙的选择性拉伸的需求以及亚稳状况的可能性的相当快的时钟,则可以使用不将tSYM拉伸用于14Mbps的12码元CCIe传输系统。在第三情况下,如果同一总线上的所有旧式I2C设备被同步地设计且没有亚稳性,则即使一些旧式I2C设备没有免受上述状态机改变,12码元CCIe传输系统也可使用tSYM拉伸达到平均9.6Mbps。在第四情况下,如果亚稳性和状态机问题两者都存在,则可以使用具有tSYM拉伸的20码元CCIe传输系统。
采用CCIe接口的某些系统可以定义CCIe“心跳”字,它由CCIe主控设备周期性地在总线上传送以允许从动设备的同步。主控设备可以按足够慢以用于功率节省但足够快以不使从动设备受饿于时钟周期的速率发送这一“心跳”CCIe字。根据一个示例,“心跳”可被编码或嵌入在用于编码数据比特以便在双线控制数据总线上进行传输(一般根据图3中解说的CCIe通信接口)的20比特三进制数空间内。
图22是解说与比特19相关的某些方面的示图2200,它是在比特计数在第一比特(比特0)处开始时传送的第20个比特。换言之,如计算机科学中典型的,从零开始逐比特计数,并且比特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数位三进制数。在一个示例中,仅睡眠或睡眠例外命令使用该第20比特(比特19)。可以在该第20比特(比特19)的数字空间内传送心跳。
图23是解说在CCIe传输系统中使用的映射的一个示例的表2300。在该映射中,比特19的数字空间可以跨数字2221_2201_20023到2222_2222_22223,其中这一数字范围可被细分成六个细分。CCIe是多主控方控制数据总线架构,并且对控制数据总线的控制可以从一个主控设备转移到另一主控设备。因此,“主控总线请求”命令是可用的(在子范围2222_1121_02103至2222_2112_11213内),“主控切换”(在子范围2222_2220_00023至2222_2221_12103内)也是。
图24是解说可被用于定义12码元CCIe传输系统中的心跳的比特19数字空间内的范围的表2400。
在图25中,时序图2500解说了12码元CCIe传输系统中心跳时钟在SDA信号218和SCL信号216上的传输的一个示例。接收机时钟(RXCLK信号)2508可以从在控制数据总线上所传送的码元的状态转变中提取。该示例解说了心跳时钟如何可以在传送或编码之前和/或在接收和解码之后出现。如可以察知的,心跳时钟的第一部分2502在SDA线上传送,而心跳时钟的第二部分2504可以在SCL线上传送。以此方式,在SDA线上通过将心跳时钟的一部分移至SCL线来创造空间2506。
如可从帧时序图2520看到的,心跳时钟的传输可以提供同步机会2524a、2524b。如在本文其他部分中描述的,SYNC(同步)模式的第一字被称为“SY-”且用(音乐符后加短划线)符号来指示,而SYNC模式的第二字是心跳,它可被称为“-NC”且用符号来指示或用(音乐符前加短划线)符号指示。在某些帧2522a、2522c的传输之后传送SYNC。在所解说的示例中,同步机会2524a、2524b包括SYNC。在一些实例中,传送心跳字2526来代替SYNC。
图26是将12码元CCIe传输模式中可用的数据范围2602与20码元CCIe传输模式中可用的数据范围2604相比较的示图2600。两个数据范围2602、2604中的每一者中的子范围2606、2608可包括其中第十九比特被置位成逻辑1的字,并且这些子范围2606、2608可以提供传送同步、心跳、以及控制信息的能力。在一个示例中,每一CCIe传输模式可具有在子范围2606、2608中传送的对应的一组控制和/或同步字。在一个示例中,每一CCIe传输模式可以提供用作SYNC的字(表示为)。其他信息可以在比特19子范围2606、2608中传送,包括与CCIe总线上的从ID扫描以及中断处置相关的信息。
根据本文公开的某些方面,SYNC传输可包括“SY-”字和与心跳字相对应的“-NC”字。在一个示例中,在12码元模式中操作的设备可以传送0x81BF0作为SY-字且传送0x81BC5作为心跳字。当在20码元模式中操作时,该设备可以传送0xFFFFF作为SY-字和0xFFFF8作为心跳字。SYNC可被用来标识CCIe发射机的操作模式。SYNC可以产生SDA信号218和SCL信号216的信令状态中的唯一性模式。在一个示例中,SYNC可包括用于12码元CCIe接口的0x81BF0+0x81BC5和用于20码元CCIe接口的0xFFFFF+0xFFFF8。这些字组合可被选择以产生没有发生在任何其他CCIe数据传输中且没有发生在正常I2C模式传输中的唯一性模式。
SYNC可被用来区分可用或可能的传输模式。例如,CCIe总线主机可以传送适当的SYNC以指示CCIe传输使用12码元还是20码元来编码20比特数据。CCIe总线主机可以周期性地传送SYNC模式以指示操作模式,并且各传输之间的周期可被选择以确保新加入到CCIe总线的设备的可靠且高效的同步。例如,新加入的设备可包括热插拔设备或已完成通电和/或正从断电/通电周期中恢复的设备。新加入的设备可被配置成基于SYNC的检测和标识来同步到CCIe字边界。
在一个示例中,主控设备可以确定SYNC模式的传输频率,并且可以按可变频率来传送SYNC模式。主机可例如在系统通电后更频繁地传送SYNC模式。加入、苏醒或在CCIe总线上通电的从动设备可被适配成搜寻SYNC模式以正确地监视、传送或接收CCIe传输。SYNC传输也可被用来在由于例如出错状况或组件故障而失去同步之后重获同步。
在一些实例中,CCIe从动设备可被配置或适配成与同步并发地确定CCIe传输模式。在一个示例中,可通过比较SCL信号216和SDA信号218上的转变来执行模式检测。在12码元传输模式中的心跳字(NC)的传输期间,SCL信号216的信令状态首先随SDA信号218的信令状态在先前码元之后上升而下降(至逻辑0)。对于20码元CCIe传输模式而言,不准许SDA信号218和SCL信号216的这一并发转换,因为20码元传输模式指定只有一个信号可以转换。CCIe从动设备可以基于SDA信号218和SCL信号216中的边沿的定时来检测传输模式。
图27提供了分别用于12码元和20码元模式操作的转变图2708、2710以及可用转变的对应的表2712、2714。如相关于图19讨论的,20码元传输在每一码元区间处具有比12码元传输更少的可用转变,因为某些转变2716a或2716b被禁止以减少接收机处的出错情况。总线上的CCIe设备可以通过跟随有心跳字的SYNC字来同步到CCIe字边界。
在一些实例中,可由一个或多个CCIe设备通过在各传输之间在SDA信号218和SCL信号216上用信号发出经编码的请求来发出带内中断请求(“带内IRQ”)。在一个示例中,从动CCIe设备可以在传送心跳字时断言带内IRQ。可以在传送组合SYNC心跳时在心跳字的传输期间断言带内IRQ。
在一些实例中,SYNC模式可被用作功率节省模式期间的缓慢运行的时钟。
图28提供了解说SDA信号218和SCL信号216的信令状态,在CCIe接口上传送的码元2802、2812,以及用于12码元和20码元传输模式两者的对应的转变数2804、2814的时序图2800、2810。在这两种模式中,SDA信号218在12或20码元的序列中的每一码元区间处转换,而SCL信号216保持高。对于每一模式,接收时钟信号(RXCLK信号)2806、2816基于检测到的码元之间的转变来生成,并且被用于对SDA信号218和SCL信号216的信令状态进行采样,其是根据当前码元2802、2812的值来驱动的。
CCIe接收机可被适配或配置成检测在CCIe接口上传送的SY-字。SY-检测是在通电后、CCIe设备由此被插入操作环境的热插拔事件、和/或在检测或通知失去与CCIe总线上的传输的同步之后,在连接到CCIe总线期间使用的。
图29是解说可被配置成检测SYNC传输的某些电路的框图2900。第一电路2902可被用来检测携带SCL信号216的线上的逻辑低信令状态(即,SCL=0)。在SYNC传输期间,SCL信号216保持在高逻辑状态达有效SYNC的历时。检测到逻辑低状态可被用来终止SYNC检测周期或计数器。第一电路2902包括接收SCL信号216的异步S-R锁存器2906且触发器2908、2910捕捉S-R锁存器2906的输出(SR信号2914)的两个顺序样本以产生SCL低检测(SCL0DET)信号2912(这保持低,假定SCL信号216保持在逻辑高)并且提供清除S-R锁存器2906的输出(SR信号2914)的复位信号2916。使用仅从SDA信号218恢复的RXCLK信号2904来为触发器2908和2910提供时钟,因为对于CDR电路而言,SCL信号216被掩码。
在选择器信号(SEL信号2926)处于低状态时,第二电路(倒计数器2920)被启用。在SCLMASK信号2928的状态是活动(高)时,SEL信号2926处于低状态,并且SR信号2914和SCL0DET信号2912两者是低,其中SR信号2914和SCL0DET信号2912是由第一电路2902生成的。SCLMASK信号2928的状态被设置成向CDR掩码SCL信号216,以使得SCL信号216不被用于时钟生成。在操作中,所解说的倒计数器2920被初始化,以使得输出(CNT信号2924)反映0x23的初始化值2922。在检测到SCL信号216上的低电平(SCL=0)之际,或者在SCLMASK信号2928的状态被设置成逻辑0时,初始化倒计数器2920,如控制信号2912和2914所指示的。在SEL信号2926为低时,倒计数器2920的输出朝0递减。
在检测到或通知失去与CCIe总线上的传输的同步之际,CCIe设备可以将SCLMASK信号2928的状态置位成逻辑1,以向CDR阻塞或掩码SCL输入。SYNC检测逻辑随后可被启用。在SYNC检测期间,SCLMASK信号2928可用于致使CDR根据SDA信号218上的码元转变生成时钟信号,并且无需使用或考虑SCL信号216上的转变。在达到同步时清除SCLMASK信号2928的状态。
倒计数器2920可以从反映用于任何可用模式的SYNC传输中的码元的最大数目的值来倒计数。在图33和34解说的示例中,倒计数器2920被初始化成0x23的初始值2922(十进制数35)。倒计数器2920所输出的CNT信号2924随后可通过接收机时钟(RXCLK 2904)的操作在SDA信号218上的每一转变处递减。在SYNC字的传输完成时,SCL信号216下降且计数值被检查以确定有效转变次数是否已被计数。针对完整字的历时的高SCL信号216和转变SDA信号218的组合只发生于SYNC字,并且如果计数值匹配所识别的CCIe传输模式的传输中的码元的数目,则它是有效的。
在SCL信号216上检测到‘0’值时,倒计数器2920可被复位成其初始值2922。通过S-R锁存器290以及触发器2908和2910(它们是使用由CDR产生的RXCLK信号2904来提供时钟的)的操作来对SCL信号216采样。SCL信号216在SYNC传输期间保持高并且在SYNC传输将要完成之后降低到逻辑‘0’值(即,可能需要两个SCL=0脉冲来完成该字)。在一些实例中,在某些其他所需条件就位时,在第一次检测到SCL信号216处于逻辑0(SCL=0)时认为同步完成。在成功检测到同步时,SCLMASK信号2928的状态被复位。
使用掩码的时钟和数据恢复电路的示例
图30是解说可被采用来从CCIe通信链路恢复嵌入的时钟信息的CDR电路3000的示例的框图。CDR电路3000被适配成准许SCL信号216和/或SDA信号218的掩码。在该示例中,SCLMASK信号3002可被提供以允许在第一门3026处阻塞SCL信号216,且SDAMASK信号3030可被提供以允许在第二门3028处阻塞SDA信号218。在一些实例中,可以使用所解说的CDR电路3000的其他变型和/或其他CDR电路。
在SCL信号216和SDA信号218中接收码元序列。在各码元之间可存在转变时间,在该转变时间期间,对应信号的状态是未定义的、不定的、暂时的或以其他方式不稳定的。比较器3004、置位-复位锁存器3006、“延迟S”延迟元件3012、以及(总线化)电平锁存器3010可被配置成生成表示输入(SI)信号3020的经延迟实例的经电平锁存的信号(S信号)3022。SI信号3020中的改变的检测与经改变的S信号3022的输出之间的延迟可通过配置延迟S延迟元件3012来选择。
比较器3004将SI信号3020与S信号3022进行比较并输出二进制比较信号(NE信号)3014。置位-复位锁存器3006可以从比较器3004接收NE信号3014并输出作为NE信号3014的经滤波版本的信号(NEFLT信号)3016。置位-复位锁存器3006的操作可被配置成移除NE信号3014中的任何瞬时不稳定性(尖峰)。NEFLT信号3016被提供给响应于NEFLT信号3016的上升沿而产生具有预配置的固定长度的脉冲的单触发电路3008。可使用延迟元件3012来延迟单触发电路3008的输出,以提供被用来捕捉当前码元和/或复位置位-复位锁存器3006的内部接收时钟(IRXCLK)信号3018。置位-复位锁存器3006的“复位”输入可被优先化,以使得NEFLT信号3016在IRXCLK信号3018为高时被复位,而不管NE信号3014的状态。
在一个示例中,可使用另一延迟元件3024将IRXCLK信号3018延迟以提供RXCLK信号2904(参见图29)。在一些实例中,IRXCLK信号3018可被外部电路系统用来对CDR电路3000的数据输出进行采样。IRXCLK信号3018或IRXCLK信号3018的派生信号(例如,RXCLK信号2904)可被提供给解码器或解串行化器电路。在一些实例中,诸如NEFLT信号3016等其他信号可被用来生成用于外部电路系统的时钟信号。电平锁存器3010接收SI信号3020并输出S信号3022,其中电平锁存器3010由IRXCLK信号3018来触发或以其他方式进行控制。在一个示例中,S信号3022可以用作CDR电路3000的码元输出。在其他示例中,附加电路系统可被包括在CDR电路3000中以延迟、锁存和/或以其他方式调节S信号3022来用作CDR电路3000的码元输出。
在操作中,比较器3004将SI信号3020与从电平锁存器3010输出的S信号3022进行比较。比较器3004在SI信号3020与S信号3022相等时将NE信号3014驱动至第一状态(例如,逻辑低),并且在SI信号3020和S信号3022不相等时将NE信号3014驱动至第二状态(例如,逻辑高)。NE信号3014在SI信号3020和S信号3022表示不同码元时处于第二状态。由此,第二状态指示转变正在进行。
图31是解说可被用来生成SCLMASK信号3142并确定CCIe传输模式的逻辑电路系统3100的示例的框图。继续参考图29,逻辑电路系统3100包括配置成基于SCL信号216、SCL0DET信号2912、SCLMASK信号2928以及配置成产生“00”和倒计数器2920(参见图29)输出的CNT信号2924的两个最高有效位之间的比较结果3124的比较逻辑的输出的值来产生SYNC12PRE信号3130的第一门3102。逻辑电路系统3100还基于配置成产生0x00和CNT信号2924的所有比特之间的比较结果3128的比较逻辑的输出来产生SYNC20PRE信号3132。逻辑电路系统3100可产生指示对于12码元CCIe传输模式已达到同步的信号(SYNC12)3140以及指示对于20码元CCIe传输模式已达到同步的另一信号(SYNC20)3142。可至少部分地基于对CNT信号2924的值的确定来确定CCIe传输模式。逻辑电路系统3100还可生成SCLMASK信号3142,它可连同SDAMASK信号3030一起被提供给CDR电路3000。
图32包括解说被用来生成SDAMASK信号3206的逻辑电路系统3200的示例的操作的时序图3220。例如,SDAMASK信号可被用于带内IRQ生成。
在一些实例中,配置或适配成用于CCIe操作的设备可能够在多种模式中操作。此外,可以在操作期间而非系统复位或启动时确定CCIe总线上可用的操作模式。在一个示例中,热插拔CCIe设备可等待与12码元或20码元CCIe传输模式相对应的SYNC模式。CCIe设备还可能够使用I2C协议通信,但CCIe设备通常不需要同步到I2C通信定时。
图35是解说当在SCL信号216和SDA信号218上传送的通信符合I2C协议时SYNC检测逻辑的操作的时序图。在SCL信号216处于逻辑低电平时,SYNC逻辑没有检测到有效CCIe传输且计数器可被复位成其最大值。
帧同步
图36是解说用于在混合CCIe和I2C环境中操作的CCIe设备的帧同步过程的状态图3600。最初,各CCIe设备处于同样的操作模式并且同步到该帧。在空闲状态3604,各CCIe设备可转变到支持I2C操作模式的状态3602。从I2C模式转变到CCIe模式将CCIe设备置于空闲状态3604,CCIe设备可从空闲状态3604转变到活动通信状态3602、3606。在初始CCIe活动通信状态3606,CCIe通信可在CCIe设备检测到与该设备所使用的从ID相对应的从ID时开始。从动设备随后进入它等待地址信息的状态3608。随后在写状态3610或者一个或多个读状态3612、3614、3616中完成读或写。从某些活动状态3610、3612或3616退出可使设备返回至空闲状态3604。
在一些实例中,将CCIe设备置于未经同步的状态是合乎需要的。在一个示例中,设备可被置于未经同步的状态以促进或迫使串行总线的操作模式的改变。在一个示例中,CCIe主控设备可以传送有意码元错误以中断同步。图37解说了CCIe字,它可被称为UNSYNC(未经同步)码3700,它可由CCIe主控设备传送以实现到未经同步的状态的转变。该帧可使SID设置成0x0000,并且使出错检测比特设置成‘1’以指示出错状况。这一传输可被称为UNSYNC码3700。在接收到UNSYNC码3700之际,从动设备可掉至未经同步的状态并且开始寻找CCIe总线的信令状态中的SYNC模式。
串行总线的各操作模式之间的转变
根据本文公开的某些方面适配的主控设备和从动设备可耦合到支持多个操作模式和/或多个协议的串行总线并通过串行总线通信。
图38是解说了用于串行总线的各操作模式之间和/或可在串行总线上使用的多个协议之间的转变的一般化方案的流程图3800。每一操作模式和/或协议可以与对应的活动状态3802、3804、3812、3814相关联。总线的操作模式可以在各信令模式、数据吞吐量、传输格式等之间区分开。可针对协议来定义不同操作模式。例如,12码元和20码元模式可被定义用于CCIe协议。
不同类型的转变可在活动状态3802、3804、3812、3814之间是可用的。在第一示例中,串行总线可进入空闲状态3810,从空闲状态3810可发起下一活动状态3802、3804、3814。在根据第一协议通信的两个或更多个设备已完成通信事务并释放总线时,可进入空闲状态3810。希望在总线上通信的设备(诸如主控设备)可在空闲状态3810期间通过仲裁和/或协商来取得总线的控制,并可在赢得仲裁过程之际开始通信。取得对总线的控制的设备可使用第一协议发起通信。使用第二不同协议进行通信的设备可被配置成忽略涉及第一协议的通信。例如,I2C设备可忽略共享总线上的CCIe通信。
在第二示例中,活动状态3802、3804、3812之间的转变可通过迫使总线进入“例外”状态3808来实现。在从动设备不与主控设备同步时,可退出例外状态3808。在已针对耦合到总线的设备群执行了复位之后,可退出例外状态3808。
在第三示例中,可使用一组命令3806来执行活动状态3802、3804之间的转变。例如,可提供准许CCIe主控设备在12码元和20码元操作模式之间进行选择的命令结构。CCIe主控设备可在转变发生之后保留对串行总线的控制。
设想了用于活动状态3802、3804、3812和/或3814之间的转变的其他手段。在一些配置中,可采用空闲状态3810与命令3806的组合。例如,耦合到串行总线的某些设备可被配置成按共同协议来传送和/或接收数据。在后一示例中,可以使用I2C协议从空闲状态3810发起配置、重配置、仲裁和/或协商。
在一些配置中,可采用用于活动状态3802、3804、3812和/或3814之间的转变的多种手段。对于支持I2C、CCI和/或CCIe协议的一些组合的串行总线,可使用UNSYNC码3700(参见图37)和/或特殊化控制字(本文称为通用呼叫)来实现各协议、协议变型以及信令模式之间的切换。在一个示例中,UNSYNC码3700可被传送以发起20码元和12码元CCIe传输模式之间的改变。
协议之间(例如,I2C和CCIe之间)和/或20码元和12码元CCIe传输模式之间的改变可通过传输一个或多个通用呼叫来发起。可以使用预定义码字来实现通用呼叫,和/或通用呼叫可被寻址到已解析的SID和/或地址。在一个示例中,在SID=0x0000时,CCIe帧可被表示为通用呼叫。主控设备可以使用地址字来指定通用呼叫的类型。通用呼叫可包括作为数据字传送的有效载荷,它可被写到从动设备或从从动设备读取。
使用UNSYNC码3700可通过资源共享来使CCIe从动设备中的硬件最小化,并且可以实现CCIe传输模式之间的更快切换。相反,通用呼叫通常需要额外解码逻辑和/或模式切换逻辑,并且通用呼叫通常需要额外字周期来完成。
图39是解说I2C和CCIe模式之间以及CCIe传输模式之间的模式切换的状态图3900。在一个示例中,UNSYNC码3910可以在12码元CCIe传输模式3904期间传送以使从动设备回落至未经同步的模式3902。UNSYNC码3912可以在20码元CCIe传输模式3906期间传送以致使从动设备回落至未经同步的模式3902。UNSYNC码3910有效地致使从动设备执行与在检测到错误时可执行的恢复过程相似的恢复过程。未经同步的模式3902可等同于在通电、复位或热插拔之后采取或发起的设备状态。
到I2C模式3908的转变可以从所描绘的CCIe传输模式3904、3906来发起。因此,从未经同步的模式3902转变到I2C模式3908可包括到CCIe模式3904或3906之一的转变,从CCIe模式3904或3906之一可发出“12码元退出”通用呼叫3922或“20码元退出”通用呼叫3924。从I2C模式3908转变到CCIe模式可通过使用“12码元进入”I2C通用呼叫3918或“20码元进入”I2C通用呼叫3920以进入20码元CCIe来直接作出。
CCIe模式3904和3906之间的转变可通过经由未经同步的模式3902的转变来实现。如在图40中所解说的,从20码元CCIe传输模式3906到12码元CCIe传输模式3904的转变可涉及传送后随有12码元SYNC模式的UNSYNC的过程4002。从12码元CCIe传输模式3904到20码元CCIe传输模式3906的转变可涉及传送后随有20码元SYNC模式的UNSYNC的过程4004。
某些电路系统和方法的附加描述
图41是解说采用可被配置成执行本文所公开的一个或多个功能的处理电路4102的装置的硬件实现的简化示例的概念图4100。根据本公开的各种方面,本文所公开的元素、或元素的任何部分、或者元素的任何组合可使用处理电路4102来实现。处理电路4102可包括一个或多个处理器4104,其由硬件和软件模块的某种组合来控制。处理器4104的示例包括:微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、状态机、定序器、门控逻辑、分立的硬件电路、以及其他配置成执行本公开中通篇描述的各种功能性的合适硬件。该一个或多个处理器4104可包括执行特定功能并且可由软件模块4116之一来配置、增强或控制的专用处理器。该一个或多个处理器4104可通过在初始化期间加载的软件模块4116的组合来配置,并且通过在操作期间加载或卸载一个或多个软件模块4116来进一步配置。
在所解说的示例中,处理电路4102可使用由总线4110一般化地表示的总线架构来实现。取决于处理电路4102的具体应用和整体设计约束,总线4110可包括任何数目的互连总线和桥接器。总线4110将各种电路链接在一起,包括一个或多个处理器4104、和存储4106。存储4106可包括存储器设备和大容量存储设备,并且在本文可被称为计算机可读介质和/或处理器可读介质。总线4110还可链接各种其他电路,诸如定时源、定时器、外围设备、稳压器、和功率管理电路。总线接口4108可提供总线4110与一个或多个收发机4112之间的接口。可针对处理电路所支持的每种联网技术来提供收发机4112。在一些实例中,多种联网技术可共享收发机4112中找到的电路系统或处理模块中的一些或全部。每个收发机4112提供用于通过传输介质与各种其它装置通信的手段。取决于该装置的本质,也可提供用户接口4118(例如,按键板、显示器、扬声器、话筒、操纵杆),并且该用户接口4118可直接或通过总线接口4108通信地耦合至总线4110。
处理器4104可负责管理总线4110和一般处理,包括对存储在计算机可读介质(其可包括存储4106)中的软件的执行。在这一方面,处理电路4102(包括处理器4104)可被用来实现本文所公开的方法、功能和技术中的任一种。存储4106可被用于存储处理器4104在执行软件时操纵的数据,并且该软件可被配置成实现本文所公开的方法中的任一种。
处理电路4102中的一个或多个处理器4104可执行软件。软件应当被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数、算法等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。软件可按计算机可读形式驻留在存储4106中或驻留在外部计算机可读介质中。外部计算机可读介质和/或存储4106可包括非瞬态计算机可读介质。作为示例,非瞬态计算机可读介质包括:磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩碟(CD)或数字多功能碟(DVD))、智能卡、闪存设备(例如,“闪存驱动器”、卡、棒、或钥匙驱动器)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦式PROM(EPROM)、电可擦式PROM(EEPROM)、寄存器、可移动盘、以及任何其他用于存储可由计算机访问和读取的软件和/或指令的合适介质。作为示例,计算机可读介质和/或存储4106还可包括载波、传输线、和任何其它用于传送可由计算机访问和读取的软件和/或指令的合适介质。计算机可读介质和/或存储4106可驻留在处理电路4102中、处理器4104中、在处理电路4102外部、或跨包括该处理电路4102在内的多个实体分布。计算机可读介质和/或存储4106可实施在计算机程序产品中。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。本领域技术人员将认识到如何取决于具体应用和加诸于整体系统上的总体设计约束来最佳地实现本公开中通篇给出的所描述的功能性。
存储4106可维持以可加载代码段、模块、应用、程序等来维持和/或组织的软件,其在本文中可被称为软件模块4116。软件模块4116中的每一者可包括在安装或加载到处理电路4102上并被一个或多个处理器4104执行时有助于运行时映像4114的指令和数据,运行时映像4114控制一个或多个处理器4104的操作。在被执行时,某些指令可致使处理电路4102执行根据本文所描述的某些方法、算法和过程的功能。
软件模块4116中的一些可在处理电路4102初始化期间被加载,并且这些软件模块4116可配置处理电路4102以实现本文所公开的各种功能的执行。例如,一些软件模块4116可配置处理器4104的内部设备和/或逻辑电路4122,并且可管理对外部设备(诸如,收发机4112、总线接口4108、用户接口4118、定时器、数学协处理器等)的访问。软件模块4116可包括控制程序和/或操作系统,其与中断处理程序和设备驱动器交互并且控制对由处理电路4102提供的各种资源的访问。这些资源可包括存储器、处理时间、对收发机4112的访问、用户接口4118等。
处理电路4102的一个或多个处理器4104可以是多功能的,由此软件模块4116中的一些被加载和配置成执行不同功能或相同功能的不同实例。这一个或多个处理器4104可附加地被适配成管理响应于来自例如用户接口4118、收发机4112和设备驱动器的输入而发起的后台任务。为了支持多个功能的执行,这一个或多个处理器4104可被配置成提供多任务环境,由此多个功能中的每个功能按需或按期望实现为由一个或多个处理器4104服务的任务集。在一个示例中,多任务环境可使用分时程序4120来实现,分时程序4120在不同任务之间传递对处理器4104的控制权,由此每个任务在完成任何未决操作之际和/或响应于输入(诸如中断)而将对一个或多个处理器4104的控制权返回给分时程序4120。当任务具有对一个或多个处理器4104的控制权时,处理电路有效地专用于由与控制方任务相关联的功能所针对的目的。分时程序4120可包括操作系统、在循环基础上转移控制权的主循环、根据各功能的优先级化来分配对一个或多个处理器4104的控制权的功能、和/或通过将对一个或多个处理器4104的控制权提供给处置功能来对外部事件作出响应的中断驱动式主循环。
图42是解说用于CCIe总线上的数据通信的方法的流程图4200。串行总线可以是CCIe总线且在该方法中叙述的各种规程和功能可由包括图2中解说的CCIe主控设备220、图3中解说的设备(发射机300或接收机320)和/或本文描述的其他设备的某一组合的设备来执行。
在框4202,主控设备220可以在串行总线上传送第一SYNC码。第一SYNC码可包括同步字和心跳字,其中心跳字可使一个或多个从动CCIe设备生成时钟信号。
在框4204,主控设备220可以响应于第一SYNC码来建立与耦合到串行总线的第一设备的同步。主控设备220可在建立与第一设备的同步之后根据与第一协议相关联的第一操作模式在串行总线上与第一设备通信。
在框4206,主控设备200可以在串行总线上传送UNSYNC码,其中UNSYNC码被配置成致使失去与第一设备的同步。UNSYNC码可包括出错状况的指示符。差错状况的指示符的存在可致使第一设备进入未经同步的状态。
在框4208,主控设备220可以在串行总线上传送第二SYNC码。
在框4210,主控设备220可以响应于第二SYNC码来建立与耦合到串行总线的第二设备的同步。主控设备220可在建立与第二设备的同步之后根据与第一协议相关联的第二操作模式在串行总线上与第二设备通信。
在一个示例中,第一协议是CCIe协议。第一操作模式可对应于其中数据字被编码在要在串行总线上传送的12个码元中的操作模式。可通过在串行总线上传送12码元的序列来传送第一SYNC码。12码元的序列可被配置或选择成致使在12码元的序列的传输期间,CCIe总线的SCL线保持在逻辑高信令状态。SDA线可在12码元序列的连贯码元之间的每一转变处改变信令状态。
在另一示例中,第一协议是CCIe协议。第一操作模式可对应于其中数据字被编码在要在串行总线上传送的20个码元中的操作模式。可使用收发机在串行总线上传送20码元的序列来传送第一SYNC码。20码元的序列可被配置或选择成致使在20码元的序列的传输期间,CCIe总线的SCL线保持在逻辑高信令状态。SDA线可在20码元序列的连贯码元之间的每一转变处改变信令状态。
在第一协议是CCIe协议的情况下,与第一设备通信可包括在码元序列中向从动CCIe设备传送一个或多个数据字。
在一些实例中,该设备可以在串行总线上传送通用呼叫。通用呼叫可以使串行总线进入空闲状态。该设备可以在串行总线进入空闲状态之后使用第二协议与耦合到串行总线的第三设备通信。第一协议可以是CCIe协议,并且第二协议可以是I2C协议。连接到串行总线的至少一个设备可被限于使用I2C协议来通信。
图43是解说采用处理电路4302的装置4300的硬件实现的简化示例的示图。该处理电路通常具有处理器4316,处理器4316可包括微处理器、微控制器、数字信号处理器、定序器和状态机中的一者或多者。处理电路4302可以用由总线4320一般化地表示的总线架构来实现。取决于处理电路4302的具体应用和整体设计约束,总线4320可包括任何数目的互连总线和桥接器。总线4320将包括一个或多个处理器和/或硬件模块(由处理器4316、模块或电路4304、4306、4308和4310、可配置成通过连接器或导线4314通信的线接口电路4312、以及计算机可读存储介质4318表示)的各种电路链接在一起。总线4320还可链接各种其他电路,诸如定时源、外围设备、稳压器和功率管理电路,这些电路在本领域中是众所周知的,且因此将不再进一步描述。
处理器4316负责一般性处理,包括执行存储在计算机可读存储介质4218上的软件。该软件在由处理器4316执行时使处理电路4302执行上文针对任何特定装置描述的各种功能。计算机可读存储介质4318还可被用于存储由处理器4316在执行软件时操纵的数据,包括从在连接器4314上传送的码元中解码的数据。处理电路4302进一步包括模块4304、4306、4308和4310中的至少一个模块。各模块4304、4306、4308、和4310可以是在处理器4316中运行的软件模块、驻留/存储在计算机可读存储介质4318中的软件模块、耦合至处理器4316的一个或多个硬件模块、或其某种组合。模块4304、4306、4308、和/或4310可包括微控制器指令、状态机配置参数、或其某种组合。
在一种配置中,用于无线通信的装置4300包括:用于生成同步码的模块和/或电路4304,用于生成包括通用呼叫的命令的模块和/或电路4306,用于选择协议和操作模式的模块和/或电路4308,用于在串行总线上传送SYNC、UNSYNC和/或通用呼叫以在各协议和/或操作模式之间转变的模块和/或电路4310。
在一个示例中,处理电路4302可以执行计算机可读存储介质4318中维持的指令,由此这样的执行致使装置4300:
响应于第一SYNC码建立与耦合到连接器4314的第一设备的同步;
在建立与第一设备的同步之后,根据与第一协议相关联的第一操作模式在连接器4314上与第一设备通信;
在连接器4314上传送UNSYNC码,其中UNSYNC码被配置成致使失去与第一设备的同步;
在连接器4314上传送第二SYNC码;
响应于第二SYNC码建立与耦合到连接器4314的第二设备的同步;以及
在建立与第二设备的同步之后,根据与第一协议相关联的第二操作模式在连接器4314上与第二设备通信。
上述装置可例如使用处理器或控制逻辑212、包括收发机210和线驱动器/接收机214a、214b以及存储介质和/或寄存器206和/或210b的物理层设备的某组合来实现。
应理解,所公开的过程中各步骤的具体次序或层次是示例性办法的解说。应理解,基于设计偏好,可以重新编排这些过程中各步骤的具体次序或层次。所附方法权利要求以示例次序呈现各种步骤的要素,且并不意味着被限定于所给出的具体次序或层次。
提供先前描述是为了使本领域任何技术人员均能够实践本文中所描述的各种方面。对这些方面的各种改动将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。因此,权利要求并非旨在被限定于本文中所示出的方面,而是应被授予与语言上的权利要求相一致的全部范围,其中对要素的单数形式的引述除非特别声明,否则并非旨在表示“有且仅有一个”,而是“一个或多个”。除非特别另外声明,否则术语“一些”指的是一个或多个。本公开通篇描述的各种方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文中所公开的任何内容都并非旨在贡献给公众,无论这样的公开是否在权利要求书中被显式地叙述。没有任何权利要求元素应被解释为装置加功能,除非该元素是使用短语“用于…的装置”来明确叙述的。
Claims (30)
1.一种数据通信方法,包括:
在串行总线上传送第一同步(SYNC)码;
在响应于所述第一同步码建立与第一设备的同步之后,根据与第一协议相关联的第一操作模式在所述串行总线上与所述第一设备通信;
在所述串行总线上传送不同步(UNSYNC)码,其中所述不同步码被配置成致使失去与所述第一设备的同步;
在所述串行总线上传送第二同步码;以及
在响应于所述第二同步码建立与第二设备的同步之后,根据与所述第一协议相关联的第二操作模式在所述串行总线上与所述第二设备通信。
2.如权利要求1所述的方法,其特征在于,所述第一协议包括相机控制接口(CCIe)协议,并且其中所述第一操作模式对应于数据字被编码在要在所述串行总线上传送的12个码元中的操作模式。
3.如权利要求2所述的方法,其特征在于,传送所述第一同步码包括:
在所述串行总线上传送12码元的序列,其中12码元的所述序列被选择成致使在12码元的所述序列的传输期间所述串行总线的串行时钟(SCL)线保持在逻辑高信令状态,并且进一步致使所述串行总线的串行数据(SDA)线在12码元的所述序列的连贯码元之间的每一转变处改变信令状态。
4.如权利要求1所述的方法,其特征在于,所述第一协议包括CCIe协议,并且其中所述第二操作模式对应于数据字被编码在要在所述串行总线上传送的20个码元中的操作模式。
5.如权利要求4所述的方法,其特征在于,传送所述第二同步码包括:
在所述串行总线上传送20码元的序列,其中20码元的所述序列被选择成致使在20码元的所述序列的传输期间所述串行总线的串行时钟(SCL)线保持在逻辑高信令状态,并且进一步致使所述串行总线的串行数据(SDA)线在20码元的所述序列的连贯码元之间的每一转变处改变信令状态。
6.如权利要求1所述的方法,其特征在于,所述第一协议包括CCIe协议,并且其中与所述第一设备通信包括:
在码元序列中向从动CCIe设备传送一个或多个数据字。
7.如权利要求1所述的方法,其特征在于,所述第一同步码包括同步字和心跳字,所述心跳字允许一个或多个从动CCIe设备生成时钟信号。
8.如权利要求1所述的方法,其特征在于,所述不同步码包括出错状况的指示符,并且其中所述出错状况的指示符的存在致使所述第一设备进入未经同步的状态。
9.如权利要求1所述的方法,其特征在于,进一步包括:
在所述串行总线上传送通用呼叫,其中所述通用呼叫被选择成致使所述串行总线进入空闲状态;以及
在所述串行总线已进入所述空闲状态之后,使用第二协议与耦合到所述串行总线的第三设备通信。
10.如权利要求9所述的方法,其特征在于,所述第一协议包括CCIe协议,并且其中所述第二协议包括集成电路间(I2C)协议。
11.如权利要求1所述的方法,其特征在于,连接到所述串行总线的至少一个设备被限于使用集成电路间(I2C)协议进行通信。
12.一种装置,包括:
配置成在串行总线上通信的收发机;以及
至少一个处理器,其被配置成:
将第一同步(SYNC)码提供给所述收发机以用于在所述串行总线上传输;
在响应于所述第一同步码建立与第一设备的同步之后,根据与第一协议相关联的第一操作模式在所述串行总线上与所述第一设备通信;
将不同步(UNSYNC)码提供给所述收发机以用于在所述串行总线上传输,其中所述不同步码被配置成致使失去与所述第一设备的同步;
将第二同步码提供给所述收发机以用于在所述串行总线上传输;以及
在响应于所述第二同步码建立与第二设备的同步之后,根据与所述第一协议相关联的第二操作模式在所述串行总线上与所述第二设备通信。
13.如权利要求12所述的装置,其特征在于,所述第一协议包括相机控制接口(CCIe)协议,并且其中所述第一操作模式对应于数据字被编码在要在所述串行总线上传送的12个码元中的操作模式。
14.如权利要求13所述的装置,其特征在于,所述第一同步码包括如下12码元的序列:12码元的所述序列被选择成致使所述串行总线的串行时钟(SCL)线在12码元的所述序列的传输期间保持在逻辑高信令状态,并且被进一步选择成致使串行数据(SDA)线在12码元的所述序列的连贯码元之间的每一转变处改变信令状态。
15.如权利要求12所述的装置,其特征在于,所述第一协议包括CCIe协议,并且其中所述第二操作模式对应于数据字被编码在要在所述串行总线上传送的20个码元中的操作模式。
16.如权利要求15所述的装置,其特征在于,所述第二同步码包括如下20码元的序列:20码元的所述序列被选择成致使所述串行总线的串行时钟(SCL)线在20码元的所述序列的传输期间保持在逻辑高信令状态,并且被进一步选择成致使串行数据(SDA)线在20码元的所述序列的连贯码元之间的每一转变处改变信令状态。
17.如权利要求12所述的装置,其特征在于,所述第一协议包括CCIe协议,并且所述装置进一步包括:
被适配成将一个或多个数据字编码在码元序列中的编码器,其中所述码元序列由所述收发机在所述串行总线上传送给从动CCIe设备。
18.如权利要求12所述的装置,其特征在于,所述第一同步码包括同步字和心跳字,所述心跳字允许一个或多个从动CCIe设备生成时钟信号。
19.如权利要求12所述的装置,其特征在于,所述不同步码包括出错状况的指示符,并且其中所述出错状况的指示符的存在致使所述第一设备进入未经同步的状态。
20.如权利要求12所述的装置,其特征在于,所述至少一个处理器被配置成:
致使在所述串行总线上传送通用呼叫,其中所述通用呼叫被选择成致使所述串行总线进入空闲状态;以及
在所述串行总线已进入所述空闲状态之后,使用第二协议与耦合到所述串行总线的第三设备通信,
其中所述第一协议包括CCIe协议,并且其中所述第二协议包括集成电路间(I2C)协议。
21.一种其上存储有指令的计算机可读存储介质,所述指令在由处理器执行时致使所述处理器:
将第一同步(SYNC)码提供给收发机以用于在串行总线上传输;
在响应于所述第一同步码建立与第一设备的同步之后,根据与第一协议相关联的第一操作模式在所述串行总线上与所述第一设备通信;
将不同步(UNSYNC)码提供给所述收发机以用于在所述串行总线上传输,其中所述不同步码被配置成致使失去与所述第一设备的同步;
将第二同步码提供给所述收发机以用于在所述串行总线上传输;以及
在响应于所述第二同步码建立与第二设备的同步之后,根据与所述第一协议相关联的第二操作模式在所述串行总线上与所述第二设备通信。
22.如权利要求21所述的存储介质,其特征在于,所述第一协议包括相机控制接口(CCIe)协议,并且其中所述第一操作模式对应于第一数据字被编码在要在所述串行总线上传送的12个码元中的操作模式,并且其中所述第二操作模式对应于其中第二数据字被编码在要在所述串行总线上传送的20个码元中的操作模式。
23.如权利要求21所述的存储介质,其特征在于,所述第一同步码包括如下12码元的序列:12码元的所述序列被选择成致使所述串行总线的串行时钟(SCL)线在12码元的所述序列的传输期间保持在逻辑高信令状态,并且被进一步选择成致使所述串行总线的串行数据(SDA)线在12码元的所述序列的连贯码元之间的每一转变处改变信令状态,并且其中所述第二同步码包括如下20码元的序列:20码元的所述序列被选择成致使所述串行总线的SCL线在20码元的所述序列的传输期间保持在逻辑高信令状态,并且被进一步选择成致使SDA线在20码元的所述序列的连贯码元之间的每一转变处改变信令状态。
24.如权利要求21所述的存储介质,其特征在于,所述不同步码包括出错状况的指示符,并且其中所述出错状况的指示符的存在致使所述第一设备进入未经同步的状态。
25.如权利要求21所述的存储介质,其特征在于,所述指令使所述处理器:
提供要在所述串行总线上传送的通用呼叫,其中所述通用呼叫被选择成致使所述串行总线进入空闲状态;以及
在所述串行总线进入所述空闲状态之后,使用第二协议与耦合到所述串行总线的第三设备通信,
其中所述第一协议包括CCIe协议,并且其中所述第二协议包括集成电路间(I2C)协议。
26.一种装备,包括:
配置成在串行总线上通信的收发机;
用于将第一同步(SYNC)码提供给所述收发机以用于在所述串行总线上传输的装置;
用于在响应于所述第一同步码建立与第一设备的同步之后,根据与第一协议相关联的第一操作模式在所述串行总线上与所述第一设备通信的装置;
用于将不同步(UNSYNC)码提供给所述收发机以用于在所述串行总线上传输的装置,其中所述不同步码被配置成致使失去与所述第一设备的同步;
用于将第二同步码提供给所述收发机以用于在所述串行总线上传输的装置;以及
用于在响应于所述第二同步码建立与第二设备的同步之后,根据与所述第一协议相关联的第二操作模式在所述串行总线上与所述第二设备通信的装置。
27.如权利要求26所述的装备,其特征在于,所述第一协议包括相机控制接口(CCIe)协议,并且其中所述第一操作模式对应于第一数据字被编码在要在所述串行总线上传送的12个码元中的操作模式,并且其中所述第二操作模式对应于其中第二数据字被编码在要在所述串行总线上传送的20个码元中的操作模式。
28.如权利要求26所述的装备,其特征在于,所述第一同步码包括如下12码元的序列:12码元的所述序列被选择成致使所述串行总线的串行时钟(SCL)线在12码元的所述序列的传输期间保持在逻辑高信令状态,并且被进一步选择成致使所述串行总线的串行数据(SDA)线在12码元的所述序列的连贯码元之间的每一转变处改变信令状态,并且其中所述第二同步码包括如下20码元的序列:20码元的所述序列被选择成致使所述串行总线的SCL线在20码元的所述序列的传输期间保持在逻辑高信令状态,并且被进一步选择成致使SDA线在20码元的所述序列的连贯码元之间的每一转变处改变信令状态。
29.如权利要求26所述的装备,其特征在于,所述不同步码包括出错状况的指示符,并且其中所述出错状况的指示符的存在致使所述第一设备进入未经同步的状态。
30.如权利要求26所述的设备,其特征在于,进一步包括:
用于致使在所述串行总线上传送通用呼叫的装置,其中所述通用呼叫被选择成致使所述串行总线进入空闲状态;以及
用于在所述串行总线已进入所述空闲状态之后,使用第二协议与耦合到所述串行总线的第三设备通信的装置,
其中所述第一协议包括CCIe协议,并且其中所述第二协议包括集成电路间(I2C)协议。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461982466P | 2014-04-22 | 2014-04-22 | |
US61/982,466 | 2014-04-22 | ||
US14/682,846 US9710424B2 (en) | 2014-04-22 | 2015-04-09 | Synchronization method for multi-symbol words |
US14/682,846 | 2015-04-09 | ||
PCT/US2015/025464 WO2015164102A1 (en) | 2014-04-22 | 2015-04-10 | Synchronization method for multi-symbol words |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106462533A true CN106462533A (zh) | 2017-02-22 |
Family
ID=54322156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580021178.7A Pending CN106462533A (zh) | 2014-04-22 | 2015-04-10 | 用于多码元字的同步方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9710424B2 (zh) |
EP (1) | EP3134820B1 (zh) |
JP (1) | JP2017514394A (zh) |
KR (1) | KR20160146786A (zh) |
CN (1) | CN106462533A (zh) |
BR (1) | BR112016024704A2 (zh) |
WO (1) | WO2015164102A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334469A (zh) * | 2017-12-20 | 2018-07-27 | 广州晶序达电子科技有限公司 | 一种高速差分串行数据传输的方法、系统和装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417172B2 (en) | 2014-04-28 | 2019-09-17 | Qualcomm Incorporated | Sensors global bus |
US9734121B2 (en) | 2014-04-28 | 2017-08-15 | Qualcomm Incorporated | Sensors global bus |
WO2019040360A1 (en) * | 2017-08-24 | 2019-02-28 | Qualcomm Incorporated | GLOBAL SENSOR BUS |
US10901928B2 (en) * | 2018-02-15 | 2021-01-26 | United States Of America As Represented By The Secretary Of The Air Force | Data access control in an open system architecture |
WO2023072373A1 (en) * | 2021-10-26 | 2023-05-04 | Kone Corporation | Elevator communication system |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217213A1 (en) * | 2002-05-16 | 2003-11-20 | International Business Machines Corporation | Method and apparatus for implementing chip-to-chip interconnect bus initialization |
CN1522522A (zh) * | 2002-05-16 | 2004-08-18 | ض� | 使用10吉比特附件单元接口的与协议无关的传输 |
US20080109671A1 (en) * | 2006-11-08 | 2008-05-08 | Sicortex, Inc | Mesochronous clock system and method to minimize latency and buffer requirements for data transfer in a large multi-processor computing system |
CN101256543A (zh) * | 2007-02-20 | 2008-09-03 | 英飞凌科技股份公司 | 总线系统及其操作方法 |
US20130007432A1 (en) * | 2009-05-18 | 2013-01-03 | Stmicroelectronics, Inc. | Frequency and Symbol Locking Using Signal Generated Clock Frequency and Symbol Identification |
US20130272177A1 (en) * | 2012-04-13 | 2013-10-17 | Futurewei Technologies, Inc. | Dynamic Frame Structure for Synchronous Time-Division Duplexing Digital Subscriber Lines |
US20140013017A1 (en) * | 2012-07-04 | 2014-01-09 | International Business Machines Corporation | I2c to multi-protocol communication |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000030314A1 (fr) * | 1998-11-16 | 2000-05-25 | Sega Enterprises, Ltd. | Procede de transmission de donnees et systeme de jeu fonctionnant selon ledit procede |
JP5655562B2 (ja) * | 2010-12-28 | 2015-01-21 | ソニー株式会社 | 電子機器、電子機器の制御方法、送信装置および受信装置 |
-
2015
- 2015-04-09 US US14/682,846 patent/US9710424B2/en active Active
- 2015-04-10 BR BR112016024704A patent/BR112016024704A2/pt not_active IP Right Cessation
- 2015-04-10 WO PCT/US2015/025464 patent/WO2015164102A1/en active Application Filing
- 2015-04-10 CN CN201580021178.7A patent/CN106462533A/zh active Pending
- 2015-04-10 EP EP15721910.6A patent/EP3134820B1/en not_active Not-in-force
- 2015-04-10 KR KR1020167031026A patent/KR20160146786A/ko unknown
- 2015-04-10 JP JP2016563438A patent/JP2017514394A/ja not_active Ceased
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217213A1 (en) * | 2002-05-16 | 2003-11-20 | International Business Machines Corporation | Method and apparatus for implementing chip-to-chip interconnect bus initialization |
CN1522522A (zh) * | 2002-05-16 | 2004-08-18 | ض� | 使用10吉比特附件单元接口的与协议无关的传输 |
US20080109671A1 (en) * | 2006-11-08 | 2008-05-08 | Sicortex, Inc | Mesochronous clock system and method to minimize latency and buffer requirements for data transfer in a large multi-processor computing system |
CN101256543A (zh) * | 2007-02-20 | 2008-09-03 | 英飞凌科技股份公司 | 总线系统及其操作方法 |
US20130007432A1 (en) * | 2009-05-18 | 2013-01-03 | Stmicroelectronics, Inc. | Frequency and Symbol Locking Using Signal Generated Clock Frequency and Symbol Identification |
US20130272177A1 (en) * | 2012-04-13 | 2013-10-17 | Futurewei Technologies, Inc. | Dynamic Frame Structure for Synchronous Time-Division Duplexing Digital Subscriber Lines |
US20140013017A1 (en) * | 2012-07-04 | 2014-01-09 | International Business Machines Corporation | I2c to multi-protocol communication |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334469A (zh) * | 2017-12-20 | 2018-07-27 | 广州晶序达电子科技有限公司 | 一种高速差分串行数据传输的方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20150301980A1 (en) | 2015-10-22 |
KR20160146786A (ko) | 2016-12-21 |
BR112016024704A2 (pt) | 2017-08-15 |
JP2017514394A (ja) | 2017-06-01 |
EP3134820B1 (en) | 2018-03-14 |
EP3134820A1 (en) | 2017-03-01 |
WO2015164102A1 (en) | 2015-10-29 |
US9710424B2 (en) | 2017-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10452603B2 (en) | Sensors global bus | |
CN106462533A (zh) | 用于多码元字的同步方法 | |
US10007628B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
KR101790900B1 (ko) | 카메라 제어 인터페이스 확장 버스 | |
KR102445344B1 (ko) | 시리얼 버스를 위한 수신 클록 캘리브레이션 | |
US20180046595A1 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
CN106415518A (zh) | 具有带内中断的相机控制接口扩展 | |
US10417172B2 (en) | Sensors global bus | |
US20190149314A1 (en) | Clock and data recovery for pulse based multi-wire link | |
US9490964B2 (en) | Symbol transition clocking clock and data recovery to suppress excess clock caused by symbol glitch during stable symbol period | |
WO2019040360A1 (en) | GLOBAL SENSOR BUS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170222 |
|
WD01 | Invention patent application deemed withdrawn after publication |