EDA技术课程大作业
设计题目:数据采集电路和简易存储示波器设计
院系:电子信息与电气工程系
学生姓名:
学号:200902070011
专业班级:
2010年12月3日
数据采集电路和简易存储示波器设计
1.设计背景和设计方案
1.1设计背景
随着互联网络软硬件的迅猛发展,网络用户快速增长。
在计算机网络互联的同时,工业生产中的数据采集及控制设备慢慢走向网络化,便于共享网络中丰富的信息资源。
所以本设计项目是利用FPGA直接控制0809对模拟信号进行采样,然后将转换好的8位二进制数据迅速存储到存储器中,在完成对模拟信号一个或数个中期的采样后,由外部电路系统(如单片机)将存储器中的采样数据读出处理。
1.2设计方案
采样存储器可以有多种方式实现:
①外部随机存储器RAM。
其优点是存储量大,缺点是需要外接芯片,且常用的
RAM读写速度较低;与FPGA间的连接过长;特别是在存储数据时需要对地址进行加1操作,进一步影响数据写入速度。
②FPGA内部EAB/ESB等。
在AItera的大部分FPGA器件中都含有类似于EAB的
模块。
③由EAB等模块构成告诉FIFO。
FIFO比较适于用作A/D采样数据高速存储。
基于以上讨论,A/D采样电路系统可以绘成图㈠所示的电路原理图。
2.方案实施
2.1元件描述
①元件ADCINT。
ADCINT是控制0809的采样状态机,其VHDL描述以及其输入输
出信号的含义与参考文献一中的例8-2完全相同,工作方式亦可参考8.2.1节。
②元件CNT10B。
CNT10B中有一个用于RAM的9位地址计数器,次计数器的工作
时钟CLK0由WE控制:当WE=‘1’时,CLK0=LOCK0;LOCK0来自0809采样控制器的LOCK0(每一采样周期产生一个锁存脉冲),这时处于采样允许阶段,RAM的地址锁存时钟inclock=CLKOUT=LOCK0;每一个LOCK0的脉冲通过0809
采到一个数据,同时将此数据锁入RAM(RAM8B模块)中。
当WE=‘0’时,处于采样禁止阶段,此时允许读出RAM中的数据,
CLKOUT=CLK0=CLK=采样状态机的工作时钟(一般取65536Hz)。
由于CLK的频率比较高,所以扫描RAM地址的速度就高,这时在RAM数据输出口Q[7..0]接上DAC0832,就能从示波器上看到刚才通过0809采入的波形数据。
③元件RAM8B。
这是LPM_RAM,8位数据线,9位地址线。
WREN是写使能,高电
平有效。
图㈠ADC0809采样电路系统
2.2实验内容
2.2.1 实验内容1设ADDA=‘1’;即模拟信号来自0809的IN1口(可用实验系统的电位器产生被测模拟信号)完成此项设计,将设计结果在Cyclone
中硬件实现,用QuartusⅡ在系统RAM/ROM数据编辑器了解锁入RAM中
的数据。
2.2.2 实验内容2:优化设计。
仿真设计电路图㈠,检查此项设计的START信号是否有毛刺,如果有,改进ADCINT的设计(也可用其他方法),排除
START的毛刺。
2.2.3 实验内容3:对电路图㈠完成设计和仿真后锁定引脚,进行硬件测试。
仿照参考文献一的实验8-2和实验7-1对08009和0832的引脚锁定:元
件ADCINT引脚锁定仿照实验8-2。
WE用键1控制;为了实验方便,CLK
接clock0,频率先选择64Hz(选择较慢的采样时钟),作状态机工作时钟。
硬件实验中,建议选择电路模式5,打开±12V电源,首先使WE=‘1’,
即键1置高电平,允许采样,由于这时的程序中设置ADDA<=‘1’,模拟
信号来自AIN1,即可通过调协实验板上的电位器(此时的模拟信号时手
动产生的),将转换好的数据锁入RAM中;然后按键1,使WE=’0’,clock0
的频率选择16384Hz(选择较高时钟),即能从示波器中看见被存于RAM
中的数据(可以首先通过QuartusⅡ的RAM在系统读写器观察已锁入RAM
中的数据)。
2.2.4 实验内容4:程序中设置ADDA<=‘0’,模拟信号将由AIN0进入,即AIN0的输入信号来自外部信号源的模拟连续信号。
外部模拟信号可来自实验
箱,方法如下:
首先打开±12V电源,将GW48主系统板右侧的“JL11”跳线座短路“L_F”
端;跳线座”JP18”的“INPUT”端与系统右下角的时钟64Hz相接;并
用以插线将插座“JP17”的”OUTPUT”端与实验箱最左侧的“JL10”座
的”AIN0”端相接,这样就将64Hz待采样的模拟信号接入了0809的IN0
端(注意,这时程序中设置ADDA<=‘0’)。
试调节“JP18”上方的电位
器,使得主系统右侧的“WAVEOUT”端输出正常信号波形(用示波器件事,峰值调在4V以下)。
注意,如果要将锁入(用CLK=64Hz采样)RAM中的
数据扫描显示到示波器上观察,必须用高频率时钟才行(clock0接
16384Hz)。
可以是键1高电平是对模拟信号采样,低电平时示波器显示已存入RAM
的波形数据。
2.2.5 实验内容5:仅按照以上方法,会发现示波器显示的波形并不理想,原因是从RAM中扫出的数据都不是一个完整的波形周期。
试设计一个状态
机,结合被锁入RAM中的某些数据,改进元件CNT10B,使之存入RAM中
的数据和通过D/A在示波器上扫出的数据都是一个或数个完整的波形数
据。
2.2.6 实验内容6:在图㈠的电路中增加一个锯齿波发生器,扫描时钟与地址发生器的时钟一致。
锯齿波数据通过另一个D/A输出,控制示波器的X
端(不用示波器内的锯齿波信号),而Y端由原来的D/A给出RAM中的采
样信息,由此完成一个比较完整的存储示波器的显示控制。
2.3 实验程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED,ALL;
ENTITY CNT10B IS
PORT (LOCK0,CLR:IN STD_LOGIC;
CLK:IN STD_LOGIC;
WE:IN STD_LOGIC;
DOUT:OUT STD_LOGIC_VECTOR(8 DOWNTO 0);
CLKOUT:OUT STD_LOGIC);
END CNT10B;
ARCHITECTURE behav OF CNT10B IS
SIGNAL AQI:STD_LOGIC_VECTOR(8 DOWNTO 0);
SIGNAL CLK0: STD_LOGIC
BEGIN
CLK0<=LOCK0 WHEN WE=‘1’ELSE
CLK;
PROCESS(CLK0,CLR,CQI)
BEGIN
IF CLR=‘1’THEN CQI<=“000000000”;
ELSIF CLK0‘EVENT AND CLK0=‘1’THEN CQI<=CQI+1;END IF; END PROCESS;
DOUT <=CQI;CLKOUT<=CLK0;
END behav;
2.4仿真波形
3.结果和结论
应用本文原理设计的简易示波器,波形经过仿真后,取得了满意的效果。
这些设计方法和原理在其它实际数据采集系统的设计过程中,也会具有重要的参考价值。
更加验证了数据采集将有广泛的应用领域。
4. 参考文献
[1].潘松,黄继业.EDA技术实用教程(第三版),2006年9月出版.
[2].潘松,王国栋.VHDL实用教程(修正版),2001年出版.。