基于Linux的温度传感器DS18B20驱动程序设计时间:2010-03-0211:07:14来源:中电网作者:引言传统的模拟温度测量抗干扰能力差,放大电路零点漂移大,导致测量值误差大,难以达到所需精度
在实际应用中,采用抗干扰能力强的数字温度传感器是解决上述问题的有效办法
DS18B20是Dallas公司生产的数字温度传感器,具有体积小、适用电压宽、经济灵活的特点
它内部使用了onboard专利技术,全部传感元件及转换电路集成在一个形如三极管的集成电路内
DS18B20有电源线、地线及数据线3根引脚线,工作电压范围为3~5
5V,支持单总线接口
准确的温度测量是很多嵌入式系统中重要的一点
在Linux操作系统下使用数字温度传感器DS18B20,不仅可以得到高精度的温度测量值,而且硬件简单可靠
1Linux的设备驱动程序在Linux中,驱动程序是内核的一部分,它屏蔽了硬件细节,是整个操作系统的基础
驱动程序与Linux内核结合有两种方式:在编译内核时,静态地链接进内核;在系统运行时,以模块加载的方式加载进内核
驱动的对象是存储器和外设
Linux将存储器和外设分为3个基础类:字符设备、块设备、网络设备
字符设备是指必须以串行顺序依次进行访问的设备,不需要经过系统的快速缓冲;而块设备要经过系统的快速缓冲,可以任意顺序进行访问,以块为单位进行操作
字符设备和块设备并没有严格的界限,有些设备(如Flash)既可看作字符设备,也可作为块设备来访问
网络设备面向数据包的接收和发送而设计,并不对应于文件系统节点
内核与网络设备的通信方式完全不同于内核与字符设备、块设备的通信方式
DS18B20是单总线温度传感器,主机只能以“位”为单位对其进行访问
因此,在Linux系统中,将DS18B20作为一种典型的字符设备来访问
2DS18B20的结构和工作原理2
1DS18B20的内外结构DS1