APP下载

一种基于变流器的高速数据流的故障记录系统的研究与设计

2020-10-24宋凯林

关键词:变流器缓冲区数据流

宋凯林,黄 峰

(湖南工程学院 电气与信息工程学院,湘潭411104)

0 引言

近年来,随着我国经济的快速发展,国家加大了对轨道交通领域的投入,传动控制行业也迎来了飞速发展时期,各种自动化控制设备大量投入应用.同时伴随着应用环境的多元复杂化,设备故障也出现了指数级的暴增[1].通常地,设备故障的产生是一种具有偶发性、难以重现性的事件,传统解决途径是,设备研发企业派遣大量技术人员前往现场,进行人为定位和排查,但经常由于故障运行状态下数据的不足或缺失,而加大技术人员解决问题的难度,且资源浪费严重[2].因此非常必要研发设计一款故障数据记录平台,使其能高智能记录设备故障,并根据相应的故障现象进行故障的快速定位,实现设备全生命周期的数据记录,进而通过对海量故障数据分析,运用大数据等新兴技术进行设备故障预警[3-5].

1 平台架构

目标平台基于德州仪器TI 的多核异构SOC 芯片OMAPL138(DSP + ARM 双 核,下 文 中 简 称OMAP)处理器进行研发,作为中车旗下的某型主流城轨牵引控制变流器的故障记录设备.

硬件架构层,平台基本方案需求点包括:脉冲分配板传输多路IO 信号及故障脉冲信号,FPGA 与脉冲转换板之间采用光纤通信;FPGA 与OMAP 片上DSP 核之间采用UPP(并行接口总线)通信,实现高速设备数据流的同步;主控OMAP 主要负责在变流器发生设备时,将高速的设备运行控制、状态数据存储到本地等,如图1 所示.

图1 平台硬件架构

软件架构层,底层平台为保证故障数据记录系统的高实时性,主控OMAP 侧采用vxWorks 硬实时嵌入式操作系统,如图2 所示,平台软件采用架构:1 级RBL(ROM BootLoader)+1 级UBL(User BootLoader)+1 级UBOOT(the Universal Boot-Loader)+1 级vxWorks(Kernel).在系统的几类存储介质中,SPI Flash 因其高可靠性属性,主要存放操作系统内核固件及BIOS 启动程序;NAND Flash 作为高性价比大容量存储,存放各类应用程序,包括故障记录应用程序本身,以及设备运行日志等;SATA 因其超大容量存储,主要存放海量的设备突发故障时的运行状态数据.

图2 平台软件架构

2 方案设计

作为轨道交通城轨牵引传动变流器的故障记录设备,其数据流规模呈现出高速实时性,外部的变流器脉冲分配模块每16 μs 会周期性输入32*24 个字,整个数据链路中的数据量高达惊人的733 Mbit 每秒.设计高速数据流的记录系统,必须基于整个系统数据流链路分析硬件平台性能瓶颈,如图3 所示.

图3 数据流链路

1)FPGA 芯片采用Xilinx 的XC7A100T,其优越的数据处理性能足够中转和处理来自脉冲分配板的高速设备状态数据流;

2)FPGA 与OMAP 片内DSP 核之间通过UPP通讯总线进行上下行数据交互,其总线最高吞吐量可以达到150 MB/s,故也能适配目标高速数据流的缓存需求;

3)OMAP 片内可将共享RAM 作为数据流的一级缓存区,ARM 核从共享RAM 中读取DSP 已缓存的数据流,再缓存至OMAP 侧外挂的DDR 中,而DDR 资源绝大部分被操作系统的内核调度占用,于是DDR 数据写入速度无法匹配目标高速数据流的缓存速度,造成了共享RAM 中数据的写入速度远高于读取速度,造成数据流的覆盖丢失,所以必须采用一种合理的一级数据流缓存机制来弥补平台硬件性能的不足;

4)ARM 核将DDR 中作为数据流的二级缓存区,通过片内高速并行总线EDMA 再一次将数据流缓存到DDR 中,而DDR 在搭载运行操作系统后,根据存储映射及内存分配机理可知,可供数据流的缓存空间是非常有限.同样地,也必须提出一种合理的二级数据流缓存机制,在保证数据流正确缓存的前提下,实现DDR 存储空间利用率的最大化;

5)当发生设备故障时,将相应的故障数据流从DDR 缓存中提取,并以文件的形式将该故障数据流存储在SATA 搭建的文件系统中,以便相关人员分析对应设备故障.

根据上述数据流链路的分析,确定可以采用多级缓存机制实现该高速数据流记录系统,主要因外部DDR 缓存数据流能力的不足引出两个技术难点:如何在一级缓存区共享RAM 中设计合理的高速数据流缓存机制,解决数据流读写速度不匹配问题;如何在二级缓存区DDR 有限硬件资源中,设计有效可靠的数据流的缓存机制,突发设备故障时从缓存数据流中快速准确提取目标故障数据流,保证故障数据的实时准确性.

2.1 共享RAM中数据流缓存机制

共享双口RAM 的读写访问原理简单,但作为目标高速数据流的缓冲区时会产生两个问题:一个是DSP 核侧的UPP 模块和ARM 核同时去访问操作共享RAM 时,不可避免地会产生内存不一致问题,导致数据出错;另一个就是对共享RAM 而言,UPP 模块的写入速度远高于ARM 核读取数据流再写入DDR 的速度,容易造成读写带宽竞争引起数据流无法同步甚至覆盖丢失.通常工程解决办法可参考计算机存储器层次中的高速缓存[6-8],引入数据流缓冲机制,典型的如“乒乓”操作,如图4 所示.

1)DSP 检测到缓冲区1 的空标志,往缓冲区1中填充数据,填满之后,设置相关标志位及满标记;

2)DSP 检测到缓冲区2 的空标志,往缓冲区2中填充数据,填满之后,设置相关标志位及满标记;同时ARM 检测到缓冲区1 的满标记,开始读取缓冲区1 数据,读完之后,设置相关标志位及空标记;

3)DSP 检测到缓冲区1 的空标志,往缓冲区1中填充数据,填满之后,设置相关标志位及满标记;同时ARM 检测到缓冲区2 的满标记,开始读取缓冲区2 数据,读完之后,设置相关标志位及空标记;

4)重复周期执行上述过程,形成一个数据流的存取闭环链路.

图4 “乒乓”操作

已知OMAP 内部的共享RAM 容量为128 KB,上述数据流缓冲机制虽然能够提高共享RAM 的数据吞吐能力,却引入其他问题:一个是必须事先分配指定大长度且地址连续的存储空间,空间利用率低下,不适合有限的RAM 空间资源;另一个是数据的存取之间会存在相对较多的等待周期,造成数据缓存中的读写效率低下,相对目标高速目标数据流而言容易达到瓶颈值甚至不满足目标需求.

基于上述“乒乓”操作分析,本文提出一种改进型类“乒乓”操作机制,如图5 所示.

在共享RAM 中开辟n 个地址不连续缓冲块,避免连续大缓冲区引起RAM 空间的不足,块的大小取决于单个周期链路上所传输的数据量,也就是每16 μs 传输32*24 个字,其中n 取决于数据存取双方的最大通讯周期的倍数:

n ≥Tarm_rMAX/Tdsp_tMAX + 1 (1)

因上述n 个缓冲块的地址空间不连续,故生成一个地址表保存对应缓冲块的首地址,每次通信双方进行数据的存取时,从地址表中查找对应缓冲块的地址,当访问到地址表的最后成员时,就返回到首地址,形成一个闭环缓冲区.引入这种闭环缓冲区,一方面可以充分利用一些零散的存储空间;另一方面可以动态增加缓冲块n 值,以应对通信双方因周期改变带来的不确定性,利用冗余保证系统稳定和可靠性.

图5 闭环缓冲区

图6 为该改进型数据缓存算法的具体数据读写流程.

DSP 侧数据写入过程:DSP 检测满标志是否置位,是则放弃本次数据写入,等待数据的读取完毕,等待时间超过阈值则增加缓冲块n 值;根据写指针在上文的地址表中查找,将数据写入对应缓冲块;写指针加1,若其大于n,则将其清零;判断当前写指针是否等于读指针,是则将满指针置位用以指示当前闭环缓冲区数据已满,否则将满指针清零;

ARM 侧数据读出过程:ARM 检测空标志是否置位,是则放弃本次数据读取,当前闭环缓冲区已空,等待有效数据的写入;根据读指针在上文的地址表中查找,将数据从对应缓冲块读出;读指针加1,若其大于n,则将其清零;判断当前读指针是否等于写指针,是则将空指针置位以标识当前闭环缓冲区数据数据已空,否则将空指针清零.

图6 数据读写流程图

2.2 DDR中数据流缓存机制

当ARM 核将高速数据流从片上共享RAM 中读取出来后,会再一次将数据流缓冲到外挂DDR中,从而采用多级缓存机制实现了高速数据流的缓存.于是当设备发生故障时,应该如何设计DDR 缓存高速数据流机制,以及在设备故障时刻如何在已缓存数据流中,准确实时提取出故障数据流,避免成为旧数据被新数据覆盖掉.

图7 为DDR 中采用的环形队列数据流缓存机制.

图7 环形队列缓冲区

1)在DSP 核完成数据流在片上共享RAM 中的缓存后,ARM核会将数据流从共享RAM中读取,刚开始会从循环队列的Head 位置,一次性写入20 ms数据,也就是1250个数据包(每个数据包大小为16 μs的周期数据量),共计14.65 Mbit;

2)从节约硬件资源的角度出发,往循环队列可共缓冲三次数据(共1250*3 个数据包),当队列指针等于Tail 时,表示队列已满,队列开始覆盖缓存;

3)系统为了对设备故障事件做出实时响应,由FPGA 集成故障检测算法[9-10],实时检测判断异常数据,通过产生GPIO 中断通知ARM 核发生设备故障事件.已知整个中断响应事件为10 ms(从设备故障产生到FPGA 识别故障事件产生GPIO 中断),故障分析策略为提取设备故障时刻前后10 ms 的数据流,当发生故障时当前队列指针逆时针20 ms 内的数据流即为目标故障数据流;

4)系统调度故障记录任务将上述故障数据流以文件形式存储至SATA 搭建的文件系统中.

3 系统验证与结论

为验证目标系统的可靠性和有效性,本文采用持续对比测试来进行系统验证:一种方案为平台采用数据流直传的系统方案,即ARM 核直接将数据从共享RAM 中取出,存储到文件系统中;另一种为采用本文提出的数据流多级缓存的系统方案,如表1 所示.其测试过程中OMAP 初始状态处于正常负荷下,唯一测试激励变量为数据流规模量的提升,即在不断减少数据传输周期内,数据链路上传输相同规模数据量——32*24 个字.

表1 两种系统可靠性对比

对比测试结果表1 表明:采用数据流直传方案的系统在通讯周期为50 μs 以下时,开始偶发数据流的覆盖丢失,系统出现总线带宽竞争,甚至引发ARM 核任务调度超时,数据记录系统崩溃失效,无法满足目标系统需求;而采用数据流多级缓存方案的系统在通讯周期为16 μs 时,系统依然运行正常,仅仅是在可用的硬件资源范围多开辟一些共享RAM 空间,在设备发生故障时能够正常准确记录故障数据流,满足系统目标需求.

测试方法主要是通过人为模拟触发牵引变流器故障,系统自动将故障数据流以文件形式存储到文件系统中.图8 为配套研发故障分析上位机软件解析出来的故障运行状态数据,从红色和蓝色异常波形可以进行故障的快速定位,网压同步信号幅值及频率均剧烈变化甚至严重畸变,导致整流控制异常,引发牵引变压器二次侧电流异常增大,同既定模拟故障输入一致.

图8 牵引控制变流器故障

综上所述,本文提出设计的高速数据记录系统能够满足目标系统需求,能够助力变流器设备故障的快速定位,进而根据故障的类别对系统进行软硬件层次的优化升级.

4 结束语

本文针对轨道交通领域的牵引传动控制变流器的高速数据流特性,研究设计了一种基于数据流多级缓存机制的设备故障记录系统,成功解决该类设备故障经常无法定位的难题,实现设备故障的快速定位及设备全生命周期的数据记录,节省大量人力、物力资源,助力“中国制造2025”.目前该系统方案已经开始应用于中车某科研院所旗下设备,包括主流城轨支柱行业设备,远销海内外市场.据了解,该技术方案每年产生了不菲的经济效益,而且有望进一步在其他类似工程领域推广应用.

猜你喜欢

变流器缓冲区数据流
CRH5 型动车组辅助变流器的研究
数据流计算研究进展与概述
基于大数据的CR400AF 型动车组牵引变流器滤网视情修研究
二电平和三电平网侧变流器控制及谐波比较*
汽车维修数据流基础(上)
汽车维修数据流基础(下)
用于能量回馈装置的变流器设计与实现
串行连续生产线的可用度与缓冲库存控制研究*
基于ARC的闪存数据库缓冲区算法①
AADL端对端数据流一致性验证方法