您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 基于等精度测量与spi传输协议的简易频率计
1电子系统设计综合报告选题:简易频率计成员:学号:专业:电子信息科学与技术时间:2014.7.232目录一绪论--------------------------------------------------------------------------41.1测量原理--------------------------------------------------------------------41.1.1等精度测量---------------------------------------------------------41.1.2SPI协议--------------------------------------------------------------41.2系统指标--------------------------------------------------------------------5二硬件电路--------------------------------------------------------------------------62.1系统设计--------------------------------------------------------------------62.2FPGA逻辑模块-------------------------------------------------------------62.3单片机数据接收模块----------------------------------------------------72.4波形变换电路--------------------------------------------------------------7三软件设计--------------------------------------------------------------------------93.1编译环境---------------------------------------------------------------------93.2VHDL语言--------------------------------------------------------------------93.3FPGA顶层设计-------------------------------------------------------------93.4FPGA仿真波形-------------------------------------------------------------123.5ATmega16单片机编程---------------------------------------------------13四系统测试-------------------------------------------------------------------------154.1等精度测量理论分析---------------------------------------------------154.2实验测量数据-------------------------------------------------------------15五结束语---------------------------------------------------------------------------163摘要本设计利用FPGA进行测频计数,单片机实施控制实现频率计的设计过程.该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点.等精度的测量方法不但具有较高的测量精度,而且在整个频率区域保持恒定的测试精度.设计中用一块FPGA芯片(型号为CycloneⅡ的EP2C5T144C8N)完成各种时序逻辑控制,计数功能.在QuartusⅡ平台上,用VHDL语言编程完成了FPGA的软件设计,编译,调试,下载.使用Modelsim软件对程序进行仿真与时序及信号的分析.用ATmega16单片机作为系统的主控部件,实现整个电路的测试信号接收,数据运算处理和显示输出.系统将单片机的控制灵活性及FPGA芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑,可靠性高,测频范围宽,精度高等优点.关键字:FPGA,ATmega16,VHDL,等精度测量,spi总线协议4一绪论1.1测量原理1.1.1等精度测量等精度测量原理用以下结构图进行说明:图1-1等精度测量频率计结构图如结构图所示,计数器A,计数器B分别用于记录待测信号fx与基准时钟信号clk的高低电平跳变次数,门限信号与待测信号fx通过D触发器分别通过计数器A,B,以达到clk与fx在相同时间开始计数的目的,门限信号可设定计数器的计数时间,为1s~10s.当待测信号频率较低时,应适当地上调门限信号的持续时间,以增加fx的计数次数,提高精确度.当一次计数完毕后,依次将计数器A,B数据存入64位寄存器内,待传送至单片机进行数据处理.假定计数器A在门限时间内计数为NA,计数器B技术为NB,已知基准时间信号的频率为fclk,则待测信号fx频率为fx=(NA/NB)*fclk,由于NB十分大,因此误差很小,消除了直接测量法的±1误差问题.1.1.2SPI协议SPI,是英语SerialPeripheralInterface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议.SPI是一个环形总线结构,由ss,sck,mosi,miso构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换.当主从机之间进行单向传输时,以主机向从机传输为例,只需使用ss,sck,mosi三根总线.64位寄存器D触发器1s~10s可调门限信号待测信号fxFPGA分频产生10MHZ基准时钟信号32位计数器A32位计数器B5(1)mosi主设备数据输出;(2)miso主设备数据输入;(3)sck同步时钟信号;(4)ss从设备使能信号.ss为使能信号,只有当ss有效时,才可以实现双机通信.当ss为有效信号时(高低电平由用户及硬件决定),通信由sck,mosi,miso进行,mosi与miso根据sck提供的时钟脉冲进行数据传输,数据输出通过mosi传输,数据在时钟的上升沿或下降沿跳变,在紧接着的下降沿或上升沿将数据读入8位移位寄存器,完成一位数据的传输,经过8个sck时钟脉冲后完成8位数据的的读取,此时令ss使能信号无效,接收机将不再读取信号,至此完成一次数据的传输.图1-2spi串行传输数据波形示例图1-2中,sck卫同步时钟,mosi为主机向从机发送数据,使能信号为ssmark,高电平有效,当sck到达上升沿,从机进行数据的读取,读取结果为8位2进制数00110001.引脚SPI主机SPI从机MOSI用户定义输入用户定义输入MISO输入用户定义输入用户定义SCK用户定义输入用户定义输入SS用户定义输入用户定义输入表1-1spi总线配置1.2系统指标(1)在0.1Hz~10MHz测试误差0.01%(最大闸门时间≤10s)条件下,进行大信号(信号幅度:0.5V~5V)的频率测量.十进制数字显示,显示刷新时间1~10秒连续可调.(2)在1Hz~1MHz范围内及测试误差≤0.1%的条件下,进行小信号的频率测量.6二硬件电路2.1系统设计等精度测量频率计涉及加,减,乘,除运算,由于运算量大考虑到资源的消耗,本设计使用单片机与FPGA相结合的方案,系统结构图如下所示,FPGA进行测频计数,单片机进行运算以及显示.图2-1系统总体结构图系统主要部分功能如下:1.波形变换电路:将输入信号转换成FPGA能够正确识别的信号;2.FPGA:作为SPI主机对待测信号与基准时钟进行计数,使用3个IO口分别输出使能信号ss,同步时钟sck以及存有计数器A,B数值的64位数,进行SPI数据发送;3.ATmega16单片机:作为SPI从机,利用引脚PB7,PB5,PB4的第二功能,对sck,mosi,ss进行接入,实现数据传送,接收到的前32位数与后32位数分别保存,计算两者比值,再与基准频率10mhz相乘的测得频率.再通过其他引脚连接1602显示器,将测得频率显示在1602显示器上.2.2FPGA逻辑模块FPGA数据流图如下:图2-2数据流图信号输入整形放大电路FPGA测频计数ATmega16单片机进行数据处理1602显示器数码管显示门限信号时间门限时间设定按键7图中SS0,sck,mosi分别输出使能信号,同步时钟信号以及计数数据,它们分别于AVR单片机的PB4,PB7,PB5口相连,进行SPI单向数据传输.2.3单片机数据接收模块ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器.由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾.ATmega16具有32个可编程的I/O口,其封装包括40引脚PDIP封装,44引脚TQFP封装,与44引脚MLF封装,本设计使用了40引脚的PDIP封装,其引脚图如下.图2-3ATmega16封装本设计使用了端口B的PB7,PB5,PB4引脚的第二功能,使ATmega16作为SPI数据传输中的从机,读取来自FPGA传送的计数数据.2.4波形变换电路频率计的前置放大电路使用了TI的OPA690高速运放构成反向比例放大电路对输入信号进行放大,输入端加入电阻电容,滤去杂波.放大后通过74ls14施密特触发器对波形进行整形,其原理图及PCB图如下.8图2-4放大整形电路原理图图2-5pcb图9三软件设计3.1编译环境本设计FPGA部分使用QUARTUSII进行程序的编写与烧录,使用Modelsim对编写程序进行信号波形的仿真与校对;AVR单片机C语言编程使用ICCV7FORAVR,在线调试使用了AVRStudio.3.2VHDL语言VHDL语言是一种用于电路设计的高级语言.它在80年代的后期出现.最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言.VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中.它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中.当然在一些实力较为雄厚的单位,它也被用来设计ASIC.VHDL主要用于描述数字系统的结构,行为,功能和接口.除了含有许多具有硬件特征的语句外,VHDL的语言形式,描述风格以及语法是十分类似于一般的计算机高级语言.VHDL的程序结构特点是将一项工程设计,或称为设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分.在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体.这种将设计实体分成内外部分的概念是VHDL系统设计的基本点.3.3FPGA顶层设计门限信号时间的设定与显示产生门限信号的描述10SPI数据传输同步时钟SCK10mhz基准时钟clk,D触发器,计数器A,B的描述64位寄存器64~33位保存计数器A数值,32~1位保存计数器B数值,其描述如下11寄存器中的数据分8次在不同时刻从高位到低位依次从MOSI发送数据,每次8位123.4FPGA输出波形仿真为验证程序的正确性,我们使用Modelsim对程序进行了仿真,设定待测信号为fx,频率为2khz.其仿真信号
本文标题:基于等精度测量与spi传输协议的简易频率计
链接地址:https://www.777doc.com/doc-2576193 .html