用于在集成电路间(I2C)总线上带内发送额外信息的方法与流程

文档序号:11814685阅读:269来源:国知局
用于在集成电路间(I2C)总线上带内发送额外信息的方法与流程

本申请要求于2014年4月2日向美国专利商标局提交的美国非临时专利申请No.14/243,459的优先权和权益,其全部内容通过援引纳入于此。

背景

领域

本公开一般涉及处理器与外围设备之间的接口,并且尤其涉及改进串行总线的数据通信能力。



背景技术:

集成电路间串行总线(也可被称为I2C总线或I2C总线)是旨在用于将低速外围设备连接至处理器的串行单端计算机总线。I2C总线是多主控总线,其中每个设备可以针对I2C总线上传送的不同消息充当主控设备和从动设备。I2C总线可以仅使用两个双向开漏(open-drain)连接器(包括串行数据线(SDA)和串行时钟线(SCL))来传送数据。这些连接器通常包括由上拉电阻器终接的信号导线。I2C的原始实现在标准模式操作中支持最高达每秒100千比特(100kbps)的数据信令速率,其中较新近的标准在快速模式操作中支持400kbps的速度,并且在快速模式+操作中支持每秒1兆比特(Mbps)的速度。

然而,在一些系统和装置中,需要更高带宽来支持某些类型的设备之间的通信。例如,移动通信设备(诸如蜂窝电话)可以采用消耗显著带宽的多个设备(诸如相机、显示器和各种通信接口)。当使用常规的I2C协议以维持与旧式设备的兼容性时,可能难以获得较高带宽。因此,存在着在被配置为连接移动设备内的主控组件和从动组件的总线的串行接口上提供优化通信的现行需要。

概述

本文中公开的实施例提供了提供I2C总线的改进性能的系统、方法和装置。主数据可根据I2C总线协议被编码在第一信令中,并且第一信令可根据I2C协议、规范和/或实际标准来与第二信令进行组合以获得供在I2C总线上传送的组合信令。

在本公开的一方面,一种数据通信方法包括根据I2C总线协议在I2C信号中编码主数据,在I2C信号中编码副数据以获得多信道信号,以及在I2C总线上传送该多信道信号。该多信道信号可与I2C总线协议兼容。

在另一方面,在I2C信号中编码副数据包括在差分信号中编码副数据,该差分信号包括互补信号对;以及通过在I2C总线的SDA上传送该互补信号对中的一者并且在I2C总线的SCL上传送该互补信号对中不同的一者来在I2C总线上传送该差分信号。当SDA和SCL两者均处于高逻辑电平时,可在I2C总线上传送该差分信号。当在SDA和SCL上传送差分信号时,SDA和SCL可具有大于由I2C总线协议为高逻辑电平指定的最小电压并且小于由I2C总线协议为高逻辑电平指定的最大电压的电压电平。可在I2C总线空闲的时间段期间传送差分信号。

在另一方面,在I2C信号中编码副数据包括在FM信号中编码副数据,以及在I2C总线的SDA和I2C总线的SCL中的一者或多者上传送该FM信号。该FM信号可具有小于由I2C兼容设备的接收机使用的施密特触发器输入的最小滞后电压电平的振幅。该最小滞后电压电平可在I2C总线协议中定义。

在另一方面,在I2C信号中编码副数据包括将或者制止将短脉冲插入到在I2C总线的SDA或I2C总线的SCL上传送的信号中。例如,当要被传送的副数据的比特值具有第一值时可以插入短脉冲,并且当要被传送的副数据的比特具有第二值时可省略短脉冲。在一个示例中,可以通过将或者制止将短脉冲插入到在SCL上传送的时钟信号的多个半循环中来在I2C信号中编码副数据。短脉冲可具有比由I2C总线协议为时钟信号的脉冲所指定的最小历时小的历时。短脉冲可具有比由I2C总线协议为要被I2C接收机忽略的毛刺所指定的最大历时小的历时。

在另一方面,在I2C信号中编码副数据包括对在I2C总线的SCL上传送的时钟信号进行脉宽调制。结果得到的经脉宽调制的时钟信号的每个高时段具有超过由I2C总线协议指定的SCL时钟的最小高时段的历时,并且经脉宽调制的时钟信号的每个低时段具有超过由I2C总线协议指定的SCL时钟的最小低时段的历时。

在另一方面,可在要在I2C总线上传送的帧中编码主数据。在I2C信号中编码副数据可包括当要被传送的副数据的比特具有第一值时在主数据的各帧之间传送跟随有开始状况的停止状况,以及当要被传送的副数据的比特具有第二值时传送重复的开始状况。

在另一方面,在要在I2C总线上传送的帧中编码主数据。在I2C信号中编码副数据可包括当要被传送的副数据的比特具有第一值时在主数据的各帧之间传送重复的开始状况,其中该重复的开始状况具有两个预定义历时中的第一预定义历时;以及当要被传送的副数据的比特具有第二值时传送具有两个预定义历时中的第二预定义历时的重复的开始状况。

在本公开的一方面,一种被配置成在I2C总线上传送数据的装置包括具有处理电路的编码器。该处理电路可被配置成根据I2C总线协议在I2C信号中编码主数据,在I2C信号中编码副数据以提供多信道信号;以及配置成根据I2C总线协议在I2C总线上传送该多信道信号的发射机。

在另一方面,编码器的处理电路被配置成通过在叠加在I2C信号上的差分信号或者FM信号中编码副数据来编码副数据。

在另一方面,编码器的处理电路可被配置成通过对在I2C总线的SCL上传送的时钟信号进行脉宽调制、或者通过选择性地将短脉冲添加至I2C总线的SDA或SCL来编码副数据。短脉冲可具有小于由I2C总线协议为要被I2C接收机忽略的毛刺所指定的最大历时的历时。

在另一方面,编码器的处理电路可被配置成通过使用副数据的比特来选择在I2C总线上传送的主数据的各帧之间传送的开始状况的类型来编码副数据。编码器的处理电路可被配置成通过使用副数据的比特来选择在主数据的各帧之间传送的重复的开始状况的历时来编码副数据。

在本公开的一方面,一种数据通信方法包括根据I2C总线协议来解码接收自I2C信号的主数据,以及从该I2C信号解码副数据。使用不同于I2C总线协议的协议来解码副数据。I2C信号遵循I2C总线协议。

在另一方面,解码副数据包括从I2C总线的SDA和SCL接收差分信号对,其中SDA和SCL携带该差分信号对中不同的差分信号;以及从该差分信号对解码副数据。当SDA和SCL两者均处于高逻辑电平时,可从I2C总线接收该差分信号对。当从I2C总线接收该差分信号对时,SDA和SCL可具有大于由I2C总线协议为高逻辑电平指定的最小电压并且小于由I2C总线协议为高逻辑电平指定的最大电压的电压电平。在I2C总线空闲的时间段期间接收该差分信号对。

在另一方面,解码副数据可包括从I2C总线的SDA或SCL中的至少一者接收FM信号,以及从该FM信号解码副数据。该FM信号可具有小于I2C兼容设备的接收机中的施密特触发器输入的最小滞后电压电平(如在I2C总线协议中所定义)的振幅。在接收FM信号时,SDA和SCL的电压可以大于由I2C总线协议为高逻辑电平指定的最小电压并且小于由I2C总线协议为高逻辑电平指定的最大电压。

在另一方面,解码副数据包括确定在接收自I2C总线的SDA或I2C总线的SCL的信号中存在或不存在短脉冲,以及基于短脉冲的存在或不存在来解码副数据。每个短脉冲可具有小于由I2C总线协议为要被忽略的毛刺所指定的最大历时的历时。

在另一方面,解码副数据包括确定在接收自I2C总线的SCL的时钟信号的多个半循环中存在或不存在短脉冲,以及基于短脉冲的存在或不存在来解码副数据。每个短脉冲可具有小于由I2C总线协议为要被忽略的毛刺所指定的最大历时的历时。

在另一方面,解码副数据包括解码接收自I2C的SCL的经脉宽调制的时钟信号中的副数据。经脉宽调制的时钟信号的每个高时段具有超过由I2C总线协议指定的SCL时钟的最小高时段的历时,并且经脉宽调制的时钟信号的每个低时段具有超过由I2C总线协议指定的SCL时钟的最小低时段的历时。

在另一方面,解码副数据包括在I2C总线的SDA上携带主数据的连贯帧之间接收到停止状况和开始状况时确定副数据的比特的第一值,以及在连贯帧之间接收到重复的开始状况时确定副数据的比特的第二值。

在另一方面,解码副数据包括在I2C总线的SDA上携带主数据的连贯帧之间接收到重复的开始状况具有第一历时时确定副数据的比特的第一值,以及在重复的开始状况具有第二历时时确定副数据的比特的第二值。

在本公开的一方面,一种装备被配置成从I2C总线接收数据。该装备可包括用于根据I2C总线协议来解码接收自I2C信号的主数据的装置,以及用于从该I2C信号解码副数据的装置。使用不同于I2C总线协议的协议来解码副数据。该I2C信号可遵循I2C总线协议。

附图简述

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

图2是解说连接至I2C通信总线的装置的某些方面的示意性框图。

图3解说了连接至公共I2C总线的I2C的配置。

图4是解说常规I2C总线上的SDA和SCL信号导线之间的关系的时序图。

图5是解说与在I2C总线上传送的多个帧相关联的定时的时序图。

图6是解说通过改变终止状况的一方面来在I2C总线上传送副数据的时序图。

图7是解说通过在时钟信号上插入短脉冲来在I2C总线上传送副数据的时序图。

图8是解说通过对时钟信号进行脉宽调制来在I2C总线上传送副数据的时序图。

图9是解说通过将低电压差分信号添加至SCL和SDA信号来在I2C总线上传送副数据的时序图。

图10是解说通过在SCL信号或SDA信号上叠加FM信号来在I2C总线上传送副数据的时序图。

图11是适配成在I2C总线上发送额外带内信息的I2C设备的示意性框图。

图12是根据本文公开的一个或多个方面的用于在I2C总线上传送附加数据的第一方法的流程图。

图13是解说根据本文公开的一个或多个方面的在I2C总线上进行通信的接收方装置的硬件实现的示例的示图。

图14是根据本文公开的一个或多个方面的用于接收在I2C总线上传送的附加数据的第一方法的流程图。

图15是解说根据本文公开的一个或多个方面的在I2C总线上进行通信的传送方装置的硬件实现的示例的示图。

详细描述

现在参照附图描述各个方面。在以下描述中,出于解释目的阐述了众多具体细节以提供对一个或多个方面的透彻理解。但是显然的是,没有这些具体细节也可实践此(诸)方面。

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

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

本发明的某些方面可应用于部署在电子设备之间的通信链路,这些电子设备是移动装置(诸如电话、移动计算设备、电器、汽车电子设备、航空电子系统等)的子组件。移动装置的示例包括蜂窝电话、智能电话、会话发起协议(SIP)电话、膝上型电脑、笔记本、上网本、智能本、个人数字助理(PDA)、卫星无线电、全球定位系统(GPS)设备、多媒体设备、视频设备、数字音频播放器(例如,MP3播放器)、相机、游戏控制台、可穿戴计算设备(例如,智能手表、健康或健身跟踪器等)、电器、传感器、自动售货机、或任何其他类似的功能设备。图1描绘了可采用IC设备之间的通信链路的装置100的示例。装置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是解说包括连接至通信总线230的多个设备202、220和222a-222n的装置200的某些方面的示意性框图。装置200可在移动装置中实施。在一个示例中,装置200包括使用I2C总线230进行通信的多个设备202、220和222a-222n,并且至少一个成像设备202可被配置成作为I2C总线230上的从动设备来操作。成像设备202可被适配成提供例如管理图像传感器的传感器控制功能204。另外,成像设备202可包括配置寄存器或其他存储206、控制逻辑212、收发机210以及线驱动器/接收机214a和214b。控制逻辑212可包括处理电路,诸如状态机、定序器、信号处理器或通用处理器。收发机210可包括接收机210a、发射机210c和共用电路210b(包括定时、逻辑和存储电路和/或设备)。在一个示例中,发射机210c基于由时钟生成电路208提供的定时来编码并传送数据。

I2C设备202、220和/或222a-222n中的两者或更多者可根据本文公开的某些方面和特征来适配以扩展由常规I2C总线提供的带宽和其他能力。例如,I2C设备202、220和/或222a-222n可被适配成支持比在常规I2C协议被用于管理I2C总线230上的通信时通常可达成的比特率更高的比特率。I2C协议可遵循实际的I2C标准,并且除了数据格式和I2C总线控制和定时之外还可包括定义I2C信号的电气和定时方面的规范。

图3解说了连接至I2C总线302的I2C设备304、306、308、310、312、314和316的配置,由此三个设备304、314和316被适配或配置成在I2C总线302上获得较高的数据传输率。经适配的设备304、314和316可与常规地配置的I2C设备306、308、310和312共存,并且经适配的设备304、314和316可按期望或按需使用常规的I2C协议进行通信。出于本描述的目的,使用常规I2C协议的通信可被认为是I2C总线302上的主通信信道,而本文公开的增强型通信能力可被提供为在I2C总线上与主通信信道共存的一个或多个副或虚拟通信信道。

副通信信道可以在增强型I2C设备304作为总线主控控制I2C总线302时是可用的。在所描绘的示例中,一个I2C设备304当前正用作总线主控304,并且总线主控304可提供一个或多个副通信信道,该一个或多个副通信信道可由已根据本文公开的某些方面适配的从动I2C设备314和316来监视。附加数据(副数据)可在副信道中在I2C总线302上传输,而不使用外部桥接设备并且不损害I2C总线302上的旧式I2C设备306、308、310和312的功能性。

图4包括解说常规I2C总线上的SDA和SCL信号导线402、404之间的关系的时序图400和420。第一时序图400解说在常规配置的I2C总线上传输数据时SDA信号导线402与SCL信号导线404之间的定时关系。SCL信号404提供可被用于对SDA信号导线402中的数据进行采样的一系列时钟脉冲412。当SCL信号导线404在数据传输期间处于逻辑高状态时,要求SDA信号导线402上的数据是稳定且有效的,以使得不准许SDA信号导线402的状态在SCL信号导线404处于高状态时改变。

用于常规I2C协议实现的规范(本文中称为“I2C规范”)定义了SCL信号导线404上的每个脉冲412的高时段(tHIGH)410的最小历时,其中脉冲412对应于SCL信号导线404处于高逻辑状态的时间。I2C规范还定义了建立时间(tSU)406和保持时间(tHold)408的最小历时,在该建立时间和保持时间期间,SDA信号导线402的信令状态必须在SDA信号导线402处于高逻辑状态期间的脉冲412之前和之后是稳定的。建立时间406定义了在SDA信号导线404上的信令状态之间的转变416之后、直至SCL信号导线404上的脉冲412的上升沿的抵达为止的最大时间段。保持时间408定义了在SCL信号导线404上的脉冲412的下降沿之后、直至SDA信号导线404上的信令状态之间的下一转变418为止的最小时间段。I2C规范还定义了SCL信号导线404的低时段(tLOW)的最小历时。通常在SCL信号导线404在脉冲412的前沿之后处于高逻辑状态时捕捉SDA信号导线402上的数据达时间段(tHIGH)410。

图4的第二时序图420解说了在常规I2C总线上的数据传输之间SDA信号导线402和SCL信号导线404上的信令状态。I2C协议提供了8比特数据(字节)和7比特地址的传输。数据传输由接收机确收,该接收机驱动SDA信号402达一个时钟周期,以使得低信令状态表示指示成功接收的确收(ACK)并且高信令状态表示指示接收失败或者接收错误的否定确收(NACK)。

开始状况422被定义为准许当前总线主控发信号通知数据将被传送。开始状况422在SDA信号导线402从高转变为低而同时SCL信号导线404为高时发生。I2C总线主控最初传送开始状况422(其还可被称为开始比特),其后跟随该I2C总线希望与其交换数据的I2C从动设备的7比特地址。在该地址之后跟随着指示要进行读操作还是写操作的单个比特。被寻址的I2C从动设备(若可用)用ACK比特来响应。主控I2C设备和从动I2C设备随后在帧中交换信息字节,其中这些字节被串行化,以使得首先传送最高有效比特(MSB)。当I2C主控设备传送停止状况424时,字节传输完成。停止状况424在SDA信号导线402从低转变为高而同时SCL信号导线404为高时发生。I2C规范要求SDA信号导线402的所有转变在SCL信号导线404为低时发生,并且例外可被当作开始状况422或停止状况424。

图5包括解说与I2C总线上的多个数据传输相关联的定时的时序图500和520。在第一基本示例中,在停止状况508与连贯的开始状况510之间流逝的时间段514可被延长,从而使常规I2C总线在此时间段514期间空闲。在操作中,繁忙时段512在I2C总线主控传送跟随有数据的第一开始状况506时开始。繁忙时段512在I2C总线主控传送停止状况508时结束并且空闲时段514跟着发生。空闲时段514以第二开始状况510的传输结束。

还参照时序图520,在一些实例中,I2C总线上的相继数据传输之间的空闲时段514可通过传送重复的开始状况(Sr)528而不是停止状况来在数量上减少或者消除。重复的开始状况528终止先前的数据传输并且同时指示下一数据传输的开始。SDA信号导线522上的状态转变对于在空闲时段530之后发生的开始状况526以及重复的开始状况528而言是相同的。具体地,SDA信号导线522从高转变为低而同时SCL信号导线524为高。当在数据传输之间使用重复的开始状况528时,第二繁忙时段534紧跟在第一繁忙时段532之后。

图6-10提供了根据本文公开的某些方面的示例,这些示例示出了利用管控I2C总线和协议的操作的规范来使得能够在I2C总线上带内传送附加的带内数据。

现在参照图6的时序图600、620和640以及图5中解说的定时,可与开始状况526、528和/或结合字节序列的传输使用的开始状况526和/或528的历时相组合地传送附加的带内数据。为了参考,图6包括第一时序图600,该第一时序图600示出了具有将连贯的I2C帧分隔开的开始和停止状况604、606的组合的数据流602的一个常规传输、以及具有将连贯的I2C帧分隔开的重复的开始状况612、614的数据流610的另一常规传输。

根据一个方面并且如图6的第二时序图620中所示,I2C总线主控可被适配成通过在重复的开始状况622、624、626和628的历时中编码数据来在I2C总线上提供副信道。在所描绘的示例中,二进制“1”作为较长的重复开始状况624来传送,而二进制“0”作为较短的重复开始状况622、626、628来传送。重复的开始状况622、624、626、628的历时可以通过在开始状况422(参照图4)中控制SDA信号402的下降沿与SCL信号404的下降沿之间的保持时间(tHD,STA)426的时段来调制。要被编码的数据可被用于选择在每个时机622、624、626和628上使用的保持时间426的历时,该历时选自超过I2C规范中定义的最小保持时间426的两个或更多个历时。I2C规范为标准模式操作定义4μs的最小保持时间,为快速模式操作定义0.6μs的最小保持时间,并且为快速模式+操作定义0.26μs的最小保持时间。I2C从动设备中的接收机可被配置或适配成检测终止状况的保持时间(tHD,STA)426的时段的变化,并且在至少一些实例中检测此类变化的幅值差异。保持时间426对于在空闲时段514或530之后发生的开始状况510或526或者重复的开始状况528而言可以是不同的(参照图5)。

根据一个方面并且如图6的第三时序图640中所示,I2C总线主控可被适配成通过在I2C帧之后传送的终止状况642、644、646和648的类型中编码数据来在I2C总线上提供副信道。在所描绘的示例中,二进制“1”在包括停止状况和开始状况的终止状况644中传送,而二进制“0”作为重复的开始状况642、646、648来传送。

现在参照图7的时序图700,可以SDA信号702或SCL信号704上的短脉冲710、712或者以短脉冲的不存在714传送附加的带内数据。I2C规范定义了在某些操作模式中必须由常规I2C接收机的输入滤波器抑制的毛刺的脉冲宽度(tSP)。在一个示例中,tSP脉冲宽度可被指定为具有50ns的最大历时。相应地,短于50ns的任何脉冲被常规IC接收机滤波和忽略。I2C发射机可被适配或配置成通过以短脉冲编码数据来在I2C总线上提供虚拟的副信道。在所描绘的简单示例中,具有历时(tSEC)716的两个脉冲710和712可表示二进制“1”,而在未检测到脉冲时可确定二进制“0”。在此示例中,可在I2C协议的一个比特区间中在虚拟的副信道上传送两个比特。倘若脉冲具有历时tSEC<tSP,则可在SDA 702或SCL 704上传送脉冲,其中为I2C总线的当前操作模式指定tSP

在一个示例中,可分别在SCL 704处于高逻辑状态时的时间段708中以及在SCL 704处于低逻辑状态时的时间段718中添加附加的短脉冲710、712。在其他示例中,可在SCL 704处于两个时间段708或718之一中时添加短附加脉冲710或712。即,可仅在低时段718期间插入短附加脉冲710或712,其中在高时段708期间不插入任何脉冲,或者反过来。在一些示例中,可在时间段708、718中的一者或多者中添加不止一个附加脉冲。短脉冲可附加地或替换地以针对短脉冲710、712被添加至SCL 704所描述的方式被添加至SDA702。

再次参照图4,在I2C规范中为某些操作模式定义了SDA信号402和SCL信号404的高和低逻辑状态的最小历时410、414。在快速模式操作的示例中,每个逻辑高时段的历时(tHIGH)410必须大于0.6μs,并且每个逻辑低时段的历时(tLOW)414必须大于1.3μs,其中没有指定最大值。相应地,倘若遵守SCL信号404的高和低逻辑状态的最小指定历时410、414,则I2C设备可被适配成对SCL信号404的逻辑状态410、414的宽度进行调制。

图8是解说通过使用脉宽调制(PWM)来传送附加的带内数据以在I2C总线上提供副信道的时序图800。在使用PWM时,由要被编码在副信道中的副数据824的至少一个比特的值来确定SCL信号804上的每个时钟脉冲816、818的历时。被适配成对SCL时钟信号进行脉宽调制的I2C总线主控设备可根据I2C规范中定义的操作模式来在SDA信号导线802上传送的I2C信号上编码主数据。该数据可被编码在由常规SCL时钟信号804定义的传输区间中。信令的这种组合可在I2C总线上提供主通信信道。

I2C主控设备还可使用PWM在SCL信号导线804上编码副数据以获得经调制的SCL信号814。在所描绘的简单示例中,I2C主控设备可使用短脉冲816来编码具有值‘0’的比特824并且使用较长脉冲818来编码具有值‘1’的比特824。每种类型的脉冲816和818的脉冲宽度可被维持在关于历时的预定义限制内。如可以领会的,PWM的使用可以使支持PWM的设备之间的I2C总线的带宽至少加倍。在SDA信号802上传送的字节的每个传输提供可使用PWM来编码的9个时钟脉冲。在一个示例中,可在经PWM编码的SCL信号814上发送一个数据字节和一控制比特,而同时在SDA信号导线802上传送一个数据字节。在一些实例中,在SDA信号802上传送8字节块时,可在经PWM编码的SCL信号814上传送9字节块。倘若接收方I2C设备可被适配或配置成区分短脉冲816、较长脉冲818、以及甚至更长脉冲的定时差异,则可使用其他PWM方案并且可编码不止一个比特。

被适配成传送和/或接收经PWM编码的SCL信号814的I2C设备通常被配置成识别和/或区分开始状况806、重复的开始状况808、以及结束状况810以使PWM编码器和解码器同步。SCL信号804、814可处于高逻辑状态达开始状况806或结束状况810之前的延长时间段。在传送重复的开始状况808时,例如在重复的开始状况808的脉冲820具有与基本SCL信号804中的其他脉冲812相同的历时的情况下,重复的开始状况808的脉冲820可供用于使用PWM来编码数据。在一些示例中,重复的开始状况可使用具有与基本SCL信号804中的其他脉冲812不同的历时的脉冲820,包括在经调制的tHD;STA定时的历时中编码副数据时,如关于图6所讨论的。在这些示例中,经适配的I2C主控的编码器可制止在重复的开始状况808的脉冲820上编码数据。在其他示例中,经适配的I2C主控的编码器可针对所有传输制止在第九时钟脉冲820、822上编码数据,以简化逻辑设计、提供用于在选择终止状况806、808、810中编码数据的附加信道、或者出于其他原因。

图9是解说使用差分信令来传送附加的带内数据以在I2C总线上提供副信道的时序图900。差分信令可通过藉由在SDA信号导线902上叠加差分信号对(D+,D-)910、912中的互补信号来传送差分信号对(D+,D-)910、912的方式达成。在所描绘的示例中,SDA信号导线902携带D+信号910并且SCL信号导线904携带D-信号912。差分信号对(D+,D-)910、912是在停止状况906与开始状况908之间的空闲时间914的至少一部分期间传送的。差分信号(D+,D-)910、912通常是低电压数字信号,这些低电压数据信号具有被选择以确保SDA和SCL信号导线902、904的高逻辑状态可在I2C规范中针对SDA和SCL信号导线902、904的信令状态定义的容限内调制的振幅。在一个示例中,可使用非归零(NRZ)编码在差分信号(D+,D-)910、912中编码副数据,该NRZ编码可在具有锁相环(PLL)以使接收时钟同步至用于编码副数据的时钟的接收机处解码。在另一示例中,可使用PWM在差分信号(D+,D-)910、912中编码副数据。可适当地针对副数据的类型和用于编码副数据的时钟频率或者出于其他原因使用其他编码方案。

如在920处一般地指示的,I2C规范定义相对于0V参考922在设备供电电压VDD 924的70%处的标称高输入电压电平(VIH)930。针对处于高逻辑状态的信号902、904要求噪声容限水平(VnH),并且输入信号902、904的最大电压电平926被定义为VDD+0.5V。因此,输入信号可在0.9x VDD的最小电压电平928与VDD+0.5V的最大电平之间的范围内。在所描绘的示例中,输入信号902、904可具有在VDD 924处设置或配置的高逻辑状态,其中叠加的差分信号932具有小于0.2V的峰-峰电压电平。

在接收机处,差分接收机可被配置成在空闲时段914期间确定SDA信号导线902与SCL信号导线904之间的电压差。SDA和SCL信号导线902和904两者上的I2C逻辑高电压924被消去,并且差分接收机可提供表示差分信号910、912的输出。

图10是解说使用频率调制(FM)来传送附加的带内数据以在I2C总线上提供副信道的时序图1000。数据可使用FM来编码以改变载波的瞬时频率并且由此获得具有基本上一致的峰-峰电压电平1014的FM信号1002。FM信号1002可随后覆盖或以其他方式叠加在I2C信号1004上,该I2C信号1004可以是SDA信号和/或SCL信号。如细节图1012中所示,峰-峰电压1014可被选择成低于由I2C规范为接收机指定的滞后电压电平,以使得组合信号1006中的I2C信令可被常规的I2C从动设备接收和解码。常规的I2C从动设备可抑制、滤除、或忽略组合信号1006中的FM信号1002。组合信号1006中的FM信号1002可由根据本文公开的某些方面来适配的I2C从动设备提取和解调或以其他方式解码。I2C规范为I2C设备的接收机中的施密特触发器输入定义了0.05x VDD的最小滞后电压电平(Vhys),并且峰-峰电压1014可被选择成低于指定的Vhys

FM信号1002可在SDA和SCL信号中的一者或两者上传送。当在I2C总线的两个信号导线上传送时,可在这两条导线上传送的FM信号1002的诸版本之间提供定时偏移,以准许较容易地将FM信号1002与I2C数字信号1004分开。I2C总线的两条导线上的FM信号1002的传输可使得能够应用某些噪声消去技术。

图11是解说耦合至I2C总线1124并且根据本文公开的某些方面来配置或适配的发射机1100和接收机1140的示例的框图。发射机1100和/或接收机1140可被适配或配置成能够根据I2C标准定义来传送和/或接收数据1100。发射机1100和/或接收机1140可被进一步适配或配置成能够根据本文公开的某些方面使用副信道信令来传送和/或接收数据1116。出于本描述的目的,在标准定义的协议中编码和传送的数据可被称为“主数据”1110,并且可以认为此类主数据1110是在由标准定义的I2C总线1124提供的主信道上传送的。出于本描述的目的,在副信道信令中编码和传送的数据可被称为“副数据”1116,并且可以认为副数据1116是通过I2C总线1124上的副或虚拟信道来传送的。

对于I2C操作,发射机1100可包括主信道串化器1102,该主信道串化器1102根据SCL信号导线1120上提供的时钟的定时来串行化主数据1110以供在SDA信号导线1122上传送。主信道串化器1102通常由传送时钟1126来时钟控制以产生供在SDA信号导线1122上传送的I2C串行数据1112。

发射机1100还可被配置或适配成在I2C总线1124上传送的副信道信令中编码副数据1116。在一些示例中,副数据1116可由副信道串化器1108串行化,以生成可在副信道信令中编码的比特流(调制数据)1118。副信道串化器1108可由传送时钟1126和/或调制时钟1128时钟控制,该调制时钟1128是根据由编码器/调制器1104用于编码调制数据1118以生成副信道信令的调制方案来生成的。编码器/调制器1104可在已发起或协商与从动设备的副信道通信时提供调制时钟1128,并且可按其他方式抑制调制时钟1128。

调制时钟1128可基于I2C发射机时钟1126被推导出或者以其他方式基于I2C发射机时钟1126。例如,可通过将短脉冲710、712插入I2C发射机时钟1126(还参照图7)或者通过对I2C发射机时钟1126进行脉宽调制(还参见图8)来编码副数据1116,在后一情形中副信道串化器1108可接收发射机时钟1126的经相移、经频率加倍和/或经分频的版本以对作为调制数据1118的串行比特流进行时钟控制。调制时钟1128可基于I2C发射机时钟1126,因为调制时钟1128可在I2C发射机时钟1126活跃时被抑制。例如,可在SCL信号904上不传送时钟信号的空闲时段914期间传送的差分信号910、912中编码副数据1116(参见图9),并且仅在传送差分信号910、912时提供调制时钟1128。

可基于I2C总线1124上的I2C帧定时来提供调制时钟1128。例如,可在SDA信号导线1122上传送的字节之间的开始状况506、重复的开始状况508和/或结束状况510(参见图5和6)的配置和/或选择中编码副数据1116。在后一示例中,可提供调制时钟1128以基于一个或多个开始或停止状况506、508、510的发生来提取预定义数目的比特。

在一些实例中,调制时钟1128的时钟速率可独立于I2C发射机时钟1126的时钟速率。例如,可在使用FM时(例如,参见图10)或者在I2C串行数据信号1112和I2C发射机时钟1126上叠加数字差分信号910、912时独立地确定调制时钟1128的数据率。在一些实例中,可在数字差分信号910、912中编码时钟信息,或者可按预定义的时钟速率来传送数字差分信号910、912。

编码器/调制器1104可包括可基于副信道是否在I2C总线1124上可用来启用或禁用的电路和模块。这些电路可包括用于在例如使用PWM时、或者在开始状况506、重复的开始状况508和/或停止状况510的定时被修改以编码副数据1116时延长时钟脉冲的门、延迟、以及组合逻辑。编码器/调制器1104可包括调整一个或多个逻辑电平的电压电平以准许通过数字差分信号910、912或FM信号1002进行调制的电路。

编码器/调制器1104输出基于I2C串行数据1112和发射机时钟1126的传输信号1114。当不需要或不期望副信道时或者当接收方设备不能够接收副信道时,传输信号1114可以是I2C串行数据1112和发射机时钟1126的经中继版本。当要提供副信道时,可使用一个或多个调制技术来调制I2C串行数据1112和发射机时钟1126中的一者或两者。在一些实例中,编码器/调制器1104的调制电路可被配置成控制线驱动电路(诸如开漏驱动器1106)的操作。线驱动电路可使用推挽式驱动器或者适用于所采纳的一个或多个调制方案的模拟和数字电路的某个其他配置来实现。在一个示例中,控制信号和/或参考电压电平1130可由编码器/调制器1104提供以控制和/或调制在SCL和/或SDA信号导线1120、1122上传送的信号的电压电平。

在接收机1140处,一组线接收机1142可包括多种类型的接收方设备。这些接收方设备可包括差分接收机,该差分接收机可检测接收自SCL信号导线1120和/或SDA信号导线1122的信号的电压调制。在一个示例中,单端接收机可忽略调制并且对接收自SCL信号导线和SDA信号导线1122的遵循或兼容I2C规范的信号作出响应。同时,差分接收机可对SCL信号导线1120和SDA信号导线1122的电压电平进行比较以提取数字差分信号910、912(参见图9)。在另一示例中,差分接收机对SCL信号导线1120和/或SDA信号导线1122的电压电平进行比较以提取经模拟FM编码的信号1002(参见图10)。相应地,该组线接收机1142可向解码器/解调器1144提供多个接收信号1150。

解码器/解调器1144可被配置成从SDA信号导线1122提取I2C串行数据1152并且提供从SCL信号导线1120提取的I2C接收时钟。解码器/解调器1144可产生多个接收时钟1160,包括I2C接收时钟和可被用于控制从副信道信令解调或解码的数据1156的解串行化的解调时钟。解串行化可由主信道解串器1146执行以提供输出主数据1154并且由副信道解串器1148执行以提供输出副数据1158。

解码器/解调器1144可检测调制或叠加在SCL信号导线1120和/或SDA信号导线1122上传送的I2C兼容信号上的副信道信号的存在。接收电路1142可在用于副信道信令的调制形式包括对数字SCL和/或SDA信号导线1120和/或1122的电压电平的某种类型的调制时提供分开的I2C兼容信号和调制信号。解码器/解调器1144可包括用于检测I2C信号中的定时差异和/或检测插入在I2C信号上的附加短历时脉冲的存在或不存在的电路。可使用计数器、定时器、单稳延迟等来检测定时差异。对定时差异的检测可在每个时钟循环中和/或在I2C主信道上传送的连贯字节之间确定。

图12包括解说用于I2C总线上的数据通信的方法的流程图1200。该方法的各个步骤可由传送方设备执行,该传送方设备包括图2中解说的I2C从动电路202、图3中的解说的设备304、314或316、和/或本文描述的其他设备的某一组合。

在步骤1202,该设备可根据I2C总线协议在I2C信号中编码主数据。

在步骤1204,该设备可在I2C信号中编码副数据以获得多信道信号。

在步骤1206,该设备可在I2C总线上传送该多信道信号。该多信道信号可与I2C总线协议兼容。

在一个示例中,可通过如下方式在I2C信号中编码副数据:在差分信号中编码副数据,其中该差分信号包括互补信号对;以及通过在I2C总线的SDA上传送该互补信号对中的一个信号并且在I2C总线的SCL上传送该互补信号对中不同的一个信号来在I2C总线上传送该差分信号。当SDA和SCL两者均处于高逻辑电平时,可在I2C总线上传送差分信号。当在SDA和SCL上传送差分信号时,SDA和SCL可具有大于由I2C总线协议为高逻辑电平指定的最小电压并且小于由I2C总线协议为高逻辑电平指定的最大电压的电压电平。差分信号可在I2C总线空闲的时间段期间传送。

在另一示例中,可通过如下方式在I2C信号中编码副数据:在FM信号中编码副数据,以及在I2C总线的SDA和SCL中的一者或多者上传送FM信号。FM信号可具有小于由I2C兼容设备的接收机使用的施密特触发器输入的最小滞后电压电平的振幅。该最小滞后电压电平在I2C总线协议中定义。

在另一示例中,可通过将或者制止将短脉冲插入在I2C总线的SDA或SCL上传送的信号来在I2C信号中编码副数据。当要被传送的副数据的比特值具有第一值时可以插入短脉冲,并且当要被传送的副数据的比特具有第二值时不插入短脉冲。例如,在I2C信号中编码副数据可以包括将或者制止将短脉冲插入到在SCL上传送的时钟信号的多个半循环。短脉冲可具有比由I2C总线协议为时钟信号的脉冲指定的最小历时小的历时。短脉冲可具有比由I2C总线协议为要被I2C接收机忽略的毛刺所指定的最大历时小的历时。

在另一示例中,可通过对在I2C总线的SCL上传送的时钟信号进行脉宽调制来在I2C信号中编码副数据。结果得到的经脉宽调制的时钟信号的每个高周期具有超过由I2C总线协议指定的SCL时钟的最小高周期的历时,并且经脉宽调制的时钟信号的每个低周期具有超过由I2C总线协议指定的SCL时钟的最小低周期的历时。

在另一示例中,可通过如下方式来在I2C信号中编码副数据:当要被传送的副数据的比特具有第一值时在编码主数据的一对连贯帧之间传送跟随有开始状况的停止状况,以及当要被传送的副数据具有第二值时在该对连贯帧之间传送重复的开始状况。

在另一示例中,可通过如下方式在I2C信号中编码副数据:当要被传送的副数据的比特具有第一值时在一对连贯帧之间传送重复的开始状况,其中该重复的开始状况具有两个预定义历时中的第一预定义历时;以及当要被传送的副数据的比特具有第二值时在该对连贯帧之间传送具有两个预定义历时中的第二预定义历时的重复的开始状况。

图13是解说采用处理电路1302的装置的硬件实现的简化示例的示图1300。该处理电路通常具有处理器1316,处理器1316可包括微处理器、微控制器、数字信号处理器、定序器和状态机中的一者或多者。处理电路1302可以用由总线1320一般化地表示的总线架构来实现。取决于处理电路1302的具体应用和整体设计约束,总线1320可包括任何数目的互连总线和桥接器。总线1320将包括一个或多个处理器和/或硬件模块(由处理器1316,模块或电路1304、1306和1308,可配置成通过包括多个连接器或导线的I2C总线1314进行通信的线接口电路1312,以及计算机可读存储介质1318表示)的各种电路链接在一起。总线1320还可链接各种其他电路,诸如定时源、外围设备、稳压器和功率管理电路,这些电路在本领域中是众所周知的,且因此将不再进一步描述。

处理器1316负责一般性处理,包括执行存储在计算机可读存储介质1316上的软件。该软件在由处理器1316执行时使处理电路1302执行上文针对任何特定装置描述的各种功能。计算机可读存储介质1318还可被用于存储由处理器1316在执行软件时操纵的数据,包括从在I2C总线1314上传送的码元中解码的数据。处理电路1302进一步包括模块1304、1306和1308中的至少一个模块。模块1304、1306和1308可以是在处理器1316中运行的软件模块、驻留/存储在计算机可读存储介质1318中、是耦合至处理器1316的一个或多个硬件模块、或是其某个组合。模块1304、1306和1308可包括微控制器指令、状态机配置参数、或其某种组合。

在一个配置中,用于无线通信的装置1300包括配置成根据I2C总线协议在I2C信号中编码主数据的模块和/或电路1304、配置成在I2C信号中编码副数据以提供多信道信号的模块和/或电路1306、以及配置成根据I2C总线协议在I2C总线1314上传送该多信道信号的模块和/或电路1308。

图14包括解说用于I2C总线上的数据通信的方法的流程图1400。该方法的各个步骤可由接收方设备执行,该接收方设备包括图2中解说的I2C从动电路202、图3中的解说的设备304、314或316、和/或本文描述的其他设备的某一组合。在步骤1402,该设备可根据I2C总线协议解码接收自I2C信号的主数据。

在步骤1404,该设备可从I2C信号解码副数据。可使用不同于I2C总线协议的协议来解码副数据。I2C信号遵循I2C总线协议。

在一个示例中,解码副数据包括从I2C总线的SDA和SCL接收差分信号对,其中SDA和SCL携带该差分信号对中不同的差分信号;以及从该差分信号对解码副数据。当SDA和SCL两者均处于高逻辑电平时,可从I2C总线接收该差分信号对。当从I2C总线接收该差分信号对时,SDA和SCL可具有大于由I2C总线协议为高逻辑电平指定的最小电压并且小于由I2C总线协议为高逻辑电平指定的最大电压的电压电平。可在I2C总线空闲的时间段期间接收该差分信号对。

在另一示例中,解码副数据包括在I2C总线的SDA或SCL中的至少一者处接收FM信号,以及从该FM信号解码副数据。FM信号可具有小于在I2C总线协议中所定义的I2C兼容设备的接收机中的施密特触发器输入的最小滞后电压电平的振幅。在接收FM信号时,SDA和SCL的电压可以大于由I2C总线协议为高逻辑电平指定的最小电压并且小于由I2C总线协议为高逻辑电平指定的最大电压。

在另一方面,解码副数据包括确定在接收自I2C总线的SDA和SCL的信号中存在或不存在短脉冲,以及基于短脉冲的存在或不存在来解码副数据。每个短脉冲可具有小于由I2C总线协议为要被忽略的毛刺所指定的最大历时的历时。

在另一示例中,解码副数据包括确定在接收自I2C总线的SCL的时钟信号的多个半循环中存在或不存在短脉冲,以及基于短脉冲的存在或不存在来解码副数据。每个短脉冲可具有小于由I2C总线协议为要被忽略的毛刺所指定的最大历时的历时。

在另一示例中,解码副数据包括解码接收自I2C的SCL的经脉宽调制的时钟信号中的副数据。经脉宽调制的时钟信号的每个高时段具有超过由I2C总线协议指定的SCL时钟的最小高时段的历时,并且经脉宽调制的时钟信号的每个低时段具有超过由I2C总线协议指定的SCL时钟的最小低时段的历时。

在另一示例中,解码副数据包括在I2C总线的SDA上携带主数据的连贯帧之间接收到停止状况和开始状况时确定副数据的比特的第一值,以及在连贯帧之间接收到重复的开始状况时确定副数据的比特的第二值。

在另一示例中,解码副数据包括在I2C总线的SDA上携带主数据的连贯帧之间接收到的重复的开始状况具有第一历时时确定副数据的比特的第一值,以及在重复的开始状况具有第二历时时确定副数据的比特的第二值。

图15是解说采用处理电路1502的装置的硬件实现的简化示例的示图1500。该处理电路通常具有处理器1516,处理器1516可包括微处理器、微控制器、数字信号处理器、定序器和状态机中的一者或多者。处理电路1502可以用由总线1520一般化地表示的总线架构来实现。取决于处理电路1502的具体应用和整体设计约束,总线1520可包括任何数目的互连总线和桥接器。总线1520将包括一个或多个处理器和/或硬件模块(由处理器1516,模块或电路1504、1506和1508,可配置成通过包括多个连接器或导线的I2C总线1514进行通信的线接口电路1512,以及计算机可读存储介质1518表示)的各种电路链接在一起。总线1520还可链接各种其他电路,诸如定时源、外围设备、稳压器和功率管理电路,这些电路在本领域中是众所周知的,且因此将不再进一步描述。

处理器1516负责一般性处理,包括执行存储在计算机可读存储介质1516上的软件。该软件在由处理器1516执行时使处理电路1502执行上文针对任何特定装置描述的各种功能。计算机可读存储介质1518还可被用于存储由处理器1516在执行软件时操纵的数据,包括从在I2C总线1514上传送的码元中解码的数据。处理电路1502进一步包括模块1504、1506和1508中的至少一个模块。模块1504、1506和1508可以是在处理器1516中运行的软件模块、驻留/存储在计算机可读存储介质1518中、是耦合至处理器1516的一个或多个硬件模块、或是其某个组合。模块1504、1506和1508可包括微控制器指令、状态机配置参数、或其某种组合。

在一个配置中,用于无线通信的装置1500包括配置成根据I2C总线协议来解码接收自I2C信号的主数据的模块和/或电路1504、配置成从I2C信号解码副数据的模块和/或电路1506、以及配置成从I2C总线1514接收I2C信号并且分开和/或解调与经编码的主和副数据I2C信号相关联的信令的模块和/或电路1508。

应理解,所公开的过程中各步骤的具体次序或层次是示例性办法的解说。应理解,基于设计偏好,可以重新编排这些过程中各步骤的具体次序或层次。所附方法权利要求以示例次序呈现各种步骤的要素,且并不意味着被限定于所给出的具体次序或层次。

提供先前描述是为了使本领域任何技术人员均能够实践本文中所描述的各种方面。对这些方面的各种改动将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。因此,权利要求并非旨在被限定于本文中所示出的方面,而是应被授予与语言上的权利要求相一致的全部范围,其中对要素的单数形式的引述除非特别声明,否则并非旨在表示有且仅有一个摂,而是一个或多个摂。除非特别另外声明,否则术语“一些”指的是一个或多个。本公开通篇描述的各种方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文中所公开的任何内容都并非旨在贡献给公众,无论这样的公开是否在权利要求书中被显式地叙述。没有任何权利要求元素应被解释为装置加功能,除非该元素是使用短语“用于…的装置”来明确叙述的。

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