精確把握DS18B20讀寫(xiě)時(shí)序延長(cháng)連接距離
換位理解DSl8B20傳感器對讀寫(xiě)時(shí)序的要求
圖2是對DS18B20傳感器讀寫(xiě)時(shí)序在主機處的波形圖,如果是在DS18B20處的話(huà),其波形圖應如圖5所示??紤]實(shí)際長(cháng)短數據線(xiàn)的影響,對讀寫(xiě)時(shí)序的要求理解為:對DSl8B20 寫(xiě)數據時(shí),主機產(chǎn)生讀時(shí)間片。當主機把I/O數據線(xiàn)在7μs時(shí)間內從高邏輯電平拉至低邏輯電平時(shí),維持時(shí)間最少1μs就產(chǎn)生寫(xiě)時(shí)間片。如寫(xiě)入0,則應維持低電平45~60μs以上,如寫(xiě)入1,應在第8μs后釋放數據線(xiàn),在7μs 時(shí)間內拉到為邏輯高電壓, 并維持45~60μs以上。寫(xiě)時(shí)間片必須有最短為60μs的持續期,在各寫(xiě)周期之間必須有最短為1μs的恢復時(shí)間。從DS18B20 讀數據時(shí),主機產(chǎn)生讀時(shí)間片。主機在7μs時(shí)間內把數據線(xiàn)從邏輯高電平拉至低電平,產(chǎn)生讀時(shí)間片。數據線(xiàn)必須保持在邏輯低電平至少1μs;來(lái)自DS18B20的輸出數據在讀時(shí)間片下降沿之后15μs有效。因此,在產(chǎn)生讀時(shí)間片8μs后主機必應把I/O 數據線(xiàn)釋放,由上拉電阻將數據線(xiàn)拉回至邏輯高電平,主機在15μs末期對數據線(xiàn)采樣,如果線(xiàn)為高電平,就讀為1,如果線(xiàn)為低電平,便讀為0。讀時(shí)間片的最短持續期限為60μs,各個(gè)讀時(shí)間片之間必須有最短為1μs的恢復時(shí)間。在考慮到線(xiàn)纜對波形的延遲和DS18B20傳感器發(fā)送數據表現的典型時(shí)間,在實(shí)際操作中,建議將主機對數據線(xiàn)的采樣滯后5~9μs,可提高正確讀取DS18B20的可靠性。
對DS18B20的讀寫(xiě)程序探討
經(jīng)過(guò)上面的分析和了解后,參見(jiàn)圖1,對接在P1.0口上的DS18B20傳感器讀寫(xiě)子程序進(jìn)行修改,分別見(jiàn)“寫(xiě)子程序”和“讀子程序”。將修改后的對DS18B20傳感器讀寫(xiě)子程序移入主程序并寫(xiě)入89C51單片機,對用RVV3×0.5mm2型線(xiàn)纜為傳感器連線(xiàn),用1~50m傳感器連線(xiàn),在高、低溫環(huán)境條件下進(jìn)行了試驗驗證,溫控儀工作正常,穩定可靠。題圖為我公司溫控儀的照片。
評論