《电子技术应用》
您所在的位置:首页 > 测试测量 > 业界动态 > VXI总线任意数字信号发生器的研究与设计

VXI总线任意数字信号发生器的研究与设计

2009-01-21
作者:谢志刚 魏震生 范梅生

    摘  要: 阐述了基于VXI总线的任意数字信号发生器的特点及基本原理,用FPGA器件实现了VXI总线寄存器基接口电路,提出了用AHDL语言设计可编程分频器的方法,并具体分析了信号输出的电路原理和工作过程。实践证明系统原理和硬件设计是成功的。 

    关键词: VXI总线  FPGA器件  接口电路  数字信号发生器  AHDL

 

    VXI总线测试平台是仪器测量领域的前沿技术,可以灵活地组建自动测试系统,其模块化、灵活性强、即插即用、数据吞吐能力强的特点使VXI总线测试平台的应用越来越广泛。 

    在自动控制、智能检测、数字系统故障诊断领域,经常需要非周期性地产生任意编码的数字序列,作为激励信号源。基于VXI总线的任意数字信号发生器,是一个B尺寸、单槽、A16/D16、寄存器基模块,它能够产生任意编码的数字信号,8路数字信号均可独立地任意编辑,输出信号最小脉宽为25ns。采用Altera公司的FLEX系列的FPGA,可实现寄存器基接口电路和部分功能电路。用LabWindows/CVI软件设计了虚拟仪器软面板,界面友好,操作方便。 

1 系统组成及工作原理 

    数字信号发生器采用VXI总线测试平台,有8路独立的输出信号,均可预先存储在容量为64K的静态存储器中,可以独立地编辑各路输出信号;时钟频率最高可达40MHz;输出信号支持高电平、低电平和高阻态三种状态;输出电平兼容COMS/TTL电平;输出信号摆率不超过±5ns;采用可编程分频器,实现对时钟的任意分频;输出电平脉冲宽度可编程调节。系统的组成框图如图1所示。 

 

 

    在PC机上将编辑好的8路波形数据文件和1路三态控制数据文件分别装载到64K×8的静态存储器和64K×4的静态存储器中。波形文件的装载是通过VXI总线的地址译码选择A1~A5中某一配置寄存器的地址,再结合写操作来完成的。由于VXI总线每进行一次写操作,都会产生一个低电平有效的脉冲信号LATCH*,LATCH*信号将8路信号的8位编码波形数据和1位三态控制数据存入寄存器,同时LATCH*信号将16位地址计数器的地址加1,当进行下一个写操作时,完成下8位编码波形数据和三态控制数据的装载,如此反复,直至所有的波形数据装载完毕。波形数据文件的装载在LabWindows/CVI所开发的驱动程序作用下工作,当系统加电或软件复位时,16位地址计数器的初始地址置为0000H,在16位地址计数器的作用下,能够实现0000H~FFFFH或任一指定地址范围的数据加载。 

    当驱动程序输出波形文件时,指定某一起始地址作为16位的地址计数器的初始值。当发出允许输出信号时,由可编程分频器所分频的时钟信号同时加到16位地址计数器、输出触发器74ACT11825以及D触发器SN74ACT74上,在时钟信号的作用下,16位地址计数器开始计数,输出的16位地址作用在静态存储器上。静态存储器采用的是CYPRESS公司的CY74194芯片,从地址有效到数据输出的最小延迟时间为12ns,存储器输出的8路波形数据DAIN[7..0]和1路三态控制信号CIN作用在输出芯片74ACT11825上,如图2所示。当三态控制存储器输出的信号为低电平时,74ACT11825的时钟允许信号线有效,输出的波形数据为静态存储器中选通的波形数据;当三态控制存储器输出的信号为高电平时,则74ACT11825的时钟允许信号线无效,此时的高电平信号经过SN74ACT74触发器的输出端,作用在74ACT11825的输出使能端上,使输出信号为高阻态。 

 

 

2 任意可编程分频器的实现 

    任意可编程分频器是用来实现对40MHz时钟信号的任意分频,它实现的分频值由输入的初始值d[WIDTH-1..0]所决定。这里取WIDTH=10,则能实现2~1024的分频。也可以根据电路的不同要求,选择不同的WIDTH值,实现不同的分频。由于采用ALTERA公司的可编程器件,用AHDL硬件语言描述的分频器代码如下: 

    PARAMETERS 

    (  WIDTH = 4   ); --定义数据宽度,来确定分频值 

    INCLUDE ″lpm_counter″;   --MAX PLUSⅡ自带的函数 

    INCLUDE ″lpm_compare″;  --MAX PLUSⅡ自带的函数 

    SUBDESIGN var_div1 

    ( SysClk     : INPUT; --被分频的时钟,这里为40MHz 

      cnt_en     : INPUT=VCC;  --分频允许,这里用作波形输出的使能信号 

      sclr       : INPUT=GND;  --清零信号,使输出时钟清零,这里用作波形输出结束信号 

    d[WIDTH-1..0]  : INPUT;    --定义分频值 

    EVEN            : OUTPUT;  --输出已被分频的时钟信号 

    q[WIDTH-1..0]    : OUTPUT;  ) 

    VARIABLE 

      counter           :LPM_COUNTER WITH (LPM_WIDTH=WIDTH); 

      max_cnt         : NODE; 

      Dlitch            : DFF; 

    BEGIN 

      max_cnt = LPM_COMPARE(d[]-1, counter.q[], , ,)--所计脉冲数与初始设定值相等时,产生的高电平信号 

            WITH (LPM_WIDTH = WIDTH) 

            RETURNS (.aeb); 

      counter.clock     = SysClk; 

      counter.cnt_en    = cnt_en; 

      counter.sclr      = (max_cnt AND cnt_en) OR sclr; 

      Dlitch    = max_cnt AND cnt_en; 

      Dlitch.clk = SysClk; 

      EVEN     = Dlitch;        --输出产生的高电平信号 

      q[] = counter.q[]; 

    END; 

    在MAX PLUSⅡ软件中进行仿真,设定DATA[7..0]的值为5,即为5分频,输出波形EVEN如图3所示。 

 

 

3 VXI总线接口设计 

    采用Altera公司的FLEX系列的EPF10K20RC208-3的FPGA实现寄存器基接口芯片。由于该器件集成度高,可方便地改变逻辑,而且对逻辑设计可事先进行功能模拟和定时模拟,因而使得接口设计更轻松,调试更方便。接口电路实现了如下功能:①内部集成了VXI总线所需的寄存器,由地址信号A1~A5为各个寄存器译码分配地址,寄存器类型分别为ID寄存器、仪器类型寄存器、状态/控制寄存器、控制寄存器。②数据总线驱动器,其功能为将P1连接器上的16位数据线D0~D15送至模块内部数据总线DB0~DB15或反之。可用两个8位三态双向缓冲器组成。用READ控制数据传递方向,用 DBEN*选通。③总线握手控制,其功能为利用P1连接器上的信号控制 DS1*、DS0*、WRITE*和地址线译码输出地址选通信号共同产生DBEN*、LATCH*和 DTACK*信号,LATCH*可用来参与选通模块内需要写数据的寄存器。DTACK*信号输出到P1连接器上,使 VXI总线系统能正常工作并按规定时序读/写数据。DBEN*用来控制模块内地址及数据的有效周期。这部分电路在MAX PLUSⅡ中,分别用AHDL硬件描述语言和原理图方式进行描述。用AHDL硬件描述语言实现读状态机、写状态机和中断状态机,产生的DBEN*、 LATCH*、DTACAK*信号应符合VXI总线系统中数据读/写的时序规范。④译码16位VXI总线地址,具有16位数据线的传送能力,采用LabWindows/CVI软件,实现对某一地址的读写操作,完成波形数据文件的加载、控制波形文件的输出、停止输出等操作。 

参考文献 

1 Device Data Book. A LTERA,1998 

2 李春志,刘君华. VXI总线的接口芯片及其应用. 电子技术应用, 2001;27(9):77~80 

3 陈光禹. VXI总线测试平台技术. 成都:电子科技大学出版社,1996 

4 IEEE Standard for VMEbus Extensions for Instrumentation: VXIbus. IEEE. 1996: 1155~1992 

5 刘笃仁,杨万海. 用HDPLD实现多bit任意编码波形发生器.西安电子科技大学学报,2000(3) 

6 童子权,任丽军,马怀俭.任意波发生器VXI模块的设计.哈尔滨理工大学学报,2000(4)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。