单总线温度传感器的EDA控制方法

1 硬件接口电路 ds18b20是单总线数字温度传感器,测量温度范围从-55℃到125℃,测量精度为±0.5℃,通过单总线可直接输出所测温度的二进制数据,数字量的输出位数可通过编程控制,在9位至12位(含符号位)之间选择。该器件有三个端口,分别是电源端、地端、单总线数据端,在使用时将fpga的i/o口和ds18b20的单总线连接,通过单总线实现fpga与ds18b20之间的数据收发,接口电路如图1所示。
2 软件控制程序
控制ds18b20进行温度测量和读取主要包括三个步骤:器件初始化、发送写寄存器命令和发送读寄存器命令,该功能代码写在核心控制模块中,软件流程如图2所示。其中初始化是通过fpga向总线发送低电平复位信号,持续时间为480-600us,然后fpga释放总线,单总线经过上拉电阻会被拉至高电平,当ds18b20检测到上升沿之后,等待15-60us后将发出60-256us的低电平存在脉冲作为响应,如果fpga检测到响应脉冲则初始化成功。
初始化成功后,fpga通过向总线发送命令来控制传感器的温度采集,程序中用到的主要命令如下:0xcc为跳过rom检测命令;0x44为启动温度转换命令;0xbe为从ds18b20读取温度测量数值。
在顶层代码中除了核心控制模块外,还包括包括分频模块和显示模块。
其中,分频模块将实验板上50m hz时钟转换为1mhz输出到核心控制模块,用于控制fpga对单总线的读、写时序。
显示模块用于将读取到的温度数据转换为十进制数据,并通过数码管进行动态显示。由于温度寄存器默认采用12位二进制数据来存储,最高位为符号位,温度分辨率为0.0625℃,如图3所示。当温度为正数时符号位为0;当温度为负数时符号位为1,且数据位采用补码的形式。因此,将温度转换成十进制数据时,首先判断符号位,当符号位为1时,先由二进制数据求出原码,再转换为十进制,最后乘以温度分辨率0.0625得到实测温度;当符号位为0时,直接将二进制转换为十进制,再乘以温度分辨率。
将编译好的sof程序下载到实验板中运行,能够实现环境温度的测量和显示,实际效果如图5所示。基于以上方法的温度控制系统硬件电路简单,实时性强,能够进行多路温度监控,应用范围广泛。

基于ZIGBEE和RFID结合的物流管理系统分析
DS3660 安全存储器和可编程篡改检测加密处理器
智能手机如何实现无线上网?各有什么优缺点?
优傲机器人在深圳宝安壹方城举行了乔迁仪式庆典
美国顶级大学和微软联盟 用AI和超级计算机解决新冠病毒
单总线温度传感器的EDA控制方法
元旦后再掀小米手机抢购风 全靠口碑传播
亚马逊宣布推出云游戏平台Luna,服务基于亚马逊网络服务云平台运行
信创更要零信任丨芯盾时代入选《2023年中国信创网络安全产品竞争力象限》报告
嵌入式开发过来人的经验之谈
基于扫频RCS系统实现吸波涂料测量仪的设计
电磁阀损坏有什么表现
爱立信推出智能自动化平台和rApp套件助力移动网络实现网络智能自动化
可被多种方式干扰的无人机到底该如何避免呢
加州大学伯克利分校研发可以操控的机器人
华为P20 Pro详细评测:能否完虐iPhone X、三星Galaxy S9+?
骨传导耳机的原理是什么,什么人群适合用骨传导耳机
旋转花键磨损后如何修复?
u盘usb2.0和usb3.0
单对以太网 (SPE) DZ17 系列 连接器