FPGA温度测量设计毕业论文_第1页
FPGA温度测量设计毕业论文_第2页
FPGA温度测量设计毕业论文_第3页
FPGA温度测量设计毕业论文_第4页
FPGA温度测量设计毕业论文_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业论文fpga温度测量设计摘 要温度作为一种最基本的环境参数,与人民的生活有着密切关系。温度的测量和控制在工业、农业、国防、医疗等各个领域中应用普遍。温度测量仪是一种常用的检测仪器。本文首先介绍了ds18b20的工作原理,利用数字温度传感器ds18b20的数据接口特点,展示了fpga(field-programmable gate array,即现场可编程逻辑门阵列)的使用方法以及verilog hdl(hdl:hardware discription language)语言的编程,完成了基本温度测量功能。给出了硬件电路和软件设计,此设备具有结构简单、转换速度快、精确性高,扩展性好等优点。关

2、键词:fpga;ds18b20;测温;verilog hdl语言design of temperature measurement based on fpgaabstracttenperture is one of the most basic environmental parameters, and it has a close relationship with peoples life. in industry, agriculture, national defense,medical and other fields, temperature measurement and con

3、trol was widely used.the temperature measuring instrument is a kind of common testing instrument.in this paper,first we introduces the work principle of ds18b20,and the characteristics of data interface of digital temperature sensor ds18b20, demonstrated how to use fpga(field-programmable gate array

4、) and the verilog hdl(hdl:hardware discription language)programming language,accomplished the function of temperature measurement. given the hardware circuit and software design.the device has the advantages of simple structure,fast transform speed,high accuracy,good scalability,and so on.key words:

5、 fpga;ds18b20;temperature measurement;verilog hdl language目 录中文摘要.1英文摘要.21绪论11.1题目背景意义11.2工作内容21.2.1技术指标和要求21.2.2设计的难点重点22系统方案设计32.1温度测量原理及方法32.2系统方案及方框图32.3fpga技术42.4ds18b20温度传感器62.4.1ds18b20特性介绍62.4.2ds18b20测温原理72.4.3ds18b20供电方式82.4.4ds18b20时序92.4.5ds18b20操作命令102.5硬件设计112.5.1fpga最小系统硬件原理图112.5.2ds

6、18b20的连接122.5.3数码管显示电路122.5.4电源电路132.5.5时钟电路132.5.6复位电路132.6软件设计流程图133功能模块建立及仿真153.1quartus及vhdl语言153.1.1quartus介绍153.1.2verilog hdl介绍163.1.3quartus的使用173.2分频193.3温度信号采集203.4数码管显示203.5顶层原理图214下载调试及实际测量225设计遇到的问题及误差分析235.1设计遇到的问题及分析235.2误差分析236总结24致 谢25参考文献26毕业设计(论文)知识产权声明27毕业设计(论文)独创性声明281 绪论1.1 题目背

7、景意义温度是表征物体冷热程度的物理量,是国际单位制七个基本物理量之一,作为一种最基本的环境参数,与人民的日常生活有着密切关系。温度的测量和控制在工业、农业、国防、医疗等各个领域中应用普遍。温度测量方法也有很多,基本分为两大类,接触式和非接触式。接触式测温方法包括膨胀式测温、电量式测温、接触式光电,热色测温等几类。接触测温法在测量时需要与被测物体或介质充分接触,一般测量的是被测对象和传感器的平衡温度,测量时会对被测温度有影响。非接触式测温方法不需要与被测对象接触,因而不会有干扰,动态特性很好,但会受到被测对象表面状态或测量介质的影响。电量式测温方法主要利用材料的电势,电阻或其他电性能与温度的单值

8、关系进行温度测量,包括热电偶温度测量、热电阻和热敏电阻的温度测量、集成芯片温度测量等。随着电子技术的发展,可以将感温元件和相关电子线路集成在一个小芯片上,构成一个小型化,一体化及多功能化的专用集成电路芯片,输出信号可以是电压、频率、或总线数字信号,使用非常方便,适用于便携式设备,有着广泛的适用范围。 fpga(filed-programmable gate array)即现场可编程逻辑门阵列,是在pal、gal、cpld等可编程器件基础上进一步发展的产物,它是作为专用集成电路领域中的一种半制定电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。与单片机或其他技术相比

9、较而言,fpga芯片内部集成了很多有用的模块,其运行速度快,编程较为简单,适用场合多,拓展性强,降低了设计难度。ds18b20温度传感器接线方便,封装多样,具有体积小、使用方便、耐磨耐碰等优点,适用于各种狭小空间设备数字测温和控制领域,是各种温度测量场合的首选产品。在本文中,利用fpga器件与ds18b20温度传感器设计实现了一种数字温度测量仪,检测室温,与其它系统相比较,此测量仪具有结构简单、抗干扰能力强、精确性高、转换速度快、扩展性好等优点。通过本设计可以对fpga技术加深印象,在今后的设计与开发工作中将大有用处。1.2 工作内容1.2.1技术指标和要求 在本次设计中,我们需要用ds18b

10、20测量实时温度,用四位共阳数码管来显示,要求达到以下几个要求技术指标:测量范围:1525,分辨率:0.5,显示位数:4位显示带小数点工作要求: 1.了解温度测量系统设计不同方案,确定方框图; 2.掌握数字传感器及fpga芯片功能,划出硬件原理图; 3.根据模块划分设计系统软件,学习vhdl或verilog语言,并在quartus环境下仿真,观察正确性; 4.完成电路硬件组装及调试1.2.2设计的难点重点1.软件设计部分重点是流程图的设计与各模块编程,难点在于编程的实现以及ds18b20温度传感器与fpga芯片之间的通信;2.硬件部分要深入理解ds18b20器件,难点在于各个电路单元单路设计和

11、各单元电路的连接;3.整个设计重点在于熟练的掌握ds18b20的工作原理和应用quartus软件。2 系统方案设计2.1 温度测量原理及方法温度是表征物体冷热程度的物理量,温度测量仪是利用物质各种物理性质随温度变化的规律,把温度转换为电量并显示的一种仪器,温度的测量和控制已经发展为重要的课题,在工程应用和科学研究等很多场合都十分需要,比如大型饲养场,蔬菜大棚等等。温度的测量方法有最基本的两种,接触式和非接触式,非接触式又称为辐射测温。大多数情况下,我们都采用接触式测量方法,利用温度传感器或相关器件,比如基于at89c51单片机的温度测量和基于arm的温度测量系统等等,经过比较,决定采用fpga

12、技术和温度传感器ds18b20组成的系统来实现测量温度的功能。后面将对其进行阐述。2.2 系统方案及方框图鉴于使用fpga,开发板上没有温度传感器,所以需要添加传感器ds18b20,而ds18b20有两种传输途径,一种是无线传输,一种是有线传输。对于无线传输,优点是测量更加灵活方便,不局限于线的长度,缺点是必须增加外部设备,增加了设计的难度,所以我们采用第二种,有线传输方式,在实现功能的同事设备简单,难度降低。ds18b20是将采集到的无难度信号转换为9到12位的串行数据,而数码管显示是通过8位并行数据,所以需要对采集到的串行数据进行转化处理送到数码管来显示。fpga工作频率是1mhz,开发板

13、上时钟信号是50mhz,所以需要通过编程来实现分频,经过考虑,画出系统方框图(图1)分 频温度信号采集数码管显示fpga控制图2.1 系统方案设计分频:将50mhz的时钟频率进行分频产生1mhz频率信号,为fpga器提供正常工作频率。温度信号采集:从外界获得温度信号,发送给fpga控制模块;fpga控制:根据ds18b20所遵循的初始化时序、读时序、写时序等通信协议对ds18b20传感器进行初始化和访问,将从ds18b20读取的二进制温度信息进行处理送给数码管;显示模块:从fpga控制模块获得输出数据,将其译为七段值,在共阳数码管上显示采集到的温度信息。2.3 fpga技术fpga(field

14、programmable gate array,即现场可编程门阵列),它是在pal、gal、cpld等可编程器件的基础上进一步发展的产物。是美国xilinx公司于1984年首先开发的一种通用型用户可编程器件。fpga既具有门阵列器件的高集成度和通用性,又有可编程逻辑器件用户可编程的灵活性。它是作为专用集成电路(asic)领域中的一种半制定电路出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的特点。以硬件描述语言(vhdl或verilog)所完成的电路设计,可以经过简单的综合与布局,快速烧至fpga上进行测试,是现在ic设计验证的技术主流。这些可编程元件可以被用来实现一些基本的

15、逻辑电路(比如and、or、not、xor)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的fpga里面,这些可编程的元件里也包含记忆元件若触发器或者其他更完整的记忆块。传统上fpga只能实现相对较小的逻辑电路,随着工艺技术的提高, fpga的容量和性能也不断提高,如今fpga已经被用于实现大的逻辑电路甚至整个系统。这些大的系统相对于传统上一直作为fpga市场目标的小逻辑分支电路有着很大的不同。其中一个最重要的不同就是这些大的系统中包含存储器。所以,要有效的在fpga中实现存储器,结构的支持至关重要。fpga一般来说比专用集成芯片的速度要慢,无法完成复杂设计,但是功耗低。他们也有很多

16、优点,比如可以快速成品,可以修改程序或者改正程序中的错误,而且造价十分便宜。fpga从诞生以来,经历了从配角到主角的过程,从初期开发应用到限量生产应用再到大批量生产应用的发展历程。从技术上来说,最初只是逻辑器件,现在强调平台概念,加入数字信号处理、嵌入式处理、高速串行和其他高端技术,从而被应用到更多的领域,让更多学fpga的人看到了希望,其广阔的前景正是我们选择的原因之一。由于用户可以迅速对pld进行编程,按照需求实现特殊功能,与asic和assp相比,pld在灵活性、开发成本以及产品及时面市方面更具优势,所以未来fpga将会是一个非常有前景的行业。fpga由于其结构的特殊性,可以重复编程,开

17、发周期较短,越来越受人们的青睐。其工作原理如下,fpga采用了逻辑单元阵列lca(logic cell array)的概念,内部包括可配置逻辑模块(configurable logic black),输入输出模块iob(input output block)和内部连线(interconnect)三个部分。fpga是可编程器件,与传统逻辑电路和门阵列相比,fpga结构不同,fpga利用小型查找表(16x1ram)来实现组合逻辑,每个查找表连接到一个d触发器的输入端,触发器再来驱动其他逻辑电路或驱动i/o模块。由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属

18、连线互相连接或连接到i/o模块。fpga的逻辑是通过内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与i/o间的连接方式,并最终决定了fpga所能实现的功能,fpga允许无限次的编程。其基本特点是:采用fpga设计专用集成电路(asic),用户不需要投片生产,就能得到想用的芯片;可做其他全定制或半定制asic电路的中试样片;内部有丰富的触发器和i/o引脚;是专用集成电路中设计周期最短、开发费用最低、风险最小的器件之一;采用高速cmos工艺,功耗低,可以与cmos、ttl电平兼容。加电时,fpga芯片将eprom中数据读入片内编程ram中,

19、配置完成后,fpga进入工作状态。掉电后,fpga恢复成白片,内部逻辑关系消失,因此,fpga能够反复使用。fpga的编程无需专用的fpga编程器,只需用通用的eprom、prom编程器即可。当需要修改fpga功能时,只需换一片eprom即可。这样,同一片fpga,不同的编程数据,可以产生不同的功能。所以,fpga使用起来非常灵活。fpga设计也有自己的原则,其原则如下:1.面积与速度的平衡互换原则这里的面积指的是fpga的芯片资源,包括逻辑资源和i/o资源等;这里的速度指的是fpga工作的最高频率(和dsp或者arm不同,fpga设计的工 作频率是不固定的,而是和设计本身的延迟紧密相连)。

20、在实际设计中,使用最小的面积设计出最高的速度是每一个开发者追求的目标,但是“鱼和熊掌不可兼得”,取舍之间展示了一个开发者的智慧。2.硬件可实现原则fpga设计通常会使用hdl语言,比如verilog hdl或者vhdl。当采用hdl语言来描述一个硬件电路功能的时候,一定要确保代码描述的电路是硬件可实现的。verilog hdl语言的语法与c语言很相似,但是它们之间有着本质的区别。c语言是基于过程的高级语言,编译后可以在cpu上运行。而verilog hdl语言描述的本身就是硬件结构,编译后是硬件电路。因此,有些语句在c语言的环境中应用是没有问题的,但是在hdl语言环境下就会导致结果不正确或者

21、不理想。3.同步设计原则同步电路和异步电路是fpga设计的两种基本电路结构形式。异步电路的最大缺点是会产生毛刺。同步设计的核心电路是由各种触发器构成的。这类电路的任何输出都是在某个时钟的边沿驱动触发器产生的。所以,同步设计可以很好地避免毛刺的产生。随着可编程逻辑技术的不断进步和创新,fpga已被广泛应用于通信、航天、医疗电子、工业控制等领域。上90年代后期fpga市场就已经过一番激烈整合,许多业者不是退出pld(可程序化逻辑装置)市场,就是出售其pld业务部门,或将pld业务部门分立成独立公司,或进行购并等。时至今日,fpga市场的主要业者仅剩数家,包括altera、xilinx(赛灵思,过去

22、称为:智霖科技)、actel、atmel、lattice。fpga(现场可编程逻辑器件)产品的应用领域已经从原来的通信扩展到消费电子、汽车电子、工业控制、测试测量等广泛的领域。而应用的变化也使fpga产品近几年的演进趋势越来越明显:一方面,fpga供应商致力于采用当前最先进的工艺来提升产品的性能,降低产品的成本;另一方面,越来越多的通用ip(知识产权)或客户定制ip被引入fpga中,以满足客户产品快速上市的要求。此外,fpga企业都在大力降低产品的功耗,满足业界越来越苛刻的低功耗需求。由于其现场逻辑功能可重构且具有高集成度、高密度和高性能等特点,因而得到了迅猛发展。fpga芯片所包含的资源越来

23、越丰富,可实现的功能也越来越强,这使得fpga在电子电路设计中越来越重要。目前fpga已经渗透到人们日常生活的各个方面,在手机、电视、数码相机、洗衣机、电冰箱、空调,甚至电饭锅、手表里,都有它们的身影。在工业自动化控制、通信、仪器仪表、汽车、船舶、航空航天、军事设备、消费类电子产品等领域更是它们的天下。2.4 ds18b20温度传感器2.4.1ds18b20特性介绍 ds18b20数字式温度传感器,与传统的热敏电阻有所不同,它采用集成芯片,单总线技术,能够有效地减小外界的干扰,提高测量的准确性或者精度,同事,它可以直接将温度信号转化成串行数字信号提供给微处理器,由于接口简单,使得数据传输和处理

24、更加简单化,它是部分功能电路的集成,使得总体设计更加简洁,有效地降低了成本,在搭建与焊接电路时,更加省时省力,调试起来也十分方便,从而大大缩短了研发周期。ds18b20的主要特征:1.采用单总线接口方式与微处理器连接时,仅需要一条口线即可实现微处理器与ds18b20的双向通讯。单总线具有经济性好、抗干扰能力强,适合于恶劣环境的现场测温,使用方便;2.测量范围宽,精度高,ds18b20的测量范围是-55+125;在-1085范围内,精度为0.5;3.在使用中不需要任何外围元件;4.多个ds18b20可以并联在唯一的三线上,实现多点测温;5.供电方式灵活,ds18b20可以通过内部寄生电路从数据线

25、上获取电源,也可以外界电源;6.测量参数可配置,ds18b20的测量分辨率可通过程序设定912位;7.负压特性,电源极性接反时温度计不会因发热而烧毁,但不能正常工作;8.掉电保护功能,ds18b20内部含有eeprom,在系统掉电后,仍可保存功能。下面将对其内部结构做以介绍,ds18b20采用脚pr35封装或脚soic封装,其内部结构框图如图2-2所示。64位rom的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的crc检验码,这也是多个ds18b20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。ds18b20温度传感器的内部

26、存储器还包括一个高速暂存和一个非易失性的可电擦除的eeram。高速暂存ram的结构为字节的存储器,结构如图2-2所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。ds18b20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3-4所示。低位一直为,是工作模式位,用于设置ds18b20在工作模式还是在测试模式,ds18b20出厂时该位被设置为,用户要去改动,r1和0决定温度转换的精度位数,来设置分率。 图2.2 ds18b20内部结构图 图2.3 ds18b20引脚图2.4.2

27、ds18b20测温原理ds18b20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一个频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。初始时,温度寄存器被预置成-55,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1,这个过程重复进行,直到计数器2计数到0时便停止。初始时,计数器1预置的是与-55相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度

28、寄存器寄存值增加1计数器所需要的计数个数。ds18b20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25进行比较,若低于0.25,温度寄存器的最低位就置0;若高于0.25,最低位就置1;若高于0.75时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5,四舍五入最大量化误差为1/2lsb,即0.25。温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束时,这9位数据转存到暂存存储器的前两个字节中,

29、符号位占用第一字节,8位温度数据占据第二字节。ds18b20测量温度时使用特有的温度测量技术。ds18b20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,ds18b20进行计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度寄存器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。2.4.3ds18b20供电方式ds18b20有两种供电方式,一种是寄生电源强上拉供电方式(图2.4),一种是外部供电方式(图2.5),如下图:图2.4 寄

30、生电源强上拉供电方式电路图在寄生电源供电方式下,ds18b20从单线信号线上汲取能量:在信号线dq 处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。为了使 ds18b20 在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到 e2存储器操作时,用mosfet 把 i/o 线直接拉到 vcc 就可提供足够的电流,在发出任何涉及到拷贝到e2存储器或启动温度转换的指令后,必须在最10s内把i/o线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺点就是要多占用一根i/o口线进行强上拉

31、切换。 图2.5 外部电源供电方式电路在外部电源供电方式下,ds18b20工作电源由vdd引脚接入,此时i/o线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个 ds18b20传感器,组成多点测温系统。在外部供电的方式下,ds18b20的gnd引脚不能悬空,否则不能转换温度,读取的温度总是85。2.4.4ds18b20时序ds18b20的工作方式看似简单,只是单线传输,直接解读,其实初始化与读写操作比较复杂,时序要求非常精确,一下将一一介绍初始化:使用ds18b20时, 首先需将其复位, 然后才能执行其它命令。复位时, 主机将数据线拉为低电平并保持48

32、0us960us,然后释放数据线, 再由上拉电阻将数据线拉高15us60us,等待ds18b20发出存在脉冲, 存在脉冲有效时间为60 us240us,这样,就完成了复位操作。其复位时序如图2.6所示2.6 初始化时序 2.7 写时序写时隙:在主机对ds18b20写数据时, 先将数据线置为高电平, 再变为低电平, 该低电平应大于1us。在数据线变为低电平后15us内,根据写“1”或写“0” 使数据线变高或继续为低。ds18b20将在数据线变成低电平后15us 60us内对数据线进行采样。要求写入ds18b20的数据持续时间应大于60us而小于120us,两次写数据之间的时间间隔应大于1us。写

33、时隙的时序如图2.7所示读时隙:当主机从ds18b20读数据时, 主机先将数据线置为高电平, 再变为低电平, 该低电平应大于1us,然后释放数据线,使其变为高电平。ds18b20在数据线从高电平变为低电平的15us内将数据送到数据线上。主机可在15us后读取数据线。读时隙的时序如图2.8所示图2.8 读时隙2.4.5ds18b20操作命令主机可通过一线端口对ds18b20进行操作,其步骤为:初始化命令(复位)rom功能命令存储器功能命令执行/数据,ds18b20的rom命令有5个,存储器命令有6个。命令的执行都是由复位、多个读时隙和写时隙基本时序单元组成。因此,只要将复位、读时隙、写时隙的时序

34、了解清楚, 使用ds18b20就比较容易了, 其操作指令如下。1.read rom33h 2.match rom55h:这个是匹配rom命令,后跟64位rom序列,让总线控制器在多点总线上定位一只特定的ds18b20。只有和64位rom序列完全匹配的ds18b20才能响应随后的存储器操作。所有和64位rom序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。3.skip rom0cch:这条命令允许总线控制器不用提供64位rom编码就使用存储器操作命令,在单点总线情况下,可以节省时间。如果总线上不止一个从机,在skip rom命令之后跟着发一条读命令,由于多个从机同

35、时传送信号,总线上就会发生数据冲突(漏极开路下拉效果相当于相“与”)。4.search rom0f0h:当一个系统初次启动时,总线控制器可能并不知道单线总线上有多个器件或它们的64位编码,搜索rom命令允许总线控制器用排除法识别总线上的所有从机的64位编码。5.alarm search0ech:这条命令的流程和search rom相同。然而,只有在最近一次测温后遇到符合报警条件的情况,ds18b20才会响应这条命令。报警条件定义为温度高于th或低于tl。只要ds18b20不掉电,报警状态将一直保持,知道再一次测得的温度值达不到报警条件。6.write scratchpad4eh:这个命令向ds

36、18b20的暂存器th和tl中写入数据。可以在任何时刻发出复位命令来中止写入。7.read scratchpad0beh:这个命令读取暂存器的内容。读取将从第1个字节开始,一直进行下去,直到第9(crc)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。8.copy scratchpad48h:这个命令把暂存器的内容拷贝到ds18b20的erom存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而ds18b20又忙于把暂存器拷贝到e存储器,ds18b20就会输出一个0,如果拷贝结束的话,ds18b20则输出1。如果使用寄

37、生电源,总线控制器必须在这条命令发出后立即启动强上拉并保持10ms。9.convert t44h:这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后ds18b20保持等待状态。如果总线控制器在这条命令之后跟着发出时间隙,而ds18b20又忙于做时间转换的话,ds18b20将在总线上输出0,若温度转换完成,则输出1,。如果使用寄生电源,总线控制必须在发出这条命令后立即启动强上拉,并保持500ms以上时间。10.recall e:这条命令把报警触发器里的值拷贝回暂存器。这种拷贝操作在ds18b20上电时自动执行,这样器件一上电,暂存器里马上就存在有效的数据了。若在这条命令发出之后发出

38、读数据隙,器件会输出温度转换忙的标识:0为忙,1为完成。11.read power supply0b4h:若把这条命令发给ds18b20后发出读时间隙,器件会返回它的电源模式:0为寄生电源,1为外部电源。2.5 硬件设计设计采用fpga器件和ds18b20实现温度测量,核心芯片采用altera公司生产的cycloneii系列ep2c8q208c8芯片,将ds18b20与fpga开发板焊接在一起,同时使能温度传感器和数码管显示模块,元件安装示意图如图2.9所示,该系统要正常工作,还需要电源电路、下载电路、时钟电路,复位电路等单元电路支持,下面将对其进行说明。 图2.9 fpga开发板与ds18b

39、20的连接2.5.1fpga最小系统硬件原理图 fpga测温最小系统主要由fpga器件、时钟电路、电源电路、显示电路等组成。硬件原理图如图2.10图2.10 fpga测温最小系统原理图2.5.2ds18b20的连接利用开发板与ds18b20组成温度测量模块,原理图如图2.10所示。在设计温度传感器部分时,由于ds18b20进行精确转换时需要i/o引脚保持大电流供电,这样对fpga芯片引脚造成很大压力,所以要使ds18b20的引脚接外部电源。该电路使用外部供电方式,外部电源供电方式工作可靠,稳定,抗干扰能力强,设计起来也是十分方便。图2.11 ds18b20原理图2.5.3数码管显示电路开发板上

40、有8位共阳七段数码管。当位码驱动信号为低电平0时,对应的数码管才能操作;当段码驱动信号为低电平0时,对应的段码点亮。如图2.11图2.12 数码管显示电路2.5.4电源电路电源通过接口,通过功能板由低压差线性稳压器lms1117-3.3和lm1117-adj转换成稳定的1.2v,为fpga提供内部逻辑阵列电源、3.3v电压为fpga提供io电源和其它的芯片及电路的工作电源,并在核心板上加入滤波电容来增加系统稳定性。如图2.12所示图2.13 fpga电源电路2.5.5时钟电路该开发板采用50mhz有源贴片晶体为系统提供运行时钟。ep2c8q208c8开发板为客户提供8个clk 时钟使用,这些时

41、钟都可以用作普通的输入引脚。电路原理如图2.13所示。 图2.14 时钟电路 图2.15 复位电路2.5.6复位电路用户可以通过编程实现复位功能,复位按键放置在功能板上左下角图,硬件原理如图2.14所示。2.6 软件设计流程图 ds18b20采用一根i/o总线读写数据,有严格的读写时序要求,需要多次进行读写,设计采用状态机控制时序,fpga控制ds18b20实现温度转换的程序流程如图2.15所示。 开始时钟分频计数器计数发送复位脉冲应答发送skip rom发送convert t等待温度转换发送复位脉冲应答发送skip rom发送read scratchpad16位数据数码显示图2.16 软件设

42、计流程图3 功能模块建立及仿真3.1 quartus及vhdl语言3.1.1quartus介绍quartus是altera公司提供的综合性pld/fpga开发软件,属于平台化设计工具。用户可以在quartus中实现整个数字集成电路的fpga设计流程。它在21世纪初推出,是altera前一代fpga/cpld集成开发环境max+plus的更新换代产品。支持原理图、vhdl、veriloghdl以及ahdl(altera hardware description language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整pld设计流程。quartus可以在

43、xp、linux以及unix上使用,除了可以使用tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。quartus支持altera的ip核,包含了lpm/megafunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方eda工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方eda工具。此外,quartus 通过和dsp builder工具与matlab/simulink相结合,可以方便地实现各种dsp应用系统;支持altera的片上可编程系统(sopc)开发,集系统级设计、嵌

44、入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。max plus作为altera的上一代pld设计软件,由于其出色的易用性而得到了广泛的应用。目前altera已经停止了对max plus的更新支持,quartus与之相比不仅仅是支持器件类型的丰富和图形界面的改变。altera在quartus中包含了许多诸如signaltap、chip editor和rtl viewer的设计辅助工具,集成了sopc和hardcopy设计流程,并且继承了max plus友好的图形界面及简便的使用方法。altera quartus作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越

45、来越受到数字系统设计者的欢迎。其功能十分强大,quartus提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、veriloghdl、ahdl和vhdl完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;logiclock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用signaltap逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编

46、译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的edif网表文件、vhdl网表文件和verilog网表文件;能生成第三方eda软件使用的vhdl网表文件和verilog网表文件。3.1.2 verilog hdl介绍verilog hdl(hdl:hardware discription language)是一种硬件描述语言,是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。verilog hdl和vhdl是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来

47、的。前者由gateway design automation公司(该公司于1989年被cadence公司收购)开发。两种hdl均为ieee标准。verilog hdl是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。verilog hdl语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用verilog仿真器进行验证。语言从c编程语言中继承了多种操作符和结构。verilog hdl提供了

48、扩展的建模能力,其中许多扩展最初很难理解。但是,verilog hdl语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。verilog hdl 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,verilog hdl语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。verilog hdl就是在用途最广泛的c语言的基础上发展起来的一种硬件描述语言,它是由g

49、da(gateway design automation)公司的philmoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年moorby推出它的第三个商用仿真器verilog-xl,获得了巨大的成功,从而使得verilog hdl迅速得到推广应用。1989年cadence公司收购了gda公司,使得veriloghdl成为了该公司的独家专利。1990年cadence公司公开发表了verilog hdl,并成立lvi组织以促进verilog hdl成为ieee标准,即ieee standard 1364-1995.verilog

50、 hdl的最大特点就是易学易用,如果有c语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把verilog hdl内容安排在与asic设计等相关课程内部进行讲授,由于hdl语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。与之相比,vhdl的学习要困难一些。但verilog hdl较自由的语法,也容易造成初学者犯一些错误,这一点要注意。下面列出的是verilog硬件描述语言的主要能力:基本逻辑门,例如and、or和nand等都内置在语言中;用户定义原语( udp)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。 开关级基

51、本结构模型,例如pmos 和nmos等也被内置在语言中;提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式使用过程化结构建模;数据流方式使用连续赋值语句方式建模;结构化方式使用门和模块实例语句描述建模。verilog hdl中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。能够描述层次设计,可使用模块实例结构描述任何层次。设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。verilog hdl不再是某些公司的专有语言而是i e e

52、 e标准。人和机器都可阅读verilog 语言,因此它可作为e d a的工具和设计者之间的交互语言。verilog hdl语言的描述能力能够通过使用编程语言接口( p l i)机制进一步扩展。p l i是允许外部函数访问verilog 模块内信息、允许设计者与模拟器交互的例程集合。设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级( rt l)到算法级,包括进程和队列级。能够使用内置开关级原语在开关级对设计完整建模。同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。verilog hdl 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也

53、能够用于与期望值比较,在不匹配的情况下,打印报告消息。在行为级描述中, verilog hdl不仅能够在rt l级上进行设计描述,而且能够在体系结构级描述及其算 法级行为上进行设计描述。能够使用门和模块实例化语句在结构级进行结构描述。在verilog hdl 的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。verilog hdl 还具有内置逻辑函数,例如&(按位与)和|(按位或)。对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。可以显式地对并发和定时进行建模。提供强有力的文件读写能力。语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同

54、的结果;例如,事件队列上的事件顺序在标准中没有定义。3.1.3 quartus的使用quartus是一种用altera的专业eda工具,支持原理图输入,hdl硬件描述语言的输入等多种输入方式,相比大家也都学过数字电子技术基础(数电),实验课的时候用的就是这个工具,当时我们就是使用原理图输入的方式来进行数字系统的设计的,这是一种属于上世纪七八十年代的数字系统设计方式,现在我们学的就是硬件描述语言的输入方式,利用类似高级程序的设计方法来设计出数字系统。这是一种上世纪九十年代开始兴起并会在当前有巨大发展,更加是未来半个世纪内会成为数字系统设计最重要的设计方式,接下来我们需要对这种智能的eda工具进行

55、初步的学习。使大家以后的设计更加容易上手。图3.1 quartus主界面第一步:打开主界面如图3.1所示快捷工具栏:提供设置(setting),编译(compile)等快捷方式,方便用户使用,用户也可以在菜单栏的下拉菜单找到相应的选项。菜单栏:软件所有功能的控制选项都可以在其下拉菜单中找到。编译及综合的进度栏:编译和综合的时候该窗口可以显示进度,当显示100%表示编译或者综合通过。信息栏:编译或者综合整个过程的详细信息显示窗口,包括编译通过信息和报错信息。第二步:新建工程(filenew project wizard)1工程名称:图3.2 工程名与文件名第一行为工程保存路径,第二行为工程名,第

56、三行为顶层模块名,须跟工程名相同,在文件输入时,顶层模块必须和工程字相同(图3.2)完成后next直接到窗口2。2.选择芯片型号:在family选择芯片系列型号,以本设计为例,选择cyclone找到ep2c8q208c8芯片,选择完成后finish,新工程建立完成。图3.3芯片选择第三步:编程及检错,在工具栏file下点击new,新建一个veriloghdl文件,在此可以将已经编写完成的程序直接粘贴在工作区(注意实体名与工程名要相同),这样便提高了工作效率。将文件保存。保存后,加点主界面按钮,完成后,无错误点击确定,有错误进行修改。第四步:锁定引脚,设置管脚:单击主界面assignment按钮pins,在弹出的界面设定对应管脚(node name为端口名,location为管脚),双击location选择您需要的管脚,如图3.4所示图3.4 设置管

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论