重庆师范大学期末考核提交材料课程名称: EDA原理及应用院系:物理与电子工程学院时间: 2011—2012学年度第二学期专业:电子信息科学与技术(职教)年级: 2009级培养层次:本科学生姓名:邓桂英学号: 20090520139 成绩:基于FPGA温度传感器DS18B20的Verilog设计基于FPGA温度传感器DS18B20的Verilog设计物理与电子工程学院电子信息科学与技术(职教)专业 2009级邓桂英指导老师何传红摘要:本文介绍了数字温度传感器DS18B20的数据接口和特点, 阐述了一种基于现场可编程门阵列( FPGA)控制DS18B20的方法。
使用FPGA作为控制器,严格控制DS18B20的时序,在单总线上实现读写功能,完成测量数字温度的功能。
将测量的二进制数转换为BCD码, 并通过数码管显示。
系统设计使用Verilog语言。
关键词:现场可编程门阵列;数字温度传感器;硬件描述语言目录0 引言 (4)1 DS18B20的读写方式 (4)1.1 初始化时序: (4)1.2 写时序: (5)1.3 读时序: (5)2 温度控制模块 (6)3 控制DS18B20进行温度测量 (6)4 电源连接 (7)5 温度显示部分 (8)6 软件设计 (8)6.1 Proteus软件简介 (9)6.2 程序流程图设计 (9)6.3 实验内容与步骤 (10)7 结论 (12)参考文献 (13)0 引言温度检测是数据采集的基本任务。
传统的采集方式多为使用温度传感器采集模拟量, 然后通过模/数(A/D)转化得到数字量。
模拟数字采集的方法稳定性较差, 抗干扰能力较弱, 电路连接数量多。
随着电子技术的发展, 在很多应用中, 数字温度传感器已经取代模拟温度传感器。
数字温度传感器以其线路简单、编程设置灵活、工作范围宽、成本低廉、转换精度高、测量速度快、适用于微型封装,结构简单,无需温度校准和调试,可直接连接到微处理器, 在实际应用中广受欢迎。
DS18B20是单总线式的数字温度传感器。
具有线路简单,体积小的特点。
DS18B20支持/一线总线0接口,信息经过一条线进出, 完成读写功能,另两条线为电源和地线。
测量得到的数据是数字量,不需要经过模数转换,从而大大简化了电路。
FPGA 是现场可编程门阵列( Field Programmable Gate Array),20世纪80年代开始使用的大规模可编程数字集成电路。
FPGA充分利用了计算机辅助设计技术进行器件的开发与应用,不仅能自行设计专用集成电路芯片,还可以在计算机上进行功能仿真和实时仿真,及时发现问题,调整电路,改进设计方案。
而且,FPGA 器件采用标准化结构,体积小,集成度高,功耗低,速度快,可无限次反复编程, 因此成为科研产品开发及其小型化的首选器件,且应用极为广泛。
使用FPGA来控制数字温度传感器DS18B20是一个非常好的选择。
1 DS18B20的读写方式由于DS18B20是采用一根I/O总线读写数据, 因此DS18B20对读写数据位有严格的时序要求。
DS18B20遵循相应的通信协议从而保证数据传输的正确性和完整性。
该通信协议定义了多种信号时序: 初始化时序、读时序、写时序。
每一次命令和数据传输都是从主机启动写时序开始,如果要求从机回送数据,在写命令后,主机需启动读时序接收数据。
所有的读、写时序至少需要60us, 且每两个独立的时序之间至少需要1us的恢复时间。
数据和命令的传输都是低位优先。
DS18B20有严格的时序控制:1.1 初始化时序:初始化时序中,控制器发送一个480us-960us的低电平的复位信号,然后释放总基于FPGA温度传感器DS18B20的Verilog设计 DS18B20的读写方式线,也就是总线为高电平,此时,控制器准备接收DS18B20的反应信号,当总线释放后,如果存在DS18B20,那么DS18B20将在15-60us内发送一个持续60-240us的反应信号。
如图1所示。
图1 初始化时序图1.2 写时序:(因为本设计总线上只挂了一个DS18B20,所以不用读取64位序列号,直接发送忽略rom命令skin rom)写时序有写0和写1时序,首先将总线拉低电平,拉低后15us之内必须把所要向DS18B20写的数据传到总线上,DS18B20将在15us-60us内采样总线上的数据,如果为高则写1,为低则写0;写完一次后释放总线。
每两次写数据之间时隙要大于1us。
当主机要生成一个写0时序, 必须把数据线拉到低电平并保持60us。
主机要生成一个写1时序,必须把数据线拉低到低电平然后释放,在写时序开始后的15us内允许数据线拉到高电平, 如图2所示。
图2 写时序图1.3 读时序:当从DS18B20读取数据时, 主机把数据线从高电平拉低到低电平并保持1us, 然后释放总线。
来自DS18B20的输出数据在下降沿后15us有效。
在读取数据结束时I/O引脚应拉回到高电平。
所有时间最短维持期限为60us,如图3所示。
图 3 读时序图完成一位传输的时间为一个时序,因为读写0或1都需要70us,所以设置时序的一个时序是70us。
对FPGA的时钟进行分频,输入时钟频率20MHz,经过20分频得到1MHz,周期为1us, 以70个周期为一个时序进行编程。
2 温度控制模块本设计采用Altera公司的EP2C8Q208C8 cyclone芯片制作相应的硬件电路。
温度控制模块是与DS18B20的接口,用来控制 DS18B20 的操作,并获得数字温度值。
ds 子模块的功能是向DS18B20 输出控制命令,并将 DS18B20 测量得到的数字温度值输出。
其中,d端口用来向DS18B20输出控制信号; cont为三态门inst3的使能信号, 当d 向dq输出控制信号时, cont=1使能,当dq向FPGA返回信号时, cont= 0,为高阻态。
n 和c 为时间计数器。
电路符号如图4所示。
图4 温度控制模块3 控制DS18B20进行温度测量DS18B20的ROM中有64位序列号( 8位产品家族编号、48位 ID号、8位CRC)是出厂前刻好的,这64位序列号具有唯一性, 每个DS18B20的64位序列号均不相同。
本文以单一温度传感器的控制为例, 所以使用Skip ROM(跳过ROM命令),不需要读取64 位序列号。
DS18B20加电之后,处于空闲状态。
首先需要发送复位信号7个时序时间低电平,等待1 个时序后检测总线, 如果是低电平则等待 6个时序,之后发出Skip ROM(跳过ROM命令) , 8个时序发送二进制码为11001100。
发送Convert T(44h,01000100)命令启动温度测量和模拟到数字的转化。
温度转换需要500m s,当转换结束后, DS18B20又回到空闲状态, 温度数据是以带符号位的16-bit补码储存在温度寄存器中。
再次发送复位,接受存在信号,发送跳过 ROM 命令。
发送读暂存器命令 Read Scratchpad(BEh,10111110)之后开始接受 16 位的数据。
对DS18B20 的储存器的操作步骤如表1所示。
表1 DS18B20的操作步骤4 电源连接DS18B20 可使用寄生电源, 可以在I/O引脚处于高电平时“偷”些能量,储存在电容中供正常使用,但进行精确转换时需要I/O引脚保持大电流供电,这样对FPGA芯片引脚造成很大压力, 所以使用 VDD 引脚接外部电源,如图4所示。
图4 DS18B20电源连接图DS18B20 进行温度转换需要很大电流,工作最大电流可达1mA。
使用VDD引脚接外部电源供电的优点在于I/ O线上不需要在温度变换期间保持高电平。
这样就可以有效的保护 FPGA 芯片,也可在单总线上放置多数目的DS18B20。
使用外部电源,通过发出Skip ROM 跳过命令,然后发出Convert T变换命令, 可以完成温度变换。
5温度显示部分DS18B20采集到温度信息是带符号位的16-bit补码,高5位的数值全为S,温度为正值时S=0,负值时S=1;中间10位是数字位,从-55到125;最低1位是小数位,最小分辨率0.5e。
设计一个数字温度子模块, 将中间10位的二进制数转换为3位BCD码表示的十进制数, 再加1位小数位, 共选取4个数码管用来显示从-55.0e到+125.0e的温度数字,如表 2 所示。
表 2 数码管显示表4 位 3 位 2 位 1 位12 5.0000.5000.0- 00.5- 5 5.06 软件设计6.1 Quartus II软件简介Quartus II是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点,对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
功能:Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。
该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。
Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。
改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。
支持MAX7000/MAX3000等乘积项器件。
6.2程序流程图设计FPGA 控制 DS18B20 实现温度转换的程序流程如图 5 所示。
图 5 程序流程图本实验采用状态机控制各时序。
具体请看源码(见附件)。
6.3 实验内容与步骤要实现本设计,需要将[DF2C8]FPGA核心板和[EB‐F2]基础实验板连接在一起,同时使能DS18B20模块和数码管模块:DS18B20 温度传感器使能跳线JP10全部短接,元件安装示意如图6所示(注意方向,半圆形的一边朝板子内部,平面朝外,和板上的图示一致)。