微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 温度传感器DS18B20逻辑设计

温度传感器DS18B20逻辑设计

时间:10-02 整理:3721RD 点击:

DS18B20依靠一个单线端口进行通信,测温范围为-55~+125℃,温度分辨率为9~12bit,上电后默认为12bit。每个温度传感器有一个独特的序列码,当总线上连接多个DS18B20时,总线依靠序列码对特定的传感器进行操作。


由于本开发板只外挂一个DS18B20,因此不需要发送匹配ROM命令[55h],只发送忽略ROM指令[CCh]即可,然后再发送DSB18B20功能指令。

每一次操作DS18B20的协议如下:

1)初始化DS18B20;

2)ROM操作指令;

3)DS18B20功能指令。

本设计中的读取DS18B20的步骤:

1)初始化;

2)发送忽略ROM指令[CCh];

3)发送DS18B20温度转换指令[44h];

4)初始化;

5)发送忽略ROM指令[CCh];

6)发送读取暂存器指令[BEh];

7)开始读取总线上的数据,读取12次后完成一次温度的读取。

初始化过程:

在初始化过程中,主机通过拉低单总线至少480μs,以产生复位脉冲(TX)。然后主机释放总线并进入接收(RX)模式。当总线被释放后,5kΩ的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15μs~60μs,通过拉低总线60μs~240μs产生应答(存在)脉冲。

因为默认硬件工作正常,不需要检测存在脉冲,简化后的初始化步骤:

1)主机拉低总线500us,然后释放总线;

2)等待500us,初始化完成。

主机向DS18B20写1步骤:

1)主机拉低总线10us,然后释放总线;

2)等待60us;

3)等待2us恢复时间,完成一次写1操作,总共需要72us。

主机向DS18B20写0步骤:

1)主机拉低总线70us;

等待2us恢复时间,完成一次写0操作,总共需要72us。

主机读取DS18B20的温度数据步骤:

1)主机拉低总线2us,然后释放总线;

2)等待10us,在10us结束时进行一次总线数据采样;

3)等待60us,其中包含2us的恢复时间,完成一次数据采样,总共需要72us。

想表达什么?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top