摘要:为适应我国高速列车自动控制系统发展的需要,提出采用双CPU加FPGA的系统设计方案,实现移频信号发送。在保证移频信号高相位精度的前提下,实现系统的自动多载频信号切换和实时故障检测。
关键词:CPU FPGA 移频 故障检测
移频信号全称为移键控信号(Frequency-Shift
Keying),利用高频信号承载低频信号,具有抗干扰能力强、传输距离远等优点,是现代铁路机车行驶中的速度控制信号。它可以准确确定列车的位置,与铁路机车安全运行有密切的关系。为确保信号接收系统接收到准确、实时有效的信号,要求移频信号发送系统在发送高精度移频信号的同时,能够保证自身系统的故障检测。
1 FPGA芯片
本文选用的FPGA芯片是Xilinx公司推出的XC4005E-4IPQ100,该类型芯片具有5000最大逻辑门(Max Logic Gate),其中可配置逻辑模块(CLB)196个,以14×14矩阵结构排列;输入输出模块(IOB)112个。可实现616级触器(FlipFlops),具有并行模式配置能力,存储器容量为95,008 bits。使用亚微米多层金属材料加工方法,使系统时钟速率高达80MHz,而内部执行速率可以达到150MHz[3]。
该类型芯片在原有XC3000系列芯片的基础上,增加了内部软启动结构和时钟驱动输入输出模块数目,并且提供了可选择双向RAM存储器。
2 系统设计原理
系统设计原理如图1所示,该系统以双CPU保护下的FPGA为核心,配以辅助的前置光耦防护和后置安全与门及功率放大器。输入为国家标准的铁路用18路低频信息和4种载频触发信号,输出相应的调制后高精度移频正弦信号。其中,4种载频可以由触发信号直接控制,自动切换。
FPGA内部逻辑被设计为分频器、计数器、编码器、存储器、触发器和电子开关等部分。经过逻辑组合,实现低载频信息编码、相位连接移频信号调制和移频信号检测计数等三个主要功能,并接收CPU的控制信号,完成与CPU间的数据传输。
图1中双CPU使用W78E58型单片机。主、副CPU各自独立工作,分别向FPGA发送控制信号,读取低载频信息编码和移频检测计数结果,并以此为判据进行移频信号发精度检测。发现误码情况,即时关闭安全与门,切断移频信号发送通道,保证故障安全。主、副CPU之间,每个程序循环周期通信一次,以确认对方处于正常工作状态。
3 软件设计
3.1 移频信号调制结构设计
图2示出了FPGA内部实现移频信号调制的逻辑结构。FPGA芯片选用16MHz时钟脉冲,在分频模式的作用下得到所需要的低频和载频信号;运用时钟同步触发器和电子开关实现频率调制过程中的沿同步,从而在保证移频信号频率精度前提下,实现了移频信号的相位连续调制。
图2中K(t)为低频方波信号,G1(t)、G2(t)为载频方波信号,CLK为16MHz时钟脉冲,CS1、CS2为电子开关使能信号。低频分频器、载频分频器1、载频分频器2、时钟同步触发器、反相器、电子开关和加法器由FPGA内部逻辑门阵列通过状态机的方式实现[4]。低频分频器和载频分频器的分频由输入的低、载频触发信号控制,进行自动预置,使信号发送系统适用于多种载频切换,达到系统的通用性。
FPGA内部逻辑结构使用VHDL语言编写,图3示出了移频信号调制部分的VHDL语言程序流程图。
3.2 移频信号检测时序设计
移频信号检测采用高频插入的方法。将16MHz标准脉冲插入待测信号中,通过计数器确定待测信号的一个载频周期Tz,得到其载频频率fz:
为了计算待测移频信号中的低频周期,需要存储大量的载频周期数Nz。利用CPU的定时器构成一定时间内(0.2s)的Nz数组,寻找移频信号上下边频的切换点,通过计算两个相邻切换点之间的载频周期数,确定低频周期,得到低频频率fd:
在本文中,双CPU各自独立完成检测计数数据的精度判断和定时器控制,计数器部分在FPGA内部实现,图4示出了移频信号检测原理图。
CPU源程序使用C语言编写,使程序结构化,并易于升级。图5示出了移频信号检测部分的C语言程序流程图。
4 性能分析
4.1 实验结果
在完成调试样机的基础上,对新型移频信号发送系统进行实验检测。其中,载频信号取8种,中心频率分别为550、650、750和850Hz,频偏均为55Hz。低频信息从国家铁道移频信号标准中随机选取8种,分别为7、8、9、9.5、16.5、17.5、18.5和26Hz。
为检测实际发送的移频信号,利用HP3563A(Control Systems Analyzer)控制系统分析仪模拟通用移频信号接收器进行频谱分析。采样频率为2048点/s,加Hanning窗进行FFT变换[2],可得到如图6所示的信号频谱图。其中,两个波峰处的相应频率就是FSK信号的上下边频,其左右两侧的闪高波峰处的相应频率为上下边频的低频频偏频率。考虑到上、下边频率谱线之间的相互干扰,取能量最高的次高峰为低频频偏点,其与相邻最高波峰之间的频率差即为对应FSK信号所包含的低频信息[5]。
系统自检部分的验证,由Micropack公司提供的Easypack/E 8052F在线仿真系统完成。该系统模拟CPU的全部功能,并从FPGA直接读取移频检测数据,数据格式为十六进制。
表1示出了系统实验结果,其中频率理论值和测量值单位均为Hz,系统自检值Nd、Nz1、Hz2均为十六进制数。上、下边频自检测计数脉冲为16MHz,低频自检测计数方波为上边频方波。
4.2 数据分析
对表1中实验数据进行移频测量值和自检值的最大相对误差分析,可以得到本文中新型系统的各方面精度,从而判断其否满足设计要求。
表1 8种移频信号实验结果
序 号 | 低 频 | 上边频 | 下边频 | ||||||
理论值 | 测量值 | Nd | 理论值 | 测量值 | Nz1 | 理论值 | 测量值 | Nz2 | |
1 | 7 | 7.03 | 0056H | 605 | 604.86 | 6753H | 495 | 494.85 | 7E4FH |
2 | 8 | 8.06 | 0057H | 705 | 704.86 | 58ABH | 595 | 594.85 | 6912H |
3 | 9 | 8.98 | 0059H | 805 | 804.91 | 4DA6H | 695 | 695.09 | 59E9H |
4 | 9.5 | 9.47 | 005FH | 905 | 905.15 | 450EH | 795 | 794.96 | 4E9DH |
5 | 16.5 | 16.41 | 0025H | 605 | 605.02 | 6753H | 495 | 494.88 | 7E4FH |
6 | 17.5 | 17.67 | 0028H | 705 | 704.96 | 58AAH | 595 | 595.06 | 6912H |
7 | 18.5 | 18.60 | 002BH | 805 | 804.99 | 4DA6H | 695 | 695.95 | 59EAH |
8 | 20 | 20.17 | 002DH | 905 | 905.12 | 450EH | 795 | 794.96 | 4E9DH |
移频信号测量的相对误差可以由下式得到:
E=[|fc-fl|]/fl (3)
式中:fc、fl分别为频率的测量值和理论值。
结合公式(1)和公式(2),可以处到系统移频自检值的相对误差计算方法:
由公式(3)、(4)、(5)得到系统频率测量和自检值最大相对误差如表2所示。
表2 最大相对误差计算结果
测量值最大相对误差(%) | 低 频 | 0.97 |
上边频 | 0.02 | |
下边频 | 0.03 | |
自检值最大相对误差(%) | 低频 | 0.63 |
上边频 | 0.01 | |
下边频 | 0.01 |
从2表可以看出,实际移频信号的发送相对误差不大于1%,完全满足铁道通信信号的精度要求;自检系统更可以保证实时检验发送信号,实现故障安全。
综上所述,新型移频信号发送系统应用先进的可编程逻辑芯片(FPGA)和高性能CPU,通过巧妙的逻辑结构设计和时序控制,实现系统的集成化、通用化,大幅度提高了系统运行速度和可靠性。实验结果表明,该系统完全能够满足高速、高精度、故障完全的铁道通信信号技术要求,具有很高的应用价值。
上一篇:42MX系列FPGA及其应用
下一篇:I2C总线通信接口的CPLD实现