威尼斯人棋牌-威尼斯欢乐娱人城-首页

具有多设备消息传输的总线通信的制作方法

文档序号:10697582
具有多设备消息传输的总线通信的制作方法
【专利摘要】描述了用于从与具有公共数据线的通信总线相连的多个从设备读取或者向所述多个从设备写入的方法和系统。所述从设备映射到虚拟设备地址,并且由主设备通过用信号通知开始条件和虚拟设备地址来发起通信。映射到所述虚拟设备地址的每个从设备识别与所述虚拟设备地址相关联的从设备中的寄存器,并且在通信内的各个预定时隙中针对其识别出的寄存器或者针对之前分配给从设备的相应虚拟寄存器地址,顺序地对总线实行读或写操作。
【专利说明】
具有多设备消息传输的总线通信
技术领域
[0001] 本申请总体设及一种通信总线,更具体地,设及一种用于从多个设备获得数据的 通信协议。
【背景技术】
[0002] 存在与总线通信相关(尤其是针对电路板级忍片间通信)的多个通信协议。在运些 总线架构的一些中,存在单个公共数据线,并且协议对到数据线的控制和访问进行管理。一 个普遍的示例是内置集成电路(I化)总线通信协议。一些开发工作旨在规定可W被称为I3c 的I2c改进版本。
[0003] I2C协议的缺点在于,如果被读取或写入的消息的比特数短,则存在显著的信令开 销。当总线上的主设备被配置为周期地或频繁地从多个从设备读取传感器数据或其它少量 数据时,协议控制开销成本会压倒被读取或写入的数据的尺寸,导致其传输速率是仅发送 原始设备数据且不存在协议所需的任何控制信息的情况的传输速率的3到4倍,运样是低效 的。
【附图说明】
[0004] 作为示例,参考示出了本发明的示例实施例的附图,在附图中:
[0005] 图1示意地示出了多设备两线双向通信总线的一个示例;
[0006] 图2A和图2B示出了 I2C兼容总线上的分别用于写操作的示例结构和用于读操作的 示例结构;
[0007] 图3示出了示例主设备和示例从设备的简化框图;
[000引图4示意地示出了虚拟设备寄存器和从设备寄存器之间的别名
[0009] 图5W流程图的形式示出了用于在总线上通信的一个示例方法;
[0010] 图6示意地示出了根据本申请一个方面的用于读操作的示例结构;
[0011] 图7示出了用于在具有公共数据线的通信总线上在主设备和多个从设备之间进行 通信的示例方法;
[0012] 图8示出了用于在具有公共数据线的通信总线上在主设备和多个从设备之间进行 通信的另一示例方法;
[0013] 图9示意地示出了用于虚拟线通信的示例结构;
[0014] 图10W流程图形式示出了用于虚拟线通信的示例方法;
[001引图11A和图11B示出了在单个消息中包括多个单独从ACK响应的示例消息结构;W 及
[0016] 图11C示出了从设备(而不是主设备)在读期间发送ACK比特的示例消息结构。
[0017] 在不同的附图中已经使用类似的附图标记来表示类似的组件。
【具体实施方式】
[0018] 在一个方面,本申请描述了一种主设备从与具有一条或多条公共数据线的通信总 线相连的多个从设备读取或者向所述多个从设备写入的方法,其中,每个从设备具有关联 的从设备地址。所述方法包括:向每个从设备提供与任何从设备地址不同的虚拟设备地址 由所述主设备通过在数据线上用信号通知通信的开始并接着用信号通知所述虚拟设备地 址,来在所述总线上发起通信;从设备检测所述通信的开始W及所述虚拟设备地址,并且作 为响应,识别与所述虚拟设备地址相关联的从设备中的寄存器,并且每个从设备在所述数 据线上通信期间的各个预定时隙中,针对其识别出的寄存器顺序地实行总线读/写操作;W 及由所述主设备通过用信号通知所述通信的结束来终止所述通信。
[0019] 在另一方面,本申请描述了一种总线通信系统,包括:主设备;多个从设备,每个从 设备具有关联的从设备地址,并且存储了与任何从设备地址都不同的虚拟设备地址;通信 总线,具有与所述主设备和所述多个从设备互连的一条或多条公共数据线。所述主设备通 过在数据线上用信号通知通信的开始并接着用信号通知所述虚拟设备地址,来在总线上发 起通信。所述从设备检测所述通信的开始W及所述虚拟设备地址,并且作为响应,识别与所 述虚拟设备地址相关联的从设备中的寄存器,并且在所述数据线上通信期间的各个预定时 隙中,针对其识别出的寄存器顺序地实行总线读/写操作。所述主设备通过用信号通知所述 通信的结束来终止所述通信
[0020] 在又一方面,本申请描述了存储计算机可实行程序指令的非瞬时计算机可读介 质,所述计算机可实行程序指令在被实行时将处理器配置为实行所描述的方法。
[0021] 本领域普通技术人员将通过结合附图阅读W下示例的描述,来理解本申请的其他 方面和特征。
[0022] 在本申请中,术语"和/或"旨在覆盖列出元素的所有可能组合和子组合,包括列出 元素的单独的任意一个、任意子组合或所有元素,而不是必须排除附加元素。
[0023] 在本申请中,短语"…或…中的至少一个"旨在覆盖列出元素的任意一个或多个, 包括列出元素的单独的任意一个、任意子组合或所有元素,而不是必须排除任何附加元素, 且不是必须要求所有元素。
[0024] 文本使用的术语"寄存器"旨在被广义地说明为可寻址存储器位置。不应将其限制 为特定类型的存储器类型或者专用集成电路存储器。尽管在一些情况下,可W使用离散硬 件存储器组件来实施寄存器,但是在一些情况下可W将寄存器实施在与处理单元或其它控 制集成的存储器中。在此意义上,对从从设备中的寄存器读取或者向所述寄存器写入的指 代可W表示可W使用存储器地址来访问的任意存储器的特定位置。在一些实施例中,对寄 存器的指代可W表示化k特存储器位置(字节),在其它实施中可W是其它尺寸。
[0025] 本文使用的术语"虚拟设备"旨在被广义地说明为表示可W作为备选设备地址被 分配给设备的可编程设备地址,从而使设备能够响应于该备选设备地址。
[00%]术语"别名数据"旨在被广义地说明为到虚拟设备地址的读取或写入,并且使一个 或多个设备将在与虚拟设备通信时被访问的寄存器地址转换为对虚拟设备地址进行响应 的单独设备中的相同或其它寄存器地址。尽管结合I2C总线通信协议描述了下文的许多实 施例W及利用该协议的后向兼容,但是将清楚的是,一些实施例可W符合和/或与其它总线 通信协议(包括由MIPI (移动工业处理器接口联盟)开发的I3C协议传感器总线 (SensorWire))后向兼容。
[0027] 在电子设备和系统中,总线通信通常用于设备内或设备间命令和数据信令传输。 例如,I2C总线是已经实际上成为控制总线标准的双向2线总线。一条线用于时钟,一条线用 于数据。在"I化-bus specification and user manuar,UM10204,Rev.6,Ap;ril 4,2014, NXP Semiconductors N.V.中描述了 1?总线(在下文称为I2C),其内容通过引用合并于此。
[0028] I2C及具有类似结构的变体的缺点在于存在显著的信令开销,尤其是在短消息的 情况下。例如,1?结构假设总线上的主设备首先利用开始符号(在I2C的情况下,当时钟信号 为高时在数据线上的高到低转变)发起通信。在开始符号之后的是7或10位的从设备地址, 其后接着指示读或写命令的比特。运随后被从设备确认,之后,由主设备(在写情况下)或由 从设备(在读情况下)将数据置于总线上。每个字节分别被从设备或主设备确认。为了结束 通信序列,主设备发送停止符号。
[0029] 在许多商业实施例中,读和写操作还指定了特定从设备中的寄存器地址。运意味 着进一步的开销和确认比特,W及在读操作情况下的重新开始符号W及从设备地址的重新 发送。该通信协议可W导致需要传输超过26比特的报头数据W从寄存器读取单个信息字 节。在运种情况下,由于协议开销,协议相对于传输效率而言是非常低效的。
[0030] 在一些情况下,主设备(例如控制器、处理器或其它运样的集成电路设备)可W对 多个传感器设备进行周期性的采样,W实现连续监视。对所选数目的地址的规则轮询可W 导致与被读取的数据的量相比的大量传输开销。
[0031] I化提供了在一个消息内(即,在一个报头/报尾内)读/写从设备中的多个寄存器 的能力。然而,该机制限制于寄存器都被顺序地寻址且都在同一从设备中的情况。
[0032] I化还提供用于使用全局地址0000000来向所有设备进行一次写入的机制,但是该 机制主要针对重置总线上的从设备。该机制针对广播写操作的益处限制于利用到相同寄存 器地址的相同数据来对所有从设备进行更新的情况。除了特殊边角情况W外,其不能用于 读操作,因为从设备将覆写组合的响应。
[0033] 现在参照图1,其示意地示出了两线双向总线架构10的示例。总线架构10包括连接 到数据线14和时钟线16(例如I2C中的SDA线和SCL线)的至少一个主设备12。在该示例中仅 示出了一个主设备12。
[0034] 多个从设备20(被示出为20a、20b、20c和20d)附着于总线。从设备20可W包括任意 数量的可变复杂度的电子设备。非限制示例包括A/D和D/A转换器、I/O端口、RAM、邸PROM、智 能卡、调谐电路、调制解调器、溫度传感器、压力传感器、光传感器、加速度计、巧螺仪、磁力 计、其它传感器、开关、驱动器、时钟等。
[0035] 在一些示例中,数据线14和时钟线16可W通过上拉电阻器22连接到正电压源。在 一些实施例中,如果使用特殊通信方案(例如,NRZI (不归零倒相)、DDR(双数据速率,使用两 个时钟沿用于传输)或如在MIPI I3C SensorWire总线协议中描述的Ξ符号编码(基于两条 数据线发送信息并且使用任意数据改变作为相应时钟改变的指示)),则PM0S晶体管或其它 有源器件21可W布置在上拉电阻器和总线之间,W能够停用运些电阻器。运使得总线能够 与更早的集电极开路/漏极开路拓扑后向兼容,并且可W与诸如NRZI的更新的技术前向兼 容。
[0036] 现在参照图2A和图2B,其示出了分别用于写操作50的示例结构和用于读操作70的 示例结构。运些示例操作50、70示出了 I2C兼容总线上的通信。在阴影部分中示出了主设备 12(图1)的贡献,并且在非阴影部分中示出了从设备20(图1)的贡献。
[0037] 在运两种情况下,应注意的是,由主设备利用开始符号其后接着7比特的从设备地 址发起通信。在一些实施例中,I化从设备地址可W具有10比特,但是通常为7比特的地址。 其它总线通信协议可W允许其它长度的地址。
[0038] 消息开始于开始事件("S")并且结束于停止事件("P")。在寄存器读操作的情况 下,通常会发出重复的开始事件("Sr")。
[0039] 在从设备地址之后是指定主设备是实行读命令还是写命令的读/写比特。在传统 示例中,逻辑零指示写命令,逻辑1指示读命令。在示例中,在针对写操作50和读操作70两者 的通信的第一阶段,使用写选择,因为读操作70设及首先使用写命令其后跟着重新开始来 指定特定寄存器,然后实行实际的读操作。
[0040] 被通信寻址的从设备随后利用确认比特(或者不确认比特)来进行响应。从设备通 过将数据线拉低来发送确认比特(ACK)。通过将数据线维持为高(运在设备只是不响应或者 出现错误的情况下发生)来传输"不确认"或者"NACK"比特。
[0041] 假设通信被所寻址的从设备确认,则主设备发送将被从其读取或者向其写入的寄 存器地址。在写操作50的情况下,写操作50之后跟着来自于从设备的ACK比特,并且主设备 随后发送将被写入到寄存器的数据。将被写入到寄存器的数据的每个字节被来自于从设备 的ACK比特确认。当完成了写操作50时,主设备发送停止符号W用信号通知通信的结束。
[0042] 对于写操作70,在发送了寄存器地址并且从从设备接收到ACK之后,主设备发送重 复的开始符号(在结束通信之前重复的发送开始符号),之后再次发送从设备地址。此时,在 从设备地址之后是读比特,W用信号通知之前提供的寄存器地址将作为读命令的对象。运 被从设备确认,该从设备随后输出与寄存器地址相对应的寄存器内容。主设备随后利用ACK 或NACK符号确认寄存器数据。来自于主设备的ACK符号指示从设备应该输出寄存器数据的 进一步的字节。当实行多个读取操作时,寄存器数据的进一步的字节是按照寄存器寻址顺 序的下一个字节,即,在相同消息中主设备仅可W读取从设备的顺序寻址的寄存器。读取序 列外寄存器地址将需要主设备结束此次通信,并且发起新的通信来读取新的寄存器地址。 一旦主设备读取了需要的所有数据,它就发送NACK比特W及随后的停止符号。
[0043] 根据本申请的一个方面,可W由主设备和参与从设备实施合并消息机制,W在一 个消息内从多个从设备读取或者向多个从设备写入,从而减少与多设备读/写操作相关联 的开销。针对运些参与从设备之中的单独从设备的数据被复用进分配给单独设备的时隙, W形成单个长消息。在一些实施例中,时间复用可W基于预定序列,或者被选为若干可能预 定序列的集合之一。假设组合的多设备消息使用一般的报头和报尾,则其将看起来像是兼 容的总线通信,例如1?通信。
[0044] 在一些示例实施例中,"虚拟从设备地址"被定义并被传输给参与从设备。在一些 情况下,虚拟从寄存器或者多个寄存器可W被定义,并且每个虚拟从寄存器映射到或者别 名为相应真实从设备的真实寄存器。通过使用虚拟从设备地址来进行多设备消息传输,该 机制与现有的总线通信协议后向兼容。多设备消息传输将看起来像是传统的总线协议消息 传输,并且非参与从设备(例如不支撑该新功能的经典I2C设备)将忽视多设备消息(因为多 设备消息不针对它们)。
[0045] 在下文的示例中,术语"消息"和"通信"可W互换使用,W表示读/写数据的多设备 交换。单个消息或通信开始于开始符号,并且结束于停止符号。如果消息或通信使用虚拟设 备地址,并且在时间复用序列中多于一个从设备响应于该虚拟设备地址,则该消息或通信 是多设备通信。
[0046] 现在将参照图3,其W框图形式示出了示例主设备112和示例从设备120。示例主设 备112和从设备120通过具有数据线14和时钟线16的两线通信总线相连。尽管为了便于示出 在图3中仅示出了一个主设备112和一个从设备120,但是将清楚的是,许多实施例的特征在 于连接到同一通信总线的多个主设备和/或从设备。
[0047] 主设备112包括处理单元118、存储器116和物理总线接口 114。物理总线接口 114可 W包括用于连接到和操控通信总线的电路。在一些示例中,电路可W包括触发器、缓冲器、 毛刺去除电路或既用于正确地在总线上检测电压、符号和/或脉冲沿又用于在总线上断言 符号、电压和/或脉冲沿的其它组件。在一些示例中,物理总线接口 114允许主设备112在处 理单元118的操作控制下拉数据线14和时钟线16中的任意一条或两条,W将其从高DC电压 转换为低DC电压或反之亦然。作为示例,主设备可W在运行在1.8V和3.3V电压的系统之间 进行转换。
[004引处理单元118可W包括用于控制主设备112的操作的一个或多个处理器。在一些示 例中,处理单元118可W包括在处理器可实行程序指令的控制下进行操作的微处理器或微 控制器,其中,所述指令使处理单元118实行经由总线对从设备120进行读取或写入的一个 或多个操作。存储器116可W与处理单元118集成或者与其分开。存储器116可W包括多于一 个存储器。存储器116可W包括用于存储数据和/或处理器可实行程序指令的易失性和/或 非易失性存储器位置。
[0049] 从设备120包括处理单元122、物理总线接口 124和寄存器126。在各实施例中,处理 单元122可W使用实现控制处理的微处理器、微控制器、现场可编程口阵列、EEPR0M、专用集 成电路、离散逻辑组件或其它运种设备来实现。在许多实施例中,处理单元122包括包含处 理器可实行程序指令的集成或离散存储器,当所述指令被实行时使处理器实行特定功能或 操作,所述特定功能或操作可W包括用于本文描述的总线通信的功能或操作。
[0050] 寄存器126是能够存储数据的可寻址存储器位置。一般地,寄存器126的至少一些 部分能够被主设备112和/或从设备120读取和写入。
[0051] 从设备120可W包括用于实施其意图功能的各种其他组件,例如但不限于用于获 得之后被存储在一个或多个寄存器126中的数据的各个传感器(未示出)。
[0052] 现在将参照图4,其W框图形式示出了从设备120(图3)的寄存器126的示例实施例 W及到"虚拟"设备的寄存器136的映射。在该示例中,每个字节大小的数据位置具有一个地 址。虚拟设备寄存器地址是例如地址M、M+l、M+2等。从设备将数据存储在一个或多个寄存器 中,所述一个或多个寄存器可W被主设备读取或者由主设备写入。例如,寄存器126示出了 从设备1寄存器1、从设备2寄存器2等。
[0053] 在存储器中的另一指定位置中,从设备可W存储一个或多个虚拟设备寄存器地址 与一个或多个从设备寄存器之间的对应关系。运可W被称为"别名"数据。别名数据可W由 主设备提供。在该示例中,别名数据表明虚拟设备寄存器地址Μ与从设备1寄存器1相关。寄 存器126还可W存储表明虚拟设备寄存器地址Μ+1映射到从寄存器地址从设备1寄存器2的 别名数据。在一些实施例中,与其它从设备相关的别名数据可W或者可W不存储在从设备1 中。在一些实施方式中,组合消息可w设及从一个从设备传输,在其它实施方式中,组合消 息可W设及从多于一个从设备传输。
[0054] 在另一实施例中,从设备存储器可W包含序列数据150,其定义了将在单个消息中 被主设备使用虚拟设备地址从其读取或向其写入的从设备和/或从设备寄存器的一个或多 个可选序列。在一些实施例中,序列数据150可W定义状态机。将在下文描述设及预定义序 列的示例实施方式。
[0055] 现在将参照图5,其W流程图形式示出了用于在总线上通信的示例方法200,其中, 总线与一个或多个主设备W及多个从设备互连。每个从设备具有其自身的唯一从设备地 址。在该实施例中,通信总线是1?总线。
[0056] 在操作202,具有两个或多个从设备的子集与虚拟设备地址相关联。虚拟设备地址 与任何从设备地址都不同。当主设备希翼在一次通信中从子集中的每个从设备读取或者向 每个从设备写入时,主设备使用虚拟设备地址。在一些实施例中,关联可W通过将虚拟设备 地址写入子集中的每个从设备中的指定寄存器来在从设备的子集中配置。在一些实施例 中,从设备的子集可W被预编程W虚拟设备地址。
[0057] 在一些实施方式中,操作202还可W包括存储用于一个或多个从设备的一个或多 个寄存器的别名数据。在一些情况下,从设备将虚拟设备地址与其存储器中的特定寄存器 相关联,而不需要附加别名数据。在其它情况下,从设备可W存储将一个或多个虚拟设备地 址寄存器映射到一个或多个真实从设备寄存器的别名数据。
[005引在操作204,主设备评估是否需要发起总线上的通信。如果需要,则在操作206,主 设备确定是否需要多设备消息。如果不需要,则实施常规I2C通信,如操作208所示。但是如 果确定需要多设备消息,则在操作210,主设备选择虚拟设备控制方案。在一些实例中,主设 备可W具有可W从中选择的多于一个控制方案。例如,不同虚拟设备地址可W对应于不同 (可能是重叠的)从设备子集或从设备子集中的不同寄存器,并且选择可W取决于哪些从设 备需要被读取或写入。在另一示例中,不同虚拟设备地址可W对应于读/写的不同序列和/ 或用于实行多设备读/写操作的不同状态机。所述不同序列可W对应于从设备和/或从寄存 器的不同子集。
[0059] 在操作212,主设备在总线上发起并实行所选择的通信。主设备随后在操作214确 定是否停用总线,如果是,则在操作216停用总线。
[0060] 图6示意地示出了根据本申请一个方面的用于读操作的示例结构250。该示例结构 250基于W下实施例中,其中,至少一个从设备包含将从设备寄存器映射到虚拟设备寄存器 地址的别名数据。
[0061] 用于通信的示例结构250开始于由发起通信的主设备输出的开始符号。其后是虚 拟设备地址和读/写比特。在该示例中,出现写比特,其后是来自于识别出虚拟设备地址的 从设备的AO(比特。应注意,在子集中的所有从设备(即,识别出虚拟设备地址的从设备)提 供ACK回复。也就是说,子集中的每个从设备将数据线拉低。如果子集中的设备之一不操作, 则只要子集中的从设备中的至少一个从设备拉低了数据线,就不能检测到确认虚拟设备地 址的失败。
[0062] 在ACK之后,由主设备提供虚拟寄存器地址。虚拟寄存器地址被子集中的从设备接 收,该从设备之后查询别名映射数据(或序列选择逻辑)W确定哪个真实从寄存器映射到虚 拟寄存器地址。在虚拟寄存器地址之后,子集中的从设备发送ACK(在该示例中,映射到虚拟 设备地址的子集中的所有从设备利用ACK进行响应,而不仅仅是包含与虚拟寄存器地址相 对应的真实从寄存器的从设备,从而保持与1?协议兼容)。
[0063] 在别名数据的情况下,从寄存器映射到虚拟寄存器地址的序列。W运种方式,通过 W最低虚拟寄存器地址开始,主设备可W在单个消息中连续地读取不同从设备/寄存器中 的每一个,因为它们被映射到虚拟寄存器地址的顺序集合。当然,假设主设备不需要读取与 低处的虚拟寄存器地址相对应的从寄存器(因为重复读操作将从开始点开始且根据地址向 上递增地读取连续寄存器),主设备可W选择除数字上最低的地址W外的虚拟寄存器地址 开始。
[0064] 仍然参照图6,在来自于从设备子集的ACK之后,主设备发送重复的开始符号,其后 再次跟着虚拟设备地址W及读比特。它被子集中的从设备确认,该从设备之后按照根据别 名数据的顺序,开始从别名的从设备寄存器提供数据。具体地,与更早之前在通信中提供的 虚拟寄存器地址相对应的从设备寄存器被读取,并且其内容被置于总线上。如果主设备意 图继续按照顺序读取从设备寄存器,则主设备利用ACK进行响应。作为子集的一部分的从设 备明白运意味着第一读取的结束,并且递增内部虚拟寄存器地址。别名信息提供了虚拟寄 存器地址和特定从设备/从寄存器组合之间的映射。该从设备之后向总线输出相应的寄存 器数据。读取序列继续,直到主设备发送NACK(使数据总线保持为高)并且随后利用停止符 号终止消息。
[0065] 在一个实施例中,该结构可W被修改为解决所有从设备向虚拟设备地址发送ACK, 从而阻止主设备知道从设备之一是否丧失能力的实际问题。在该示例实施例中,该结构在 传输的开始或结束附近提供一个或多个字节,其中,每个从设备按照预定义序列发送ACK, 从而用信号通知每个设备激活且可用。W运种方式,主设备可W确定是否所有设备都对消 息作出响应。参照图11A,其示出了消息的一个示例结构252,在所述消息中,从设备提供了 确认的单独序列。在另一实施例中,主设备可W发出组合消息,但是当该消息仅针对单个设 备时,此时ACK条件可W是唯一的。
[0066] 在其它实施例中,来自于每个单独设备的响应中的比特(例如每个响应中的第一 个比特或最后一个比特)将表明该设备是否确认了虚拟设备地址。图11B示出了具有运种特 征的消息的示例结构254。相比于将组合的ACK响应添加到报头中,该结构可W更简单地实 现。在一些实施例中,读序列中的主ACK比特可W被从ACK比特所替代。
[0067] 在另一实施例中,如图11C中所示,在读命令期间,在从一从设备实行了读取之后, ACK比特的驱动器可W是该从设备而不是主设备。运在使用有限预编程序列来控制读取的 情况下仍然可W用于消息的结束,因为从设备将知道最后的设备何时进行了响应或者最后 的寄存器何时被读取。因此,不需要主设备发送NACK,从而禁用设备发送任何更多的数据。 此外,在一般情况下,从设备将需要来自于主设备的NACK,W停止发送寄存器数据并且保证 主设备能够发送停止ΓΡ")符号。在该实施例中,可W从在读取序列中设及的每个设备获得 唯一ACK值,而不需要向读取序列添加额外比特。在一些情况下,,为了后向兼容,最后的ACK 时隙可W用信号通知为NACK。
[0068] 现在参照图7,其示出了用于在具有公共数据线的通信总线上在一个或多个主设 备和多个从设备之间进行通信的一个示例方法300。方法300使用结合图6描述的多设备通 信结构250。也就是说,方法300使用别名数据来将虚拟设备寄存器映射到对应的从设备寄 存器。
[0069] 如操作302中所示,虚拟设备地址V被存储在从设备的子集中。在一个实施例中,子 集包括总线上的所有从设备,但是在其它实施例中,子集包括少于总线上的所有从设备的 一个或多个从设备。作为子集一部分的每个从设备被配置为对其自身的从设备地址(Si、 S2、一、Sn)和虚拟设备地址(V)进行响应。别名数据被存储在子集中的每个从设备内。在一些 实施例中,只有与特定从设备本地的从设备寄存器相关的别名数据被存储在该从设备中。 在该实施例中,别名数据将一系列顺序虚拟设备地址映射到从设备地址。作为示例,别名数 据可W指定:
[0070]
[0071] 在操作304,主设备利用开始符号其后跟着虚拟设备地址V在总线上发起通信。主 设备之后指示读或写,从对应于虚拟设备地址的从设备接收ACK,并且指示第一虚拟寄存器 地址。在许多实施例中,虚拟寄存器地址可W是虚拟寄存器地址的序列中的第一地址(例 如,在W上示例中是0000110)。其后再次跟着来自从设备的ACK。
[0072] 操作306和308反映出,如果主设备正在实行读操作,则主设备将发送重复的开始 符号,并接着发送虚拟设备地址,如使用1?协议的典型实施。
[0073] 在操作310,主设备实行多设备读或写操作。操作310首先包括参照操作304的针对 虚拟寄存器地址实行读/写,如操作312所示。如果主设备正在实行读操作,则在操作312,具 有映射到虚拟寄存器地址的从寄存器的从设备在该时隙将来自于该寄存器的数据输出到 总线上。如果主设备正在实行写操作,则在操作312,主设备在该时隙将要被写入的数据放 置到总线上,并且相应的从设备将该数据写入映射到该虚拟寄存器地址的从寄存器。在一 些实施例中,在操作310期间仅寻址单个设备,其优点在于,可W在仍然从该单个设备获得 唯一 ACK响应的同时快速地实行从多个独立寄存器位置的读或写。
[0074] 在操作314,主设备确定多设备读/写操作是否完成。如果没有完成,则在操作316, 虚拟寄存器地址在主设备和从设备中自动递增,主设备发送ACK(在读的情况下),并且重复 操作312,但是针对递增的虚拟设备地址,其别名数据可W映射到不同从设备和不同从设备 寄存器。
[0075] 当完成了多设备读操作时,主设备向总线输出NACK和停止符号W用信号通知消息 的结束。类似地,在多设备写操作结束时,最后的从设备将发送ACK并且用信号通知写序列 的结束。
[0076] 在另一示例实施例中,虚拟设备地址可W与从设备/寄存器的预定义序列相关联, 从而当主设备从虚拟设备地址读取或者向虚拟设备地址写入时,其被理解为按照预定义时 间复用序列调用与关联的从设备/寄存器相关的一系列关联顺序读/写操作。在该实施例 中,单个消息可W包括混合在一起的从多个设备读的操作和向多个设备写的操作两者。
[0077] 在另一示例实施例中,序列可W具有与序列的每个阶段/步骤相关联的虚拟设备 寄存器,即,相应虚拟设备寄存器可W映射或别名到要在序列的每个步骤中被读取或写入 的从设备寄存器。因此,主设备可W通过指定与序列的中间步骤/阶段相对应的虚拟设备寄 存器来从序列的一部分读取或者向序列的一部分写入。多设备读/写操作之后将继续从该 步骤/阶段继续进行序列的剩余部分。在一些实施例中,可W忽略I2C读/写比特,并且可W 通过适当地初始化从设备来确定读或写操作,从而实现在单个消息中的读和写操作的组 厶 1=1 〇
[0078] 在另一示例实施例中,可W针对总线上的设备预定义多于一个预定义序列。两个 或更多序列可W设及不同从设备、不同顺序的相同从设备、不同从设备寄存器、不同顺序的 相同从设备寄存器或者它们的任意重叠组合。每个序列具有关联虚拟设备地址,使得主设 备可W通过使用特定序列的关联虚拟设备地址来选择和发起针对该序列的读/写操作。
[0079] 针对一序列的顺序读/写操作的实施包括向包括在该序列中的从设备子集中的每 个从设备提供相应的虚拟设备地址。每个从设备还存储数据或信息,该数据或信息指示从 设备要对读/写操作进行响应的时隙或顺序。例如,在一个实施例中,每个从设备可W被分 配指示其将进行响应的时隙的序数,并且从设备随后均对针对被寻址到虚拟设备地址的通 信中的时隙的数目进行计数,W确定它们将在哪个时隙中进行响应。
[0080] 现在参照图8,其W流程图形式示出了用于在具有公共数据线的通信总线上在主 设备和多个从设备之间进行通信的示例方法400。所述方法设及指定与从设备和/或从设备 寄存器的预定义序列相对应的虚拟设备地址。
[0081 ]如操作402所示,针对至少一个序列,关联虚拟设备地址V存储在所述序列所设及 的从设备的子集中。在一些实例中,序列可W包括与单独从设备寄存器相关的指定的虚拟 设备寄存器,作为用于指定序列的开始点而不是序列的第一设备/寄存器的机制。指示从设 备要在哪个顺序或时序中进行响应的数据也被存储在子集中的每个从设备中。在一些实施 例中,顺序数据还指示要在该时隙中被读取或被写入的特定从设备本地的特定从设备寄存 器。
[0082] 在操作404,主设备利用开始符号其后跟着虚拟设备地址V在总线上发起通信。主 设备之后指示读或写,并且从对应于虚拟设备地址的从设备接收ACK。
[0083] 在一些实施例中,主设备之后还可W指示第一虚拟寄存器地址,W指定序列中的 开始点而不是第一寄存器/设备。
[0084] 将清楚的是,在一些实施例中,虚拟设备地址可W与设及两个或更多序列的顺序 读/写操作相关联,并且在通信中指定的虚拟设备寄存器可W指示哪个序列正在被主设备 调用。也就是说,每个序列可W与虚拟设备寄存器地址相关联,并且虚拟设备地址仅用信号 通知顺序读/写操作要被实行。
[0085] 在一些实施例中,在跟着虚拟从设备地址的序列中发送的第一值将指示要读取寄 存器的哪个序列,从而使多个序列能够被发起,从而使单个虚拟设备地址发起若干序列。
[0086] 如操作406和408所示,如果在已经指定了虚拟设备寄存器地址的情况下主设备正 在实行读操作,则主设备可w发送重复的开始符号,并接着发送虚拟设备地址。如果没有指 定虚拟设备寄存器地址,则主设备可W发起读操作,而不必要求发送重复的开始符号。
[0087] 在操作410,主设备实行多设备读或写操作。操作410首先包括针对所选序列中的 第一从设备/寄存器(或在一些实施例中,针对与关联于在操作404中参考的虚拟寄存器地 址的序列的阶段相对应的从设备/寄存器)实行读/写操作。随后在通信的各个时隙中按照 由所选序列预定义的顺序依次实行每个读/写操作。
[0088] 如操作412或414所示,在序列中设及的从设备监视总线上的通信W识别它们应该 在何时进行响应。在一些实施例中,运可W包括维持时隙的计数,并且将计数与指示分配给 该从设备/寄存器的时隙的存储的数据进行比较。
[0089] 在操作410实行顺序读或写时,主设备确定多设备读/写操作是否完成(其可W或 者可W不对应于序列的结束,例如如果主设备不意图读/写整个序列)。如果多设备读/写操 作完成,则主设备向总线输出停止符号W结束消息。
[0090] 可W清楚的是,本发明方法与现有的I2C协议后向兼容,同时扩展了对设备和寄存 器寻址的方式。运样实现了在许多使用情况下的传输效率的提高。后向兼容确保现有设备 可W与增强设备一样附着于相同总线,并且可W使用现有测试设备(例如总线协议分析 器),而不需要对总线扩展操作的测试、调试和验证操作进行更新。
[0091] 在一些实施例中,向从设备写入或从从设备读取的信息量可W是单个比特。字长 为单个比特那么短的数据分组可W用于控制继电器、致动器或用于从开关读取控制控制 值。在其它情况下,单个比特可W用作虚拟"线",从而使用两条线来连接多个实体W传达多 条信息。作为示例,经常使用多条线来进行控制。运样增加了线的数目W及系统的物理大 小,并且对连接两个或更多设备所需要的I/O引脚的可用数目提出了要求。通过使用单个比 特作为信息承载容器,值可W被视为来自于在两个或更多设备之间的虚拟线的样本,从而 简化了运种系统的编程和物理布局。在许多情况下,由于板的尺寸更小且需要的端子数目 更少,运种系统的成本将显著降低。在一些情况下,同时地实行一个值与另一个值的更新或 读取是重要的,从而经常需要使用多条线。然而,如果接收到的消息存储在缓冲器中,则可 W例如在消息的结束同时更新所有的值。类似地,如果采样的值被存储在缓冲器中,则可W 同时对若干值进行采样,并且避免在采样事件之间的任何偏移。应注意,有线〇R、NRZI和类 似信令传输方案不排除同时的多设备信令传输。因此,单个比特承载信息可W真实地表示 同时来自多个设备的信令,从而解决与多个驱动器相关联的任何问题。在该方面,虚拟线用 作信息的真实隧道。作为示例,多个设备通常被合并在公共中断信令线上。该线可W在之后 被移除,并且作为新的信令方案的一部分,从而节省成本和空间。
[0092] 图9示出了如上所述的基于虚拟线的消息的示例结构500。图10W流程图形式示出 了如上所述的使用虚拟线协议在具有公共数据线的通信总线上在主设备和多个从设备之 间进行通信的示例处理550。示例处理550的特征在于读/写操作的循环560,其中,每条虚拟 线映射到相应从设备中的相应寄存器位置。
[0093] 将清楚的是,根据本申请的处理和系统可W在多个计算设备中实现,包括但不限 于服务器、合适编程的通用计算机和移动设备。处理可W通过App来实现,该App包含用于 将处理器或多个处理器配置为实行本文所述功能的指令。App指令可W存储在任何合适的 非瞬时计算机可读存储器上,包括〔0、341、1?01、闪存等。
[0094] 将理解的是,可W使用标准计算机编程技术和语言来实现本文描述的设备W及实 现所描述的方法/处理的模块、例程、进程、线程或其他App组件。本申请不限于特定处理 器、计算机语言、计算机编程惯例、数据结构、其他运种实现细节。本领域技术人员将认识 到,可W将所描述的处理实现为存储在易失性或非易失性存储器中的计算机可实行代码的 一部分、专用集成忍片(ASIC)的一部分等。
[0095] 可W对所述实施例进行某种调整和修改。因此,上文讨论的实施例被视为是示意 性的而不是限制性的。
【主权项】
1. 一种主设备从与具有公共数据线的通信总线相连的多个从设备读取或者向所述多 个从设备写入的方法,其中,每个从设备具有关联的从设备地址,所述方法包括: 向每个从设备提供与任何从设备地址都不同的虚拟设备地址; 由所述主设备通过在数据线上用信号通知通信的开始并接着用信号通知所述虚拟设 备地址,来在所述总线上发起通信; 所述从设备检测所述通信的开始以及所述虚拟设备地址,并且作为响应, 识别与所述虚拟设备地址相关联的从设备中的寄存器,并且 每个从设备在通信内的相应预定时隙中针对其识别出的寄存器,在所述数据线上顺序 地实行总线读/写操作;以及 由所述主设备通过用信号通知所述通信的结束来终止所述通信。2. 根据权利要求1所述的方法,其中,向每个从设备提供所述虚拟设备地址包括:所述 主设备向所述从设备中的指定寄存器写入所述虚拟设备地址。3. 根据权利要求2所述的方法,其中,写入所述虚拟设备地址还包括:写入相应虚拟寄 存器地址,其中,所述相应虚拟寄存器地址被映射到所述识别出的寄存器。4. 根据权利要求1所述的方法,其中,每个从设备存储针对所述虚拟设备地址的相应虚 拟寄存器地址与所述从设备中的识别出的寄存器之间的关联,并且其中,识别包括读取所 述关联以识别所述寄存器。5. 根据权利要求1所述的方法,其中,每个从设备包含别名数据,所述别名数据将所述 从设备中的从设备寄存器地址映射到相应虚拟设备寄存器地址。6. 根据权利要求1所述的方法,其中,发起还包括:所述主设备在所述数据线上在所述 虚拟设备地址之后用信号通知虚拟设备寄存器地址。7. 根据权利要求6所述的方法,其中,每个从设备包含别名数据,所述别名数据将所述 从设备中的从设备寄存器地址映射到相应虚拟设备寄存器地址,并且其中识别与所述虚拟 设备地址相关联的从设备中的寄存器包括:所述从设备之一确定所述数据线上的所述虚拟 设备寄存器地址对应于映射到所述从设备的从设备寄存器地址的相应虚拟设备寄存器地 址。8. 根据权利要求7所述的方法,其中,所述虚拟设备寄存器地址是顺序的,并且其中每 个从设备顺序地实行总线读/写操作包括:从由所述主设备在所述数据线上用信号通知的 虚拟设备寄存器地址开始,按照虚拟设备寄存器地址的序列的顺序来实行所述总线读/写 操作。9. 根据权利要求8所述的方法,其中,当所述主设备在每个读操作之后输出确认符号 时,所述总线读操作继续所述序列,直到所述主设备输出不确认和停止符号为止。10. 根据权利要求8所述的方法,其中,当相应从设备在每个写操作之后输出确认符号 时,所述总线写操作继续所述序列,直到所述主设备输出停止符号为止。11. 根据权利要求1所述的方法,其中,每个识别出的寄存器与相应虚拟设备寄存器地 址相关联,所述虚拟设备寄存器地址是顺序的,并且其中所述序列包括:与顺序的虚拟设备 寄存器地址依次相对应的从设备寄存器的预定序列。12. 根据权利要求1所述的方法,其中,提供包括:向每个从设备提供多于一个虚拟设备 地址,并且其中每个虚拟设备地址与从设备寄存器的序列相关联,并且其中所述方法还包 括:所述主设备在所述虚拟设备地址之间进行选择以开始读操作和写操作的相应序列。13. 根据权利要求1所述的方法,其中,在没有在各个读/写总线操作之间的开始符号或 重复的开始符号的情况下,实行所述读/写总线操作的序列。14. 根据权利要求1所述的方法,其中,从从设备读取的每个数据分组在来自于作为所 述数据分组的源的所述从设备的确认比特之后或之前,以唯一地确定所述从设备是否正在 参与通信序列。15. -种总线通信系统,包括: 主设备; 多个从设备,每个从设备具有关联的从设备地址,并且存储了与任何从设备地址都不 同的虚拟设备地址;以及 通信总线,具有将所述主设备和所述多个从设备互连的公共数据线, 其中,所述主设备通过在数据线上用信号通知通信的开始并接着用信号通知所述虚拟 设备地址,来在总线上发起通信, 其中,所述从设备检测所述通信的开始以及所述虚拟设备地址,并且作为响应, 识别与所述虚拟设备地址相关联的从设备中的寄存器,并且在通信内的相应预定时隙 中针对其识别出的寄存器,在所述数据线上顺序地实行总线读/写操作,以及 其中,所述主设备通过用信号通知所述通信的结束来终止所述通信。16. 根据权利要求15所述的系统,其中,每个从设备在所述从设备中的指定寄存器中存 储所述虚拟设备地址,以保持所述虚拟设备地址。17. 根据权利要求16所述的系统,其中,每个从设备存储相应虚拟寄存器地址,并且其 中,在每个从设备中,所述相应虚拟寄存器地址被映射到所述识别出的寄存器。18. 根据权利要求16所述的系统,其中,每个从设备存储针对所述虚拟设备地址的相应 虚拟寄存器地址与所述从设备中的识别出的寄存器之间的关联,并且其中,识别包括读取 所述关联以识别所述寄存器。19. 根据权利要求12所述的系统,其中,每个从设备包含别名数据,所述别名数据将所 述从设备中的从设备寄存器地址映射到相应虚拟设备寄存器地址。20. 根据权利要求12所述的系统,其中,所述主设备还用于:在所述数据线上在所述虚 拟设备地址之后用信号通知虚拟设备寄存器地址。21. 根据权利要求20所述的系统,其中,每个从设备包含别名数据,所述别名数据将所 述从设备中的从设备寄存器地址映射到相应虚拟设备寄存器地址,并且其中所述从设备之 一确定所述数据线上的所述虚拟设备寄存器地址对应于映射到与所述从设备的从设备寄 存器地址的相应虚拟设备寄存器地址。22. 根据权利要求21所述的系统,其中,所述虚拟设备寄存器地址是顺序的,并且其中 每个从设备通过以下操作来顺序地实行总线读/写操作:从由所述主设备在所述数据线上 用信号通知的虚拟设备寄存器地址开始,按照虚拟设备寄存器地址的序列的顺序来实行所 述总线读/写操作。23. 根据权利要求22所述的系统,其中,当所述主设备在每个读操作之后输出确认符号 时,所述总线读操作继续所述序列,直到所述主设备输出不确认和停止符号为止。24. 根据权利要求22所述的系统,其中,当所述从设备在每个操作之后输出确认符号 时,所述总线写操作继续所述序列,直到所述主设备输出停止符号为止。25. 根据权利要求15所述的系统,其中,每个识别出的寄存器与相应虚拟设备寄存器地 址相关联,所述虚拟设备寄存器地址是顺序的,并且其中所述序列包括:与顺序的虚拟设备 寄存器地址依次相对应的从设备寄存器的预定序列。26. 根据权利要求15所述的系统,其中,每个从设备还存储多于一个虚拟设备地址,并 且其中每个虚拟设备地址与从设备寄存器的序列相关联,并且其中所述主设备在所述每个 虚拟设备地址之间进行选择以开始相应的读序列或写序列。27. 根据权利要求15所述的系统,其中,在没有在各个读/写总线操作之间的开始符号 或重复的开始符号的情况下,实行所述读/写总线操作的序列。28. 根据权利要求15所述的系统,其中,对在总线上用信号通知从设备的存在的确认比 特之后或之前的每个数据分组实行读总线操作的序列。29. -种存储处理器可实行指令的非瞬时处理器可读介质,所述处理器可实行指令在 被实行时使一个或多个处理器实行根据权利要求1所述的方法。
【文档编号】G06F13/362GK106066834SQ201610247791
【公开日】2016年11月2日
【申请日】2016年4月20日 公开号201610247791.7, CN 106066834 A, CN 106066834A, CN 201610247791, CN-A-106066834, CN106066834 A, CN106066834A, CN201610247791, CN201610247791.7
【发明人】杰恩斯·克里斯蒂安·波尔森
【申请人】黑莓有限企业
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

威尼斯人棋牌|威尼斯欢乐娱人城

XML 地图 | Sitemap 地图