基于FPGA的温度监控系统 联系客服

发布时间 : 星期四 文章基于FPGA的温度监控系统更新完毕开始阅读

山东科技大学学士学位论文 系统的硬件设计

图3.3 初始化时序原理图

3.1.1.2写时序

因为本设计总线上只挂了一个DS18B20,所以不用读取64位序列号,直接发送忽略rom命令skin rom,如图3.4所示。

图3.4 写时序原理图

写时序有写1和写2时序,首先将总线拉低电平,拉低后15us之内必须把所要向DS18B20写的数据传到总线上,DS18B20将在15us-60us内采样总线上的数据,如果为高则写1,为低则写0;写完一次后释放总线。每两次写数据之间时隙要大于1us。 3.1.1.3读时序

读时序时,总线拉低电平大于1us后,然后释放总线准备接收DS18B20

13

山东科技大学学士学位论文 系统的硬件设计

传来的数据,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 跳过命令,然后发出 Convert T变换命令,可以完成温度变换。 3.1.1.5 数据输出

控制器从DS18B20接收的16位温度值为12位,精度为0.0625, DS18B20用12位存贮温值度。最高位为符号位,正温度 S=0 如0550H为+85度,0191H为25.0625度,FC90H为-55 度,如图3.6所示。

14

山东科技大学学士学位论文 系统的硬件设计

图3.6 温度寄存器格式表

本次试验显示忽略了小数位,只取整数位,那么只取data[10:4]这7位,便是温度的整数值。

3.2 数据处理模块

数据处理是在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公司又研制出了可编程阵列逻辑器件(Programmable Array Logic,PAL)。 3.2.1 可编程逻辑器件的发展历程

工程师们发明的PROM解决了ROM很难存储代码的问题。工程师通

15

山东科技大学学士学位论文 系统的硬件设计

过PROM提供的一个简单且与芯片有关的编程器,将代码写入芯片中。烧入后的PROM在断电后可以保存数据。但是PROM的缺点是它的速度与输入端受到一定的限制。为了解决这个问题就出现了Programmable Logic Array(PLA),许多和“与”阵列相连接的输入端构成了PLA,同时还将“与”阵列的输出连接到“或”阵列,最后产生输出。PLA结构示意图如3.7所示。

图3.7 PLA的结构示意图

PAL是在PLA的基础上发展起来的一个新版本,它们的共同点是都含有“与”阵列。不同的地方在于“或”阵列是否可以编程,其中PLA是可编程的,而PAL是固定的不可以编程的。很明显,这样的设计限制了参与“或”运算的个数,但是由于输入和输出端都加了反相器,工程师想实现逻辑函数的话,可以选择执行“与”和“或”阵列两种不同的方案,这种做法还是可以使得PAL能够实现很多布尔表达式。另外,PAL具有简化编程算法、运算速度提高等优点被适用于中小规模可编程电路中[6]。 3.2.2 可编程逻辑器件的分类

由于可编程逻辑器件供应厂家非常多,而且名称也不尽相同,因此有不同的分类方法。

16