|
热门文章
推荐文章
最新文章
|
一种基于FPGA技术的高频疲劳试验机控制器的研制(2)
原作者:[标签:作者] 添加时间:2007-06-29 原文发表时间:2007-06-30 人气:1
本文章共2786字,分2页,当前第2页,快速翻页:
|
4 部分模块设计
FPGA部分可划分成两个模块,其中正弦波发生器模块又可细分成几个小模块,如图2所示。 4.1 锁存器设计
锁存器用来将单片机送来的频率数据锁存稳定在FPGA中,可以用片内的锁存器资源(或用触发器)来构成。
4.2 运算器设计
运算器是用来将频率数据转换成正弦波点与点之间的定时数据。该运算器实际上最终可转换成一除法器。该除法器描述如下: —VECTOR(WIDTH— R-1 DOWNTO 0)); END COMPONENT;
上述描述实际上是调用了Altera公司的参数化模块库(LPM)中的一个元件。元件描述后,只要在程序中用Generic map和port map语句映射该元件即可。所要注意的是,上述口信号remainder是numerator和denominator模运算的结果,所以应将remainder与denominator/2相比较,实际结果应在比较的基础上决定加1还是不加1。
4.3 定时器设计
定时器根据运算器传来的定时数据定时。它可以通过对基准时钟计数来实现,当定时时间一到,就触发波形的输出。
设计中采用了两个计数模块来同时计数,一个模块计数时钟的上边沿,而另一模块则计数时钟的下边沿。这样相当于使系统时钟频率提高了一倍,充分利用了系统资源。
4.4 波形输出
波形输出是当定时器满足定时要求触发后就输出此时的正弦值,多个点的触发输出就形成了一个正弦波。
为节省芯片资源,这部分求某时正弦值的功能不采用构造运算器来算出正弦值,而是利用查表结构。象Xilinx公司FPGA芯片则可以利用CLB块来配置RAM或直接利用Logiblox来生成。还有象Altera公司的Flex10k系列就用查找表结构(LUT)来构建片内ROM或RAM。在工程文件中创建RAM或ROM块以后,可以通过将各时刻的正弦值(以ASCII字符表示)写进MIF文件(初始化文件)中,从而存储在RAM或ROM块中。在定时器触发后生成该时的地址,通过查询该RAM或ROM块就可输出该时得正弦值。
5 芯片的具体实现
本系统的FPGA采用Altera公司的Flex10k系列芯片。芯片利用开发软件Max+plusII将各个模块(图1虚线框部分)用VHDL语言描述并输入,由软件自动编译、综合、布局和布线,生成编程用的数据文件,加载到FPGA的配置存储单元。对FPGA芯片进行配置可有多种模式,由于本系统中有单片机,所以采用串行从模式,省掉了用一片EPROM来存储编程数据。当系统上电时,单片机自动将存在其内部的配置数据送到FPGA内部存储单元中。
6 结束语
系统通过引进现场可编程门阵列芯片FPGA,来实现波形发生器这一模块,且将周围其他数字逻辑电路也集成至该芯片中。这样既可以解决了系统的特殊性,又增强系统抗干扰性,提高控制精度,也简化了调试。此外,本系统还将波形发生器、滤波器等硬件通过VHDL语言在FPGA芯片中实现,而将控制算法等软件用FPGA这一硬件来实现,使系统体现出“硬件软化,软件硬化”这一重要特点。
参考文献 1 Altera公司.The Programmable Logic Data Book.2000 2 Jesse H.Jenkins.Designing with FPGA and CPLD.1995 3 张明勋.电力电子设备设计和应用手册.北京:机械工业出版社,1990.6 4 天水红山试验机厂.PLG-10型高频疲劳试验机技术讲座.1980.1 ( |
|
|
 本文章所属分类: 首页
→ 仪器仪表维修技术
|
文章搜索
|