基于cpld_fpga的数字温度表设计课程设计(编辑修改稿)内容摘要:
()为反相输入端,表示运放输出端 Vo的信号与该输入端的位相反。 RC4558P 的引脚排列图如图 34 所示。 图 33 运算放大器 图 34 引脚排列图 对 AD590 采集到的信号进行处理的电路连接如图 35 所示。 基于 FPGA 的数字温度计的设计 10 图 35 AD590与 ADC0804 连接图 3. 2. 3 模数转换模块 ADC0804 在该设计中起到数据的模数转换以及数据锁存的作用。 ADC0804 与 FPGA的模块电路如图 36 所示。 基于 FPGA 的数字温度计的设计 11 图 36 ADC0804 与 FPGA的连接模块图 ADC0804 是属于逐次逼近式的模数转换器。 根据图 36 ADC0804 与 FPGA 的连接和图 37 ADC0804 的控制信号时序图的信号流向可知,只有 CS,WR,RD 控制着 ADC0804 动作的信号。 当 INTR 由高电平( 1)转为低电平( 0)后, ADC0804 这次的模数转换完成,DB0DB7 就是转换后的数字资料。 ADC0804 的控制信号时序如图 37 所示。 图 37 ADC0804 的控制信号时序图 如果将图 37 的动作分为 S0,S1,S2,S3 四个步骤区间的话,那么每个步骤区间的动作方式分析如下: S0:CS=0,WR=0,RD=1(由 FPGA 发出信号要求 ADC0804 开始进行数据的模数转换 ); S1:CS=1,WR=1,RD=1(ADC0804 开始转换动作,转换完毕后 INTR 由高电位转为低电位,转换时间 100μ S)。 S2:CS=0,WR=1,RD=0(由 FPGA 发出信号以 读取 ADC0804 的转换资料 )。 S3:CS=1,WR=1,RD=1(由 FPGA 读取 DB0DB7 上的转换资料 )。 根据控制时序图利用有限状态机实现模数转换的控制。 状态机分成 4 个状态: S0 启动转换 (CS=0,RD=0); S1 等待转换结束,即等待 INTR 由低电平变为高电平; S2 A/D 转换结果输出; S3 停止 A/D。 由于 FPGA 所能读取的是 VHDL 语言,所以应用 VHDL 语言描述有限状态机的设计,其进程如图 38 所示。 COM 组合进程以 INTR 和上升状态为敏感信号,当 INTR 由低电平转变为高电平时对现状态进行判断, 通过改变 CS 和 RD 的状态完成对ADC0804 的控制。 REG 时序进程以 CLK 为敏感信号,在 CLK 的上升沿将上升状态转换到下降状态。 LATCH 进程以 LOCK 为敏感信号,在 LOCK 的上升沿锁存 ADC0804 的输出值。 基于 FPGA 的数字温度计的设计 12 如图 38 状态机进程图 实验程序开始之前, A/D 转换器处于重启状态即 RST=1,以使 A/D 转换器处于初始状态,当 RST=0 时 A/D 转换器进入 S0 状态。 核心程序如下: StateChange:Block Signal Generator Begin PROCESS(CP,RST) BEGIN IF RST=39。 139。 Then Reset State nCS=39。 139。 nWR=39。 139。 nRD=39。 139。 EC=39。 039。 State=S0。 END IF; 对 S0,S1,S2,S3 四个状态作具体的分析如下: S0:由 FPGA 发出 信号通知模拟 /数字的转换开始,处于写入模拟信号状态,并且由S0 状态进入 S1 状态,核心程序如下: WHEN S0= nCS=39。 039。 nWR=39。 039。 nRD=39。 139。 EC=39。 039。 State=S1。 基于 FPGA 的数字温度计的设计 13 S1: ADC0804 进行转换时 INTR 由高电位转至低电位,等待转换结束;当转换完成后,INTR 将低电平变为高电平,并且由 S1 状态进入 S2 状态,核心程序为: when S1= nCS=‘1’; nWR=‘1’; nRD=‘1’; EC=‘0’; if nIN=‘0’then State=S2; End if; S2:由 FPGA 发出信号读取 ADC0804 的转换数据结果输出,处于读取数 字信号状态,并且由 S2 状态进入 S3 状态,核心程序为: when S2= nCS=‘0’; nWR=‘1’; nRD=‘0’; EC=‘1’; State=S3; S3:由 FPGA 读取 DB0DB7 上的数字信号,读取结束后停止 A/D 转换器,并且由 S3状态返回 S0 状态,核心程序为: when S3= nCS=‘1’; nWR=‘1’; nRD=‘1’; EC=‘0’; State=S0; when others= State=S0; 3. 2. 4 进制转换模块 通过模数转换模 [8]块处理后被送入 FPGA 器件中的数据均为二进制的数字量 , 如果要想通过数码管显示所测温度的值,我们必须把二进制数字量转 化为十进制的数字量。 这样基于 FPGA 的数字温度计的设计 14 才 能通过动态扫描模块和数码显示模块,从而将所测温度的值在 8 位七段数码管上准确的显示出来。 VHDL 核心程序如下: Conversion:Block Signal V:Std_Logic_Vector(8 downto 0)。 A/D Conversion Data Signal T:Std_Logic_Vector(7 downto 0)。 Begin V=(D amp。 39。 039。 ) 100010001。 (2) T=V(7 downto 0)。 (3) Temp=T。 (4) Value = 000000000000 When T = 0 Else 000000000001 When T = 1 Else 000000000010 When T = 2 Else 000000000011 When T = 3 Else „„ 000010011000 When T = 98 Else 000010011001 When T = 99 Else 000100000000。 100 End Block Conversion。 其中,程序( 2)将读取到的 ADC0804 的数字转换值乘以 2 的用意是将该位左移一位,然后减去 273(100010001)2。 由于所测温度范围 0℃~ 100℃ ,它们的十六进制是 0~ 64H,只要较低的 8 位就可以表示了,而且通过减去 273 之后,最高位一定是 0。 所以,在程序( 3)只取后面的 8 位。 在程序( 4)模块中利用的是查表的方法,把相减的结果,转换成对应的 12 位 BCD 码,供以后的 7 段显示器扫描电路使用。 3. 2. 5 动态扫描模块 动态扫描 [9]就是利用人眼视觉暂留的现象,只要扫描信号频率大于或者等于 24 Hz 时,人眼就 不会感觉到显示器的闪烁。 该设计系统 24Hz 的扫描脉冲由相应的外围电路提供。 在本设计中采用八进制计数器提供同步脉冲,因为动态扫描电路设计的位选信号必须要与显示的数据在时序上一一对应,这就要求电路中必须提供同步脉冲信号。 显示电路的作用是完成 BCD 码到 7 段显示器段码的译码,然后传送到显示器。 在此要求 3 个显示器轮流点亮,由于要求扫描显示的速度必须与数据选择器同步,所以需要一个计数器提供二者的扫描信号。 应用 VHDL 语言设计的显示电路如图 39 所示,主要包括数据选择器、 BCD 译码电路、可逆计数器、扫描译码 4 个部分。 基于 FPGA 的数字温度计的设计 15 数据缓存器数据选择器B C D 译 码 电 路可 逆 计 数 器扫描电路扫 描 码段 码C L K 图 39 显示电路的结构 数据选择器和扫描译码电路的核心 VHDL 程序如下: Free_Counter:Block Signal Q :STD_LOGIC_VECTOR(15 DOWNTO 0)。 Begin PROCESS(CP) Begin IF CP39。 Event AND CP=39。 139。 then Q=Q+1。 END IF。 END PROCESS。 ST=Q(15 DOWNTO 14)。 SELOUT=010WHEN ST=0 ELSE 001WHEN ST=1 ELSE 000WHEN ST=2 ELSE 111。 SEL=110WHEN ST=0 ELSE 101WHEN ST=1 ELSE 011WHEN ST=2 ELSE 111。 END Block Free_Counter。 SELECT_BCD:Block BEGIN NUM= VALUE(3 DOWNTO 0)WHEN ST=0 ELSE VALUE(7 DOWNTO 4)WHEN ST=1 ELSE基于 FPGA 的数字温度计的设计 16 VALUE(11 DOWNTO 8)。 End Block SELECT_BCD。 在上述程序中, ST 是可逆计数器的计数值(范围 0~ 2); VALUE 是数据缓存器(包含 3 组 BCD 码)。 两部分电路的驱动基于同一个计数值,工作时是完全同步的。 3. 3 系统综 合 将以上各模块加以综合,可以得出该数字温度表整体,清晰的设计思路如下: AD590 传感器在加+ 5V 电压时产生电流,此电流通过 10KΩ电阻接地,在其电阻两端产生一个电压,经过放大器 4558 放大后,模拟信号送入 ADC0804 中进行 A/D 转换,由CPLD 控制信号控制 ADC0804 转换后将数字信号输入 FPGA 芯片中,经过 S0(启动转换CS=0,RD=0, WR= 0); S1(等待转换结束,即等待 INTR 由低电平变为高电平); S2 ( A/D转换结果输出); S3(停止 A/D)四个状态后, FPGA 运算读取的二进制数值计算出 十进制数值,控制系统编码 ST 分段显示出所测量的数字温度值,从而读取测量温度值。 该数字温度测量系统的整体电路原理图如图 310 所示。 图 310 数字温度测量系统原理图 基于 FPGA 的数字温度计的设计 17 4. 系统的仿真分析及器件下载 [10] 4. 1 系统的仿真分析 该数字温度测量系统采用的编译软件为 :ALTERA 公司的 QuartusⅡ。 将上述五个设计模块的程序综合成的总程序经过 QuartusⅡ软件编译以后 ,得到的总模块图如图 41 所示。 图 41 系统总程序模块图 系统的程序编译好后 ,通过 QuartusⅡ软件的波形编辑器 (W aveform Editor)进行波形仿真 ,通过仿真可以检验设计的逻辑关系是否准确,而且能够更清楚的看到结果,在这里先将数字温控系统的显示译码电路省略,直接。基于cpld_fpga的数字温度表设计课程设计(编辑修改稿)
相关推荐
在多媒体教室中央控制系统结构框图中,可以看出控制单元( CPLD)是其中最核心的一环, 我们可以选用 Altera 公司目前市场性价比比较高的 MAX II 系列的CPLD。 Altera 推出的 MAX II 器件系列是一款革命性的 CPLD 产品。 它基于突破性的 CPLD 架构,提供业界所有 CPLD 系列中单个 I/O 管脚最低成本 和最小功耗。 这些器件采用新的查表 (LUT)体系
,小车停车。 8 驱动模块设计 ( 1)电路图 ( 2) 工作原理 从 CPLD 输出信号功率很弱,即使在没有其它外在负载是也无法带动电机,所以在实际电路中我们加入了电机驱动芯片提高输入电机信号的功率, 从而能够根据需要控制电机转动。 根据驱动功率大小以及连接电路的简单化要求选择 L298N 为直流电机驱动芯片。 L298N 是 SGS 公司的产品,内部包含 4 通道逻辑驱动电路
0 ]OUTPUT43ENDD6101415CHEKFFINPUTCHOICEINPUTVCCINPUTVCCINPUTVCCINPUTVCCINPUTVCCINPUTVCCINPUTVCCINPUTVCCSTARTCLRTRIGFSTDSEL [ 2 .. 0 ]TF18161719208 11 图 测频 模块逻辑图 测频 /测周期的实现 (1) 令 TF=0,选择等精度测频,然后在
作的主要优点之一就是它的灵活性的这内容管理系统。 研制和发射后的网站维护 Joomla 网站的设计变得非常容易。 提供多国语言的功能也是 Joomla 是一大优势。 Joomla 的安装使用 在本地安装测试 Joomla 时,最好不要用 root 账号( linux 下) 一般安装 Joomla和有的组件时,最好不要安装 sample data。 安装后会导致覆盖了原来的数据库
究现状 国内在胶囊内窥镜方面的研究相对国外起步要晚很多。 但在国家相关政策的扶持下,也取得不少的成果。 如重庆金山 公司研制出具有实时摄像功能的胶囊内窥镜;中国科学院合肥智能机械研究所研制了“基于 CMOS 图像传感器的胶囊内窥镜系统”。 重庆大学也进行了定点释放药丸微系统与消化道采样药丸微系统研究。 上海交通大学开展了“人体全消化道微型介入式检查系统”研究,研发了用于检测压力,温度, PH
使用 EXPLM3S6952 开发板和西门子公司的 TC35i 模块作为中文短消息发送与接收的硬件接口。 TC35i 模块集成了完整的射频电路和 GSM 的基带处理器,提供了功能完备的系统接口。 基于 CoretexM3 的智能家居远程监控系统(论文) 大连理工大学城市学院 12 TC35i 模块配备标准 RS232 串行接口,用户可以通过串口使用 AT指令完成对短信发送与接收的控制。