1、,基于EDA的数据采集系统设计 主讲: 陈秦德,内容摘要,1 数据采集系统,2 数据采集系统的设计思路,3 数据采集系统各模块设计,4 实物展示,5 小结,1 数据采集系统的功能,8路通道信号输入,循环检测报警模式,数据处理模式,功能一,模式一,模式二,超出预设值,报警,显示超出规定的通道数,未超出预设值,控制单元,功能二,功能三,不变,缩小1/2,放大2倍,信号输出,2 数据采集系统的设计思路,数据采集系统示意图,A/D转换,D/A转换,控制核心,显示,模拟输入,模拟输出,2.1 数据输入单元,ADC0809介绍,ADC0809引脚图,接线图,此电路图主要实现将八路输入模拟信号转换为数字信号,为数据处理及监控模块提供输入信号。,2.2 数据输出单元,此模块设计所使用的芯片是DAC0832,它的接线图如图所示。图中D0D7为数字量信号输入通道,运放本身主要实现将信号放大2倍的功能。,2.3 数据处理单元,数据采集系统总体框图,k1=0, =循环检测报警模式 k1=1,=数据采集及处理模式 fun=00,=放大2 倍,fun=01=缩小1/2,fun=10或11,=不处理。 k3选择AD
2、C0809的八路中的一路。 d70接ADC0809的数据端,q70接DAC0832的数据端,sel20接ADC0809的通道选择,seg60接数码管,3. 数据采集系统各模块设计,控制模块: Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity control is Port(d:in std_logic_vector(7 downto 0); Clk,k1:in std_logic; Fun:in std_logic_vector(1 downto 0); Sel:out std_logic_vector(2 downto 0); Q:out std_logic_vector(7 downto 0); Alm:out std_logic); End control; Architecture bhv of control is Begin Process(clk) Variable x:std_logic; Variable cnt:std_logic_vector(2 d
3、ownto 0); Begin If clkevent and clk=1then If k1=0then -循环检测模式 If x=0then Sel”10000000”then -常数决定电压超过几伏时报警 alm=1; -改变常数可改变设置电压,Else alm=0; X:=0; end if; End if; Else if fun=”00” then -直接将数据送出,因为已经实现了增大到2倍,所以得到的电压为2倍 Q=d; elseif fun=”01 ” -缩小到1/2,通过将七位二进制数右移两位来实现缩小四倍。 then q=0,控 制 模 块 图,CONTROL,二选一模块: Library ieee; Use ieee.std_logic_1164.all; Entity ch21 is Port(a,b:in std_logic_vector(2 downto 0); S:in std_logic; Q:out std_logic_vector(2 downto 0); End ch21; Architecture bhv of ch21 is Begin pro
4、cess(s,a,b) Begin 二选一模块CH if s=0then q=a; else q=b; end if; End process; End bhv;,CH21,显示模块: Library ieee; Use ieee.std_logic_1164.all; Entity disp is Port(d:in std_logic_vector(2 downto 0); clk:in std_logic; q:out std_logic_vector(6 downto 0); end disp; Architecture bhv of disp is begin process(clk) variable x:std_logic; variable tmp:std_logic_vector(2 downto 0); variable cnt:integer range 0 to 3; begin if clkevent and clk=1then if x=0then tmp:=d; x:=1; else if cnt3 then cnt:=cnt+1; else cnt:=0
5、; if tmp=d then -若有通道超过设置电压,则显示 case d is -通道的序号,when “000”=qqqqqqqqq=”0000000”; end case; else q=”0000000”;-若没有通道超过 设置电压,则不显示 end if;x:=0; end if; end if; end if; end process; end bhv;,显示模块DISP,DISP,使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。TX实验板用共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。,共阴数码管码表,0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d , 0 1 2 3 4 5 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 6 7 8 9 A B 0x39 , 0x5e , 0x79 , 0x71 , 0x00 C D E F 无显示,仿真结果 fun=00,f
6、un=01,fun=11,k1=0,3.4 EDA开发流程 -总流程图,3.4 EDA开发流程 -设计输入,原理图,VHDL文本编辑,缺点,优点,3.4 EDA开发流程 -综合与适配,将设计输入文件,依据给定的硬件结构组件和约束 条件进行编译(编译过程中首先进行语法检查,例查原 理图有无漏连信号线,文本输入文件中关键字有无错误 等各种语法错误;然后进行设计规则检验,如检查总的 设计有无超过器件资源状况)、优化(使设计方案的运 行速度最快,所占用资源最少)、转换和综合(逻辑综 合),最终得到最底层的电路网表文件。,用综合产生的网表文件对指定的目标器件进行适配 (确定优化后的逻辑能否与目标器件适配)、逻辑分割 (将设计分割为多个便于适配的逻辑小块,如果整个设 计不能装入一片器件时,则分割成多块并装入同一系列 的多片器件中)、逻辑布局布线,产生最终的下载文件。,综合,适配,3.4 EDA开发流程 -仿真,让计算机根据一定的算法和仿真库对设计进行 模拟,以检验设计的正确,并排除错误。 功能仿真:直接对设计输入的逻辑功能进行测 试,了解原设计是否满足要求。仿真过程不涉及具 体器件的硬件特性。 时
7、序仿真:在选择了具体器件并完成适配后的 时序关系仿真,仿真结果中包含硬件延迟信息。因 仿真文件中包含器件的硬件特性,则仿真精度高。,仿真,1.3 EDA开发流程 -编程下载与硬件测试,把适配生成的下载或配置文件,通过编程器或编程 电缆向目标器件(FPGA或CPLD)下载。通常对CPLD、 OTP FPGA和FPGA的专用配置ROM的下载称为编程, 对FPGA中的SRAM进行直接下载方式称为配置。,对载入了设计的FPGA或CPLD的硬件系统进行测 试,验证设计项目在目标器件上的实际工作情况,最终 完成设计任务。,编程下载,硬件测试,4 实物展示,5 小结,本次设计开发通过VHDL语言编程设计来实现数据采集系统,在Altera 公司开发的第三代EDA集成开发环境 MAXPLUS II中进行修改、编译、仿真,采用软硬件结合的方法对设计结果进行验证。在设计中,采用多进程描述的方法来进行程序设计,通过使用进程可以把整体的功能局部化、分块设计。多个进程通过进程间通信机制互相配合、达到设计要求。当进程比较多的时候,它们之间的配合问题就比较复杂,因此在设计之前应该合理规划安排。,Thank You !,
《基于vhdl的数据采集系统设计(大学生自作ppt)课件》由会员F****n分享,可在线阅读,更多相关《基于vhdl的数据采集系统设计(大学生自作ppt)课件》请在金锄头文库上搜索。