ONE-WIRE单总线&DS18B20

ONE-WIRE

一根通信线:DQ

通讯方式:异步,半双工

单总线只需要一根通信线即可实现数据的双向传输,当采用寄生供电时,还可以省去设备的VDD线路,此时,供电加通信只需要DQ和GND两根线。

电路规范

时序结构

总线空闲时为高电平

中间弧线意为弱上拉(上拉能力较弱,若为强上拉,则为一条直线)

*单总线时序结构不允许中途有中断,其工作无法停止,一旦中断,则时间引起冲突

注意:从机读取电平前的30us包括主机之前拉低总线的1~15us

主机读取数据的时间较短(在15us末尾)

主机将总线拉低后释放然后读取,若总线未回归高电平仍为低电平则可认为从机将其拉低,想要发送0,主机接收0;若释放后总线回归高电平,则可认为从机想要发送1,主机接收1。

DS18B20

DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出。

测温范围:-55~+125

通信接口:1-Wire(单总线)

其他特征:可形成总线结构、内置温度报警功能、可寄生供电 

内部结构框图:

4.7K是一个上拉电阻,组成一个开漏输出结构

有外部电源供电:

通过VDD外部电源供电,电流从下方二极管经过,走中下两条路,下路中POWER SUPPLY SENSE感应是否有VDD存在,从而调节内部结构,达到省电目的

无外部电源供电(VDD必须接地 误差较大):

PARASITE POWER CIRCUIT 寄生电源电路,通过Cpp电容放电来供电,

当数据线DQ为高的时候由其为设备供电。总线拉高的时候为内部电容(Cpp)充电,当总线拉低时由该电容向设备供电。

电容的能量也能来自VDD。

TEMPERATURE SENSOR:将数据放在SCRTACHPAD(一个ROM)

ALARM HIGH TRIGGER:报警高触发寄存器,存储温度上限阈值(掉电不丢失)

ALARM LOW TRIGGER:报警低触发寄存器,存储温度下限阈值

CONFIGURATION REGISTER:配置寄存器,可以设置分辨率,分辨率降低,温度转化速度可以提升

CRC:校验码,判断是否数据输入错误

MATCH ROM:发送从机的设备地址进行读写操作

SKIP ROM:跳过MEMORY CONTROL LOGIC,直接读写数据(只有一个从机时可用,不然多个从机同时接收发送数据容易造成混乱)

CONVERT:温度变换(将新的温度放到暂存器里,更新温度显示)

WRITE SCRATCHPAD:将数据写到图54暂存器里Byte234中

READ SCRATCHPAD:依次读取Byte0~8,本节只需前两个字节即可读取温度

COPY SCRATCHPAD:将暂存器Byte234复制到E2PROM

RECALL E2: 将E2PROM Byte234复制到暂存器中

READ POWER SUPPLY:读取供电方式,如果是寄存供电后续需要强上拉提供电流

                                                图62

上面是低八位,下面是高八位,将高八位移到低八位前面,组成16位数据。前五位BIT15-11代表温度的正负(正温度是负温度的补码),后四位BIT3-BIT0是温度的小数部分(BIT3=1,则代表0.5;BIT2=1,则代表0.25;BIT1=1,则代表0.125;BIT0=1,则代表0.0625。以二分的规律变化)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值