用于信号发射器模块化安装的可编程模块和驱动安装的方法
【专利摘要】一种用于模块化安装(IN)的可编程模块(1),该模块(1)包括:?由边缘(20)限定的支撑基底(2);?至少一个信号发射器(3);?至少一个产生本地测量数据的测量传感器?至少一个控制器(4),用于信号传输的驱动和接收本地测量数据;?至少两个固定在所述基底的边的连接器(5)且具有电源接口;和连接到所述控制器的双向通信接口,并且具有通信输入和通信输出;其中至少一个所述连接器在模块化安装中可与一个相邻模块的一个连接器连接,以便允许在所述模块的控制器和所述相邻模块的控制器之间通信的双向通信,以及模块之间的电源供应分配。本发明涉及发光安装领域。
【专利说明】
用于信号发射器模块化安装的可编程模块和驱动安装的方法
技术领域
[0001]本发明涉及一种用于信号发射器模块化安装的可编程模块,特别是光信号发射器类型。
[0002]它还涉及包括多个这样模块类型的模块化安装,以及用于驱动这种模块化安装的方法。
[0003]本发明特别适用于光模块领域,换句话说,集成光信号发射器的模块,其他方面的称为光源。
[0004]然而,本发明可应用于其他领域,具有与例如光信号,例如声音信号相比的其他信号类型发射器集成的模块。
【背景技术】
[0005]在一个网络内安装集成若干光模块是已知的。例如,文件W02011/106623,W02010/116283和W02011/123920,每一个文件公开了一个由一个或多个控制器(一个或多个控制器)驱动和分层组织的光模块的网络,特别是根据在级联中的一个组织。
[0006]问题在于在模块层次的常规实现中,换句话说,根据一个预定义的层次模块的组织,所述层次需要在控制器和每个光模块之间的网络层使用。然后,这样的层次按大小设置限制,因为该控制器的网络层必是限制光模块的最大数量。因此,安装的尺寸或在安装中模块的数量将被网络层的限制所限制,禁止任何超出临界阈值的安装扩展。
【发明内容】
[0007]本发明的目的是通过提供一个可编程模块解决这个问题,所述可编程模块可以通过添加模块而增加模块化安装的大小,换句话说,新模块对现有模块的连接,具有《可扩展性》安装的优势,也就是说当通过逐步添加模块维护第一功能(信号传输例如光信号传输)时,适应一定程度的变化。
[0008]本发明还涉及一种逐步实现分布式算法的传播的相关驱动方法,根据循环、周期和同步操作来实现。
[0009]为此,它提供了一个用于信号发射器模块化安装的可编程模块,所述模块包括:
[0010]-一个由边缘限定的支撑基底;
[0011 ]-至少一个信号发射器固定在所述基底上;
[0012]-至少一个控制器固定在所述基底上,并连接到用于驱动信号传输的所述至少一个信号发射器;
[0013]-至少两个连接器固定在所述基底的边缘并连接到所述控制器,每个连接器具有:
[0014]-用于所述至少一个信号发射器和至少一个控制器的电源接口;和
[0015]-连接到所述至少一个控制器的双向通信接口,且双向通信接口具有通信输入和通信输出;
[0016]其中至少一个所述连接器可以在模块化安装中与相邻模块的连接器连接,以便许可在所述模块的控制器和所述相邻模块的控制器之间的双向通信和在所述模块之间的电能供应分配。
[0017]因此,因为连接器,本发明的若干模块可以是物理上的相互连接和在相邻模块之间的通信,具有的优势在于,这些连接器或双向通信接口允许模块的准同步驱动,以便根据其网络环境(即这些相邻模块或至少接近的模块)最终获得传输信号的《智能》模块。
[0018]根据一个特点,至少一个信号发射器是一个光信号发射器,特别是发光二极管类型的。
[0019]在这种方式中,本发明特别有利地应用于诸如内部或外部照明、显示等的光模块的安装。
[0020]根据另一个特点,该模块还包括至少一个传感器,传感器用于测量固定在基底上的一个本地参数,所述至少一个产生本地测量数据的传感器且控制器被连接到用于接收所述本地测量数据的所述至少一个传感器。
[0021]因此,因为传感器可以考虑每个模块外部环境,以便同时根据本地外部环境(因为传感器的测量)获得传输信号的《智能》模块。
[0022]测量传感器可能是近距离传感器类型的,但其他传感器类型当然可以被考虑,如压力传感器,温度传感器,亮度传感器等。
[0023]近距离传感器检测一个对象或一个人的方法,且控制器集成了该测量数据去选择(根据驱动算法)修改信号发射器(多个发射器)的驱动。换句话说,控制器通过改变信号的传输对这种方法做出反应。
[0024]在具体的实施例中,该模块包括在每一边上的连接器,以便模块的每一边可与相邻类似模块的边连接,最终能够获得相连模块的一个完整表面铺设。
[0025]本发明还涉及一种类型的模块化安装,包括本发明的若干模块,其中每个模块具有连接到相邻模块的一个连接器的至少一个连接器。
[0026]此安装是完全《可扩展的》,作为预先设定的,因此根据使用的模块数,允许有任意尺寸的安装;记住在安装有更多的模块就有更多的控制器,以执行并行安装驱动算法。这种安装的优点是,它不需要通信的集中总线,因为通信是在安装中相邻模块之间的本地通信,由于它们的双向通信接口,因此,更大的安装则有更多的通信本地通道。
[0027]在安装中,该模块的安装和结构保证了模块之间的本地通信,这有利于布线:它确实足够提供在网络中模块的安装,以足够数量的模块连接器,通过其电源接口分配电流到该组模块。对于数据通信,特别是分布式算法(或多个算法),一个单一的连接器足以在整个网络中引入该算法。
[0028]此安装是特别有利的,因为相邻模块之间的通信接口确保取决于控制器接口带宽的一个快速本地通信。通过协议全球通信将服从于延迟限制,所述限制取决于安装尺寸,但本发明涉及一种通信协议,所述通信协议实施一个非常低的带宽,仅仅是从一个源点的一个微不足道的延迟的《广播》。
[0029]因此,控制器执行通信任务本身,并且管理信号发射器的驱动和来自传感器的测量数据的读取,而不使用额外的有效部件。
[0030]有利的是,安装还包括模块控制器的驱动程序的一个单源,所述外源被提供以连接到一个被称为主模块的模块的控制器。
[0031]该源可以包括用于加载该程序的外源,其连接到主模块的连接器,或该程序被存储并插入主模块的存储单元或存储器中。
[0032]本发明还涉及一种模块化安装的同步驱动方法,在该方法中,每个模块在循环、周期和同步的方式中执行相同的程序,在每个周期中,每个模块与相邻模块建立双向通信,并执行一个或多个该程序算法。
[0033]因此,这种驱动方法的特殊性在于安装的相邻模块之间的一个准同步操作,具有一个同步编程。换句话说,每个模块在一个伪并行编程模式下执行相同的程序,因此,最后每个控制器通过相同程序的执行,驱动模块的信号发射器。
[0034]据了解,如果模块是不同类型的(特别是根据基底的几何形状和/或连接器的数量),由所有模块执行的相同程序可能被配置以便该程序的通过类型I模块的执行导致某些程序算法的执行,和通过类型II模块的执行导致此程序的某些其他算法的执行。因此,根据模块的类型,在执行相同的程序,可能会有一些区别。
[0035]然后在访问控制器的同步语言的基础上操作方法,以便每个控制器进行简单的任务:驱动和监测信号发射器,与相邻模块的控制器通信,读取传感器,听取通信接口,这些通信接口接收和发送数据。
[0036]在同一个模块,允许执行若干独立的实时功能的编程也是并行的。它也可能被当成相邻模块之间的通信是一个并行的多个虚拟通道上进行的通信,因此,若干分布式驱动算法可以并行的执行。
[0037]有利的是,被称为主模块的模块包含一个用于通过模块执行相同的程序的周期的单源,其中所述主模块产生一个同步信号其逐步在模块之间被传播,所述模块从主控模块开始通过各自的连接器。
[0038]这种同步信号有利于调整模块之间的同步,通过所有模块传播;每个模块接收同步信号以被立即传送到相邻模块。
[0039]根据本发明的可能性,由该模块执行的相同程序是以一个阶段为前导,该阶段用于输入一个驱动算法到至少一个模块的控制器,该模块被称为主模块,以数据帧的形式分布在连续周期循环中,其他模块被称为从模块,且其中模块相同的程序的执行包括以下阶段:
[0040]-执行一个分配算法的第一阶段,在该算法中,启动算法的数据帧是被同步和周期性地分布,在模块之间循序渐进地从至少一个被称为主模块的模块开始;
[0041]-—旦分布式驱动算法完全加载在所有控制器中,一个第二阶段用于同步和周期性地通过每个控制器执行驱动算法。
[0042]因此,第二阶段的每一个模块在伪并行编程模式下执行相同的驱动算法,在第一阶段中控制器同步执行这以前的分布式算法,其包括例如用于第一阶段的分布式引导程序(Bootloader)的实现,换句话说,来自单源的驱动算法的分配。
[0043]在一个特定的实施例中,第一分配阶段之前,有一阶段用于确定一个最大距离,该最大距离对应于在至少一个主模块和最遥远的从模块之间的最大距离,所述距离在安装中,源于从相邻模块到相邻模块通过最短路径,以创建分配阶段的所需的时间,以便分布式驱动算法是完全加载在所有控制器中。
[0044]以这种方式,该方法是确定所有模块在开始执行阶段之前已经确实加载了驱动算法。换句话说,所有模块等待驱动算法的最后数据,以被分布在《最后》模块(分配被逐步以相同速率执行),所述模块使得驱动算法的开始是被同步执行的。
[0045]根据一个特征,确定最大距离的阶段被执行,要么是通过创建安装的拓扑结构或者是在模块之间逐步通过循环一个用于估计最大距离的函数,当它在进行且当它在安装中传播直到达到最大对应的最大距离时。
[0046]根据本发明的可能性,用于输入驱动算法的阶段和用于执行分配算法的第一阶段被执行:
[0047]-无论是顺序地,其中一旦驱动算法被完全加载到至少一个主模块的控制器中所述第一阶段开始;
[0048]-或是并行地,其中模块的每个控制器接收在当前周期的驱动算法的数据帧,并在下一个周期中传播到相邻模块的控制器。
[0049]根据本发明的另一种可能性,在执行分配算法的第一阶段期间,每个模块的控制器执行以下操作:
[0050]-接收至少一个通信输入的同步信号,并将同步信号发送到通信输出;
[0051 ]-听取模块的所有通信输入;
[0052]-接收该模块的至少一个通信输入的驱动算法的数据帧,所述数据帧对应于在以前的周期中传输的数据帧,通过相邻模块通信输出连接到所述模块的通信输入;
[0053]-在所述控制器中存储所述数据帧;
[0054]-发送数据帧从通信输出到相邻模块。
[0055]根据本发明的一个特征,在执行该驱动算法的第二阶段期间,在每个周期中,每个模块的控制器执行以下操作:
[0056]-接收至少一个通信输入的同步信号,并将同步信号发送到通信输出;
[0057]-听取模块的所有通信输入;
[0058]-读取来自至少一个传感器的测量数据;
[0059]-读取表示模块状态被称为状态变量的变量,特别是至少一个信号发射器的状态;
[0060]-读取模块的至少一个通信输入的数据包,该数据包被称为输入数据包,所述数据包集成了用于驱动算法执行的至少一个输入变量;
[0061]-执行的驱动算法具有,在当前循环中,被接收的输入变量或数据包作为输入,以及测量数据和状态变量作为输出,驱动模块的信号发射器的指令,更新状态变量,并计算与每个通信输出相关联的输出变量;
[0062]-发送被称为输出数据包的数据包的每个通信输出,所述数据包集成与每个通信输出相关联的输出变量。
[0063]在实践中,每个模块的状态代表它自己的变量,否则被称为本地变量,在本安装中有三种类型的本地变量:
[0064]-输入变量是读取通信输入,其不依赖于模块和来自外部的它的数值;
[0065]-输出变量,在执行驱动算法和修改与相邻模块通信之后控制器生成的;和
[0066]-表示其状态的其他变量,即例如反映信号发射器状态的状态变量,以及来自传感器的测量数据。
[0067]因此,每个模块控制器都符合来存储这些变量,并且进行复杂的行为或功能。例如,一个控制器可以使用一个或多个计数器来计算在改变输出之前的时间(从而引入一个暂停),可以使用若干来自传感器的连续的测量数据进行过滤,等。
[0068]也可以认为,在执行驱动算法的第二阶段,每一个周期,在当前周期中的输入数据包或每个输入数据包对应于一个在上一周期中被发送的输出数据包,通信输出连接到所述模块的通信输入的相邻模块,和输出数据包或在当前周期的每个发送的输出数据包是通过在下一个周期通过涉及的相邻模块被接收的。
[0069]这种情况下,对应于在一个η阶模块和一个n+1阶模块之间逐步地直接的通信。
[0070]也可以认为,一个η阶模块可能也与n+2阶相邻模块通信,从而避免引入在这两个模块之间的二个延迟周期。这是当然可以延长这种在遥远的相邻模块之间的通信到大于2阶的差异。遥远的相邻模块之间的这种通信方式允许一个模块寻找超越其直接的邻近模块,这可能被证明是非常有利的,以优化本地行为。
[0071]根据第一种可能性,执行该驱动算法的第二阶段包括优选在第二阶段的开始进行,具有一个无抖动控制的单一时间源的一个通信阶段,单一时间源是至少一个主模块的控制器发送的每个周期的开始时由同步信号给出。
[0072]有利的是,这种具有一个无抖动控制的单一时间源的通信阶段按照以下执行:在每一个时期,相对于主模块,每一个非主从模块的控制器位于一个η阶,将数据包分为若干时隙分配方式如下:
[0073]-分配给同步信号的第一时隙;
[0074]-被称为数据空等时隙的第二时隙,所述第二时隙具有持续时间Τ2:
[0075]Τ2 2ε+Υ,其中
[0076]ε为在模块的控制器和下一个相邻模块的控制器之间的最小传播时间;和
[0077]Y为周期的抖动;
[0078]-分配给输出变量的第三时隙;和
[0079]-被称为死时隙的第四时隙,所述第四时隙具有持续时间Τ4,其中
[0080]Τ4 2ε+ηΥ,其中
[0081 ] η为在通信链中,相对于主模块的模块的阶。
[0082]这被称为无抖动控制的本地同步操作,具有一个单一时间源。此操作是为了促进启动安装,以及用于检测缺陷模块。
[0083]根据第二种可能性,执行该驱动算法的第二阶段包括,优选在启动安装后,通信阶段具有时间源的可变数量和具有抖动控制,其中至少一个从模块的控制器产生它自己的同步信号,它将其发送到相邻模块的通信输出。
[0084]有利的是,具有数量可变的时间源和具有抖动控制的这种通信阶段执行如下:每个从模块的控制器进行以下步骤:
[0085]-如果时间过去了,由于收到来自被称为以前的相邻模块的相邻模块的以前的周期的数据包的同步信号,称为延迟时隙Tdelay的时隙,然后所述控制器发送一个具有同步信号的数据包到称为下一个相邻模块的其他模块,该模块无需等待下一个周期的数据包的同步信号,其将来自所述以前的相邻模块,其中:
[0086]Tdelay = P+e+Y,其中
[0087]P为主模块的周期的持续时间;
[0088]ε为在模块的控制器和下一个相邻模块的控制器之间的最小传播时间;
[0089]Y为周期的抖动;
[0090]-如果,收到一个来自以前的相邻模块的当前周期的数据包的同步信号,因为接收来自所述以前的相邻模块的同步信号,有一个被称为提前时隙Tadvance的时隙,然后控制器在发送输出数据包到下一个相邻的模块之前等待时隙Tshift:
[0091]Tadvance < Ρ+δ,其中
[0092]δ为在模块的周期和以前的相邻模块的周期之间的换挡时间,其中,δ < ε+Υ0
[0093]这被称为具有抖动控制的本地同步操作,以在开始之后促进一个优化操作。
[0094]此外,它有利于,用于执行驱动算法的第二阶段实现数据路由协议,在每个周期中的在两个相邻模块之间的交换数据包被切断,并且在若干组中发送,所述组被分配为时隙大于在二个分别对应η阶和n+1阶的相邻模块之间的传输的时间推移,以便在另一个连接器发送对应的高序列N0+1组的字节之前,序列NO组的每个字节在一个连接器上被接收。
[0095]本发明的其他特征和优点,将在阅读以下具体的说明书中,实施的非限制性的实施例中呈现,并参照附图标记和附图:
【附图说明】
[0096]图1是根据本发明的第一模块的示意图;
[0097]图2a和2b是根据本发明的第二模块的示意图,分别从下面和上面观察;
[0098]图是根据本发明的第三模块的示意图;
[0099]图是根据本发明的第四模块的示意图;
[0100]图5是根据本发明的一个安装的示意图,该安装集成了图1中的若干相互连接的模块;
[0101]图6是根据本发明的一个安装的示意图,该安装集成了图3中的若干相互连接的模块;
[0102]图7是根据本发明的一个安装的示意图,该安装集成了图3和图4中的若干相互连接的模块;
[0103]图8是根据本发明的一个安装的部分示意图,该安装集成了图1中的若干相互连接的模块,说明模块的连接器的编号;
[0104]图9和图1O是图8的安装的部分示意图,说明了在行I和2的一个中央模块与其相邻模块之间的通信;
[0105]图1la至图1ld是图8类型的安装中同步信号的传播的示意图;
[0106]图12a至图12C是模块之间的通信数据的示意图,在基于一个单一时间源和无抖动控制的通信模式;
[0107]图13是一个周期性计算步骤的示意图,周期性计算步骤根据一个同步的假设,由一个模块的控制器在执行程序的过程中执行;
[0108]图14是一个路由协议实现的示意图。
【具体实施方式】
[0109]描述第一部分涉及本发明的模块I的实现。模块I是一个可编程模块,换句话说,该模块目的在于由计算机程序或驱动算法驱动,其目的是形成一个单一的和可拆卸的模块化安装IN的元件。
[0110]图1到图4说明模块I的四个实施例;相同的附图标记将被用来描述相似的,相同的或具有相同的功能的元素或元件。
[0111]一般来说,一个模块I包括一个支撑基底2,优选地由刚性材料制成,具有一个由边缘20限定的多边形的形状。在图1和图2中基底2有一个由六个边界定的六边形,例如,在图3中基底2有一个由三边界定的等边三角形,且例如,在图4中基底2由四边界定的矩形。当然,这可以被考虑以提供一个具有正方形,菱形,直角三角形等形状的基底。这个基底2作为一个物理支持以支持这里所描述的不同的元件。
[0112]模块I还包括至少一个固定于基底2的信号发射器3,特别地若干信号发射器3。在下面的描述中,信号发射器3是光信号发射器类型的发射器,特别是发光二极管类型的。因此,这被称作为一个光模块I和一个光安装IN。在图1的例子中模块I包括六个发光二极管3,在图2的例子中模块I包括二十七个发光二极管3,在图3的例子中包括三十一个发光二极管3,并且在图4的例子中模块I包括七个发光二极管3。当然,它可能被认为是另一种类型例如声音信号发射器的信号发射器,因为它可能会被认为是在同一模块I上集合了至少2个不同类型的信号发射器。
[0113]模块I还包括至少一个固定于基底2的一个本地参数的测量传感器(未示出),传感器或每个传感器产生本地测量数据。例如,传感器可以是近距离传感器类型-否则被称为存在检测器-它可以是电容性的或感应式的,或压力传感器类型的,或温度传感器类型的,或轻传感器类型的等。传感器的作用是在模块I的本地环境中测量参数(人或对象的接近或存在,温度,压力,光等)。
[0114]模块I还集成了固定到基底2上的至少一个控制器4,特别是微控制器类型的。此控制器4连接:
[0115]-信号发射器或每个信号发射器3以驱动有关的发射器的信号传输;和
[0116]-传感器或每个传感器接收到这些本地测量数据。
[0117]模块I还集成了固定在基底边缘20上的至少二个连接器5并且连接到控制器4。每个连接器5具有:
[0118]-信号发射器3的和控制器4的电力供应接口;和
[0119]-连接到控制器4的双向通信接口,具有通信输入和通信输出。
[0120]模块I中每个连接器5是与一个相邻模块1(如果这样的相邻模块是当然存在的话)的连接器5进行物理连接,在模块化安装IN中允许:
[0121]-在模块I的控制器和相邻模块I的控制器之间(换句话说,在两个控制器的两个方向的数据传输)的双向通信,其中一个连接器的通信输入连接到其他连接器5的通信输出,反之亦然;和
[0122]-模块I之间的电源供应分配。
[0123]对于其余的,相邻模块意味着二个模块I,其中有相邻的,甚至是连续的边缘20;在二个模块I之间的连接以连接器5被放置在这些连续的边缘20上出现。
[0124]连接相邻模块I的二个连接器5,两种配置可以被考虑:对称配置和非对称配置。
[0125]在非对称配置中,2个连接器是不对称的,一个连接器5具有一个阳性连接器且另一个连接器5具有一个阴性连接器,用于在两个连接器5之间连接阴性-阳性连接器。有必要地,为了实现安装IN,始终在一个阴性连接器前提供一个阳性连接器。因此,有利于为每个模块I提供与作为阴性连接器一样多的阳性连接器,并在安装中正确定位每个模块I以匹配阳性连接器和阴性连接器。在图1的例子中,模块I有三个阳性连接器5和三个阴性连接器5。
[0126]在对称配置中,二个连接器5是对称的。因此,每个连接器5可以连接到相邻模块I的任何连接器,同时确保电气连接和通信。为确保电气连接,一个连接器插头25被连接到具有相同的电压其他连接器的一个插头(例如,地面和电源电压)是必要的。对于通信连接,,一个连接器的通信输出被连接到其他连接器的通信输入是必要的,反之亦然。
[0127]因此可以考虑这种对称配置的二个实施例:
[0128]-二个连接器之间的直接物理连接,使用连接器连接,所述连接器在两边上是阳性-阴性的;或
[0129]-通过使用中间电缆将两个连接器之间连接到彼此的连接,这是一种间接的物理连接。
[0130]在一个间接的物理连接的情况下,电缆必须是对称的,并且连接器是二个阳性(或两个阴性),而电缆有二个阴性(或阳性)相反的接口。在图2a和图2b的例子中,所有的连接器5是阴性类型,并提供可以通过电缆连接相邻模块I的阴性连接器5的电缆。
[0131]通过举例的方式,每个连接器形成支持UART模式的双向通信接口,很好地适应模块I的使用,虽然其他的模式也可以被考虑。
[0132]为了进行一个无孔的安装I,换句话说,其每个模块I连接到所有相邻模块I并且其中模块I的基底2是相邻设置的,在二个相邻模块I之间具有连续边,最好是模块I包括在每个边缘20上的连接器5,这是模块I在图1,2和3中的示例。
[0133]然而,图4中的模块I只有二个连接器5(对立于四边),它被放置在基底2最短的相对边上。
[0134]图5和图6说明安装IN由若干个相互连接的和相同的模块I组成,分别按图1的六边形模块和按图3的三角形模块组成。在这些安装IN中,模块I根据平铺于基底的连续设置的平面被分布、无真空、无侵蚀,每个模块I连接到其相邻模块或通过各自的连接器5被连接。然而这可能被考虑在安装IIN中提供一个或多个孔,在铺设中没有一个或多个模块I。
[0135]图7说明了一个由若干相互连接的模块I组成的安装IN,具有根据图3的两个三角形模块和根据图4的矩形模块。在这个安装IN中,某些模块I的基底有时是与被连接的相邻模块的基底分离。此外,三角形模块在各自的顶点上也有连接器(未示出),能够在三角形模块的顶点上连接三角形模块。
[0136]—般而言,可以在模块基底的所有或部分的顶点提供一个连接器,以增加安装的几何配置的机会;从而基底2被边和顶点(或角)界定。
[0137]不仅是平面的,也可以考虑实施立体安装,根据立体铺设分配模块。
[0138]下面是在上文描述的关于驱动模块化安装IN的方法。
[0139]在安装IN中,模块I可以与相邻模块在两个方向上通信并且驱动方法利用此功能来实现一个相邻模块之间的准同步驱动,其中在一个伪并行编程模式下每个模块I执行相同的程序。因此,每个模块在循环的、周期性的和同步的方式中执行相同的程序:在每个周期中,每个模块与相邻模块建立一个双向通信,并执行一个或多个该程序的算法。
[0140]该方法开始于向至少一个称为主模块的模块I的控制器4输入一个驱动算法,以数据帧的形式分布在连续的周期循环,其他模块I被称为从模块。然后,该方法包括在一个循环的,周期性和同步的方式下每个模块执行相同的程序,这包括如下:
[0141]-执行一个分配算法的第一阶段,在该算法中,驱动算法的数据帧被同步地和周期性地分配,从至少一个称为主模块的模块I开始的模块I之间逐步执行;
[0142]-一旦分布式驱动算法被完全加载在所有控制器4,用于由每个控制器4同步和周期性地执行驱动算法的第二阶段。
[0143]第一阶段和第二阶段两者构成一组控制器的相同程序的执行阶段,其中:
[0144]-在第一阶段,每个控制器执行第一个算法,所述分配算法,已被预先加载到每个控制器的非易失性存储器(只读存储器ROM或闪存),因此,在安装开始(换句话说,当施加电压),每个控制器准备推出这第一阶段;
[0145]-在第二阶段,每个控制器执行在第一阶段期间的以前分布的驱动算法,其中每个控制器在同一时间开始,第二阶段基本上存在于驱动信号发射器,并且其中的驱动算法将被存储在每个控制器的易失存储器,以便如果它想要改变信号发射器的驱动能够分配一个新的驱动算法。
[0146]关于输入阶段,它可以被认为是将主模块连接到外电源,例如计算机终端,将数据帧发送给主模块的控制器。在一方面,也可以考虑使用用于存储驱动算法的数字数据存储可移动单元(如存储卡),另一方面,一个在主模块上固定的读写器和旨在读取存储在所述存储单元中的数据,以由主模块控制器执行该程序。
[0147]值得注意的是,用于输入驱动算法的阶段和执行分配算法(或分配阶段)的第一阶段被实施:
[0148]-要么是顺序地,一旦驱动算法是完全加载在至少一个主模块的控制器中,第一阶段开始;
[0149]或并联地,其中模块的每个控制器接收在当前循环中驱动算法的数据帧,并在下一个循环中传播到相邻模块的控制器。
[0150]该方法的特殊性在于以下若干阶段:
[0151]-第一阶段,这是指从模块到一个分布式驱动算法的相邻模块的分布,通过分配算法的执行,特别是引导装载程序型或《Bootloader》,这将会从一个或多个源传播驱动算法;
[0152]-第二阶段是指相邻模块之间的准同步操作,由同步分布式驱动算法的执行。
[0153]安装IN的第一个优势是它的完全《可扩展性》特征,即它提供了添加所需模块并因此进行任意尺寸安装的可能性。关于驱动方法,有更多的模块,就有更多的用于执行的驱动算法(并行)的控制器;在并行的算法,但只有算法的分配时间随模块数目的增加而增加。第二个优势,安装IN不需要通信的集中总线,因为通信是相邻模块之间本地的通信,再次,更多的安装IN集成模块I,并且更多的通信本地通道将被集成。第三个优势,是允许虚拟机模型(字节码)编程,这是被每个模块控制器解释,并因此不依赖于安装的架构。
[0154]下面的描述涉及到驱动方法的一些方面,这是与细胞式编程(ceI Iularprogramming)类似的在执行阶段同步编程(特别是通过同步协同例程)与在第一分配阶段的同步分布式编程结合,同时还可以选择给一个几何方向在安装IN中的模块I之间的连接。
[0155]在这样的安装IN中,每个模块I通过通信接口连接到其相邻模块I,并且细胞式编程是基于以下假设:
[0156]-安装IN的功能是作为一个网络,它操作准同步,这意味着一个逻辑周期或时间;
[0157]-每个模块I在相同的同步时间执行相同的程序;
[0158]-每个模块I只考虑它自己的变量;
[0159]-模块I之间的通信是由某些变量的值的传播产生的,其中的值是传播的延迟周期。
[0160]对于编程,每个变量可以理解为由模块I索引的数组,但其访问是是本地的,且仅限于关注模块1:模块Mi可以访问自己的阵列变量x[i],但它不能直接访问其他模块Mj(j在i)的阵列变量x[ j]。
[0161]第一个方面涉及第一分配阶段的实施。
[0162]上面描述的细胞编程的兴趣是结合驱动算法的分布和同步编程。在驱动方法中,管理这样的细胞编程则两个数据是必要的:
[0163]-操作是循环,周期性和同步性;
[0164]-通信是由变量的值的传播产生。
[0165]为了便于模块之间的同步,被称为主模块的模块包含一个独特的通过产生一个同步信号(有时称为《同步》)的周期时间源,同步信号逐步地在从主控模块开始通过各自的连接器的模块之间传播。
[0166]对于下面的描述,第三下列数据也被保留:在安装中通道编号与模块I的定向相一致,这是被称为几何算法,并将被进一步的描述。
[0167]分布式驱动算法的第一阶段进一步依赖于以下额外的方面:
[0168]-该算法提供静态网络;
[0169]-—个主模块的存在;
[0170]-安装的尺寸。
[0171]对于第一分配阶段,该方法可以提供用于实现,从一个或多个启动(主模块)的波分布,数据帧的传播类似于以介质的速度的波通过安装,即每个周期的一个模块,其中:
[0172]-主模块通过发送数据帧触发波;
[0173]-从模块等待并听取以接收这些数据帧并传播它们,具有延迟周期,到相邻模块。
[0174]换句话说,在第一分配阶段,在每个周期中,每个模块I的控制器4执行以下操作:
[0175]-接收至少一个通信输入的同步信号,并将同步信号发送到通信输出;
[0176]-听取模块I的所有通信输入;
[0177]-接收该模块的至少一个通信输入的驱动算法的数据帧,该数据帧对应于在先前的循环期间与该模块的通信输出连接到该通信输入的相邻模块发送的数据帧;
[0178]-在控制器中存储数据帧;
[0179]-将数据帧在通信输出发送到相邻模块。
[0180]该波分布有利地解决分布式编程相关的两个问题:
[0181 ]-通知所有模块(《广播》问题);和
[0182]-结合分布式信息(《合并(mergecas)》问题)。
[0183]在所有情况下,第一分配阶段需要考虑安装IN的尺寸,以回答传播终止的问题,这种终止对应于当该过程可能停止传播波的时候,因为波已经通过整个安装IN且已达到所有模块I是肯定的。
[0184]因此它是有利的,第一分配阶段是优于一个阶段之前,该阶段用于根据最短路径确定对应于安装中通过相邻模块到相邻模块的路由选择在主模块和最远子模块之间的最大距离Dmax,以建立用于分配阶段所需的时间,以便分布式驱动算法在所有控制器4完全装载。
[0185]为了更清晰,定义以下的几何概念是重要的,通过考虑安装IN作为包含节点(模块)和通道(相邻模块之间的直接连接,这是通过连接器5作为一个提醒)的一个网络:
[ΟΙ86] —个路径是一系列的模块M0、M1,…,Mk,每个模块Mi由一个通道连接到相邻模块Mi+1;
[0187]-路径MO、M1,…,Mk的长度是k,是通过通道的数量;
[0188]-二个模块之间的距离是连接的两个模块彼此间最短路径的长度;
[0189]-安装的直径对应于这些模块之间的最大距离;
[0190]-最大距离Dmax对应于主模块和从模块之间的最大距离。
[0191]对于一个连通的网络,每个距离是有限的,并且用于一个连接的有限网络,其直径是有限的。
[0192]如果直径的上端b是已知的,且如果波算法迭代b次,那么可以肯定的是波会通过整个安装,因为直径大于或等于最大距离Dmax。
[0193]确定最大距离Dmax的阶段可以进行两种方式:
[0194]-第一种方法:通过建立安装的拓扑结构;
[0195]-第二种方法:逐步在模块之间,通过循环一个函数,该函数用于估计在安装中进行传播的最大距离Dmax直到达到一个对应于最大距离的最大值。
[0196]关于第二种方式,它可以被认为是从主模块到估计函数的波传播的进行,其中:
[0197]-最初,最大距离被假定为零;
[0198]-然后,在每个周期的波,每个模块将已知的最大距离通信给递增I的相邻,然后将其与相邻已知的操作最大距离值结合。
[0199]每个模块的以下二个信息允许一个全球安装的同步:
[0200]-在主模块对面的模块Mi的固有距离Di;及[0201 ]-在主模块和最远从模块之间的最大距离Dmax。
[0202]事实上,当主模块触发一个波,一个模块Mn接收它随后的η周期。另一方面,所有模块共享信息,最后一个模块将接收来自触发的时间m。从模块Mn看到存在一定距离,最新的模块将接收随后的波(m-n)周期。这是足够的,在接收波之后距离η的每个模块Mn等待(m-n)周期,以便所有模块在一个理想的状态下能进入相同的周期,从而全球同步所有模块。换句话说,每个模块都有其自己的计数器(取决于到主模块的它自己的距离),在第一阶段期间计数器在每个新的周期递减,直到达到零(所有计数器同时达到零),以便所有模块同时开始第二阶段。
[0203]对于第一分配阶段,它也可以被认为是进行一种称为生成树的方法来优化传播。
[0204]虽然第一波的目标是滥发的安装信息(分布式算法),为随后的波优化带宽的使用是可能的。因此,从主模块的传播波的距离期间,每个模块Mn会收到距离(η-1)它的距离η的一个或若干相邻Mn-1,那么这个模块Mn可选择其中的一个相邻作为《父》,而父可以通知它有一个《子》。《父-子》这样的定义允许以主模块的根和最远模块的两端构成一个生成树。
[0205]—旦建立了生成树,该方法可以限制主模块和生成树的一组模块之间的波的传播,从而释放其他可能使用的相邻模块之间的通信通道。
[0206]其余的描述涉及第一分配阶段的一个实施例,通过使用一个引导程序(bootstrap)(否则称为引导装入程序或《引导装载程序(Bootloader)》)预先装载在控制器的非易失性存储器中(ROM或闪存式)。
[0207]引导程序是一个比较小的程序,允许安装和应用程序的执行。作为一个提醒,在安装模块I的难度,包含一个相互连接的控制器网络,是在每个控制器的固件更新。作为对上文的解释,这个更新是根据一个分布式算法的方法进行的,采用了分布式的和非常有效的引导程序,因为它是小型的、快速的执行。
[0208]对于其他的,它会被认为是每个控制器都有一个存储器构架模型适合于:
[0209]-执行非易失性存储器和随机存取存储器;
[0210]-用软件编程的非易失性存储器;
[0211]-对该编程保护非易失性存储器的一部分。
[0212]为了提供一个具有最小且尺寸不变的引导程序(有时称为《stageO》),这使得分布式编程贯穿整个控制网络,引导程序《stageO》必须有一定的特点,SP:
[0213]-具有最小且尺寸不变的引导程序《stageO》有任务去部署和执行在每个网络控制器的随机存取存储器的程序;
[0214]-引导程序《stageO》可能部署程序的另一个平均尺寸(即大于引导程序《stageO》的大小)可能更有效更复杂的引导程序《stagel》,可能部署在每个控制器的改变闪存中的应用程序;
[0215]-引导程序《stageO》也必须允许发射在每个控制器的闪存中已经部署的应用程序,尤其是通过部署一个最小尺寸的软件,该软件执行跳转到应用程序地址。
[0216]引导程序《stageO》的操作原则上是不可改变的,当引导程序《stagel》的改变请求非物理或手动干预时,引导程序《stageO》的改变就意义而言只是可能通过各自地重编程序每个控制器。
[0217]在各控制器的随机存取存储器中的一个驱动算法的部署(或分布)以及用于每个控制器的其准同步发射(或执行),接下来的步骤(a)到(I)被执行:
[0218]步骤(a):引导程序《stageO》通过切割和恢复供电而启动,通过设置控制器以便切断和重新建立电力供应必然导致引导程序《stageO》的执行和所有控制器异步进入待机状
??τ O
[0219]步骤(b):每个模块控制器确定连接的相邻模块的存在,换句话说,检测每个连接一个相邻模块的连接器的连接。
[0220]通过举例的方式,可以进行如下操作:在它的每一个连接器,每个控制器将通信输出在状态《I》和通信输入在上拉输入模式,即通信输入读取和恢复连接到那里的相邻模块的通信输出的状态。因此,有二种可能性:
[0221]-如果通信输入连接到一个通信输出(换句话说,如果有关连接器连接到一个相邻模块的连接器),那么这个通信输入读取和恢复状态《1》,该状态是通信输出的状态;
[0222]-如果通信输入没有连接到通信输出(换句话说有关连接器未连接到任何其他连接器),那么通信输入被放在状态《O》;
[0223]步骤(c):预定时隙dl后,任何连接器检测为与相邻模块连接为非受阻且不被标记为有缺陷的。
[0224]通过继续上述的例子,任何通信输入在状态《O》中读取受阻和标记为有缺陷的。
[0225]步骤(d):—个确定的时隙d2后,每个模块控制器进入听取和同步信号《Sync》传播的模式。
[0226]步骤(e):—个确定的时隙d3后,主模块开始发送一个周期P的周期同步信号《Sync》。
[0227]步骤(f):等待同步信号《Sync》的每个模块控制器接收和传播它到它的相邻,其相邻具有在ε和(ε+γ)之间的一个时间迀移,其中:
[0228]_ε是一个模块和下一个相邻模块的控制器之间的最小传输时间;和
[0229]-γ是周期或传播抖动的抖动。
[0230]步骤(g):然后,每个模块控制器进入对连接器的通信输入接收模式,并等待一个确定的时隙d4,d4 2 (ε+ γ ),在开始传输数据之前。
[0231]步骤(h):每一个字节传输之间,等待区间d5被插入以确保模块的传输比相邻模块的接收慢。
[0232]步骤(i):每个字节可以选择至少二次发送,例如三次。在收到时,控制器决定主要通过比特(b i t)到比特(b i t)来重建字节。传输错误的概率可以被速度控制。
[0233]步骤(j):主模块和从模块之间允许建立非对称协议:
[0234]-对于任何模块,从主模块和从相邻模块更接近于主模块的它的距离;
[0235]-对于任何模块,由最短路由贯穿的主模块的最远模块因此建立了在主模块和从主模块到最远模块之间的最大距离;
[0236]-等待NAT使驱动算法加载所有控制器的周期数,换句话说,在跳到这个驱动算法的同步执行之前的周期数。
[0237]步骤(k):然后,驱动算法代码带长度参数,可能的目标地址,和在最后参数,等待NAT的周期数被传递。在每个控制器中,周期数是一个计数器的主体,在传输过程中递减,然后在每个周期递减。因此,这个计数器在每个模块相同的周期达到《O》。
[0238]步骤(I):当计数器达到零,跳转到进行发送的代码,并且所有控制器开始同时执行驱动算法(换句话说,第二阶段)。
[0239]它可以考虑设置,在第一阶段和第二阶段之间,用于控制在每个模块加载分配算法的阶段。这个控制阶段可以在一组模块中以一个分布式控制函数的形式,每个控制器执行控制函数,然后向主模块重新发送控制结果。如果一个模块有加载默认的驱动算法,那么第一分配阶段是完全重新启动。
[0240]第二个方面涉及执行该方法的第二阶段的同步编程的实施。
[0241]这种同步编程的核心是基于同步编程语言,特别是该语言确保信号发射器3的控制,控制器4与相邻模块I的控制器4的通信,装备模块I的传感器的读取,在通信信道(或《广播》)的听取。
[0242]同步编程也在相同模块I上并行,它允许实时独立地执行若干功能,通过实例,在相邻模块I之间的通信可以被设计为一个在多个虚拟通道并行通信。因此,若干分布式算法可以通过每个控制器4并行执行。
[0243]这种解决方案的一个优点是提供一个集成实时模拟器的开发环境,其允许开发和模拟程序在计算机上而没有进行实际安装。
[0244]安装IN处理同步反应系统,该系统与来自相邻模块I的数据读取和安装模块I的传感器的环境进行交互。一个同步程序采用同步数据流或数据包,以一般称为《周期M逻辑时间》或《滴答(tick)》为一定时间周期,连接各个模块I和它的环境(相邻模块和传感器)。
[0245]然后,为每个模块I,一个同步程序经过在一个逻辑时间的四个基本步骤:
[0246]el)采样/通信输出信号;
[0247]e2)读取输入信号;
[0248]e3)计算响应和更新模块状态(换句话说,更新其内部变量);
[0249]e4)写入输出信号;
[0250]对于一个周期逻辑或逻辑时间,因果关系意味着,写入输出信号的步骤e4)在读取输入信号的步骤e2)之后进行。作为回报,写入一个电流环的输出信号的步骤e4)将优于读取下一周期的输入信号的步骤e2)进行。
[0251]在实践中,周期或逻辑时间遵循一个周期模式,例如一个周期每10毫秒或每毫秒等;采样周期取决于所需的应用程序。
[0252]图13根据一个同步假设说明了一个模块的控制器的操作,在每个周期P,在该控制器依次执行以下计算步骤,:
[0253 ]步骤e I)采样/通信输出信号;
[0254]步骤e2)读取输入信号(特别是由测量数据和连接器的通信输入数据读取);
[0255]步骤e3)计算响应和更新模块状态;
[0256]步骤e4)写入输出信号。
[0257]换句话说,在第二执行阶段期间,在每个周期中,每个模块I的控制器4执行以下操作:
[0258]-接收至少一个通信输入的同步信号,并将同步信号发送到通信输出;
[0259]-听取模块的所有通信输入(在等待接收来自相邻模块的数据时听取操作);
[0260]-读取来自传感器的测量数据,传感器配备模块(步骤e2)的一部分用于读取输入信号);
[0261]-读取称为状态变量的代表模块状态的变量,特别是在至少一个信号发射器的状态(步骤e2)的另一部分用于读取输入信号);
[0262]-读取(或接收)称为传入数据包的模块的所述至少一个通信输入的数据包,所述数据包将用于驱动算法执行的至少一个输入变量集成(步骤e2)的另一部分用于读取输入信号);
[0263]-执行驱动算法有,作为输入,在当前周期中被接收的数据包的输入变量,测量数据和状态变量,并作为输出,模块的信号发射器的驱动指令,状态变量的更新(相当于步骤e3)用于计算响应和更新),以及与每个通信输出相关的输出变量的计算(相当于步骤e4)写入输出信号);
[0264]-传输一个被称为输出数据包的每一通信输出,输出数据包集成与每个通信输出相关的输出变量(相当于步骤el)采样/通信输出信号)。
[0265]因此,由每个模块的控制器执行的驱动算法,作为一个输入,与下面的输入信号工作:
[0266]-来自传感器的测量数据集成模块;
[0267]-状态变量代表该模块状态,信号发射器状态是与该模块集成的;
[0268]-输入变量(否则称为输入数据包),它对应于模块的通信输入的输入数据。
[0269]在实践中,该模块可以由它自己的变量表示,即,本地变量包括:
[0270]-不依赖于模块的输入变量,但其值来自相邻模块;
[0271]-测量数据;
[0272]-状态变量;和
[0273]-输出变量(否则称为输出数据包),该模块的控制器更改为与相邻模块进行通信。
[0274]因此,重要的是,一个模块可以存储它的本地变量,和其他可能的信息,来执行复杂的行为。例如,该模块可以使用计数器来计算在改变输出之前的时间(引入延迟),可以使用若干连续的测量数据,该数据被存储以使用过滤器等。
[0275]由于每个模块执行相同的程序,每个模块使用相同类型的本地变量,但这些本地变量是当然特定于每个模块。这些本地变量的集合或部分可能因此是一个分布矩阵的形式(即分布式算法的相同),其中每个模块只能访问其自己的矩阵框。
[0276]同步编程的优点是它的简单性和易于实现,以及它的可靠性。另一方面,这种编程的反应性是极端的和准确地已知的,具有一个延迟相当于采样周期。
[0277]如预先介绍的,它可能是适当的考虑安装中模块I的方向,涉及分布式几何算法的使用。
[0278]以下,将考虑,参考图9,模块I具有一个六角形的基底,并且具有六个连接器设置在基座的各自的六条边上,换句话说,图1,2a和2b中同一类型的一个模块I,清楚起见在图9中,控制器,或发射器和传感器没有示出。
[0279]这些称为六角形模块的模块I是对称的,并且可以在安装中转动,因此依靠所有模块1的一个均匀的定向是不可能的。因此,在安装中连接器主体编号0),(:1,02<2,03<4,C5,这反映了模块的定向。
[0280]分布式算法考虑到模块I的定向,通过为所有模块提供一个随机旋转选项,除了主模块外,主模块作为从模块的定向的一个参考。
[0281 ]在一个平面安装的情况下,确定每个模块是可能的,通过波算法,其旋转与主模块相关,从而分配每个模块的连接器的编号。
[0282]在某些应用中(如在安装中由光模块组成的图形、文本或其他几何图形的产生),需要在安装中模块的几何坐标系。
[0283]在平面安装的情况下,通过波算法,通过采取一个参考模块确定模块的几何坐标是可能的,例如,主模块。对于这个确定的几何坐标,计算相对于通道定向的模块的位移是必要的。
[0284]在立体安装(特别是曲面的形式)的情况下,很难建立一个整体坐标系,但确定一个本地坐标系统始终是可能的。
[0285]也可以用几何坐标以界定从代理几何位置访问模块的子网。因此,本地程序(或《广播》)可以同时通过几何和拓扑距离被界定,且然后代理可以控制各种应用的邻近的模块,例如,局部图的应用,等等。
[0286]认识在模块内的信号发射器的拓扑结构,模块的定向和几何坐标系,然后,分配给每个模块和几何坐标的每个信号发射器是可能的。因此,光模块,进行具有一个《像素》型管理的模块化系统是可能的,其中根据坐标每个模块计算每个信号发射器的光值(开关、亮度、颜色等)。
[0287]该安装的结构本身提供访问每个模块,具有一个延迟周期,对应通信输出的相邻模块提交值。换句话说,在执行阶段期间,在每个周期,输入数据包或在当前周期中每个输入的数据包对应于在上一周期由相邻模块的通信输出连接到模块的所述通信输入而传输的一个输出数据包,和输出数据包或在当前周期发送的每个数据包被下个周期的相关相邻模块接收。
[0288]然而,每个模块I接收来自非相邻模块(又称η阶相邻模块,η2 2,)的输出数据并且比相邻模块(又称为I阶相邻模块)更遥远是比较理想的;被显示非相邻模块之间的数据传输是需要若干周期的。收集这样的数据的兴趣,允许每个模块有一个更广泛的环境认知,超出了相邻模块,并且这些数据将在驱动算法的执行中被集成作为额外的输入变量。
[0289]图9示出了与图8中的同一类型的安装IN;在图9中未显示连接器的编号,可参考图8的编号。
[0290]图9示出了一方面称为中央模块MO的模块和另一方面相邻模块Ml (或I阶相邻模块)和非相邻模块M2之间的数据通信,其中非相邻模块是2阶相邻模块;通过计算六个模块Ml和十二个模块Μ2(在安装IN的铺设中孔不存在)。
[0291 ]六个箭头Fl代表从各自的六个模块Ml到中央模块MO来输入变量的通信;这些通信在传输和接收之间是直接的且具有一个延迟周期。
[0292]十二个箭F2,F2’代表从各自的十二个模块M2到中央模块MO来输入变量的通信;因为通过模块Ml传输这些通信是间接的,在传输和接收之间具有至少有两个延迟周期。换句话说,通过交叉模块Ml箭头F2,F2,符合信息路由。
[0293]为了实现这些通信Fl,F2,F2’用于收集来自每个模块Ml,M2在一个给定的时刻用于中央模块MO的输入变量的值,它可以使用三个盒,所述盒专用于每个模块的输出阵列out[i][j]和输入阵列in[i][j],其中指数i表示相邻模块的通信方向和j表示一批帧。将有可能使用out[i][0]和in[i][0]用于直接链接Fl以及in[i][l]和out[i][l]用于间接链接F2和in[i][2]和out[i][2]用于间接链接F2’。
[0294]在通信F2,F2’中的数据路由通过类型分配out[3][l] = in[0][0]用于来自顶部的通信?2,和011讣3][2] = 111[1][0]用于来自顶部右边的通信?2’出现在中间模块肌中。
[0295]为了使来自不同源的信息同步,中央模块MO可能提供一个缓冲区:由通信Fl接收的值在一个周期期间保持在一个缓冲区的中央模块MO,而通信F2,F2’接收待定的值。
[0296]如果每个模块采用相同的路由原理,那么可能与相邻和遥远模块的通信是双向的,如图10所示,通信Fl,F2和F2 ’都是双向的,实现在中间模块Ml中的数据路由。
[0297]当然可能考虑在模块MO和3阶,…,η阶相邻模块之间的通信F3,"_FN;这些通信F3,...FN在中间模块Ml,M2,…,M(N-1)路由传输。
[0298]该描述的其余部分涉及用于执行驱动算法的第二阶段中的模块之间的通信的操作。
[0299]理想情况下,第二执行阶段是基于一个安装模块的周期性同步操作和分布式算法。在每一个周期中,一个固定信息在相邻的模块之间被交换,然后每个模块执行程序或驱动算法的一个周期。为了接近这个同步理想,执行阶段是基于一个伪同步操作,具有下列两种通信模式之一的实现:
[0300]-一种基于单一时间源(主模块)和无抖动控制的第一通信模式,该第一种方法是促进安装的开始和故障模块的识别;以及
[0301]-—种基于可变数量的抖动控制的时间源的第二模式,这种第二模式是开始安装后促进优化操作。
[0302]在这两种模式中,在实施阶段,主模块的控制器发送一个同步信号传播到其他模块,使模块之间彼此交换分布在连续的周期(周期P)的数据帧(或包),其中每一帧分成多个时隙,多个时隙包括保留一个同步信号和用于描述以上局部变量的下一个时隙,有益于执行驱动算法。
[0303]第一种通信模式是基于本地同步操作和无抖动控制,在从主模块的控制器发出的每个周期开始接收同步信号给出的唯一时间源。第一通信模式的描述参考图1la至图1ld和图12a至12C实施。
[0304]参照图1Ia,只有一个模块(在这种情况下,主模块MM)创建分配时间,在其连接器的通信输出,一个同步信号在一个时期P周期的开始,图12A的箭头示出了从模块MM开始向其相邻模块的分配。
[0305]参照图1lb和图lld,这个同步信号由模块的连接器传播。然后主模块借助这个同步信号给出时间或时期。
[0306]参照图12a,同步信号由模块的连接器传播,且这种传播标记了每个模块的周期开始。在输入之一(信号SI)接收同步信号的模块Ml传播该信号在通信输出到相邻模块M2接收它(信号S2),其存在一个在ε和ε+γ之间的延迟中:
[0307]-ε为在模块Ml和相邻模块M2的控制器之间最小传播时间;
[0308]-γ为周期的抖动;
[0309]这段时间迀移是每对相邻模块由各自的连接器直接连接的结果,是通过由ε+γ限制周期的时移迀移连接的。
[0310]参照图12b,主模块MM的每个η阶模块的周期的夹具(jig)可能与ηγ不同。相对主模块MM的2阶模块是在包括在2ε和(2ε+2 γ )之间的时间迀移中,和相对于主模块MM的η阶模块是在包括在ηε和(ηε+ηγ)之间的时间迀移。因此,有必要确保预计通信的时间加上累积抖动时间η γ不超过通信周期的时期P。
[0311]参照图12c,针对这一问题,在时期P期间(也就是说在每一个周期C中)相对主模块MM的每个η阶非主从模块的控制器,将划分为若干时隙的数据包F1D按以下方式分配:
[0312]-第一时隙INl分配给同步信号Sync;
[0313]-第二时隙IN2称为数据空等待时隙,所述第二时隙具有持续时间T2,其中T22 ε +Y ;
[0314]-第三时隙ΙΝ3分配给输出变量(这将记录相邻模块的输入变量,其接收到这个数据包);和
[0315]-第四时隙ΙΝ4称为死时隙,所述第四时隙具有持续时间Τ4,Τ42 ε+ηγ,相对于主模块MM的η阶模块在通信链中。
[0316]因此,相邻模块Ml、Μ2之间彼此传输,在每个周期C,数据包H)如上述进行划分,当然在这个通信存在时间迀移。
[0317]第二时隙IN2称为等待时隙,保证当数据被发送时延迟相邻模块M2将准备接收数据。
[0318]第四时隙IN4称为死时隙,位于周期C的结束,允许在相邻模块提前结束接收并当补偿累积抖动η γ时等待下一个同步信号。因此,会注意到,累积抖动η γ可能会限制每个周期C的通信的有用部分,因此,这第一通信模式需要估计在安装中的最大抖动。
[0319]第二通信模式是基于具有抖动控制的本地同步操作,这是适应限制本地抖动,从而增加了在每个通信周期的数据包的有用部分,通过在每个模块界定抖动。
[0320]在这第二通信模式下,每个从模块的控制器执行以下步骤:
[0321]-如果时间过去,根据收到先前周期的数据包的同步周期,先前周期的数据包来自称为先前相邻模块的相邻模块,称为所述延迟时隙Tdelay的一个时隙,然后所述控制器发送一个具有同步信号的数据包到其他相邻模块,其他相邻模块称为无需等待下一个周期的数据包的同步信号的下一个相邻模块,其来自所述先前相邻模块,其中:
[0322]Tdelay = P+e+γ,其中
[0323]P为主模块周期的持续时间;
[0324]ε为模块的控制器和下一个相邻模块的控制器之间的最小传播时间;和
[0325]γ为周期的抖动;
[0326]-如果,根据收到当前周期的数据包的同步信号,当前周期的数据包来自先前相邻模块,因为收到先前周期来自所述先前相邻模块的先前周期的同步信号,存在一个称为提前时隙Tadvance的时隙,然后在其输出的数据包到下一个相邻模块发送之前,控制器等待时隙Tshif t,其中:
[0327]Tadvance < Ρ+δ,其中
[0328]δ为在模块和先前相邻模块的周期之间的偏移时间,其中δ < ε+ γ。
[0329]换句话说,如果下一个周期的同步信号迟到,也就是说在接收先前同步信号之后延迟间隔Tdelay已经过去之后,然后该模块将无需等待同步信号的周期开始。因此,该模块将创建同步信号到其相邻模块(那么它是与时间源的可变数量通信)。
[0330]相反,如果下一个周期的同步信号到达太早,模块将在解除前等待时隙Tshift,其中Tshift = P+e- γ。
[0331]因此,对于每个模块,周期的持续时间的抖动和产生同步信号的抖动只限于γ,与相邻模块通信的迀移只限于(ε+γ)。因此,可以看出,系统稳定趋于周期开始,它对应的距离(或η阶)对应时间源(主模块)乘以(ε+γ/2)。
[0332]其余的描述涉及在执行阶段安装的延迟,固有的同步编程,并通过实施一个数据路由协议限制这种延迟。
[0333]上文所描述的,对于每个模块控制器,同步编程涉及下面两阶段执行的紧密结合:
[0334]-通信阶段,它允许一个模块到其相邻模块的变量值的传播和通信;
[0335]-计算阶段,用于模块的驱动程序的执行,包括处理不同的变量(输入变量,测量数据,状态变量)和特定模块的变量修改。
[0336]在这个原则下,在当前周期中由相邻模块通信的变量表示在先前周期中由这些相同模块写入的值,以便在相邻模块之间的变量的读取延迟是一个周期(或一个时期)。
[0337]这种延迟在安装中有一种信息流速度的总体后果,这将是每周期一个跳跃。然而,在使用下面的路由协议时,可以避免这种延迟。
[0338]有了这个数据路由协议,在每个周期中,两个相邻模块之间的被交换的数据包以若干组的形式被切割并发送,所述组被分散的时隙比分别在η阶和n+1阶的两个相邻模块之间传播的时隙长,因此,在发送另一个连接器的更高序号N0+1组的对应字节之前,每个序号NO组的字节在一个连接器上被接收。
[0339]事实上,在每一个周期中,根据通信速度和周期持续时间,一定量的信息可能会从一个模块到相邻模块。除了迀移和抖动之外,在两个模块之间的通信在所有的连接器上是同步的。
[0340]通过将发送的数据集切割足够大小的若干组(若干字节),以确保发送的组的迀移超过相邻模块之间的迀移,在发送比另一个N0+1连接器更高序号的组的相应字节之前,确保低序号NO组的每个字节在一个连接器上被接收。
[0341 ]图14示意性地示出了该路由协议,这表明:
[0342]-发送(箭头Fl)从模块Ml到模块M2的序号I的数据组GA,然后
[0343]-相同组GA组从模块M2到模块M3被发送(箭头F2),作为序号2阶的组,等等。
[0344]这当然在从更高序号NO组到低阶序号NO-1组的相反方向的路由也是可能的。但这是在连续两个周期中且不在同一周期内。它也有利于提供路由表来自动操作路由流。
[0345]此路由协议允许显著减少在网络中的延迟,在Z字节组的情况下由一个因素M决定,在一个周期中,数据传递直到Z模块。
[0346]该路由协议与同步程序结合上文的描述将包括两类组分类的例子,那些在两个驱动程序的执行之间进行通信的(再延迟一个固有周期)和那些在驱动程序执行期间通信的(在双缓冲区中并因此延迟两个周期)。
[0347]然而,值得注意的是,这些延迟一个或两个周期是不累积从模块到模块的跳跃数的。举例来说,如果一组字节在一个周期中执行五个跳跃,那么它的四个跳跃的距离的延迟将是一个或两个周期(根据上述两类组),其超过七个跳跃的距离的延迟将是两个或三个周期。对于每个模块和每一个案例,此延迟可准确地被计算。
[0348]虽然复杂的编程,该路由协议有利于模块的使用,在每个周期中,不仅使用直接相邻的变量,而且使用位于位阶大于或等于2的相邻模块的变量。
【主权项】
1.一种用于信号发射器(3)的模块化安装(IN)的可编程模块(I),该模块(I)包括: -由边缘(20)限定的支撑基底(2); -至少一个固定在所述基底(2)上的信号发射器(3); -至少一个固定在所述基底(2)上控制器(4),并与所述至少一个信号发射器(3)相连,用于驱动信号的传输; -至少两个固定在所述基底(2)的边缘(20)上的连接器(5)并连接到所述控制器(4),每个连接器(5)具有: -用于所述至少一个信号发射器(3)和所述至少一个控制器(4)的电源接口;和 -连接到所述至少一个控制器(4)的双向通信接口,并且具有通信输入和通信输出; 其中至少一个所述连接器(5)在模块化安装(IN)中可与一个相邻模块(I)的一个连接器(5)连接,用于允许在所述模块(I)的控制器(4)和所述相邻模块(I)的控制器(4)之间通信的双向通信,以及模块(I)之间的电源供应分配。2.根据权利要求1所述的模块(I),其中至少一个信号发射器(3)是一个光信号发射器,特别是发光二极管型。3.根据权利要求1或2所述的模块(I),进一步包括至少一个传感器,用于测量固定在基底(2)的一个本地参数,特别是近距离传感器型,所述至少一个传感器产生本地测量数据并且控制器(4)被连接到所述至少一个传感器以接收所述本地测量数据。4.根据前述任何一个权利要求所述的模块(I),其中该模块(I)包括在每个边缘(20)上的连接器(5)。5.一种模块化安装(IN),包括若干根据前述任何一个权利要求所述的模块(I),其中每个模块(I)具有至少一个连接到相邻模块(I)的连接器(5)的连接器(5)。6.根据权利要求5所述的模块化安装(IN),其中每个模块(I)的基底(2)具有至少一个边缘(20),其中连接器(5)被固定在边缘(20)上,其中所述边缘(20)是相邻模块(I)的基底(2)的连续的边缘(20),其中连接器(5)也被固定在边上,并且被固定在所述连接的边缘(20)上的两个连接器(5)是相互关联的。7.根据权利要求5或6所述的模块化安装(IN),其中模块(I)的基底(2)被分布在一个平面或立体铺设面,每个模块(I)的基座(2)连续地设置到至少一个相邻模块(I)的基底(2),并且每个模块(I)通过各自的连接器(5)连接到其相邻模块(I)。8.根据权利要求5至7任何之一所述的模块化安装(IN),进一步包括模块(I)的控制器(4)的一个驱动程序的单源,所述源被用于连接到称为主模块的模块(I)的控制器(4)。9.一种用于同步驱动根据权利要求5至8任何之一所述模块化安装(IN)的方法,其中每个模块(I)在一个周期循环执行相同的程序和同步方式,其中,在每个周期,每个模块(I)建立一个与相邻模块(I)的双向通信和执行一个或多个所述程序的算法。10.根据权利要求9所述的方法,其中称为主模块的模块构成用于模块(I)执行相同程序的一个独特的周期时间源,其中所述主模块产生同步信号,所述同步信号通过模块各自的连接器从主模块开始的模块(I)之间循序渐进的传播。11.根据权利要求9或10所述的方法,其中模块(I)执行相同程序之前的一个阶段是用于输入一个驱动算法到至少一个称为主模块的模块(I)的控制器(4),以数据帧的形式分布在连续周期循环,其他模块(I)被称为从模块,并且在其中模块(I)执行相同程序包括以下阶段: -用于执行一个分配算法的第一阶段,在该算法中,驱动算法的数据帧是被同步和周期地分布,从至少一个称为主模块的模块(I)开始的模块(I)之间循序渐进; -一旦分布式驱动算法被完全加载在所有控制器(4),用于每个控制器(4)同步和周期性地执行驱动算法的第二阶段。12.根据权利要求11的方法,其中第一分配阶段之前的一个阶段,用于确定一个最大距离,所述最大距离对应在安装(IN)中至少一个主模块(I)和最遥远的从模块(I)之间通过根据最短路径从相邻模块(I)到相邻模块(I)的路由的最大距离,以建立用于分配阶段的所需时间,以便分布式驱动算法完全加载在所有控制器(4)上。13.根据权利要求11或12所述的方法,其中输入驱动算法的阶段和执行分配算法的第一阶段被执行: -顺序地执行,其中一旦驱动算法完全加载在至少一个主模块(I)的控制器(4),所述第一阶段开始; -或者是并行地执行,其中模块(I)的每个控制器(4)接收在当前周期中驱动算法的数据帧,并在下一个周期中将其传播到相邻模块(I)的控制器(4)。14.根据权利要求11至13任何之一所述的方法,其中,在第一阶段中执行分配算法,在每个周期中,每个模块(I)的控制器(4)执行以下操作: -接收至少一个通信输入的同步信号,并将同步信号发送到通信输出; -听取模块(I)的所有通信输入; -接收模块(I)的至少一个通信输入的驱动算法的数据帧,所述数据帧对应于在先前循环期间由相邻模块(I)的通信输出发送的连接到所述模块(I)的通信输入的数据帧; -在所述控制器(4)中存储所述数据帧; -传送所述数据帧到相邻模块(I)的通信输出。15.根据权利要求11至14任何之一所述的方法,其中,在执行驱动算法的第二阶段,在每个周期,每个模块(I)的控制器(4)执行以下操作: -接收至少一个通信输入的同步信号,并在通信输出传送同步信号; -听取模块(I)的所有通信输入; -读取至少一个传感器的测量数据; -读取称为状态变量的表示模块(I)状态的变量,特别是至少一个信号发射器(3)的状态; -读取模块(I)的至少一个通信输入的称为输入数据包的数据包,所述数据包被称为至少一个输入变量集成,用于执行驱动算法; -执行驱动算法,作为输入,数据包的输入变量在当前周期中被接收,测量数据和状态变量,作为输出,在模块(I)的信号发射器(3)的驱动指令,更新状态变量,并计算与每个通信输出相关的输出变量; -在每个通信输出传送称为输出数据包的数据包,所述数据包与每个通信输出相关的输出变量集成。16.根据权利要求15所述的方法,其中,在执行驱动算法的第二阶段,在每个周期,输入数据包或在当前周期的每个输入数据包对应输出数据包在先前周期由相邻模块(I)在通信输出连接到所述模块(I)的通信输入,和输出数据包或在当前周期每个输出数据包被相关的相邻模块(I)在下一个周期接收。17.根据权利要求15或16所述的方法,其中第二阶段执行驱动算法包括,优选在第二阶段的开始,一个具有无抖动控制和独特时间源的通信阶段,所述独特时间源在每个周期开始由同步信号给出,所述同步信号由至少一个主模块(I)的控制器(4)发送。18.根据权利要求15或16所述的方法,其中第二阶段执行驱动算法包括,优选在安装(IN)开始之后,一个具有抖动控制和可变数量的时间源的通信阶段,其中至少一个从模块(I)的控制器(4)产生它自己的同步信号在其通信输出上传输到相邻模块(I)。19.根据前述权利要求11至18任何之一所述的方法,其中执行驱动算法的第二阶段执行数据路由协议,其中在每个周期的数据包在两个相邻模块(I)之间的交换被切断,并在若干组被发送,所述组被分配的时隙比分别在η阶和n+1阶两个相邻模块(5)之间传播的偏移时间更长,以便在一个连接器(5)上序号NO组的每个字节在另一个连接器上发送更高序号N0+1组的对应字节之前被接收。
【文档编号】H05B37/00GK105850229SQ201480063504
【公开日】2016年8月10日
【申请日】2014年9月16日
【发明人】彼得·涅博特, 马修·卡拉尔
【申请人】艾克斯-马赛大学, 国家科学研究中心