基于Linux的溫度傳感器DS18B20驅動程序設計
2.3DS18B20的工作原理本文引用地址:http://www.104case.com/article/163230.htm
根據DS18B20的通信協議,MCU對其操作主要有如下3個步驟:讀寫之前,對DS18B20發送約500 μs的低電平進行復位;復位成功,發送ROM指令;發送RAM指令。MCU對DS18B20的具體操作流程如圖4所示。
選取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發出的存在低電平,則表示復位成功。
下面是復位程序代碼:
評論