基于fpga的数字电压表

2024-07-01

基于fpga的数字电压表(精选12篇)

1.基于fpga的数字电压表 篇一

一种基于FPGA的A超数字式探伤系统的研究

摘要:简略介绍了超声探伤的基本原理,并在此基础上提出了一种基于FPGA的A型数字式超声系统的构成方式,着重介绍了系统的硬件构成。其中,基于FPGA的数字信号处理模块从根本上解决了传统A型探伤仪的采样速度低、处理速度慢的问题。

关键词:MCS196kc单片机 无损检测 超声波探伤 FPGA 数字信号处理 DAC曲线

超声波是一种机械波,机械振动与波动是超声波探伤的物理基础。超声波在媒介中传播,有波的叠加、反射、折射、透射、衍射、(本网网收集整理)散射及吸收衰减等特性,一般遵循几何光学的原则。A超探伤仪采用幅度调制(Amplitude Modulation)显示,在显示屏幕上以横坐代表被测物的深度,纵坐标代表回放脉冲的幅度。

超声波探伤的方法很多,按其原理分类可分为脉冲反射法、穿透法和共振法。本系统采用脉冲反射法。脉冲反射法是一种利用超声波探头发射脉冲到被检测试块内,根据反射波的情况来检测试件缺陷的方法。脉冲反射法又包括缺陷回波法、底波高度法和多次底波法等,这里只介绍缺陷回波法。图1是缺陷回波法示意图。当试件完好时,超声波可顺利传播到达底面,探伤图形中只有表面发射脉冲T及底面回波B两个信号,如图1(a)所示;若试件中存在缺陷,在探伤图形中,底面回波前有表示缺陷的回波F,如图1(b)所示。

整个系统的硬件原理结构如图2所示,主要包括模拟和数字两部分,以下分别介绍。

1 模拟部分

该系统的模拟部分主要由发射电路、限幅机构、高频放大、带通滤波、检波等几部分组成。

图2 超声检测系统的硬件构成

发射电路主要用来产生高压窄脉冲信号(400V),以激励超声波探头发射超声波。由于不同探头的谐振频率不同,所以要求脉冲激励信号的宽度可调。在发射电路的设计中,由FPGA提供给发射电路低压可调脉宽的激励信号,再由发射电路将其转换为高压的窄脉冲激励信号,其脉冲宽度可变。

隔幅机构是对某些过大的回波电信号进行电压幅值的限制,以免电压过大影响后继高频放大器的正常工作,甚至烧毁电路器件。限幅电路的限幅幅值为±3V左右。

高频放大电路用来对回波电信号进行放大,放大范围可从-10dB到110dB。由于测试对象钢板的厚度不一,故回波信号的强弱也不定。所以,要把高频放大电路设计成可以动态控制增益值的程控放大电路,可通过MCU来实现。

带通滤波电路对信号放大过程中引入的噪声进行控制。由于超声探头的发射频率范围较宽(400kHz~10MHz),如果使放大器通带范围固定为400kHz~10MHz,势必影响滤波效果。在本文中,设计了可程控的两组带通滤波电路,其带宽范围分别为400kHz~2.5MHz和2.5MHz~10MHz。

超声波探伤系统回波波形的显示方式通常有两种:射频显示(不检波显示)和视频显示(检波显示),如图3所示。射频显示可以保持波形状态,有助于缺陷性质的识别;而视频显示则有利于峰值采集,以便确定缺陷当量。为了分别满足这两种显示的要求,在设计中加入了检波与非检波的`切换电路,电路的切换受MCU控制。

2 数字部分

2.1 微控制单元

该系统的数字部分以微控制单元(MCU)作为整个超声检测系统的控制核心。在此选用了Intel公司的16位单片机MCS196kc,该MCU不但具有16位的数据运算功能,而且提供了强大的控制能力。其实现有的功能主要有:(1)控制显示模块和键盘接口模块,实现人机界面的交互;(2)完成检测结果的存储、打印;(3)提供与微机之间可靠的数据传输;(4)实现对电源模块的管理;(5)调节模拟部分中运放的放大增益倍数。

2.2 基于FPGA的实时数字信号处理单元

FPGA在整个检测系统中是数字信号处理的核心部件,借助其用户可编程特性及很高的内部时钟频率,设计了专用于超声检测的数据处理芯片,如图4所示。该芯片主要由以下几个功能模块构成:(1)数据处理所需的参数寄存器堆;(

2)窄脉冲发生模块;(3)采样延迟控制模块;(4)数据采集、存储、压缩模块;(5)进波门、DAC缺陷自动判断模块;(6)失波门缺陷自动判断模块。现结合图5简述图4所示的信号处理过程:MCU以一定的频率不断向FPGA传送方波脉冲信号,每一个脉冲信号将触动一次检测过程。脉冲信号的上升沿使窄脉冲发生电路开始工作,产生窄脉冲激励信号。激励信号产生以后,由于超波需要一段延时时间才能经过耦合剂到达探测工件,所以在窄脉冲信号产生以后,延时电路将起作用,用以控制采样开始的时间。经过(t2-t1)的延时,超声波到达工件表面,采样开始。处理单元首先根据所检测到的钢板厚度选择相应的数据处理模块。如果钢板为溥型板材,数据采集、存储模块将工作;如果钢板为中厚板材,数据采集、压缩、存储模块将运行。采样过程结束后,在(t4-t3)的时间段内,处理单元自动对该次采样中的回波信号进行缺陷判断。如果发现有缺陷或失波存在,探伤系统会给出报警信号,通知MCU,并结束这一次的检测过程,等待下一个由MCU传来的脉冲信号,从而开始新一轮的检测过程。

3 超声探伤系统的软件

在整个数字式超声探伤系统中,软件的设计占有重要的地位。为此采用了汇编语言和VB高级语言分别对MCU和PC机进行编程。整个软件系统包括工作主界面和参数设置界面。其中,工作界面主要包括:增益/补偿、声程/标度设计抑制/声速、闸门设计DAC曲线拟合、回波波形显示缺陷记录、缺陷回放、缺陷报告打印、与PC机间的数据通讯。参数设置界面主要包括:探头设置、仪器设计、频道设置、密码设置和时钟校准。

当超声探头的发射频率在10MHz以上时,以现有的采样速率(40MHz)进行采样就很有可能造成回波信号波峰值的丢失。在现有的设计方案中,制约速度的瓶颈主要集中在将采样得到的回波信号值转存到外部的RAM中上,受RAM速度制约,整个系统的工作频率难以进一步提高。

2.基于fpga的数字电压表 篇二

1 检测系统测量原理

本系统采用FPGA芯片的NiosII软核作为处理器,系统主要包括FPGA主电路、输入保护电路、绝对值电路、采样保持电路、模数转换电路、人机接口电路、存储电路、同步电路和串口电路,系统原理结构如图1所示。

电气设备掉电剩余电压检测仪主要用来检测电气设备高压整流电容在掉电后的剩余电压,根据电气设备的安全规范,需要检测掉电后1 s或10 s后电容上的剩余电压值。系统有1 s和10 s两种测试模式,按下测量仪器面板上按键选择相应的模式,系统在同步电路的控制下,在工频峰值时刻通过开关S1会主动断开待测设备的电源,通过控制开关S2是将待测设备输入到电阻分压取样网络,输入信号经过输入保护电路送入滤波电路和差分放大电路。由于测量表笔的连接方式不同,取样信号可能为负信号,因此,必须通过绝对值电路对输入信号取正;考虑到ADC读取电压信号需要一段时间,采用采样保持电路提高测量准确度。

采样保持电路和ADC在FPGA的控制下协调工作,在时间为1 s或者10 s时读测量值,由于相关规定要求需对产品进行多次测量,所以系统外加EEPROM对测量值进行保存,通过按键选择相应的测量值并在显示器上显示,也可以通过串口与上位机通信将数据送往上位机进行分析。EPCS Flash用于对FPGA进行配置,Flash用于存储软件代码,SDRAM作为NiosII软核运行空间。

2 系统硬件电路设计

2.1 输入及保护回路的设计

输入回路的接入,必将引起电容电荷的泄漏,导致电容电压下降,影响测量结果。本文采用电阻分压网络实现电压采样,其原理如图2所示。R21和R22为输入分压取样网络,R1为待测设备本身的泄漏电阻,C1为整流电容,D1和D2为双向输入保护电路,电阻R3、R4、R5、R6和放大器A2构成差动放大电路。因取样电路的接入,待测设备的整流电容C1上的电压因放电而下降,根据电工理论知识,电容C1的放电过程可由下式描述:

其中:E为掉电时的起始电压;Uc为放电后电容上的电压,τ为时间常数。

由于输入取样回路对电容放电,影响测量的准确度,尤其在待测设备整流较小时,影响更严重。为了克服输入回路放电的影响,本文采用输入回路的瞬时接入的方法。即在采样前30 ms闭合干簧继电器S2,这样测量仪器的输入分压网络(R21、R22)对待测设备的放电影响只有30 ms,减小了输入回路的影响。以1 s测试为例,假设被测仪器掉电初始时刻电压为E,经0.97 s待测设备自身泄漏电阻放电后,整流电容上的电压为V1,则:

取0.97 s至1 s时间段,在开关S2断开的情况下,被测设备自身放电至1 s时的电压为V2;开关S2闭合情况下通过自身回路和测量仪器输入回路共同放电至1 s时的电压为V2′,则:

为了消除测量仪器的输入回路对测量结果的影响,需要满足式(5)、式(6):

设待测设备的整流电容为1 000μF,则电阻R2大于15 kΩ就可以忽略输入回路的影响。

当输入回路接入测量电路时,若剩余电压高于100 V,通过双向稳压管保护输入电路,当电压下降到100 V时,稳压管不被击穿,分压网络对电容电压进行线性分压。取分压值范围为0~5 V,本文取电阻R22为499.75 kΩ,R21为9.492 5 MΩ。

2.2 同步信号检测电路设计

考虑到剩余电压最大发生在工频电压峰值时刻的情况,系统断电必须在电压峰值时刻时,剩余电压测量值最为可信。因此,系统需要较准确的同步信号。本文采用工频信号过零作为系统的同步信号,其同步信号检测电路如图3所示。被测设备通电后,经降压变压器降压,分压网络R1、R2取样,为了防止噪声信号引起过零检测器的误操作,采用了由LM358组成的迟滞比较器。

设迟滞比较器的阈值电压为VT,则:

该电路为过零检测电路,阈值电压不能设置太高,应为毫伏级,本文选取R2为0.1 kΩ,R3为100 kΩ,则阈值电压为±5 mV。

将取样的信号经过迟滞比较器,经电平转换电路输出一组FPGA可接受电平标准的方波信号。NiosII通过外部中断源检测跳变信号,实现过零监测,过零信号送入Nios II外部中断端口,通过触发中断来执行电压测量。

2.3 绝对值电路的设计

待测电气设备内部电容电压通过高压分压网络输入到测试仪器,根据测试仪器表笔的位置不同,往往出现正负电压,必须对输入电压进行极性变换。传统的整流电路受二极管导通压降的影响,对信号损失大。本文采用一种精密整流电路(也称为绝对值电路),其电路如图4所示。精密整流电路由运算放大器与二极管的组合构成,由于运算放大器具有很高开环的增益,克服了二极管导通压降的影响,信号死区很小,提高了信号整流的准确度。

电路的工作原理为:当Vin>0,D1、D2导通,因此:

uo1为A1经过D2后的输出电压,假设R3=2R1,R1=R2=R4,则A2输出电压为:

其中ui2为A2的同相输入且ui2=VIN,当VIN<0,D1、D2截止,uo1=2VIN,ui2=VIN,则:

综上所述,由以上理论分析可得本设计选择R1=R2=R4=10 kΩ,R3=30 kΩ。

2.4 采样保持与模数转换电路的设计

测量系统按照安检标准,要检测规定时刻的剩余电压值,为了保证测量的准确性[4],在模数转换前使用采样保持电路AD781[5]来保持某一瞬间的值,使模数转换器在转换的过程中保持电压不变,其原理如图5所示。AD781的8引脚与FPGA的引脚相连,用来控制AD781的工作状态。

本测量系统有4位显示,量程范围为100 V,模数转换器需要10位以上,本文采用串行Δ-Σ模拟/数字转换器LTC2400[6],LTC2400内部具有精度较高的集成震荡器时钟,外部不需任何频率调整元件,内部的四阶数字陷波滤波器,将陷波器的控制端通过R4接地,减小50 Hz信号对模数转换器影响[4]。LTC2400的基准电压电路由LM336组成,适当地选取R1、R2、R3阻值能够将基准电压稳定在5.00 V。经实验达到了精确的测量效果。

2.5 人机接口电路

系统的人机接口电路如图6所示,包括显示屏与按键电路。显示屏采用了可显示汉字与图形的液晶LCM12864,采集的数据会自动保存并显示。在显示屏上会显示系统有1 s和10 s两种模式,通过数字键和设置键设置。在数字设置的过程中可能会误操作,因此需要删除键擦除。由于需要灵活的观测之前存储的数据,因此需要向下和返回进行选择。测试时需要对待测仪器预工作一段时间,这个时间通过数字键进行设置。

3 系统软件设计

本系统在μC/OS-II操作系统下编程[7],系统功能丰富,可以通过数字键设置待测仪器的通电时间,最小设置时间单位为0.1 ms。系统有自动和手动模式两种,在自动和手动模式下有两个测量模式,即掉电1 s和10 s两种模式。当把检测系统连接到待测设备上,并将测量模式按键按下时,CPU置内部标志,被测设备掉电后通过检测标志,执行测量程序,将测量结果存储、显示;测量后系统自动对数据进行处理,并与安全指标值比较判断是否超过安全指标;系统程序流程图如图7所示。

4 实验测量数据

本文所设计的残留电压测试仪其电压量程范围为100 V。当输入电压高于100 V时,高压分压网络工作在非线性状态,输入到前置放大器的电压不大于5.1 V;当输入电压小于100 V时,分压网络工作在线性分压状态,分压比为30:1。采用直流电源和万用表对测量系统进行实验,测试结果如表1、表2所示。从实验数据看,输入正电压时测量数据偏大,输入负电压时测量数据偏小,主要是由于整流电路的电阻匹配精度不够所造成的,由表中的数据可得本系统的精度为0.506%,满足测量要求。

采用SoPC技术实现了系统低功耗、高集成度,消除了人为时间估算不准的影响,提高了掉电残留电压测量的自动化水平。采用文中提到的新测试方式,解决了以往测量仪器难以实现输入高阻抗的问题,从测试数据可以看出在仪器的量程范围内测量的误差低于0.506%,满足常规残留电压测量的要求,有一定推广和实用价值。

参考文献

[1]IEC 60950-1-3005 Information technology equipment-Safety-Part1-General requirements[S].

[2]程丽玲,蔡永华,金毅萍.家用电器产品插头间剩余电压测量方法研究[J].安全与电磁兼容,2008(4):57-59.

[3]蒋秋桃,李莹,周丰良.示波器测量医用电器剩余电压的方法探讨[J].中国医疗器械信息,2010,16(5):39-40,59.

[4]冯涛,秦永左,赵巍.实用多路数据采集系统[J].长春理工大学学报,2003,26(2):83-84.

[5]周凯,李刚.高速采样保持放大电路AD781[J].国外电子元器件,2001(10):24-32.

[6]朱武,张佳民.24位模/数转换器LTC2400及其应用[J].现代电子技术,2005,28(20):69-73.

3.基于fpga的数字电压表 篇三

关键字:数字图像旋转;CORDIC算法;FPGA

中图分类号:TP39文献标识码:A文章编号:1007-9599 (2010) 09-0000-01

FPGA-based Realization of Digital Image Rotation

Su ZhaozhongZhang Yide

(School of Optoelectronic Information, University of Electronic Science and Technology of China,Chengdu610054,China)

Abstract:Digital image rotation software solutions exist slow,poor real-time inadequate,proposes a number of FPGA processing platform for the image rotation program.

Keywords:Digital image rotation;CORDIC algorithm;FPGA

一、CORDIC算法原理

本文所设计的数字图像旋转系统,必然要涉及到图像像素点的坐标的旋转,在坐标旋转的实现,以CORDIC算法的实现最为关键。CORDIC(CoordiantedRotationDigitalComputer)算法即坐标旋转计算。

对于一个P点坐标 经过逆时针旋转 角成为Q点坐标为 ,如图1所示:

从图1可以看出,P点经过旋转后得到Q点,那么有:(1)

假定将 分解为一组固定角度 的线性组合,即: ,其中 (2)

代表每次基本角度的方向,可得递推公式, (3)

经 次旋转后的第 次旋转前的角度: (4)

令 为要求的转角 与 之差, (5)则有 (6)

由上式(3)可得: (7)

若取 则(8)

(9)称为CORDIC算法的基本旋转公式。可以看出CORDIC算法实际上只是由一系列简单的移位和加法操作组成。原矢量P的坐标 经过n次基本旋转,得到 ,原矢量精确旋转 角度后,新矢量为 ,则有 (10)

上式中 (11)

对于 ,这是一个收敛的函数,经过计算 ,由此可见基本旋转对矢量改变了矢量的模长,矢量还需要进行模长的校正,才能保持原矢量模值不变。由于CORDIC计算时的角度覆盖范围为 ≤ ≤ ,所以为使CORDIC算法适应与全平面的旋转问题,需要在进行计算之前对其做预处理,以使得CORDIC算法能完成对平面矢量进行 旋转运算。

二、坐标旋转电路设计

实现基于CORDIC算法的坐标旋转电路的设计,有两种电路结构可以实现,一种是循环结构,此结构所使用的资源较少,但是有较高的时钟延时,每完成一次坐标的转化就需要n个时钟的延时。另外一种是高速的流水线结构,流水线结构占用的资源較多,但每一时钟就能完成一个坐标的变换。CORDIC迭代算法的流水线实现方法。

三、系统总体结构设计

图3为系统总体结构框图,包括以下几部分,对于图像的接收,采用乒乓操作的方式,开辟两块RAM存储区域,用于读写图像暂存。在总体控制模块的控制下,第一帧图像暂存在RAM_A中,第二帧图像暂存在RAM_B中,在存储第二帧图像的同时,把第一帧图像读出,读出后第一帧,RAM_A就可以接收第三帧图像,依次接收,每帧图像都不会丢失。每次从RAM中读取的数据,都是先经过坐标旋转计算模块运算后得到新坐标,然后送给读地址产生器模块,生成新的坐标,送至RAM地址端口,得到对应的像素点,每个新坐标对应的像素点所组成的新图像就是所要得到的初步旋转后的图像。然后再通过双线性插值模块,得到最佳效果的旋转图像。

参考文献:

[1]刘怡,黄自力,王经纬.FPGA双线性插值图像变换系统的设计与实现[J].中国测试技术,2008,5,3

4.单片机数字电压表实习报告 篇四

单片机实习报告

课题名称:

数字电压表

业: 姓

名: 班级学号:

指导教师:

刘海波

成绩:

二○一一年七月一日

目录

一、题目及设计要求...............................二、实验内容...........................................三、实验原理...........................................1、用电位计提供模拟电压..................2、用串行A/D TLC2543采集电压....3、串行显示595完成LED显示........四、设计程序:.......................................1、汇编语言:......................................2、C语言:........................................五、调试过程及测试结果.....................六、实习心得.........................................七、参考文献.........................................一、题目及设计要求

1、题目:数字电压表

2、掌握单片机设计原理,SPI总线原理,利用A/D转换器设计一数字电压表,量程为0— +5.0000,通过五位数码管显示。

二、实验内容

1、用电位计提供模拟电压

2、用串行A/D TLC2543采集电压

3、利用串行显示595完成LED显示当前电压值

三、实验原理

1、用电位计提供模拟电压

原理:电位计或称电压计,也称为可变电阻器,通常被制造成不管使用多久均能维持原有的特性,若当位置传感器使用,电位计可以是直线或旋转式位置传感器。电位计输出一个电压值,其正比于沿着可变电阻器之滑动器的位置。因为温度变化、磨耗及滑动器与可变电阻器之间的污垢均会造成电阻变化,影响电位计的精度,因此,电位计有太低的准确度。由于材料的发展,特别是在导电性塑料,使得电位计在使用很长时间后仍可以维持原有特性,同时也改进它们的性能。

2、用串行A/D TLC2543采集电压

原理:

引脚图:

控制字格式的设置:控制字为从DATAINPUT端串行输入的8位数据,它规定了TLC2543要转换的模拟量通道、转换后的输出数据长度、输出数据的格式。其中高4位(D7~D4)决定通道号,对于0通道至10通道,该4位分别为0000~1010H,当为1011~1101时,用于

对TLC2543的自检,分别测试(VREF++VREF-)/

2、VREF-、VREF+的值,当为1110时,TLC2543进入休眠状态。低4位决定输出数据长度及格式,其中D3、D2决定输出数据长度,01表示输出数据长度为8位,11表示输出数据长度为16位,其他为12位。D1决定输出数据是高位先送出,还是低位先送出,为0表示高位先送出。D0决定输出数据是单极性(二进制)还是双极性(2的补码),若为单极性,该位为0,反之为1。

转换过程:上电后,片选CS必须从高到低,才能开始一次工作周期,此时EOC为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。开始时,CS片选为高,I/O CLOCK、DATA INPUT被禁止,DATA OUT 呈高阻状,EOC为高。使CS变低,I/OCLOCK、DATAINPUT使能,DATAOUT脱离高阻状态。12个时钟信号从I/OCLOCK端依次加入,随着时钟信号的加入,控制字从DATAINPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入),同时上一周期转换的A/D数据,即输出数据寄存器中的数据从DATAOUT一位一位地移出。TLC2543收到第4个时钟信号后,通道号也已收到,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。在第12个时钟下降沿,EOC变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10μs,转换完成后EOC变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。此后,可以进行新的工作周期。

TLC2543与89C52单片机接口原理图:

3、串行显示595完成LED显示

原理:每位LED显示器段选线和74HC595的并行输出端相连,每一位可以独立显示在多位LED显示时,为了简化电路,降低成本,节省系统资源,将所有的N位段选码并联在一起,由一片74HC595控制。由于所有LED的段选码皆由一个74HC595并行输出口控制,因此,在每一瞬间,N位LED会显示相同的字符。想要每位显示不同的字符,就必须采用扫描的方法,即在每一瞬间只使用一位显示字符。在此瞬间,74HC595并行输出口输出相应字符段选码,而位选则控制I/O口在该显示位送入选通电平,以保证该位显示相应字符。如此轮流,使每位分时显示该位应显示字符。由于74HC595具有锁

四、设计程序:

1、汇编语言:

ORG 0000H LJMP START ORG 0030H ENA EQU P1.0 ;设置引脚 ENB EQU P1.1 ENC EQU P1.2 CLK EQU P2.3 IN EQU P2.4 OUT EQU P2^5 START:CLR ENA ;选通TCL2543 CLR ENB CLR ENC

CLR CLK NOP NOP MOV A,#34H;设置方式控制字 CLR C MOV R0,#8 LOOP:RLC A ;左大环移,按位输入控制字 MOV IN,C SETB CLK NOP NOP CLR CLK NOP NOP DJNZ R0,LOOP

MOV R0,#8 MOV A,#0 CLR C LOOP1:MOV C,OUT ;按位输出转换后的数字量 SETB CLK NOP NOP CLR CLK NOP

1011

_nop_();_nop_();

for(i=0;i<8;i++)/*将转换的8位数字量按位输出*/ {b[i]=OUT;CLK=1;_nop_();_nop_();_nop_();CLK=0;_nop_();_nop_();_nop_();} for(i=8;i>0;i--)/*数字量换算成十进制数*/ {e=b[i-1];d=c*e+d;c=2*c;} d=d*143.5294117;for(i=0;i<5;i++)/*把十进制数字量按位分离存入数组*/ {f[i]=d/j;g=f[i];d=d-j*g;j=j/10;} } void XS()/*显示转换电压数据*/

{int m[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x20,0x78,0x00,0x10};int n[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};uchar a,i,j,num;ENA=0;/*选通74LS595*/ ENB=1;ENC=1;for(i=4;i>0;i--)/*显示小数部分*/ {a=f[i];/*取出数字量的第i位*/ num=n[a];/*查表转换成对应的LED字型显示代码*/ CLK=0;_nop_();_nop_();_nop_();for(j=0;j<8;j++)/*按位输入代码*/ { if((num&0x80)==0x00)/*判断首位是否为1*/

for(j=0;j<8;j++){IN=1;

CLK=1;_nop_();_nop_();_nop_();

CLK=0;

_nop_();_nop_();_nop_();} _nop_();_nop_();_nop_();ENA=1;/*关闭74LS595显示标准电压数字量*/ ENB=1;ENC=1;_nop_();_nop_();_nop_();} void main(){ while(1){AD();/*AD转换函数*/ XS();/*数字量显示函数*/ } }

五、调试过程及测试结果

1、首先根据电路原理图在软件上连出电路,然后进行电路的调试,在实际的电路中,芯片一脚接+5V的电源,另一引脚接地。

2、现在将在调试过程中的问题总结:测试数码管显示的数据是否正确,将编好的程序写进单片机后,观察数码管,发现码型显示不正确,通过改正硬件电路,是数码管显示正确的数据。

5.基于fpga的数字电压表 篇五

摘要:介绍了一种基于ALTERA公司大规模可编程逻辑器件EPF10K10的多功能光栅尺处理品电路。叙述了该电路的主要电路――四倍频细分、辨向电路、计数电路、接口处理电路的设计原理,风时给出了详细的电路和仿真波形。

关键词:光栅尺 四倍频细分 辨向 EDA FPGA EPF10K10

1 光栅尺信号及电路设计要求

将光源、两块长光栅(动尺和定尺)、光电检测器件等组合在一起构成的光栅传感器通常称为光栅尺。光栅尺输出的是电信号,动尺移动一个栅距,输出电信号便变化一个周期,它是通过对信号变化周期的测量来测出动就与定就职相对位移。目前使用的光栅尺的输出信号一般有两种形式,一是相位角相差90o的2路方波信号,二是相位依次相差90o的4路正弦信号。这些信号的空间位置周期为W。本文针对输出方波信号的光栅尺进行了讨论,而对于输出正弦波信号的光栅尺,经过整形可变为方波信号输出。

输出方波的光栅尺有A相、B相和Z相三个电信号,A相信号为主信号,B相为副信号,两个信号周期相同,均为W,相位差90o。Z信号可以作为较准信号以消除累积误差。

图1给出了动尺移动时A、B信号的变化情况。在A信号的下降沿采集B信号,就可以判断出运动方向。图中前半部分为正向运动,A信号的上升沿及下降沿均比B信号超前1/4W,在A信号下降沿采集的B信号为“1”;后半部分为反向运动,A信号的上升沿及下降沿均比B信号滞后1/4W,在A信号下降沿采集到的B信号为“0”。根据采集到的运动信号方向和A信号变化的周期数用计数器进行曲计数(正向计数或逆向计数),就可以测算出总位移。

在上述信号处理、测量电路中,用到了触发器、计数器等多种数字集成电路,测量分辨率为光栅栅距W。目前,计量用光栅尺的刻线一般为每毫米50~250线,对应的栅距W为20~4μm ,在精密测量中往往不能满足要求,需要进行曲细分。如果同时考虑A、90o信号上升沿和下降沿的各种情况,就可以实现信号四细分,其主要电路有:细分辨向、计数和接口电路等。以上功能可以由通用数字集成电路来完成,但这种设计方法所用芯片多,结构复杂。当然也可以通过单片机以及一些外围芯片来完成,只是这种方法通用性差,编程复杂,而且增大了单片机的负担,使单片机响应其它事件的实时性变差。

随着大规模可编程逻辑器件(CPLD:复杂可编程逻辑器件;FPGA:现场可编程门阵列)的飞速发展,传统的电路设计方法已大为改观。许多传统的逻辑电路完全可以用可编程逻辑器件来代替,并且可提高系统的可靠性,减小PCB的面积,使产品小型化,还有利于保护知识产权。利用EDA(电子设计自动化)技术设计可编程逻辑器件已成为现代电子设计的一种必然趋势。本文所介绍电路的接口模块就是基于FPGA芯片完成的。

该电路设计有如下要求:利用FPGA芯片完成双路光栅尺信号处理(考虑到2维X-Y平台的应用场合)、四细分及辨向功能、24位可逆计数器、与微处理品器及各种单片机的并行接口电路(包括锁存、译码、清零电路等)。其对外接口信号如图2所示。

INA1、INB1、INA2、INB2分别为两路A、B信号。作为处理电路 输入信号,这2路信号经四细分、辨向后,可为两路24信可逆计数器提供计数脉冲和方向信号。接口电路包括锁存、译码、清零电路等,通过数据线D0~D7、地址线A0~A4、片选信号线CS来读写控制与外部微控制器接口。接口采用8位数据总线,计数值(48位,占6个读口)及清零命令等数据交换均通过不同口地址的读写完成。该模块的操作与其它智能接口器件(如8255、8253等)相类似。

2 FPGA器件的选择

根据设计要求和综合估算整个电路所需要的管脚和宏单元的个数,本设计选用EPF10K10。它是ALTERA公司FLEX10K系列产品之一,是一种嵌入式可编程逻辑器件。EPF10K10采用CMOS SRAM制靠工艺,使用权SRAM来存储编程数据,具有在系统可编程特性。具体的配置方式有被动型和主动型两种,其中被动型配置是在上电后由计算机通过编译后产生的后缀为SOF的文件利用专门的下载电缆配置芯片。而主动型配置是在上电后由专门的可编程配置芯片(如EPC1441)自动对EPF10K10芯片进行配置。EPF10K10具有高密度(可用逻辑门1万~25万;RAM;6114~4096位,512个宏单元)、高速度、低功耗等特点。芯片内含有专用进位链和级联链及快速通道,故其互连方式十分灵活。

3 电路设计

本电路采用Altera公司的Max -plus 开发平台进行设计。Max -plus 为Altera公司的专门开发平台,它包括设计输入、编译、仿真、器件编程等功能。该平台使用方便,允许用户用原理图、VHDL语言、波形图等多种输入方法进行设计。下面介绍系统主要电路的设计。

3.1 细分辨向电路

光栅尺信号的`细分与辨向是提高光栅尺测量精度的关键性一步。在笔者所参考的关于光栅辨向和细分电路的资料中,很多设计者都没有综合考虑辨向和细分的复杂性,而是把辨向和细分电路分开,辨向电路只对光栅尺的输出信号进行辨向,而不是对细分后的脉冲信号进行辨向,这样实现测量误差仍是光栅尺的栅距。在考虑辨向功能时,应对细分后的信号进行辨向设计,否则不能提高测量精度。

细分辨向电路的原理图如图3所示,光栅尺输出的相差为90 o的方波信号INA、INB经RC滤波和施密特整形后(芯片外处理)输出信号A、B,然

后经第一级D触发器后变为A’、B’信号,再经过第二级D触发器变为A”、B”信号。通过D触发器可以对信号进行整形,从而消除了输入信号中尖脉冲带来的影响,这样在后续倍频电路中不再使用权原始信号A、B,因此提高了系统的抗干扰性能。D触发器的时钟由外部有源晶振提供,其频率为1MHz,远高于A、B波形变化的频率,因而可以认为,D触发器的输出端Q能跟踪输入端D的变化。在四倍频辨向电路中,采用组合、时序逻辑实现A’、A”、B’、B”信号进行的逻辑组合。

当光栅尺正向运动时,从CLKADD信号端输出四倍频脉冲,而CLKSUBB端无信号输出。当光栅尺反向运动时,从CLKSUBB信号端输出四倍频脉冲,而CLKADD端无信号输出。CLKADD和CLKSUBB相与后作为可逆计数器的计数脉冲CLK,读出该计数器的值便可得出光栅移动的位置。CLKADD和CLKSUBB信号组成的RS触发器电路可产生ENADD,ENSUBB。ENADD可作为可逆计数器的方向信号。其仿真波形如图4所示。

3.2 计数电路

本系统中的24位计数器采用VHDL语言进行设计。输入信号定义为时钟CLK、方向信号fx =ENADD ,清零信号CLR(后面有介绍)。输出信号定义为24位的计数结果COUNT(23:0)。用VHDL语言来编写实现24位可逆计数器功能。其仿真信号如图5所示。

3.3 接口电路

接口电路用原理图法设计,电路包括以下部分:

(1)地址译码电路:输入信号为外部(微处理器、单片机等)的地址线A0~ A4、片选信号线CS、读写控制信号,通过逻辑门电路的连接构成组合逻辑,给每一个内部单元提供使能信号。

(2)锁存接口电路:由于内部各计数单元工作属于动态过程,因此外部微处理器(或单片机等)在读取数据时,应该先给其发出锁存信号然后再读取数据,以保证读出稳定的数据。锁存器输出设计为三态门输出,与外部数据线连接,三态门的使能信号由译码电路提供。

(3)清零电路:电路中设计了清零电路。清零脉冲是通过外部写命令(8位)内部进行译码的方式进行的,而不是使用一根信号线进行清零,这样可以有效地防止在只使用一根信号线时受干扰等原因而引起的误清零现象。

4 结束语

6.基于fpga的数字电压表 篇六

在光刻机双工件台控制系统中,VME总线使用了三个接口共430根线路接入,通过背板互联的有P1,P2两个接口320根线路接入。实际上VME标准协议并没有完全使用全部线路,而是为用户预留了部分自定义线路,增加了设计的灵活性。由于VME总线主要用于工控机与各板卡的通信,同步控制卡与激光计数卡和光栅译码卡使用总线就会产生严重冲突,影响采用是实时性,因此这里将VME总线中未使用的管脚作为自定义总线管脚,这样避免了增加新的硬件接口,而且在硬件设计上可以和VME总线一起考虑。

自定义同步总线数据传输完全根据主控总线提供的时序进行,地址线包含了对数据发送和接收方的定义。每个总线传输周期中,数据发送端和接收端的身份根据地址寻址关系自动切换,而避免了总线控制权更迭时的握手,及数据传输优先级或传输抢占等问题,总线控制信号来自同一个时钟域,从节点仅响应控制信号,可忽略节点间时钟相位差影响。在每个伺服周期,设计了一个数据传输序列来实现共享数据交互。数据传输序列由若干个总线传输周期构成,每个周期完成32bit的数据共享。通过设定总线地址来设置数据传输序列的传输内容,当所有的设定总线地址被遍历,则当前周期数据传输已经完成,所有被规划传输的数据都被所有的运动控制卡所共享。

2.VME自定义总线逻辑协议的实现

VME自定义总线是一条并行运行的总线,该总线釆用数据广播的方式,可以方便各个板块同时接收同一个数据。其由同步控制卡提供5KHz时钟,每200us同步控制卡将数据锁存线拉高,向光栅译码卡发出一个脉冲,此时光栅译码卡和激光干涉仪等设备锁存该时刻的数据,其读数不再发生变化,然后同步控制卡产生一连串的读取信号,将各个光栅尺的数据读出。同时切换总线上的地址,并生成釆样保持,读取和地址三个信号置于自定义总线,运动控制卡通过对自身所需的地址的识别在读信号低电平时获得相应位置传感器的信号。

2.1 VME自定义总线接口的实现

VME自定义总线在VME的P2口上,时钟频率是5KHz,用于传输激光干涉仪和光栅尺的测量数据。在实际应用中,位置环釆样周期为200us,并且有大量的实时伺服数据在运动控制卡与光栅译码卡之间、运动控制卡与运动控制卡之间、运动控制卡与同步总线控制卡之间交换。如果在运动控制中,这些伺服数据使用VME总线进行交换,则会堵塞系统总线,使PowerPC无法进行正常工作。为此,利用光栅译码卡的技术特点以及VME的P2自定义接口,构造自定义局部总线。并设计专用同步总线控制模块对同步总线进行控制。自定义同步总线接口逻辑同样釆用FPGA芯片来实现,使其达到灵活、可靠、集成度高的设计要求。

自定义同步总线的主控制器由运动控制系统中的同步总线控制卡来实现,而运动控制卡中只需实现自定义总线的从接口。从控制器结构如图1所示,其功能包含以下方面:

提供DSP对于双口RAM访问的地址译码,将DSP的标准EMIF接口时序转换成双口RAM访问时序,该功能在EMIF时序匹配模块中完成;

完成自定义总线的读写逻辑,当自定义总线的地址有效后,数据方向控制模块将判断当前运动控制卡是数据发送端还是数据接收方,以切换数据总线方向;

当某一个特定的自定义总线地址访问出现的时候,总线时序匹配模块将产生中断信号提供给DSP,提供同步触发步控制卡VME自定义总线逻辑功能的实现

光栅译码卡接收来自光栅尺的信号,实现对工件台宏动部分的位置测量,测量数据通过自定义总线传送给同步控制卡。同步控制卡通过内部的定时器,产生运动周期开始信号,读取光栅译码卡的数据,然后将各个运动控制卡所需的信号,按照一定的地址编码,发送到VME64X总线的自定义总线上,由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后,依次接收指令位置和光栅尺数据,运动控制卡进行数据存储等其他操作,并等待下个运动周期的开始信号。

对于同步控制卡FPGA中逻辑协议的设计,釆用三段式状态机进行设计,第一段描述次态寄存器转到现态寄存器;第二段对状态转移条件进行判断,从而完成状态转移变换;第三段描述在各个状态完成的动作和对状态转移条件进行描述。

2.2 同步控制卡VME自定义总线读取光栅尺的逻辑转换

每200us向光栅译码卡发出一个脉冲,光栅译码卡接收到该脉冲后就会锁存当前数据,当脉冲到来时则转到S1状态,否则仍然处于S0。在S1状态时等待20ns,即让光栅译码卡把数据锁存完成,接着转到状态S2。在状态S2,将地址发送给光栅译码卡,并且等待30ns,让输出数据稳定,然后转到状态S3。在状态S3,将数据锁存,读操作的次数置零,并且将地址发送给双口RAM,延时10ns等待数据和地址稳定,然后转到状态S4。在S4对双口RAM进行写操作使能,即给写使能引脚置高电平,然后进入状态S5。在S5将读操作次数加1,并判断是12路数据是否读取完毕,即读次数是否等于12,若否则进入状态S6,否则进入状态S11。从状态S6到状态S10重复状态S1到S5的过程,直到读取完成。在状态S11,发出读取完成脉冲,并延时20ns到状态S12,最后返回状态S0等待。同步控制卡VME自定义总线设计实测结果,实测模块是接收12路光栅尺的数据,从图3可以看出,送到光栅译码卡的地址,在延迟一定时间后,稳定的数据才输出,所以这里是根据实测的延迟时间来决定模块设计中的相关信号的延迟。

将数据写人缓存必须等待数据稳定才能发出写信号。运动控制卡读取VME自定义总线数据逻辑功能的实现,在光刻机双工件台控制系统中,每块运动控制卡实现,同步控制卡VME自定义总线设计实测结果。

实测模块是接收12路光栅尺的数据,从图3可以看出,送到光栅译码卡的地址,在延迟一定时间后,稳定的数据才输出,所以这里是根据实测的延迟时间来决定模块设计中的相关信号的延迟。

将数据写人缓存必须等待数据稳定才能发出写信号。运动控制卡读取VME自定义总线数据逻辑功能的实现,在光刻机双工件台控制系统中,每块运动控制卡实现对三个电机的控制,整个系统需要12块运动控制卡,它通过光纤口将控制信号传送到电机驱动。同步控制卡通过内部的定时器,产生运动周期信号,读取光栅译码卡中数据,进行解耦,然后将各个运动控制卡所需的信号,按照一定的地址编码,发送到VME64x自定义总线,由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后,依次接收指令位置和光栅译码卡的数据。

3.结束语

7.基于fpga的数字电压表 篇七

在日常生活及工业生产中经常要用到直流电压的检测,由单片机和A/D转换器构成的数字电压表,已被广泛应用于电子测量、工业自动化仪表、自动测试系统等智能化测量领域中。传统的A/D转换器主要有ADC0808、ADC0809等,这些A/D转换器转换精度低,并且采用并口与单片机相连,大量占用单片机的I/O口资源。为此,采用TLC2543设计的数字电压表,能够较好地解决以上问题。

TLC2543是TI公司推出的一种12位串行A/D转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机的I/O口资源,且价格适中。其特点主要有:

(1)12位分辨率A/D转换器;

(2)在工作温度范围内转换时间为10μs;

(3)具有11路模拟输入通道;

(4)3路内置自测试方式;

(5)采样率为66KHz;

(6)线性误差+1LSB(max);

(7)有转换结束(EOC)输出;

(8)具有单、双极性输出;

(9)可编程的MSB或LSB前导;

(10)可编程的输出数据长度。

2、TLC2543的引脚排列与使用方法

TLC2543的引脚排列如图1所示,其中AIN0~AIN10为11路模拟输入端,为片选端,DATA INPUT为串行数据输入端,DATA OUT为A/D转换结果的三态串行输出端,EOC为转换结束端,I/O CLOCK为I/O时钟端,REF+为正基准电压端,REF-为负基准电压端,VCC为电源端,GND为地。

TLC2543的控制字为8位数据,从DATA INPUT端串行输入,它规定了TLC2543要转换的模拟量通道号、转换后的输出数据长度及输出数据格式,其中高4位(D7~D4)决定了通道号,例如高4位数据为1000,则表示转换的通道号为第8通道,由于TLC2543共有11通道,所以高4位数据当为1011~1101时,就不再表示为通道号,而是作用TLC2543的自检、分别测试(VREF++VREF-)/2、VREF+、VREF-的值,当为1110时,TLC2543进入休眠状态。控制字的低4位决定了输出数据长度及格式,其中D3、D2决定了输出数据长度,01表示输出数据长度为8位,11表示输出数据长度为16位,其他值表示为12位,D1决定了输出数据是先输出高位,还是先输出低位,若D1=0表示先输出高位,D0决定了输出数据是单极性(二进制)还是双极性(2的补码),若D0=0表示为单极性。

TLC2543的串行总线为SPI总线,由于51单片机没有SPI或相同的接口能力,需要采用软件来模拟SPI的时序操作,TLC2543的时序如图2所示。

从图2的时序图可知,当TLC2543开始上电后,片选端必须从高到低,才能开始一次工作周期,此时EOC为高电平,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。开始时,片选端为高电平,I/O CLOCK、DATA INPUT被禁止,DATA OUT呈高阻状态,EOC为高,然后使/CS变低,I/O CLOCK、DATA INPUT使能,DATA OUT脱离高阻状态,12个时钟信号从I/O CLOCK端依次加入,随着时钟信号的加入,控制字从DATA INPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入),同时上一周期转换的A/D数据(即输出数据寄存器中的数据)从DATA OUT一位一位地移出。TLC2543收到第4个时钟信号后,通道号也已收到,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。在第12个时钟下降沿来临时,EOC开始变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10μs,转换完成后EOC变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。此后,TLC2543可以进行新的工作周期。

3、硬件设计

图3给出了本系统的硬件框图,单片机采用AT89S51。AT89系列单片机是美国ATMEL公司继承INTEL公司80C31的核心技术并和自身先进的闪电存储器(FLASH MEMORY)技术相结合而产生的FLASH单片机系列。它是一种低功耗、高性能、内含4K/8K字节闪电存储器、用CHMOS工艺制作的8位单片机。

图4给出了TLC2543与AT89S51单片机的管脚连接,单片机的P1.0口与TLC2543的片选端相连,P1.1与DATA OUT相连,P1.2与DATA INPUT相连,P1.3与I/O CLOCK相连,P1.4与EOC相连。采用TLC2543的AIN0通道进行电压测量,REF+接5V,REF-接地。

数字电压表的显示采用普通的数码管动态扫描显示的方式,采用4位一体的数码管作为显示器件,每位数码管轮流点亮1ms,具有良好的视觉效果。单片机的P0口通过74LS245驱动数码管的8位数据端,单片机的P2口的低4位直接连接数码管的控制端进行点亮控制。

4、软件设计及仿真

TLC2543的采集程序流程图如图5所示,TLC2543在每次I/O周期读取的数据都是上次转移的结果,当前的转换结果在下一个I/O周期中被串行移出。第一次读数由于内部调整,读取的转换结果可能不准确,应丢弃。

TLC2543转换子程序如下:

本系统的调试主要以软件为主,系统电路图的绘制和仿真采用的是Proteus软件,图6给出了数字电压表的测量电压值及数码管显示电压值。在仿真时,采用电位器来模拟测量端电压值的变化,如图6所示,此时的测量电压值为2.64993V,而数码管的显示值为2.647V,绝对误差为0.002V,当电位器中间端进行调整时,数码管的显示值也会随之变换,实现直流电压的测量功能。

5、结语

本测量系统实用性强、结构简单、成本低、外接元件少。在实际应用中工作性能稳定,测量电压准确,精度较高。系统功能、指标达到了课题的预期要求。系统在硬件设计上充分考虑到了可扩展性,经过一定的添加或改造,很容易增加功能,如加入按键选择通道功能,多路通道轮流测量及显示等功能。

摘要:数字电压表是对电子电路进行现场检测的常用仪表,文中讨论了一种基于TLC2543的数字电压表设计方法。该数字电压表的控制系统采用AT89S51单片机,A/D转换器采用TLC2543为主要硬件,实现简易数字式直流电压表的硬件电路与软件设计,具有一定的实用价值。

关键词:TLC2543,AT89S51,数字电压表

参考文献

[1]武汉力源电子股份有限公司.TLC2543模数转换器数据手册及应用笔记[G].武汉:武汉力源电子股份有限公司,1999.

[2]马明建,周长城.数据采集与处理[M].西安:西安交通大学出版社,1998.

[3]张义红.单片机与TLC2543模数转换器的接口设计[J].岳阳:湖南理工学院学报(自然科学版),2005(2):79~82.

8.基于fpga的数字电压表 篇八

关键词 EDA技术;可编程逻辑器件;数字频率计

中图分类号:G642.0 文献标识码:B

文章编号:1671-489X(2016)16-0031-02

数字频率计是计算机、通信设备、音频视频等科研生产领域不可缺少的测量仪器,以EDA工具作为开发手段。基于FPGA所设计的数字频率计,具有高速、精确、可靠、抗干扰性强和现场可编程等优点。在设计中,所有频段均采用直接测频法对信号频率进行测量,克服了逼近式换档速度慢的缺点;在换档设计方面,突破了以往改变闸门时间的方法,采用门控信号和被测信号对计数器的使能端进行双重控制,使自动换档的实现更加简单可靠,提高了测量的精确度;在运算单元采用高速串行BCD码除法,不仅提高了运算速度,而且减小了资源消耗。

1 设计要求

设计一种基于FPGA的数字频率计,要求:数字频率计分为0~9.999 Hz、10.00~99.99 Hz、100.0~999.9 kHz

和1000~9999 kHz四档,且能够实现自动换档的功能。

2 总体设计方案

数字频率计总体框图如图1所示。数字频率计由分频器、计数器、锁存器和译码器等模块构成,系统有3个输入信号,即两个时钟信号CLK、SIG和一个清除信号CLR。系统有5个输出信号,即报警信号ALM、显示信号Q、数码管片选信号L、位控位A和位控位B。

分频器模块通过对时钟信号CLK进行分频,为计数器模块提供1 s的闸门时间test-en。当test-en为高电平时,闸门被打开,被测信号的脉冲通过闸门进入计数器进行计数;当test-en下降沿到来时,产生一个锁存信号,将计数值保存起来,由八段译码器译码并在数码管显示计数结果。锁存数据后,在下次test-en上升沿到来之前产生清零信号,将计数器清零,为下次计数做准备。

3 设计实现

采用模块化的设计思想,依据系统设计要求自上至下地细化设计。顶层设计完成后,采用硬件描述语言对各模块进行编程,在MAX+PLUSⅡ环境下进行编译、功能仿真,创建各模块的器件符号,待建立整体系统顶层文件时调用。

分频器模块 分频器模块(FEN)通过对4 MHz时钟信号进行分频得到0.5 Hz时钟,为计数器模块(CORNA)提供1 s的闸门时间。根据给定的分频值,分频器模块对4 MHz频率进行1/2n的分频,每来一个时钟,中间值cnt状态改变一次;经过n个cnt触发处理后,就可以得到1/2n的分频信号。

数码管片选信号产生模块 数码管片选信号产生模块(SEL)把时钟信号转换成片选信号提供给输出模块。片选信号低电平时,表示其对应的数码管可以进行显示操作,数据信号输出数码管显示所需的数据,即“000”“001”“010”“011”“100”“101”“110”和“111”。

计数器模块 计数器模块(CORNA)通过对待测信号在基准时间内进行计数测量待测信号的频率,完成对输入时钟信号的计数。由分频器提供的使能信号DOOR为高电平时,允许计数;DOOR为低电平时,停止计数,并保持所计的数。当中间值c6不为零时,选择4档;当中间值c5不为零时,选择3档;当中间值c4不为零时,选择2档;否则选择1档,计数选档结束后,将5个输出信号传给锁存器。

锁存器模块 锁存器模块(LOCK)在分频器模块输出信号DOOR的下降沿到来时,将计数器的数值Q3、Q2、Q1、Q0、DANG锁存。

数据输出模块 数据输出模块(CH)对应于数码管片选信号,将相应的数据送出,其中档位也通过数码管显示。数据输出模块根据锁存器和数码管片选信号的输出信号,实现数码管的实时显示。

八段译码驱动模块 八段译码驱动模块(DISP)将输入的BCD码转换为LED数码管需要的数据,八段译码驱动模块的仿真波形如图2所示。

D是八段译码驱动模块的输入信号,由数据输出模块输出信号d赋予;Q是八段译码驱动模块的输出信号,对应于数码管的8个显示段。当d为“0000”时,q为3F;当d为

“0001”时,q为06;当d为“0010”时,q为5B;当d为

“0011”时,q为4F;当d为“0100”时,q为66;当d为

“0101”时,q为6D;当d为“0110”时,q为7D;当d为

“0111”时,q为27;当d为“1000”时,q为7F;当d为

“1001”时,q为6F。

各模块连接 各模块总体连接图如图3所示。CLK输入至分频器,SIG、CLR输入至计数器,输出报警信号ALM来自计数器,Q是八段译码器连接显示器的输出,L是数码管片选信号产生模块的输出,输出A和B是位控位[1]。

系统仿真波形如图4所示。当输入信号SIG、CLR、CLK的值为“000”“010”“100”和“110”时,仿真波形相同。输出信号Q在0.0~875.0 ns时为3F(即“0111111”),之后为0(即“0000000”)。输出信号L在0.0~125.0 ns时为“000”,之后每隔250.0 ns依次为“001”“010”“011”“100”……输出信号A和B为高电平。

4 结语

EDA技术给电子系统设计带来巨大的变革,特别是硬件描述语言的出现和发展,并与大规模可编程器件相结合,极大地提高了电子系统设计的效率和可用性,成为电子系统设计人员的得力助手。

参考文献

9.基于fpga的数字电压表 篇九

基于FPGA技术的多处理器导航系统设计

随着惯性导航及组合导航的不断变化和发展,为适用于微小型场合使用,结合现有导航技术,研究了一种基于FPGA多处理器结构的、低功耗、低成本的惯性导航系统.重点分析了其硬件和软件的`特点,给出了一种实用的设计方式.

作 者:杨芳 郝永平苗雷 YANG Fang HAO Yong-ping MIAO Lei  作者单位:沈阳理工大学,沈阳,110168 刊 名:弹箭与制导学报  PKU英文刊名:JOURNAL OF PROJECTILES, ROCKETS, MISSILES AND GUIDANCE 年,卷(期):2007 27(2) 分类号:V249.322 关键词:SOPC   FPGA   惯性导航  

10.基于fpga的数字电压表 篇十

随着电力系统体制改革的深化,厂网分家的模式已初步形成。发电厂上网电量及电网间电量交换的精确计量直接关系到结算双方的经济利益,因此减小电能计量装置的综合误差是十分重要的。实际测试的结果表明,电能计量综合误差中电压互感器(TV)二次加路电压降引起的计量误差最为突出,大约占电费收入的1%-2%甚至更多,电费数百万元。为减小该 误差,目前普遍通过铺设测试电缆进行压降的检测,再通过电压器进行跟踪补偿。这种方法测量功能有限,而且需要铺设很长的电缆,在距离远、地形复杂的地方甚至无法进行,这类装置使用麻烦且不能实现在线监测。因而开发种测量精度高、无需铺设专用电缆、具有远程通信功能的新型电压互感器二次回路压降自动跟踪补偿及监测装置很有必要。

(本网网收集整理)

基于全球卫星定位系统(GPS)的电压互感器二次线路压降自动跟踪补偿装置能很好地解决以上问题。装置以GPS信号作为TV二次线路两端数据采集的同步信号,同步测量TV输出端口和电能表输入端口的电压向量,结合锁相倍频技术,使系统的准确性和稳定性得到保证;并以电力线载波通信的方式进行数据通信,免去了铺设电缆的麻烦和安全隐患;通过D/A转换实时进行电压补偿,从而达到自动跟踪补偿的目的。

1 自动跟踪补偿装置的总体结构

系统结构如图1所示。

基于GPS的电压互感器二次线路压降载波式自动跟踪补偿装置由测量主机和测量从机两部分构成。主机除了测量二次仪表输入口的电压参数以外,还向从机发送控制命令并接收测量数据,计算二次线路压降,通过D/A转换输出补偿电压,通过串口与上位机通讯实现远程监控和数据共享。从机结构与主机类似,只是没有D/A补偿模块,它能与主机通讯,按主机命令对TV输出端口的电压参数进行测量,并将实时数据及时地发送到测量主机。

11.基于fpga的数字电压表 篇十一

随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。数字电压表是采用数字化测量技术设计的电压表。数字电压表与模拟电压表相比,具有读数直观、准确、显示范围宽、分辨力高、输入阻抗大、集成度高、功耗小、抗干扰能力强,可扩展能力强等特点,因此在电压测量、电压校准中有着广泛的应用。本文采用ADC 0808对输入模拟信号进行转换,控制核心AT89C 51单片机对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号,通过Proteus仿真软件实现接口电路设计,并进行实时仿真。

Proteus软件是一种电路分析和实物模拟仿真软件。它运行于Windows操作系统上,可以进行仿真、分析(SPICE)各种模拟器件和集成电路,是集单片机和SPICE分析于一身的仿真软件,功能强大,具有系统资源丰富、硬件投入少、形象直观等优点,近年来受到广大用户的青睐。

1 系统概述

1.1 设计任务

利用单片机AT89C 51与ADC 0808设计一个数字电压表,将模拟信号0~5V之间的电压值转换成数字量信号,以两位数码管显示,并通过虚拟电压表观察ADC 0808模拟量输入信号的电压值,LED数码管实时显示相应的数值量。

1.2 总体方案

数字电压表电路组成框图如图1所示[1]。

本设计中需要用到的电路有电源电路、模/数转换电路、单片机控制电路显示电路等设计中需要用到的芯片有AT89C 51单片机、ADC 0808、74LS74、LED数码管等[2]。

2 数字电压表的Proteus软件仿真电路设计

待测电压输入信号在ADC 0808芯片承受的最大工作电压范围内,经过模/数转换电路实现A/D转换,通过单片机控制电路进行程序数据处理,然后通过七段译码/驱动显示电路实现数码管显示输入电压。

硬件电路原理图如图2所示。

2.1 AT89C 51单片机和数码管显示电路的接口设计

利用单片机AT89C 51与ADC 0808设计一个数字电压表,将模拟信号0~5V之间的直流电压值转换成数字量信号0~FF,以两位数码管显示[3]。Proteus软件启动仿真,当前输入电压为2.5V,转换成数字值为7FH,用鼠标指针调节电位器RV 1,可改变输入模/数转换器ADC 0808的电压,并通过虚拟电压表观察ADC 0808模拟量输入信号的电压值,LED数码管实时显示相应的数值量。

在Proteus软件中设置AT89C 51单片机的晶振频率为12MHz[4]。本电路EA接高电平,没有扩展片外ROM。

2.2 A/D转换电路的接口设计

A/D转换器采用集成电路ADC 0808。ADC 0808具有8路模拟量输入信号IN 0~IN 7(1~5脚、26~28脚),地址线C、B、A(23~25脚)决定哪一路模拟输入信号进行A/D转换,本电路将地址线C、B、A均接地,即选择0号通道输入模拟量电压信号[5]。22脚ALE为地址锁存允许控制信号,当输入为高电平时,对地址信号进行锁存。6脚START为启动控制信号,当输入为高电平时,A/D转换开始。本电路将ALE脚与START脚接到一起,共同由单片机的P2.0脚和WR脚通过或非门控制。7脚EOC为A/D转换结束信号,当A/D转换结束时,7脚输出一个正脉冲,此信号可作为A/D转换是否结束的检测信号或向CPU申请中断的信号,本电路通过一个非门连接到单片机的P3.2脚。9脚OE为A/D转换数据输出允许控制信号,当OE脚为高电平时,允许读取A/D转换的数字量。该OE脚由单片机的P2.0脚和RD脚通过或非门控制。l0脚CLOCK为ADC 0808的实时时钟输入端,利用单片机30引脚ALE的六分频晶振频率得到时钟信号。数字量输出端8个接到单片机的P0口。

3 数字电压表的软件程序设计

系统上电状态,初始化ADC 0808的启动地址,数码管显示关闭,开始启动A/D转换。等待启动结束后,将ADC 0808的0号通道模拟量输入信号转换输出的数字量结果通过数码管动态显示的方式显示到三位数码管上。

根据设计要求结合硬件电路,在输入模拟信号时采用电阻分压[6],最终的采样输入电压只有实际输入电压的十分之一,所以在编写程序中要编写一段数据调整程序,其中还应注意硬件显示电路采用了动态扫描显示,在动态扫描显示方式中,动态扫描的频率有一定的要求,频率太低,数码管LED将会出现闪烁现象,通常数码管点亮时间间隔一般均取5ms左右为宜[7],这就要求在编写程序时,使其点亮并保持一定的时间。总结以上分析,程序流程图如图3,图4所示。

本电路的程序设计主要包括A/D转换部分、LED显示、初始化和定时器中断部分。部分程序代码如下所示。

5 结束语

本文的数字电压表可以测量0~5V的电压值,AT89C 51为8位单片机[8],当ADC 0808的输入电压为5V时,输出数字量值为+4.99V。如果要获得更高的精度,需采用I2位、I3位等高于8位的A/D转换器。数字电压表的显示部分可以增加BCD码调整程序来通过三位数码管显示其数据。本设计的显示偏差,可以通过校正0808的基准参考电压来解决,或用软件编程来校正其测量值。本系统在设计过程中通过Proteus仿真软件的调试,具有电路简单、成本低、精度高、速度快和性能稳定等特点。

参考文献

[1]刘振忠.数字电压表发展概况和原理:电压-频率(V-F)变换式积分型数字电压表[J].电讯工程,1998(2):39-42.

[2]王幸之.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社,2000.

[3]吴金戌,沈庆阳,郭庭吉.单片机实践与应用[M].北京:清华大学出版社,2002.

[4]张志良,马彪.单片机原理与控制技术[M].北京:机械工业出版社,2001.

[5]沈任元,吴勇.常用电子元器件简明手册[M].北京:机械工业出版社,2004.

[6]沙占友.新型数字电压表原理与应用[M].北京:机械工业出版社,2006.

[7]谢自美.电子线路设计实验测试[M].武汉:华中科技大学出版社,2000.

12.基于FPGA的数字滤波器设计 篇十二

数字信号的FPGA实现, 以其处理速度高, 实时性强而越来越多的用于各种系统。另外, 数字滤波器在图象处理, 语音识别, 模式识别等数字信号处理中占有非常重要的地位, 几乎是所有的数字信号处理系统中通用的基本构建模块之一, 它可以满足滤波器幅度和相位特性的严格要求, 可以克服模拟滤波器所无法克服的电压漂移, 温度漂移和噪声等问题。在本次设计中完成FIR滤波器的设计, 由于FIR系统只有零点, 系统稳定, 便于实现FFT算法, 运算速度快, 线性相位的特性和设计更为灵活等优点而使其在工程实际中获得广泛应用。

(二) FIR滤波器的基础

1. FIR理论基础

FIR滤波器是一种非递归系统, 其冲击响应h (n) 是有限长序列, 数学表达式为:

(2-1) 式中, N是FIR滤波器的抽头数, x (n) 表示第n时刻的输入样本, h (i) 是FIR滤波器的第i级抽头系数。

FIR滤波器实质上是一个分节的延迟线, 把每一节的输出加权累加, 便得到滤波器的输出。对于FIR滤波器, 幅度上只需满足以下两个条件之一, 就能构成线性相位FIR滤波器。

式 (1) 称为第一类线性相位的幅度条件 (偶对称) , 式 (2) 称为第二类线性相位的幅度条件 (奇对称) 。所以说稳定和线性相位特性是FIR滤波器突出的优点。

2. FIR滤波器的结构

N阶FIR滤波器有3种基本结构:直接型, 级联型和频率采样型。这三种结构中, 由于频率采样型和快速卷积型结构中需要进行复数运算, 计算复杂, 不适合于在可编程逻辑器件中实现;级联型结构不便于调整系数, 实现时需3N/2次乘法, N次加法, 总运算量为3N/2次乘法;而直接型结构总运算量可减少至N/2次乘法, 且系数调整方便, 因此采用直接型结构实现。因为FIR滤波器具有线性相位特性, 可将上述结构做以化简, 如图1所示:

由上图可以看出线性相位的FIR滤波器的固有对称属性可以降低所需要的乘法器数量, 它使得乘法器的数量降低了N/2, 而加法器的数量则增加了N/2。

(三) 基于FPGA的FIR滤波器实现

1. 分布式算法的基本原理

假设系数c[n]是已知常数, x[n]是变量, 在有符号DA系统中假设变量x[n]的表达式如下:

(3-1) 式中, xb[n]表示n的第b位, 而x[n]也就是x的第n次采样。于是, 内积y可以表示为:

重新分别求和 (也就是分布式算法的由来) , 其结果如下:

由上可见, 分布式算法是一种以实现乘加运算为目的的运算方法。它与传统算法实现乘加运算的不同在于执行部分积运算的先后顺序不同。分布式算法在实现乘加功能时, 是通过将各输入数据的每一对应位产生的部分积预先进行相加形成相应的部分积, 然后再对各个部分积累加形成最终结果的, 而传统算法是等到所有乘积已经产生之后再来相加完成乘加运算的。与传统串行算法相比, 分布式算法可极大地减少硬件电路的规模, 提高电路的执行速度。

2. 全并行FIR数字滤波器的实现

根据FIR滤波器图的结构, 可以将滤波器主要分为三大部分, 分别是并行移位寄存器模块组, 加法器模块组和并行矢量乘法器模块。

(1) 各模块的功能实现

1) 并行移位寄存器模块和加法器模块的实现

可以将两者结合在一起来, 主要实现将输入采样数据x (n) , 在每个时钟周期进行延时, 并将对称抽头系数的x (n) 进行预相加, 结果输出到抽头系数模块。在该模块中, x-in (7:0) 采样输入信号, clk为系统时钟, sum0, sum1, sum2直到sum13为28阶滤波器预相加的结果并行输出信号。程序略。

2) 并行乘法器模块的设计

前面已作介绍, 在此采用查找表的方法来实现乘法运算, 由于所用FPGA器件中每一个LAB包含8个LE, 每一个LE包含一个4输入LUT, 这个4输入的LUT是一个功能发生器, 可以快速计算出任何4输入变量的功能。由于滤波器的阶数是28阶, 根据FIR滤波器的线性相位特性, 每个查找表的输入位数是14, 所以它的寻址空间是214, 可见地址太大, 不利于器件的实现, 故将14位分成4*4位来实现, 其中两位不用。而根据分布式的算法结构, 查找表的数目由输入数据位数B决定, 但根据设计要求需要9个, 其中, 前8个的查找表结构一样, 另外一个是符号位的。从以上可以看出查找表的划分, 先分为9个大的查找表, 在将每个查找表分成4个来实现。

(2) 基于QuartuaII的综合与仿真

下面图是基于相加模块的, 包括并行移位积存器模块和加法器模块, 主要实现了将输入的8位数据进行28次延迟, 根据FIR滤波器抽头系数的对称性, 将对应位输出相加, 得到了14位输出结果, 分别是sum0到sum13, 其中x_in是输入信号, 在仿真中取了随机信号, 通过仿真结果可看出可以实现这一功能。具体综合与仿真图2所示。

(四) 设计实现及仿真结果

根据设计指标可得, 滤波器阶数为28阶, 由于阶数过于大, 在此引入了DSP Builder的层次化设计, 首先设计一个4阶的FIR滤波器子系统, 然后调用7个4阶的子系统来实现。其模型图3所示:

在仿真中输入信号采用频率f1=8KHz和f2=16KHz的两个正弦信号进行叠加, 采样频率为64KHz, 仿真时间为0.005S, 仿真波形如图4所示。

在Simulink中完成仿真验证后, 就需要把设计转到硬件上加以实现。这是整个DSP Builder设计流程中最为关键的一步, 可以获得针对特定FPGA芯片的VHDL代码。通过Signal Compiler模块可以实现, 利用生成的tb_fir28.tcl文件进行ModelSim仿真。仿真结果如图5所示。

从以上仿真结果可以看出, 输入信号通过滤波器后输出基本上变成单频率的正弦信号, 高频信号得到了抑制, 可见满足低通滤波器的要求。

(五) 总结

本文章主要采用分布式算法以及查找表功能实现了FIR滤波器, 其设计是基于最底层的RTL级设计, 重点考虑的是FIR滤波器设计的硬件实现结构及其实现算法, 以最小的硬件资源消耗, 最快的处理速度为主体目标, 设计出高效的滤波器。然而其具有一定的局限性, 所以采用DSP Builder作为设计工具设计FIR滤波器, 本设计还可作部分改进和扩展, 如增加流水线提高速度, 扩展输出位, 增加更多控制信号等等。

参考文献

[1]夏祥飞, 王海宝, 谭泽富.MATLAB程序设计及其在信号处理中的应用[M].成都:西南交通大学出版社, 2005.

[2]赵红怡, 张常年.数字信号处理及其MATLAB实现[M].北京:化学工业出版社, 2002.

[3]潘松, 黄继业.现代DSP技术[M].西安:西安电子科技大学出版社, 2003.

[4]叶淦华.FPGA嵌入式应用系统开发典型实例[M].北京:中国电力出版社, 2005.

上一篇:《玩具》教学设计下一篇:唯美意境文艺风格签名