基于FPGA的数显测温系统的设计
1 引言
数显测温系统的设计早期采用传感器、模数转换及中小规模数字电子集成器件组合实现,该设计模式硬件电路较复杂;随着单片机技术的发展,使得温控系统的设计硬件上趋于简洁,除了和前端传感器相关的部分采用电子电路外,其余的功能都可在单片机内部通过软件方法实现,但单片机执行程序在本质上是一维顺序的,故实时性不如前者,当工作环境恶劣,则单片机运行的可靠性也受到了很大程度的影响,如温度过高、电磁干扰等等,程序的运行就不够稳定,PC有可能跑飞,导致系统崩溃。现今,随着EDA 技术和硬件描述语言的发展和完善,其中VHDL 硬件描述语言已作为一种IEEE的工业标准,它的并发性特点很适合描述电子电路实际并行工作情况,从而提高了电路的运行速度,增强了实时性,同时它能形式化地抽象表示电路的结构和行为,降低了硬件电路设计的难度,使得基于逻辑门电路的功能复杂的大规模集成电路的再设计成为可能,在此,我们采用了Altera公司的FLEX10K 系列芯片和DALLAS 单线式温度传感器DS18B20来实现数显温度系统的设计,DS18B20 温度测量范围为-55℃~+125℃,可编程9 位~12 位A/D转换精度,测温分辨率可达0.0625℃,本设计采用默认的12位转换精度,实际显示保留一位小数,测温范围为-55℃~99.9℃,电路结构如图1,主要由DS18B20读写时序控制模块(由Mealy状态机控制)、数据格式转换模块、16 进制-BCD 转换及显示译码模块等组成,前两个较复杂的模块设计方案如下:
2 DS18B20 读写模块[1]
数字温度传感器 DS18B20 为一线式串行器件,具有线路简单,体积小的特点,但对时序有严格要求,时序如图 2:
FPGA 需完成DS18B20 的初始化、读取DS18B20 的48 位ID 号、启动DS18B20 温度转换、读取温度转换结果, 本系统中由于只有一个近距离传感器, 故读取DS18B20 的 48 位 ID 号以及 CRC 校验码计算等步骤可忽略,由于该工作过程实际上是一个不断采集、转换、显示数据的实时循环系统,考虑到状态转换时的条件较复杂,故采用Mealy 状态机[2]来实现。
状态机转换图如图 3:
各 状 态 下 需 完 成 的 工 作 以 及 转 换 条 件 如 下:
RESET1::对 DS18B20 进行第一次复位,由 FPGA 将 DQ设为低电平,然后进入 DELAY 状态,等待800 μs(满延时时间T_flag=1)。
C M D C C 1 :忽略 R O M 命令, F P G A 向 DQ 按时序串行写入 1 6 # C C # 命令.
CMD44:启动温度转换命令,FPGA 向 DQ 按时序串行写入 16#44# 命令,
DELAY1:进入 DELAY 状态等待 800 μ sRESET2: 对 DS18B20 进行第二次复位依次延时800μs
相关文章
- 2024-08-23一种新型旋转滚筒表面温度测试仪
- 2024-10-31基于网络的计量管理模式研究
- 2022-07-08安邦信变频器在建筑大厦集中供热中的应用
- 2023-01-10基于SI473X的RDS功能设计与实现
- 2023-11-02显微成像测量精密狭缝的重复精度
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。