下载此文档

电信专业 毕业论文 基于FPGA温度传感器DS18B20的Verilog设计.doc


文档分类:通信/电子 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
该【电信专业 毕业论文 基于FPGA温度传感器DS18B20的Verilog设计 】是由【世界末末日】上传分享,文档一共【15】页,该文档可以免费在线阅读,需要了解更多关于【电信专业 毕业论文 基于FPGA温度传感器DS18B20的Verilog设计 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。重庆师范大学院系:物理与电子工程学院时间:专业:电子信息科学与技术年级:2009级培养层次:学生姓名:学号:成绩:基于FPGA温度传感器DS18B20的Verilog设计基于FPGA温度传感器DS18B20的Verilog设计物理与电子工程学院电子信息科学与技术,职教,专业2009级邓桂英指导老师何传红摘要:本文介绍了数字温度传感器DS18B20的数据接口和特点,阐述了一种基于现场可编程门阵列(FPGA)控制DS18B20的方法。使用FPGA作为控制器,严格控制DS18B20的时序,在单总线上实现读写功能,完成测量数字温度的功能。将测量的二进制数转换为BCD码,并通过数码管显示。系统设计使用Verilog语言。关键词:现场可编程门阵列;数字温度传感器;硬件描述语言基于FPGA温度传感器DS18B20的Verilog设计目录目录0引言????????????????????????????????????41DS18B20的读写方式……………………………………………………:……………………………………………………………………:………………………………………………………???……………:……………………………………………………???………………52温度控制模块?………………………????????????????????63控制DS18B20进行温度测量……………………………………………………………64电源连接………………………………………………………????……………………75温度显示部分………………………………………………??……………………………86软件设计…………………………………………………………………………………………………………………………?………………………………………………………………………………………………………………………………………………………………………………………107结论…………………………………………………………………………………………12参考文献??????????????????????????????133/13基于FPGA温度传感器DS18B20的Verilog设计引言0引言温度检测是数据采集的基本任务。传统的采集方式多为使用温度传感器采集模拟量,然后通过模/数(A/D)转化得到数字量。模拟数字采集的方法稳定性较差,抗干扰能力较弱,电路连接数量多。随着电子技术的发展,在很多应用中,数字温度传感器已经取代模拟温度传感器。数字温度传感器以其线路简单、编程设置灵活、工作范围宽、成本低廉、转换精度高、测量速度快、适用于微型封装,结构简单,无需温度校准和调试,可直接连接到微处理器,在实际应用中广受欢迎。DS18B20是单总线式的数字温度传感器。具有线路简单,体积小的特点。DS18B20支持/一线总线0接口,信息经过一条线进出,完成读写功能,另两条线为电源和地线。测量得到的数据是数字量,不需要经过模数转换,从而大大简化了电路。FPGA是现场可编程门阵列(FieldProgrammableGateArray),20世纪80年代开始使用的大规模可编程数字集成电路。FPGA充分利用了计算机辅助设计技术进行器件的开发与应用,不仅能自行设计专用集成电路芯片,还可以在计算机上进行功能仿真和实时仿真,及时发现问题,调整电路,改进设计方案。而且,FPGA器件采用标准化结构,体积小,集成度高,功耗低,速度快,可无限次反复编程,因此成为科研产品开发及其小型化的首选器件,且应用极为广泛。使用FPGA来控制数字温度传感器DS18B20是一个非常好的选择。1DS18B20的读写方式由于DS18B20是采用一根I/O总线读写数据,因此DS18B20对读写数据位有严格的时序要求。DS18B20遵循相应的通信协议从而保证数据传输的正确性和完整性。该通信协议定义了多种信号时序:初始化时序、读时序、写时序。每一次命令和数据传输都是从主机启动写时序开始,如果要求从机回送数据,在写命令后,主机需启动读时序接收数据。所有的读、写时序至少需要60us,且每两个独立的时序之间至少需要1us的恢复时间。数据和命令的传输都是低位优先。DS18B20有严格的时序控制:1(1初始化时序:初始化时序中,控制器发送一个480us-960us的低电平的复位信号,然后释放总4/13基于FPGA温度传感器DS18B20的Verilog设计DS18B20的读写方式线,也就是总线为高电平,此时,控制器准备接收DS18B20的反应信号,当总线释放后,如果存在DS18B20,那么DS18B20将在15-60us内发送一个持续60-240us的反应信号。如图1所示。图1初始化时序图1(2写时序:(因为本设计总线上只挂了一个DS18B20,所以不用读取64位序列号,直接发送忽略rom命令skinrom)写时序有写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所示。5/13基于FPGA温度传感器DS18B20的Verilog设计温度控制模块图3读时序图完成一位传输的时间为一个时序,因为读写0或1都需要70us,所以设置时序的一个时序是70us。对FPGA的时钟进行分频,输入时钟频率20MHz,经过20分频得到1MHz,周期为1us,以70个周期为一个时序进行编程。2温度控制模块本设计采用Altera公司的EP2C8Q208C8cyclone芯片制作相应的硬件电路。温度控制模块是与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位序列号均不相同。本文以单一温度传感器的控制为例,所以使用SkipROM(跳过ROM命令),不需要读取64位序列号。DS18B20加电之后,处于空闲状态。首先需要发送复位信号7个时序时间低电平,等待6/13基于FPGA温度传感器DS18B20的Verilog设计电源连接1个时序后检测总线,如果是低电平则等待6个时序,之后发出SkipROM(跳过ROM命令),8个时序发送二进制码为11001100。发送ConvertT(44h,01000100)命令启动温度测量和模拟到数字的转化。温度转换需要500ms,当转换结束后,DS18B20又回到空闲状态,温度数据是以带符号位的16-bit补码储存在温度寄存器中。再次发送复位,接受存在信号,发送跳过ROM命令。发送读暂存器命令ReadScratchpad(BEh,10111110)之后开始接受16位的数据。对DS18B20的储存器的操作步骤如表1所示。表1DS18B20的操作步骤状态数据时隙内容发送RESET7复位脉冲480Ls以上低电平接收PRESENT7存在脉冲h8SkipROM(跳过ROM命令)发送44h8ConvertT(温度变换)接收8一个字节发送RESET7复位脉冲接收PRESENT7存在脉冲h8SkipROM(跳过ROM命令)发送BEh8ReadScratchpad(读暂存器)接收1616个字节4电源连接DS18B20可使用寄生电源,可以在I/O引脚处于高电平时“偷”些能量,储存在电容中供正常使用,但进行精确转换时需要I/O引脚保持大电流供电,这样对FPGA芯片引脚造成很大压力,所以使用VDD引脚接外部电源,如图4所示。图4DS18B20电源连接图7/13基于FPGA温度传感器DS18B20的Verilog设计温度显示部分DS18B20进行温度转换需要很大电流,工作最大电流可达1mA。使用VDD引脚接外部电源供电的优点在于I/O线上不需要在温度变换期间保持高电平。这样就可以有效的保护FPGA芯片,也可在单总线上放置多数目的DS18B20。使用外部电源,通过发出SkipROM跳过命令,然后发出ConvertT变换命令,可以完成温度变换。5温度显示部分DS18B20采集到温度信息是带符号位的16-bit补码,高5位的数值全为S,温度为正值时S=0,负值时S=1;中间10位是数字位,从-55到125;最低1位是小数位,。设计一个数字温度子模块,将中间10位的二进制数转换为3位BCD码表示的十进制数,再加1位小数位,共选取4个数码管用来显示从-+,如表2所示。--,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,8/13基于FPGA温度传感器DS18B20的Verilog设计软件设计易学易用等特点,对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。功能:QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,的协作设计。Quartus平台与Cadence、ExemplarLogic、raphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。支持MAX7000/MAX3000等乘积项器件。。图5程序流程图9/13基于FPGA温度传感器DS18B20的Verilog设计软件设计本实验采用状态机控制各时序。具体请看源码(见附件)。

电信专业 毕业论文 基于FPGA温度传感器DS18B20的Verilog设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人世界末末日
  • 文件大小157 KB
  • 时间2024-03-25