马涛 郑鑫
摘 要: 针对飞机电气参数测试系统具有采样速率高,精度高,通道多且可变的特点,提出了用CPLD实现通道高速轮巡的新方法,使用Verilog HDL语言在MAX+Plus Ⅱ环境下对方案的功能进行了仿真,结果证明了方案的有效性,并且这一技术已成功应用于新型飞机电气参数测试系统。
关键词: CPLD; Verilog HDL; 电气参数测试系统; 通道轮巡
中图分类号: TN606?34; TP216 文献标识码: A 文章编号: 1004?373X(2015)05?0114?03
Application of CPLD in airplane electrical parameter testing system
MA Tao1, ZHENG Xin2
(1. ZTE Intelligent IOT Technology Co., Ltd, Tianjin 300308, China; 2. ZTE Communication Corporation, Tianjin 300308, China)
Abstract: According to the traits of high speed, high precision, multi?channel and channel changeability of the airplane electrical parameter testing systems, a new method to implement high?speed channel cycle by CPLD (complex programmable logic device) is presented. The Verilog HDL was adopted to do function simulation of the method in MAX+PLUS II. The simulation result indicates the validity of this method. This technology has been triumphantly used in the electrical parameter testing system of a new airplane.
Keywords: CPLD; Verilog HDL; electrical parameter testing system
0 引 言
近年来,随着我国航空技术的迅速发展,不同型号飞机的机载电气系统要求满足不同的飞机供电特性的标准,因此提出了一种新型的基于PCI总线数据采集卡的高性能、多用途的电气参数测试系统。该系统能够测试我国军用标准GJB?181?86及GJB?181A?2003以及美国军用标准MIL?STD?704A,MIL?STD?704C,MIL?STD?704E[1]等的各项电气参数指标,由于该系统需要允许对72路通道同时采样,并且A/D转换精度要达到14位,然而现有的数据采集卡很难同时达到这样的要求,因此采用具有同步4通道14位分辨率的DAQ?2010数据采集卡,并通过5个16路多路开关将通道数扩展为80路供测试使用,然而如何能够根据用户要求对所选通道进行轮巡测试,成为该系统最大的难点,本文提出了用CPLD(复杂可编程逻辑器件)实现高速采样条件下对多通道进行轮巡的新方法,并给出时序仿真和功能仿真图。在仿真基础上,该系统已研制完成并成功在某飞机研究所投入使用,取得了很好效果。
1 测试系统结构及工作原理简介
该测试系统的结构如图1所示。工作时,首先由工控机将所需开通的通道数目和相应通道编号信息传递给通道转换电路(由单片机、CPLD以及SRAM组成),使之按所需要的开通顺序和数目依次开通对应的多路开关,经过调理的电压和电流信号通过转接适配器进入A/D卡,工控机系统(包含数据采集卡DAQ?2010)对电压、电流、功率、频谱和相位等信号参数进行数据采集、计算、分析、显示、存储和打印,并套用相关标准限制曲线图形,使标准规定的极限曲线与试验数据填充曲线进行对比,以此评估飞机电气系统设计的精度和误差,并实现对飞机电气系统试验过程中的实时监控。
2 轮巡电路工作原理
CPLD是一种具有丰富的可编程I/O引脚的可编程逻辑器件,具有在系统可编程、使用方便灵活的特点;不但可实现常规的逻辑器件功能,还可实现复杂的时序逻辑功能。把CPLD应用于嵌入式应用系统,同单片机结合起来,更能体现其在系统可编程、使用方便灵活的特点。在本系统中,采用了CPLD和单片机配合的方案对通道进行轮巡采样,系统工作时主要分为两个步骤:
(1) 用户根据自己的需求将需要测试的通道信息(包括要采集的通道数目和具体要采集的通道编号)通过工控机传递给图1的单片机,然后由单片机将通道编号作为数据写入SRAM组中(SRAM中每一组数据控制相应的多路开关的使能信号和通道选通信号),接下来单片机再读回写入的数据,验证是否正确。
(2) CPLD产生SRAM组片选信号[CSO、]读控制信号[RDO、]地址信号ADDR来读取SRAM中的信息,这些信息就成为多路开关的选通信号,随即实现相应多路开关通道的开通,这样就完成了对所需通道的轮巡。
3 CPLD程序设计及仿真
本系统中CPLD程序设计的主要任务包括:
(1) 接收单片机对系统工作要求的信号:如用户需要轮巡的通道数、时钟分频数、复位信号以及系统工作时钟。
(2) 对用户选择的通道进行轮巡,编程实现译码器对MA12~MA15进行译码产生SRAM组的片选信号[CSO,]根据[RD,][WR]信号产生SRAM组的读、写信号[RDO,][WRO,]结合时钟自动产生SRAM的地址信号,相应SRAM的地址对应相应测试通道的开通。
(3) 实现CPLD与SRAM之间控制及地址线的隔离,从单片机接收的控制信号[RD,WR]以及CPLD自己产生的SRAM地址信号均通过编程实现的三态门,这样就可以实现高阻态,从而完成隔离作用。
CPLD程序设计采用Verilog HDL语言在MAX+PlusⅡ环境下进行开发,MAX+Plus Ⅱ的设计输入方法有很多种,本次设计采用了原理图输入、文本输入以及层次输入三种方法,并运用了顶层开发原理。
3.1 CPLD顶层开发
CPLD的顶层开发模块如图2所示。
其中上方的模块主要产生SRAM地址(即实现通道轮巡),下方的模块主要用于对各控制信号进行隔离。其中CLK为CPLD工作时钟,写SRAM时的片选信号SRAM1O~SRAM3O、读写控制信号[WRO、][RDO、]读SRAM时的片选信号SRAMO、SRAM读信号SRAM_RD可以完成总线隔离功能。
3.2 通道轮巡模块程序设计[2?3]
CPLD通道轮巡的部分程序如下:
Module cpld3 (clk, WR, CH_NUM, chanl_num, addr_rst, latch_f,sram_addr,sramo1,sram_rd1);
input clk;
input[6:0] chanl_num;
input addr_rst;
input latch_f;
input WR;
output[6:0] sram_addr;
output sramo1,sram_rd1;
output CH_NUM;
wire addr_clk;
reg[6:0] count;
reg[6:0] sram_addr1;
reg[2:0] num;
assign sramo1 = latch_f;
assign sram_rd1 = latch_f|(!clk);
assign addr_clk = (!latch_f)&clk;
always@(negedge addr_clk or negedge addr_rst)
begin
if(!addr_rst)
begin
sram_addr1<=7′b0000000;
count<=chanl_num;
end
else if(count==7′b0000001)
begin
count<=chanl_num;
sram_addr1<=7′b0000000;
end
else
begin
count<=count-1;
sram_addr1<=sram_addr1+1;
end
end
endmodule
3.3 总线隔离模块设计[4]
CPLD完成对地址及数据线隔离的模块设计如图3所示(图中左侧为输入管脚,右侧为输出管脚)。
3.4 CPLD功能及时序仿真[4]
仿真时选用的器件是Altera公司生产的EPM7128LC84?6型CPLD芯片,通过MAX+Plus Ⅱ的GDI输入方法编辑.SCF(仿真通道文件)文件进行功能时序仿真,系统工作时的时序如图4所示。通过对仿真波形进行分析可以得出:这种新型通道轮巡方法在功能上是完全符合要求的,并且其轮换速率可以达到百兆,远高于飞机电气参数测试标准的要求,若对程序做进一步优化设计,可以达到更高的速率。
4 结 语
经过仿真试验证明采用CPLD在高速采样条件下对多通道进行轮巡采集的设计方案是可行的,并且这一技术已应用于新开发的一套飞机电气参数测试系统中,大幅度提高了地面电气参数测试的效率,并且该技术亦可在其他数据采集领域应用。
参考文献
[1] 国防科学技术工业委员会.GJB181?86 飞机供电特性及对用电设备的要求[S].北京:国防科学技术工业委员会,1986.
[2] 夏宇闻.Verilog 数字系统设计教程[M].北京:北京航空航天大学出版社,2003.
[3] 王金明,杨吉斌.数字系统设计与Verilog HDL[M].北京:电子工业出版社,2002.
[4] 东方人华.MAX+PlusⅡ入门与提高[M].北京:清华大学出版社,2004.
[5] 李玉学,白忠臣,秦水介.基于Verilog HDL的FIR数字滤波器的优化设计与仿真[J].现代电子技术,2014,37(7):154?156.
[6] 张艳春.数字电子系统的EDA设计方法研究[J].现代电子技术,2009,32(17):188?190.