当前位置:首页 > ds18b2详解及程序(活动za)
最近都在学习和写单片机的程序, 今天有空又模仿温度测量显示实验写了一个与基于单总线通信的程序.
数字温度传感器(参考:智能温度传感器的原理与应用)是 公司生产的-,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计。 产品的特点:
()、只要求一个 口即可实现通信。
()、在 中的每个器件上都有独一无二的序列号。
()、实际应用中不需要外部任何元器件即可实现测温。
()、测量温度范围在- 到+℃之间; 在 ℃范围内误差为±℃;
()、数字温度计的分辨率用户可以从 位到 位选择。将位的温度值转换为数字量所需进度不超过; ()、内部有温度上、下限告警设置。
引脚分布图
详细引脚功能描述: 、 地信号。
、数据输入出引脚。开漏单总线接口引脚。当被用在寄生电源下,此引脚可以向器件提供电源。漏极开路, 常太下高电平. 通常要求外接一个约Ω的上拉电阻.
、可选择的 引脚。电压范围; 当工作于寄生电源时,此引脚必须接地。
存储器结构图
暂存储器的头两个字节为测得温度信息的低位和高位字节; 第, 字节是和的易失性拷贝, 在每次电复位时都会被刷新; 第字节是配置寄存器的易失性拷贝, 同样在电复位时被刷新; 第字节是前面个字节的检验值.
配置寄存器的命令内容如下:
和是温度值分辨率位, 按下表进行配置.默认出厂设置是 , 即位.
温度值分辨率配置表 分辨率 最大转换进度() () () () () 种分辨率对应的温度分辨率为℃, ℃, ℃, ℃(即最低一位代表的温度值)
位分辨率时的两个温度字节的具体格式如下: 低字节: ^ ^ ^ ^ ^ ^ ^ ^
高字节: ^ ^ ^
其中高字节前位都是符号位, 若分辨率低于位时, 相应地使最低为, 如: 当分辨率为位时, 低字节为: ^ ^ ^ ^ ^ ^
, 高字节不变....
一些温度与转换后输出的数字参照如下: 温度 ℃ ℃ ℃ ℃ ℃ ℃ ℃ ℃ ℃ ℃ 数字输出 换成进制 由上表可看出, 当输出是负温度时, 使用补码表示, 方便计算机运算(若是用语言, 直接将结果赋值给一个变量即可).
的使用方法:
由于 采用的是- 总线协议方式,即在一根数据线实现数据的双向传输,而对单片机来说,我们必须采用软件的方法来模拟单总线的协议时序来完成对芯片的访问。
由于是在一根线上读写数据,因此,对读写的数据位有着严格的时序要求。 有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:初始化时序(()实现)、读时序(())、写时序(())。
所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。
与单片机连接电路图:
利
用软件模拟的单线协议和命令:主机操作必须遵循下面的顺序 . 初始化
单线总线上的所有操作都是从初始化开始的. 过程如下:
)请求: 主机通过拉低单线以上, 产生复位脉冲, 然后释放该线, 进入接收模式. 主机释放总线时, 会产生一个上升沿脉冲.
: > () >
)响应: 检测到该上升沿后, 延时, 通过拉低总线来产生应答脉冲.
: () > ()
)接收响应: 主机接收到从机的应答脉冲后, 说明有单线器件在线. 至此, 初始化完成. :
. 操作命令
当主机检测到应答脉冲, 便可发起操作命令. 共有类操作命令, 如下表 命令类型 读 匹配 跳过 搜索 告警搜索 命令字节 功能 读取激光中的位,只能用于总线上单个器件情况, 多挂时会发生数据冲突 此命令后跟位序列号,寻址多挂总线上的对应.只有序列号完全匹配的才能响应后面的内存操作命令,其他不匹配的将等待复位脉冲.可用于单挂或多挂两种情况. 可无须提供位序列号即可运行内存操作命令, 只能用于单挂. 通过一个排除法过程, 识别出总线上所有器件的序列号 命令进程安排与 相同, 但只有最近的一次温度测量时满足了告警触发条件的, 才会响应此命令.
. 内存操作命令
在成功执行操作命令后, 才可使用内存操作命令. 共有种内存操作命令: 命令类命令型 字节 写暂存器 读暂存器 复制暂存器 温度转换 重调暂存器 读供电方式 功能 写暂存器中地址地址的个字节(和配置寄存器)在发起复位脉冲之前个字节都必须要写. 读取暂存器内容,从字节一直到字节, 共个字节,主机可随时发起复位脉冲,停止此操作,通常我们只需读前个字节. 将暂存器中的内容复制进, 以便将温度告警触发字节存入非易失内存. 如果此命令后主机产生读时隙, 那么只要器件还在进行复制都会输出, 复制完成后输出. 开始温度转换操作. 若在此命令后主机产生时隙, 那么只要器件还在进行温度转换就会输出, 转换完成后输出. 将存储在中的温度告警触发值和配置寄存器值重新拷贝到暂存器中,此操作在加电时自动产生. 主机发起此命令后每个读数时隙内会发信号通知它的供电方式寄生电源, 外部供电.
. 数据处理
要求有严格的时序来保证数据的完整性. 在单线上, 有复位脉冲, 应答脉冲, 写, 写, 读, 读这种信号类型. 除了应答脉冲外, 其它都由主机产生. 数据位的读和写是通过读、写时隙实现的.
共分享92篇相关文档