DHT11時序(下)
數(shù)據(jù)傳輸?shù)臅r序還存在嚴(yán)格的順序約定:40位數(shù)據(jù)按“濕度整數(shù)(8位)→濕度小數(shù)(8位)→溫度整數(shù)(8位)→溫度小數(shù)(8位)→校驗和(8位)”的順序傳輸,且每個字節(jié)內(nèi)部按“最高位(MSB)→最低位(LSB)”的順序逐位發(fā)送。例如,傳輸濕度整數(shù)“37%RH”(二進制00100101)時,傳感器會先發(fā)送最高位“0”,再依次發(fā)送后續(xù)7位,直至最低位“1”。主機需連續(xù)捕獲40個數(shù)據(jù)位的時序信號,逐一解析為字節(jié)數(shù)據(jù),再通過校驗和驗證完整性——校驗和為前四個字節(jié)的累加和取低8位,若計算結(jié)果與接收的校驗和一致,則數(shù)據(jù)有效;若不一致,則需重新發(fā)起測量。
DHT11的時序還存在兩個重要的約束條件:一是測量周期,傳感器完成一次溫濕度采集與數(shù)據(jù)傳輸后,需進入至少1秒的休眠期,期間不響應(yīng)新的啟動信號,若主機頻繁發(fā)起通信(間隔小于1秒),傳感器會因內(nèi)部AD轉(zhuǎn)換未完成而拒絕應(yīng)答;二是電平切換的穩(wěn)定性,總線電平從低到高的恢復(fù)速度,受上拉電阻阻值和布線電容影響——阻值過大(如超過10kΩ)會導(dǎo)致電平恢復(fù)緩慢,延長時序誤差;布線過長(超過2米)或靠近強干擾源,會導(dǎo)致電平跳變出現(xiàn)毛刺,干擾時序判斷。因此,實際應(yīng)用中需搭配0.1μF的電源去耦電容,減少電源噪聲對時序的影響,同時控制DATA線長度,必要時采用屏蔽線。
時序控制的實現(xiàn)方式直接影響通信可靠性。對于資源豐富的MCU(如STM32、Arduino),可通過硬件定時器捕獲電平跳變沿,精準(zhǔn)計算時長,避免軟件延時的不穩(wěn)定性;對于8位51單片機等資源有限的平臺,需通過匯編指令或循環(huán)計數(shù)校準(zhǔn)微秒級延時,例如用空指令循環(huán)實現(xiàn)26μs的低電平檢測,確保計時誤差控制在±10%以內(nèi)(DHT11允許的最大時序誤差)。常見的時序故障排查,也圍繞這些細(xì)節(jié)展開:若啟動信號拉低不足18ms,會導(dǎo)致無應(yīng)答;若數(shù)據(jù)位高電平測量偏差超過10μs,會導(dǎo)致“0”“1”誤判;若未等待1秒測量周期,會導(dǎo)致數(shù)據(jù)重復(fù)或錯誤。
從主機啟動信號的18ms低電平,到傳感器應(yīng)答的兩段80μs電平,再到數(shù)據(jù)位的脈沖寬度編碼,每一個參數(shù)都服務(wù)于“無時鐘線的雙向通信”。其時序設(shè)計雖不及DS18B20嚴(yán)苛,但仍需精準(zhǔn)控制——正是這種“簡化硬件、嚴(yán)格時序”的設(shè)計思路,讓DHT11在低成本場景中實現(xiàn)了可靠的溫濕度傳輸。無論是入門級開發(fā)還是量產(chǎn)產(chǎn)品設(shè)計,把握時序的核心參數(shù)與約束條件,都是確保傳感器穩(wěn)定工作的關(guān)鍵。





