基于MCU CPLD变压器测试系统的设计与实现
扫描二维码
随时随地手机看文章
1 引言
BX型信号变压器,BG型轨道变压器和ZG型硅整流器作为铁路信号电器设备的前端,其工作的稳定性、准确性直接关系到行车安全,变压器的可靠检测是严抓质量的第一步,对于生产厂家而言,测试流程不允许抽样,且测试结果应留档。本套测试系统用来测试铁路变压器的各种要求参数,包括原边空载电流、次边空载电压、次边带载电压电流,变压器绝缘电阻、原边电压频率,测量结果精度要求3%,测试系统分为上下位机两大部分,下位机运用智能仪表的设计思想,在MCU和CPLD控制基础上对各种要求测试参数分别进行自动测试,上位机上采用VC++6.0编写软件实现串口通讯,归类统计并判断是否合格,存储打印结果,系统满足操作简单可靠,提高效率,减少误差。
2 功能介绍
下位机以80C196KC作为控制中枢,其主程序框图见图1,变压器接入测试仪测试端后接通电源,打开测试仪,测试仪首先进行初始化,包括PSD,全局变量、串口、中断8253计数器,LCD等的初始化,然后进行自检,包括检查测试仪内部电路是否正常,是否响铃(由变压器输入端电压接反引起的报警),连续检测8个周期的输入端电压并判断输入电源是否接好,电压是否正常,通讯是否正常,自检过程是串级检测(任一项自检不合格就闪灯报警),MCU根据键入值显示工作状态,并调用子程序处理,人工输入变压器型号,监测仪进入设置状态,控制相应继电器动作,将该变压器所有副边绕组接入测试端,并选择合适量程,进入测试状态,测完参数后MCU进行处理并显示相应变压器测试结果,进入判断状态,判断变压器是否合格,不合格则触发蜂鸣器报警,根据要求进入通讯状态,向上位机发送和接收数据。
本设计采用MAX7000系列的EPM7128两块,其中第一块CPLD(1)的主要功能如下:
(1)与A/D芯片(MAX125)相应片脚连接,控制模/数转换并读入其结果,MAX125为并行输出,是以字进行操作的,所以一次要读14位,用两个字节锁存。
(2)通过系统总线,将A/D转换结果传给80C196进行处理。
(3)将80C196处理过的需显示的数据缓冲,产生LCD的数据(8位)总线驱动。
(4)键盘响应。
(5)JTAG功能。
第二块CPLD(简称CPLD(2))依据MCU发出的指令或输入型号译码后驱动控制与该型号二次绕组对应的继电器吸合与释放动作,并选择量程。由于继电器没有地址,所有操作他的数据必须同时发送,即使只改变一个继电器的状态,仍然要把没有改变的继电器的数据同时送给CPLD锁存,所以译码是必需的。
CPLD的功能结构示意图如图2所示,可以认为,CPLD在下位机中起着重要的关联作用,一方面,他与MCU相互通讯,并受MCU控制,另一方面,CPLD又执行着对前端电路、键盘、LCD和继电器板等的操作任务,所以从系统总体的角度出发,CPLD完成一些接口功能。
3 频率跟踪测量技术
本系统需要对变压器的电压、电流和频率等进行交流采样,而交流采样应用成功与否,频率的准确测量是一个关键,因为我们是取8个正常采样周期的平均电压、电流值,而且由于不同型号变压器的输出频率不一,本身也需要测量频率。响应时间、测量精度以及硬件要求是测频方法的主要指标。
我们可以定量分析一下由电压信号频率波动所引起的电压信号有效值误差的大小。
一般工频频率的波动常常要到0.1Hz以上,即δf>0.1/50=0.5%,则对电压信号有效值的影响要达到0.25%,所以应实现采样频率对工频频率的在线自动跟踪,以保证测量精度。
考虑到系统的频率不是变化很快,要实现采样频率随系统工频的变化而实时调整,可先测得系统的频率前一周期对应的计数值Tc(以单片机系统的定时器时钟周期为单位),然后根据每周波采样点数(N),适时计算出每一采样间隔计数值Tsj。
间隔计数值:
Tsj=Tc/N (2)
则以Tsj为周期进行采样,即可实现采样频率的实时跟踪,保证了交流等间隔采样,为实现这一过程,通常采用的电路结构为:来自电压(流)互感器的电压(流)经过低通滤波器和跟随器,经过零比较器(可用LM339)整形成方波,经光耦(如4N35)送到80C196KC的高速输入接口 HS1.0利用方波的上升沿触发高速输入中断,侧得每个工频周期计数值Tc。单片机由式(2)计算得到采样间隔时间Tsj。以Tsj为时间间隔,设置软件定时器中断,在软件定时器中断中进行采样间隔设置,主程序根据其确定启动A/D的时间间隔,完成周期误差的大大减少和采样频率的实时跟踪。
4 CPLD模块设计
明确了CPLD的主要作用后,我们在Max+Plus II软件上用VHDL语言分别实现这些模块功能,设计包括4个阶段:设计输入、设计处理、设计验证和器件编程。VHDL主要用于描述数字系统的结构、行为、功能和接口。非常适用于可编程逻辑芯片的应用设计。
4.1 主要模块进程
系统检测变压器时,MCU在正常初始化后,有键盘输入时会要求CPLD运行按键响应进程;CPLD根据所键入型号运行继电器控制进程,操作继电器板,并上传操作结果,MCU在认为前述操作正常后,才会要求CPLD启动对A/D控制的进程,模/数转换结果会送给MCU;MCU对转换结果进行处理后,又会要求CPLD运行显示进程,显示结果LCD上。
4.2 仿真
以读A/D结果(ReadOperation)进程为例进行仿真。
——进程名称:ReadOperation
——敏感变量,RD
——输出变量,DataBusIn(送到数据总线上)
——目的:读操作
ReadOperation:process(RD,Enlcd,En125Low,En125High,CSIF,CSIM)
需要说明的是,信号变量在仿真时需声明其初始值,本读操作进程中的信号变量自会有其他进程(如片选进程)为其赋值,“&”作为连接运算符,可将多个对象或矢量连接成位数更大的矢量,对ReadOperation进程编译仿真的波形图如图3所示。
5 结语
经过现场试用得到实验测试数据,表1列出3台BX1-34型变压器的部分参数测试结果,其中I次空流代表原边空载电流,空压II12指二次绕组1和2端的空载电压,其他类推,II次空压为二次绕组的总空载电压,满载电压指在二次绕组串接8Ω电阻时的电压值。
结果满足《信号维护规则)中对变压器“输入额定电压,二次端子电压空载时其误差不大于端子额定电压值的10%;容量为30-60VA的变压器满载时,其二次端子电压不小于端子额定电压值的85%”的规定。
本次开发综合考虑了MCU和CPLD的相互作用,采用了交流采样技术,认真考虑VHDL进程并行和CPLD的结构特点,并应用电路简化的几种技巧与方法,充分利用CPLD的硬件资源优化电路,实现系统对稳定性,精确度等方面的要求。