EDA小系统的使用和简易存储示波器的设计.docx
- 文档编号:26472306
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:32
- 大小:1.19MB
EDA小系统的使用和简易存储示波器的设计.docx
《EDA小系统的使用和简易存储示波器的设计.docx》由会员分享,可在线阅读,更多相关《EDA小系统的使用和简易存储示波器的设计.docx(32页珍藏版)》请在冰豆网上搜索。
EDA小系统的使用和简易存储示波器的设计
EDA小系统的使用和
简易存储示波器的设计
小组成员:
郭梓锐、鲁双、陈丹
指导教师:
张老师
学校:
湖北经济学院
院系:
管理技术学院
二零零七年七月二十九日
一、设计目的
1、要求掌握QuartusII6.0软件中的使用;
2、了解EDA小系统的工作原理,并能在GWDVPB电子设计应用板上实现简易存储示波器的设计;
3、实现凌阳单片机与EDA小系统的对接,为电子设计大赛做准备。
二、设计任务
1、要求掌握以下知识:
a)掌握QuartusII6.0软件中VHDL和原理图的设计方法,LPM模块的调用方法;
b)EDA小系统的工作原理:
包括了解GWDVPB电子设计应用板的原理图,板中单片机、FPGA器件(CYCLONEEPIC3T144C8)和键盘、显示电路接口关系,JTAG和AS下载、配置模式的区别;
c)掌握FPGA器件外围的时钟信号及与A/D和D/A器件的接口关系。
2、在EDA小系统上完成数据采集电路和简易存储示波器设计
3、实现凌阳单片机与FPGA器件的连接与电平转换。
三、仪器仪表
此次实验用到的仪器仪表有:
1、TDS210示波器
2、EE1640C函数信号发生器
3、DF1731S82A直流电源
4、万用表
5、凌阳单片机SPCE061a
6、EDA开发系统
四、EDA最小系统的使用
1、QuartusII6.0软件中VHDL和原理图的总体设计方法如图1。
图1QuartusII6.0软件设计基本流程
下面以VHDL的设计方法为例,说明其基本的设计步骤。
QuartusII6.0软件中VHDL设计方法:
a)双击quartusII图标,打开quartusII软件;
b)选择file-newprojectwizard...;
c)选择工程位置、工程名称、顶层模块名称;
图2
d)加入VHDL源文件;
图3
e)选择fpga器件;
图4
f)选择next直到finish;
g)点击finish后工程已建立好,选择左侧
的看到已添加的文件;
h)双击liangzhu.v可以看到verilog设计文件;
i)选择assignment—device指定设备。
指定设备在建立工程时已经选好,点击Device&pinoption…选择Nusedpins标签项,把不用的引脚置为输入三态;
j)指定管脚前先点击
分析工程,修改错误直到分析完显示0个error为止;
k)选择assignment——pins指定管脚;
l)编译整个工程,显示编译进度,修改错误直到零个error。
可以选择查看各个部分的编译报告;
图5
m)建立仿真文件,News—othersfilter——VcoterWaveformFile,仿真测试向量波形文件,选择nodefinder…,选择filter:
pins:
all,然后点击list列出所用输入输出端口,选中所有信号点击加入到观察目标窗口中;
n)选择ok—ok,在波形图中加入了观察信号;
o)设置仿真时间最小间隔:
考虑到硬件环境提供的是50Mhz的时钟,即时钟周期为20ns,选择gridsize为20ns,选择edit—gridsize;
p)选择仿真时间长度为1ms,选择edit—endtime,设为10ms;
q)编辑输入波形:
选中sys_clk点设置为时钟波形,周期为20ns,选中rst_n点设置为1,设置完成,保存;
r)产生仿真网表:
选择tools-simulatortool,选择simulationmodefunctional
点击产生仿真网表;
s)选择开始仿真
完成后点打开仿真后波形
t)时序仿真(后仿真)
功能仿真后,如果波形没有问题开始做时序仿真,
选择tools-simulatortool
选择simulationmode为timing
点击start,时序仿真比功能仿真还要慢一些
仿真完成后可以看到延时
u)当仿真完全通过后,可以把下载程序下载到硬件上进行测试
选择tools-programmer
点击hardwaresetup选择下载电缆,为byteblasterII
选择mode下载模式:
jtag为在线调试,as为烧写epcs(配置芯片)
连接好下载电缆,选中就可以下载。
在 设计中的注意事项:
1)工程顶层模块名要和程序顶层模块名字一致;
2)设备选项中要把不用的管脚置输入三态;
3)实际硬件调试时,要把为了软件仿真方便面对程序修改的地方还原;
4)使用时请把开发板放在防静电袋上;
5)用手触摸开发板上的芯片之前,请先将手触摸倒替排出体内静电。
2、EDA小系统的工作原理
GWDVP板最具特点的结构,它由双排座构成,它将GWDVP系统构成了一个有机整体,其上插有封装FPGA/CPLD的目标板EP1C3T144C8。
下面分2个模块——单片机系统,通用FPGA接插系统,其GWDVPB电子设计应用板的原理图如图1,下面逐步分析工作原理及各模块之间的接口关系。
图6GWDVPB电子设计应用板的原理图
a)单片机系统:
AT89S51有时钟电路,复位电路,片外RAM、ROM,按键,数码管,液晶显示,外部扩展接口等部分组成。
其芯片引脚及基本的外围电路如图7
图7AT89S51基本外围电路
1)时钟电路:
在AT89S51的引脚18(XTAL2),19(XTAL1),跨接12MHZ的石英晶体和两个补偿电容构成自激振荡。
2)复位电路:
AT89S51中采用上电复位和手动复位两种方式实现系统的复位操作。
上电复位在接通电源后,自动实现复位操作。
手动复位在接通电源的条件下,在单片机运行的期间,按RESET键手动实现,它通过与AT89S51的引脚9外接按键来实现。
3)片外RAM、ROM:
由于AT89S51单片机中的RAM内存小,当系统需要扩大内存时就需扩展存储器ROM/RAM。
在系统上扩展了一片W27C512-45,可以充分满足用户的需要。
在板的下放有一3针跳线,往左短路,禁止使用ROM/RAM,往右插,则允许使用外部ROM/RAM。
4)按键接口:
单片机键盘使用机械触点式按键开关,把机械上的通断转换为电气上的逻辑关系。
小系统上设置了1*4的阵列式键盘,用总线扩展方式进行,使用AT89S51的引脚1--8(P1.0—P1.7)进行选择和软件编程时方便读取键盘。
5)数码管:
它们由8个数码显示器构成的串行静态显示系统。
静态显示系统的优点是,显示亮度度好;显示稳定;单片机编程方便,中断控制设计方便,编程控制简单,增加数码管的软硬件更改也十分简单。
电路结构采用总线扩展方式进行设计,扩展AT89S51的引脚10(P3.0),11(P3.1)来控制数码管的片选和数据的显示。
6)液晶显示:
小系统中接入液晶显示模块,通过编程可以显示英文,汉字或图形,可以实现比较复杂的用户界面。
其8位数据通过单片机AT89S51的引脚10—17(P3.0—3.7)与其数据引脚相接,构成接口电路。
最小系统上面除EEPROM外都是采用总线方式扩展的,从上可以知道每个接口电路都有特定的引脚,即有特定的物理地址,从而实现单片机编程方便,中断控制设计方便,编程控制简单。
(注意,如果外接A/D,D/A系统,必须提供单独电源,不要用GWDVP系统的电源,以免显示系统干扰A/D和D/A的工作精度)
b)通用FPGA接插系统:
FPGA最小系统由FPGA芯片,配置电路,时钟源和I/O接口电路组成。
可以满足绝大数的组合逻辑电路,时序电路设计需求;可以与PC机的串口连接从而实现与PC机的通信等设计。
1)系统采用3.3、2.5V电压源,为混合电压的FPGA使用。
5V电压源外部提供。
2)RS—232串行通信接口:
FPGA系统的串行接口如下图8。
图8串行接口电路
由图引脚标号可知J8DB9直接与PC机串行口相连,PIO24,PIO25脚直接与FPGA引脚51,52相连,进行机与FPGA之间的数据传送。
3)时钟源:
FPGA芯片中设置了4中时钟信号,分别是:
93脚:
12MHZ;
17脚:
20MHZ;
16脚:
50MHZ;它们确保了FPGA/CPLD优秀的高速性能的有效发挥。
4)FPGA有两中下载模式—JTAG和AS。
其区别在于JTAG下载后断电下载的内容丢失。
而AS下载模式则不会丢失。
5)I/O接口电路:
FPGA的主要芯片EP1C3T144C8,其引脚图如图9。
图9芯片EP1C3T144C8引脚图
其引脚与外部的连接如下说明:
①与单片机的接口关系:
单片机的P0.0—P0.7,P2.0—P0.7口分别与EP1C3T144C8的引脚PIN1—PIN7,PIN10,PIN11,PIN32—PIN38相连,用于两者之间的数据和地址的传输。
②与A/D,D/A模块的接口关系:
模块的引脚PIN26—PIN28,PIN31,PIN53—PIN62,PIN67—PIN78,PIN83,PIN79,PIN82,PIN91,PIN94,PIN100,PIN123—PIN128,PIN130与单片机的双排插脚相连,作为数据和控制信号传输。
③用户端口:
模块上的双排2*2插脚是供用户任意使用的。
他们与单片机的连接关系为:
PIO16—PIO23,PIO26—PIO33,PIO60—PIO79分别与EP1C3T144C8的引脚PIN39—PIN50,PIN67—PIN74,PIN131—PIN134,PIN139—PIN142,PIN122—PIN119,PIN114—PIN111,PIN143,PIN144,PIN110,PIN109。
以上是EDA小系统的相关说明。
五、小系统的应用
为了验证小系统的作用,可利用其设计一个简易的数字存储示波器。
六、设计思路:
被测的输入信号(模拟信号),进行调理、量化即进行A/D转换,在转换的过程中,A/D转换器在控制器的控制下将输入的模拟量转化为数字量后存入数据存储器,从存储器中读出数据并经过74LS244输入缓存器后再经D/A恢复为模拟信号,输入到通用示波器的Y通道,将被测的输入信号在通用示波器的光屏上显示出来。
示意图如下图10:
图10简易数字存储示波器示意图
七.硬件的设计与实现
1、模拟通道的设计
系统用于对模拟信号的实时采集存储,模拟通道的性能直接影响系统的性能,因此必须采用合适的模拟输入,由于运算放大器的不理想和非集成造成的误差和干扰是无法避免的,因此,简单地利用运算放大器组成模拟通道是不可行的,本实验采用直接加入电压的方法,这样既简单,又可靠,而且成本又低。
2、控制模块
控制器是整个系统的核心。
根据设计要求,控制器要能够启动对被测信号进行采样、存储,并且在对存储的信号进行显示时,能够选择一个合适的速率将存储的信号数据读出并恢复为模拟量,作为通用示波器的Y通道输入信号。
根据设计要求,可选择单片机和可编程逻辑器件(FPGA)完成对信号的采集和存储控制,承担底层控制。
单片机选择凌阳公司生产的SPCE061A简称61板,其原理可参照相关资料,可编程逻辑器件(FPGA)选择康芯电子有限公司生产的EP1C3T144C8,其应用可参照本设计报告前面。
利用单片机实现对可编程逻辑器件及整个系统的管理,承担顶层控制及数据处理,如从键盘输入读取信号/WE,将存储的数字信号进行数据处理并恢复为模拟信号进行显示等操作;而编程逻辑器件主要完成对被测信号进行采集、存储等操作。
控制器组成方框图如图11所示:
图11控制器组成框图
3、A/D转换模块的设计
a)ADC0809的结构
图12A/D0809内部转换结构
本模块采用8路模拟输入、8位数字输出的A/D转换器ADC0809,转换时间约为100Us,其内部结构如图12
8路模拟量输入由3根地址线A、B、C通过ALE锁存,改变不同的地址,可以切换8路模拟通道,EOC为转换结束信号,表示一次A/D转换已经完成,可以作为被程序查询以检测转换是否结束。
b)ADC0809与FPGA的接口电路
下图是ADC0809与FPGA的接口电路如图13
说明:
本系统采用FPGA模拟ADC0809所需要的操作时序,控制ADC0809在一定的频率(750KHZ)上工作,达到所需的采样频率。
由于ADDA接高电平,ADDB、ADDC接地,因此选择的模拟输入为IN1,START、ALE、OE均由FPGA输出,转换结束后ADC0809产生转换结束信号EOC=1输出给FPGA,控制下一数据的转换。
REF+、REF-为参考电压输入,本系统的参考范围为0—5V
图13ADC0809与FPGA的接口电路
ADC0809的工作电压为+5V,为了让外部电压与ADC0809的工作电压相匹配,应在外部电路与ADC0809串入100Ω的电阻。
4、数据存储器电路的设计
A/D转换器的量化结果存储在数据存储器RAM中,通过VHDL编程实现对A/D转换后数字的存储,然后采用74LS244对存储的8位数字量进行缓冲,供D/A进行转换。
5、D/A转换模块的设计
D/A转换器和输出电路将存储的数字信号恢复为模拟信号,并输出到普通示波器的Y输入端。
本设计选择8位的DAC0832芯片,转换时间不大于1uS,其引脚图7.b.2如下:
当ILE为高电平,片选信号/CS和写信号/WR1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。
此后,当/WR1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。
对第二级锁存来说,传送控制信号/XFER和写信号/WR2同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输出随输入而变化,此后,当/WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。
图14DAC0832芯片引脚图
其各引脚的功能定义如下:
a)DI7~DI0:
8位的数据输入端,DI7为最高位。
b)IOUT1:
模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当DAC寄存器中数据全为0时,输出电流为0。
c)IOUT2:
模拟电流输出端2,IOUT2与IOUT1的和为一个常数,即IOUT1+IOUT2=常数。
d)RFB:
反馈电阻引出端,DAC0832内部已经有反馈电阻,所以RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接运算放大器的输出端和输入端之间。
e)VREF:
参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10~-10)V。
VREF端与D/A内部T形电阻网络相连。
根据其各引脚的功能,可设计出D/A转换部分的输出电路的设计,其电路图15如下:
图15D/A转换部分的输出电路的设计
说明:
DAC0832的内部有两个寄存器,根据控制信号的情况,有三种输入数据的方式:
直通方式,两个寄存器都是选通状态;单缓冲方式,两个寄存器在需要时同时被选通;双缓冲方式,两个寄存器分别依次被选通。
在本设计中,采用直通方式,将/WR1、/WR2选通信号直接接地;由于DAC0832是电流输出型D/A转换器,因此,需将11脚、12脚输出后接入运算放大器,将电流信号转换成电压信号,第二个运算放大器的作用是将转换后的电压极性变为与模拟量输入一致。
八、简易数字存储示波器软件设计
系统主程序及单片机键盘中断的子程序流程图16如下:
图16主程序框图
1、VHDL语言的编程
a)顶层模块的电路图
根据各模块的设计及整体思路,可画出顶层模块的电路图17如下:
图17顶层模块的电路图
b)编程
1)状态机控制ADC0809的程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_unsigned.ALL;
useIEEE.STD_LOGIC_arith.ALL;
ENTITYADCINTIS
PORT(
D:
INSTD_LOGIC_VECTOR(7DOWNTO0);
EOC:
INSTD_LOGIC;
clk:
INSTD_LOGIC;
clk1,ALE,START,OE,ADDA,LOCK0:
OUTSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
END;
ARCHITECTUREONEOFADCINTIS
TYPESTATESIS(ST0,ST1,ST2,ST3,ST4);
SIGNALC_STATE,N_STATE:
STATES:
=ST0;
SIGNALREGL:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALLOCK,START0:
STD_LOGIC;
signalpp,bb:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
ADDA<='1';Q<=REGL;LOCK0<=LOCK;OE<='1';
COM:
PROCESS(C_STATE,EOC)
BEGIN
CASEC_STATEIS
WHENST0=>ALE<='0';START0<='0';LOCK<='0';N_STATE<=ST1;
WHENST1=>ALE<='1';START0<='1';LOCK<='0';N_STATE<=ST2;
WHENST2=>ALE<='0';START0<='0';LOCK<='0';
IF(EOC='1')THENN_STATE<=ST3;ELSEN_STATE<=ST2;
ENDIF;
WHENST3=>ALE<='0';START0<='0';LOCK<='0';N_STATE<=ST4;
WHENST4=>ALE<='0';START0<='0';LOCK<='1';N_STATE<=ST0;
WHENOTHERS=>N_STATE<=ST0;
ENDCASE;
ENDPROCESS;
REG:
PROCESS(clk)
BEGIN
IF(clk'EVENTANDclk='1')THENC_STATE<=N_STATE;
ENDIF;
ENDPROCESS;
LATCH1:
PROCESS(LOCK)
BEGIN
IFLOCK='1'ANDLOCK'EVENTTHENREGL<=D;
ENDIF;
ENDPROCESS;
LK:
PROCESS(clk)
BEGIN
IF(clk'EVENTANDclk='1')THENSTART<=START0;
ENDIF;
ENDPROCESS;
lm:
process(clk)
begin
if(clk'eventandclk='1')thenpp<=pp+1;
ifpp<"1000"thenclk1<='1';
elseclk1<='0';
endif;
endif;
ENDPROCESS;
END;
2)9位计数器程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10BIS
PORT(LOCK0,CLR:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
WE:
INSTD_LOGIC;
DOUT:
OUTSTD_LOGIC_VECTOR(8DOWNTO0);
CLKOUT:
OUTSTD_LOGIC);
ENDCNT10B;
ARCHITECTUREbehavOFCNT10BIS
SIGNALCQI:
STD_LOGIC_VECTOR(8DOWNTO0);
SIGNALCLK0:
STD_LOGIC;
BEGIN
CLK0<=LOCK0WHENWE='1'ELSE
CLK;
PROCESS(CLK0,CLR,CQI)
BEGIN
IFCLR='1'THENCQI<="000000000";
ELSIFCLK0'EVENTANDCLK0='1'THENCQI<=CQI+1;ENDIF;
ENDPROCESS;
DOUT<=CQI;CLKOUT<=CLK0;
ENDbehav;
3)顶层模块的程序
根据顶层模块电路图,用例化语句实现整体控制,程序如下:
libraryieee;
useieee.std_logic_1164.all;
entityccsbqis
port(d:
instd_logic_vector(7downto0);
clk,eoc,clr,wren:
instd_logic;
ale,start,oe,adda,clk2:
outstd_logic;
q:
outstd_logic_vector(7downto0));
end;
architectureoneofccsbqis
componentadcintis
PORT(
D:
INSTD_LOGIC_VECTOR(7DOWNTO0);
EOC:
INSTD_LOGIC;
clk:
INSTD_LOGIC;
clk1,ALE,START,OE,ADDA,LOCK0:
OUTSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
endcomponent;
componentcnt10bis
PORT(LOCK0,CLR:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
WE:
INSTD_LOGIC;
DOUT:
OUTSTD_LOGIC_VECTOR(8DOWNTO0);
CLKOUT:
OUTSTD_LOGIC);
ENDcomponent;
componentram8bis
PORT
(
address:
INSTD_LOGIC_VECTOR(8DOWNTO0);
inclock:
INSTD_LOGIC;
data:
INSTD_LOGIC_VECTOR(7DOWNTO0);
wren:
INSTD_LOGIC;
q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
endcomponent;
signala,b,f:
std_logic;
signalc:
std_logic_vector(7downto0);
signale:
std_logic_vector(8downto0);
begin
u1:
a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 系统 使用 简易 存储 示波器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)