基于FPGA的交流信号测量系统的分析及设计.pdf_第1页
基于FPGA的交流信号测量系统的分析及设计.pdf_第2页
基于FPGA的交流信号测量系统的分析及设计.pdf_第3页
基于FPGA的交流信号测量系统的分析及设计.pdf_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于 f p g a的交流信号测量系统的分析及设计 赵思轩 (北京航空航天大学电子信息工程系, 北京 100083) 摘要: 以现场可编程门阵列芯片为核心实现了一个交流信号参数测量系统.系统选用 adc0809芯片作为数模转换部分, 其转换信号作为fpga的输入进行处理并用芯片自带的 led数码管作为输出显示.通过利用fpga上自带的矩阵键盘输入功能并对其进行编程控制, 可以方便的切换显示交流输入的最大值、最小值、平均值、峰峰值、频率以及直流输入的峰值,实 现对交流信号的多样化分析.系统功能较为强大,操作简单,用户可以轻易地根据自身需要进 行修改以添加一些额外的测量功能. 关键词:fpga;交流信号;测量系统 中图分类号:tp 274文献标识码:a文章编号:1671-8747(2008)03-0278-04 2008年9月journal of hainan normal university(natural science)sep. 2008 第21卷 第3期海 南 师 范 大 学 学 报(自 然 科 学 版)vo1.21 no.3 传统的数字电压表设计通常以大规模asic(专用集成电路)为核心器件,并辅以少量中规模集成电路 及显示器件构成. asic完成从模拟量的输入到数字量的输出,是数字电压表的心脏.这种电压表的设计简 单、精确度高,但是这种设计方法由于采用了asic器件使得它欠缺灵活性,其系统功能固定,难以更新扩 展.通过用微处理器(单片机)控制通用a/d转换器的数字电压表使其设计灵活性明显提高,系统功能 的扩展变得简单.但是由于微处理器的引脚数量有限,其控制转换速度和灵活性还是不能满足日益发 展的电子工业的需求. 文本采用fpga(现场可编程门阵列)芯片作为核心,选用adc0809芯片作为数模转换部分,其转换信 号作为fpga的输入进行处理并用芯片自带的led数码管作为输出显示.同时, 对于交流信号进行多样 化的分析.通过利用fpga上自带的矩阵键盘输入功能对其进行编程控制,可以方便的切换显示交流输入 的最大值、最小值、平均值、峰峰值、频率以及直流输入的峰值.本系统功能较为强大,操作简单,用户可以 轻易地根据自身需要进行修改以添加一些额外的测量功能. 1fpga软件设计及模块仿真 系统采用altera公司的cyclone系列的ep1c6q240c8芯片作为其核心器件,负责控制adc0809的a/ d转换的启动、地址锁存、输入通道选择、数据读取.同时,把读取的8位二进制数据送入中央处理单元,并 根据键盘输入不同进行相应的处理,最终转换成便于输出的4位十进制bcd码送给数码管,以显示当前 测量电压值.这些工作由以下所述四个模块协同完成:adc控制模块、矩阵键盘控制模块、中央处理单元 以及led输出控制部分.基本系统框图见图1. 1.1a/d转换控制模块的软件设计 本模块主要用来完成adc0809的初始化、a/d转换的启动、地址锁存、通道选择、状态读取及数据读 取、数据锁存等功能,利用veriloghdl语言的多进程状态机来实现控制功能.本文采用5 v参考电压,测量 收稿日期:2008-06-10 1,2 3-5 第3期赵思轩:基于fpga的交流信号测量系统的分析及设计279 范围为05 v,由于转换器件为8位,电压的最小分辨率为0.02v. 工作时序如下:上电瞬间,fpga初始化,state为idle,此时ale、start、oe均置0,初始化adc0809. 当第1个上升沿到来时,状态机由状态1转换到状态2即start,ale、start置1,oe为0,此时地址锁存 信号有效,由ale将state的“01”状态锁存到地址锁存器并译码,选择in0即通道0作为模拟信号输入端, 同时strat信号有效,启动采样.当第2个上升沿到来时,系统转入状态3即waitting.此时fpga将检测 adc0809的eoc引脚电平,若其由低变高,则上升沿到来时,系统转入状态4,否则依然停留在状态3.当 转入状态4即reading时,oe置高电平,启动转换数据输出,其余信号不变.当时钟上升沿再次来到时,系 统转换回状态1,进行循环工作.控制器在时钟信号控制下完成状态转换,实现对adc0809的控制.检测 系统的组成见图2. idle ss 上 升 沿 start ss 上 升 沿 waitting eoc为低 eoc为高readingeoc? 上升沿到来 图1a/d转换过程的流程图 模 拟 输 入 按 键 输 入 a/d 转 换 模 块 键 盘 控 制 模 块 中 央 处 理 单 元 led 控 制 模 块 输 出 信 号 图2检测系统的组成 1.2矩阵键盘控制模块 对于一个44矩阵键盘,有4根行线(row)及4根列线(rol).无信号输入时,行线置高电平而列线 置低电平.当没有键按下时,行线(key)与列线(keyscan)是断开的,且行线均为高电平(1111),行信号作为 fpga的输入端,列信号作为fpga的输出端。可以设置列线初始状态为低电平,对应第1,2,3,4列的信号 分别为keyscan0,keyscan1,keyscan2,keyscan3.当有键按下时,假设是第一行第一列的键被按下,行信号 与列信号接通,这时相应的行线变为低电平(0111),可以肯定第一行有键被按下.然后利用扫描原理确定 列所在位置.判断过程如下: 1) 由于只知道第一行有键按下,不知道是哪个,故可以设置列信号为1110,这时行信号将变为1111 (假设时钟周期足够短,此时手还未拿起,键仍处于按下状态); 2) 设置列信号为1101,行信号依然为1111; 3) 设置列信号为1011,行信号为1111; 4) 设置列信号为0111,此时行信号为0111,由此输出信号确定按下的为第一个键. 系统中本模块引用了altera自身提供的ip核,其中col为输入,row为输出,clk_en_i与scan_i置高, 280海南师范大学学报(自然科学版)2008年 rst_i为复位信号.模块的行为输出,列为输入,扫描原理同上述的44矩阵键盘. 1.3中央处理单元 中央处理单元模块为系统的核心,汇总键盘控制模块及a/d转换模块的输入进行相应处理,最终输出 相应的结果.定义数据输入为data_in,即进行运算处理的数据;定义控制输入为key_in,由键盘提供,以决 定输出何种测量数据.同时定义4个中间变量作为寄存器存储中间数据.对应的测量步骤及功能如下. 1) 为得到稳定的输出且便于观测, 由实验测得输出更新时间为0.2s左右较好, 此时频率为5hz.而 fpga开发板所提供的系统时钟频率为50mhz, 因此应该先设置一分频程序, 以得到满足要求的刷新间 隔,采用100万倍分频,可得到5hz的刷新频率. 2) 定义miaomiao_max为时变最大值,在刷新间隔(0.2s)内,其值随着输入交流信号的幅度而变化,相 当于一中间变量.在每个系统时钟周期内, 比较输入信号与该中间变量的大小, 若有data_inmiao- miao_max,则将其值赋为miaomiao_max,始终保持时变最大值大于等于任何输入值.定义max_dis为非时 变最大值,其值在刷新间隔内不改变,作为稳定输出显示在数码管上,仅在0.2s刷新间隔到来时,将时变最 大值赋予max_dis以使输出紧跟输入而变化.同理, 也可以用相同方法定义时变最小值及非时变最小值, 用同样方法得到最小值. 3) 频率的测量采用中值检测法.容易知道,在输入信号的每个周期内,其总要经历上升和下降的过程. 设定middle为信号中值,设定hengheng_fre为频率寄存器值.在上升过程中,若输入信号小于中值,寄存器 值大于中值,进行一次计数并将输入值赋予频率寄存器值;在下降过程中,若输入信号大于中值,寄存器值 小于中值,则进行一次计数,令频率寄存器值等于输入信号.总之,用中值检测法测频率寄存器值与输入值 分别在中值(middle8:1)两侧时计数.因此,一个周期计数2次.在0.0020.102s时间内的(计数/2)与时间 的商即为频率值. 4) 模式的选定通过case语句来描述.将key_in作为选择的分支条件,每次输出前,在时钟上升沿到 来时,检测key_in的输入,根据4位16进制的不同,来决定相应的输出模式.将相应的值赋给中间临时寄 存器temp. 5) 对中间临时寄存器temp的值进行运算处理, 使之变为符合led输出形式的4位十进制数.本文 没有使用常见的bcd转换查表方法,而是利用了veriloghdl语法中除法的取整特性,得到了从千位到个 位的四个十进制数,最后拼凑输出得到led控制模块的输入. 1.4led控制模块 本模块是一个基于四位共阳led数码管显示的模快,可以用于显示4位十六进制数,本文将其设定 为显示4位十进制输出,高电平点亮数码管。 为了节省资源,采用扫描方式控制数码管的显示,扫描时钟由 ck提供,其频率应大于100 hz,否则会有闪烁现象,因此此模块首先由一个分频程序将系统时钟进行分 频以得到所需的扫描频率.其次,再用case模块对输入进行判断,以其作为分支选择条件查表控制led管 的亮灭.定义输出信号为12位, 前八位控制七根led数码管及小数点, 后四位作为片选信号控制四个 led管交替闪烁,但由于人眼的视觉残留效应,观测到的仍为一连续显示的四位输出信号. 2仿真及测试 fpga从adc0809上读取的数据分别对应字符3、8、2,加上小数点就是3.82 v,其分辨率为0.02 v, 则a/d转换得到的电压值应为3.82 v.显示结果与理论推算完全相符. 选altera公司的cyclone系列的ep1c6q240c8芯片作为目标器件并进行正确的引脚锁定后, 将程序 下载到目标配置器件.改变adc0809的模拟通道输入信号,并按下键盘已定义按键进行输出控制,观察数 码管的输出,可见其输出随着输人信号的幅度及频率变化而变化,当输入电压变为0时,数码管的输出为 0,输人为5 v时数码管输出也为5.00 v,其余情况下输入与输出也一致,至此,基于fpga的数字交流信 号参数测试系统设计完成.本设计的结果已通过硬件测试. 3结论 文章数据处理模块用查表方式设计,设计比较简单,易于理解,但对fpga的芯片资源利用率不高,因 此要想编写出更高效率的数据处理源程序, 可以用权位相加的方法实现.整个系统仅仅使用一块a/d芯片 与一块fpga开发板,设计简单明了,较单片机更为灵活.在不改变硬件电路的前提下,只需稍微改变ver- iloghdl的源程序,就可实现其余通道的利用,构成复杂的数据采集系统.同时,若有需要,亦可用lcd(液 晶显示器)来代替led显示.但是采用lcd显示时,应针对所用lcd重现修改译码程序,以便与lcd驱 动时序达到相同时序.同时,由于lcd的速度较慢,因此时钟频率不能过高,否则将无法实现对lcd进行 读写的操作.本系统通过添加一些前置电路就可扩展其功能,如果采用16位a/d转换器,则可进一步提高 其分辨率,满足更高的需求. 参考文献: 1 2 3 4 5 王玉辉.状态机在a/d采样控制中的应用 j .电子元器件应用,2006(10):26-31. 江小平,刘文杰.基于cpld/fpga的a/d转换控制器的设计 j .苏州大学学报:工科版,2005,25(4):53-55. 吴繁红,井新宇.用cpld/fpga设计a/d采样控制器 j .电子技术应用,2002,28(2):37-38. 包本刚,朱湘萍.基于fpga的数字电压表设计 j .电子工程师,2007,33(8):17-18. 宗伟林.提高adc0809转换分辨率的一种新方法 j .工业仪表与自动化装置,1996(3):39-40. design and analysis of ac measurement system based on fpga abstract:this paper realizes an alternating current signal measurement system via fpga (field programmable gate arry). the system utilizes the integrated chip of adc0809 as the a/d component while its output functions as the input of fpga for pro- cessing and the final output of the system will be displayed by the led as part of the fpga. through the utilization of the matrix keyboard of fpga and programming for controlling the processing,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论