工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->综合电路图->传感器技术电路图->Linux系统的DS18B20驱动程序源代码

Linux系统的DS18B20驱动程序源代码

作者:dolphin时间:2011-06-27浏览次数:2693

下面是 [Linux系统的DS18B20驱动程序源代码]的电路图
  

Linux系统的DS18B20驱动程序源代码

选取mini2440开发板为硬件平台(主芯片为Samsung公司的S3C2440),选取Linux的最新内核Linux2.6.29为软件平台。通过mini2440的扩展接口引出GPIO口(GPBl)为数据线DQ。

DS18B20为单总线器件,因此对其操作的时序比较严格。DS18B20驱动最终能否得以正常运行,获得实时温度值,关键在于能否正确地编写复位程序、位写程序和位读程序。

3.1 复位程序

对DS18B20进行读写之前要对其复位初始化,以检测DS18B20的存在。复位要求MCU将数据线下拉480~960 μs,再释放数据线,等待约60 μs。若MCU接收到DS18B20发出的存在低电平,则表示复位成功。

下面是复位程序代码:

3.2写1字节子程序

发送ROM和RAM指令,需向DS18B20写入数据。写1字节子程序如下:

3.3读N字节子程序

当温度转换完毕,需从DS18B20的RAM中读取第0和第1字节的二进制数据。

读1字节子程序如下:

读N字节子程序如下:

4 结 论

本文采用模块加载的方法来调试DS18B20的驱动程序。调试结果如图5所示。

图5显示的是手离开DS18B20后温度值不断降低的情况。由显示结果可知,DS18B20驱动成功加载进了Linux2.6.29内核,能实时显示当前的温度值。

(责任编辑:电路图)


评论

技术专区