温度传感器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。
想表达什么?
