基于FPGA的数字温度计电路的设计与实现.docx
- 文档编号:16886248
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:45
- 大小:579.17KB
基于FPGA的数字温度计电路的设计与实现.docx
《基于FPGA的数字温度计电路的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于FPGA的数字温度计电路的设计与实现.docx(45页珍藏版)》请在冰点文库上搜索。
基于FPGA的数字温度计电路的设计与实现
摘要
本论文介绍了一个基于FPGA的数字温度计电路的设计与实现。
该电路采纳数字温度传感器DS18B20搜集外界环境温度,同时结合该传感器的数据接口和特点,利用FPGA作为操纵器,严格操纵DS18B20的时序,在单总线上实现读写功能,完成测量数字温度的功能。
再将搜集的二进制数转换为BCD码,并通过数码管显示。
该系统软件设计通过VerilogHDL语言进行编译。
这次设计相较于传统的数字温度计具有结构简单,抗干扰能力强,功耗小,靠得住性高,反映时刻短等优势。
关键词:
数字温度计;FPGA;VerilogHDL;DS18B20
ABSTRACT
ThispaperexpoundsadesignandimplementationofadigitalthermometercircuitbasedonFPGA.ThecircuitadoptsthedigitaltemperaturesensorDS18B20collectingtheenvironmenttemperature,combiningwiththecharacteristicsofthesensordatainterface,usingFPGAasthecontroller,strictcontroloverthetimingofDS18B20,readandwritefunctionson1-wire,completethefunctionofdigitaltemperaturemeasurement.ThenmeasurethebinarynumberintoBCDcode,anddisplayitonthedigitaltube.TheprogramdesignofthesystemiscompiledbyVerilogHDLlanguage.Comparedtothetraditionaldigitalthermometer,ithasmanyadvantagessuchassimplerstructure,stronganti-interferenceability,lowconsumption,highreliability,shortreactiontime.
Keywords:
Digitalthermometer,FPGA,VerilogHDL,DS18B20
1绪论
课题研究意义
温度是生活中最大体的环境参数。
温度的监测与操纵,关于生物的生存与生长,工业生产进展都有着非同一样的意义。
温度传感器的应用涉及机械制造、工业进程操纵、汽车电子产品、消费电子产品和专用设备等各个领域。
传统的经常使用温度传感器有热电偶、电阻温度计RTD和NTC热敏电阻等。
但信号调理,模数转换及恒温器等功能全都会增加本钱。
现代集成温度传感器通常包括这些功能,并以其低廉的价钱迅速占据了市场。
DallasSemiconductor公司推出的数字式温度传感器DS18B20采纳数字化一线总线计数具有很多的优良特性。
其一,它将操纵线、地址线、数据线合成一根导线,许诺在同一根导线上挂接多个操纵对象,形成多点一线总线测控系统。
布线施工方便,本钱低廉。
其二,线路上传送的是数字信号,所受的干扰和损耗小,性能好。
本课题旨在分析和设计数字化温度测控系统。
本系统采纳FPGA实现一个数字温度计,采纳Verilog HDL作为开发语言,实现对温度的测量。
由于单片机设计的操纵器生产本钱较低,因此过去人们通常利用这种方式来设计数字温度计。
这种设计方式的缺点是它并非能完成很复杂的功能,只能进行一些简单的运算和操纵,而且设计的操纵器性能也很一样。
因此,在这种情形下,研究人员若是想进一步的提升技术,就不能不冒着捐躯机械性能的风险来扩展外部硬件电路,显然用这种传统的方式设计数字温度计,既具有局限性又具有必然的难度,因此咱们要寻觅一种新的设计方式来替代这种传统的研究方式。
FPGA是Xilinx公司率先提出的概念,又名现场可编程门阵列,它是以PAL等可编程器件为基础进展起来的一种高密度可编程逻辑器件,作为一种半定制电路,FPGA弥补了定制电路的不足的地方,而且在结构上能够实现复杂系统所需要的要紧功能,另外,利用FPGA设计产品也超级便利。
第一用硬件描述语言设计电路,然后通过布局仿真验证明验结果,最后烧入到FPGA中进行现场测试。
因此,用FPGA设计能解决传统设计中碰到的一些不可幸免的难题。
利用FPGA设计产品能够有效幸免很多前期的风险投资,而且在软件时期就能够够准确评估出设计的正确性,从而极大的提高产品开发效率。
综上所述,FPGA是原型设计最理想的载体。
本次课题利用FPGA设计数字温度计是一种新颖的设计方式,它能解决利用单片机这种传统设计方式所带来的能源供需和电路复杂等问题,同时,对温度测量的进展前景有着极为重要的现实研究意义。
课题相关技术的进展
现今电子产品正向功能多元化,体积最小化,功耗最低化的方向进展。
它与传统的电子产品在设计上的显著区别是大量利用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低。
同时,普遍运用现代运算机技术,提高产品的自动化程度和竞争力,缩短研发周期。
EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技功效而形成的一门新技术。
美国ALTERA公司的可编程逻辑器件采纳全新的结构和先进的技术,加上QUARTUSⅡ开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计[1]。
EDA技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述要紧表达方式,以运算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。
最终形成集成电子系统或专用集成芯片的一门新技术[2]。
新产品、新技术层出不穷,电子技术的进展更是日新月异。
能够毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变咱们的生活,改变着咱们的世界。
近些年,随着科技的进展和社会的进步,人们对温度计的要求也愈来愈高,不管在哪里,人们都想明白此刻的温度和天气状况等一些信息,传统的温度计由于它的局限性和不方便性,已不能知足人们的需求。
温度计等待一次革命,不管在性能仍是在样式上它都将发生质的转变,于是数字温度计的时期悄然来临。
课题的要紧研究内容
第一在深切研究了数字温度计的整体原理后,分析其系统的组成,做出了该系统相应的整体框架,然后利用QUARTUSⅡ软件进行开发,用VerilogHDL语言描述其数据搜集模块、数据处置模块、BCD译码模块、动态扫描模块等各功能模块的设计,并利用图形编辑实现各模块的顶层连接。
最后将程序下载到FPGA芯片上,通过数码显示管显示出预期的测量成效。
论文结构安排
本论文各部份内容如下:
第一部份对课题的背景及意义进行研究,了解课题相关技术的进展,最后概述了该课题的要紧内容和研究方式。
第二部份通过与单片机设计方案进行比较,取得用FPGA设计本课题加倍合理的结论,再将AD590与DS18B20温度传感器进行简单比较后,得出用DS18B20更具有优越性,最后介绍本课题最重要的工具QuartusII。
第三部份为系统的硬件设计部份,详细介绍了温度搜集模块,数据处置模块,数码显示模块所用取得硬件资源,并介绍了其在设计中的功能。
第四部份为系统软件设计部份,将整个课题按性质分为各个小模块,用VerilogHDL语言进行设计。
第五部份为整个设计的整体编译、结果与分析。
最后对整个课题进行总结,研究其不足的地方。
2整体方案的论证
方案的选择
整体方案比较
过去数字温度计普遍采纳单片机来实现,只是随着可编程逻辑操纵器件的不断进展,操纵器部份也开始频繁利用可编程逻辑器件来实现功能。
下面别离提供了单片机和FPGA作为操纵器的方案,最后进行比较选择。
方案一:
此方案是基于单片机设计数字温度计,利用的是AT89C51单片机处置各个单元电路的工作。
本方案采纳的是AD590温度传感器,第一通过温度系统搜集相关温度数据,然后通过A/D转换器进行转换,将模拟信号转换成数字信号,并将转换后的数字信号直接送给单片机,再由单片机操纵显示。
其框图如下图。
图基于单片机的数字温度计系统框图
方案二:
此方案以FPGA作为核心操纵设备,利用高精度的数字温度传感器DS18B20进行温度搜集,将搜集到的温度直接以数字信号提供给FPGA操纵器,不需要通过A/D转换,搜集到的温度能够通过数码管显示。
其框图如下图。
图基于FPGA的数字温度计系统框图
温度传感器的选择
温度传感器的要紧作用是感受温度并将感受到的温度转化成可用输出信号,它是温度测量仪器的核心部份。
随着技术的不断进展,温度传感器的品种繁多,下面别离提供了AD590和DS18B20传感器的特性,最后进行比较选择。
方案一:
采纳AD590温度传感器
AD590是AD公司制成的电流输出型两头温度传感器,其正向电流与温度成比例。
在4V到30V电压之间,此器件相当于一个高阻抗的恒流源。
AD590具有精度高、线性好等特点,另外它还能够经受4V正向电压和20V反向电压,因此当器件反接时可不能被损坏。
可是它也有一些自身的缺点,例如需要模拟转数字电路、本钱高、测量点数量少、电路繁多和对线阻有要求等。
方案二:
采纳DS18B20温度传感器
DS18B20是DALLAS公司生产的单总线器件,它具有线路简单、体积小等特点,因此多个DS18B20能够并联在2根或3根线上,只需要一根端口线就能够够和很多DS18B20进行通信。
DS18B20不需要模拟转数字电路,只需要一个元件即可测温,此器件还具有本钱低、精准度高、信号线距离远等特点。
总而言之,DS18B20的优势能够弥补AD590的缺点,DS18B20温度传感器不需要A/D转换直接能够与FPGA芯片相连,因此,这次课题咱们将采纳DS18B20作为温度传感器。
方案论证与确立
通过上述方案的比较,利用单片机作为操纵器件具有原理简单、电路靠得住,易于实现操纵功能等优势,但是,这种情形下的温度测量电路和译码电路是比较复杂且易于犯错,同时电路产生的误差会大大降低设备的寿命;利用FPGA作为核心操纵器件,而且采纳高精度数字温度传感器DS18B20,搜集温度信号时直接由传感器搜集,不需要信号放大和A/D转换,如此做能够大大简化电路连接减少误差,而且利用FPGA芯片能够利用其自身具有的可编程修改的特点幸免了在设计进程中的麻烦,采纳这种方式既能够为设计进程带来便利,又能够增加市场竞争力。
综上所述,本次设计采纳FPGA作为核心器件和选用DS18B20温度传感器实现其功能,且实现结果是基于QuartusII仿真软件进行验证。
QuartusII介绍
Max+plusII作为Altera的上一代PLD设计软件,由于其超卓的易用性而取得了普遍的应用。
目前Altera已经停止了对Max+plusII的更新支持。
QuartusII是Altera公司继Max+plusII以后开发的一种针对其公司生产的系列CPLD/PGFA器件的综合性开发软件,具有从设计输入到器件编程的所有功能,而且为用户提供了一整套设计解决方案,能够完成可编程片上系统的整个开发流程,在利用界面上更友好和人性化[3]。
它的版本不断升级,从版本已经更新到版本,本次课题确实是利用工具软件
Quartus。
该软件有如下几个显著的特点:
QuartusII的优势
该软件界面友好,利用便利,功能壮大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。
该软件具有开放性、与结构无关、多平台、完全集成化、丰硕的设计库、模块化工具等特点,支持原理图、VHDL、VerilogHDL和AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器和仿真器,能够完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII能够在XP、Linux和Unix上利用,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
最重要的是QuartusII还专门容易学习与操作,因此,深受开发者的欢迎。
QuartusII对器件的支持
QuartusII支持Altera公司的MAX3000A系列、MAX7000系列、MAX9000系列、ACEX1K系列、APEX20K系列、APEXII系列、FLEX6000系列、FLEX10K系列,支持MAX7000/MAX3000等乘积项器件。
支持MAXIICPLD系列、Cyclone系列、CycloneII、StratixII系列、StratixGX系列等。
支持IP核,包括了LPM/MegaFunction宏功能模块库,用户能够充分利用成熟的模块,简化了设计的复杂性、加速了设计速度。
另外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,能够方便地实现各类DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
QuartusII对第三方EDA工具的支持
对第三方EDA工具的良好支持也利用户能够在设计流程的各个时期利用熟悉的第三方EDA工具。
Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。
该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。
Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供给商的开发工具相兼容。
改良了软件的LogicLock模块设计功能,增添了FastFit编译选项,推动了网络编辑性能,而且提升了调试能力。
QuartusII设计流程如下图。
图QuartusII设计流程
3.系统的硬件设计
系统的整体结构设计
本次设计的数字温度计要紧3部份组成,温度搜集模块(DS18B20),数据处置模块(FPGA),数码管显示模块。
系统硬件结构框图如图。
图系统硬件结构框图
温度搜集模块
鉴于要测量温度,而开发板没有测量温度的设备,因此最大体是要添加外设数字温度传感器DS18B20。
DS18B20外形与三极管一样,一只脚传输数据,另外两只脚别离接地与高电平使之工作。
DS18B20实时测得的室温将转化成9到12位的串行数据,对串行数据进行“翻译”就能够够得出实时室温。
DS18B20要紧由七部份组成:
高速暂存器、8位CRC发生器、64位光刻ROM、寄生电源、温度传感器、高温触发器TH和低温触发器TL。
64位光刻ROM是温度灵敏元件,其中包括了DS18B20唯一的序列号(唯一的名字)。
DS18B20共有3个引脚:
GND、DQ和VDD[4]。
其测得的数据与温度关系如表所示。
表温度值对应的二进制温度数据
温度(℃)
数据输出(二进制)
数据输出(十六进制)
+125
+85
+25.0625
+
+
0
-55
0000011111010000
0000010101010000
0000000110010001
0000000010100010
0000000000001000
0000000000000000
1111111111111000
1111111101011110
1111111001101111
1111110010010000
07D0h
0550h
0191h
00A2h
0008h
0000h
FFF8h
FF5Eh
FE6Eh
FC90h
图是DS18B20的测温原理。
从图中能够看出随着温度的转变,低温度系数晶振的振荡频率大体可不能发生转变,减法计数器1接收到的信号是用于产生固定频率的脉冲信号;温度对高温度系数晶振的振荡频率的阻碍专门大,因此,减法计数器2的脉冲输入确实是其所产生的信号。
图中事实上还隐含了一个计数门,DS18B20随着计数门的开启,对低温度系数振荡器产生的时钟脉冲计数,最终完成温度测量。
事实上,高温度系数振荡器决定了计数门的开启时刻。
减法计数器1对低温度系数振荡器产生的脉冲信号进行减法计数,若是那个计数器1的预置数为0,那么温度寄放器的值将会在此基础上加1,同时减法计数器1从头装入预置数,并对低温度系数振荡器产生的脉冲信号进行计数,当减法计数器2计数变到0后,温度寄放器的值便停止累加,在这种情形下,所测温度值与温度寄放器中的数值一致。
其中,斜率累加器的作用是修正预置值,只要计数器一直没有被关闭,那么就重复以上的进程,直到温度寄放器与被测温度值一致[5]。
图DS18B20测温原理
由于DS18B20是采纳一根I/O总线读写数据,因此DS18B20对读写数据位有严格的时序要求。
DS18B20遵循相应的通信协议从而保证数据传输的正确性和完整性。
该通信协议概念了多种信号时序:
初始化时序、写时序、读时序。
初始化时序
初始化时序中,操纵器发送一个480us-960us的低电平的复位信号,然后释放总线,也确实是总线为高电平,现在,操纵器预备接收DS18B20的反映信号,当总线释放后,若是存在DS18B20,那么DS18B20将在15-60us内发送一个持续60-240us的反映信号,如下图。
图初始化时序原理图
写时序
因为本设计总线上只挂了一个DS18B20,因此不用读取64位序列号,直接发送忽略rom命令skinrom,如下图。
图写时序原理图
写时序有写1和写2时序,第一将总线拉低电平,拉低后15us之内必需把所要向DS18B20写的数据传到总线上,DS18B20将在15us-60us内采样总线上的数据,若是为高那么写1,为低那么写0;写完一次后释放总线。
每两次写数据之间时隙要大于1us。
读时序
读时序时,总线拉低电平大于1us后,然后释放总线预备接收DS18B20传来的数据,DS18B20将在总线拉低后15us之内将数据传到总线上,因此,操纵器必需在拉低电平然后释放总线15us之内采样总线上的数据。
每次读取一名数据不小于60us,如下图。
图读时序原理图
电源连接
DS18B20可利用寄生电源,能够在I/O引脚处于高电平常获取些能量,贮存在电容中供正常利用,但进行精准转换时需要I/O引脚维持大电流供电,如此对FPGA芯片引脚造成专门大压力,因此利用VDD引脚接外部电源。
DS18B20进行温度转换需要专门大电流,工作最大电流可达1mA。
利用VDD引脚接外部电源供电的优势在于I/O线上不需要在温度变换期间维持高电平。
如此就能够够有效的爱惜FPGA芯片,也可在单总线上放置多数量的DS18B20。
利用外部电源,通过发出SkipROM跳过命令,然后发出ConvertT变换命令,能够完成温度变换。
数据输出
操纵器从DS18B20接收的16位温度值为12位,精度为,DS18B20用12位存贮温值度。
最高位为符号位,正温度S=0如0550H为+85度,0191H为度,FC90H为-55度,如下图。
图温度寄放器格式表
本次实验显示忽略了小数位,只取整数位,那么只取data[10:
4]这7位,即是温度的整数值。
数据处置模块
数据处置是在FPGA内部进行的。
用FPGA对DS18B20进行驱动从而取得温度数据,FPGA需要完成DS18B20的初始化、读取DS18B20的48位ID号、启动DS18B20温度转换、读取温度转化结果。
读取48位ID号和读取温度转换结果进程中,FPGA还要实现CRC校验码的计算,保证通信数据的靠得住性。
这就需要对FPGA进行必然的了解。
FPGA的大体单元是可编程逻辑器件(PLD),PLD的可编程特性使得它能够在IC设计中提供电路仿真和验证,从而大大提高了产品的生产效率和生产速度。
现在,PLD在经历了几个时期后终于进展成了FPGA和CPLD。
在此进展进程中,PLD壮大的功能使得它被普遍应用于生活当中。
20世纪70年代初期,可编程逻辑器件PROM和PLA的显现替代了高本钱的掩膜编程ROM,接着AMD公司又研制出了可编程阵列逻辑器件(ProgrammableArrayLogic,PAL)。
可编程逻辑器件的进展历程
工程师们发明的PROM解决了ROM很难存储代码的问题。
工程师通过PROM提供的一个简单且与芯片有关的编程器,将代码写入芯片中。
烧入后的PROM在断电后能够保留数据。
可是PROM的缺点是它的速度与输入端受到必然的限制。
为了解决那个问题就显现了ProgrammableLogicArray(PLA),许多和“与”阵列相连接的输入端组成了PLA,同时还将“与”阵列的输出连接到“或”阵列,最后产生输出。
PLA结构示用意如所
示。
图PLA的结构示用意
PAL是在PLA的基础上进展起来的一个新版本,它们的一起点是都含有“与”阵列。
不同的地址在于“或”阵列是不是能够编程,其中PLA是可编程的,而PAL是固定的不能够编程的。
很明显,如此的设计限制了参与“或”运算的个数,可是由于输入和输出端都加了反相器,工程师想实现逻辑函数的话,能够选择执行“与”和“或”阵列两种不同的方案,这种做法仍是能够使得PAL能够实现很多布尔表达式。
另外,PAL具有简化编程算法、运算速度提高等优势被适用于中小规模可编程电路中[6]。
可编程逻辑器件的分类
由于可编程逻辑器件供给厂家超级多,而且名称也不尽相同,因此有不同的分类方式。
按PLD结构和复杂度能够将可编程逻辑器件分为简单PLD和复杂PLD(CPLD)两种,通常,它们又被称为低密度PLD和高密度PLD(HPLD)。
低密度PLD具有集成度高、开发周期短、速度快等优势。
但是,由于自身的局限性,设计功能较复杂的用户不适合利用此器件。
其具体的划分如下图。
图PLD结构图
依照PLD可编程特性可将其分为两种类型:
一次可编程、重复可编程。
一次可编程器件的代表器件要紧有熔丝型FPGA、PAL和PROM。
关于重复可编程器件来讲,该器件采纳电擦除的器件寿命会比利用紫外线方式好些,因为用紫外线擦除的器件只能利用几十次。
现在,静态随机存取存储器结构(SRAM)被应用于大部份产品中,因此重复可编程器件能够实现无穷次编程。
按编程元器件能够分为熔丝型开关、EPROM、SRAM、可编程低阻电路和EEPROM五种类型。
假设按内部互联结构能够将可编程逻辑器件分为FPGA和CPLD两种类型。
CPLD属于确信型结构,其内部的互联资源由长度固定的连线组成。
逻辑单元的主体是由“与或阵列”组成的,咱们能够通过“与或阵列”来实现所需要的功能。
FPGA属于统计型结构,其内部的互联资源要比CPLD复杂的多,它包括很多不同长度的连线资源,
每次布线的数据通路延时可能不同。
FPGA的内部逻辑单元是由SRAM组成,通过查找表FPGA能够实现任何逻辑函数[7]。
CP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 数字 温度计 电路 设计 实现
![提示](https://static.bingdoc.com/images/bang_tan.gif)