基于fpga的多功能温度控制器设计(编辑修改稿)内容摘要:
EEPROM TH 用户字节 1* TL 用户字节 2* 配置寄存器 * 图 33 DS18B20 的存储器 北华航天工业学院毕业论文 10 DS18B20 的时序 与 DS18B20 间的任何通讯都需要以初始化序列开始,一个复位脉冲跟着一个存在脉冲表明 DS18B20 已经准备好发送和接收数据。 在初始化序列期间,总线控制器拉低总线并保持 480us 以发出( TX)一个复位脉冲,然后释放总线,进入接收状态( RX)。 单总线由 5K上拉电阻拉高电平。 当 DS18B20 探测到I/O 引脚上的上升沿后, 等待 1560us,然后发出一个由 60240us 低电平信号构成的存在脉冲。 总线控制器初始化写时序后, DS18B20 在一个 15us 到 60us 的窗口内对 I/O 线采样。 如果线上是高电平,就写 1。 低电平就写 0。 图 34 DS18B20 初始化时序图 写时序有写 0 和写 1两种。 总线控制器通过写 1 时序写逻辑 1 到 DS18B20,写时序写逻辑 0到 DS18B20。 所有写时序必须最少持续 60us,包括两个写周期间至少 1us 的恢复时间。 当总线控制器把数据线从高电平拉到低 电平时,写时序开始。 总线控制器要产生一个写时序,必须把数据线拉到低电平后释放,在写时序开始后的15us 释放总线。 当总线被释放的时候, 5k 的上拉电阻将拉高总线。 总控制器要生成一个写 0 时序,必须把数据线拉到低电平并持续保持至少 60us。 所有的读时序必须最少 60us,包括两个读周期间至少 1us 的恢复时间。 当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持 1us,然后总线被释放。 在总线控制器发出读时序后, DS18B20 通过拉高或拉低总线上来传输 1或 0、当传输逻辑 0 结束后,总线将被释放,通过 上拉电阻回到上升沿状态。 从 DS18B20 输出的数据等到时序的下降沿出现后 15us 内有效。 因此,总线控制器在读时序开始后必须停止把 I/O脚驱动为低电平 15us,以读取 I/O 脚状态。 北华航天工业学院毕业论文 11 图 35 DS18B20 读写时序图 DS18B20 的工作原理 DS18B20 测温原理如图 36 所示。 图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。 高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。 计数器 1 和温度寄存器被预置在- 55℃ 所对应的一个基数值。 计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。 图 36 中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。 图 36 DS18B20温度 测量 原理图 北华航天工业学院毕业论文 12 DS18B20 的性能特点 ( 1) 采用单总线专用技术,既可通过串行口线,也可通过其它 I/O 口线 与微机接口,无须经过其它变换电路,直接输出被测温度值( 9 位二进制数,含符号位) ; ( 2) 测温范围为 55℃ —— +155℃,测量分辨率为 ℃ ; ( 3) 内含 64 位经过激光修正的只读存储器 ROM; ( 4) 适配各种系统 ; ( 5) 用户可分别设定各路温度的上、下限; ( 6) 内含寄生电源; ( 7) 零待机功耗 ; ( 8) 可通过数据线供电, 电压范围为 ~ ; ( 9) 负电压特性,电源极性接反时,不会因发热而烧毁,但不能正常工作。 DS18B20 使用过程中的 注意事项 DS1820 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际 应用中也应注意以下几方面的问题: ( 1) 小的硬件开销需要相对复杂的 软件 进行补偿,由于 DS18B20 与微处理器间采用 串行数据传送,因此 ,在对 DS18B20 进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。 在使用 PL/M、 C 等高级语言进行系统程序设计时,对 DS18B20操作部分最好采用汇编语言实现。 ( 2) 在 DS18B20 的有关资料中均未提及单总线上所挂 DS18B20 数量问题,容易 使人误认为可以挂任意多个 DS18B20,在实际应用中并非如此。 当单总线上所挂 DS18B20超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时 要加以注意。 ( 3) 连接 DS18B20 的总线电缆是有长度限制的。 试验中,当采用普通信号电缆传输长度超过 50m时,读取的测温数据将发生错误。 当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达 150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。 这种情况主要是由总线分布电容使信号波形产生畸变造成的。 因此,在用DS1820 进行 长距离测温系统设计时要充分考 虑总线分布电容和阻抗匹配问题。 ( 4) 在 DS18B20 测温程序设计中,向 DS18B20 发出温度转换命令后,程序总要等待 DS18B20 的返回信号, 一旦 某个 DS18B20 接触不好或断线,当程序读该 DS18B20 时,将没有返回信号,程序进入死循环。 这一点在进行 DS18B20 硬件连接和软件设计时也要给予一定的重视。 测温电缆线建议采用屏蔽 4 芯双绞线,其中一对线接地线与信号线,另一组接 VCC 和地线,屏蔽层在源端单点接地。 北华航天工业学院毕业论文 13 第 4 章 Quarters II 软件简介 Quartus II 软件 概况 QuartusII 是 Altera 公司的综合性 PLD/FPGA 开发软件,支持原理图、 VHDL、VerilogHDL 以及 AHDL( Altera Hardware Description Language)等多种设计输入形式,内嵌的综合器以及仿真器,可以完成从设计输入到硬件配置的完整 PLD 设计流程。 QuartusII 可以在 XP、 Linux 以及 Unix 上使用,除了可以使用 TCL 脚本完成设计流程外,提供了完善的用户图形界面设计方式。 具有运行速度快,界面统一,功能集中,易学易用等特点。 QuartusII 支 持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。 对第三方 EDA 工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方 EDA 工具。 此外, QuartusII 通过和 DSP Builder 工具与 Matlab/Simulink 相结合,可以方便地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统( SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为 Altera 的上一代 PLD 设计软件,由于其出色的易用性而得到了广泛的应用。 目前 Altera 已经停止了对 MaxplusII 的更新支持, QuartusII 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。 Altera 在 QuartusII 中包含了许多诸如SignalTapII、 Chip Editor 和 RTL Viewer 的设计辅助工具,集成了 SOPC 和 HardCopy 设计流程,并且继承了 MaxplusII 友好的图形界面及简便的使用方法。 软件界面简介 启动 QuartusⅡ ,单击 开始按扭,在程序菜单中选择 QuartusⅡ ,可以启动QuartusⅡ。 其初始界面如图 41 所示。 新建工程方法如图 42。 在图 42 中的第一个空白处需添入新建工程工作目录的路径,为便于管理, Quartus II软件要求每一个工程项目及其相关文件都统一存储在单独的文件夹中。 第二个空白处需添入新建的工程名称。 第三个空白处需添入的是工程的顶层设计实体名称,要求顶层设计实体名称和新建的工程名称保持一致。 北华航天工业学院毕业论文 14 图 41 软件启动界面 图 42 新建工程界面 QuartusII 的设计流程 QuartusII 软件包括不同的设计输入方法(原理图、文本)、综合仿真工具、时限分析工具、功率评估工具、 PLD 布局布线工具和产品验证工具。 QuartusII 软件允许在设计流程的每个阶段使用 QuartusII 图形用户界面、 EDA 工具界面或命令行界面,用户可以根据北华航天工业学院毕业论文 15 设计的需要选择整个设计流程用一个界面完成还使用多个界面完成。 QuartusII 的设计流程如图 43 所示。 图 43 Quartus II 的设 计流程 将所设计的电路的逻辑功能按照开发系统要求的形式表达出来的过程称为设计输入。 设计输入有如下三种方式: ( 1) 原理图输入方式 适用于对系统及各部分电路很熟悉的场合。 ( 2) 硬件描述语言输入方式 硬件描述语言是用文本方式描述设计,硬件描述语言有 ABEL、 AHDL、 VHDL、 Verilog等,其中 VHDL 和 Verilog 已成为 IEEE 标准。 ( 3) 波形输入方式 QuartusⅡ编译器的主要任务是对设计项目进行检查并完成逻辑综合,同时将项目最终设计结果生成器件的下载文件。 编译开始前,可以先对工程的参数进行设置。 全编译的过程包括分析与综合( Analysis amp。 Synthesis)、适配( Fitter)、编程( Assembler)、时序分析 (Classical Timing Analysis)。 选择 QuartusⅡ主窗口 Process 菜单下 Start Compilation 命令,或者在主窗口的工具栏上直接点击快捷按钮可以进行全编译。 分步编译就是使用对应命令分步执行对应的编译环节,每完成一个编译环节,生成一个对应的编译报告。 分步编译跟全编译一样分为四步: 第一,分析与综合( Analysis amp。 Synthesis) :设计文件进行分析和检查输入文件是否有错误,对应的菜单命令是 QuartusⅡ主窗口 Process 菜单下 Start\Start Analysis amp。 Synthesis,对应的快捷图标是在主窗口的工具栏上的;第二,适配( Fitter) :在适配过程中,完成设计逻辑器件中的布局布线、选择适当的内部互连路径、引脚分配、逻辑元件分配等,对应的菜单命令是 QuartusⅡ主窗口 Process 菜单下 Start\Start Fitter ;(注:两种编译方式引脚分配有所区别 )。 第三,编程( Assembler) :产生多种 形式的器件编程映像文件 ,通过软件下载到目标器件当中去,对应的菜单命令是 QuartusⅡ主窗口 Process菜单下 Start\Start Assemble;最后,时序分析 (Classical Timing Analyzer) :计算给定设计与器件上的延时,完成设计分析的时序分析和所有逻辑的性能分析,菜单命令是 QuartusⅡ主窗口 Process 菜单下 Start\Start Classical Timing Analyzer。 完成以后,编译报告窗口北华航天工业学院毕业论文 16 Compilation Report 会报告工程文件编译的相关 信息,如编译的顶层文件名、目标芯片的信号、引脚的数目等等。 图 44 编译界面 图 45 编译报告 建立仿真波形文件 :在主菜单中选择 File/New 选项,在弹出的 New 对话框中选择Vector Waveform File。 在波形编辑方式下, 执行 Edit 菜单中的 Insert Node or Bus 命令,或者在波形编辑器左边 Name 列的空白处点击鼠标右键,弹出的 Insert Nodeor Bus 对话框。 点击 Insert Nodeor Bus 对话框中的 Node Finder„按钮,弹出 Node Finder 窗口,在此窗口中添加信号节点,之后就可以进行仿真了。 北华航天工业学院毕业论文 17 第 5 章 温度控制器的 设计总流程 温度控制器系统结构图 图 51 是本文所设计的温度控制器的系统结构图,首先温度 信号 经过 DS18B20 温度传感器被采集后输出数字信号,将输出的数字信号送入 FPGA 中对其进行处理(分为 三个部分),通过译码将输入的二进制信号转换为 10 进制信号显示到数码管中并且将输入的二进制信号送入到比较器中与设定的阈值信号相比较,根据比较结果控制输出电平的高低,达到控制外接元器件的作用。 图 51温度控制器系统结构图 DS18B20 温度采集模块的驱动设计 如图 52 为 FPGA 控制 DS18B20 进行温度采集的 系统 流程图。基于fpga的多功能温度控制器设计(编辑修改稿)
相关推荐
uage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计 输入到硬件配置的完整 PLD 设计流程。 2. 具有运行速度快,界面统一,功能集中,易学易用等特点。 3. Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。 4. 可以方便地实现各种 DSP
外,由于整个 SDRAM控制器用 VHDL语言编写,只要对其进行简单的修改就可以满足不同的需求,具有很强的灵活性。 配置方式及其特 点、用途 现场可编程门阵列 FPGA是一种高密度可编程逻辑器件,其逻辑功能是通过把设计生成的数据文件配置进芯片内部的静态配置数据存储器( SRAM)来实现的,具有可重复编程性,可以灵活实现各种逻辑功能。 由于 SRAM的易失性,每次系统上电时必须重新配置数据,即
层次显示窗口或将其带至前台。 :打开平面图编辑器或将其带至前台。 :打开编译器窗口或将其带至前台。 :打开仿真器窗口或将其带至前台。 :打开时序分析器窗口或将其带至前台。 :打开编程器窗口或将其带至前台。 :指定工程名。 :将工程名设置为和当前文件名一样。 :打开当前工程的顶层设计文件或将其带至前台。 :保存所有打开的编译器输入文件
endcase end else begin phase_in_reg=1639。 h0000。 end end always @(posedge clk or negedge rst_n) begin if(!rst_n) begin x0=1639。 h0000。 y0=1639。 h0000。 z0=1639。 h0000。 end else if(ena==139。 b1) begin
及新近开发的 VXI 模块。 由于 VXI 总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用 VXI 系统测量产生复杂的波形, VXI 的系统资源提供了明显的优越性,但由于开发 VXI 模块的周期长,而且需要专门的 VXI 机箱的配套使用,使得波形发生器 VXI 模块仅限于航空、军事及国防等大型领域。 在民用方面, VXI 模块远远不如台式仪器更为方便。 ,台式仪器在走了一段下坡路之后
构体( Architecture) 结构体用于描述所设计芯片的逻辑功能。 它用于描述系统的数据流程、系统的行为,以及系统的数据构成形式。 在该部分, VHDL 语句的主要功能是指明所设计的芯片实现什么具体的功能,以及元件的 内部联系和连线。 通常情况,结构体对于输入输出的关系有三种方式进行描述:行为描述、寄存器传输描述、和结构描述,不同的描述方式仅仅是体现在所编写的语句上