基于Linux的溫度傳感器DS18B20驅動(dòng)程序設計
2.3DS18B20的工作原理本文引用地址:http://dyxdggzs.com/article/163230.htm
根據DS18B20的通信協(xié)議,MCU對其操作主要有如下3個(gè)步驟:讀寫(xiě)之前,對DS18B20發(fā)送約500 μs的低電平進(jìn)行復位;復位成功,發(fā)送ROM指令;發(fā)送RAM指令。MCU對DS18B20的具體操作流程如圖4所示。
3Linux的DS18B20驅動(dòng)程序實(shí)現
選取mini2440開(kāi)發(fā)板為硬件平臺(主芯片為Samsung公司的S3C2440),選取Linux的最新內核Linux2.6.29為軟件平臺。通過(guò)mini2440的擴展接口引出GPIO口(GPBl)為數據線(xiàn)DQ。
DS18B20為單總線(xiàn)器件,因此對其操作的時(shí)序比較嚴格。DS18B20驅動(dòng)最終能否得以正常運行,獲得實(shí)時(shí)溫度值,關(guān)鍵在于能否正確地編寫(xiě)復位程序、位寫(xiě)程序和位讀程序。
3.1復位程序
對DS18B20進(jìn)行讀寫(xiě)之前要對其復位初始化,以檢測DS18B20的存在。復位要求MCU將數據線(xiàn)下拉480~960 μs,再釋放數據線(xiàn),等待約60 μs。若MCU接收到DS18B20發(fā)出的存在低電平,則表示復位成功。
下面是復位程序代碼:
評論