摘要
本论文介绍了一个基于FPGA的数字温度计电路的设计与实现。该电路采用数字温度传感器DS18B20采集外界环境温度,同时结合该传感器的数据接口和特点,使用FPGA作为控制器,严格控制DS18B20 的时序 ,在单总线上实现读写功能,完成测量数字温度的功能。再将采集的二进制数转换为BCD码 ,并通过数码管显示。该系统软件设计通过 Verilog HDL 语言进行编译。这次设计相比于传统的数字温度计具有结构简单,抗干扰能力强,功耗小,可靠性高,反应时间短等优点。
关键词:数字温度计;FPGA ;Verilog HDL ;DS18B20
ABSTRACT
This paper expounds a design and implementation of a digital thermometer circuit based on FPGA. The circuit adopts the digital temperature sensor DS18B20 collecting the environment temperature, combining with the characteristics of the sensor data interface, using FPGA as the controller, strict control over the timing of DS18B20, read and write functions on 1-wire, complete the function of digital temperature measurement. Then measure the binary number into BCD code, and display it on the digital tube. The program design of the system is compiled by Verilog HDL language. Compared to the traditional digital thermometer, it has many advantages such as simpler structure, strong anti-interference ability, low consumption, high reliability, short reaction time.
Keywords:Digital thermometer, FPGA, Verilog HDL, DS18B20
山东科技大学学士学位论文 目录
目录
1绪论 ................................................................................................. 1
1.1课题研究意义 ............................................... 1 1.2课题相关技术的发展 ......................................... 2 1.3课题的主要研究内容 ......................................... 3 1.4论文结构安排 ............................................... 3
2 总体方案的论证 .......................................................................... 5
2.1 方案的选择 ................................................ 5 2.2 方案论证与确立 ............................................ 7 2.3 Quartus II介绍 ............................................ 7
3. 系统的硬件设计 ......................................................................... 10
3.1 系统的总体结构设计 ........................................ 10 3.2 数据处理模块 .............................................. 15 3.3数码管显示模块 ............................................ 22
4 系统总体模块设计 .................................................................... 24
4.1 Verilog HDL语言介绍 ...................................... 24 4.2 软件程序设计 .............................................. 25
5整体编译结果与分析 ................................................................... 30
5.1 整体编译 ................................................. 30 5.2 程序的下载调试 ............................................ 31
6 设计中遇到的问题 ...................................................................... 33
山东科技大学学士学位论文 目录
7结束语 ........................................................................................... 34 参考文献 .......................................................................................... 35 附录 .................................................................................................. 36
附录A系统总体电路图 .......................................... 37 附录B 系统总程序 ............................................. 37 附录 C 外文翻译 ............................................... 49
山东科技大学学士学位论文 绪论
1绪论
1.1课题研究意义
温度是生活中最基本的环境参数。温度的监测与控制,对于生物的生存与生长,工业生产发展都有着非同一般的意义。温度传感器的应用涉及机械制造、工业过程控制、汽车电子产品、消费电子产品和专用设备等各个领域。传统的常用温度传感器有热电偶、电阻温度计RTD和NTC热敏电阻等。但信号调理,模数转换及恒温器等功能全都会增加成本。现代集成温度传感器通常包含这些功能,并以其低廉的价格迅速占据了市场。Dallas Semiconductor 公司推出的数字式温度传感器DS18B20采用数字化一线总线计数具有很多的优异特性。其一,它将控制线、地址线、数据线合成一根导线,允许在同一根导线上挂接多个控制对象,形成多点一线总线测控系统。布线施工方便,成本低廉。其二,线路上传送的是数字信号,所受的干扰和损耗小,性能好。本课题旨在分析和设计数字化温度测控系统。本系统采用FPGA实现一个数字温度计,采用Verilog HDL作为开发语言,实现对温度的测量。
由于单片机设计的控制器生产成本较低,所以过去人们通常使用这种方法来设计数字温度计。这种设计方法的缺点是它并不能完成很复杂的功能,只能进行一些简单的运算和控制,并且设计的控制器性能也很一般。因此,在这种情况下,研究人员要是想进一步的提升技术,就不得不冒着牺牲机器性能的风险来扩展外部硬件电路,显然用这种传统的方法设计数字温度计,既具有局限性又具有一定的难度,所以我们要寻找一种新的设计方法来替代这种传统的研究方法。
FPGA是Xilinx公司率先提出的概念,又名现场可编程门阵列,它是以
1
山东科技大学学士学位论文 绪论
PAL等可编程器件为基础发展起来的一种高密度可编程逻辑器件,作为一种半定制电路,FPGA弥补了定制电路的不足之处,并且在结构上能够实现复杂系统所需要的主要功能,此外,使用FPGA设计产品也非常便利。首先用硬件描述语言设计电路,然后经过布局仿真验证实验结果,最后烧入到FPGA中进行现场测试。因此,用FPGA设计能解决传统设计中遇到的一些不可避免的难题。利用FPGA设计产品能够有效避免很多前期的风险投资,并且在软件阶段就可以准确评估出设计的正确性,从而极大的提高产品开发效率。
综上所述,FPGA是原型设计最理想的载体。本次课题使用FPGA设计数字温度计是一种新颖的设计方法,它能解决使用单片机这种传统设计方法所带来的能源供需以及电路复杂等问题,同时,对温度测量的发展前景有着极其重要的现实研究意义。
1.2课题相关技术的发展
当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显著区别是大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低。同时,广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。
美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上QUARTUSⅡ开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计[1]。
EDA技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式
2
山东科技大学学士学位论文 绪论
设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,
编程下载等工作。最终形成集成电子系统或专用集成芯片的一门新技术[2]。
新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。近些年,随着科技的发展和社会的进步,人们对温度计的要求也越来越高,不管在哪里,人们都想知道此刻的温度和天气状况等一些信息,传统的温度计由于它的局限性以及不方便性,已不能满足人们的需求。温度计等待一次,不管在性能还是在样式上它都将发生质的变化,于是数字温度计的时代悄然来临。
1.3课题的主要研究内容
首先在深入研究了数字温度计的总体原理后,分析其系统的组成,做出了该系统相应的整体框架,然后利用QUARTUSⅡ软件进行开发,用Verilog HDL语言描述其数据采集模块、数据处理模块、BCD译码模块、动态扫描模块等各功能模块的设计,并利用图形编辑实现各模块的顶层连接。最后将程序下载到FPGA芯片上,通过数码显示管显示出预期的测量效果。
1.4论文结构安排
本论文各部分内容如下:
第一部分对课题的背景及意义进行研究,了解课题相关技术的发展,最后概述了该课题的主要内容和研究方法。
第二部分通过与单片机设计方案进行比较,得到用FPGA设计本课题更加合理的结论,再将AD590与DS18B20温度传感器进行简单比较后,得出用DS18B20更具有优越性,最后介绍本课题最重要的工具Quartus II。
第三部分为系统的硬件设计部分,详细介绍了温度采集模块,数据处理模块,数码显示模块所用得到硬件资源,并介绍了其在设计中的功能。
3
山东科技大学学士学位论文 绪论
第四部分为系统软件设计部分,将整个课题按性质分为各个小模块,用 Verilog HDL语言进行设计。
第五部分为整个设计的总体编译、结果与分析。 最后对整个课题进行总结,研究其不足之处。
4
山东科技大学学士学位论文 总体方案的论证
2 总体方案的论证
2.1 方案的选择
2.1.1 总体方案比较
过去数字温度计普遍采用单片机来实现,不过随着可编程逻辑控制器件的不断发展,控制器部分也开始频繁使用可编程逻辑器件来实现功能。下面分别提供了单片机和FPGA作为控制器的方案,最后进行比较选择。
方案一:此方案是基于单片机设计数字温度计,使用的是ATC51单片机处理各个单元电路的工作。本方案采用的是AD590温度传感器,首先通过温度系统采集相关温度数据,然后经过A/D转换器进行转换,将模拟信号转换成数字信号,并将转换后的数字信号直接送给单片机,再由单片机控制显示。其框图如图2.1所示。
图2.1 基于单片机的数字温度计系统框图
方案二:此方案以FPGA作为核心控制设备,利用高精度的数字温度传感器DS18B20进行温度采集,将采集到的温度直接以数字信号提供给
5
山东科技大学学士学位论文 总体方案的论证
FPGA控制器,不需要经过A/D转换,采集到的温度可以通过数码管显示。其框图如图2.2所示。
图2.2 基于FPGA的数字温度计系统框图
2.1.2 温度传感器的选择
温度传感器的主要作用是感受温度并将感受到的温度转化成可用输出信号,它是温度测量仪器的核心部分。随着技术的不断发展,温度传感器的品种繁多,下面分别提供了AD590和DS18B20传感器的特性,最后进行比较选择。
方案一:采用AD590温度传感器
AD590是AD公司制成的电流输出型两端温度传感器,其正向电流与温度成比例。在4V到30V电压之间,此器件相当于一个高阻抗的恒流源。AD590具有精度高、线性好等特点,另外它还可以承受4V正向电压和20V反向电压,所以当器件反接时不会被损坏。但是它也有一些自身的缺点,例如需要模拟转数字电路、成本高、测量点数量少、电路繁多以及对线阻有要求等。
方案二:采用DS18B20温度传感器
6
山东科技大学学士学位论文 总体方案的论证
DS18B20是DALLAS公司生产的单总线器件,它具有线路简单、体积小等特点,因此多个DS18B20可以并联在2根或3根线上,只需要一根端口线就可以和很多DS18B20进行通信。DS18B20不需要模拟转数字电路,只需要一个元件即可测温,此器件还具有成本低、精确度高、信号线距离远等特点。
总而言之,DS18B20的优点可以弥补AD590的缺点,DS18B20温度传感器不需要A/D转换直接可以与FPGA芯片相连,因此,此次课题我们将采用DS18B20作为温度传感器。
2.2 方案论证与确立
通过上述方案的比较,利用单片机作为控制器件具有原理简单、电路可靠,易于实现控制功能等优点,然而,这种情况下的温度测量电路和译码电路是比较复杂且易于出错,同时电路产生的误差会大大降低设备的寿命;利用FPGA作为核心控制器件,并且采用高精度数字温度传感器DS18B20,采集温度信号时直接由传感器采集,不需要信号放大和A/D转换,这样做可以大大简化电路连接减少误差,并且使用FPGA芯片可以利用其自身具有的可编程修改的特点避免了在设计过程中的麻烦,采用这种方法既可以为设计过程带来便利,又可以增加市场竞争力。综上所述,本次设计采用FPGA作为核心器件以及选用DS18B20温度传感器实现其功能,且实现结果是基于Quartus II仿真软件进行验证。
2.3 Quartus II介绍
Max+ plus II作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Max+ plus II 的更新支持。Quartus II 是Altera公司继 Max+ plus II之后开发的一种针对其公司生
7
山东科技大学学士学位论文 总体方案的论证
产的系列CPLD/PGFA器件的综合性开发软件,具有从设计输入到器件编程的所有功能,并且为用户提供了一整套设计解决方案,能够完成可编程片上系统的整个开发流程,在使用界面上更友好和人性化[3]。它的版本不断升级,从4.0版本已经更新到13.0版本,本次课题就是使用工具软件 Quartus II11.0。该软件有如下几个显著的特点: 2.3.1 Quartus II 的优点
该软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、Verilog HDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II 可以在 XP、Linux 以及 Unix上使用,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。最重要的是Quartus II 11.0还特别容易学习与操作,所以,深受开发者的欢迎。 2.3.2 Quartus II 对器件的支持
Quartus II 支持 Altera公司的 MAX 3000A 系列、MAX 7000 系列、 MAX 9000 系列、 ACEX 1K 系列、APEX 20K 系列、APEX II 系列、FLEX 6000 系列、FLEX 10K 系列,支持 MAX7000/MAX3000 等乘积项器件。 支持 MAX II CPLD 系列、Cyclone 系列、Cyclone II、Stratix II 系列、Stratix GX 系列等。支持 IP核,包含了LPM/MegaFunction 宏功能模 块库,用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。此外,Quartus II 通过和 DSP Builder 工具与 Matlab/Simulink 相结合, 可以方便地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种
8
山东科技大学学士学位论文 总体方案的论证
综合性的开发平台。
2.3.3 Quartus II 对第三方 EDA 工具的支持
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。Altera的Quartus II可编程逻辑软件属于 PLD开发平台。 该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与 Cadence、ExemplarLogic、 MentorGraphics、Synopsys 和 Synplicity等EDA供应商的开发工具相兼容。改进了软件的 LogicLock 模块设计功能,增添了FastFit 编译选项,推进了网络编辑性能,而且提升了调试能力。
Quartus II设计流程如图2.3所示。
图2.3 Quartus II设计流程
9
山东科技大学学士学位论文 系统的硬件设计
3. 系统的硬件设计
3.1 系统的总体结构设计
本次设计的数字温度计主要3部分构成,温度采集模块(DS18B20),数据处理模块(FPGA),数码管显示模块。系统硬件结构框图如图3.1。
DS18B20FPGALED数码管 图3.1 系统硬件结构框图
3.1.1 温度采集模块
鉴于要测量温度,而开发板没有测量温度的设备,所以最基本是要添加外设数字温度传感器DS18B20。DS18B20外形与三极管一样,一只脚传输数据,另外两只脚分别接地与高电平使之工作。DS18B20实时测得的室温将转化成9到12位的串行数据,对串行数据进行“翻译”就可以得出实时室温。
DS18B20主要由七部分组成:高速暂存器、8位CRC发生器、位光刻ROM、寄生电源、温度传感器、高温触发器TH和低温触发器TL。
10
山东科技大学学士学位论文 系统的硬件设计
位光刻ROM是温度敏感元件,其中包含了DS18B20唯一的序列号(唯一的名字)。 DS18B20共有3个引脚:GND、DQ和VDD[4]。其测得的数据与温度关系如表3.1所示。
表3.1 温度值对应的二进制温度数据
温度(℃) +125 +85 +25. 0625 +10.125 +0.5 0 -0.5 -10.125 -25.0625 -55 数据输出 (二进制) 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 数据输出(十六进制) 07D0h 0550h 0191h 00A2h 0008h 0000h FFF8h FF5Eh FE6Eh FC90h 图3.2是DS18B20的测温原理。从图中可以看出随着温度的变化,低温度系数晶振的振荡频率基本不会发生变化,减法计数器1接收到的信号是用于产生固定频率的脉冲信号;温度对高温度系数晶振的振荡频率的影响很大,因此,减法计数器2的脉冲输入就是其所产生的信号。图中实际上还隐含了一个计数门,DS18B20随着计数门的开启,对低温度系数振荡器产生的时钟脉冲计数,最终完成温度测量。实际上,高温度系数振荡器决定了计数门的开启时间。
减法计数器1对低温度系数振荡器产生的脉冲信号进行减法计数,如果这个计数器1的预置数为0,那么温度寄存器的值将会在此基础上加1,同时减法计数器1重新装入预置数,并对低温度系数振荡器产生的脉冲信
11
山东科技大学学士学位论文 系统的硬件设计
号进行计数,当减法计数器2计数变到0后,温度寄存器的值便停止累加,在这种情况下,所测温度值与温度寄存器中的数值一致。其中,斜率累加器的作用是修正预置值,只要计数器一直没有被关闭,那么就重复以上的过程,直到温度寄存器与被测温度值一致[5]。
图3.2 DS18B20测温原理
由于 DS18B20 是采用一根 I/ O 总线读写数据,因此DS18B20 对读写数据位有严格的时序要求。DS18B20 遵循相应的通信协议从而保证数据传输的正确性和完整性。该通信协议定义了多种信号时序:初始化时序、 写时序、 读时序。 3.1.1.1初始化时序
初始化时序中,控制器发送一个480us-960us的低电平的复位信号,然后释放总线,也就是总线为高电平,此时,控制器准备接收DS18B20的反应信号,当总线释放后,如果存在DS18B20,那么DS18B20将在15-60us内发送一个持续60-240us的反应信号,如图3.3所示。
12
山东科技大学学士学位论文 系统的硬件设计
图3.3 初始化时序原理图
3.1.1.2写时序
因为本设计总线上只挂了一个DS18B20,所以不用读取位序列号,直接发送忽略rom命令skin rom,如图3.4所示。
图3.4 写时序原理图
写时序有写1和写2时序,首先将总线拉低电平,拉低后15us之内必须把所要向DS18B20写的数据传到总线上,DS18B20将在15us-60us内采样总线上的数据,如果为高则写1,为低则写0;写完一次后释放总线。每两次写数据之间时隙要大于1us。
13
山东科技大学学士学位论文 系统的硬件设计
3.1.1.3读时序
读时序时,总线拉低电平大于1us后,然后释放总线准备接收DS18B20传来的数据,DS18B20将在总线拉低后15us之内将数据传到总线上,因此,控制器必须在拉低电平然后释放总线15us之内采样总线上的数据。每次读取一位数据不小于60us,如图3.5所示。
图3.5 读时序原理图
3.1.1.4 电源连接
DS18B20可使用寄生电源,可以在 I/O引脚处于高电平时获取些能量,储存在电容中供正常使用,但进行精确转换时需要 I/O引脚保持大电流供电,这样对 FPGA 芯片引脚造成很大压力,所以使用 VDD 引脚接外部电源。
DS18B20 进行温度转换需要很大电流,工作最大电流可达 1 mA。使用 VDD 引脚接外部电源供电的优点在于I/O 线上不需要在温度变换期间保持高电平。这样就可以有效的保护 FPGA 芯片,也可在单总线上放置多数目的DS18B20。使用外部电源,通过发出 Skip ROM 跳过命令,然后发出
14
山东科技大学学士学位论文 系统的硬件设计
Convert T变换命令,可以完成温度变换。 3.1.1.5 数据输出
控制器从DS18B20接收的16位温度值为12位,精度为0.0625, DS18B20用12位存贮温值度。最高位为符号位,正温度 S=0 如0550H为+85度,0191H为25.0625度,FC90H为-55 度,如图3.6所示。
图3.6 温度寄存器格式表
本次试验显示忽略了小数位,只取整数位,那么只取data[10:4]这7位,便是温度的整数值。
3.2 数据处理模块
数据处理是在FPGA内部进行的。用FPGA对DS18B20进行驱动从而得到温度数据,FPGA需要完成DS18B20的初始化、读取DS18B20的48位ID号、启动DS18B20温度转换、读取温度转化结果。读取48位ID号和读取温度转换结果过程中,FPGA还要实现CRC校验码的计算,保证通信数据的可靠性。这就需要对FPGA进行一定的了解。
15
山东科技大学学士学位论文 系统的硬件设计
FPGA的基本单元是可编程逻辑器件(PLD),PLD的可编程特性使得它能够在IC设计中提供电路仿真和验证,从而大大提高了产品的生产效率和生产速率。如今,PLD在经历了几个阶段后终于发展成了FPGA和CPLD。在此发展过程中,PLD强大的功能使得它被广泛应用于生活之中。
20世纪70年代初期,可编程逻辑器件PROM和PLA的出现替代了高成本的掩膜编程ROM,接着AMD公司又研制出了可编程阵列逻辑器件(Programmable Array Logic,PAL)。 3.2.1 可编程逻辑器件的发展历程
工程师们发明的PROM解决了ROM很难存储代码的问题。工程师通过PROM提供的一个简单且与芯片有关的编程器,将代码写入芯片中。烧入后的PROM在断电后可以保存数据。但是PROM的缺点是它的速度与输入端受到一定的。为了解决这个问题就出现了Programmable Logic Array(PLA),许多和“与”阵列相连接的输入端构成了PLA,同时还将“与”阵列的输出连接到“或”阵列,最后产生输出。PLA结构示意图如3.7所示。
图3.7 PLA的结构示意图
PAL是在PLA的基础上发展起来的一个新版本,它们的共同点是都含
16
山东科技大学学士学位论文 系统的硬件设计
有“与”阵列。不同的地方在于“或”阵列是否可以编程,其中PLA是可编程的,而PAL是固定的不可以编程的。很明显,这样的设计了参与“或”运算的个数,但是由于输入和输出端都加了反相器,工程师想实现逻辑函数的话,可以选择执行“与”和“或”阵列两种不同的方案,这种做法还是可以使得PAL能够实现很多布尔表达式。另外,PAL具有简化编程算法、运算速度提高等优点被适用于中小规模可编程电路中[6]。 3.2.2 可编程逻辑器件的分类
由于可编程逻辑器件供应厂家非常多,而且名称也不尽相同,因此有不同的分类方法。
按PLD结构和复杂度可以将可编程逻辑器件分为简单PLD和复杂PLD(CPLD)两种,通常,它们又被称为低密度PLD和高密度PLD(HPLD)。低密度PLD具有集成度高、开发周期短、速度快等优点。然而,由于自身的局限性,设计功能较复杂的用户不适合使用此器件。其具体的划分如图3.8所示。
图3.8 PLD结构图
根据PLD可编程特性可将其分为两种类型:一次可编程、重复可编程。
17
山东科技大学学士学位论文 系统的硬件设计
一次可编程器件的代表器件主要有熔丝型FPGA、PAL和PROM。对于重复可编程器件来说,该器件采用电擦除的器件寿命会比使用紫外线方式好些,因为用紫外线擦除的器件只能使用几十次。如今,静态随机存取存储器结构(SRAM)被应用于大部分产品中,所以重复可编程器件能够实现无限次编程。
按编程元器件可以分为熔丝型开关、EPROM、SRAM、可编程低阻电路和EEPROM五种类型。
若按内部互联结构可以将可编程逻辑器件分为FPGA和CPLD两种类型。CPLD属于确定型结构,其内部的互联资源由长度固定的连线组成。逻辑单元的主体是由“与或阵列”组成的,我们可以通过“与或阵列”来实现所需要的功能。FPGA属于统计型结构,其内部的互联资源要比CPLD复杂的多,它包括很多不同长度的连线资源,
每次布线的数据通路延时可能不同。FPGA的内部逻辑单元是由SRAM组成,通过查找表FPGA可以实现任何逻辑函数[7]。 3.2.3 CPLD/FPGA的基本结构
随着半导体技术的不断发展,用户对集成度的要求不断提高,复杂可编程逻辑器件(CPLD)也开始逐渐发展起来。原先,CPLD具有可擦除、可编程的功能,其结构和PAL/GAL相似,但是CPLD的集成度比它们要高很多。如今,惊人的工艺进步速度使得CPLD百万门级的规模取代了PAL和GAL中1000门以下的芯片系列,同时,为了合理利用芯片使其利用率和工作频率得到提高,因此改进了CPLD的内部结构,从而使得其应用领域不断扩大。
18
山东科技大学学士学位论文 系统的硬件设计
目前,有许多著名的公司生产CPLD,虽然种类繁多,但是我们可以根据其共同之处将其概括为三个部分:互联资源、可编程逻辑阵列块、输入/出块。图3.9为乘积项阵列型CPLD的基本结构。
图3.9 基于乘积项阵列型CPLD的基本结构示意图
20世纪80年代中期,美国Xilinx公司创建了高密度可编程器件FPGA。与低密度PLD相比,它通过内部逻辑单元之间的连接来完成所有复杂逻辑电路功能。目前,单片FPGA的工作速度已经大于500MHz,在结构上已经能够完成复杂系统所需要的主要功能。FPGA根据编程技术被划分为两类:基于SRAM编程的FPGA和基于反熔丝编程的FPGA。
可编程布线资源(PI)、可配置逻辑模块(CLB)、可编程输入\\输出模块(IOB)三部分构成了基于SRAM编程的FPGA。此器件具有反复编程,开发设计不需要专门的编程器,与CMOS工艺的存储器兼容,价格较低等特点。其中,用户指定的逻辑功能是通过CLB实现的;内部逻辑阵列和外部引脚之间的一个可编程接口是由IOB提供的;CLB与CLB和CLB与IOB之间的连线是由PI提供的,以此来传递信息。
19
山东科技大学学士学位论文 系统的硬件设计
采用反熔丝编程的FPGA具有抗辐射、集成度高、功耗低等特点,由于反熔丝开关是一种一次性编程器件,所以此器件也属于一次性可编程FPGA,由于该器件修改和系统升级比较困难,因此,这种器件适合于设计定型后的批量生产[8]。 3.2.4 可编程逻辑器件的应用
随着电子技术的迅猛发展,目前的FPGA和CPLD器件在可靠性、集成度、速度以及功能等方面能够满足许多场合的要求。因此,传统的电路将被大规模集成电路替代已经成为了技术领域的必然趋势。 (1)PLD在电子技术领域中的应用
在通信领域中,CPLD和FPGA在集成度、功能和性能上的优势可以满足通信系统功能更强、体积更小、速度更快和功耗更低等要求。因此,大规模逻辑器件被广泛应用在民用和军用方面。如移动电话、调制解调器、雷达等设备。
在数字信号处理技术领域(DSP)中,FPGA/CPLD和DSP技术相结合,能够弥补由于DSP实时性和灵活性不强所带来的缺陷。因此,使用FPGA/CPLD设计DSP系统,既可以缩小系统体积又可以提高系统的工作速度。
(2)PLD在ASIC设计中的应用
ASIC是可编程逻辑器件发展的基础,以前采用的是全定制和半定制电路的方法设计ASIC。如果在设计完成后不能满足设计要求,那么就必须进行重新设计和验证,这样做不仅会使得产品开发时间变长,还会极大增加产品的开发费用。FPGA/CPLD芯片除了具有ASIC的特点外,还具有接入内核的引脚数目不是有限的这一特点。因此,采用可编程逻辑器件能够使得开发成本降低同时能够缩短研制时间。 (3)PLD在数字电路实验中的应用
20
山东科技大学学士学位论文 系统的硬件设计
目前,在数字电路实验中会用到大量的门电路、触发器等,如果每次实验课程都大量购置逻辑集成芯片,将会使得大量芯片(尤其是有的逻辑芯片)被闲置,增加经费开支。由于PLD几乎能够构成所有的中规模组合集成电路,因此,把PLD应用在数字电路实验中,可以大大减少器材选购和经费开支,把实验操作变得简单化。 3.2.5 EDA技术
在过去几十年里,EDA技术随着电子设计技术和计算机的不断发展也取得了很大的进展。所谓EDA技术,简单的说,它的发展是以计算机为平台,用来发展的工具是EDA软件,并且设计硬件描述语言,最后由计算机自动完成编译、布局、仿真测试等一连串的步骤,最终设计出电子产品的自动化设计过程。使用软件设计的方法设计硬件部分是EDA技术的一大特色,换句话说,利用HDL语言和EDA软件的组合就可以实现硬件功能。整个系统可以集成在一片芯片上,因此,它具有功耗低、可靠性高和体积小等特点。
由于EDA技术的性价比不断提高且向着深度与广度两个方面的发展,在实际生活中,EDA技术被更广泛的应用于3个领域中:电类专业的高等院校实践与科研,专业从事集成电路和新产品的开发以及传统机电设备的技术革新和升级换代。总之,不论被应用在什么领域,使用EDA技术都能为人们带来很多方便[9]。
3.2.6 Verilog HDL在EDA中的应用
如今,几乎所有EDA开发环境都支持Verilog HDL语言。Verilog HDL最初的目的是为了设计大规模及超大规模集成电路,在工程应用上,Verilog HDL语言需要EDA工具的支持。Verilog HDL工程设计的流程主要包括设计输入、仿真、下载以及调试等步骤。如图3.10是Verilog HDL工程设计流程。
21
山东科技大学学士学位论文 系统的硬件设计
图3.10 Verilog HDL工程设计流程
3.3数码管显示模块
本次课题测得的数据需要用数码管显示出来,数码管有动态静态之分,静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性,因此我们选择的是8段共阳动态数码管来显示此次测量的数据。
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。
22
山东科技大学学士学位论文 系统的硬件设计
LED数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。LED数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片。
图3.11 LED数码管
图3.11 这是一个7段带小数点的数码管,每一笔划都是对应一个字母表示,DP是小数点。
23
山东科技大学学士学位论文 系统的总体模块设计
4 系统总体模块设计
传统的硬件电路设计方法已经随着Verilog HDL语言的出现,被其新生的自上而下设计方法所替代,自上而下的设计方法是先将需要设计的内容细化,分成各个小模块,设计完各个小模块后再对系统硬件进行整体设计。
4.1 Verilog HDL语言介绍
Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。
Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。
Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然 ,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。
Verilog HDL语言最初是于1983年由Gateway Design Automation 公司为其模拟器产品开发的硬件建模语言。那时它只是一种专用语言。由于他们的模拟、仿真器产品的广泛使用,Verilog HDL 作为一种便于使用且实用
24
山东科技大学学士学位论文 系统的总体模块设计
的语言逐渐为众多设计者所接受。在一次努力增加语言普及性的活动中, Verilog HDL语言于1990年被推向公众领域。Open Verilog International (OVI)是促进Verilog发展的国际性组织。1992年, OVI决定致力于推广Verilog OVI标准成为IEEE标准。这一努力最后获得成功, Verilog 语言于1995年成为IEEE标准,称为IEEE Std1 3-1995。完整的标准在 Verilog硬描述语言参考手册中有详细描述。
Verilog的设计初衷是成为一种基本语法与C语言相近的硬件描述语言。这是因为C语言在Verilog设计之初,已经在许多领域得到广泛应用,C语言的许多语言要素已经被许多人习惯。一种与C语言相似的硬件描述语言,可以让电路设计人员更容易学习和接受。不过,Verilog与C语言还是存在许多差别。另外,作为一种与普通计算机编程语言不同的硬件描述语言,它还具有一些独特的语言要素,例如向量形式的线网和寄存器、过程中的非阻塞赋值等。总的来说,具备C语言的设计人员将能够很快掌握Verilog硬件描述语言。
4.2 软件程序设计
根据系统的设计要求,将程序部分设计分为4个模块,包括分频模块、DS18B20驱动模块、数制转换模块、显示模块,如图4.1所示。利用Verilog 语言在QuartusII开发平台上完成程序设计。
DS18B20驱动程序分频模块数制转换模块显示模块图4.1 系统的总框图
25
山东科技大学学士学位论文 系统的总体模块设计
4.2.1 DS18B20驱动模块
DS18B20驱动模块是总程序,调用三个子程序,从而达到温度的显示。 DS18B20采用一根I/O总线读写数据,因此它对读写数据位有严格的时序要求。DS18B20 遵循相应的通信协议从而保证数据传输的正确性和完整性。该通信协议定义了多种信号时序:初始化时序、 写时序、 读时序。 从分频模块的clk_1m输出1MHz到通信模块的clk作为时钟信号;根据DS18B20所遵循的初始化时序、读时序、写时序等通信协议将程序完成;将获取的12位的温度信号传送给下一个模块[10]。 4.2.2分频模块
分频模块是FPGA设计项目中的基本模块之一。针对50MHz的时钟频率进行分频产生1MHz频率控制信号和1KHz频率扫描信号,分频模块如图4.2所示。
图4.2 分频模块
1端口说明
clk:输入50M时钟; rst:复位信号;
clk_1k:分频后输出的时钟 clk_1m:分频后输出的时钟。 2 原理分析
26
山东科技大学学士学位论文 系统的总体模块设计
系统时钟信号进入分频模块clk引脚,经过分频后得到信号clk_1m和clk_1k输出。
输出的clk_1k的频率信号用于扫描数码管做动态显示,使人不会看到数码管的闪烁感;输出的clk_1m的频率信号用于产生1us 时钟,用于控制传感器读写时序。
分频模块用Verilog HDL语言描述,见附录B。 4.2.3 数制转换模块
利用数制转换模块将输入的16位二进制的温度数据转换为BCD码,如图4.3所示。
图4.3 数制转换模块
1 端口说明
data[15..0]:输入16位数据 bcd_out[11..0]:输出12位数据 2 原理分析
图4.3中,data[15..0]表示从DS18B20获取的16位数据,前4位表示温度的正负号,后12位表示数据,本次试验显示忽略了小数位和负号,只取整数位,那么只取data[10:4]这7位,便是温度的整数值。
bcd_out[11..0]的每四位储存一个数据,一共有3个数据,这三个数据分别代表着温度的个位、十位、百位,便于在下一个模块中便于将其转换成
27
山东科技大学学士学位论文 系统的总体模块设计
十进制显示出来。
数制转换模块用Verilog HDL语言描述,见附录B。 4.2.4显示模块
本次显示采用的动态显示。数码管动态显示接口是应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\"a,b,c,d,e,f,g,dp\"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自的I/O线控制,当FPGA输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于FPGA对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,缺点就是亮度稍低,但是它能够节省大量的I/O端口,而且功耗更低。
从数制转换模块输出的BCD码转换成十进制数接入到显示模块中,将其译码为七段值,输出到共阳数码管上显示,模块如图4.4所示。
图4.4 显示模块
1 端口说明
28
山东科技大学学士学位论文 系统的总体模块设计
clk:输入clk_1k的时钟信号; rst:复位信号
data[11..0]:进制转换出的12位数据 seg[7..0]:段选信号; en[1..0]:位选信号。 2 原理分析
本次设计采集的温度忽略了百位,所以只需要显示温度的十位跟个位就可以了,调用两个数码管,其中一个数码管当作十位,另一个数码管则是个位,当十位的数码译码为“00100101”时,则说明十位数码管将显示数值“2”,当个位的数码管译码为“00001101”时,则说明个位显示“3”。因此个位和十位都是按照八段译码的原则将 0~9之间的数字显示出来。 该模块用Verilog HDL语言描述,见附录B。
29
山东科技大学学士学位论文 整体编译结果与分析
5整体编译结果与分析
设计采用FPGA器件和DS18B20实现温度测量仪,FPGA电路板主要由FPGA器件、时钟电路、下载电路、电源电路、显示电路、指示灯和按键等构成。核心芯片采用ALTERA公司生产的Cyclone II系列EP2C5T144C8芯片。在设计温度传感器部分时,由于DS18B20进行精确转换时需要I/O引脚保持大电流供电,这样对FPGA芯片引脚造成很大压力,所以要使DS18B20的VDD引脚接外部电源。
5.1 整体编译
使用Quartus II进行课题验证时,首先要创建工程和编辑设计文件,做好编译前设计,最后再进行全程编译。 编译成功后的界面如图5.1所示。
图5.1 编译完成后Quartus II的界面
30
山东科技大学学士学位论文 整体编译结果与分析
此界面左上角为工程管理界面,显示了工程的层次结构和其中结构模块耗用的逻辑宏单元;此栏下面是编译处理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析;右栏是编译报告项目选项菜单,单击其中各项可以详细了解编译与分析结果;最下栏是编译处理信息。
如果工程中的文件有错误,错误提示将在processing栏里显示,只要双击错误提示,就可以在对应的Verilog HDL文件中看到错误,修改至完全正确即可。
5.2 程序的下载调试
选择下载FPGA芯片为EP2C5T144C8,在菜单中选择Pins项设定引脚,在弹出的窗口中设置好各个输入输出端与硬件相对应的引脚,如图5.2,并编译通过。
将FPGA的下载数据线一端连接FPGA电路板,一端接计算机USB口,在命令栏里Programmer项,在弹出的窗口中选择Hardware Setup,确认计算机已与开发板连接好后,点击Start开始下载运行。
图5.2 输出端与FPGA对应的引脚
连接好DS18B20温度传感器电路,即可测量室内温度,实物电路图如图5.3所示。由实测知,当前室温为28℃。
31
山东科技大学学士学位论文 整体编译结果与分析
32
山东科技大学学士学位论文 设计中遇到的问题
6 设计中遇到的问题
问题:下载时出现错误,由于器件选择与试验箱不符,导致下载失败。 解决:重新选择正确的器件并全部编译后再下载。
问题:连接数码管后8段数码管温度显示时常亮,不能正确显示数据。 解决:因为动态选择数码管的频率过快,把分频器的分频时间调到1KHz即可。
问题:下载完程序后,数码管的段码管连接倒序,致使显示不正常。 解决:重新连接引脚并编译后下载,就可以正常显示数据了。
问题:下载完程序后,数码管一直显示0,不能正常显示温度。
解决:FPGA芯片引脚电压低,跟DS18B20的数据口连接时电压不足以驱动DS18B20,如果加一个10KΩ的上拉电阻,就可以正常显示温度了。
33
山东科技大学学士学位论文 结束语
7结束语
基于FPGA 的数字温度计这个课题很好的解决了用传统温度计出现的采集不准确、反应慢、造价高等问题,所以它具有现实研究意义。刚开始着手本课题时,就遇到了很多困难,譬如根据自上而下的设计方法,要将整个设计分模块设计分为几个模块,各个模块的功能分别是什么,各个模块用Verilog HDL语言怎么描述出来。后来查阅了很多关于温度传感器和FPGA的资料,后来经过反复修改最终把这个课题划分为三个模块,并弄清楚了他们各自的关系以及他们之间的联系。
虽然已经基本完成本次课题,并且通过仿真验证了实验结果,但是本次课题的设计也有不足之处,例如,本次做的课题数字温度计是有线的,如果可以做成无线的,这样会有更加广泛的用途。通过本次比较完整的FPGA数字温度计设计,我能将理论与实践很好的结合在一起,既锻炼了我的能力又丰富了我的经验,同时也提高了我的专业水平。
本设计是采用硬件描述语言和FPGA芯片相结合进行的数字温度计的研究,从中可以看出EDA技术的发展在一定程度上实现了硬件设计的软件化。设计的过程变的相对简单,容易修改等优点,相信随着电子技术的发展,数字温度计的功能会更加多样化,满足人们的各种需要。
34
山东科技大学学士学位论文 参考文献
参考文献
[1] 周景润.基于Quartus 的FPGA数字系统设计[M]. 北京:电子工业出版社,2007:212–306.
[2] Mark Zwolinski. Verilog HDL数字系统设计[M]. 北京:电子工业出版社,2007.
[3] 阳星明. 数字逻辑[M]. 武汉:华中科技大学出版社,2005。 [4] 黄智伟等. FPGA系统设计与实践[M]. 北京:电子工业出版社,2005. [5] 蔡明生. 电子设计[M]. 北京:高等教育出版社,2004.
[6] 周梦然. CPLD/FPGA的开发与应用[M]. 北京:中国矿业大学出版社,2007.
[7] 刘小俊. 基于FPGA技术的IP核设计[J]. 武汉理工大学学报,2005,5:43–47.
[8] 冯维川. 基于FPGA的多功能空制器设计[J]. 电子技术,2007,36(11):67-69.
[9] 孟庆辉.EDA技术实用教程[M]. 北京:国防工业出版社,2008:101–169. [10] Song Nie,Yang-chun Cheng,Yuan Dai. Characteristic Analysis of DS18B20 Temperature Sensor in the High-voltage Transmission Lines’ Dynamic Capacity Increase[J]. Energy and Power Engineering, 2013, 5: 557–560. [11] Shangli Xiao, Weisheng Xu, and Youling Yu. A Simulative Building Fire
Spread Tracking System Based on FPGA and 1-Wire Bus Sensor Network[J]. Journal of Physics, 2006,4: 120–124.
35
山东科技大学学士学位论文 致谢
致 谢
时光转瞬即逝,大学生涯已经接近尾声。当我怀着激动忐忑的心情完成这篇论文时,我也蜕变成了一个成熟的青年。回首大学生涯,酸甜苦辣应有尽有,真是让人回味无穷。同时也要感谢这一路陪伴我的那些人。
首先我要感谢的是父母,没有他们做我坚强的后盾,也许就没有今天的我,他们给了我生命同时也为我创造了良好的生活学习环境,他们努力把我培养成一个有知识有理想的人,在我迷茫的时候他们指引我前进,在我骄傲的时候他们教会我谦虚,在我失败的时候他们鼓励我坚持下去。所以我要感谢爸爸妈妈,感谢他们为我做的一切。
虽然只在这个学校待了两年的时光,但是严谨的学风,优美的学习环境让我对这里产生了深深的眷恋之情,在这里我学到了很多有用的知识,这些知识在我的学习和生活上都有着很重要的指导作用,我坚信,这些知识将会陪伴着我的一生。这里的老师和同学都非常友善,在完成这篇论文的过程中我遇到了很多问题,当我请教他们时,他们都会耐心的讲解给我听,尤其是指导老师给了我很大的帮助。同时也要感谢电气自动化学院的所有老师,是他们认真负责的教学,我才能掌握运用专业知识,才能顺利完成毕业论文。
书到用时方恨少,在写这篇论文的时候我终于体会到了这句话的含义,我的知识水平还非常贫瘠,以后我会多看书多学习,即使毕业了也不能丢掉学习。人生本来就是一个不断学习不断探索的过程,我相信,无论以后遇到什么样的困难我都不会怕的,因为这一路上有很多关心我的人和愿意帮助我的人,我会努力做一个出色的人,不会辜负他们的希望。
最后,向所有评阅论文的老师表示最诚挚的谢意。
36
山东科技大学学士学位论文 附录
附录
附录A系统总体电路图
附录B 系统总程序
DS18B20驱动: module ds18b20( input clk, //50M input rst, //复位 output [7:0] seg, //数码管 output [1:0] en, //数码管使能 inout dq //ds18b20 数据线 );
37
山东科技大学学士学位论文 附录
wire clk_1k; //数码管扫描时钟 wire clk_1m; //1us 时钟,用于控制传感器读写时序 reg[15:0] temp; //16位温度数据 wire[15:0] disp_dat; reg[8:0] state; reg[19:0] cnt; reg[2:0] cnt_bit; reg[7:0] data_w; //写到传感器的数据 reg[7:0] data_r; //从传感器读入的数据 reg link; reg dq_out; wire dq_in; wire[11:0] bcd;
assign dq = (link)? dq_out : 1'bz; assign dq_in = dq;
parameter RESET1 = 9'b0_0000_0001, // 复位1 RESET2 = 9'b0_0000_0010, // 复位2
WRITE_CC1 = 9'b0_0000_0100, // 第一次写入跳过rom命令 WRITE_44 = 9'b0_0000_1000, // 写入温度转换命令WRITE_CC2 = 9'b0_0001_0000, // 第二次写入跳过rom命令 WRITE_BE = 9'b0_0010_0000, // 写入读命令 READ1 = 9'b0_0100_0000, // 读入第一个字节 READ2 = 9'b0_1000_0000, // 读入第二个字节 WAIT_800MS = 9'b1_0000_0000; // 等待800ms
clk_gen uu0( .rst(rst), .clk(clk), //产生1k 和 1m时钟 .clk_1k(clk_1k), .clk_1m(clk_1m) );
bin2bcd uu1( .data(disp_dat), //二进制转bcd码,从传感器读入的数据是二进制的,转换为bcd后才能显示 .bcd_out(bcd)
38
山东科技大学学士学位论文 附录
); disp uu2( .rst(rst), //数码管显示 .clk(clk_1k), .data(bcd), .seg(seg), .en(en) );
assign disp_dat =(temp[15])? (~temp+1) : temp; 度为负,取反加1
always @(posedge clk_1m or negedge rst) begin if(~rst) begin cnt <= 0; state <= RESET1; end else case(state) RESET1: begin cnt <= cnt + 1; if(cnt < 'd500) begin link <= 1; dq_out <= 0; end else if(cnt < 'd1000) begin link <= 0; end else begin cnt <= 0; state <= WRITE_CC1; data_w <= 8'hcc;
39
//若最高位为1,则温 //第一次复位 山东科技大学学士学位论文 附录
cnt_bit <= 0; end end
WRITE_CC1: begin //写入跳过rom命令 cnt <= cnt + 1; if(cnt < 'd5) begin link <= 1; dq_out <= 0; end else if(cnt < 'd60) begin dq_out <= data_w[cnt_bit]; end else if(cnt < 'd65) begin link <= 0; end else begin cnt <= 0; cnt_bit <= cnt_bit + 1; if(cnt_bit == 'd7) begin state <= WRITE_44; cnt_bit <= 0; data_w <= 8'h44; end end end
WRITE_44: begin cnt <= cnt + 1; if(cnt < 'd5) begin link <= 1; dq_out <= 0; end else if(cnt < 'd60)
begin
40
//写入温度转换命令 山东科技大学学士学位论文 附录
dq_out <= data_w[cnt_bit]; end else if(cnt < 'd65) begin link <= 0; end else begin cnt <= 0; cnt_bit <= cnt_bit + 1; if(cnt_bit == 'd7) begin cnt_bit <= 0; state <= WAIT_800MS; end end end
WAIT_800MS: begin cnt <= cnt + 1; if(cnt == 'd800000) begin cnt <= 0; state <= RESET2; end end
RESET2: begin cnt <= cnt + 1; if(cnt < 'd500) begin link <= 1; dq_out <= 0; end else if(cnt < 'd1000) begin link <= 0; end else begin cnt <= 0;
state <= WRITE_CC2;
41
//等待800ms //第二次复位 山东科技大学学士学位论文 附录
data_w <= 8'hcc; cnt_bit <= 0; end end
WRITE_CC2: begin //吸入跳过rom命令 cnt <= cnt + 1; if(cnt < 'd5) begin link <= 1; dq_out <= 0; end else if(cnt < 'd60) begin dq_out <= data_w[cnt_bit]; end else if(cnt < 'd65) begin link <= 0; end else begin cnt <= 0; cnt_bit <= cnt_bit + 1; if(cnt_bit == 'd7) begin state <= WRITE_BE; cnt_bit <= 0; data_w <= 8'hbe; end end end
WRITE_BE: begin cnt <= cnt + 1; if(cnt < 'd5) begin link <= 1; dq_out <= 0; end
else if(cnt < 'd60)
42
//写入读数据命令 山东科技大学学士学位论文 附录
begin dq_out <= data_w[cnt_bit]; end else if(cnt < 'd65) begin link <= 0; end else begin cnt <= 0; cnt_bit <= cnt_bit + 1; if(cnt_bit == 'd7) begin state <= READ1; cnt_bit <= 0; end end end
READ1: begin cnt <= cnt + 1; if(cnt < 'd3) begin link <= 1; dq_out <= 0; end else if(cnt == 'd3) link <= 0; else if(cnt == 'd12) data_r[cnt_bit] <= dq_in; else if(cnt > 'd65) begin cnt <= 0; cnt_bit <= cnt_bit + 1; if(cnt_bit == 'd7) begin cnt_bit <= 0; temp[7:0] <= data_r; state <= READ2;
end
43
//读入第一个字节 山东科技大学学士学位论文 附录
end end READ2:
begin //读入第二个字节 cnt <= cnt + 1; if(cnt < 'd3) begin link <= 1; dq_out <= 0; end else if(cnt == 'd3) link <= 0; else if(cnt == 'd12) data_r[cnt_bit] <= dq_in; else if(cnt > 'd65) begin cnt <= 0; cnt_bit <= cnt_bit + 1; if(cnt_bit == 'd7) begin cnt_bit <= 0; temp[15:8] <= data_r; state <= RESET1; end end end endcase end
endmodule 分频模块: module clk_gen( input rst, input clk, output reg clk_1k, output reg clk_1m ); reg[14:0] cnt_1k;
44
山东科技大学学士学位论文 附录
reg[4:0] cnt_1m; parameter div_1k = 15'd25000 -1, div_1m = 5'd25 -1;
always @(posedge clk) begin if(~rst) begin cnt_1k <= 0; clk_1k <= 0; end else begin cnt_1k <= cnt_1k + 1; if(cnt_1k == div_1k) begin cnt_1k <= 0; clk_1k <= ~clk_1k; end end end
always @(posedge clk) begin if(~rst) begin cnt_1m <= 0; clk_1m <= 0; end else begin cnt_1m <= cnt_1m + 1; if(cnt_1m == div_1m) begin cnt_1m <= 0; clk_1m <= ~clk_1m; end end end
45
山东科技大学学士学位论文 附录
endmodule
2进制转BCD码 module bin2bcd( input [15:0] data, output reg[11:0] bcd_out ); reg[3:0] i; reg[6:0] data_temp; reg[11:0] bcd;
always @(data) begin data_temp[6:0] = data[10:4]; bcd = 0; for(i=0;i<6;i=i+1) begin bcd = {bcd[10:0],data_temp[6]}; if(bcd[3:0] > 4'd4) bcd[3:0] = bcd[3:0] + 4'd3; if(bcd[7:4] > 4'd4) bcd[7:4] = bcd[7:4] + 4'd3; if(bcd[11:8] > 4'd4) bcd[11:8] = bcd[11:8] + 4'd3; data_temp = data_temp << 1; end bcd_out = {bcd[10:0],data_temp[6]}; end
endmodule 显示模块: module disp( input rst, input clk, input [11:0] data, output reg[7:0] seg, output reg[1:0] en
46
山东科技大学学士学位论文 附录
); reg[2:0] state; parameter Hundreds=3'b001, //显示温度的百位、十位和各位 Tens = 3'b010, Units = 3'b100;
always @(negedge clk or negedge rst) begin if(~rst) begin seg <= 8'h00; en <= 3'b000; state <= 2'b01; end else begin if(state == Hundreds) begin en <= 3'b011; state <= Tens; case(data[11:8]) 4'h0: seg <= 8'b00000011; 4'h1: seg <= 8'b10011111; 4'h2: seg <= 8'b00100101; 4'h3: seg <= 8'b00001101; 4'h4: seg <= 8'b10011001; 4'h5: seg <= 8'b01001001; 4'h6: seg <= 8'b01000001; 4'h7: seg <= 8'b00011111; 4'h8: seg <= 8'b00000001; 4'h9: seg <= 8'b00001001; default: seg <= 8'hff; endcase end else if(state == Tens) begin en <= 3'b101;
47
山东科技大学学士学位论文 附录
state <= Units; case(data[7:4]) 4'h0: seg <= 8'b00000011; 4'h1: seg <= 8'b10011111; 4'h2: seg <= 8'b00100101; 4'h3: seg <= 8'b00001101; 4'h4: seg <= 8'b10011001; 4'h5: seg <= 8'b01001001; 4'h6: seg <= 8'b01000001; 4'h7: seg <= 8'b00011111; 4'h8: seg <= 8'b00000001; 4'h9: seg <= 8'b00001001; default: seg <= 8'hff; endcase end else if(state == Units) begin en <= 3'b110; state <= Hundreds; case(data[3:0]) 4'h0: seg <= 8'b00000011; 4'h1: seg <= 8'b10011111; 4'h2: seg <= 8'b00100101; 4'h3: seg <= 8'b00001101; 4'h4: seg <= 8'b10011001; 4'h5: seg <= 8'b01001001; 4'h6: seg <= 8'b01000001; 4'h7: seg <= 8'b00011111; 4'h8: seg <= 8'b00000001; 4'h9: seg <= 8'b00001001; default: seg <= 8'hff; endcase end else state <= Hundreds; end end
endmodule
48
山东科技大学学士学位论文 附录
附录C 外文翻译
A Simulative Building Fire Spread Tracking System Based on FPGA and 1-Wire Bus Sensor
Network
Shangli Xiao, Weisheng Xu, and Youling Yu
Abstract—In this paper, a simulative 1-wire bus sensor net work dedicated to the experimental studies of building fire spread is proposed. The whole sensor network is capable of receiving commands from and exchanging data with FPGA(Field Programmable Gate Array) microprocessor, which is connected to host PC. Honeycomb-type layout, which enhances the measurement and tracking precision greatly, is adopted. And in order to cooperate with honeycomb layout to find the fire source at once, the alarm of each sensor which reaches the upper-bound of temperature is triggered. The temperature is real-time checked during fire spread process. By sorting the temperature values of neighbouring sensors and picking out those with the highest values step by step, fire spread route can be drawn out. One experimental fire spread simulation was performed. Through the experimentation, we show that, this prototype system network can perform accurate measurements. Finally, the provided results illustrate the accuracy and reliability of both detecting the fire source and tracing the fire spread direction.
Index Terms—Fire spread tracking, FPGA, DS18B20, 1-wire search algorithm, Honeycomb sensor layout.
INTRODUCTIONIRE
49
山东科技大学学士学位论文 附录
Fire is one of the major concerns of metropolitan building construction. Over the last five decades, several efforts have been made in the domain of modeling fire spread. Nowadays, terrorism and other abnormal threat make this problem more obviously and seriously. When a building caught fire, in order to trace the fire spread trend and range as accurate as possible and then make scientific strategic decisions of remedy, precise mechanism of sensor detection and algorithm prediction have to be find out. Thus, building a sensor network to find early the fire source and trace its spread direction becomes an important and significant research project.
In the case of forest wild fire propagation, dynamic behavioral features of wild fire are complicated and comprehensive. Such factors as wind speed, air humidity and temperature, landform situation, combustible medium must be taken into account. Besides, the accurate fire spread model is hard to build, and sensor layout is difficult to design and place. What is more, owing to artificial fire and synchronous aerial remotely sensed data, the simulation can hardly reflect the true situation. However, compared with forest wild fire spread, indoor fire spread is in some degree simpler to find and trace. Because of the simplicity of indoor environment, those subordinate factors can be ignored and spread mathematical model is not a necessity any more. Reasonable sensor network layout and sensor search algorithm are enough to locate the fire source at once and trace the fire spread direction.
Two-dimensional square grid spatial layout is widely applied by current building indoor sensor network placement. This layout is easy to achieve and its requirement for the performance of central monitor and controller is relatively lower. Single chip or DSP is powerful enough to meet the requirement. However,
50
山东科技大学学士学位论文 附录
the precision of square grid spatial layout and the speed and memory capacity of single chip are limited for tracing the fire spread trend.
Here, we select honeycomb-type spatial senor network layout instead of current square grid structure in order to provide sufficient precision. Xilinx’s Virtex-II Pro FPGA is chosen to guarantee process speed and memory volume. In the mean time, DS18B20 1-wire bus digital thermometer is adopted for its uniquely simplified bus communication protocol. The following section presents a brief overview ofDS18B20 and Xilinx’s Virtex-II Pro FPGA platform. Then, system framework is presented. In the fourth section, fire spread tracking engine algorithm and human machine interface window design is exposed. And this section is also devoted to the description of simulation. In the last section, results of simulation and final remarks and prospects are given.
II. DS18B20 AND VIRTEX-II PRO XPLATFORM A. 1-Wire Bus Digital Thermometer DS18B20
1) Internal functional structure of DS18B20: TheDS18B20 complies with Dallas’ exclusive 1-wire bus protocol that implements bus communication only using one control signal.
Each DS18B20 consists of three main parts: temperature sensor, -bit ROM, which contains a unique code that is used to address and identify them individually by a 1-wire master in a 1-wire network, and 9-byte scratchpad memory, which contains the 2-byte temperature register that stores the digital output from the temperature sensor and the 1-byte configuration register which changes the precision and conversion speed. For the -bit ROM, the least significant 8 bits store the DS18B20’s 1-wire family code: 28h. The next 48 bits store a unique serial number. The Most significant 8 bits store a cyclic
51
山东科技大学学士学位论文 附录
redundancy check (CRC) byte that is calculated from the first 56 bits of the ROM code. In addition, the scratchpad allows access to the 1-byte alarm trigger registers (TH and TL), which is of great critical for initiating the fire spread tracking process.
A remarkable merit of the DS18B20 is its ability to operate without an external power supply. Power is instead supplied through the 1-wire pull-up resistor via the DQ pin when the bus is high. The high bus signal also charges an internal capacitor (CPP), which then supplies power to the device when the bus is low. This method of deriving power from the1-wire bus is referred to as “parasite power.” As an alternative, the DS18B20 may also be powered by an external supply on VDD. However, compared to conventional external supply, parasite power requires longer measurement time but provides lower precision. What is more, the upper temperature limit is 100, which is 25lower than that of external supply. Thus, in this system, external power supply is adopted in order to guarantee higher precision and to acquire higher operation temperature.
2) Transaction sequence of DS18B20: The transaction sequence for accessing the DS18B20 is as follows:
--Step 1. Initialization: All transaction sequence on the1-wire bus start with an initialization sequence by the bus master and peripheral pull-up resisters.
--Step 2. ROM Commands (followed by any required data exchange): After finishing initialization, the bus master can issue ROM commands, including search ROM, read ROM, match ROM, skip ROM and alarm search, to address and identify the sensors on the bus.
--Step 3. DS18B20 Function Commands (followed by any required data exchange): These commands enables the bus master to read from and write to
52
山东科技大学学士学位论文 附录
the sensor’s memory, start temperature conversions and determine the power supply mode.
It is very important to follow this sequence every time theDS18B20 is accessed, as the DS18B20 will not respond if any steps in the sequence are missing or out of order. Exceptions to this rule are just the Search ROM [F0h] and Alarm Search[ECh] commands. After issuing either of these ROM commands, the bus master must return to Step 1 in the sequence.
B. Xilinx Virtex-II Pro X Platform Virtex-II Pro X platform is user-programmable gate arrays with various configurable elements and embedded blocks optimized for high-density and high-performance system designs .
The following characteristics embody its innovation.
The embedded high-speed serial transceivers enable data bit rate up to 3.125 Gb/s per channel (Rocket IO) or 6.25 Gb/s.
基于FGPA和单总线传感器的建筑火灾蔓延的跟踪模拟系统
摘要
本文提出了一个种基于单总线的传感器网络,致力于建筑火灾蔓延的研究实验。整个传感器网络能接收来FPGA微处理器的命令和数据,FPGA与电脑连接。采用的蜂窝式布局在很大程度上提高了测量和跟踪的精确度。为了在蜂窝布局中,一但发现火源,每个传感器达到上限温度触发,并报警。在火灾蔓延的过程中,温度是被实时检测的。通过一步一步的温度值比较和采集,火源的路径将被显现出来。则能证明火灾蔓延的模拟系统。通过实验,我们得出的结论是,通过模拟系统能进行精确的测量。最后,
53
山东科技大学学士学位论文 附录
从得出的结论可以证明这个系统既可以检测火源又能对火灾传播的路径进行跟踪的可靠性和精确性。
关键字:火灾传播追踪,FPGA,DS18B20,单总线搜索算法,蜂窝式传感器布局
1引言
火灾是城市建设的一个主要问题,在过去的半个世纪里,在模拟火灾传播的这个领域里已经有很多成就。今天和其他异常的威胁使这些问题更加明显和严重。当一栋建筑起火时,为了尽可能的跟踪火灾传播的趋势和范围,然后采取科学的措施去补救。传感器精确的机制和预测算法必须被发现。因此,建立一个传感器网络去尽早的发现起火源,然后跟踪火灾传播的方向已经成了一个非常重要的研究课题。
在森林野火传播中,野火的动态特征是非常复杂的。例如风速、空气湿度和温度、地形、可燃介质等因素是必须考虑进来的。此外,建立精确的火灾传播模型是很难的,传感器网络是很难进行设计和旋转。更严重的是,由于人为的火灾和同步航空遥感数据,模型可能很难反映真实的情况。然而,比起森林野火的传播,室内火灾传播更容易找到和跟踪。由于简单的室内环境,这些次要的因素是可以忽略的,并且火灾传播模型也没有必要考虑这些因素。合理的传感器网络布局和搜索算法就足够定位火源并且跟踪火灾传播方向。
二维的方形网络布局被广泛的应用在现在的室内传感器网络布局中。这种布局是很容易实现的,并且它对监控器和处理器的要求是比较低的。单片机或者DSP就足以满足这些要求。然而,这种精确的方形空间网络布局以及单片机的运行速度和存储在跟踪火灾传播方向时受到了。
为了保证足够的精度,我们选择了蜂窝式空间传感器网络布局代替现行的方形网格结构。我们选择Xilinx’s Virtex-II Pro FPGA来保证处理的速
山东科技大学学士学位论文 附录
度和存储容量。同时,DS18B20单总线数字温度计采用其独特的单总线通信协议。以下是一个简短的概述,基于DS18B20和Xilinx公司的Virtex-II Pro FPGA平台,提出了系统框架。在第四部分,火灾传播引擎算法和人机跟踪界面是此设计的重点。这部分对模拟系统进行了描述。在最后的章节,给出了仿真结果和评论。
2、DS18B20 和 VIRTEX-II PRO X平台 A.单总线数字温度计DS18B20
1)DS18B20的内部功能结构:DS18B20是Dallas公司的单总线通讯协议器件,只使用一路信号来实现总线通信。
每一个DS18B20由三部分组成:温度传感器,位ROM,它包括一个特别的代码用于识别在单总线传感器组成的网络中单个传感器,和一个9Byte的暂存器,它包括2Byte的温度寄存器用来存储来自温度传感器的输出数据,1Byte的配置寄存器,它是用来改变精度和转换速度的。到于位的ROM,其中最低位的8位用于存储DS18B20的家族代码:28h。接下来的48位存储一个唯一的序列号。最重要的8位来存储一个循环冗余校验码,它是用来计算ROM代码开始的56位的。此外,暂存器允许访问一个字节的触发寄存器(TH 和TL),对启动火灾跟踪过程是非常关键的。
DS18B20的一个显著优点是其可以无需外接电源。电源供应是通过单总线上的上拉电阻提供的。当总线为高电平时,单总线给它内部的电容充电,当总线为低电平时,然后由电容提供电源。这种供电方式叫做寄生电源供电,作为一个选择,DS18B20也可以由外部VDD提供电源,相比外部供电,寄生供电需要更长的测量时间和较低的转换精度。更甚的是,温度的上极限是100度,足足比外部供电方式低了25度,因此本次设计,我们采用外部供电方式以保证获得更高的操作温度和更高的精度。
2)DS18B20的传送时序:访问DS18B20的时序如下:
55
山东科技大学学士学位论文 附录
步骤1:初始化:所有传送时序通过主机和外围上拉电阻通过单总线初始化。
步骤2:ROM命令(用在任何数据交换):在完初始化后,主机发送ROM命令,包括搜索ROM命令,读ROM命令,匹配ROM命令,跳过ROM命令和报警搜索以确定总线上的传感器。
步骤3:DS18B20功能命令(用在任何数据交换):这些命令使能主机读写传感器,启动温度转换以及确定供电方式。
按这些时序访问DS18B20是非常重要的,如果有任何步骤有丢失,DS18B20都不会有反应。除了Search ROM和报警搜索命令ECH。在发送完这些命令之后,主机必须回到步骤1的时序。
B、Xilinx Virtex-II Pro X平台
Virtex-II Pro X平台是一个可选择的高集成和高性能的用户可编程门阵列,包括各种可配置元件和嵌入式模块。
以下是这个平台的一些亮点:嵌入式高速串行收发器使数据位。速率能达到3.123Gb/s每一个I/O口或者6.25Gb/s。
Characteristic Analysis of DS18B20
Temperature Sensor in the High-voltage Transmission Lines’ Dynamic Capacity
Increase
Song Nie1, Yang-chun Cheng, Yuan Dai3
ABSTRACT
Dynamic capacity increase in high voltage electric power transmission line is currently the most economical method for solving electric power transmission bottleneck nowadays. DS18B20 temperature sensor is applied to the dynamic
56
山东科技大学学士学位论文 附录
capacity increase of high voltage transmission lines to measure the conductor temperature and ambient temperature. The paper is focused on the experiment of DS18B20 both in the laboratory and outside. From the result of the lab temperature measurement data analysis, using 4 DS18B20’s is the most suitable plan, considering both accuracy and economical efficiency. In the experiment outside, we get four groups of conductor (uncharged) temperature and four groups of ambient temperature. The data proved that DS18B20 has good stability, and small measurement error. It is suitable for measuring the temperature of conductor and ambient in dynamic capacity increase, and helpful to improve the accuracy of the calculation of capacity increasing.
Keywords: DS18B20 Temperature Sensor; Measurement Error; Dynamic Capacity Increase; Data Analysis
1. Introduction
In recent years, with the development of China's sustained and rapid, power consumption will also continue to increase. In economically developed areas, due to the partial slow speed of grid construction, the bottleneck problem of the power system transmission capacity of transmission lines has become increasingly prominent. However, because of the limited line level of thermal stability, transient stability level and the level of dynamic stability, about a quarter of the transmission line trans-mission capacity was significantly lower than the level of foreign. In order to improve the transmission capacity of transmission lines, the comment measures are UHV technology, flexible AC transmission technology, the series compensation technology, dynamic reactive power compensation with the rod back and compact transmission, heat-resistant
57
山东科技大学学士学位论文 附录
wires of large cross-section and other technologies,etc.[1]. Among various researches, increasing the heat capacity of transmission line has been care-fully studied by most electrical departments and has been proven to be an effective and the most economical way to enhance the current capacity of transmission lines.
The current capacity of transmission line is depend on 1. Introduction
In recent years, with the development of China's sustained and rapid, power consumption will also continue to increase. In economically developed areas, due to the partial slow speed of grid construction, the bottleneck problem of the power system transmission capacity of transmission lines has become increasingly prominent. However, because of the limited line level of thermal stability, transient stability level and the level of dynamic stability, about a quarter of the transmission line trans-mission capacity was significantly lower than the level of foreign. In order to improve the transmission capacity of transmission lines, the comment measures are UHV technology, flexible AC transmission technology, the series compensation technology, dynamic reactive power compensation with the rod back and compact transmission, heat-resistant wires of large cross-section and other technologies,etc.[1]. Among various researches, increasing the heat capacity of transmission line has been care-fully studied by most electrical departments and has been proven to be an effective and the most economical way to enhance the current capacity of transmission lines.
The current capacity of transmission line is depend on -125℃, accuracy±0.5℃; two standard mercury thermometer: measuring range-5℃-150℃,
58
山东科技大学学士学位论文 附录
accuracy±0.1℃, it is the standard value; GDWJS-250 alternating wet heat test box: temperature range -40℃-150℃,temperature volatility≤±0.5℃, temperature uniformity≤±2℃.[2]
2) Experimental methods
In the laboratory, eight DS18B20‘s and a mercury thermometer are put into an alternating wet heat test box, and the data collection equipments are put outside the box. According to the measuring range of each tempera-ture sensor, We choose 0℃,20℃,30℃,40℃,60℃ and 80℃ as test points. When it reaches to the test temperature and stipulated time, we record the temperature of mercury thermometer and data collection equipments in each test points for four or five times, every minutes. We use SPSS software to process data, and do the Levene- test and t-test to the sample[3].
2.2. Field Experiments 1) Experimental equipments
We Beijing Key Laboratory of High Voltage & EMC designed the temperature measurement device. As it is showed in Figure 1, there are four sensors in the device. Sensor 1 is for measuring the temperature of transmission line. Sensor 2 is for measuring the reference wire. Sensor 3 and 4 are for ambient temperature.
2) Experimental methods
In the experiment of measuring real transmission line, we hang the four temperature measuring devices on wire between two towers, which span is 187.8 meters, Figure 2 shows how the devices are hanged on the wire, we re-cord a data every 5 minutes, testing for 24 hours. We use SPSS software and Excel to process data, and do Time series analysis and Paired-samples T-test to
59
山东科技大学学士学位论文 附录
the sample.
3. Analysis on Experimental Data of Temperature Sensor 3.1. Analysis on Experimental Data of Laboratory Experiments
Because of different measuring points and the differences among temperature measurements, it is difficult to analysis overall. We unify the experiment data at first. Let the measured values minus the standard to get the measure-ment error and then analyze the measurement error. The obtained experimental data were histogram, interval estimation, normal distribution hypotheses test. the sample of single sensor of measurement error is not entirely belonging to the normal distribution.
Single DS18B20 has no significant impact on measuring error, and multiple DS18B20’s 95% upper and lower limits of the confidence interval of the difference are significantly lower than single DS18B20. So that multiple sensor measurement value of mean values can significantly reduce error. Using four DS18B20’s is the most suitable plan, Considering both accuracy and economical efficiency.
DS18B20温度传感器在高压传输线动态增容中的特性分析
摘要
今天,高压电力传输线上的动态增容是解决电力传输瓶颈的最经济的方法。DS18B20温度传感器被应用在高压传输线上的动态增容,用来测量高压线上的传导温度及周围的环境温度。本文的重点是对DS18B20D在实验室和户外的测试。从实验室得到的温度测量数据分析,考虑到经济和精度的问题,使用4个DS18B20是最合适的方法。在户外的测试中,我们得
60
山东科技大学学士学位论文 附录
到了4组传导温度和周围环境温度的数据。根据分析,DS18B20有很好的稳定性,最小的测量误差。DS18B20适合在动态增容中进行传导温度和周围环境温度的测量,并且有利于提高动态增容计算的精度。
关键字:DS18B20温度传感器;测量误差;动态增容;数据分析 1引言
近些年,随着中国电力消耗的持续快速增长。在经济发达地区,由于部分低速的电网结构,传输线上的电力系统传输容量出现了瓶颈的问题,而且越来越来严重,因为受到传输线的热稳定性,暂态稳定水平和动态稳定水平的,大约有1/4的传输线的传输容量远远低于国外的水平。为了提高传输线上的传输容量,现行的方法有特高压传输、复杂的交流传输技术,动态无功功率补偿、大截面的耐热传输以及其它技术等。在各种研究方法中,提高现行传输线传输容量的方法中,增加传输线的热容量的研究已经越来越多的被大部分电力部门证明是最有效和最经济的方法。
现行传输线的容量取决于它的热平衡。传输线的容量是和各种因素有关的,例如阳光强度、风速,传输线的方向等各种参数(如直径、使用年限、交流阻抗等)和周围环境温度。传输线的最大传输容量是随着线路的温度而改变的。然而,最大传输容量只能由传导温度模型计算出来,不能实时监控。精确的实时监控传导温度是非常重要的。传导温度误差主要来自两个方面。其一是测量误差,传感误差和传感器件误差,另外一方面是数学误差。因此,本文主要是通过在实验室和户外的测试,来我们本次使用的DS18B20温度传感器的有效性和精度。
2.温度传感器测试 2.1实验室测试 1)实验器材
61
山东科技大学学士学位论文 附录
DS18B20温度传感器:测量范围-55度到125度,精度正负0.5度;两个标准水银温度计:测量范围-5度到150度,精度正负0.1 度,这是它的一个标准值;GDWJS_250湿热测试转换盒:温度范围-40度到150度,温度波动范围小于等于正负0.5,温度分布均匀度小于等于正负2度。
2)实验方法
在实验室,将8个DS18B20和1个水银温度计放在一个温湿度测试盒中,数据采集装置放在盒子外面。根据温度传感器的测温范围,我们选择0、20、30、40、60和80度作为一个测试点,当在规定的时间内达到测试温度时,我们用水银温度计和数据采集装置对测温点进行每分钟4到5次的温度数据纪录。我们使用SPSS软件进行数据处理。
2.2现场测试 1)实验器材
我们使用的是北京市高电压与电磁兼容重点实验室设计的温度测量设备。如图1所示,设备包含4个传感器,传感器1是用来测量传输线上的温度,传感器2是用来测量参考线上的温度,传感器3和4是用来测试周围环境的温度。
2)测试方法
在进行测量实时传输线上的温度的实验中,我们将温度传感器挂在两个塔中的两条线上,两塔的跨度是187.8米,图2 是说明怎么将器件挂在线上。我们测试一天的时间,每5分钟纪录一次数据。我们使用SPSS软件和Excel处理数据,做时间序列的分析和配对样本的温度测试。
3分析温度传感器的测试数据 3.1分析实验室的测试数据
由于不同的测试点和不同的温度测试方法,面面俱到的测试分析是很困难的。首先,我们结合实验数据,把我们所测得的值减去标准值得到测
62
山东科技大学学士学位论文 附录
量误差,然后对测量误差进行分析。将得到的实验数据进行直方图,区间估计,正态分布假设检验。单个温度传感器测量误差不是全部落在正态分布的区间里。
单个DS18B20对测量误差没有太大的影响,多个DS18B20的影响更是小之又小,所以多个DS18B20的测量平均值能减小误差。考虑到经济和精度问题,使用4个DS18B20是最合适的。
63
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务