1.本发明涉及基于光的时间触发总线领域,尤其涉及一种时间触发无源光总线及其实现方法。
背景技术:2.光纤即为光导纤维的简称。光纤通信是以光波作为信息载体,以光纤作为传输媒介的一种通信方式。从原理上看,构成光纤通信的基本物质要素是光纤、光源和光检测器。光纤通信是利用光波作载波,以光纤作为传输媒质将信息从一处传至另一处的通信方式,被称之为“有线”光通信。当今,光纤以其传输频带宽、抗干扰性高和信号衰减小,而远优于电缆、微波通信的传输,已成为世界通信中主要传输方式。
3.tta(time
‑
triggered architecture,时间触发构架)的通信组织方式是通过tdma(time division multiple address时分多路复用)实现的,每个通信设备在时间轴上指定的时间槽(slot)发送信息。tta架构基于全局同步时钟,采用预先设计的静态全局调度列表驱动tdma模式的数据传输,与外部事件无关。这种传输模式使得tta能以最小的抖动和可预测的延时在设备间提供数据传输服务,并避免总线冲突。现有技术中实现时间触发架构的技术众多,其中专利号cn103850802a、专利名称为:基于时间触发协议ttp/c总线的电子控制器及fadec系统的专利公开了一种基于ttp/c的总线的电子控制器,以及该控制器与多种功能模块的连接关系,通过ttp/c总线的电子控制器,实现ttp/c总线冗余,完成时间同步功能,以及功能子板间数据交换。
4.目前针对时间触发架构总线协议,大都采用ttp/c协议,以电缆为媒介完成的。而一般的电缆链路如rs485,can的速率有限,难以满足高速的数据传输需求。同时电缆较光纤重量较重,过长的电缆会增加机身整体重量。并且由于总线的特性,使得冲突避免也成为了需要兼顾考虑的问题。对于configuration data的配置比较繁琐,需要逐一设备进行配置。
技术实现要素:5.本发明公开了一种时间触发无源光总线,目的是提供重量较轻、提高带宽、且规避了冷启动阶段发生碰撞的总线。
6.为了解决上述问题,本发明采取了以下技术方案:
7.一种时间触发无源光总线,包括第一光总线连接器、第二光总线连接器、多个光总线终端控制器、第一光分路器和第二光分路器;每个光总线终端控制器有两个端口,两个端口分别连接到第一光分路器和第二光分路器;每个光总线连接器有2个光纤端口,第一光总线连接器的一个端口连接第一光分路器,第二光总线连接器的一个端口连接第二光分路器,第一光总线连接器的另一个端口与第二光总线连接器的另一个端口相连。
8.所述光总线连接器均设置有光总线连接器状态控制单元,所述光总线终端控制器均设置有光总线终端控制器状态控制单元。
9.本发明还公开了一种时间触发无源光总线的实现方法,应用于以上所述的一种时
间触发无源光总线,所述总线包括两个光总线连接器、多个光总线终端控制器、两个光分路器,所述光总线连接器均设置有光总线连接器状态控制单元,所述光总线终端控制器均设置有光总线终端控制器状态控制单元,两个光总线连接器记为第一光总线连接器、第二光总线连接器,两个光分路器记为第一光分路器和第二光分路器,包括以下步骤:
10.s1:初始化设备,加载光总线连接器状态控制单元和光总线终端控制器状态控制单元;
11.s2:打开光总线连接器状态控制单元或光总线终端控制器状态控制单元的状态控制逻辑;
12.s3:等待生成链路拓扑,等待链路时间参数测量完成;
13.s4:完成光总线终端控制器配置,完成冷启动过程;
14.s5:维护链路拓扑,进行ottb_frame的传输。
15.优选地,所述光总线连接器状态控制单元的状态控制逻辑包括以下步骤,
16.步骤010:默认使用第一光总线连接器发送配置数据,通过第一光分路器下发到各个节点,第二光总线连接器将来自第一光总线连接器的配置数据转发到第二光分路器,并完成对第二光分路器的链路延时信息的测量,设置本地成员向量为0,初始化设备本地时钟为0,全局使用一个本地时钟,本地时钟以micro clock为最小时钟周期;
17.步骤020:第一光总线连接器循环向所连的第一光分路器和第二光总线连接器发送t_sync_frame帧,两个光总线连接器分别记录各自发送t_sync_frame帧的发送时刻t1,同时开始计时,等待对应设备响应或响应超时;光总线连接器收到对应设备的n_resp_frame帧,停止计时,记录当前接收到n_resp_frame帧的时刻t2,两个光总线连接器分别计算出各自的链路延时参数t_wiredelay=(t2
‑
t1
‑
t_cost)/2,其中t_cost为光总线终端控制器处理t_sync_frame所花费的时间;
18.步骤030:等待当前网络中所有网络设备遍历检测完成,向光总线终端控制器发送配置信息以及两个光分路器分别测量得到的链路延时参数;
19.步骤040:使用本地成员向量填充allow_coldstart_frame帧中的成员向量字段;
20.步骤050:检测并维护拓扑;
21.所述光总线终端控制器状态控制单元的状态控制逻辑包括以下步骤:
22.步骤110:设置所有设备的成员向量,将自身membership flag对应位置为1,其他位置设为0,初始化设备本地时钟为0;
23.步骤120:分别监听两条链路上是否存在来自光总线连接器的t_sync_frame帧,并且帧中的成员向量与设备自身成员向量值相同,使用第一光总线连接器发送的t_sync_frame帧的时间信息同步本地时钟,分别处理两个链路的t_sync_frame帧,当任意链路接收到t_sync_frame帧后,立刻通过该链路发送响应报文n_resp_frame;
24.步骤130:完成响应的光总线终端控制器监听链路上属于自己的配置信息,校验自己的配置信息后,若校验通过回复con_ack,校验不通过则回复con_fail;
25.步骤140:监听到allow_coldstart_frame帧后,所有光总线终端控制器接收到含有当前网络全局视图的成员向量,至此完成冷启动过程,所有接收到allow_coldstart_frame帧的光总线终端控制器将本地时钟设置为相对于光总线连接器的链路延时,同时设置当前集成周期为0,到达全局时刻global_restart_point_time后,重置本地时钟为0,接
着按照配置信息实现正常的通信;
26.步骤150:形成集团的各个光总线终端控制器按照本地的计划时间标发送time_trigger_frame时间触发流量,利用gmp算法和分布式时钟算法完成拓扑的维持。
27.优选地,所述步骤010包括以下步骤:
28.步骤011:初始化本地时钟,如果系统中含有gps设备,则将本地gps_clock计数器同步到gps设备,并将本地计数器清0;若系统中不含有外部时钟源,则仅将本地时钟计数器清0;
29.步骤012:设置发送成员向量为64’h0000_0001,即此次目标设备为成员向量为64’h0000_0001的设备;设置本地成员向量为64’h0000_0000。
30.优选地,所述步骤020包括以下步骤:
31.步骤021:第一光总线连接器分别向第一光分路器和第二光总线连接器发送包含所述发送成员向量的t_sync_frame帧,记录发送时刻t1并开启link_latency_measure_count计数器;
32.步骤022:将发送成员向量中的1左移一位,等待下一次发送;
33.步骤023:等待对应设备响应的n_resp_frame报文,若第一光总线连接器收到正确的n_resp_frame报文,则将本地成员向量对应位置置位;
34.步骤024:根据接收到n_resp_frame报文的时间点t2,以及已知的光总线终端控制器处理计算t_sync_frame帧的时间t_cost,计算出链路延时参数t_wiredelay=(t2
‑
t1
‑
t_cost)/2;
35.步骤025:如果已经遍历检测完系统中所有设备,则跳转到所述步骤030,否则回到步骤021。
36.优选地,所述步骤030包括以下步骤:
37.步骤031:检查本地成员向量中成员变量为1的设备,向这些光总线终端控制器发送各自的configuration data信息以及链路时间参数,链路时间参数包含两部分内容,一部分是各个光总线终端控制器与光总线连接器之间的链路时延,另一部分是光总线连接器内部处理时延;
38.步骤032:光总线终端控制器回复con_ack信息或超过最大重新配置次数后,对下一个光总线终端控制器进行配置。
39.优选地,所述步骤040包括以下步骤:
40.步骤041:使用本地成员向量作为allow_coldstart_frame帧中的成员向量字段,使用gps_clock变量作为allow_coldstart_frame帧中gps信息字段,发送allow_coldstart_frame帧;
41.步骤042:发送allow_coldstart_frame帧后清零本地时钟,然后本地时钟正常计时到global_restart_point_time后,重置本地时钟为0,接着按照配置信息实现正常的通信。
42.优选地,所述步骤050包括以下步骤:
43.步骤051:对于原本集团中不存在的多个光总线终端控制器,在多个光总线终端控制器上电后各自的第一个node slot中完成对链路时间参数的测量以及配置数据信息的配置,并在各自的node slot将链路时间参数广播给其他所有设备;
44.步骤052:由光总线终端控制器发送来的不合格的ottb_frame,光总线连接器不予转发并且下发warning原语警告。
45.优选地,所述步骤150包括以下步骤:
46.步骤151:若收到allow_coldstart_frame帧,将该allow_coldstart_frame帧中的成员向量加入到自己本地的成员向量中去,若收到非allow_coldstart_frame帧,完成自身的集成操作;
47.步骤152:每个光总线终端控制器在自己的node slot中发送数据帧,并根据gmp算法更新本地成员向量。
48.本发明链路速率高,并且降低了机身重量,降低了布线难度,光纤的抗干扰能力较强,提高了系统的整体抗干扰能力;同时上行和下行波长不同,提供了可以避免冲突的冷启动方式;相较于ttp/c协议需要提前离线测量好链路相关时间参数信息,光总线连接器会实时测量链路时间参数,实现了时间参数的在线测量,同时简化了链路参数的计算;此外,光总线连接器一次性完成对所有在线设备configuration data的加载,并增加了对光总线终端控制器状态的监控,同时简化了链路时间参数的测量。
附图说明
49.图1为实施例1的时间触发无源光总线结构示意图;
50.图2为实施例2中本发明的实现方法的流程图;
51.图3为实施例3和实施例4中t_sync_frame,n_resp_frame,allow_coldstart_frame,ottb_frame等帧格式图;
52.图4为实施例3和实施例4中con_ack,con_fail和warning原语格式图;
53.图5为实施例3的光总线连接器状态控制单元的状态控制逻辑流程图;
54.图6为实施例4的光总线终端控制器状态控制单元的状态控制逻辑流程图;
55.图7为现有时间触发总线技术的结构示意图。
具体实施方式
56.实施例1
57.本实施例的一种时间触发无源光总线结构如图1所示,包括第一光总线连接器、第二光总线连接器、多个光总线终端控制器、第一光分路器和第二光分路器;每个光总线终端控制器有两个端口,两个端口分别连接到第一光分路器和第二光分路器;每个光总线连接器有2个光纤端口,第一光总线连接器的一个端口连接第一光分路器,第二光总线连接器的一个端口连接第二光分路器,第一光总线连接器的另一个端口与第二光总线连接器的另一个端口相连。
58.光总线连接器均设置有光总线连接器状态控制单元,光总线终端控制器均设置有光总线终端控制器状态控制单元。
59.在本实施例中,光总线终端控制器4为有冷启动能力的设备,且光总线终端控制器4上电时,光总线连接器状态控制单元正常工作,为方便对光总线终端控制器4和光总线连接器中各自的成员向量进行区分,具体地,将光总线终端控制器4的本地成员向量描述成nl_mv4,将光总线连接器的发送成员向量描述成ts_mv1,将光总线连接器的本地成员向量
描述成tl_mv1,将光总线连接器的发送成员向量的初始值设置为64’h0001且本地成员向量的初始值为64’h0000_0000。光总线终端控制器1的tl_mv1初始值为64’h0000_0001,光总线终端控制器2的tl_mv2初始值为64’h0000_0002,光总线终端控制器3的tl_mv3初始值为64’h0000_0004,光总线终端控制器4的tl_mv4初始值为64’h0000_0008,光总线终端控制器5的tl_mv5初始值为64’h0000_0010,光总线终端控制器5在ttpon系统形成一段时间之后上电。规则设定本领域技术人员根据需要进行自由设置,设定规则不一样,对应接收配置文件的顺序不用,但是不影响整个网络的形成,维护以及正常时间触发流量。
60.实施例2
61.一种时间触发无源光总线的实现方法,可以应用于实施例1的一种时间触发无源光总线,总线包括两个光总线连接器、多个光总线终端控制器、两个光分路器,光总线连接器均设置有光总线连接器状态控制单元,光总线终端控制器均设置有光总线终端控制器状态控制单元,两个光总线连接器记为第一光总线连接器、第二光总线连接器,两个光分路器记为第一光分路器和第二光分路器,其工作流程图如图2所示包括以下步骤:
62.s1:初始化设备,加载光总线连接器状态控制单元和光总线终端控制器状态控制单元;
63.s2:打开光总线连接器状态控制单元或光总线终端控制器状态控制单元的状态控制逻辑;
64.s3:等待生成链路拓扑,等待链路时间参数测量完成;
65.s4:完成光总线终端控制器配置,完成冷启动过程;
66.s5:维护链路拓扑,进行ottb_frame的传输。
67.实施例3
68.参阅图5,本实施例基于实施例2的方法流程,其中,光总线连接器状态控制单元的状态控制逻辑包括以下步骤,
69.步骤010:默认使用第一光总线连接器发送配置数据,通过第一光分路器下发到各个节点,第二光总线连接器将来自第一光总线连接器的配置数据转发到第二光分路器,并完成对第二光分路器的链路延时信息的测量,设置本地成员向量为0,初始化设备本地时钟为0,全局使用一个本地时钟,本地时钟以micro clock为最小时钟周期;
70.步骤020:第一光总线连接器循环向所连的第一光分路器和第二光总线连接器发送t_sync_frame帧,两个光总线连接器分别记录各自发送t_sync_frame帧的发送时刻t1,同时开始计时,等待对应设备响应或响应超时;光总线连接器收到对应设备的n_resp_frame帧,停止计时,记录当前接收到n_resp_frame帧的时刻t2,两个光总线连接器分别计算出各自的链路延时参数t_wiredelay=(t2
‑
t1
‑
t_cost)/2,其中t_cost为光总线终端控制器处理t_sync_frame所花费的时间;
71.步骤030:等待当前网络中所有网络设备遍历检测完成,向光总线终端控制器发送配置信息以及两个光分路器分别测量得到的链路延时参数;
72.步骤040:使用本地成员向量填充allow_coldstart_frame帧中的成员向量字段;
73.步骤050:检测并维护拓扑。
74.优选地,步骤010包括以下步骤:
75.步骤011:初始化本地时钟,如果系统中含有gps设备,则将本地gps_clock计数器
同步到gps设备,并将本地计数器清0;若系统中不含有外部时钟源,则仅将本地时钟计数器清0;
76.步骤012:设置发送成员向量为64’h0000_0001,即此次目标设备为成员向量为64’h0000_0001的设备;设置本地成员向量为64’h0000_0000。
77.优选地,步骤020包括以下步骤:
78.步骤021:第一光总线连接器分别向第一光分路器和第二光总线连接器发送包含发送成员向量的t_sync_frame帧,记录发送时刻t1并开启link_latency_measure_count计数器;
79.步骤022:将发送成员向量中的1左移一位,等待下一次发送;
80.步骤023:等待对应设备响应的n_resp_frame报文,若第一光总线连接器收到正确的n_resp_frame报文,则将本地成员向量对应位置置位;
81.步骤024:根据接收到n_resp_frame报文的时间点t2,以及已知的光总线终端控制器处理计算t_sync_frame帧的时间t_cost,计算出链路延时参数t_wiredelay=(t2
‑
t1
‑
t_cost)/2;
82.步骤025:如果已经遍历检测完系统中所有设备,则跳转到步骤030,否则回到步骤021。
83.优选地,步骤030包括以下步骤:
84.步骤031:检查本地成员向量中成员变量为1的设备,向这些光总线终端控制器发送各自的configuration data信息以及链路时间参数,链路时间参数包含两部分内容,一部分是各个光总线终端控制器与光总线连接器之间的链路时延,另一部分是光总线连接器内部处理时延;
85.步骤032:光总线终端控制器回复con_ack信息或超过最大重新配置次数后,对下一个光总线终端控制器进行配置。
86.优选地,步骤040包括以下步骤:
87.步骤041:使用本地成员向量作为allow_coldstart_frame帧中的成员向量字段,使用gps_clock变量作为allow_coldstart_frame帧中gps信息字段,发送allow_coldstart_frame帧;
88.步骤042:发送allow_coldstart_frame帧后清零本地时钟,然后本地时钟正常计时到global_restart_point_time后,重置本地时钟为0,接着按照配置信息实现正常的通信。
89.优选地,步骤050包括以下步骤:
90.步骤051:对于原本集团中不存在的多个光总线终端控制器,在多个光总线终端控制器上电后各自的第一个node slot中完成对链路时间参数的测量以及配置数据信息的配置,并在各自的node slot将链路时间参数广播给其他所有设备;
91.步骤052:由光总线终端控制器发送来的不合格的ottb_frame,光总线连接器不予转发并且下发warning原语警告。
92.实施例4
93.参阅图6,本实施例基于实施例2的方法,其中光总线终端控制器状态控制单元的状态控制逻辑包括以下步骤:
94.步骤110:设置所有设备的成员向量,将自身membership flag对应位置为1,其他位置设为0,初始化设备本地时钟为0;
95.步骤120:分别监听两条链路上是否存在来自光总线连接器的t_sync_frame帧,并且帧中的成员向量与设备自身成员向量值相同,使用第一光总线连接器发送的t_sync_frame帧的时间信息同步本地时钟,分别处理两个链路的t_sync_frame帧,当任意链路接收到t_sync_frame帧后,立刻通过该链路发送响应报文n_resp_frame;
96.步骤130:完成响应的光总线终端控制器监听链路上属于自己的配置信息,校验自己的配置信息后,若校验通过回复con_ack,校验不通过则回复con_fail;
97.步骤140:监听到allow_coldstart_frame帧后,所有光总线终端控制器接收到含有当前网络全局视图的成员向量,至此完成冷启动过程,所有接收到allow_coldstart_frame帧的光总线终端控制器将本地时钟设置为相对于光总线连接器的链路延时,同时设置当前集成周期为0,到达全局时刻global_restart_point_time后,重置本地时钟为0,接着按照配置信息实现正常的通信;
98.步骤150:形成集团的各个光总线终端控制器按照本地的计划时间标发送time_trigger_frame时间触发流量,利用gmp算法和分布式时钟算法完成拓扑的维持。
99.进一步地,步骤150包括以下步骤:
100.步骤151:若收到allow_coldstart_frame帧,将该allow_coldstart_frame帧中的成员向量加入到自己本地的成员向量中去,若收到非allow_coldstart_frame帧,完成自身的集成操作;
101.步骤152:每个光总线终端控制器在自己的node slot中发送数据帧,并根据gmp算法更新本地成员向量。
102.需要特别说明的是,在本实施例与实施例3中的帧t_sync_frame,n_resp_frame,allow_coldstart_frame和ottb_frame的帧格式图如图3所示,con_ack,con_fail和warning原语格式图如图4所示。
103.另外,成员向量是一组由bit组成的向量,其中的每一位对应一台控制器,当某一位为1时,代表该位对应的控制器正常工作,所以本实施例以“成员向量最低位为1”对应的控制器作为时钟衡量标准。
104.比起现有时间触发总线技术,现有的时间触发总线技术的示意图如图7所示,如果设备1和设备2距离设备4和设备5较远,且设备1和设备5几乎同时发送冷启动帧,则可能会出现如下一种情形,即:设备2收到了来自设备1的冷启动帧,设备4收到了来自设备5的冷启动帧,但是两个冷启动帧在设备3处发生了碰撞,设备3检测到了碰撞。如果发生上述情形,则会导致一种极端情况的出现,即设备2使用来自设备1的冷启动帧完成了集成,设备4使用来自设备5的冷启动帧完成了集成,二设备3由于碰撞无法完成集成。这种方法形成了两个小集团。同时如图7所示的总线,需要每一个设备分别配置configuration data,这同时也使得配置变得繁琐。
105.而本方法通过光总线连接器事先完成对其余光总线终端控制器的粗同步,并通过光总线连接器发送allow_coldstart_frame使各个节点时钟达成一致,避免小集团的冷启动方案。同时光总线连接器又通过统一配置的方式,实现了一台机器对多台机器进行配置。利用光纤链路全双工通信的特性实现了光总线连接器故障警告的机制。