基于FPGA的二取二总线数据比较器

来源:本站
导读:目前正在解读《基于FPGA的二取二总线数据比较器》的相关信息,《基于FPGA的二取二总线数据比较器》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《基于FPGA的二取二总线数据比较器》的详细说明。
简介:基于FPGA的二取二总线数据比较器实现联锁逻辑运算的两块CPU板总线数据的实时校核。在两条总线数据比较一致且总线数据的CRC校核通过时两个FPGA分别输出互为反相的动态脉冲,板上驱动电路输出信号控制板外供电继电器对联锁系统驱动单元供电,否则通过停止输出动态脉冲在50ms内切断供电继电器。出现校核错时FPGA将比较不一致的两个数据及在对应数据包中的位置等信息反馈给对应CPU板,便于故障分析。

背景

中国论文网 http://www.xzbu.com/8/view-3305101.htm

高速铁路的发展对信号设备性能、稳定性、安全性提出了更高的要求。其中安全性中故障导向安全是设备设计开发中首先要遵循的原则,尽早发现,尽早防范是信号设备安全设计中需考虑的问题。CPU作为控制设备中核心单元一旦运算出错很可能会导致灾难性后果。二取二系统中双CPU校核可有效避免单CPU故障引发的灾难性后果。双CPU校核实现方式包括软件比较和硬件比较。软件比较指CPU通过通信等方式得到对方的数据后各自进行比较,如果比较不一致则通过控制其他外围单元切断输出单元的对外输出使系统导向安全。硬件比较指通过第三方硬件实现两个CPU总线数据的实时比较,不一致时通过第三方硬件可直接切断输出单元的供电,无需CPU参与任何控制(此时故障的CPU可能已不能正常控制其它外围单元)。现场可编程逻辑阵列(Field Programmable Gate Assay,FPGA)通过硬件描述语言进行编程,可完成大规模实时逻辑处理和高速总线接口处理。总线校核需要进行大数据量、快速逻辑处理因此很容易发挥其长处。二取二架构的控制系统安全性高于单机系统因而在铁路系统中得到广泛应用。面向二取二架构的双CPU总线数据比较,我们开发了基于FPGA二取二总线数据比较器,比较器在CPU每个控制周期内完成对总线数据信息的实时校核,如果出现不一致或者非法信息及时切断驱动单元的供电,在最短时间内使系统导向安全侧。

图1 比较器结构图

图2 FPGA1和FPGA2与主、从CPU板的软件接口

系统方案及硬件实现

比较器通过两条总线与两块CPU板相连实现总线数据传输和比较相关状态的交互,输出信号驱动板外安全继电器模块实现对驱动单元供电的控制。比较器结构如图1所示,比较器由如下部分构成:FIFO控制器、FPGA单元、安全动态电路、双继电器切换单元、LED指示、地址设置单元。FIFO控制器和FPGA单元由独立的两套构成二取二结构,与二取二CPU板相接合。对于二取二比较器的每一部分有独立的LED指示和总线地址设置单元。安全动态电路和双继电器切换单元本身为二取二结构。

数据比较单元

数据比较单元实现两个CPU板总线数据的同步、独立安全校核,由双套FIFO控制器和双套FPGA单元构成。FIFO控制器用于实现主、从CPU板中总线数据到两个FPGA的传输,其数据存储空间为8192字节,可完成8k字节以下任意大小的总线数据校核。50万门级的FPGA通过内部数字时钟管理模块(Digital Clock Manager,DCM)将外部时钟倍频到40MHz以完成总线数据的高速校核处理。

FPGA采集对应FIFO的状态后反馈给对应CPU板,主、从CPU板经过判断后下达控制信息到对应FPGA,通过FPGA实现对FIFO的读写控制。双套FPGA同步接收FIFO中数据进行比较和CRC校验,同步记录比较结果。两个FPGA的同步工作通过交互信息实现,包括:开始比较信息、数据比较结果信息、驱动脉冲信号。双FPGA独立进行数据校核,只有两个FPGA数据校核都通过时比较器才判为校核通过,增强了比较器的安全性。

安全动态电路

安全动态电路接收两个FPGA输出动态驱动脉冲,并对两路脉冲进行“鉴相”。如果两路脉冲位相相反,安全动态电路输出信号到双继电器切换单元。

安全动态电路中开关延时保护电路首先对FPGA1和FPGA2输出互为反向驱动脉冲进行延时整形,防止由于元件老化导致延时差异而出现两路脉冲同时为高电平的情况,保护后级动态充放电电路。光耦电路将FPGA输出低电压数字信号与动态充放电电路的高电压模拟信号隔离开。动态鉴相电路对两路处理后的脉冲进行“鉴相”,如果两个脉冲出现同时为高的情况或者同时为低的情况,动态鉴相电电路将停止对外输出,只有在两路脉冲位相相反时,动态充放电电路才输出具有一定功率的直流信号驱动双继电器切换单元。

回读电路对动态鉴相电路中电晶体管进行检测,如果晶体管损坏故障(包括短路、断路、漏流增大等)回读信号将出现异常。回读信号由两个FPGA进行实时采集,如果回读信号异常,两个FPGA将停止输出驱动脉冲同时将回读错误的故障信息反馈给对应CPU板。

双继电器切换单元

双继电器切换单元由两个继电器和两个可控开关构成。每个继电器与可控开关串联后构成并联结构与安全动态电路输出端相连。开关由主、从FPGA输出两路控制脉冲控制。

总线数据校核通过且没有出现回读错,主、从两个FPGA即输出两路互为反相的控制脉冲到双继电器切换单元;两FPGA输出两路驱动脉冲到安全动态电路,安全动态电路输出信号驱动双继电器切换单元,实现比较器对外输出。双继电器切换单元对外输出需要两路驱动脉冲和两路控制脉冲同时工作,而控制脉冲独立于驱动脉冲,与之无相位关联,这增强了双继电器切换单元的安全性。

驱动脉冲和控制脉冲停止输出后双继电器切换单元将在50ms内切断比较器对外输出,如果出现继电器接点粘连或者接点卡壳情况,切换单元将停止对外输出,从而导向安全侧。

其他部分

设计两套LED用于实现对应FPGA工作状态指示、数据比较一次错误指示、数据比较三次错误指示、驱动脉冲指示、继电器切换指示等功能。

对总线地址进行设置,比较器地址总线从第5位到第10位可设,总线地址不合法比较器不工作。

图3 FPGA数据比较状态机

软件实现

比较器软件包括FPGA1软件和FPGA2软件两套,分别运行于比较器的两个FPGA中。两套软件的开发环境都使用ISE 9.2i,都采用硬件描述语言Verilog HDL编写。程序下载后,比较器上电后程序自动加载运行。

每套FPGA软件实现的功能包括:与对应CPU交互信息功能;独立进行数据比较功能;输出控制脉冲和驱动脉冲功能;实现对安全动态电路的实时检测功能。

与主、从CPU板交互信息功能

FPGA1和FPGA2与主、从CPU板交互信息包括接收CPU发送的控制命令和向对应CPU反馈比较状态信息,交互过程如图2所示:主、从CPU板向对应FPGA发送复位FIFO命令后FPGA1和FPGA2分别将FIFO1和FIFO2复位。

FPGA1和FPGA2读取对应FIFO的状态,并将FIFO状态反馈给对应CPU。主、从CPU板根据对应FIFO的状态信息经过判断处理后发送数据。主、从CPU分别向对应FPGA发送数据比较命令。两个FPGA交互开始比较命令信息后开始数据比较。数据比较结束后FPGA记录一次数据比较错误状态、三次数据比较错误状态、回读错误状态、错误数据、错误数据位置信息并反馈给对应CPU板。

数据校核功能

两个FPGA设计功能相同的状态机实现数据接收、比较等过程。

复位时,FPGA状态处于初始化状态;

当CPU发送总线数据后,FPGA状态从初始化状态进入接收数据状态;

在接收数据状态下,如果CPU下达开始比较命令,FPGA状态将从接收数据状态进入读数据状态,并跳转到数据比较状态;

在读数据状态和数据比较状态下接收两个FIFO的一个字节数据并进行数据比较和CRC校验。如果FIFO数据没有接收完将重新回到读数据状态,否则进入比较完成状态。如果数据比较出现三次不一致将进入锁死状态;

在比较完成状态下如果CPU继续发送数据,则进入接收数据状态。如果任何一方数据CRC校验失败,则计为一次错,如果出现三次校验错将进入锁死状态;

在锁死状态下FPGA将保持在该状态不变,必须上电复位后才可以跳出此状态,进行正常数据接收、比较。

FPGA状态控制图如图3所示。

FPGA1和FPGA2同步接收FIFO中的数据并进行数据比较,如果数据比较不一致,则将对应的一次数据比较错误计数加1,将一次错误信息反馈给对应CPU板,点亮一次比较错误指示灯。如果连续三次数据比较不一致,将三次错误信息反馈给对应CPU板,同时点亮三次比较错误指示灯。

运行在40MHz的FPGA在完成单字节总线数据校核耗时100ns,完成8k字节数据校核耗时0.8ms。

脉冲输出功能

上电初始化结束后,在没有三次错和回读错时,FPGA1输出一路控制脉冲到双继电器切换单元;在没有三次错和回读错时,FPGA2输出反向的控制脉冲到双继电器切换单元。如果FPGA1数据校核通过且没有回读错将输出驱动脉冲信号;如果FPGA2数据校核通过且没有回读错将输出反相驱动脉冲。任何一个FPGA数据校核出现三次错将停止驱动脉冲和控制脉冲输出。

安全动态电路自诊断及安全处理功能

比较器需要具备安全动态电路自诊断功能,以及时发现电路故障并导向安全侧。每个FPGA在输出驱动脉冲周期采集回读信号。如果发现回读信号异常,相应FPGA内部回读错误计数器累加;当发现连续5次回读错误时,相应FPGA停止对外输出脉冲,并将回读错误信息反馈给对应CPU板。

结论

比较器设计遵循欧标EN50128,EN50129和EN50126设计流程,硬件和软件设计满足故障安全原则。比较器可在1ms内完成8k字节的数据校核,满足高速铁路信号中大数据量数据校核的需求。数据比较不一致可在50ms内切断比较器对外输出。比较器比较相关信息包括比较错误信息(一次错误、三次错、回读错),错误数据信息,错误数据位置信息可反馈给CPU,便于故障分析。该比较器安全性高、可用性强,作为二取二硬件平台的重要部件已用于现场。

提醒:《基于FPGA的二取二总线数据比较器》最后刷新时间 2024-03-14 01:11:57,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《基于FPGA的二取二总线数据比较器》该内容的真实性请自行鉴别。