




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编号: 毕业设计(论文)说明书课题名称:基于FPGA的数字存储示波器的设计 院 (系): 计算机与电子信息工程系专 业: 电子信息工程 班级: 04电本1班 学生姓名: 黄* 学 号: 0400604105 邮 箱: larryximuyi 指导教师: 黄永庆 职 称: 工程师 2008年 1月14日摘要本系统设计的是基于FPGA的数字存储示波器,能够完成对输入信号的实时采样、信号峰峰值和频率的测量、信号的存储及显示。本系统以单片机AT89S52为主控制芯片,FPGA控制高速模数芯片配合进行高速数据采集、存储及传输,并用型号为SYM320240BZK的图形点阵液晶显示屏进行实时信号波形显示。整
2、体设计完成了10500KHZ波形数据的采集、存储及实时显示,同时能够进行波形的频率及峰峰值等参数的实时测量,并且本系统以触摸屏为控制核心,可以对采样速率及数据存储进行实时控制,达到了较好的显示效果。本设计完成了整个系统的软硬件设计,对信号采集及处理提供了一种较好的解决方案。关键字:单片机 FPGA 高速采集 参数测量 触摸屏 实时显示AbstractThis system designs about the Digital Saving Oscillograph based on FPGA, it can finish sampling、calculating the Vpp and freq
3、uncy、saving and display the input signal in the real time.The Single Chip Micyoco(SCM) plays the main role in controlling the system, and FPGA helps to sample the fast input signal, saving and comunicating with SCM by controlling the high-speed analog-to-digital converter, and the input signal wave
4、can be display on the graphics and lattice Liquid Crystal isplay(LCD). The whole design finish sampling the wave data range from 10 to 500K HZ, saving and display in the real time, and it can also calculate the Vpp and frequncy and save the data in the real time, also this system takes the touch scr
5、een as the control core, it can control the sample speed and data saving, and the LCD displays rather good of the signal wave.This system finish designing the hard-ware and soft-ware of the whole, and provides rather good resolving schemefor the signal sampling and management.Keyword: SCM FPGA High-
6、speed Sampling Parameter Calculation Touch Screen Real Time Disply目录第一章 绪论 .51.1 数字存储示波器概述 .51.2 数字存储示波器的原理及特点.51.3 本设计完成的主要性能指标.71.4 基于FPGA的数字存储示波器的设计结构框图.7第二章 整体电路模块设计.9 2.1 AD前端信号处理及A/D电路模块.9 2.2 FPGA内部RTL电路构造.12 2.3 触摸屏原理及触摸屏键盘构造.14 2.4 I2C总线原理及CAT24WC256存储器存储及读取原理19 2.5 硬件测频信号信号的放大与整形.25 2.6 蜂鸣
7、器驱动电路.26第三章 程序设计.27 3.1 FPGA采样、数据暂存及传输.273.2 单片机控制FPGA采样、画图及数据存储283.3 单片机波形显示及信号处理模块.29第四章 结束语36致谢.36参考文献.37第一章 绪论1.1 数字存储示波器概述作为时域测量的经典仪器,示波器是电子行业工程师最为熟悉的工具,它是一种可以用来观察、测量、记录各种瞬时物理现象,并以波形方式显示其与时间关系的电子仪器,它能够直观的显示被测信号的时域信息。数字存储示波器是一种新型示波器,主要以微处理器、数字存储器、A/D转换器与D/A转换器为核心,输入信号经过A/D转换器把模拟波形转换成数字信息,存储在数字存储
8、器内;显示时,再从存储器中读出,经过D/A转换器将数字信息转换成模拟波形显示在CRT上,通过接口可以与计算机相连,利用机内微处理器系统对存储的信号作进一步处理,或直接将数字信号送至图像点阵液晶显示器,这样大大改进显示特性,增强功能,便于程控化和智能化。比传统数字示波器精确得多的实时波形采集技术,使数字测量更加精确,主要用于高精度测量和分析,以及组成自动测试系统。其主要性能指标包括采样速率、带宽、显示更新速率、存储深度等。数字存储示波器不是将波形存储在示波管内存储栅网上, 而是存在存储器中,存储时间可以无限长。因此,数字存储示波器是一种既具有实时观察, 又具有波形存储能力, 既具有信号处理能力又
9、具有电路分析功能, 精确度高, 操作简单,可以通过计算机进行程序自动测量的高智能化示波器。1.2 数字存储示波器的原理及特点典型的数字存储示波器原理框图如图1所示,其工作过程一般可分为存储和显示两个阶段。水平放大器CRT垂直放大器输入YD/A转换器存储器RAMA/D转换器输入放大器输入衰减器记录输出控制器D/A转换器微处理器CPU地址计数器触发器图1数字存储示波器原理框图存储阶段模拟信号经Y输入端输入,经过适当的衰减或放大,送到A/D转换器,得到一串相应的数据流。微处理器形成存储的写地址,将数据依次存储到随机存储器RAM中,RAM的读写操作受RD、WR控制指令的控制,控制方式如表1,RAM进行
10、读写操作时,存储单元的地址由微处理器产生。RAM读写RD01WR10表1RAM读写控制方式显示阶段由CPU产生读时钟或读地址,将数字信号从存储器中读出,或使用CRT显示屏,则经D/A转换器转换成模拟信号,经垂直放大器放大后加到CRT的Y偏转板,与此同时,CPU的读地址计数器脉冲加至D/A转换器,经扫描后得到一个扫描电压,经水平放大器放大,驱动CRT的X偏转板,从而实现在CRT上以稠密的光点显示出信号的波形。若使用液晶显示屏,则把A/D转换后的数字信号转变成液晶屏上实际的坐标号,然后调用画点程序把数据以图形方式显示在屏幕上。读出的数字信号还可以由接口电路送往计算机分析处理。本设计中的数字存储示波
11、器是利用高速A/D器件把被测模拟信号转换成数字信号然后存入机内的RAM中,需要显示时,将RAM中存储的数据内容调出,通过坐标变换再显示在液晶屏幕上。它不仅可以显示周期信号,更能显示非周期及瞬时信号,这对观测某些波形,特别是未确定波形来说有着比模拟示波器更优良的特点,主要体现在:1、 波形处理:由于数字存储示波器内含一片微处理器,它能对所采集到的信号数据进行各种数据处理,比如波形的相加、相乘及FFT变换等。2、 数据存储:由于数字存储示波器是利用高速A/D器件把模拟信号进行量化处理,为此可以把量化后的数据进行长期存储以备日后作为研究之用。1.3 本设计完成的主要性能指标本设计完成的数字存储示波器
12、采用单通道,最大存储深度为256B。设有峰峰值检测,频率测量及存储等功能,主要性能指标如下:垂直分辨率:8 bits等效带宽 :单通道500KHZ垂直灵敏度:150mv/div最大输入电压:1V最高采样率:20MSa/S存储深度:256B1.4 基于FPGA的数字存储示波器的设计结构框图根据对系统性能指标的分析,本系统设计主要分为以下五个部分:信号前端调理模块、信号采集模块、FPGA控制采样、存储及传输模块、数据信号的实时显示及存储模块。如图2所示:信号调理电路模块单片机控制模块FPGA控制A/D采样及信号传输模块高速A/D器件信号采集模块波形数据实时存储模块320*240液晶显示及触摸屏键盘
13、模块图2 基于FPGA的数字存储示波器整体结构框图其中信号调理电路采用高速运放AD811进行波形信号前端处理,高速A/D器件采用TI公司的最高采样速率达20MSa/S的TLC5510芯片,FPGA则采用EPF10K10器件,它可进行内部FIFO的构造,能够满足对采样信号的暂存。AT89S52单片机控制FPGA进行采样及传输,并控制320*240点阵液晶进行波形信号的实时显示,在需要的时候可把波形信号数据存入基于I2C总线的存储芯片CAT24WC256中。320*240液晶构造触摸屏键盘可对整个系统进行采样速率、数据存储等进行控制并且达到了较好的显示效果。第二章 整体电路模块设计2.1 AD前端
14、信号处理及A/D电路模块根据采样定理,当fs>=2fin,即A/D采样率大于或等于两倍的信号频率fin时,才可以无失真地重构波形。为了完成上述性能指标,本设计采用美国TI公司的新型高速A/D器件TLC5510,它是一种采用CMOS工艺制造的8位高阻抗并行A/D芯片,能提供的最大采样率为20MSa/S。由于本设计中输入信号最大频率为500KHZ,则此A/D芯片已经达到并超过了设计要求。由于TLC5510采用了半闪速结构及CMOS工艺,因而大大减少了器件中比较器的数量,而且在高速转换的同时能够保持较低的功耗。在推荐工作条件下,TLC5510的功耗仅为130mW。由于TLC5510不仅具有高速
15、的A/D转换功能,而且还带有内部采样保持电路,从而大大简化了外围电路的设计;同时,由于其内部带有了标准分压电阻,因而可以从+5V的电源获得2V满刻度的基准电压。TLC5510的引脚说明 图3TLC5510引脚排列图TLC5510为24引脚、PSOP表贴封装形式。其引脚排列如图3所示。各引脚功能如下: AGND:模拟信号地; ANALOG IN:模拟信号输入端; CLK:时钟输入端;DGND:数字信号地; D1D8:数据输出端口。D1为数据最低位,D8为最高位; OE:输出使能端。当OE为低时,D1D8 数据有效,当OE为高时,D1D8为高阻抗; VDDA:模拟电路工作电源; VDDD:数字电路
16、工作电源; REFTS :内部参考电压引出端之一,当使用内部电压分压器产生额定的2V基准电压时,此端短路至REFT端; REFT:参考电压引出端之二; REFB:参考电压引出端之三; REFBS :内部参考电压引出端之四,当使用内部电压基准器产生额定的2V基准电压时,此端短路至REFB端。 图4 TLC5510的内部结构框图图5TLC5510的工作时序TLC5510的内部结构如图4所示。由图中可以看出:TLC5510模数转换器内含时钟发生器、内部基准电压分压器、1套高4位采样比较器、编码器、锁存器、2套低4位采样比较器、编码器和4个低4位锁存器等电路。TLC5510的外部时钟信号CL
17、K通过其内部的时钟发生器可产生3路内部时钟,以驱动3组采样比较器。基准电压分压器则可用来为这3组比较器提供基准电压。输出A/D信号的高4位由高4位编码器直接提供,而低4位的采样数据则由两个低4位的编码器交替提供。 TLC5510的工作时序见图5。时钟信号CLK在每一个下降沿采集模拟输入信号。第N次采集的数据经过2.5个时钟周期的延迟之后,将送到内部数据总线上。 在图3所示的工作时序的控制下,当第一个时钟周期的下降沿到来时,模拟输入电压将被采样到高比较器块和低比较器块,高比较器块在第二个时钟周期的上升沿最后确定高位数据,同时,低基准电压产生与高位数据相应的电压。低比较块在第三个时钟周期的上升沿的
18、最后确定低位数据。高位数据和低位数据在第四个时钟周期的上升沿进行组合,这样,第次采集的数据经过2.5个时钟周期的延迟之后,便可送到内部数据总线上。此时如果输出使能OE有效,则数据便可被送至8位数据总线上。由于CLK的最大周期为50ns,因此,TLC5510数模转换器的最小采样速率可以达到20MSPS。为了满足输入电压在A/D测量范围之内,必须对输入的信号进行前端信号处理,即信号调理。本设计采样高速运放AD811对采样信号进行恰当的电压偏置并放大,再经过RC低通滤波后输入到TLC5510的模拟输入端,从而完成信号采集的前端处理,AD811可处理高达140MHZ带宽的信号,最小建立时间为25ns,
19、电源噪声却只有1.9 nVHz,非常适合用在本设计中,其电路模块如图6所示:图6 A/D信号前端调理电路 其中R13为一滑动变阻器,调节它的阻值使AD811无信号输入时输出电压在一幅度范围之内,而且在信号输入后改变它的阻值可以实现波形的上升与下降。运放设计为正向输入使它的放大倍数为A=(R11+R12)/R12=2倍。经过信号调理电路后的模拟量直接输入至A/D芯片进行模数转换并把转换后的数字信号传送给FPGA,其电路模块如图7所示:图7 由TLC5510构成的A/D采集电路由于A/D对信号电源的要求较高,在本设计中采用了型滤波网络对电源进行滤波,实测时发现电源纹波非常小,达到了本设计的要求。2
20、.2 FPGA内部RTL电路构造FPGA采用ATMEL公司的10K10器件,其最大时钟频率可达100M,且内部含有576个逻辑单元(Logic elements),含有6144 bits的内部RAM单元,可进行内部静态RAM的构造。这对于本设计所提出的性能指标来说已经足够。由于FPGA掉电后数据即丢失,不可掉电保存烧录的代码,则需要加入配置电路。本设计采用AT89C2051单片机和24C128对它进行配置,上电后单片机从24C128中读取Quartus2转换的代码格式,传送给FPGA,FPGA即可正常工作。其配置电路如图8所示。图8FPGA配置电路FPGA根据单片机对实际波形的要求配合提供A/
21、D转换所需要的时钟信号,并在FPGA内部构造一个256B大小的FIFO(First In and First Out,即先进先出存储器)完成对采样信号的暂存,存储满后发一“FULL”信号给单片机,单片机根据此信号读取FPGA内部RAM中的数据,并在液晶中显示所采集的波形。其中FPGA内部的RTL电路如图9所示:图9 FPGA内部构造的RTL图形RTL图形总共由4个模块构成,分别为分频模块、RS触发器模块、2选1模块以及FIFO_RAM模块。分频模块负责把系统的50M时钟根据需要进行分频送至A/D的时钟引脚以及供给FIFO_RAM用作存储数据时钟,RS触发器负责控制FIFO_RAM的读写,因为存
22、储数据要求速度快但读取数据时考虑到单片机相对FPGA来说是慢速器件,故用到2选1模块把FIFO_RAM读写时钟分开。当“start”为“0”且RS为“01”时Q为“1”,Qf为“0”,即FIFO_RAM的wrreq和rdreq分别为“1”,“0”,FIFO_RAM进入写状态,这时可把A/D采样的数据写入FIFO_RAM中暂存;当“start”为“1”且RS为“10”时Q为“0”,Qf为“1”,即FIFO_RAM的wrreq和rdreq分别为“0”,“1”,FIFO_RAM进入读状态,此时读时钟变为从单片机进入的读时钟,这时可把FIFO_RAM中的数据读出来送至单片机中,单片机把这些数据进行坐标
23、转换后即可在液晶屏上显示,即构成波形。FPGA采样、存储与传输的时序逻辑图如图10所示。图10FPGA采样、存储与传输时序图FPGA与单片机间采用并行通信的方法以提高传输速度,从而保证波形可以实时显示。当单片机将要在液晶上显示一幅完整的波形图时,从“start”引脚发出“0”信号命令FPGA进行A/D采样并把采样数据存入内部构造的FIFO_RAM中,当存满时,“full”引脚电平为高,单片机根据此信号在“read_clk”引脚发出合适的读取时钟把FIFO_RAM中的数据读到内存中,再把这些数据进行坐标变换后转换为液晶屏上实际的点坐标,从而可以显示在液晶屏上。单片机还通过三个引脚(A2,A1,A
24、0)与FPGA进行通信,目的是对A/D采样速率进行控制。当A2A1A0三个引脚状态不同时FPGA分频模块系数也不同,从而提供给A/D芯片的采样时钟也不同。2.3 触摸屏原理及触摸屏键盘构造 由于SYM320240BZK液晶自带有触摸面板及其电路,故在本设计中引用触摸屏构造键盘可达到节省单片机IO口的目的。本设计中采用的是电阻式触摸面板,它是由两层极薄的电阻面板组成,如图11所示,两层面板之间有一个很小的间距,当有外力在面板上的某一点压下去时,会在施力点造成两层电阻接触,也就是短路(Short),而两层电阻面板的端点都各有电极,如图12所示YU, YD, XL, XR ,因此配合一些开关就可侦测
25、出面板上哪一相对位置被触摸。图11 触摸面板图12 触摸面板与侦测开关在图11中,设定开关SW2 与SW3 是OFF(Open),SW0 与SW1 是ON(Close),当有外力在面板上的某一点压下去时,由YU 点取得电压接到ADC,就可以得到被触摸点的X 坐标相对位置。图13 读取X坐标图14 X方向上电阻的分压在图13中,因为开关SW2 与SW3 是OFF,因此YD 点是处于悬浮状态,所以当有外力在面板上的某一点压下去时,YU 上的电压事实上就是X 的Panel(也就是电阻)上的分压结果,压在面板上的不同一点,就会得到不同的分压值,如图8所示。同理,在图14中,设定开关SW0 与SW1 是
26、OFF(Open),SW2 与SW3 是ON(Close),当有外力在面板上的某一点压下去时,由XL 点取得电压接到ADC,就可以得到被触摸点的Y 坐标相对位置。一般说来许多触摸面板都是贴在LCD 面板上面,因此在程序设计上如果重复图12与图13的读取步骤就可以顺利得知被触摸的点是在屏幕上的哪一位置。图15 读取Y坐标图16 Y方向上电阻的分压在图15中,因为开关SW0 与SW1 是OFF,因此XR 点是Floating,所以当有外力在面板上的某一点压下去时,XL 上的电压事实上就是Y 的Panel(也就是电阻)上的分压结果,压在面板上的不同一点,就会得到不同的分压值,如图16所示。在本设计在
27、根据需要在液晶屏上构造了以下按键:波形水平分辨率、静止/动态、存储、读取。其中“波形水平分辨率”按键根据需要对不同频率的波形可提供不同频率的采样速率,具体为:系统上电时默认的采样速率为“20Msa/S”,且系统默认可以自动设置合适的采样速率以达到最好的视觉观察效果。当选择“自动”时,单片机根据输入的信号频率自动选择不同的采样速率发给FPGA,即把单片机三个引脚的电平作相应改变,FPGA根据这三个引脚电平的变化把采样速率调到要求的值。当选择手动方式时,单片机扫描触摸屏上的“水平分辨率”键,若有按下则单片机把采样速率进行改变后发给FPGA,FPGA再次根据单片机三个引脚电平的改变把采样速率变换一次
28、,同时显示也跟着变换一次,这样即达到更改波形水平分辨率的目的。在固定存储深度M下,采样率fs与扫描速率S成反比,即10S*fs=M在本设计中取M256,则fs=25.6/S。本系统中设定扫描速率从1S/div200S/div,共8档。根据上式,计算出对应的采样率如表2所示。信号频率A/D采样率fs扫描速率S单片机引脚A2,A1,A0状态>100 KHZ20 MHZ1S/div00050100 KHZ12.5 MHZ2S/div0013050 KHZ5 MHZ5S/div0101530 KHZ2.5 MHZ10S/div0111015 KHZ1.25 MHZ20S/div100310 KH
29、Z510 KHZ40S/div10113 KHZ255 KHZ100S/div110<1 KHZ128 KHZ200S/div111表2信号频率、A/D采样率与扫描速度关系在触摸屏按键构造中,“静止/动态”按键根据观察波形的需要可把波形静止观察或让其动态显示波形;“存储”按键每按下一次就对当前的波形进行一次存储,存入CAT24WC256中;“读取”按键每按下一次就可以把存储在CAT24WC256中的波形数据调出来显示;在按下“存储”或“读取”按键时,屏幕上可实时显示当前已经存储和读取的段数。在液晶屏幕上,根据需要还分别设有波形水平分辨率显示区、波形峰峰值显示区以及波形频率显示区。在实时显
30、示波形的同时可实时显示这些参数值。2.4 I2C总线原理及CAT24WC256存储器存储及读取原理在本设计中采用I2C总线技术根据需要可把当前的波形数据存入CAT24WC256中,以方便在需要的时候把它调出来显示。其与单片机的接口电路如图17所示。图17 CAT24WC256与单片机连接图CAT24WC256 是一个256K 位串行CMOS E2PROM ,内部含有32768 个字节,每字节为8位,它有一个64 字节页写缓冲器,该器件通过I2C 总线接口进行操作。CAT24WC256主要特性如下所示:特性* 与1MHz I2C 总线兼容* 1.8 到6.0 伏工作电压范围* 低功耗CMOS 技
31、术* 写保护功能当WP 为高电平时进入写保护状态* 64 字节页写缓冲器* 自定时擦写周期* 100,000 编程/擦写周期* 可保存数据100 年* 8 脚DIP SOIC 封装CAT24WC256 支持I2C 总线数据传送协议,I2C 总线协议规定,任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的,CAT24WC256 是作为从器件被操作的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据发送或接收的模式。管脚描述SCL 串行时钟CAT24WC256 串行时钟输入管脚用于产生器件所有数据发送或接收
32、的时钟,这是一个输入管脚。SDA 串行数据/地址双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。WP 写保护当WP 脚连接到Vcc,所有内存变成写保护(只能读)。当WP 引脚连接到Vss 或悬空,允许器件进行读/写操作。A0 A1 器件地址输入这些管脚为硬连线或者不连接对于单总线系统最多可寻址4 个AT24WC256 器件(参阅器件寻址),当这些引脚没有连接时其默认值为0。I2C总线协议I2C 总线协议定义如下:(1) 只有在总线空闲时才允许启动数据传送。(2 ) 在数据传送过程中当时钟线为高电平时数据
33、线必须保持稳定状态不允许有跳变,时钟线为高电平时数据线的任何电平变化将被看作总线的起始或停止信号。起始信号时钟线保持高电平期间,数据线电平从高到低的跳变作为I2C 总线的起始信号。停止信号时钟线保持高电平期间,数据线电平从低到高的跳变作为I2C 总线的停止信号。其总线时序如图18所示:图18 I2C总线时序写时序如图19所示:图19 写时序起始/停止时序如图20所示:图20 起始/停止时序器件寻址主器件通过发送一个起始信号启动发送过程,然后发送它所要寻址的从器件的地址。8位从器件地址的高5位固定为10100(见图19)。接下来的2 位(A1 A0)为器件的地址位。最多可以连接4个器件到同一总线
34、上。这些位必须与硬连线输入脚A1 A0相对应。从器件地址的最低位作为读写控制位。“1”表示对从器件进行读操作;“0”表示对从器件进行写操作。在主器件发送起始信号和从器件地址字节后,CAT24WC256 监视总线并当其地址与发送的从地址相符时响应一个应答信号(通过SDA线)。CAT24WC256再根据读写控制位(R/W)的状态进行读或写操作。应答信号I2C 总线数据传送时,每成功地传送一个字节数据后,接收器都必须产生一个应答信号。应答的器件在第9 个时钟周期时将SDA 线拉低,表示其已收到一个8 位数据。CAT24WC256 在接收到起始信号和从器件地址之后响应一个应答信号,如果器件已选择了写操
35、作,则在每接收一个8 位字节之后响应一个应答信号。当CAT24WC256 工作于读模式时,在发送一个8 位数据后释放SDA 线并监视一个应答信号,一旦接收到应答信号,CAT24WC256 继续发送数据,如主器件没有发送应答信号,器件停止传送数据并等待一个停止信号。图21 应答时序图22 从器件地址位写操作字节写在字节写模式下,主器件发送起始信号和从器件地址信息(R/W 位置0) 给从器件,在从器件送回应答信号后,主器件发送两个8 位地址字写入CAT24WC256 的地址指针,主器件在收到从器件的应答信号后,再发送数据到被寻址的存储单元。CAT24WC256 再次应答,并在主器件产生停止信号后开
36、始内部数据的擦写,在内部擦写过程中,CAT24WC256 不再应答主器件的任何请求。其时序图如图23所示:图23 字节写时序页写在页写模式下,单个写周期内CAT24WC256 最多可以写入64 个字节数据。页写操作的启动和字节写一样,不同在于传送了一字节数据后,主器件允许继续发送63 个字节。每发送一个字节后,CAT24WC256 将响应一个应答位,且内部低6 位地址加1 ,高位地址保持不变。如果主器件在发送停止信号之前发送大于64 个字节,地址计数器将自动翻转,先前写入的数据被覆盖。当所有64 字节接收完毕,主器件发送停止信号,内部编程周期开始。此时,所有接收到的数据在单个写周期内写入CAT
37、24WC256。其时序图如图24所示:图24 页写时序应答查询可以利用内部写周期时禁止数据输入这一特性。一旦主器件发送停止位指示主器件操作结束时,CAT24WC256 启动内部写周期,应答查询立即启动,包括发送一个起始信号和进行写操作的从器件地址。如果CAT24WC256 正在进行内部写操作,将不会发送应答信号。如果CAT24WC256 已经完成了内部写操作,将发送一个应答信号,主器件可以继续对CAT24WC256 进行下一次读写操作。写保护写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写,当WP 管脚接高时,整个寄存器区全部被保护起来而变为只可读取。AT24WC256 可
38、以接收从器件地址和字节地址,但是装置在接收到第一个数据字节后不发送应答信号从而避免寄存器区域被编程改写。读操作CAT24WC256 读操作的初始化方式和写操作时一样,仅把R/W 位置为1。有三种不同的读操作方式:立即/当前地址读,选择/随机读和连续读。立即/当前地址读如果上次读/写的操作地址为N,则立即读的地址从地址N+1 开始。如果N=E(此处E=32767),则计数器将翻转到0 且继续输出数据。CAT24WC256接收到从器件地址信号后(R/W 位置1),它首先发送一个应答信号,然后发送一个8 位字节数据。主器件不需发送一个应答信号,但要产生一个停止信号。图25 立即地址读时序连续读连续读
39、操作可通过立即读或选择性读操作启动。在CAT24WC256 发送完一个8 位字节数据后,主器件产生一个应答信号来响应,告知CAT24WC256 主器件要求更多的数据,对应每个主机产生的应答信号CAT24WC256 将发送一个8 位数据字节。当主器件不发送应答信号而发送停止位时结束此操作。从CAT24WC256 输出的数据按顺序由N 到N+1 输出。读操作时地址计数器在CAT24WC256 整个地址内增加,这样整个寄存器区域在可在一个读操作内全部读出。当读取的字节超过E(此处E=32767)计数器将翻转到零并继续输出数据字节。图26 连续读时序2.5 硬件测频信号信号的放大与整形本系统采样硬件测
40、频方式进行输入信号频率的测量,由于输入信号幅度可能比较微弱,这就需要进行信号的放大后再测频,而且由于输入信号的不确定性,需要事先把输入信号进行整形成标准方波之后再通入单片机T0引脚进行计数。本系统采样三极管来放大输入的信号,再用施密特电路进行波形变换,把输入信号波形变成可供单片机进行频率测量的方波信号。其电路如图27所示。图27输入信号的放大与整形其中三极管采用普通的NPN型三极管,为了吸收BE间的导通电压Vbe随温度的变化,而使工作点(集电极电流)稳定,射级电阻R4的直流压降必须在1V以上,一般取2V。若取Ie=2mA,则Ic=Ie=2mA,R4=Ve/Ie=2V/2mA=1K.R1=R4*
41、Av=1K*10=10K(取Av=10)又Vb=Vbe+Ve=0.6+2=2.6V,故R3压降Vr32.6V,R2压降V=Vcc-Vr3=5-2.6=2.4V,又在R2和R3上流动的电流应比Ib大得多(10倍以上),这里取0.1mA,则R2=2.4/0.1=24K,R3=2.6/0.1=26K,取C5=C6=0.1F。三极管把输入信号进行放大后输入到施密特集成芯片SN74HC14中,输出即为标准的方波,单片机则可直接测量此信号的频率。2.6 蜂鸣器驱动电路在本设计中为了能在触摸屏按键按下时可以确定已经按下,加入了蜂鸣器来配合按键进行动作。当触摸屏有按键按下时蜂鸣器进行短暂的一声“嘀”响后停止,
42、以告知已经按下了按键,以防止重新按下。其驱动电路如图28所示。图28蜂鸣器驱动电路当“BELL”引脚信号为低电平时,三极管导通,蜂鸣器响;当“BELL”引脚信号为高电平时,三极管截止,蜂鸣器停止响。第三章 程序设计3.1 FPGA采样、数据暂存及传输FPGA在本设计中主要负责信号的采集、数据暂存及与单片机通信,其总体程序流程图如图29所示:开始N“start”信号为0吗?YRS触发器开始工作,分频模块根据单片机div引脚脉冲数确定A/D的采样时钟频率,并把采样数据存储入FIFO_RAMN存满了吗?“FULL”信号变为1,停止RS触发器工作在写FIFO_RAM状态,变为工作在读FIFO_RAM状
43、态,并通知单片机可以取数据若单片机开始取数据,FIFO_RAM时钟变为由单片机read_clk引脚控制若FIFO_RAM数据被读取完,等待进行下一轮的A/D采样结束返回图29 总体程序流程图3.2 单片机控制FPGA采样、画图及数据存储单片机在本设计中是主要核心,它主要负责命令FPGA采样及把采样数据存到内存中并调用画图程序显示采样信号,在触摸屏有按键按下时它根据按下键的值转入相应的处理子程序,总体程序流程如图30所示:开始 读取液晶触摸屏按键,有键按下吗NY按下采样率键按下动态/静止键按下存储键按下读取键命令FPGA改变A/D采样速率按下奇数次当前状态为“静止”,偶数次为“动态”调用CAT2
44、4WC256写程序存储当前波形数据调用CAT24WC256读程序读取上次存储的数据命令FPGA进行A/D采样NFPGA中的FIFO_RAM是否存满?Y读取FIFO_RAM数据并调用画点程序在液晶上显示完整波形,同时实时测量波形参数并显示结束返回图30 单片机总体程序流程图3.3 单片机波形显示及信号处理模块本模块是基于Keil uV2软件环境下进行编译并调试,其主要包括波形显示程序及波形存储程序。其中波形显示主要完成对采样波形转换成液晶屏幕的实际坐标值并显示出来。由于单片机内存有限,考虑到程序的实现难度,只能分四次从FPGA中把波形数据取出来,前三次每次取80个数据,最后一次取16个数据,总共
45、有256个数据,其算法实现如下:1、 建立坐标,把采集到的波形数据存储到数组AD_DATA80中。2、 由于AD采样的位数为8位,其采样值在0255之中,可是本设计采样的320*240液晶屏波形显示区的纵坐标只设有200个点,这就需要把采样值进行相应的变换后换算成实际坐标值。如果A/D采样回来的值不大于200就不需要转换即可对应实际的坐标值,若大于200后把它除以2后即可转换成实际的屏幕坐标值,同时垂直分辨率也随之改变。3、 根据画点程序potxy()逐点描出数组中的值,画点程序如下:/函数功能:在屏幕上任何一个地方显示一个点,下一个显示的点不影响在它之前/ 显示的点.其中X坐标范围为0319
46、,Y坐标范围为0239/ 但此函数有一个限定条件:即调用8次后必然清除screen数组中的内容/ 否则会出错/void potxy(unsigned int x,unsigned int y) unsigned int dot,new_x; WriteCommand(0x00,0xC5);/绘图模式new_x=(int)x/8;/取出X的宏坐标(范围:039),即320/840LocateXY(new_x,y);/坐标定位switch(x%8)/对X取余,即求出X的点坐标(范围:0319) /一个X宏坐标包括8个X点坐标 case 0: dot=0x80;break;/第8个点,即1000,0
47、000 case 1: dot=0x40;break;/第7个点,即0100,0000 case 2: dot=0x20;break;/第6个点,即0010,0000 case 3: dot=0x10;break;/第5个点,即0001,0000 case 4: dot=0x08;break;/第4个点,即0000,1000 case 5: dot=0x04;break;/第3个点,即0000,0100 case 6: dot=0x02;break;/第2个点,即0000,0010 case 7: dot=0x01;break;/第1个点,即0000,0001 default:break; W
48、riteData(dot|screeny%8); /写入数据之前先与上同一个宏坐标内的点坐标值 /防止把之前的数据覆盖掉 screeny%8=dot|screeny%8;/写完一个数据后马上保存,使得下一次在/同一个宏 /坐标下写入数据的时候可以进行与操作 /y%8的意思是screen数组只有8位,要正确存入只有%8调用此函数256次之后即可在液晶屏幕上描出采样到的波形数据,如图31 a 正弦波b 方波c 三角波图31 实际显示波形效果4、 波形数据的存储采样ATCAT24WC256存储器,其最大存储容量为256Kb,内部采用I2C总线技术,读写一个字节的速度可在5ms内完成,这对快速存储数据
49、而言已可以做到快速存储。采用单片机进行模拟I2C总线协议,其程序如下:/=/函数名称:void i2c_write(uchar Address_H,uchar Address_L,uchar Data)/函数功能:写入数据/ =void i2c_write(uchar Address_H,uchar Address_L,uchar Data) /先写高地址,再写低地址,最后写数据 do / 启动总线 i2c_start(); i2c_send8bit(0xA0); /主器件向从器件发送地址(R/W=0为写) while(i2c_ack(); /从器件若无应答一直循环 i2c_send8bit(
50、Address_H); /发送从器件内部存储的地址 i2c_ack();/主器件发送应答信号 i2c_send8bit(Address_L); /发送从器件内部存储的地址 i2c_ack();/主器件发送应答信号 i2c_send8bit(Data); /主器件向从器件发送数据 i2c_ack();/主器件发送应答信号 i2c_stop();/释放总线 return;/ =/函数名称:uchar i2c_read(uchar Address_H,uchar Address_L)/函数功能:i2c_read(地址,数据),读一个字节/=uchar i2c_read(uchar Address_H,uchar Address_L) /先读高地址,再写读地址 uchar c; do i2c_start(); / 启动总线 i2c_send8bit(0xA0);/主器件向从器件发送地址(R/W=0为写) whi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 节庆苗木采购协议
- 箱包企业职业安全管理考核试卷
- 纺织品的智能穿戴设备开发考核试卷
- 液化石油气生产安全风险评估考核试卷
- 矿产勘查经济效益与投资回报分析考核试卷
- 耐火土石矿山开采对矿区地下水环境的保护与合理利用考核试卷
- 网络公共服务平台在志愿者服务中的促进作用考核试卷
- 玉石的开采与加工的安全生产标准提升考核试卷
- 服务标准化在钟点工服务的管理考核试卷
- 摩托车经销商管理培训考核试卷
- 影城员工考核试题及答案
- 新药临床试验合作协议
- 设备部门级安全培训
- 网络舆情分析与应对策略
- 华为经营管理丛书华为的研发管理
- 个人装载机租赁协议书范本
- 2022年高级经济师《运输经济》试题真题及答案
- 2023-2024学年沪科版(2019)高中信息技术必修一第三单元项目六《解决温标转换问题-认识程序和程序设计语言》教学设计
- 《猪的传染病》课件
- 非煤矿山安全生产作业指导书
- 《新媒体营销》课件-项目一 新媒体营销认知
评论
0/150
提交评论