基于二乘二取二的列车LCU控制系统的制作方法
本发明涉及一种计算机通信技术领域,特别是涉及一种基于二乘二取二的列车lcu控制系统。
背景技术:
目前,随着城市化进展速度的不断加快,城市人口数量逐渐增多,道路交通压力逐渐增大。地铁等城市轨道交通的出现,有效缓解了城市交通的压力,提高了人们出行的便利性。信号系统是城市轨道交通系统的重要组成部分,运行过程中,如出现故障,将会对乘客的安全造成较大的影响。
地铁、列车等轨道车辆一般都存在有多节车厢,因此在轨道交通的控制系统中需要对多节车厢进行控制,现有技术中继电器主要通过触点的闭合及断开对控制电路进行控制,由于继电器的电气特性,难以保证地铁控制系统的安全,进而对列车的安全行驶产生极大的威胁。
将冗余技术应用到城市轨道交通信号系统的设计过程中,是提高系统应用安全性的主要途径。冗余有两层含义,第一层含义是指多余的不需要的部分,第二层含义是指人为增加重复部分,其目的是用来对原本的单一部分进行备份,以达到增强其安全性的目的,这在信息通信系统当中有着较为广泛的应用。在通信工程当中,冗余指出于系统安全和可靠性等方面的考虑,人为地对一些关键部件或功能进行重复的配置。当系统发生故障时,比如某一设备发生损坏,冗余配置的部件可以作为备援,及时介入并承担故障部件的工作,由此减少系统的故障时间。
近年来,为了提高列车控制系统的安全性和可靠性,动态冗余技术在列车控制系统上的应用得到了快速发展,动态冗余技术利用多硬件保障系统的可靠性,连锁机有四个计算机处理信息,按处理器不同与操作系统不同分为两类系统,大体意思就是双套系统同时工作,而每套系统采用两台相同的计算机进行数据处理,同时产生两组采集同一工作的数据,而系统又从中提取两个相同的命令信息作为最终执行。
然而,现有技术中,列车控制的动态冗余系统仍然存在以下问题:(1)无法对它车级联控制信号进行冗余处理,系统可靠性存在瓶颈。(2)系统依赖各板卡控制单元的时钟电路实现同步,这种硬件解决方案对时钟电路的精度要求高,否则容易出现时钟误差,会对整个系统的稳定性和可靠性造成直接影响。(3)现有采用双总线冗余通信的系统中,双总线通信切换时,存在通信数据不连续,或通信数据重复的情况。
技术实现要素:
本发明的目的在于克服现有技术的不足,提供一种基于二乘二取二的列车lcu控制系统,实现对各io板采集数据、通信板级联控制命令的冗余处理,提高输出控制命令和级联控制命令执行的可靠性,保证列车的安全稳定运行。
本发明的目的是通过以下技术方案来实现的:
基于二乘二取二的列车lcu控制系统,包括第一主控板、第二主控板、若干vio板组、若干dio板组和通信板,每个vio板组由第一vio板和第二vio板组成,每个dio板组由第一dio板和第二dio板组成;
所述的第一主控板、第二主控板、通信板和各vio板均设有两个控制单元,各板的两个控制单元之间均通过板内通信总线通信连接,各板的每个控制单元之间均通过板间通信总线通信连接;
各vio板的两个控制单元对开关量输入信号进行输入二取后,通过板间通信总线将二取结果分别发送至第一主控板和第二主控板;
各dio板输入自检并采集开关量输入信号,自检结果和采集结果计算得到输入值,通过板间通信总线将输入值和校验结果发送至第一主控板和第二主控板;
通信板的两个控制单元分别通过级联通信总线接收它车级联控制命令,且通信板的第一控制单元通过板间通信总线将其接收的级联控制命令共享给通信板的第二控制单元,当第一控制单元发送不成功时,由第二控制单元将其接收到的级联控制命令发送至板间通信总线;
第一主控板、第二主控板板内的两个控制单元均接收vio板、dio板和通信板的信号分别进行二取后,各自得到输出控制命令和级联控制命令,两个控制单元的输出控制命令和级联控制命令再分别经过二取后发送至板间通信总线;
各vio板的两个控制单元分别接收来自第一主控板和第二主控板发送的输出控制命令,两个控制单元对接收到的第一主控板的输出控制命令进行二取,两个控制单元对接收到的第二主控板的输出控制命令进行二取,两个二取结果二乘得到最终的输出控制命令,执行输出驱动;
各dio板分别接收来自第一主控板和第二主控板发送的输出控制命令并校验,二乘后得到最终的输出控制命令,执行输出驱动;
通信板的两个控制单元分别接收来自第一主控板和第二主控板发送的级联控制命令,两个控制单元对接收到的第一主控板的级联控制命令进行二取,两个控制单元对接收到的第二主控板的级联控制命令进行二取,两个二取结果二乘,控制单元将自身二乘结果的数据部分与另一个控制单元二乘结果的校验部分组合发送至级联通信总线。
基于二乘二取二的列车lcu控制系统,还包括存储板、第一电源板和第二电源板,存储板与板间通信总线及通信板相连,存储板通过通信网络与列车信息服务网平台通信连接;第一电源板分别与第一主控板、各第一vio板、各第一dio板、通信板和存储板的供电端口相连,第二电源板分别与第二主控板、各第二vio板、各第二dio板、通信板和存储板的供电端口相连,第一电源板、第二电源板均为通信板和存储板冗余供电。
所述的通信板包括mvb通信接口和级联通信总线接口,所述的通信板通过mvb总线与列车tcms系统通信连接,各个车厢lcu控制系统的通信板之间通过级联通信总线相连。
基于二乘二取二的列车lcu控制系统,还包括接口板和母板,各外部输入信号通过母板输入到vio和dio板卡的各个输入通道,机箱内的逻辑运算结果通过母板输出到接口板,驱动外部执行器。
板内两个控制单元间进行数据共享时,若报文的crc校验错误,则丢弃本次数据;若报文的crc校验正确,但数据不一致,则对相应数据进行安全导向处理。
所述的第一主控板和第二主控板内的各控制单元均具有产生系统同步时钟的功能,第一主控板和第二主控板在同一时刻只有一个主控板发送系统同步时钟,同一个主控板内的两个控制单元按照预设优先级产生系统同步时钟;
所述的系统同步时钟为由某主控板的某控制单元发出的系统广播报文,广播报文中包含系统同步节拍信息。
所述的板间通信总线包括至少两条,板间通信总线的通信方法包括以下步骤:
s1:发送方每次发送报文时,将内容相同的报文同时压入各条通信总线的报文发送队列中;
s2:各条通信总线分别从其报文发送队列中取数据发送;
s3:接收方将通过各条通信总线接收到的报文放入同一队列,对于内容相同的多个互为冗余的报文,系统使用最先到达的报文、丢弃后达到的冗余报文。
所述的板间通信总线为双can总线,发送方发送的所有报文,按照发送的先后顺序标记时间戳;
步骤s1中,当某条总线的报文发送队列满时,从其报文发送队列中丢掉一个最早时间写入的报文,再继续向其报文发送队列写报文。
步骤s3中,接收方收到来自发送方的报文后,执行如下逻辑判断:
ss1:判断冗余报文最大时间戳cmax是否大于冗余报文最小时间戳cmin,若是则跳转至步骤ss2,若否则跳转至步骤ss6;
ss2:判断报文时间戳是否大于cmin且小于等于cmax,若是则跳转至步骤ss3,若否则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳;
ss3:判断当前报文是否来自第一条can总线can0,若是则跳转至步骤ss4;若否则跳转至步骤ss5;
ss4:继续判断前一个报文来源标志是否为第二条can总线can1,若是则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳,更新前一个报文来源标志为can0;若否则判断为冗余报文,直接更新前一个报文来源标志为can0;
ss5:继续判断前一个报文来源标志是否为第一条can总线can0,若是则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳,更新前一个报文来源标志为can1;若否则判断为冗余报文,直接更新前一个报文来源标志为can1;
ss6:判断报文时间戳是否大于cmin或小于等于cmax,若是则跳转至步骤ss7,若否则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳;
ss7:判断当前报文是否来自第一条can总线can0,若是则跳转至步骤ss8;若否则跳转至步骤ss9;
ss8:继续判断前一个报文来源标志是否为第二条can总线can1,若是则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳,更新前一个报文来源标志为can0;若否则判断为冗余报文,直接更新前一个报文来源标志为can0;
ss9:继续判断前一个报文来源标志是否为第一条can总线can0,若是则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳,更新前一个报文来源标志为can1;若否则判断为冗余报文,直接更新前一个报文来源标志为can1;
其中,如果报文时间戳取值范围是(0~m),报文发送队列深度n,则n≯m;冗余报文最大时间戳cmax=最后一次接收到的有效报文时间戳,冗余报文最大时间戳初始值为时间戳计数最大值;冗余报文最小时间戳cmin=cmax-n。
所述的vio板和dio板的控制单元均连接输出驱动单元,输出驱动单元与带容性负载能力的干接点输出模块相连;
所述的带容性负载能力的干接点输出模块包括补偿延时电路、输出控制电路和干接点输出电路,所述的补偿延时电路包括取样电阻rs、第二电阻r2、第三电阻r3、第四电阻r4、第一二极管d1、第二二极管d2、第一稳压二极管z1和第一电容c1,所述的干接点输出电路包括mos管,mos管的漏极为干接点输出电路的正极输出,mos管的源极通过取样电阻rs连接干接点输出电路的负极输出,mos管的栅极通过第一电阻r1与所述输出控制电路的高压侧栅极驱动输出端相连;
所述第二电阻r2的一端连接于mos管的源极与取样电阻rs之间,另一端与所述输出控制电路的检测信号输入端相连,第一电容c1的一端连接于所述输出控制电路的检测信号输入端与第二电阻r2之间,另一端接地,第一二极管d1、第二二极管d2、第三电阻r3依次串联后与第二电阻r2并联,第一稳压二极管z1和第四电阻r4串联后与第二电阻r2并联。
所述的输出控制电路为带电流检测的门极驱动ic,所述的第一电阻r1与mos管的栅极之间设置有偏置电路,所述的偏置电路包括第五电阻r5和第二稳压二极管z2,第五电阻r5的一端连接于第一电阻r1与mos管的栅极之间,另一端接地,第二稳压二极管z2并联于第五电阻r5的两端。
本发明的有益效果是:
(1)本发明可实现对各io板采集数据、通信板级联控制命令的冗余处理,提高了输出控制命令和级联控制命令执行的可靠性,保证列车的安全稳定运行。
(2)双电源板为每组板卡单独供电,同时双电源板为通信板和存储板冗余供电,提高了系统供电稳定性。
(3)本发明板内两个控制单元间进行数据共享时,若报文的crc校验错误,则丢弃本次数据;若报文的crc校验正确,但数据不一致,则对相应数据进行安全导向处理,安全导向处理的意思是,将数据修改为系统规定的安全值,避免出现安全事故。
(4)本发明由主控板内的某控制单元产生系统同步时钟,系统同步时钟为由某控制单元发出的系统广播报文,广播报文中包含系统同步节拍信息。使用广播报文的软件形式实现了系统时钟的同步,实现成本低且可实现无缝同步,进一步提高了整个系统的稳定性和可靠性。
(5)本发明板间多总线切换时,总线通信报文“零”丢失,通信数据连续、数据不丢失、数据不重复,从而实现多通信总线无缝切换,提高了交通控制系统的安全性、可靠性和可用性。假设报文发送方发送报文队列深度为n,当接收方在接收到n个报文后,如果发送侧发生重启,发送报文时间戳重新从0开始时,前面的n个报文会作为冗余报文处理,造成部分通信数据的丢失。本方法通过逻辑判断报文时间戳之间的关系、当前报文来自哪一条总线、前一个报文来源标志是哪一条总线,从而杜绝了此种情况下数据丢失的情况,提高了特殊情形下的数据可靠性。
(6)本申请干接点输出电路带容性负载能力,可以有效避免容性负载开启的瞬间产生的大的冲击电流而引起误动作,能够起到保护电路中mos管的作用,可以有效提高电路的可靠性和可用性,大大减小因为容性负载而引起的故障。通过补偿延时电路的设计,实现了在不同负载电流的情况下实现不同时间的延时功能,遇到冲击或干扰电流不误关断,并且不烧损驱动。
附图说明
图1为本发明单台lcu控制系统结构框图;
图2为本发明主控板结构框图;
图3为本发明vio板结构框图;
图4为本发明dio板结构框图;
图5为本发明通信板结构框图;
图6为本发明整体工作流程图;
图7为vio输入采集流程图;
图8为dio输入采集流程图;
图9为通信板接收信号处理流程图;
图10为主控板处理流程图;
图11为vio板输出驱动流程图;
图12为dio板输出驱动流程图;
图13为通信板输出驱动流程图;
图14为本发明板间通信总线网络拓扑图;
图15为本发明双can冗余通信的数据流图;
图16为本发明实施例一的接收处理逻辑流程图;
图17为本发明实施例二的接收处理逻辑流程图;
图18为本发明干接点输出模块电路原理图;
图19为本发明干接点输出模块优选实施例电路原理图。
具体实施方式
下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,基于二乘二取二的列车lcu控制系统,包括主控板a、主控板b、若干vio板组、若干dio板组和通信板,每个vio板组由vio板a和vio板b组成,每个dio板组由dio板a和dio板b组成。
具体的,单台lcu装置包括电源板、通信板、存储板、主控板、io板、接口板、母板和id编码板,其中电源板、主控板、io板分为2个单独工作组(a组、b组)。
如图2~5所示,所述的主控板a、主控板b、通信板和各vio板均设有两个控制单元,各板的两个控制单元之间均通过板内通信总线通信连接,各板的每个控制单元之间均通过板间通信总线通信连接。
具体的,主控板的控制单元连接供电接口、机箱地址模块、插件地址模块、看门狗、工作状态指示接口、应用逻辑下载接口、调试接口、温度检测单元、电源检测单元和板间通信总线接口。
vio板的控制单元连接板间通信总线接口、供电接口、插件地址模块、看门狗、工作状态指示接口、调试接口、温度检测单元、电源检测单元、开关量输入单元、输入自检单元、输出驱动单元和输出自检单元。
dio板的控制单元连接板间通信总线接口、供电接口、插件地址模块、看门狗、工作状态指示接口、调试接口、温度检测单元、电源检测单元、开关量输入单元、输入自检单元、输出驱动单元和输出自检单元。
通信板的控制单元连接级联通信总线接口、板间通信总线接口、供电接口、看门狗、机箱地址模块、工作状态指示接口、调试接口、温度检测单元、电源检测单元、mvb通信接口和通信协议配置单元。
各板卡功能简要说明如下:
电源板:为每组板卡单独供电,电源板a为a组板卡供电,电源板b为b组板卡供电(电源板a/b均为mvb通信板、以太网通信板冗余供电);
通信板:列车tcms系统通过mvb总线与lcu装置进行数据通信、实现数据共享;部署在各个车厢的lcu装置通过级联can总线进行数据交换、实现数据共享;
存储板:通过以太网与列车信息服务网平台进行数据通信,采用u盘来实现数据转储功能;
主控板:产生系统同步时钟,为系统内的各个板卡同步工作提供条件;接收io板采集数据、逻辑运算、发送逻辑运算结果进行输出控制等功能;
vio板:实现lcu系统二乘二取二通道的外部输入信号采集、逻辑运算结果输出驱动、输入/输出通道电路自检等功能;
接口板:将各外部输入信号,通过母板输入到io板卡的各个输入通道;将机箱内的逻辑运算结果,通过母板输出到接口板,驱动外部执行器;
母板:实现系统组件内部信号的连接、各组件硬件编码的配置等功能。
整个列车lcu控制系统的工作流程如图6所示:
各vio板的两个控制单元对开关量输入信号进行输入二取后,通过板间通信总线将二取结果分别发送至第一主控板和第二主控板;
各dio板输入自检并采集开关量输入信号,自检结果和采集结果计算得到输入值,通过板间通信总线将输入值和校验结果发送至第一主控板和第二主控板;
通信板的两个控制单元分别通过级联通信总线接收它车级联控制命令,且通信板的第一控制单元通过板间通信总线将其接收的级联控制命令共享给通信板的第二控制单元,当第一控制单元发送不成功时,由第二控制单元将其接收到的级联控制命令发送至板间通信总线;
第一主控板、第二主控板板内的两个控制单元均接收vio板、dio板和通信板的信号分别进行二取后,各自得到输出控制命令和级联控制命令,两个控制单元的输出控制命令和级联控制命令再分别经过二取后发送至板间通信总线;
各vio板的两个控制单元分别接收来自第一主控板和第二主控板发送的输出控制命令,两个控制单元对接收到的第一主控板的输出控制命令进行二取,两个控制单元对接收到的第二主控板的输出控制命令进行二取,两个二取结果二乘得到最终的输出控制命令,执行输出驱动;
各dio板分别接收来自第一主控板和第二主控板发送的输出控制命令并校验,二乘后得到最终的输出控制命令,执行输出驱动;
通信板的两个控制单元分别接收来自第一主控板和第二主控板发送的级联控制命令,两个控制单元对接收到的第一主控板的级联控制命令进行二取,两个控制单元对接收到的第二主控板的级联控制命令进行二取,两个二取结果二乘,控制单元将自身二乘结果的数据部分与另一个控制单元二乘结果的校验部分组合发送至级联通信总线。
具体的,vio输入采集流程如图7所示:
每组vio板包括vio-a板和vio-b板两张板。vio-a板有两颗mcu(vio-a板mcu1、vio-a板mcu2);vio-b板有两颗mcu(vio-b板mcu1、vio-b板mcu2);每组vio板共4颗mcu。四颗mcu分别进行输入通道自检和采集输入信号,根据输入通道自检结果和采集值计算得到输入值分别为:vin-a1、vin-a2、vin-b1、vin-b2。
vio-a板输入采集处理流程:
1)mcu1将采集值为vin-a1发送给mcu2;mcu2将采集值为vin-a2发送给mcu1。
2)mcu1接收mcu2发送的vin-a2;mcu2接收mcu1发送的vin-a1。
3)mcu1对vin-a1和vin-a2进行二取,得到v-a1;mcu2对vin-a1和vin-a2进行二取,得到v-a2。
4)mcu1将二取值为v-a1发送给mcu2;mcu2将二取值为v-a2发送给mcu1。
5)mcu1将v-a1的数据部分和v-a2的校验部分组成报文,发送到板间通信总线;mcu2将v-a2的数据部分和v-a1的校验部分组成报文,发送到板间通信总线。
vio-b板输入采集处理流程与vio-a板输入采集处理流程相同。
具体的,dio输入采集流程如图8所示:
1)输入通道自检;
2)开关量输入采集,结合输入通道自检结果计算输入值;
3)输入值+校验发送到板间通信总线。
dio板a和dio板b的处理流程相同。
具体的,通信板接收信号处理流程如图9所示:
通信板有两颗mcu(通信板_mcu1、通信板_mcu2),各mcu的处理流程为:
通信板_mcu1处理流程:
(1)接收级联控制命令,得mcom-1;
(2)将mcom-1发送到板间通信总线。
通信板_mcu2处理流程:
(1)接收级联控制命令,得mcom-2;
(2)接收通信板_mcu1发送的mcom-1;
(3)通信板_mcu1发送mcom-1不成功时,发送mcom-2到板间通信总线。
主控板处理流程如图10所示:
主控板a_mcu1处理流程:
1)接收xio板a发送的va,得到va-a1;
2)接收xio板b发送的vb,得到vb-a1;
3)接收通信板发送的mcom,得到mcom-a1;
4)将va-a1、vb-a1、mcom-a1发给主控板a_mcu2;
5)接收主控板a_mcu2发送的va-a2、vb-a2、mcom-a2;
6)对va-a1与va-a2、vb-a1与vb-a2、mcom-a1与mcom-a2分别二取;
7)进行应用逻辑计算,得到输出控制命令out-a1和级联控制命令mid-a1;
8)将out-a1和mid-a1发送给主控板a_mcu2;
9)接收主控板a_mcu2发送的out-a2和mid-a2;
10)用out-a1数据部分和out-a2校验部分组成输出控制命令,并发送到板间通信总线;
11)用mid-a1数据部分和mid-a2校验部分组成输出控制命令,并发送到板间通信总线。
主控板a_mcu2用out-a2数据部分和out-a1校验部分组成输出控制命令,并发送到板间通信总线;用mid-a2数据部分和mid-a1校验部分组成输出控制命令,并发送到板间通信总线。
主控板b的处理流程与主控板a的处理流程相同。
vio板输出驱动流程如图11所示:
四颗mcu分别接收主控板a和主控板b发送的输出控制命令,vio-a板和vio-b板板内两颗cpu间共享其接收到的主控板发送的输出控制命令:
(1)vio-a板mcu1接收到主控板a发送的输出控制命令的数据部分与vio-a板mcu2接收到的主控板a发送的输出控制命令的校验部分组合在一起,如果通过校验,则vio-a板mcu1接收主控板a发送的输出控制命令成功;否则,如果连续多次不成功,则vio-a板mcu1将其接收的主控板a的输出控制命令进行安全导向。vio-a板mcu1对主控板b发送的输出控制命令报文进行相同的处理。vio-a板mcu1将接收到的主控板a和主控板b的输出控制命令进行二乘,得到vio-a板mcu1的输出控制命令。
(2)vio-a板mcu2接收到主控板a发送的输出控制命令的数据部分与vio-a板mcu1接收到的主控板a发送的输出控制命令的校验部分组合在一起,如果通过校验,则vio-a板mcu2接收主控板a发送的输出控制命令成功;否则,如果连续多次不成功,则vio-a板mcu2将其接收的主控板a的输出控制命令进行安全导向。vio-a板mcu2对主控板b发送的输出控制命令报文进行相同的处理。vio-a板mcu2将接收到的主控板a和主控板b的输出控制命令进行二乘,得到vio-a板mcu2的输出控制命令。
(3)vio-a板mcu1根据输出控制命令进行输出驱动;vio-a板mcu2根据输出控制命令进行输出驱动;
vio-b板mcu1和mcu2操作与vio-a板的mcu1和mcu2相同。
dio板输出驱动流程如图12所示:
dio板a输出驱动处理流程:
1)接收、校验主控板a发送的输出控制命令,得到ma-1;
2)接收、校验主控板b发送的输出控制命令,得到mb-1;
3)对ma-1和mb-1进行二乘计算,得到输出控制命令mab;
4)执行mab输出驱动。
dio板b输出驱动处理流程与dio板a输出驱动处理流程相同。
通信板输出驱动流程如图13所示,存储板通过板间通信总线接收机箱内各板卡通信数据,并对监测数据进行存储,记录数据的usb或以太网转储。
板内两个控制单元间进行数据共享时,若报文的crc校验错误,则丢弃本次数据;若报文的crc校验正确,但数据不一致,则对相应数据进行安全导向处理。
所述的第一主控板和第二主控板内的各控制单元均具有产生系统同步时钟的功能,第一主控板和第二主控板在同一时刻只有一个主控板发送系统同步时钟,同一个主控板内的两个控制单元按照预设优先级产生系统同步时钟;所述的系统同步时钟为由某主控板的某控制单元发出的系统广播报文,广播报文中包含系统同步节拍信息。某主控板的某控制单元发出系统广播报文,系统中的各板卡收到该广播报文后解析出其中的同步节拍信息,各板卡分别根据预设的控制逻辑(节拍与动作之间的对应关系)执行相应动作。相当于由主控板mcu“播放节拍广播”,各板卡都根据“听到的广播内容”作为自身执行动作的依据,在指定的节拍完成对应的动作。
系统按规定周期产生节拍,n个节拍构成一个控制周期。控制周期编号0-m,最先产生的控制周期编号为0,后续控制周期编号比前一控制周期编号+1,控制周期编号达到m后,又从0开始。每个控制周期内节拍编号0-(n-1),每个控制周期的第一个节拍编号为0,后续节拍编号比前一节拍编号+1。主控板a和主控板b中部署的双cpu均具有产生系统同步时钟的功能。默认系统同步时钟的产生顺序为a1>a2>b1>b2;当cpu_a1产生故障时,cpu_a2主动产生系统同步时钟;当cpu_a1和cpu_a2均故障时,cpu_b1产生系统同步时钟;cpu_a1/a2/b1均故障时,cpu_b2产生系统同步时钟。cpu间切换系统同步时钟时,系统的控制周期编号和控制周期内的节拍编号连续。
例如,同步节拍00时,vio板a的mcu1的输入部分执行“采集输入信号”、输出部分无动作,vio板a的mcu2的输入部分执行“采集输入信号”、输出部分无动作;vio板b的mcu1的输入部分执行“采集输入信号”、输出部分无动作,vio板b的mcu2的输入部分执行“采集输入信号”、输出部分无动作;主控板a与主控板b的mcu1和mcu2均无动作;dio板a的mcu的输入部分执行“采集输入信号”、输出部分无动作,dio板b的mcu的输入部分执行“采集输入信号”、输出部分无动作;通信板的mcu1和mcu2均无动作。
同步节拍10时,vio板a的mcu1的输入部分执行“①a板mcu1、mcu2输入二取,②a板输入二取结果发送,③采集输入信号”、输出部分无动作,vio板a的mcu2的输入部分执行“①a板输入二取结果二取,②mcu1未发送成功时,发送a板输入二取结果发送,③采集输入信号”、输出部分无动作;vio板b的mcu1的输入部分执行“①b板mcu1、mcu2输入二取,②b板输入二取结果发送,③采集输入信号”、输出部分无动作,vio板b的mcu2的输入部分执行“①b板输入二取结果二取,②mcu1未发送成功时,发送b板输入二取结果发送,③采集输入信号”、输出部分无动作;主控板a与主控板b的mcu1和mcu2均无动作;dio板a的mcu的输入部分执行“①发送输入采集结果,②采集输入信号”、输出部分无动作,dio板b的mcu的输入部分执行“①发送输入采集结果,②采集输入信号”、输出部分无动作;通信板的mcu1执行“发送级联控制命令”、mcu2执行“mcu1发送不成功时,补发级联控制命令”
以上仅为控制时序的一种举例,应当理解的是各板卡的时序控制逻辑可根据需要进行设定,并非局限于以上举例所披露的形式。
如图14所示,所述的板间通信总线为两条can总线can0和can1,每个板卡有两路can(can0、can1),各板卡的can0节点连接在can0总线上、can1节点连接在can1总线上。
如图15所示,板间通信总线的通信方法包括以下步骤:
s1:发送方每次发送报文时,将内容相同的报文同时压入各条通信总线的报文发送队列中;
s2:各条通信总线分别从其报文发送队列中取数据发送;
s3:接收方将通过各条通信总线接收到的报文放入同一队列,对于内容相同的多个互为冗余的报文,系统使用最先到达的报文、丢弃后达到的冗余报文。
通俗来说,板卡发送的每个报文在can0和can1总线上同时各发送一份,来自can0和can1总线的两个互为冗余的报文,接收方选择到达时间最先的报文使用。具体的,发送方每次发送报文时,将内容相同的报文同时压入can0和can1的发送队列(先进先出),can0和can1分别从报文发送队列中取数据发送,接收方can0和can1将接收到的报文放入同一队列(先进先出),来自can0和can1的两个冗余报文,最先到达的报文被系统使用,后到达的冗余报文被丢弃。
每个板卡发送的所有报文,按照发送的先后顺序标记时间戳。当时间戳长度为1字节时,时间戳的变化按以下规则执行:板卡上电工作后发送的第一个报文的时间戳为0x00,后续每发送一个报文时间戳加1,当时间戳增加到0xff时,下一个报文时间戳为0x00,按以上规则循环。
步骤s1中,向can0和can1报文发送队列写报文时,当报文发送队列满时,从其报文发送队列中丢掉一个最早时间写入的报文,再继续向其报文发送队列写报文。
接收方接收处理逻辑有以下两种实施方式:
实施例一,如图16所示:
接收方收到来自板卡的报文后,执行如下逻辑判断:
s01:判断冗余报文最大时间戳cmax是否大于冗余报文最小时间戳cmin,若是则跳转至步骤s02,若否则跳转至步骤s03;
s02:判断报文时间戳是否大于cmin且小于等于cmax,若是则判断为冗余报文,若否则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳;
s03:判断报文时间戳是否大于cmin或小于等于cmax,若是则判断为冗余报文,若否则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳。
其中,如果报文时间戳取值范围是(0~m),报文发送队列深度n,则n≯m;冗余报文最大时间戳cmax=最后一次接收到的有效报文时间戳,冗余报文最大时间戳初始值为时间戳计数最大值;冗余报文最小时间戳cmin=cmax-n。
本实施例存在的问题是:假设报文发送方发送报文队列深度为n,当接收方在接收到n个报文后,如果发送侧发生重启,发送报文时间戳重新从0开始时,前面的n个报文会作为冗余报文处理,造成部分通信数据的丢失。
实施例二,如图17所示:
接收方收到来自通信终端的报文后,执行如下逻辑判断:
ss1:判断冗余报文最大时间戳cmax是否大于冗余报文最小时间戳cmin,若是则跳转至步骤ss2,若否则跳转至步骤ss6;
ss2:判断报文时间戳是否大于cmin且小于等于cmax,若是则跳转至步骤ss3,若否则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳;
ss3:判断当前报文是否来自第一条can总线can0,若是则跳转至步骤ss4;若否则跳转至步骤ss5;
ss4:继续判断前一个报文来源标志是否为第二条can总线can1,若是则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳,更新前一个报文来源标志为can0;若否则判断为冗余报文,直接更新前一个报文来源标志为can0;
ss5:继续判断前一个报文来源标志是否为第一条can总线can0,若是则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳,更新前一个报文来源标志为can1;若否则判断为冗余报文,直接更新前一个报文来源标志为can1;
ss6:判断报文时间戳是否大于cmin或小于等于cmax,若是则跳转至步骤ss7,若否则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳;
ss7:判断当前报文是否来自第一条can总线can0,若是则跳转至步骤ss8;若否则跳转至步骤ss9;
ss8:继续判断前一个报文来源标志是否为第二条can总线can1,若是则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳,更新前一个报文来源标志为can0;若否则判断为冗余报文,直接更新前一个报文来源标志为can0;
ss9:继续判断前一个报文来源标志是否为第一条can总线can0,若是则判断为新报文,并更新冗余报文最大时间戳和冗余报文最小时间戳,更新前一个报文来源标志为can1;若否则判断为冗余报文,直接更新前一个报文来源标志为can1。
本方法通过逻辑判断报文时间戳之间的关系、当前报文来自哪一条总线、前一个报文来源标志是哪一条总线,从而杜绝了此种情况下数据丢失的情况,提高了特殊情形下的数据可靠性。
所述的vio板和dio板的控制单元均连接输出驱动单元,输出驱动单元与带容性负载能力的干接点输出模块相连;
如图18所示,所述的带容性负载能力的干接点输出模块包括补偿延时电路、输出控制电路和干接点输出电路,本实施例中,所述的输出控制电路采用带电流检测的门极驱动icir2127。所述的补偿延时电路包括取样电阻rs、第二电阻r2、第三电阻r3、第四电阻r4、第一二极管d1、第二二极管d2、第一稳压二极管z1和第一电容c1,所述的干接点输出电路包括mos管,mos管的漏极为干接点输出电路的正极输出,mos管的源极通过取样电阻rs连接干接点输出电路的负极输出,mos管的栅极通过第一电阻r1与带电流检测的门极驱动icir2127的高压侧栅极驱动输出端(ho端)相连。
所述第二电阻r2的一端连接于mos管的源极与取样电阻rs之间,另一端与ir2127的检测信号输入端(cs端)相连,第一电容c1的一端连接于所述cs端与第二电阻r2之间,另一端接地,第一二极管d1、第二二极管d2、第三电阻r3依次串联后与第二电阻r2并联,第一稳压二极管z1和第四电阻r4串联后与第二电阻r2并联。
所述补偿延时电路具有负载电流检测能力,可根据负载电流的大小进行不同时间的延时;将电压补偿信号进行延时后输出到输出控制电路,该输出控制电路将检测得到的电压信号与设定阈值比较,如果大于该阈值,输出控制电路则向过流动作电路发出过流控制信号,过流动作电路产生过流保护信号,控制干接点输出电路进入过流保护状态并断开干接点输出。如果检测得到的电压信号小于该阈值,过流动作电路不动作,干接点正常输出。
具体的,补偿延时电路通过检查负载电流的大小,进行i-v变换,再根据补偿电压的大小(负载电流大小),进行不同时间的延时。输出控制电路采用带电流检测的门极驱动icir2127,补偿延时电路输出电压信号到ir2127的cs引脚,如果补偿延时电路输出的电压信号大于ir2127的阈值,门极驱动ic就关断输出,反之,开启输出。
补偿延时电路:先通过取样电阻rs把电流信号转换为电压信号,采样电压vs=i×rs,i为负载电流。延时电路提供了三条回路,第一条回路只通过r2、c1组成rc延时;第二条回路通过d1、d2、r3、c1组成rc延时,且只有当vs达到一定的阈值时二极管d1、d2正向导通再对c1进行充电实现rc延时;第三条回路通过z1、r4、c1组成rc延时,且只有当vs达到一定的阈值时稳压二极管z1反向击穿导通再对c1进行充电实现rc延时。通过以上电路来实现在不同负载电流的情况下实现不同时间的延时。
输出控制电路(mos管的驱动电路)采用带电流检测的门极驱动ic,补偿延时电路输出电压信号到ir2127的cs引脚,当补偿延时电路输出电压信号大于ir2127的阈值时,门极驱动ic就关断输出,反之,开启输出。ir2127是带电流检测的门极驱动器,输入为高有效,它的输出能力较低(200ma出/420ma入)电流。当输入有效且电流检测输入引脚检测到的电压值低于设定的阈值,其ho脚输出有效信号驱动mos管导通。
干接点输出电路采用mos管作为开关管,通过控制mos管的导通、关断来实现干接点输出的功能,干接点输出分为有源干接点输出和无源干接点输出。
作为优选方案,如图19所示,本实施例中的第一电阻r1与mos管的栅极之间设置有偏置电路,所述的偏置电路包括第五电阻r5和第二稳压二极管z2,第五电阻r5的一端连接于第一电阻r1与mos管的栅极之间,另一端接地,第二稳压二极管z2并联于第五电阻r5的两端。第一电阻r1抑制mos管导通,避免导通时产生较大瞬时电压,保护mos管不被高压损坏;偏置电路提供固定偏置,保证mos管的有效开断。
另外,本实施例中的干接点输出电路还包括rcd吸收电路,rcd吸收电路由二极管d3、电阻r6和电容cy1组成,所述的rcd吸收电路并联于mos管的漏极与源极之间。mos管连接rcd吸收电路,其作用是抑制mos管关断瞬间产生高压,避免mos管因过压而损坏。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除