技术领域
[0001] 本公开涉及用于通过两线总线传输数据的方法和设备。
相关背景技术
[0002] 包括时钟线和数据线的两线通信总线通常用于集成电路(IC)之间的同步串行数据传送。此类解决方案允许主要(或控制)装置或模块通过共享数据线与多个次级(或响应器)装置或模块通信,每个次级装置指定主要装置用于与特定次级装置通信的唯一地址。
[0003] 由于主要装置与每一个次级装置之间的通信只能按顺序进行,因此两线通信协议受到数据吞吐量的限制。可以通过提高时钟速度来提高数据吞吐量。然而,最先进的两线系统的计时速度是有限的。
具体实施方式
[0048] 本公开的实施例涉及两线串行数据通信协议的改进。以下描述陈述了根据本公开的示例性实施方案。其它示例性实施方案和实现方式对于本领域普通技术人员来说将显而易见。此外,本领域普通技术人员将认识到,可以代替或结合下文论述的实施方案应用各种等效的技术,并且所有此类等同物将被视为由本公开涵盖。
[0049] 图1是现有技术的两线串行总线架构100的示意图。串行总线包括时钟线102和数据线104。主要模块106(在本领域中也称为控制模块、或主模块、或主机模块、或主控模块)通过数据线104与多个次级模块108、110、112、114(在本领域中也称为响应器模块或从模块)通信。在所示示例中,提供单个主要模块106。然而,在实践中,可以提供不止一个主要模块。在所示示例中,提供四个次级模块。然而,实际上,可将任何数量的次级模块连接到时钟线102和数据线104。次级模块108、110、112、114中的每一个具有它们被配置为响应的唯一地址(即标识符)。每个唯一地址对于主要模块106和次级模块108、110、112、114在其上通信的总线是本地唯一的。换句话说,每个唯一地址不由耦合至数据线104的任何两个模块共享。为了向次级模块108、110、112、114中的一个发送数据,主要模块106可以通过数据线104传输次级模块108、110、112、114中的一个的模块地址,然后传输数据字节。响应于检测到数据线104上的唯一地址,寻址的次级模块然后可以被配置为确认传输并接收和处理通过数据线104发送的后续数据。
[0050] 图2是说明上述数据传输协议的示例的时序图。主要装置106和次级模块108、110、112、114中的每一个可以包括本领域已知的开漏驱动器(未示出)。因此,当没有发生传输时,数据线104由次级模块108、110、112、114的开漏驱动器的上拉电阻器保持为高。主要模块106发起在数据线104上传输唯一地址。在检测到其通过数据线104传输的唯一地址后,相关次级模块可以通过将数据线104拉低来响应。响应于相关次级模块的确认,主要模块106然后通过数据线104传输一个或多个数据字节,所述数据字节然后可以由相关次级模块接收和处理,每个字节在成功地接收后由次级模块确认(例如通过将数据线104拉低)。一旦传输完成,数据线104由相应开漏驱动器的上拉电阻器拉高,直到下一次数据传输。然后可以针对通过数据线104从主要模块206进行的后续传输重复此过程。
[0051] 应理解,上述架构100受到数据吞吐量限制的影响,因为主要模块106与次级模块108、110、112、114中的每一个之间的数据传输只能一次使用一个唯一地址按顺序执行。
[0052] 本公开的实施方案旨在通过实施新颖的两线总线协议来解决或至少改善这些限制,其中为次级模块提供唯一地址(对于每个次级模块本地唯一)和公共地址(对于连接至两线总线的两个或多个次级模块公共)两者。主要模块可以被配置为启用和停用一个或多个公共地址的使用,以允许在主要模块与总线上的一些或所有次级模块208、210、212、214之间进行基本上同时的数据传送。通过实现向多个次级模块的同时数据传送,可以一次性将公共指令(例如编程指令)中继到多个次级模块,从而减少对多个次级模块进行编程所需的总时间。
[0053] 图3是根据本公开的实施方案的两线串行总线架构200的示意图。类似于图1中所示的架构100,架构200包括时钟线202和数据线204。主要模块206通过数据线104与多个次级模块208、210、212、214通信。在所示示例中,提供单个主要模块206。然而,在实践中,可以提供不止一个主要模块。在所示示例中,提供四个次级模块208、210、212、214。然而,实际上,可将任何数量的次级模块连接至时钟线202和数据线204。次级模块208、210、212、214中的每一个具有它们被配置为响应的唯一地址(即标识符)。每个唯一地址对于主要模块206和次级模块208、210、212、214在其上通信的总线可以是本地唯一的,以便允许主要模块206将指令寻址到次级模块208、210、212、214中的每一个。换句话说,每个唯一地址不由耦合至数据线204的任何其它模块共享。
[0054] 除了具有唯一地址的每个次级模块208、210、212、214之外,与图1中的次级模块108、110、112、114相比,次级模块208、210、212、214还可以设置有可配置的公共地址(例如,x68或x70)。在图2中所示的示例中,第一次级模块208和第二次级模块210共享第一公共地址x68,而第三次级模块212和第四次级模块214共享与第一公共地址x68不同的第二公共地址x70。然而,应当理解,可以将公共地址分配给次级模块208、210、212、214的任何子集。例如,可以将单个公共地址分配给所有次级模块208、210、212、214。例如,可以将一个公共地址分配给第一次级模块208,并且可以将另一个公共地址分配给第二次级模块210、第三次级模块212和第四次级模块214。在另一个示例中,可以仅将公共地址分配给一些但不是所有次级模块208、210、212、214。
[0055] 在每次数据传输中,主要模块206通过数据线204传输数据。由于这一点,应当理解,所有次级模块208、210、212、214将通过数据线204接收数据。然而,每个消息将仅由次级模块208、210、212、214中所述消息寻址到的次级模块来作用。为此并且如上所述,主要模块206通过数据线206的每个数据传输包括地址(唯一的或公共的)。
[0056] 为了仅将数据寻址到次级模块208、210、212、214中的一个,主要模块206可以通过数据线204传输次级模块208、210、212、214中的一个的唯一地址,然后传输数据字节。例如,为了向第一模块208发送数据,主要模块206可以通过数据线204传输地址x80。响应于接收到地址x80,寻址的次级模块208然后可以被配置为确认传输并接收和处理通过数据线204发送的后续数据。此数据传输可以以与上面参考图2描述的方式类似的方式进行操作。
[0057] 为了仅将数据寻址到次级模块208、210、212、214中的两个或多个,主要模块206可以通过数据线204传输次级模块208、210、212、214中的两个或多个的公共地址,然后传输数据字节。例如,为了向图3中所示的第一次级模块208和第二次级模块210发送数据,主要模块206可以通过数据线204传输地址x68。第一次级模块208和第二次级模块210然后可以接收并处理通过数据线204发送的后续数据,如下文将更详细地描述。
[0058] 如上所述,公共地址x68、x70中的每一个可以是可配置的,因为它们可以在次级模块208、210、212、214中的每一个处分配、启用和/或停用。当在次级模块208、210、212、214中的次级模块处启用公共地址时,所述次级模块可以响应于由主要模块206传输的指令,所述主要模块寻址到分配给所述次级模块的公共地址。在次级模块208、210、212、214中的一个处的公共地址的配置可以由传输指令的主要模块206执行,所述指令包括主要模块206希望配置的次级模块208、210、212、214中的相应次级模块的唯一地址。一旦已在次级模块208、210、212、214中的两个或多个处启用公共地址,主要模块206就可以传输指令,所述指令包括旨在用于次级模块208、210、212、214中的两个或多个的公共地址和公共数据。旨在用于次级模块208、210、212、214中的两个或多个的数据的传输在本文中可以被称为广播。主要模块206还可以被配置为向次级模块208、210、212、214中的一个或多个分配和重新分配公共地址。
[0059] 如在以下示例中将变得明显,在广播(例如,旨在用于多个次级模块208、210、212、214中的多个次级模块的来自主模块206的数据传输)期间,上文参考图2描述的常规接收确认是不可能的。这是因为在多个次级模块配置用于接收传输的情况下,不能区分次级模块
208、210、212、214中的哪一个(或多于一个)正在将数据线204拉低以确认接收传输。
[0060] 因此,可选地,可以使用中断请求(IRQ)线205实施新颖的中断技术。可以除了时钟线202和数据线204之外还提供IRQ线205。在这种情况下,主要模块206可以配备有中断处理程序,所述中断处理程序被配置为处理例如与次级模块208、210、212、214中的一个或多个处的读取错误相关联的中断。以下将更详细地描述此种中断处理。应当注意,虽然有利,但是IRQ线205和下面关于中断描述的步骤是完全可选的并且可以在不脱离本公开的范围的情况下省略。
[0061] 图4是示出用于通过数据线204同时将公共数据从主模块206发送到第一次级模块208和第二次级模块210的示例性方法的流程图。图5是反映图4中的流程图的表。
[0062] 在步骤302处,主要模块206可以通过数据线204发送指令,所述指令旨在用于第一次级模块208并且包括第一次级模块208的唯一地址x80。可以使用与上面参考图2描述的协议类似的协议来发送指令。正如两线总线架构所固有的那样,所述指令(以及由主要模块206传输的每条指令)对所有次级模块208、210、212、214可见。然而,由于指令中存在唯一地址x80,所述指令仅可由第一次级模块208执行。
[0063] 所述指令可以从第一次级模块208的唯一地址x80开始。在第一次级模块208确认收到唯一地址x80后,主要模块206可以向第一次级模块208发送指令,以允许来自主要模块206的广播(即,公共数据传输)并在第一次级模块208处启用公共地址x68。如图5中所述,当所有次级模块208、210、212、214接收到指令时,响应于唯一地址x80的传输,仅第一次级模块208用确认作出响应。第二次级模块210、第三次级模块212和第四次级模块214不响应。
[0064] 在步骤304处,主要模块206可以通过数据204发送指令,所述指令旨在用于第二次级模块210并且包括第二次级模块210的唯一地址x82。也可以使用与上面参考图2描述的协议类似的协议来发送指令。
[0065] 所述指令可以从第一次级模块208的唯一地址x82开始。在第二次级模块210确认收到唯一地址x82后,主要模块206可以向第二次级模块210发送指令,以允许来自主要模块206的广播(即,公共数据传输)并在第二次级模块208处启用公共地址x68。如图5中所述,当所有次级模块208、210、212、214接收到指令时,响应于唯一地址x82的传输,仅第二次级模块210用确认作出响应。第一次级模块208、第三次级模块212和第四次级模块214不响应。
[0066] 在第一次级模块208和第二次级模块210处启用公共地址x68后,主要模块206能够通过数据线204传输包括公共地址x68的单个指令。同样,此指令将由所有次级模块208、210、212、214接收。然而,有利地,由于存在公共地址x68,因此第一次级模块208和第二次级模块210将基本上同时作用于所述指令。因此,第一次级模块208和第二次级模块210可以使用由主要模块206通过数据线204传输的单个指令同时编程。
[0067] 因为第一次级模块208和第二次级模块210都在这个阶段被配置为作用于包括公共地址x68的指令,所以出现数据线204上的读取确认不再可靠的情况。第一次级模块208和第二次级模块210可以确认在数据线206上接收到公共地址x68。然而,主要模块206将无法区分第一次级模块208和第二次级模块210中的一个在数据线206上响应与第一次级模块208和第二次级模块210两者在数据线206上响应。因此,架构200可以实施用于确定在从主要模块206读取通过数据线204发送的指令时是否发生错误的替代技术。
[0068] 例如,在步骤306处,主要模块206可以通过数据线206发送指令,并且所述指令包括公共地址x68以启用中断请求。由于在第一次级模块208和第二次级模块210处启用公共地址x68,因此在检测到数据线204上的公共地址x68后,第一次级模块208和第二次级模块210然后可以处理来自主要模块206的后续指令以启用中断请求且因此各自都启用中断请求。在启用中断请求的情况下,第一次级模块208和/或第二次级模块210然后可以被配置为例如在相应的第一次级模块208和/或第二次级模块210处检测到读取错误或其它错误时通过中断线205传输中断。
[0069] 在一些实施方案中,无论是否实施上述中断技术,第一次级模块208和第二次级模块210都可以确认对数据线206上的公共地址x68的检测。在这种情况下,如果接收到任何确认,例如,如果数据线206由第一次级模块208和第二次级模块210中的任何一个拉低或拉高,则主要模块206可以简单地继续指令的传输。或者,主要模块206可以在传输公共地址之后忽略数据线206中的任何电压变化,并且在发送公共地址x68之后,不管数据线206的状态如何都传输后续指令。主要模块206在广播(使用公共地址x68)的同时在后续传输中可以类似地作用。
[0070] 在步骤308处,主要模块206然后使用公共地址x68通过数据线204发送公共数据和/或指令。再次,由于在第一次级模块208和第二次级模块210处启用公共地址x68,因此第一次级模块208和第二次级模块210中的每一个接收并处理从主要模块206发送的数据。因为第一次级模块208和第二次级模块210都可以在公共地址x68的确认期间主动地调整数据线206,所以主要模块206可以被配置为以上面参考步骤306描述的任何一种方式进行响应。
[0071] 当主要模块206已通过数据线204完成公共数据和/或指令的传输时,过程可以进行到可选的步骤310或直接进行到步骤312。
[0072] 在步骤310处,如果在步骤306处启用中断请求,则主要模块206可以使用公共地址x68发送指令以停用中断请求。由于在第一次级模块208和第二次级模块210处启用公共地址x68,因此这些模块208、210各自处理指令并停用中断请求。因为第一次级模块208和第二次级模块210两者都可以在公共地址x68的确认期间主动地调整数据线206,所以主要模块206可以被配置为以上面参考步骤306描述的任何一种方式进行响应。
[0073] 在步骤312处,主要模块206可以使用公共地址x68发送指令以禁止广播(即,公共数据传输)并停用公共地址x68。由于在第一次级模块208和第二次级模块210处启用公共地址x68,因此这些模块208、210各自处理指令并且随后停用公共地址x68的使用。
[0074] 最后,在步骤314处,主要模块206可以检查由主要模块206实现的IRQ模块,以确定在步骤308的公共数据传输期间是否已由第一次级模块208和第二次级模块210中的任一个产生中断请求。如果确定已产生中断,则主要模块206可以实施中断处理程序来处理中断请求。
[0075] 然后可以重复上述过程以使用公共地址x70来传输旨在用于第三次级模块212和第四次级模块214的公共数据。应当理解,取决于在次级模块208、210、212、214处的公共地址的配置,可以执行上述过程以在主要模块26与次级模块208、210、212、214中的两个或多个之间传输公共数据。
[0076] 图6是示出可以由次级模块208、210、212、214中的一个执行以处理由主要模块206通过数据线204广播的数据的过程的流程图。主要模块206与次级模块208、210、212、214中的每一个之间的数据传输和切换已经在上面参考图4进行解释,因此在下面的解释中将不再重复。虽然以下解释从第一次级模块208的角度进行,但过程600可以由次级模块208、210、212、214中的任一个执行。
[0077] 在步骤602处,第一次级模块208可以监测其唯一地址x80在数据线206上的传输。
[0078] 在步骤604处,第一次级模块208可以检测其在数据线206上的唯一地址x80,确认接收并处理后续指令以启用公共地址x68。第一次级模块208然后可以启用公共地址x68。
[0079] 在步骤606处,第一次级模块208然后可以监测其唯一地址x80和其公共地址x68在数据线206上的传输。应当理解,次级模块208、210、212、214中的每一个被配置为连续地监测其在数据线上的相应的唯一地址x80、x82、x84、x86以及它们的公共地址(如果被分配和启用)。
[0080] 在步骤608处,第一次级模块208可以检测数据线206上的包括公共地址x68的指令和启用错误中断的指令。应当理解,具有相同公共地址x68的任何其它次级模块210、212、214也可以被配置为检测指令并以类似于第一次级模块208的方式进行响应。
[0081] 在步骤610处,第一次级模块208然后可以启用错误中断。在第一次级模块208处启用中断请求的情况下,当在读取以公共地址x68传输的广播指令时在第一次级模块208处发生错误时,第一次级模块208可以例如在IRQ线205上标记所述错误。可以通过拉高或拉低IRQ线205来标记错误。
[0082] 在步骤612处,第一次级模块208可以检测数据线206上的包括公共地址x68的指令并且继续接收和处理通过数据线206广播的数据。此数据将基本上同时由具有相同公共地址x68的第二次级模块210处理。此数据也将由第三次级模块212和第四次级模块214接收,但不由这些次级模块212、214处理。
[0083] 在已停止步骤612处的公共数据传输之后,在步骤614处,第一次级模块208可以检测数据线206上的包括公共地址x68的指令和停用错误中断的指令。
[0084] 在步骤616处,第一次级模块208然后可以停用错误中断。
[0085] 在步骤618处,第一次级模块208可以检测数据线206上的包括公共地址x68的指令、停用公共地址x68的使用的指令。第一次级模块208然后可以处理停用公共地址x68的指令。
[0086] 在步骤620处,第一次级模块208然后可以停用公共地址x68。
[0087] 因此,本公开的实施方案使两线总线上的多个模块能够同时用通用指令编程。这具有特定应用,其中次级模块208、210、212、214中的每一个是需要相同或相似配置的相同或相似模块。
[0088] 应当理解,在上面参考图6描述的过程期间,次级模块208、210、212、214中的每一个连续地监测数据线204上的指令,包括它们的唯一地址和公共地址(如果启用)。
[0089] 图7和图8示意性地示出包括多个换能器702、704、706、708的装置700中的架构200的示例实施方式。在此示例中,次级模块208、210、212、214中的每一个包括放大器208a、210a、212a、214a,所述放大器的参数可以基于通过总线的数据线206接收的指令进行重新配置。如图8中所示,换能器702、704、706、708可以位于装置700的四个角上。取决于装置700的定向,可能需要调整放大器208a、210a、212a、214a的一个或多个参数以增强经由换能器
702、704、706、708向用户播放的任何声音的质量。例如,当装置700处于图8左侧所示的定向时,可能需要将换能器702和706配置为立体声对且将换能器704和708配置为立体声对。相反,当装置700处于图8右侧所示的定向时,可能需要将换能器702和704配置为立体声对且将换能器706和708配置为立体声对。
[0090] 图9是示出在图8中从左到右示出的定向改变之后装置700的次级模块208、210、212、214的示例性重新配置所需的指令步骤的表。在表的右侧四列中,“R”代表“响应”且“N”代表“无响应”。可以在确定装置700的定向改变时触发重新配置过程。例如,主要模块206可以从包括在装置700中的惯性测量单元(IMU)710接收定向信号,所述定向信号可以用于确定装置700的定向。
[0091] 在步骤902到908处,指令可以由主要模块206通过数据线206传输并且旨在用于次级模块208、210、212、214中的每一个,每个指令包括次级模块208、210、212、214的相应唯一地址x80、x82、x84、x86中的一个。每个指令可以允许广播并设置公共地址以供主要模块206进行后续寻址。随着装置700转变为纵向定向(图8中的右侧),可能需要重新配置第一放大器208a和第二放大器210a以具有相同的均衡参数。因此,第一次级模块208和第二次级模块210设置有相同的公共地址x68。同样,可能需要重新配置第三放大器212a和第四放大器
214a以具有相同的均衡参数。因此,第三次级模块208和第四次级模块210设置为处理包括相同公共地址x68的指令。
[0092] 在步骤910处,使用公共地址x68通过数据线206传输指令以启用错误中断。响应于检测到数据线206上的公共地址x68,第一和第二次级模块208例如通过IRQ线205(如果提供)启用错误中断。将再次理解,第三次级模块212和第四次级模块214接收但不响应此指令。
[0093] 在步骤912处,主要模块206然后使用旨在用于第一次级模块208和第二次级模块210的公共地址x68通过数据线206传输公共编程指令,从而为它们提供相同参数,通过所述相同参数设置它们相应的放大器208a、210a。第一次级模块208和第二次级模块210然后使用在指令中接收的参数更新它们相应的放大器208a、210a。
[0094] 在步骤914处,一旦已将编程指令发送到第一次级模块208和第二次级模块210,主要模块2016就可以使用公共地址x68传输旨在用于第一次级模块208和第二次级模块210的指令。所述指令可以是停用错误中断。在检测到指令中的公共地址x68后,第一和第二次级模块208然后可以停用错误中断(如果提供)。
[0095] 在步骤916处,主要模块206可以检查是否例如通过IRQ线205接收到中断。
[0096] 在步骤918处,主要模块206可以使用公共地址x70通过数据线204传输旨在用于第三次级模块212和第四次级模块214的指令。所述指令可以是启用错误中断。在检测到数据线204上的公共地址x70后,第三次级模块212和第四次级模块214然后可以处理指令并例如通过IRQ线205(如果提供)启用错误中断。
[0097] 在步骤920处,主要模块206然后可以使用公共地址x70传输旨在用于第三次级模块208和第四次级模块210的公共编程指令。公共编程指令可以为每个模块提供相同参数,通过所述相同参数设置它们相应的放大器212a、214a。第三次级模块212和第四次级模块214然后使用在指令中接收的参数更新它们相应的放大器212a、214a。
[0098] 在步骤922处,一旦已通过主要模块206传输编程指令,主要模块206就可以使用公共地址x70通过数据线206传输旨在用于第三次级模块212和第四次级模块214的指令。所述指令可以是停用错误中断。第三次级模块212和第四次级模块214可以处理包括公共地址x70的指令并例如通过IRQ线205(如果提供)停用错误中断。
[0099] 在步骤924处,主要模块206可以检查是否例如通过IRQ线205接收到中断。
[0100] 在步骤926处,主要模块206可以使用旨在用于第一次级模块208和第二次级模块210的公共地址x68传输指令,以禁止广播并停用它们的公共地址x68。在检测到数据线206上的公共地址x68后,第一次级模块208和第二次级模块210可以停用公共地址x68的使用。
[0101] 在步骤928处,主要模块206然后可以使用旨在用于第三次级模块212和第四次级模块214的公共地址x70在数据线206上传输指令,以禁止广播并停用它们的公共地址x70。在检测到数据线206上的公共地址x70后,第三次级模块212和第四次级模块214可以停用公共地址x70的使用。
[0102] 因此,与使用图1中所示的传统架构100重新编程这些模块所需的指令相比,上述过程在应用于改变装置700的定向时可以使用更少的指令重新配置四个次级模块208、210、212、214。
[0103] 图7至图9中所示的示例性实施方案仅提供应用本公开的实施方案的一个示例。应当理解,本公开的实施方案可以应用于任何使用情况,其中使用相同的指令或参数来重新配置两线总线上的多个次级模块。例如,装置700中的音频输出模式的改变(例如从语音呼叫到音乐播放或反之亦然)可能需要放大器208a、210a、212a、214a的参数的改变。可以使用这里描述的方法来执行这种重新配置。
[0104] 技术人员将认识到,上述设备和方法的一些方面可以体现为例如位于非易失性载体介质(例如磁盘、CD‑或DVD‑ROM、例如只读存储器(固件)的被编程的存储器)上或数据载体(例如光学信号或电信号载体)上的处理器控制代码。对于许多应用,本发明的实施方案将实施于DSP(数字信号处理器)、ASIC(专用集成电路)或FPGA(现场可编程门阵列)上。因此,所述代码可以包括常规的程序代码或微代码,或例如用于设置或控制ASIC或FPGA的代码。所述代码还可以包括用于动态地配置可再配置的设备(例如可再编程逻辑门阵列)的代码。类似地,所述代码可以包括用于硬件描述语言(例如Verilog TM或VHDL(超高速集成电路硬件描述语言))的代码。技术人员将了解,所述代码可以分布在彼此通信的多个耦合的组件之间。在适当时,还可使用在现场(重新)可编程模拟阵列或类似装置上运行以便配置模拟硬件的代码来实施所述实施方案。
[0105] 应注意,如本文所用,术语模块应用于指代功能单元或块,其可以至少部分地由专用硬件组件(例如自定义电路)实施和/或至少部分地由一个或多个软件处理器或在合适的通用处理器等上运行的合适代码实施。模块本身可以包括其它模块或功能单元。模块可以由多个组件或子模块提供,这些组件或子模块不需要共处一地,并且可以提供在不同的集成电路上和/或在不同的处理器上运行。
[0106] 实施方案可以在主机装置中实现,所述主机装置尤其是便携式和/或电池供电的主机装置,例如移动计算装置(例如膝上型计算机或平板计算机)、游戏控制台、遥控装置、家庭自动化控制器或家用电器(包括家用温度或照明控制系统)、玩具、机器(例如机器人)、音频播放器、视频播放器或移动电话(例如智能手机)。
[0107] 应当注意,上面提及的实施方案说明而非限制本发明,并且本领域技术人员将能够在不脱离所附权利要求的范围的情况下设计许多替代实施方案。词语“包括”不排除除了在权利要求中列出的要素或步骤之外的要素或步骤的存在,“一(a)”或“一(an)”不排除多个,并且单个特征或其他单元可履行在权利要求中叙述的几个单元的功能。权利要求中的任何附图标记或标签不应被解释为限制它们的范围。