测控体系常常需求处理所收集到的各种数字量信号。一般测控体系选用通用MCU完结体系使命。但当体系中收集信号量较多时,仅依托MCU则难以完结体系使命。针对这一问题,提出一种依据FPGA技能的多路数字量收集模块。运用FPGA的I/O端口数多且可编程设置的特色,配以VHDL编写的 FPGA内部逻辑,完成收集多路数字量信号。
该数字量收集模块首要功能是收集输入的36路数字及脉冲信号,并将编帧后的信号数据上传给上位机,上位机经解包处理后显现信号相应的状况进行判别。依据规划要求,所丈量的36路数字信号中,有15路正脉冲信号。它们均由一个同步脉冲信号触发,因而需求丈量这些正脉冲的宽度和相关于同步信号脉冲的延时。要求收集步长不能大于10 ns,即收集频率高于100 MHz。而其他数字信号需求显现凹凸电平状况,其间一路信号是固定频率信号,需丈量其频率值。上位机要求显现所收集信号的状况。
模块原理框图
FPGA内部逻辑功能强大,外围电路规划依据简略、牢靠的准则。该模块由FIFO、USB2.0单片机、光电阻隔器等部分组成。36路数字信号经光电阻隔器进入FPGA主控单元,以供收集;FPGA处理收集到的信号,转换成数据进行编帧,然后写入FIFO。USB单片机提取FIFO中的数据,经过USB电缆传送给上位机,上位机将传送来的数据解帧,然后显现一切信号状况。模块经过电源接口向各个部分供电。其原理框图如图1所示。
FPGA装备电路
FPGA是选用XILINX公司的Spantan-II系列XC2S100E,该系列器材的内核选用2.5 V供电,作业频率高达200 MHz;I/O端口供电电压为3.3 V,可接受5 V的输入高电平。Spartan-II系列的FPGA具有丰厚的I/O端口资源。其I/O端口输出缓冲器接纳高达24 mA源出电流和48 mA灌入电流。
因为FPGA依据RAM工艺技能,掉电后不能保存信息,因而需求一个外置存储器来保存信息。选用一次可编程的PROM(高有用或低有用)XCF01SV020,其复位引脚的极性可编程设置,供电电压为3.3 V。XCF01SVO20的DONE、INIT、CCLK信号来自于FPGA XC2S100E。体系上电后,首要FPGA初始化,INIT、DONE置低。INIT置低后复位PROM,此刻因为PROM的CE为低,因而选取 PROM,然后可将数据流从DATA引脚输入到FPGA的DIN引脚。装备完结后,FPGA将DONE接高,PROM处于低功耗的待机形式,并将DATA 引脚置为高阻态。图2为FPGA装备电路图。
光电阻隔电路
选用高速光电耦合器HCPL-2631,其开关频率高达10 MHz,而输人数字信号频率为120 kHz,彻底满足要求。因为光电耦合器材以光为前言传输信息,可使输入输出阻隔,因为光电耦合器的输入回路为发光二极管,其输入阻抗很小,而搅扰源的内阻较大,依据分压原理可知,馈送到光电耦合器输入端的噪声搅扰电压变得很小,然后能有用按捺尖峰脉冲及各种噪声搅扰,具有较强的抗搅扰功能;别的因为光电阻隔器的两头选用不同的接地办法,因而数字信号地和模块地被彻底阻隔。图3为光电阻隔电路图。
FIFO电路
FIFO电路选用IDT公司的IDT72V17190器材,该器材选用3.3 V电压供电,16位64 KB容量的FIFO,作业时钟高达100 MHz。如图4所示,FIFO的数据输入D0~D15及PAF、WCLK、WEN均与FPGA相连。数据输出Q0~Q15及REN、RCLK、OE、 EF、MRS、HF、FF均与USB2.0单片机相连。读FIFO状况时,USB2.0单片机给出FIFO复位信号MRS和使能信号OE,然后判别 FIFO的状况信号EF(空)和HF(半满)。当FIFO半满且非空,即EF为高,HF为低时,给出FIFO读使能信号REN和读时钟RCLK,从 FIFO中读出数据;写FIFO时,FPGA判别FIFO的PAF(简直满)信号,假如该信号无效,则给出写使能WEN和写时钟WCLK,将数据写入 FIFO。
FPGA内部逻辑规划
FPGA内部逻辑首要分为数字信号收集、数据缓存和数据读取、FIFO操控。依据要求,信号收集又分为频率信号收集、20路数字信号收集和 15路脉冲信号收集。体系一起收集三组信号,再送入外部FIFO中缓存。因为脉冲信号的数据量较大,时序不匹配,因而在信号收集完后数据还应缓存,然后再经数据编帧送至外部FIFO。内部缓存运用VHDL编写模块,可是更简易的办法是运用FPGA内部的双口RAM。因而,FPGA选用Xilinx公司的 XCF2S-100E,其内部集成5 KB容量的RAM,满足内部缓存运用。数据经信号收集后送人缓存,然后由读取模块读出再送入外部FIFO,整个模块选用120 MHz的时钟,能够满足要求大于100 MHz的时钟频率。收集20路数字信号的办法是当信号变化时,就将当时一切数字信号的电平状况都送入缓存,而关于频率信号和脉冲信号的收集则选用如下办法。
数据的编帧宽和帧
在数据收集部分中,当同步信号的上升沿到来时,将3个帧标志别离写入3个缓存,频率信号数据的帧标志为EB90;20路数字信号的帧标志为 2个EB91;15路脉冲信号数据的帧标志为3个EB92。读取数据模块中,当同步信号的下降沿到来时,开端读取缓存的数据送至外部FIFO,并判别当读取一个EB90后,开端读取缓存的数据,并送入外部FIFO;当读到两个EB91后,读取缓存的数据,并送入外部FIFO;当读到3个EB92后标明一帧数据读取结束,等候下一个同步信号的下降沿后再开端读取下一帧数据。因为外部FIFO是16位,所以数据中不满16位的都用0将数据弥补完好,完好的数据帧结构如图5所示。
上位机收到一帧数据后进行解帧处理,关于频率信号数据,将这些T值相加并求均匀得出T’,再乘以2,因为体系时钟是120 MHz,所以2T’/120为频率信号周期(μs级),然后求倒数即可得出该信号的频率值。20路数字量信号数据直接显现其电平状况。脉冲信号数据则先判别哪一路(多路)脉冲信号发生变化,再判别该信号(几路信号)的电平状况。若为高电平,则对应的时刻应为TBa;若为低电平,则对应的时刻应为TBb。TBa即为该脉冲信号相关于同步信号的推迟,而TBb-TBa的值即为该脉冲信号的正脉冲脉宽。