精確把握DS18B20讀寫(xiě)時(shí)序延長(cháng)連接距離
后經(jīng)對DS18B20傳感器的讀寫(xiě)子程序分析及對傳感器讀寫(xiě)時(shí)序波形分析得出的結論,是因為讀寫(xiě)子程序對DS18B20傳感器的讀寫(xiě)的時(shí)序把握不夠準確造成的。下面就DS18B20傳感器的讀寫(xiě)的時(shí)序把握度進(jìn)行分析,希望能對初步接觸該傳感器的人員有所幫助。
DSl8B20傳感器對讀寫(xiě)時(shí)序的要求
首先對DS18B20傳感器的讀寫(xiě)時(shí)序的要求進(jìn)行分析和了解。按D S 1 8 B 2 0 器件手冊介紹, 對DSl8B20寫(xiě)數據時(shí),主機產(chǎn)生讀時(shí)間片。當主機把I/O數據總線(xiàn)從邏輯高電平拉至邏輯低電平時(shí),低電平持續時(shí)間最少1μs,就產(chǎn)生寫(xiě)時(shí)間片。在變?yōu)榈碗娖?5μs之后,DSl8B20在15~45μs之間對線(xiàn)采樣,如果線(xiàn)為高電平,寫(xiě)1就發(fā)生,如果線(xiàn)為低電平,便發(fā)生寫(xiě)0。時(shí)間片必須有最短為60μs的持續期,各寫(xiě)周期之間必須有最短為1μs的恢復時(shí)間。圖2為DS18B20生產(chǎn)廠(chǎng)家提供的讀寫(xiě)時(shí)序圖。
從DSl8B20讀數據時(shí),主機產(chǎn)生讀時(shí)間片。當主機把數據線(xiàn)從邏輯高電平拉至低電平時(shí),產(chǎn)生讀時(shí)間片。低電平持續時(shí)間至少1μs;來(lái)自DS18B20 的輸出數據在讀時(shí)間片下降沿之后15μs有效,因此,在產(chǎn)生讀時(shí)間片15μs后主機必須停止把I/O線(xiàn)驅動(dòng)至低電平,由上拉電阻拉回至高電平,主機在15μs末期對數據線(xiàn)采樣,如果線(xiàn)為高電平,就讀為1,如果線(xiàn)為低電平,便讀為0。讀時(shí)間片的最短持續期限為60μs,各讀時(shí)間片之間必須有最短為1μs的恢復時(shí)間。 在處理高低電平跳變時(shí),還有必要了解DS18B20傳感器直流參數特性。其特性為:I/O口檢測低電平范圍為-0.3~0.8V,高電平范圍為2.2~5.5V,同單片機的I/O口檢測低電平范圍為-0.5V~0.2Vcc-0.1 V和高電平范圍為0.2Vcc+0.9V~Vcc+0.5V基本上相同。
數據連接線(xiàn)纜對讀寫(xiě)數據波形的影響
針對微秒級數據脈沖信號,對于較長(cháng)的數據線(xiàn)纜,不應僅看作純阻性線(xiàn)纜,應充分考慮線(xiàn)纜中存在的分布電容對數據脈沖信號在跳變時(shí)造成延時(shí)和變形的影響。其等效電路原理見(jiàn)圖3。一般線(xiàn)芯的內阻遠小于上拉電阻,決定延時(shí)量的是上拉電阻與分布電容乘積。在上拉電阻一定的情況下,線(xiàn)纜越長(cháng),其分布電容越大,對數據脈沖信號影響也就越大。電纜的材料、結構、工藝等不同,其存在的分布電容指標亦不同,良好的同軸線(xiàn)纜分布電容一般在60 pF/m以下,而扁平排線(xiàn)相鄰線(xiàn)芯間的分布電容在300pF/m左右。
用記憶示波器在連接10m長(cháng)RVV3×0.5mm2型線(xiàn)纜的傳感器上觀(guān)察到的數字波形見(jiàn)圖4(上拉電阻為5kΩ)。從圖4中可看出,在t 1時(shí)刻主機將數據線(xiàn)拉低,在t 2時(shí)刻才能被DS18B20識別為低電平,延遲了3μs。在t 3時(shí)刻主機釋放數據線(xiàn),在上拉電阻的作用下,在t 4時(shí)刻才上升為被DS18B20識別的高電平,延遲了3μs。從t 2到t 4時(shí)刻,對DS18B20來(lái)說(shuō),是近19μs低電平。因此,在采用較長(cháng)線(xiàn)纜時(shí),如對傳感器讀寫(xiě)時(shí)刻把握不準確的話(huà),會(huì )因使對讀寫(xiě)的數據信號產(chǎn)生時(shí)延變形而不符合DS18B20對讀寫(xiě)時(shí)序的要求,使對其讀寫(xiě)操作失敗。在選用較長(cháng)數據線(xiàn)纜時(shí),還應考慮抗干擾的問(wèn)題,因此建議盡量采用雙絞線(xiàn)或帶屏蔽的雙絞線(xiàn)作傳感器的數據線(xiàn)纜。
評論