fpga温度测量.docx
- 文档编号:11995363
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:67
- 大小:850.20KB
fpga温度测量.docx
《fpga温度测量.docx》由会员分享,可在线阅读,更多相关《fpga温度测量.docx(67页珍藏版)》请在冰点文库上搜索。
fpga温度测量
毕业论文
FPGA温度测量设计
摘要
温度作为一种最基本的环境参数,与人民的生活有着密切关系。
温度的测量和控制在工业、农业、国防、医疗等各个领域中应用普遍。
温度测量仪是一种常用的检测仪器。
本文首先介绍了DS18B20的工作原理,利用数字温度传感器DS18B20的数据接口特点,展示了FPGA(Field-ProgrammableGateArray,即现场可编程逻辑门阵列)的使用方法以及VerilogHDL(HDL:
HardwareDiscriptionLanguage)语言的编程,完成了基本温度测量功能。
给出了硬件电路和软件设计,此设备具有结构简单、转换速度快、精确性高,扩展性好等优点。
关键词:
FPGA;DS18B20;测温;VerilogHDL语言
DesignoftemperaturemeasurementbasedonFPGA
Abstract
Tenpertureisoneofthemostbasicenvironmentalparameters,andithasacloserelationshipwithpeople'slife.Inindustry,agriculture,nationaldefense,medicalandotherfields,temperaturemeasurementandcontrolwaswidelyused.Thetemperaturemeasuringinstrumentisakindofcommontestinginstrument.
Inthispaper,firstweintroducestheworkprincipleofDS18B20,andthecharacteristicsofdatainterfaceofdigitaltemperaturesensorDS18B20,demonstratedhowtouseFPGA(Field-ProgrammableGateArray)andtheVerilogHDL(HDL:
HardwareDiscriptionLanguage)programminglanguage,accomplishedthefunctionoftemperaturemeasurement.Giventhehardwarecircuitandsoftwaredesign.Thedevicehastheadvantagesofsimplestructure,fasttransformspeed,highaccuracy,goodscalability,andsoon.
KeyWords:
FPGA;DS18B20;Temperaturemeasurement;VerilogHDLlanguage
中文摘要..................................................................................................1
英文摘要..................................................................................................2
1绪论
1.1题目背景意义
温度是表征物体冷热程度的物理量,是国际单位制七个基本物理量之一,作为一种最基本的环境参数,与人民的日常生活有着密切关系。
温度的测量和控制在工业、农业、国防、医疗等各个领域中应用普遍。
温度测量方法也有很多,基本分为两大类,接触式和非接触式。
接触式测温方法包括膨胀式测温、电量式测温、接触式光电,热色测温等几类。
接触测温法在测量时需要与被测物体或介质充分接触,一般测量的是被测对象和传感器的平衡温度,测量时会对被测温度有影响。
非接触式测温方法不需要与被测对象接触,因而不会有干扰,动态特性很好,但会受到被测对象表面状态或测量介质的影响。
电量式测温方法主要利用材料的电势,电阻或其他电性能与温度的单值关系进行温度测量,包括热电偶温度测量、热电阻和热敏电阻的温度测量、集成芯片温度测量等。
随着电子技术的发展,可以将感温元件和相关电子线路集成在一个小芯片上,构成一个小型化,一体化及多功能化的专用集成电路芯片,输出信号可以是电压、频率、或总线数字信号,使用非常方便,适用于便携式设备,有着广泛的适用范围。
FPGA(Filed-ProgrammableGateArray)即现场可编程逻辑门阵列,是在PAL、GAL、CPLD等可编程器件基础上进一步发展的产物,它是作为专用集成电路领域中的一种半制定电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
与单片机或其他技术相比较而言,FPGA芯片内部集成了很多有用的模块,其运行速度快,编程较为简单,适用场合多,拓展性强,降低了设计难度。
DS18B20温度传感器接线方便,封装多样,具有体积小、使用方便、耐磨耐碰等优点,适用于各种狭小空间设备数字测温和控制领域,是各种温度测量场合的首选产品。
在本文中,利用FPGA器件与DS18B20温度传感器设计实现了一种数字温度测量仪,检测室温,与其它系统相比较,此测量仪具有结构简单、抗干扰能力强、精确性高、转换速度快、扩展性好等优点。
通过本设计可以对FPGA技术加深印象,在今后的设计与开发工作中将大有用处。
1.2工作内容
1.2.1技术指标和要求
在本次设计中,我们需要用DS18B20测量实时温度,用四位共阳数码管来显示,要求达到以下几个要求
技术指标:
测量范围:
15~25℃,分辨率:
0.5℃,显示位数:
4位显示带小数点
工作要求:
1.了解温度测量系统设计不同方案,确定方框图;
2.掌握数字传感器及FPGA芯片功能,划出硬件原理图;
3.根据模块划分设计系统软件,学习VHDL或Verilog语言,并在QuartusⅡ环境下仿真,观察正确性;
4.完成电路硬件组装及调试
1.2.2设计的难点重点
1.软件设计部分重点是流程图的设计与各模块编程,难点在于编程的实现以及DS18B20温度传感器与FPGA芯片之间的通信;
2.硬件部分要深入理解DS18B20器件,难点在于各个电路单元单路设计和各单元电路的连接;
3.整个设计重点在于熟练的掌握DS18B20的工作原理和应用QuartusⅡ软件。
2系统方案设计
2.1温度测量原理及方法
温度是表征物体冷热程度的物理量,温度测量仪是利用物质各种物理性质随温度变化的规律,把温度转换为电量并显示的一种仪器,温度的测量和控制已经发展为重要的课题,在工程应用和科学研究等很多场合都十分需要,比如大型饲养场,蔬菜大棚等等。
温度的测量方法有最基本的两种,接触式和非接触式,非接触式又称为辐射测温。
大多数情况下,我们都采用接触式测量方法,利用温度传感器或相关器件,比如基于AT89C51单片机的温度测量和基于ARM的温度测量系统等等,经过比较,决定采用FPGA技术和温度传感器DS18B20组成的系统来实现测量温度的功能。
后面将对其进行阐述。
2.2系统方案及方框图
鉴于使用FPGA,开发板上没有温度传感器,所以需要添加传感器DS18B20,而DS18B20有两种传输途径,一种是无线传输,一种是有线传输。
对于无线传输,优点是测量更加灵活方便,不局限于线的长度,缺点是必须增加外部设备,增加了设计的难度,所以我们采用第二种,有线传输方式,在实现功能的同事设备简单,难度降低。
DS18B20是将采集到的无难度信号转换为9到12位的串行数据,而数码管显示是通过8位并行数据,所以需要对采集到的串行数据进行转化处理送到数码管来显示。
FPGA工作频率是1MHz,开发板上时钟信号是50MHz,所以需要通过编程来实现分频,经过考虑,画出系统方框图(图1)
图2.1系统方案设计
分频:
将50MHz的时钟频率进行分频产生1MHz频率信号,为FPGA器提供正常工作频率。
温度信号采集:
从外界获得温度信号,发送给FPGA控制模块;
FPGA控制:
根据DS18B20所遵循的初始化时序、读时序、写时序等通信协议对DS18B20传感器进行初始化和访问,将从DS18B20读取的二进制温度信息进行处理送给数码管;
显示模块:
从FPGA控制模块获得输出数据,将其译为七段值,在共阳数码管上显示采集到的温度信息。
2.3FPGA技术
FPGA(Field-ProgrammableGateArray,即现场可编程门阵列),它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
是美国Xilinx公司于1984年首先开发的一种通用型用户可编程器件。
FPGA既具有门阵列器件的高集成度和通用性,又有可编程逻辑器件用户可编程的灵活性。
它是作为专用集成电路(ASIC)领域中的一种半制定电路出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的特点。
以硬件描述语言(VHDL或Verilog)所完成的电路设计,可以经过简单的综合与布局,快速烧至FPGA上进行测试,是现在IC设计验证的技术主流。
这些可编程元件可以被用来实现一些基本的逻辑电路(比如AND、OR、NOT、XOR)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编程的元件里也包含记忆元件若触发器或者其他更完整的记忆块。
传统上FPGA只能实现相对较小的逻辑电路,随着工艺技术的提高,FPGA的容量和性能也不断提高,如今FPGA已经被用于实现大的逻辑电路甚至整个系统。
这些大的系统相对于传统上一直作为FPGA市场目标的小逻辑分支电路有着很大的不同。
其中一个最重要的不同就是这些大的系统中包含存储器。
所以,要有效的在FPGA中实现存储器,结构的支持至关重要。
FPGA一般来说比专用集成芯片的速度要慢,无法完成复杂设计,但是功耗低。
他们也有很多优点,比如可以快速成品,可以修改程序或者改正程序中的错误,而且造价十分便宜。
FPGA从诞生以来,经历了从配角到主角的过程,从初期开发应用到限量生产应用再到大批量生产应用的发展历程。
从技术上来说,最初只是逻辑器件,现在强调平台概念,加入数字信号处理、嵌入式处理、高速串行和其他高端技术,从而被应用到更多的领域,让更多学FPGA的人看到了希望,其广阔的前景正是我们选择的原因之一。
由于用户可以迅速对PLD进行编程,按照需求实现特殊功能,与ASIC和ASSP相比,PLD在灵活性、开发成本以及产品及时面市方面更具优势,所以未来FPGA将会是一个非常有前景的行业。
FPGA由于其结构的特殊性,可以重复编程,开发周期较短,越来越受人们的青睐。
其工作原理如下,FPGA采用了逻辑单元阵列LCA(LogicCellArray)的概念,内部包括可配置逻辑模块(ConfigurableLogicBlack),输入输出模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
FPGA是可编程器件,与传统逻辑电路和门阵列相比,FPGA结构不同,FPGA利用小型查找表(16x1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O模块。
由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的连接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
其基本特点是:
采用FPGA设计专用集成电路(ASIC),用户不需要投片生产,就能得到想用的芯片;可做其他全定制或半定制ASIC电路的中试样片;内部有丰富的触发器和I/O引脚;是专用集成电路中设计周期最短、开发费用最低、风险最小的器件之一;采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无需专用的FPGA编程器,只需用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的功能。
所以,FPGA使用起来非常灵活。
FPGA设计也有自己的原则,其原则如下:
1.面积与速度的平衡互换原则
这里的面积指的是FPGA的芯片资源,包括逻辑资源和I/O资源等;这里的速度指的是FPGA工作的最高频率(和DSP或者ARM不同,FPGA设计的工作频率是不固定的,而是和设计本身的延迟紧密相连)。
在实际设计中,使用最小的面积设计出最高的速度是每一个开发者追求的目标,但是“鱼和熊掌不可兼得”,取舍之间展示了一个开发者的智慧。
2.硬件可实现原则
FPGA设计通常会使用HDL语言,比如VerilogHDL或者VHDL。
当采用HDL语言来描述一个硬件电路功能的时候,一定要确保代码描述的电路是硬件可实现的。
VerilogHDL语言的语法与C语言很相似,但是它们之间有着本质的区别。
C语言是基于过程的高级语言,编译后可以在CPU上运行。
而VerilogHDL语言描述的本身就是硬件结构,编译后是硬件电路。
因此,有些语句在C语言的环境中应用是没有问题的,但是在HDL语言环境下就会导致结果不正确或者不理想。
3.同步设计原则
同步电路和异步电路是FPGA设计的两种基本电路结构形式。
异步电路的最大缺点是会产生毛刺。
同步设计的核心电路是由各种触发器构成的。
这类电路的任何输出都是在某个时钟的边沿驱动触发器产生的。
所以,同步设计可以很好地避免毛刺的产生。
随着可编程逻辑技术的不断进步和创新,FPGA已被广泛应用于通信、航天、医疗电子、工业控制等领域。
上90年代后期FPGA市场就已经过一番激烈整合,许多业者不是退出PLD(可程序化逻辑装置)市场,就是出售其PLD业务部门,或将PLD业务部门分立成独立公司,或进行购并等。
时至今日,FPGA市场的主要业者仅剩数家,包括Altera、Xilinx(赛灵思,过去称为:
智霖科技)、Actel、Atmel、Lattice。
FPGA(现场可编程逻辑器件)产品的应用领域已经从原来的通信扩展到消费电子、汽车电子、工业控制、测试测量等广泛的领域。
而应用的变化也使FPGA产品近几年的演进趋势越来越明显:
一方面,FPGA供应商致力于采用当前最先进的工艺来提升产品的性能,降低产品的成本;另一方面,越来越多的通用IP(知识产权)或客户定制IP被引入FPGA中,以满足客户产品快速上市的要求。
此外,FPGA企业都在大力降低产品的功耗,满足业界越来越苛刻的低功耗需求。
由于其现场逻辑功能可重构且具有高集成度、高密度和高性能等特点,因而得到了迅猛发展。
FPGA芯片所包含的资源越来越丰富,可实现的功能也越来越强,这使得FPGA在电子电路设计中越来越重要。
目前FPGA已经渗透到人们日常生活的各个方面,在手机、电视、数码相机、洗衣机、电冰箱、空调,甚至电饭锅、手表里,都有它们的身影。
在工业自动化控制、通信、仪器仪表、汽车、船舶、航空航天、军事设备、消费类电子产品等领域更是它们的天下。
2.4DS18B20温度传感器
2.4.1DS18B20特性介绍
DS18B20数字式温度传感器,与传统的热敏电阻有所不同,它采用集成芯片,单总线技术,能够有效地减小外界的干扰,提高测量的准确性或者精度,同事,它可以直接将温度信号转化成串行数字信号提供给微处理器,由于接口简单,使得数据传输和处理更加简单化,它是部分功能电路的集成,使得总体设计更加简洁,有效地降低了成本,在搭建与焊接电路时,更加省时省力,调试起来也十分方便,从而大大缩短了研发周期。
DS18B20的主要特征:
1.采用单总线接口方式与微处理器连接时,仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
单总线具有经济性好、抗干扰能力强,适合于恶劣环境的现场测温,使用方便;
2.测量范围宽,精度高,DS18B20的测量范围是-55℃~+125℃;在-10℃~85℃范围内,精度为±0.5℃;
3.在使用中不需要任何外围元件;
4.多个DS18B20可以并联在唯一的三线上,实现多点测温;
5.供电方式灵活,DS18B20可以通过内部寄生电路从数据线上获取电源,也可以外界电源;
6.测量参数可配置,DS18B20的测量分辨率可通过程序设定9~12位;
7.负压特性,电源极性接反时温度计不会因发热而烧毁,但不能正常工作;
8.掉电保护功能,DS18B20内部含有EEPROM,在系统掉电后,仍可保存功能。
下面将对其内部结构做以介绍,DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2-2所示。
64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图2-2所示。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
该字节各位的定义如图3-4所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分率。
图2.2DS18B20内部结构图图2.3DS18B20引脚图
2.4.2DS18B20测温原理
DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一个频率稳定的计数脉冲。
高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。
初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。
初始时,计数器1预置的是与-55℃相对应的一个预置值。
以后计数器1每一个循环的预置数都由斜率累加器提供。
为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。
计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。
DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。
在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。
这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5℃,四舍五入最大量化误差为±1/2LSB,即0.25℃。
温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。
测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。
DS18B20测量温度时使用特有的温度测量技术。
DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。
当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。
芯片内部还有斜率累加器,可对频率的非线性度加以补偿。
测量结果存入温度寄存器中。
一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。
2.4.3DS18B20供电方式
DS18B20有两种供电方式,一种是寄生电源强上拉供电方式(图2.4),一种是外部供电方式(图2.5),如下图:
图2.4寄生电源强上拉供电方式电路图
在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:
在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。
为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到E2存储器操作时,用MOSFET把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最10μS内把I/O线转换到强上拉状态。
在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。
图2.5外部电源供电方式电路
在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。
在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85℃。
2.4.4DS18B20时序
DS18B20的工作方式看似简单,只是单线传输,直接解读,其实初始化与读写操作比较复杂,时序要求非常精确,一下将一一介绍
初始化:
使用DS18B20时,首先需将其复位,然后才能执行其它命令。
复位时,主机将数据线拉为低电平并保持480us~960us,然后释放数据线,再由上拉电阻将数据线拉高15us~60us,等待DS18B20发出存在脉冲,存在脉冲有效时间为60us~240us,这样,就完成了复位操作。
其复位时序如图2.6所示
2.6初始化时序2.7写时序
写时隙:
在主机对DS18B20写数据时,先将数据线置为高电平,再变为低电平,该低电平应大于1us。
在数据线变为低电平后15us内,根据写“1”或写“0”使数据线变高或继续为低。
DS18B20将在数据线变成低电平后15us~60us内对数据线进行采样。
要求写入DS18B20的数据持续时间应大于60us而小于120us,两次写数据之间的时间间隔应大于1us。
写时隙的时序如图2.7所示
读时隙:
当主机从DS18B20读数据时,主机先将数据线置为高电平,再变为低电平,该低电平应大于1us,然后释放数据线,使其变为高电平。
DS18B20在数据线从高电平变为低电平的15us内将数据送到数据线上。
主机可在15us后读取数据线。
读时隙的时序如图2.8所示
图2.8读时隙
2.4.5DS18B20操作命令
主机可通过一线端口对DS18B20进行操作,其步骤为:
初始化命令(复位)→ROM功能命令→存储器功能命令→执行/数据,DS18B20的ROM命令有5个,存储器命令有6个。
命令的执行都是由复位、多个读时隙和写时隙基本时序单元组成。
因此,只要将复位、读时隙、写时隙的时序了解清楚,使用DS18B20就比较容易了,其操作指令如下。
1.ReadROM[33H]
2.MatchROM[55H]:
这个是匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20。
只有和64位ROM序列完全匹配的DS18
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- fpga 温度 测量