CN111343039A - 用于异步通信系统的分布式时间同步协议 - Google Patents
用于异步通信系统的分布式时间同步协议 Download PDFInfo
- Publication number
- CN111343039A CN111343039A CN201911315607.8A CN201911315607A CN111343039A CN 111343039 A CN111343039 A CN 111343039A CN 201911315607 A CN201911315607 A CN 201911315607A CN 111343039 A CN111343039 A CN 111343039A
- Authority
- CN
- China
- Prior art keywords
- slave
- node
- packet
- master
- bus
- 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
Images
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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Abstract
用于异步通信系统的分布式时间同步协议。提供了分布式获取系统的一个或多个从节点中的从节点和主节点,以及一种使所述从节点的通信同步的方法。所述方法包括获取提供分组间隔的定义的配置,其中所述分组间隔定义提供足够的时序余量,以确保由所述主节点和所述一个或多个从节点传输的通信分组仅出现在所述分组间隔定义的谐波处。所述方法还包括:经由所述总线从所述主节点接收主通信分组;确定从所述主节点接收的所述主通信分组中的至少一个最近的主通信分组的开始时间;基于所述开始时间来计算同步时间;以及基于所述同步时间来开始将从通信分组传输至所述主节点。
Description
发明领域
本公开涉及一种用于异步通信系统的协议,并且更具体地说,涉及一种用于异步通信系统的分布式时间同步协议。
相关技术描述
分布式采集系统执行远程数据采集和处理。可以经由一个或多个通信链路将所采集或处理的信息传送至处理部件,以进行汇总、分析、数据存储和/或报告。
对于某些操作模式,数据采集需要在一组分布式从属器之间高度相关。为了满足这一需求,通常使用主控器生成的时间同步脉冲,其中脉冲转换表示每个从属器的时间参考。
同步脉冲经由专用于时间同步的独立物理链路递送,从而增加了成本和重量。此外,由于电缆长度不同,从属器之间的传播延迟差异会增加时序错误,这会使系统性能劣化。
尽管通常认为常规方法和系统对于其预期目的是令人满意的,但在本领域中仍然需要用于异步通信系统的改进的分布式时间同步协议。
发明内容
下文描述的所说明实施方案的目的和优点将在下文的描述中阐明并且从中变得显而易见。通过在书面描述及其权利要求中以及从附图中特别指出的装置、系统和方法,将实现并且获得所示实施方案的其它优点。
为了实现这些和其它优点,并且根据所说明实施方案的目的,一方面,提供了一种分布式采集系统的从节点。所述从节点包括用于在控制部件与总线和控制部件之间介接的通信接口。总线联接到分布在采集系统中的主节点。所述控制部件被配置成采集提供用于分组间隔的定义的配置,其中所述分组间隔定义提供足够的时序余量,以确保由所述主节点和所述一个或多个从节点传输的通信分组仅出现在所述分组间隔定义的谐波处,并且经由所述总线从主节点接收主通信分组。所述控制部件还被配置成确定从所述主节点接收的所述主通信分组中的至少一个最近的主通信分组的开始时间,基于所述开始时间来计算同步时间,并且基于所述同步时间来开始将从通信分组传输至所述主节点。
在实施方案中,所述控制部件还可以被配置成确定所述从节点是否已被授予所述总线的所有权,其中仅当所述从节点被授予所有权时,才开始所述从通信分组的传输。
在实施方案中,对所述从节点进行的所有权的所述授予可以专用于所述从节点。
在实施方案中,确定所述总线的所有权是否已被授予所述从节点可以包括确定对与所有权的所述授予相关联的所述总线的访问限制。所述控制部件还可以被配置成在由于所述访问限制而不再被授予所述总线的所有权时禁止开始所述从通信分组的传输。
在实施方案中,所述访问限制可以指定在所述从节点被授予所述总线的所有权时允许由所述从节点传输的从通信分组的最大数目、在对所述从节点进行的所述总线的所有权的所述授予到期之前的时间间隔,或在被授予所述总线的所有权时可供所述从节点在所述总线上使用的分组间隔定义的数目。
在实施方案中,所述分组间隔定义可以是由所述主节点传输的主通信分组的连续传输开始时间与基于所述分组间隔定义来同步由所述从节点传输的所述从通信分组之间的最大预期时间。
在实施方案中,所述分组间隔定义可以基于所获取的配置的最大分组有效载荷大小和通信波特率定义而适应用于传输由所述主节点传输的所述主通信分组或由所述多个从节点中的任一者传输的所述从通信分组的最大预期传输时间。
在实施方案中,从所述主节点控制部件接收的所述主通信分组中的主通信分组可以包括确认请求,所述确认请求基本上是与对所述从节点进行的所述总线的所有权的授予一起被接收的。所述同步时间可以基于接收到所述主通信分组的时间来更新,并且可以传输至所述主节点的所述从通信分组中的从通信分组是响应于所述确认请求进一步基于所述分组间隔定义而开始。
在实施方案中,从所述主节点接收的所述主通信分组中的第二主通信分组可以包括由所述主节点基于从所述主通信分组的传输的开始到所述从节点接收到所述主通信分组的时间之间的时间量和/或由所述从节点传输的所述通信分组的传输的开始到所述主节点接收到所述从通信分组之间的时间量而测量的传播延迟。所述控制部件还可以被配置成基于所述传播延迟来调整开始传输后续从通信分组的时间。
在实施方案中,所述分组间隔定义可以是基于由以下中的至少一者引起的延迟:由于所述主节点与所述从节点之间的时钟差异而引起的波特率错误、在由所述主节点或所述从节点控制所述总线到由所述主节点和所述从节点中的另一者控制所述总线之间的转变时的处理,以及字符间时序间隙的总和。
在实施方案中,从节点还可以包括:感测元件,所述感测元件被配置成感测物理性质并且基于所述感测来输出感测数据;以及缓冲区,所述缓冲区被配置成缓冲所述感测数据。从所述主节点接收的所述主通信分组中的主通信分组可以包括对感测数据的请求。所述控制部件还可以被配置成响应于接收到所述主通信分组而将由所述缓冲区缓冲的感测数据包括在传输至所述主节点的所述从通信分组中的一者或多者中。
根据本公开的其它方面,提供了一种使分布式获取系统的从节点与主节点之间的通信同步的方法。所述方法可以包括:获取提供分组间隔的定义的配置,其中所述分组间隔定义提供足够的时序余量,以确保由所述主节点和所述一个或多个从节点传输的通信分组仅出现在所述分组间隔定义的谐波处;经由所述总线从所述主节点接收主通信分组。所述方法还包括:确定从所述主节点接收的所述主通信分组中的至少一个最近的主通信分组的开始时间;基于所述开始时间来计算同步时间;以及基于所述同步时间来开始将从通信分组传输至所述主节点。
根据本公开的另一方面,提供了一种分布式采集系统的从节点的控制部件。所述控制部件被配置成获取提供分组间隔的定义的配置,其中所述分组间隔定义提供足够的时序余量,以确保由所述主节点和所述一个或多个从节点传输的通信分组仅出现在所述分组间隔定义的谐波处。所述控制部件还被配置成:经由所述总线从所述主节点接收主通信分组;确定从所述主节点接收的所述主通信分组中的至少一个最近的主通信分组的开始时间;基于所述开始时间来计算同步时间;以及基于所述同步时间来开始将从通信分组传输至所述主节点。
通过以下结合附图对优选实施方案的详细描述,本公开的系统和方法的这些和其它特征对于本领域技术人员将变得更加显而易见。
附图说明
为了使本公开内容所属领域的技术人员将容易地理解如何在不进行过度实验的情况下制造和使用本公开的装置和方法,下文将参考某些附图详细描述其优选实施方案,其中:
图1是根据本公开的实施方案的示例性分布式数据采集系统通信拓扑的示意图;
图2是根据本公开的实施方案的由分布式数据采集系统的节点使用的示例性计算机系统的框图;
图3A是示出根据本公开的实施方案的由主节点执行的用于与分布式数据采集系统中的一个或多个从节点通信的示例性方法的流程图;
图3B是示出根据本公开的实施方案的由从节点执行的用于与分布式数据采集系统中的主节点通信的示例性方法的流程图;
图4是示出根据本公开的实施方案的由分布式数据采集系统的从节点执行的用于实施示例性时间同步协议校正逻辑的示例性方法的流程图;
图5是示出根据本公开的实施方案的由分布式数据采集系统的从节点执行的用于实施示例性时间同步协议功能逻辑的示例性方法的流程图;
图6是示出根据本公开的实施方案的由分布式数据采集系统的主节点执行的用于实施示例性时间同步协议功能逻辑的示例性方法的流程图;
图7是示出根据本公开的实施方案的由分布式数据采集系统的主节点执行的用于实施输出生成逻辑的示例性方法的流程图;
图8是示出根据本公开的实施方案的由分布式数据采集系统的主节点执行的用于实施总线控制逻辑的示例性方法的流程图;以及
图9示出了流程图900,所述流程图说明了根据本公开实施方案的由主节点执行的用于实施传播延迟校正逻辑的示例性方法。
具体实施方式
控制通信总线上的总线活动,其中通信分组的时序出现在可配置的分组间隔的谐波处。分组间隔是主控器和从属器两者皆知晓的可配置值。作为系统设置的一部分,将使用通信参数数据项(PDI)更新主节点和从节点的非易失性存储器,这些参数含有可配置的参数:最大有效载荷大小、波特率和分组间隔。重置时,节点使用这些参数来控制通信行为。分组间隔适用于MOSI信道和MISO信道活动。
通信分组本身的开始可以用作参考时间,以实现一组从节点之间的时间同步。数据传送被划分为适合于可配置的分组间隔(包括时序余量)的分组。最大分组有效载荷大小和通信波特率是可配置的参数,它们定义任何分组的最大预期传输时间。时序余量适应于错误源,例如波特率差异和字符间间隙时间。选择分组间隔以平衡同步和通信考虑。由于时钟差异,从属器之间的数据采集时序可能会随时间而漂移。分组间隔需要频繁发生以校正此错误。通信协议开销会影响数据传送时间。分组间隔需要考虑到足够的带宽利用率。
根据本公开的另一方面,提供了一种使通信在分布式采集系统的主节点和一个或多个从节点之间同步的方法。所述方法包括定义分组间隔、最大有效载荷大小和波特率,它们提供足够的时序余量以确保通信分组可以出现在分组间隔的每个谐波处。通过适当选择,这些参数可以确保通信活动具有确定性。另外,所述方法包括用于基于分组间隔来管理总线所有权的可配置布建。主节点生成输出分组,所有从节点都接收并且有条件地使用这些输出分组来基于分组的开始更新时间同步。如果分组有效,并且分组源地址传递指示主控器生成了分组的特定地址标准,则所有从节点使用所述分组来更新时间同步。此外,如果分组目的地地址传递指示所述分组意欲用于从节点的特定地址标准,并且分组内容与信道数据匹配,则所述特定从节点将消耗任何分组有效载荷并且调度任何适当的从输出分组。信道分组由端口号、数据偏移和事务标识(ID)组成。端口号管理独立的数据传送、方向和优先级。数据偏移管理数据顺序。事务ID有助于区分特定事务并且确保数据完整性,尤其是在多个信道上挂起或正在进行多个数据传送的情况下。匹配的信道数据指示已为给定数据事务排序了数据传送。基于主输出分组,一个且只有一个从节点被授予总线访问权限。从总线访问需要受到限制,以便以取决于主节点总线所有权的最小速率更新时间同步。所述协议使用总线控制参数来在可配置数目的分组间隔内转移总线所有权。从节点在受到由主节点指定的总线控制号限制的用于一组后续分组间隔中的下一分组间隔处开始输出数据。使用这种方法,可以确定性地管理时间同步更新和带宽利用率。所述协议处理所有排列。如果到达数据传送的末尾,则从节点会尽早将总线所有权转移回主节点。所述协议包括数据顺序和完整性检查的规定,从而允许主节点从通信错误中恢复。
根据本公开的另一方面,提供了一种分布式采集系统的主节点的控制部件。所述控制部件包括处理装置,所述处理装置被配置成捕获来自每个从节点的通信分组输入相对于主节点的同步时间的开始时间,其被定义为分组间隔的当前谐波。基于所述时间差,主节点确定从属器特定传播延迟。主节点将此信息提供给每个从节点,以便可以校正从节点数据采集时序以适应传播延迟,并且还可以反映在任何将来的从属器到主控器通信分组中。使用这种方法,可以将分布式采集系统的时间同步错误降低到可以忽略的水平。
现在将参考附图,其中相同的附图标记标识本公开的相同的结构特征或方面。为了解释和说明而非限制的目的,在图1中示出了根据本公开的第一实施方案的异步采集系统的示例性实施方案的框图,其总体上用附图标记100标识。采集系统100包括经由总线106通信的主节点102和一个或多个分布式从节点104。总线106可以是半双工多点2线物理链路,其中主节点102联接到总线106的第一端,并且从节点104联接到总线106的多点的第二端。在一示例中,总线106是RS-485物理层,其在双绞线上使用带有信号终端电阻器的差分信令来支持在噪声环境中的有效的长距离通信。三态逻辑允许禁用驱动器以支持多点通信。RS-485物理层驱动器和接收器与通用异步接收器传输器(UART)介接,UART定义了数据链路层的时序和成帧方案。移位寄存器用于执行并行到串行转换,以便以顺序方式输出各个位,并且进行串行到并行的转换,以缓冲输入位。主节点102可以与一个或多个选定的从节点104通信或向所有从节点104广播。
采集系统100可以执行远程数据采集和处理。举例来说,从节点104可以是采集节点,其感测物理特性并且将感测数据传送至主节点102以进行汇总、分析、数据存储和/或报告。主节点102发起所有总线事务。对于某些事务,主节点102在指定的时间段内将总线所有权转移到选定的从节点104。
在某些应用中,数据采集需要在一组分布式从节点104之间高度相关。为了实现这一需求,某些采集系统已使用由主节点生成的同步脉冲作为从节点的时间参考。然而,这具有缺点,例如使用专用于时间同步的独立物理链路,这增加了这种数据采集系统的成本和重量,并且数据的传输受到传播延迟的影响,所述传播延迟会影响汇总数据的一致性。
在采集系统100中,总线106本身用于适应于数据传送和时间同步,这由各自使用协议逻辑的主节点102和从节点104来完成。协议逻辑消除了对用于时间同步的独立物理链路的需求,从而降低了成本和重量。协议逻辑还允许传播延迟由主节点102测量并且传达到从节点104,以使得从节点104可以补偿传播延迟以减少从属器104之间的时间同步错误。
采集系统100可以使用建立的时间同步协议(TSP),其是基于用于通信系统的开放系统互连(OSI)模型的组合的网络和传输层协议。TSP使用确认和错误检查来实现可靠的传输。TSP进一步使用分段、复用和总线所有权逻辑来平衡数据优先级、数据等待时间、数据传送效率和时间同步考虑。在TSP中,数据被封装在一系列分组中,每个分组具有有效载荷部分。TSP还使用标头和页脚来管理和路由数据传送。称为控制分组的某些分组不含有效载荷部分。
TSP数据传送被映射到特定的信道,以适应数据优先级和数据方向考虑。所述协议定义了两个优先级,即高和低。高优先级数据传送基于总线管理逻辑在特定时间抢占低优先级数据传送。高优先级传送适用于控制和状态信息。低优先级传送适用于文件传送。每个信道由两个端口组成,即一个输出端口和一个输入端口,其指示分组有效载荷中含有的会话数据的流动。所述方向被指定为主控器出从属器入(MOSI)或主控器入从属器出(MISO)。对于MOSI信道,仅主节点102生成含有有效载荷的数据分组。相反,对于MISO信道,仅从节点104生成含有有效载荷的数据分组。对于MOSI信道和MISO信道,都可以生成不含有效载荷的控制分组。控制分组不传送会话数据;它们仅在控制数据传送本身时补充数据分组。分组标题含有定义信道的端口号参数。主节点可以使用主控器出/从属器入(MOSI)信道,用于将主分组的会话数据传输从主节点102发送至一个或多个从节点104以传送数据(写入操作)或触发用于输出的从数据的缓冲(读取操作的前半部分)。使用MOSI信道,主节点102还可以使用数据分组或控制分组来请求向特定从节点104的数据传送的状态。作为响应,特定从节点104使用控制分组来确认会话数据传送的进度,以允许主节点102从可能的通信错误中恢复。主节点可以使用主控器入/从属器出(MISO)信道来请求从节点使用控制分组输出缓冲的会话数据(读取操作的后半部分)。作为响应,如果数据可用,则从节点104生成含有所请求的会话数据的数据分组。如果数据不可用,则从节点104生成控制分组以指示此可能性。每个信道已被指派优先级来控制总线活动。如果主节点已将总线所有权转移到特定从节点,则主节点会评估任何输入以确定从节点是否已将总线所有权转移回主节点。另外,主控器使用超时来处理可能的通信错误,以重新获得总线的所有权。
在示例性应用中,主节点102是从节点104的网络或子网络的控制器或主机。从节点104可以包括感测元件,所述感测元件感测其中部署了它们的系统的物理特性。响应于感测,感测元件可以输出感测数据,所述感测数据可以被缓冲在从节点104的缓冲区中。在例如飞机的交通工具的健康监测的应用中(不限于特定应用),从节点104可以通过其感测元件以快速速率采集感测数据。主节点104可以分析感测数据以对感测到的状况进行地理定位。在这样的应用中,从节点104需要被同步以便适应高速感测的数据的相关性。
参考图2,示出了示例性节点200的框图,其提供了主节点102和从节点104的示例性配置。节点200仅是合适系统的一个示例,并且不意欲建议关于在此描述的本公开的实施方案的使用范围或功能性的任何限制。可以使用硬件、软件和/或固件来实施节点200。无论如何,节点200能够被实施和/或执行本公开中阐述的功能性。
节点200以通用计算装置的形式示出。节点200包括处理装置202、存储器204、可以与外部部件220以及任选地与内部部件208通信的输入/输出(I/O)接口(I/F)206。
处理装置202可以是例如可编程逻辑装置(PLD)、微处理器、数字信号处理器(DSP)、微控制器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其它具有类似处理能力的分立或集成逻辑电路。
举例来说,处理装置202和存储器204可以包括在FPGA、ASIC、微控制器或微处理器中提供的部件中。存储器204可以包括例如易失性和非易失性存储器,用于临时或长期存储数据,并且用于存储可由处理装置202执行的可编程指令。
I/O接口208可以通信方式联接到总线106。另外,I/O接口108可以包括(例如经由连接器、近频通信以及有线或无线通信)联接到一个或多个外部部件220、外部感测元件、键盘、指示装置、显示器、另一计算装置和/或局域网或广域网(例如互联网)的接口。举例来说,从节点104可以经由I/O接口206联接到总线106,并且可能联接到外部感测元件。主节点102可以经由I/O接口206联接到总线106,并且可能联接到远程数据库以上载从从节点102接收的数据。
对于从节点104,内部部件208可以包括例如感测元件、模拟/数字(A/D)转换器和/或信号调节(SC)电路。感测元件可以感测例如其环境的物理特性,例如温度、振动、速度、加速度、位移、湿度、压力或其它特性。感测元件可以是模拟的或数字的,并且可以具有执行模拟/数字转换、一些信号调节和/或一些预处理的能力。
参考采集系统100的操作,由可配置数据(有效载荷大小、波特率和分组间隔)确定采集系统100所使用的TSP时序。有效载荷大小是每个分组允许的最大有效载荷字节数。此值限制了传输分组的预期时间。波特率以每秒的符号数来定义通信速度。对于基于UART的通信,符号包括数据位以及开销位,例如开始位和停止位。最大分组有效载荷大小和波特率定义了任何分组的最大预期传输时间。
分组间隔定义了从主节点102到从节点104或从从节点104到主节点102的连续分组之间的时间。总线活动受到控制,其中通信分组的时序出现在可配置分组间隔的谐波处。以这种方式,主控器的输出通信分组本身的开始可以用作参考时间,以实现一组从节点之间的时间同步。
数据传送被划分为适合于可配置的分组间隔(包括时序余量)的分组。时序余量适应于错误源,例如波特率差异和字符间间隙时间。另外,当在主节点或从节点对总线的控制转变到主节点和从节点中的另一者之间时,时序余量适应处理延迟。
作为示例,对于TSP协议开销为20字节,并且UART被配置成每字节10个符号(1个开始位、8个数据位、1个停止位)以及40us的时序余量的情况,可以如下选择可配置参数:最大有效载荷大小为460字节,波特率为5Mbaud,分组间隔为1ms。
波特率错误可能是由于主控器与从属器之间的时钟差异而引起。时序余量可以适应于这些波特率错误。
UART字符间间隙时间定义为一个分组内的停止位与后续开始位之间的时间。其可能是显著时序变化的来源。然而,使用例如先进先出(FIFO)存储器接口的硬件缓冲机制,UART字符间间隙时间预期为零。当将字节传输至UART时,生产者可以轻松避免下溢情况,只要缓冲了数据,UART就会产生连续输出。有了这一知识,主节点102可以以周期性确定性分组间隔传输分组,因为分组间隔推断出确定性总线活动并且促进用于与UART硬件介接的确定性行为。然而,对于主节点102而言,良好作法是在将新分组写入至其输出端口以触发总线106上的传输之前,检查UART接口(FIFO或移位寄存器)是否为空。如果超过了分组间隔(由UART接口不为空指示),则应在下一间隔开始时发送所述传输。
在总线控制从主节点102转变到从节点104中的一者或从从节点104转变到主节点102时的延迟归因于筛选和验证分组内容是否意欲用于接收器的时间。筛选可以是使用寻址方案来确定传输是否意欲用于接收器的过程。验证可以是评估所接收传输的内容并且将所述内容与锁存的信道数据进行比较的过程。分组间隔可用于:a)定义将由主节点102用于生成所有主输出分组的时序,b)定义由从节点104用于生成所有从输出分组的时序,c)同步从节点104以进行数据采集,d)控制总线106的所有权,和/或e)使主节点102能够确定从节点104的传播延迟,以便利用从节点104生成的输出中所反映的反馈来校正数据采集时序。
关于定义主节点102用于传输分组的时序,主节点102控制其输出在分组间隔的谐波处开始。这意味着主分组的所有开始时间都是分组间隔的倍数。
关于定义从节点104用于传输分组的时序,每个从节点104捕获所有主节点102分组的开始时间,并且将其输出调度为相对于因从属器特定传播延迟而偏移的所捕获的开始时间与分组间隔的后续谐波一致。
关于在从属器104之间提供同步,从节点104使用所捕获的所有主节点102分组的开始时间来触发数据采集同步事件,以相对于因从属器特定传播延迟而偏移的所捕获的开始时间与分组间隔的后续谐波一致。
从节点104的同步是任选的协议特征,其取决于主节点102的能力和各个从节点执行同步的能力。所述协议不会因节点类型或同步功能的混合而中断。一些从节点104可以使其数据采集和/或其输出分组同步,而其它从节点104可能不具有所述能力。
当支持时间同步时,从节点104调度其输出以在计算出的同步时间(也称为同步时间)处开始。主节点102预期在因从属器到主控器传播延迟而偏移的其分组间隔的谐波(往返传播延迟的一半)处开始接收分组。为了实现此时序,从节点104对所接收的主输出分组的开始加时间戳,并且通过加上分组间隔并且减去主控器到从属器传播延迟来计算用于输出响应输出分组的开始时间。传播延迟由主节点102针对各个从节点测量,并且传达到各个从节点104。分组间隔定义了连续的主分组开始时间与从分组开始时间之间的基本时间,这意味着所有主分组和所有从分组都以分组间隔的倍数输出,其中当任何从节点104接收到任何主分组时都提供同步。
当不支持时间同步时,从节点104的输出在分组处置之后立即开始,这受到最小和最大延迟时间的限制。对于从节点104的连续数据传送,在从节点104的第一输出开始之后,从节点104的输出被调度为分组间隔的倍数。在实施方案中,分组间隔限定了主节点102的最末分组结束时间与从节点104的第一分组开始时间之间的时间。最大延迟是(1.n×分组间隔),其对应于软件实施,其中选择n以适应于以n%的余量在分组间隔处对通信接口进行服务。在实施方案中,n=2。最小延迟对应于固件实施,具体取决于物理配置,例如10μs的延迟。
关于控制总线所有权,主节点102可以在有限的时间段内使用分组间隔来控制总线所有权到从节点104的转移,以确认接收到传输或响应于来自主节点102的请求而发送数据。反映在含于分组标头内的分组总线控制值中的总线所有权的这种控制定义了从节点104可以使用总线的持续时间(例如,按分组计)。从从节点104的角度来看,主节点102定义了对总线106的控制,而从节点104只是执行主节点102被要求的操作。在将总线106的所有权转移到从节点104之后,在从节点104指示其输出完成或从节点的控制到期之后(以先发生的为准),主节点102收回总线所有权。从节点104通过使用含于分组标头内的相同的分组总线控制值将总线所有权转移回主节点102。当处置了来自从节点104的输入分组时,主节点102基于此值更新总线所有权。在主节点102收回总线所有权之后,其可以在下一可用分组间隔处输出其下一传输。
对于从节点104,如果在总线106的控制被转移到从属器104的时间段期间发生了意外事件,从而延迟了从节点的传输,则当从节点输出其下一传输时,总线所有权被放回主节点104,这与由主节点104提供的控制周期无关。主节点102还可以使用超时来从从节点104接收输入,以适应例如情境或其它通信错误。
可以通过在从主节点102到从节点104的传输中设置总线控制值来执行总线所有权的转移。限制在0到255之间的8位总线控制值指示允许从节点104生成输出的连续分组间隔的数目。一旦接收到非零总线控制值,从节点104就使输出分组启用对应于总线控制值的计数。由于在从节点104拥有总线106时不可能进行时间同步更新,因此在选择最大允许的总线控制值时需要考虑时序错误和带宽利用率。从节点104使用8位总线控制值,但允许的值为0或1。如果从节点104拥有总线106的所有权,则从节点104在总线控制值为1时将总线所有权转移回主节点102,而在总线控制值为0时保留总线所有权。
当主节点102将总线所有权转移到特定的从节点104时,例如通过从从节点104请求状态或请求采集的数据,如果支持时间同步,则从节点104将其第一输出调度为在下一同步时间开始,或者如果不支持时间同步,则在处置分组后立即开始。
关于传播延迟的确定,当通过捕获时间参考并且基于分组间隔预测下一同步时间时而使从节点104的输出与主节点102的输出同步时,主节点102能够测量到所述从节点104的传播延迟。接着,主节点102可以将传播延迟报告给从节点104。接着,从节点104可以使用传播延迟来补偿其传输的时序,从而减少可能会干扰从节点104之间的同步或从节点104与主节点102之间的同步的时序错误。
在实施方案中,可以将约束应用于TSP时序的可配置数据,以便满足设计考虑,例如用于有效载荷、波特率和分组间隔及其允许的分辨率中的每一者的最小和最大值以及分辨率值。举例来说,分组间隔的分辨率可以是同步事件,其中同步事件是数据采集活动(例如,切换缓冲区)的设计特定时序。基于硬件时钟限制、收发器能力和信号完整性考虑,波特率可以覆盖目标数据速率范围。最大有效载荷约束可以允许某种灵活性来平衡开销、带宽利用率和分组缓冲区大小。4字节的倍数可以简化循环冗余校验(CRC)计算。此外,可以提供适应于时序变化的时序余量约束。
关于主节点102的操作,主节点102将传输发送至从节点104,其中每个传输的开始隔开分组间隔的倍数。主节点102控制总线106的所有权,从而允许总线106仅用于其传输,除非总线已经向从节点104发送对状态或指定数据的请求。主节点102允许从节点104在指定的间隔数内控制总线106以回复所请求的数据,此后,主节点102恢复对总线106的控制。在实施方案中,主节点102可以等待从节点的响应,从而允许响应跨越指定数目个间隔。在发生通信错误的情况下,主节点102可以应用超时特征来恢复其对总线106的控制。
当应用同步时,主节点102可以将主分组传输至请求确认的从节点104,并且基本上同时向从节点104授予总线106的所有权。主节点102可以授予从节点104对总线的所有权足以允许从节点104回复所述请求,接着重新获得总线106的所有权。主节点102可以预期在某个时间(例如,在固件或硬件实施方案中,下一分组间隔的开始,或者在软件实施方案中,第二分组间隔的开始)来自从节点的响应的确认。主节点102可以基于预期响应接收时间与实际响应接收时间之间的差异来确定传播延迟。主节点102可以经由总线106将所确定的传播延迟传输至从节点104。
在从节点104被配置成将其数据采集和/或传输的输出与主节点102的传输同步的实施方案中,从节点104监测总线106从不进行传输的不活动状态至正在进行传输的活动状态的转变。关于主节点102的操作,其可以控制总线所有权并且将MOSI传输输出至各个从节点104。为了确保最小的同步速率,主节点102可以在最大允许的延迟内发送其输出传输。当没有数据事务挂起时,主节点102可以进一步有条件地输出控制分组,以确保在不需要数据传送时可以保持同步。以此方式,每个从节点104可以使用所有主分组来校正其同步时间。同步时间的校正可以是连续的过程,即使当传播延迟基于采集系统100的安装和电缆修改和/或环境变化而改变时也是如此。
关于从节点104确定用于同步数据采集和/或生成输出分组的同步时间的操作,当经由总线106接收到主输出分组时,每个从节点104将输入传输路由至其接收器(例如,在此示例中,为UART)输入以进行解码。另外,输入传输被路由至捕获端口,所述捕获端口评估信号转变,以便为新分组的开始加上时间戳。从节点104利用预期的字符间间隙时间0和最小分组间时间(例如,10μs)来等待特定状况:从节点104检测到至少阈值时间量的不活动输入状态(在此期间,总线106不活动),接着转变为活动输入状态(在此期间,总线106转变为活动)。由于UART被配置成使用不归零(NRZ)编码方案,因此在此示例中,不活动状况被定义为逻辑高电平。活动转变被定义为从逻辑高电平到逻辑低电平的转变。
在实施方案中,通过将转变不活动时间计数器初始化为零并且在输入状态保持不活动时递增计数器来执行对预定状况的检测。一旦发生超时,意味着不活动的输入状态持续了阈值时间量(其中阈值是超时值),则从节点104等待输入状态转变为活动状态(逻辑低电平)。在超时之前,如果输入状态变为活动状态,则计数器将重置。
当检测到转变时,意味着正在从总线106接收到分组,从节点104捕获对应于分组的开始的当前时间,称为开始时间(t_k)。可以从自由运行的计时器捕获当前时间,其中计时器的计数值例如由从节点104的固件锁存。
当接收到分组的字节时,从节点104评估分组的有效性,并且确定所述分组是否是主节点102的传输(无论其目的地是哪个从节点104)。如果分组来自另一个从节点104,则可以将其忽略,并且不使用被锁存的时间。如果分组来自主节点102,则基于等式(1)校正同步时间(t_s):
t_s=t_k+t_p-t_prop, (1)
其中(t_p)是可配置的分组间隔,且(t_prop)是主控器提供的从属器特定传播延迟。从节点104使用同步时间来控制其数据采集和输出传输的时序。
当从节点104接收到主节点102的输出分组时(其中数据被推送到从节点104),从节点104缓冲所述分组。当接收到完整的分组时,从节点104基于其内容并且根据预定标准来处置所述分组。如果分组无效或不意欲用于从属器,则除了确定同步时间外,忽略所述分组。如果分组有效并且意欲用于从节点104(如分组的标头中的目的地地址所指示),则从节点104初始化用于接收分组的特定信道的事务数据,并且基于随后接收到的分组来维护所述数据。事务分组包括特定信道的端口号、数据偏移、事务ID和源/目的地地址。如果数据是有序的,则从节点104缓冲数据并且更新数据偏移。在会话层,对所缓冲的数据进行评估和消耗(如果已完成)。
在操作中,当主节点102例如经由写入操作状态请求或读取操作拉取请求将总线所有权转移到从节点10时,从从节点104输出的下一传输被调度为在将来的时间开始或在处置分组之后立即开始。如果不支持时间同步,则受最小和最大延迟时间限制,从输出将在处置分组之后立即开始。连续的从属数据传送按分组间隔的倍数进行调度。
如果支持时间同步,则传输输出被调度为在计算出的同步时间开始,在所述时间中,主节点102预期在其分组间隔的谐波处开始接收分组。
在重置时,将启动自由运行计时器,其“计数值”表示当前时间t c。重置(其初始化自由运行计时器)可以是通电重置、硬件重置(例如来自监控器电路或看门狗电路)或控制器引发的重置(例如来自软件或固件动作)。此外,基于等式(2),使用当前时间更新同步时间:
t_s=t_c+t_p-t_prop, (2)
其中t_p是分组间隔,并且t_prop是主节点102提供给从节点104的特定传播延迟。
在当前时间到达同步时间时,将取决于操作模式更新采集过程。举例来说,如果使用缓冲方案,则从节点104可以切换其活动缓冲区。在每个适用的从节点104(通过广播多播执行采集过程的指令而寻址的从节点104)被同步以几乎同时执行此动作的情况下,所采集的数据在每个缓冲区的开始时是时间同步的。在适用的从节点104中的缓冲区中,缓冲区中可以含有数目略不同的样本,可以在主节点102进行处理或数据汇总期间适应于所述样本。举例来说,数据集可以被截断至最小数据集的长度。
从节点104基于是否被调度而开始有条件地输出缓冲的数据。取决于信道的优先级以及信道的先前输出(如果有)是否已按预期完成,可以调度为发生连续输出。
现在参考图3A-9,示出了演示各种示例性实施方案的实施的作业图和流程图。要注意,不需要图3A-9中所示的操作顺序,因此,原则上,各种操作可以不按图示的顺序执行或并行执行。而且,可以跳过某些操作,可以添加或替换不同的操作,或者可以按照本文所述的实施方案在单独的应用中执行所选的操作或一组操作。
图3A示出了流程图300,所述流程图说明了由采集系统的主节点(例如图1所示的采集系统100的主节点102)执行的示例性方法。在输入302处,采集提供分组间隔的定义的配置,其中分组间隔定义提供足够的时序余量以确保由主节点和一个或多个从节点传输的通信分组仅出现在分组间隔定义的谐波处。换句话说,数据传送被划分成适于包括时序余量的可配置分组间隔的分组。在操作304处,经由总线将通信分组的时间参考分配至分布式采集系统的所有从节点,其中所述时间参考是基于分组间隔定义。具体而言,主控器的输出通信分组本身的开始可以用作参考时间,以实现一组从节点之间的时间同步。所述方法可以通过操作306、308和/或310继续。
在操作306处,基于分组间隔定义,使经由总线的通信与一个或多个从节点同步。
在操作308处,基于分组间隔来控制总线的所有权。在实施方案中,在将总线的控制提供给从节点中的一者之后,可以使用超时特征来重新获得对总线的控制。有效地,控制总线活动,其中通信分组的时序出现于可配置的分组间隔的谐波处。
在操作310处,确定传播延迟,其中所述传播延迟与从主节点传输的通信分组的传输开始到从节点中的一者接收到通信分组的时间之间的时间量和/或从从节点中的一者传输的通信分组的传输开始到主节点接收到通信分组之间的时间量相关联。在操作312处,将传播延迟经由总线传输至从节点。
在实施方案中,操作306、308和/或(310和312)中的一者或多者可以在不同的时间、以不同的顺序或同时执行。
在实施方案中,总线106用于双向通信。控制部件还基于分组间隔定义来控制总线的所有权。
在实施方案中,一个或多个从节点包括多个从节点,并且控制总线的所有权包括为多个从节点中的单个所选从节点授予对总线的有限访问。
在实施方案中,被授予的有限访问是针对在所选从节点被授予对总线的访问时,允许所选从节点传输的指定数目的分组。
在实施方案中,总线被配置成双向通信,分组间隔定义是由主节点传输的通信分组的连续传输开始时间之间的最大预期时间,并且控制部件预期由一个或多个从节点传输的通信分组基于分组间隔定义而同步。
在实施方案中,分组间隔定义适应于用于传输由主节点或一个或多个从节点基于所采集配置的最大分组有效载荷大小和通信波特率定义传输的通信分组的最大预期传输时间。
在实施方案中,时间参考分组和由主节点传输至任何从节点的通信分组中的每个分组的开始时间是分组间隔定义的倍数。
在实施方案中,分组间隔定义是基于由以下中的至少一者引起的延迟:由于主节点与从节点之间的时钟差异而引起的波特率错误、在由主节点或从节点控制总线到由主节点和从节点中的另一者控制总线之间的转变时的处理,以及字符间时序间隙的总和。
图3B示出了流程图350,所述流程图说明了由采集系统的多个分布式从节点中的从节点(例如图1中所示的采集系统100的从节点104)执行的示例性方法。在输入352处,采集提供用于分组间隔的定义的配置,所述配置确保由主节点和一个或多个从节点传输的通信分组仅出现在分组间隔定义的谐波处。在操作354处,确定新的主传输的开始时间。
接下来,在操作355处,确定主传输是否包括由主节点针对特定从节点测量的传播延迟。如果在操作355处确定为“是”,这意味着主传输包括由主节点确定的从节点的特定传播延迟,则在操作357处,从节点锁存更新后的传播延迟,此后,所述方法在操作356处继续。如果在操作处确定为“否”,这意味着主传输不包括传播延迟,则在操作356处,从节点基于锁存的传播延迟和主传输的开始时间校正其同步时间。当主节点没有需要在传输中发送的特定消息时,其可以发送同步消息,从节点可以使用所述同步消息来通过校正同步时间来校正其自身的同步。
在操作358处,确定是否已经将采集系统的总线的临时所有权指派给从节点。如果在操作358处的确定是“是”,这意味着总线的所有权已被临时指派给从节点,例如历时固定的时间量或分组间隔的数目,则在操作360处确定从属器对总线的所有权是否仍有效。如果在操作358处的确定为“否”,这意味着并未将总线的所有权指派给从节点,则所述方法在操作354处继续。
如果在操作360处的确定是“是”,这意味着从属器的所有权仍然有效并且尚未过去,则在操作362处,确定主节点是否已请求了确认(ACK)。如果在操作360处的确定为“否”,这意味着从属器对总线的所有权不再有效,例如已经过去,则所述方法在操作354处继续。如果在操作362处的确定为“是”,这意味着已经请求了确认,则在操作368处,从节点在下一可用同步时间传输所述确认,每个同步时间以分组间隔间隔开。接着,主节点可以使用其对确认的接收时间来确定从节点的传播延迟。接下来,所述方法在操作354处继续。
如果在操作362处的确定为“否”,这意味着尚未请求确认,则在操作364处,确定主节点是否请求了采集数据。如果在操作364处的确定为“是”,这意味着已经请求了采集数据,则在操作366处,确定是否存在可用的采集数据。可以基于先前的请求(读取事务的前半部分)对此类可用的采集数据进行缓冲并且等待发送至主节点。如果在操作364处的确定为“否”,这意味着尚未请求采集数据,则所述方法在操作354处继续。
如果在操作366处的确定为“是”,这意味着采集数据可用,则在操作370处,从节点在下一可用同步时间传输采集数据。接下来,所述方法在操作354处继续。如果在操作366处的确定为“否”,这意味着采集数据不可用,则在操作372处,从节点传输控制分组以指示所述数据不可用。通过此输入,主节点知晓从节点需要更多时间来缓冲所请求的数据。所述方法在操作354处继续。
图4示出了流程图400,所述流程图说明了用于同步由采集系统的从节点(例如图1中所示的采集系统100的从节点104)执行的使从节点同步的示例性方法。在操作402处,响应于来自操作404的重置信号或活动输入,初始化不活动时间计数器。在操作404处,确定从节点输入状态是活动还是不活动。如果输入状态为活动,则控制返回操作402,并且将不活动时间计数器重置为零。如果输入状态为不活动,则所述方法在操作406处继续。在操作406处,递增不活动计时器。在操作408处,评估不活动时间计数值以确定其是否已经超过阈值。当超过阈值时,确定已发生超时状况。如果尚未发生超时状况,这意味着不活动时间计数器未超过阈值,则控制返回到操作404。如果已发生超时状况,则所述方法在操作410处继续。
在操作410处,再次确定从节点输入状态是活动还是不活动。在不活动计时器继续递增的同时执行操作410。如果确定输入状态为不活动,则在不活动时间计数器继续递增的同时重复操作410。如果确定输入状态为活动,则所述方法在操作412处继续,在所述操作中,锁定例如从自由运行计时器捕获的当前时间的时间戳。自由运行计时器的计数值指示当前时间t_c。在操作414处,确定处于活动输入状态时接收的传入分组是否是有效的主输出分组。
如果在操作414处的确定为“否”,这意味着传入分组不是主分组,而是来自另一从节点104,则控制在操作402处继续,以将不活动计时器重新初始化为零。为了校正同步时间(t_s),将忽略输入分组,并且不使用所锁存的时间。如果在操作414处的确定为“是”,这意味着传入分组是有效的主分组,则操作在操作416处继续。在操作416处,基于以上等式(1)校正同步时间(t_s)。接着,从节点可以使用校正后的同步时间(t_s)来控制从节点进行数据采集和输出传输的时序。
图5示出了流程图500,所述流程图说明了由采集系统的从节点(例如图1所示的采集系统100的从节点104)执行的用于应用同步时间(t_s)同步从节点的操作的示例性方法。在操作502处,将自由运行计时器初始化为当前时间t_c。自由运行计时器的值随时间而递增,从而表示更新的当前时间。在操作504处,基于等式(2),使用当前时间t_c来更新同步时间(t_s)。
在操作506处,确定自由运行计时器值(其是更新的当前时间)是否已经到达同步时间t_s。如果确定为“否”,这意味着自由运行计时器值尚未到达同步时间t_s,则随着自由运行计时器基于经过时间而递增,重复操作506。当确定为“是”时,这意味着自由运行计时器值已经到达同步时间t_s,所述方法在操作508处继续。在操作508处,如果传感器节点处于操作的采集模式,则例如通过切换其活动缓冲区来更新采集。对于与主节点进行通信的其它从节点,应使操作508同步。
在操作510处,确定是否调度了输出。当从节点被主节点授予总线控制权(以便发送确认或用请求的数据(例如,采集的数据)回复)时,对输出进行调度。如果操作510中的确定为“否”,这意味着未调度从节点的输出,则所述方法在操作504处继续以更新sync_time。如果在操作510处的确定为“是”,这意味着调度了从节点的输出,则所述方法在操作512处继续,此后,所述方法在操作504处继续。在操作512处,执行传输过程以输出所请求的数据或确认。
图6示出了流程图600,所述流程图说明了采集系统的主节点(例如图1所示的主节点102)用于与采集系统的从节点同步时序的功能的示例性方法。在操作602处,初始化同步时间(t_s),并且自由运行计时器的值随着时间而递增,从而表示更新的当前时间。在操作604处,更新同步时间(t_s),其中t_s=t_c+t_p,其中t_p是可配置的分组间隔。
在操作606处,确定自由运行计时器值(其是更新的当前时间)是否已经到达同步时间t_s。如果在操作606处的确定为“否”,这意味着自由运行计时器值尚未到达同步时间t_s,则随着自由运行计时器基于经过时间而递增,重复操作606。当在操作606处的确定为“是”时,这意味着自由运行计时器值已到达同步时间t_s,所述方法在操作608处继续。
在操作608处,确定主节点是否拥有采集系统的总线,例如图1所示的总线106。如果在操作608处的确定为“否”,这意味着主节点不拥有总线,则所述方法在操作604处继续以更新sync_time。如果在操作608处的确定为“是”,这意味着主控器拥有总线,则所述方法在操作610处继续,此后,所述方法在操作604处继续。在操作610处,主节点生成输出。主控器通过恢复任何活动的高优先级输出来确定输出内容。否则,主节点会开始任何未决的高优先级输出。否则,主节点会恢复任何活动的低优先级输出。否则,主节点会开始任何未决的低优先级输出。否则,如果数据采集处于活动状态,则主节点会输出同步分组,所述同步分组不含有效载荷,仅用于提供时间同步更新。
图7示出了流程图700,所述流程图描述了图6的操作610内的过程。所述流程图说明了用于由采集系统的主节点(例如图1所示的采集系统100的总线106和主节点102)来选择要生成的输出分组以及控制总线的示例性方法。在操作702处,主节点确定与任何从属器的MISO信道(读取事务)是否活动。如果在操作702处的确定是MISO信道是活动的,则所述方法在操作704处继续,其中主节点生成拉取输出控制分组。此分组请求从特定从节点开始或恢复读取事务数据传送。在操作706处,基于拉取输出,在最大数目的分组间隔内,主节点将总线的控制转移到与活动MISO信道相关联的从节点,在此时间期间预期从节点生成输出以将数据传送至主节点。
如果在操作702处确定MISO信道不是活动的,则在操作708处确定MOSI信道(写入事务)是活动的还是未决的。如果否,尽管未在图7中示出,但可以将用于更新同步时间(t_s)的控制分组输出到总线。如果在操作708处确定MOSI信道是活动的或未决的,则在操作710处,主节点将数据推送至一个或多个从节点。输出分组用于开始、恢复和/或请求写入事务的状态。在操作712处,确定是否预期确认。如果在操作712处的确定为“是”,则预期确认,接着所述方法在操作706处继续。在操作706处,基于请求状态输出,在一个分组间隔内,主节点将总线的控制权转移至与活动MOSI信道相关联的从节点,在此时间期间,预期从节点生成指示其从主节点接收的输入的状态的输出。如果在操作712处的确定为“否”,不预期确认,则所述方法在操作714处继续。在操作714处,确定是否已经输出了最末分组。如果在操作714处确定为“否”,并未输出最末分组,则所述方法结束,此后,所述方法在下一分组间隔处在操作702处重新开始。否则,如果在操作714确定为“是”,输出最末分组,则在操作716处,确定输出是用于读取事务还是用于写入事务。如果在操作716处确定为“否”,输出不是针对读取操作而是针对写入操作,则所述方法在操作718处继续,其中完成当前事务,此后,所述方法结束,并且在操作702处在下一分组间隔处重新开始。如果在操作716处确定为“是”,输出是用于读取操作,则所述方法在操作720处继续,其中激活用于执行读取事务的从装置的MISO信道,此后,所述方法结束,并且在操作702处在下一分组间隔处重新开始。有效地,主节点使用MOSI信道写入数据以触发从节点缓冲输出,接着可以使用相关联的MISO信道拉取所述输出。
图8示出了流程图800,所述流程图说明了由主节点执行的用于基于从节点输入或超时状况由主节点重新取用总线的示例性方法。在操作802处,当从节点控制总线时,主节点从总线获得输入数据。在操作804处,主节点基于预定标准来处置输入。在操作806处,确定从节点是否已经将总线所有权转移回主节点。如果到达了用于数据传送的最末分组或到达了所允许的分组数目,则从节点使用总线控制值1放弃总线所有权。如果在操作806处确定为“是”,已满足收回总线的条件,则在操作810处,主节点收回总线,此后,所述方法在操作802处继续。如果在操作806处的确定为“否”,从节点尚未明确放弃总线所有权,则在操作808处,确定是否已经满足超时状况。有效地,主节点评估是否经过了足够的时间以使其将自动收回总线所有权。选择可配置的超时,以超过与在最末主节点输出分组期间主节点授予从节点的分组间隔数目相对应的时间。如果在操作808处的确定为“是”,已满足超时状况,则在操作810处,主节点收回总线,并且所述方法在操作802处继续。如果在操作808处确定为“否”,不满足超时状况,则所述方法在操作802处继续。
图9示出了流程图900,所述流程图说明了由主节点执行的用于确定传播延迟校正的示例性方法。主节点102所接收的来自从节点104的在总线106上的传输可以被路由以用于解码,例如路由至UART的输入,并且可以进一步被路由以用于捕获,例如在捕获端口处,以评估信号转变以便为接收到的新分组的开始加上时间戳。所述方法可以由主节点固件执行。举例来说,通过利用预期的字符间间隙时间0和最小分组间时间10μs,主固件可以等待总线不活动状态,接着进行活动转变。举例来说,在使用UART的实施方案中,使用不归零(NRZ)编码方案,并且将不活动状态定义为逻辑高电平,其中可以将活动转变检测为从逻辑高电平至逻辑低电平的转变。
在操作902处,响应于来自操作904的重置信号或活动输入,初始化不活动时间计数器。在操作904处,基于是否已经捕获到新分组来确定主节点输入状态是活动还是不活动。如果输入状态是活动,这意味着已经捕获了分组,则控制返回到操作902,并且将不活动时间计数器重置为零。如果输入状态为不活动,这意味着尚未捕获分组,则所述方法在操作906处继续。在操作906处,递增不活动计时器。在操作908处,评估不活动时间计数值以确定其是否已经超过阈值。当超过阈值时,确定已发生超时状况。如果尚未发生超时状况,这意味着不活动时间计数器未超过阈值,则控制返回到操作904。如果已发生超时状况,则所述方法在操作910处继续。
在操作910处,再次确定从节点输入状态是活动还是不活动。在不活动计时器继续递增的同时执行操作910。如果确定输入状态为不活动,则在不活动时间计数器继续递增的同时重复操作910。
如果确定输入状态为活动,则所述方法在操作912处继续,在所述操作中,锁定例如从自由运行计时器捕获的当前时间的时间戳。自由运行计时器的计数值指示当前时间t_c。在操作914处,除了评估预期分组的有效性之外,主节点还通过使用计算t_e=t_k-t_s-t_prop来确定相对于主同步时间(t_s)的时序错误(t_e)来更新传输了检测到的传输的特定从节点的传播延迟,其中(t_prop)是当前从属器特定传播延迟。在操作918处,可能在筛选之后,确定错误是否是显著的,例如,是否超过预定阈值。在操作918处,主节点调度到特定从节点的输出以更新从节点的特定传播延迟。通过累加一半的错误以适应两个方向的延迟来更新传播延迟。
所公开的采集系统的各种实施方案的潜在优点是能够将协议逻辑应用于通信链路以适应主节点与分布式从节点之间的数据传送、校正时序错误并且提供分布式从节点的同步的能力。不需要单独的同步链接。
尽管在飞机发动机相关应用的健康监测的示例性上下文中示出和描述,但本领域技术人员将容易理解,根据本公开的采集系统可以用于任何其它合适的应用中,包括使用分布式从节点采集的高度相关的感测数据的民用和军用应用。由于用于使主节点与从节点之间的通信重新同步的同步时间的校正可以是连续的过程,因此即使基于采集系统的安装和布线修改而改变了传播延迟,也可以使采集系统重新同步。因此,采集系统可以用于监测固定或移动系统,例如陆地、海洋、太空或空中交通工具。
尽管已经参考优选实施方案示出和描述了本公开的设备和方法,但本领域技术人员将容易理解,可以在不脱离本公开的精神和范围的情况下对其进行改变和/或修改。
Claims (20)
1.一种分布式获取系统的多个从节点中的从节点,所述从节点包括:
通信接口,所述通信接口用于控制部件与总线之间的介接,所述总线是联接至所述获取系统的主节点和所述多个节点中的其他从节点的通信总线;并且
所述控制部件被配置成:
获取提供分组间隔的定义的配置,其中所述分组间隔定义提供足够的时序余量,以确保由所述主节点和所述一个或多个从节点传输的通信分组仅出现在所述分组间隔定义的谐波处;
经由所述总线从所述主节点接收主通信分组;
确定从所述主节点接收的所述主通信分组中的至少一个最近的主通信分组的开始时间;基于所述开始时间来计算同步时间;以及
基于所述同步时间来开始将从通信分组传输至所述主节点。
2.如权利要求1所述的从节点,其中所述控制部件还被配置成确定所述从节点是否已被授予所述总线的所有权,其中仅当所述从节点被授予所有权时,才开始所述从通信分组的传输。
3.如权利要求2所述的从节点,其中对所述从节点进行的所有权的所述授予是专用于所述从节点。
4.如权利要求2所述的从节点,其中确定所述总线的所有权是否已被授予所述从节点包括确定对与所有权的所述授予相关联的所述总线的访问限制,以及如果所述控制部件进一步被配置成在由于所述访问限制而不再被授予所述总线的所有权时禁止开始所述从通信分组的传输,则确定对所述控制部件的访问限制。
5.如权利要求3所述的从节点,其中所述访问限制指定在所述从节点被授予所述总线的所有权时允许由所述从节点传输的从通信分组的最大数目、在对所述从节点进行的所述总线的所有权的所述授予到期之前的时间间隔,或在被授予所述总线的所有权时可供所述从节点在所述总线上使用的分组间隔定义的数目。
6.如权利要求1所述的从节点,其中所述分组间隔定义是由所述主节点传输的主通信分组的连续传输开始时间与基于所述分组间隔定义来同步由所述从节点传输的所述从通信分组之间的最大预期时间。
7.如权利要求6所述的从节点,其中所述分组间隔定义基于所获取的配置的最大分组有效载荷大小和通信波特率定义而适应用于传输由所述主节点传输的所述主通信分组或由所述多个从节点中的任一者传输的所述从通信分组的最大预期传输时间。
8.如权利要求2所述的从节点,其中从所述主节点控制部件接收的所述主通信分组中的主通信分组包括确认请求,所述确认请求基本上是与对所述从节点进行的所述总线的所有权的授予一起被接收的,其中所述同步时间是基于接收到所述主通信分组的时间来更新的,并且传输至所述主节点的所述从通信分组中的从通信分组是响应于所述确认请求进一步基于所述分组间隔定义而开始。
9.如权利要求8所述的从节点,其中从所述主节点接收的所述主通信分组中的第二主通信分组包括由所述主节点基于从所述主通信分组的传输的开始到所述从节点接收到所述主通信分组的时间之间的时间量和/或由所述从节点传输的所述通信分组的传输的开始到所述主节点接收到所述从通信分组之间的时间量而测量的传播延迟,并且
所述控制部件还被配置成基于所述传播延迟来调整开始传输后续从通信分组的时间。
10.如权利要求1所述的从节点,其中所述分组间隔定义是基于由以下中的至少一者引起的延迟:由于所述主节点与所述从节点之间的时钟差异而引起的波特率错误、在由所述主节点或所述从节点控制所述总线到由所述主节点和所述从节点中的另一者控制所述总线之间的转变时的处理,以及字符间时序间隙的总和。
11.如权利要求1所述的从节点,所述从节点还包括:
感测元件,所述感测元件被配置成感测物理性质并且基于所述感测来输出感测数据;以及
缓冲器,所述缓冲器被配置成缓冲所述感测数据,
其中,
从所述主节点接收的所述主通信分组中的主通信分组包括对感测数据的请求,并且
所述控制部件还被配置成响应于接收到所述主通信分组而将由所述缓冲器缓冲的感测数据包括在传输至所述主节点的所述从通信分组中的一者或多者中。
12.一种使分布式获取系统的一个或多个从节点中的从节点与主节点之间的通信同步的方法,所述方法包括:
获取提供分组间隔的定义的配置,其中所述分组间隔定义提供足够的时序余量,以确保由所述主节点和所述一个或多个从节点传输的通信分组仅出现在所述分组间隔定义的谐波处;
经由所述总线从所述主节点接收主通信分组;
确定从所述主节点接收的所述主通信分组中的至少一个最近的主通信分组的开始时间;基于所述开始时间来计算同步时间;以及
基于所述同步时间来开始将从通信分组传输至所述主节点。
13.如权利要求12所述的方法,所述方法还包括确定所述从节点是否已被授予所述总线的所有权,其中仅当所述从节点被授予所有权时,才开始所述从通信分组的传输。
14.如权利要求13所述的方法,其中对所述从节点进行的所有权的所述授予是专用于所述从节点。
15.如权利要求13所述的方法,其中确定所述总线的所有权是否已被授予所述从节点包括确定对与所有权的所述授予相关联的所述总线的访问限制,以及如果所述控制部件进一步被配置成在由于所述访问限制而不再授予所述总线的所有权时禁止开始所述从通信分组的传输,则确定对所述控制部件的访问限制。
16.如权利要求12所述的方法,其中从所述主节点控制部件接收的所述主通信分组中的主通信分组包括确认请求,所述确认请求基本上是与对所述从节点进行的所述总线的所有权的授予一起被接收的,其中所述同步时间是基于接收到所述主通信分组的时间来更新的,并且所述方法包括响应于所述确认请求进一步基于所述同步时间和所述分组间隔定义而开始所述从通信分组中的从通信分组。
17.如权利要求12所述的方法,其中从所述主节点接收的所述主通信分组中的第二主通信分组包括由所述主节点基于从所述主通信分组的传输的开始直到所述从节点接收到所述主通信分组的时间之间的时间量和/或由所述从节点传输的所述通信分组的传输的开始直到所述主节点接收到所述从通信分组之间的时间量而测量的传播延迟,并且
所述方法还包括基于所述传播延迟来调整开始传输后续从通信分组的时间。
18.如权利要求12所述的方法,所述方法还包括:
感测物理性质;
基于所述感测来输出感测数据;以及
缓冲所述感测数据,
其中,从所述主节点接收的所述主通信分组中的主通信分组包括对感测数据的请求,并且,
所述方法还包括响应于接收到所述主通信分组而将由缓冲器缓冲的感测数据包括在传输至所述主节点的所述从通信分组中的一者或多者中。
19.一种获取系统的经由总线与主节点通信的多个分布式从节点中的从节点的控制部件,所述控制部件被配置成:
获取提供分组间隔的定义的配置,其中所述分组间隔定义提供足够的时序余量,以确保由所述主节点和所述一个或多个从节点传输的通信分组仅出现在所述分组间隔定义的谐波处;
经由所述总线从所述主节点接收主通信分组;
确定从所述主节点接收的所述主通信分组中的至少一个最近的主通信分组的开始时间;
基于所述开始时间来计算同步时间;以及
基于所述同步时间来开始将从通信分组传输至所述主节点。
20.如权利要求19所述的控制部件,其中,
从所述主节点接收的所述主通信分组中的主通信分组包括对感测数据的请求,并且,
所述控制部件还被配置成响应于接收到所述主通信分组而将由感测节点感测并缓冲的所缓冲的感测数据包括在传输至所述主节点的所述通信分组中的一者或多者中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/224,235 US10671558B1 (en) | 2018-12-18 | 2018-12-18 | Distributed time synchronization protocol for an asynchronous communication system |
US16/224235 | 2018-12-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111343039A true CN111343039A (zh) | 2020-06-26 |
Family
ID=68944632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911315607.8A Pending CN111343039A (zh) | 2018-12-18 | 2019-12-18 | 用于异步通信系统的分布式时间同步协议 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10671558B1 (zh) |
EP (1) | EP3672162B1 (zh) |
JP (1) | JP2020099052A (zh) |
CN (1) | CN111343039A (zh) |
BR (1) | BR102019026995A2 (zh) |
CA (1) | CA3065021A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672540A (zh) * | 2021-07-07 | 2021-11-19 | 上海松江飞繁电子有限公司 | 二总线系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6969455B2 (ja) * | 2018-03-13 | 2021-11-24 | オムロン株式会社 | 制御装置、制御システム、制御方法、および、制御プログラム |
CN108919762B (zh) * | 2018-07-06 | 2021-05-25 | 东莞市李群自动化技术有限公司 | 基于工业以太网的控制方法及装置 |
US11943658B2 (en) * | 2020-11-03 | 2024-03-26 | Cypress Semiconductor Corporation | Multi-protocol communication network |
CN112822069A (zh) * | 2020-12-31 | 2021-05-18 | 广东大普通信技术有限公司 | 一种通信方法、装置、设备、系统及存储介质 |
CN114928512B (zh) * | 2022-04-11 | 2022-12-13 | 中国科学院地质与地球物理研究所 | 一种基于钻井设备的信号传输方法、装置、设备及介质 |
CN117614421B (zh) * | 2024-01-23 | 2024-04-16 | 国仪量子技术(合肥)股份有限公司 | 多通道脉冲同步方法、电子设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995002294A1 (en) * | 1993-07-09 | 1995-01-19 | Apple Computer, Inc. | Distributed time synchronization system and method |
EP0800295A2 (en) * | 1996-04-05 | 1997-10-08 | Sony Corporation | Method and apparatus for data packet transmission |
WO1998006194A1 (en) * | 1996-08-02 | 1998-02-12 | Medialink Technologies Corporation | Method and apparatus for network clock synchronization |
CN1196852A (zh) * | 1996-08-29 | 1998-10-21 | 埃克斯塞尔开关公司 | 分布式网络同步系统 |
US20080080562A1 (en) * | 2006-09-29 | 2008-04-03 | Burch Jefferson B | Enhancement of IEEE 1588 synchronization using out-of-band communication path |
CN101977104A (zh) * | 2010-11-13 | 2011-02-16 | 上海交通大学 | 基于ieee1588精确时钟同步协议系统及其同步方法 |
CN102857397A (zh) * | 2012-10-09 | 2013-01-02 | 南京国电南自电网自动化有限公司 | 一种多主异步双工差分总线及通讯方法 |
CN102984042A (zh) * | 2012-11-27 | 2013-03-20 | 浙江中控技术股份有限公司 | 一种实现总线通信的确定性调度方法及系统 |
CN104396180A (zh) * | 2012-06-19 | 2015-03-04 | 日本电气株式会社 | 时钟同步系统、时钟同步方法和存储有时钟同步程序的存储介质 |
CN105680975A (zh) * | 2016-03-07 | 2016-06-15 | 浙江大学 | 一种主从结构多节点网络的时间同步方法 |
CN106603367A (zh) * | 2017-02-28 | 2017-04-26 | 北京艾利特科技有限公司 | 一种用于时间同步的can总线通信方法 |
US20170373821A1 (en) * | 2015-03-19 | 2017-12-28 | Mitsubishi Electric Corporation | Communication apparatus and network system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370159B1 (en) | 1998-07-22 | 2002-04-09 | Agilent Technologies, Inc. | System application techniques using time synchronization |
US7930041B2 (en) | 2008-09-29 | 2011-04-19 | Rockwell Automation Technologies, Inc. | Industrial controller with coordination of network transmissions using global clock |
US8274998B2 (en) | 2008-10-02 | 2012-09-25 | Cortina Systems, Inc. | Systems and methods for packet based timing offset determination using timing adjustment information |
JP5363379B2 (ja) * | 2009-05-20 | 2013-12-11 | ルネサスエレクトロニクス株式会社 | 通信システム |
US9021292B2 (en) | 2011-05-20 | 2015-04-28 | Texas Instruments Incorporated | Method and system for asynchronous serial communication in a ring network by generating an oversampling clock using a fractional rate multiplier and sampling a received data bit sequence that includes voltage and temperature information in a battery management system |
CN105323054B (zh) | 2014-06-26 | 2019-05-17 | 中兴通讯股份有限公司 | 时钟同步方法及装置 |
ITUB20153295A1 (it) | 2015-08-31 | 2017-03-03 | Marposs Spa | Sistema e metodo di elaborazione e trasmissione dati |
US10187195B2 (en) | 2016-04-28 | 2019-01-22 | Hamilton Sundstrand Corporation | Controller area network synchronization |
-
2018
- 2018-12-18 US US16/224,235 patent/US10671558B1/en active Active
-
2019
- 2019-12-12 CA CA3065021A patent/CA3065021A1/en active Pending
- 2019-12-17 BR BR102019026995-2A patent/BR102019026995A2/pt unknown
- 2019-12-18 EP EP19217501.6A patent/EP3672162B1/en active Active
- 2019-12-18 JP JP2019228579A patent/JP2020099052A/ja active Pending
- 2019-12-18 CN CN201911315607.8A patent/CN111343039A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995002294A1 (en) * | 1993-07-09 | 1995-01-19 | Apple Computer, Inc. | Distributed time synchronization system and method |
EP0800295A2 (en) * | 1996-04-05 | 1997-10-08 | Sony Corporation | Method and apparatus for data packet transmission |
WO1998006194A1 (en) * | 1996-08-02 | 1998-02-12 | Medialink Technologies Corporation | Method and apparatus for network clock synchronization |
CN1196852A (zh) * | 1996-08-29 | 1998-10-21 | 埃克斯塞尔开关公司 | 分布式网络同步系统 |
US20080080562A1 (en) * | 2006-09-29 | 2008-04-03 | Burch Jefferson B | Enhancement of IEEE 1588 synchronization using out-of-band communication path |
CN101977104A (zh) * | 2010-11-13 | 2011-02-16 | 上海交通大学 | 基于ieee1588精确时钟同步协议系统及其同步方法 |
CN104396180A (zh) * | 2012-06-19 | 2015-03-04 | 日本电气株式会社 | 时钟同步系统、时钟同步方法和存储有时钟同步程序的存储介质 |
CN102857397A (zh) * | 2012-10-09 | 2013-01-02 | 南京国电南自电网自动化有限公司 | 一种多主异步双工差分总线及通讯方法 |
CN102984042A (zh) * | 2012-11-27 | 2013-03-20 | 浙江中控技术股份有限公司 | 一种实现总线通信的确定性调度方法及系统 |
US20170373821A1 (en) * | 2015-03-19 | 2017-12-28 | Mitsubishi Electric Corporation | Communication apparatus and network system |
CN105680975A (zh) * | 2016-03-07 | 2016-06-15 | 浙江大学 | 一种主从结构多节点网络的时间同步方法 |
CN106603367A (zh) * | 2017-02-28 | 2017-04-26 | 北京艾利特科技有限公司 | 一种用于时间同步的can总线通信方法 |
Non-Patent Citations (2)
Title |
---|
BRIAN R. ET AL.: "Ultraprecise Absolute Time Synchronization for Distributed Acquisition Systems", 《IEEE JOURNAL OF OCEANIC ENGINEERING》 * |
牟宗磊 等: "分布式测试系统时间同步技术的研究", 《计算机测量与控制》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672540A (zh) * | 2021-07-07 | 2021-11-19 | 上海松江飞繁电子有限公司 | 二总线系统 |
CN113672540B (zh) * | 2021-07-07 | 2024-01-26 | 上海松江飞繁电子有限公司 | 二总线系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2020099052A (ja) | 2020-06-25 |
CA3065021A1 (en) | 2020-06-18 |
EP3672162B1 (en) | 2022-11-30 |
BR102019026995A2 (pt) | 2020-07-07 |
US10671558B1 (en) | 2020-06-02 |
EP3672162A1 (en) | 2020-06-24 |
US20200192846A1 (en) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3672162B1 (en) | Distributed time synchronization protocol for an asynchronous communication system | |
CN111343228B (zh) | 用于异步通信系统的分布式时间同步协议 | |
JP5717240B2 (ja) | 通信システム及び通信装置 | |
CN103098419B (zh) | 用于以可转换的数据速率进行串行数据传输的方法和装置 | |
US20070127521A1 (en) | Interface between network data bus application and avionics data bus | |
US20130170498A1 (en) | Ethernet for avionics | |
WO2008041271A1 (fr) | Système d'émission/reception, noeud et procédé de communication | |
CN105376173A (zh) | 一种发送窗口流量控制方法和终端 | |
US20060224936A1 (en) | Data transfer apparatus | |
Ayavoo et al. | Two novel shared-clock scheduling algorithms for use with ‘Controller Area Network’and related protocols | |
Ayavoo et al. | Two novel shared-clock scheduling algorithms for use with CAN-based distributed systems | |
Hasnaoui et al. | An implementation of a proposed modification of CAN protocol on CAN fieldbus controller component for supporting a dynamic priority policy | |
KR102204954B1 (ko) | Can 컨트롤러 및 이를 이용한 데이터 전송 방법 | |
US20220303056A1 (en) | Communication device, communication method, and program | |
KR101601303B1 (ko) | 이종 프로토콜 메시지 중개 방법 | |
Hartwich et al. | Introducing can xl into can networks | |
CN114402576A (zh) | 用于发送和接收以太网信号的系统和方法 | |
KR101053958B1 (ko) | 통신 시스템 | |
KR20020009282A (ko) | 데이터 통신 시스템 및 그 통신방법 | |
US8095703B2 (en) | Data transfer method | |
Johansson et al. | On calculating guaranteed message response times on the SAE J1939 bus | |
TINDELL et al. | Calculating Controller Area Network (CAN) | |
Di Natale | Introduction to Embedded Systems | |
JP2006093967A (ja) | ネットワークシステム | |
KR20020047962A (ko) | 등시전송 효율을 높인 인터페이스 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |