環(huán)境監(jiān)測系統(tǒng)溫濕度傳感器自身具備A/D轉(zhuǎn)換功能,在軟件設(shè)計方面主要是完成溫濕度傳感器與主控芯片之間的數(shù)據(jù)通信,由于其自身對溫濕度的監(jiān)測具有較高的靈敏性,且集成的A/D轉(zhuǎn)換具備內(nèi)部校準機制,具有較高的準確性,在軟件設(shè)計方面主要注重其實時性。數(shù)據(jù)通信采用兩線雙向的串口連接方式,其一組完整的數(shù)據(jù)傳輸過程包括:啟動傳輸、指定位寫命令、等待傳輸結(jié)束、數(shù)據(jù)傳輸、CRC校驗。具體介紹如下:
1.啟動傳輸
環(huán)境監(jiān)測系統(tǒng)啟動溫濕度傳感器數(shù)據(jù)傳輸?shù)臅r序如下:在SCK時鐘為高電平期間,DATA由高電平翻轉(zhuǎn)為低電平,在SCK相鄰的下一個高電平時。DATA再由低電平翻轉(zhuǎn)為高電平,以此作為數(shù)據(jù)傳輸?shù)膯有盘枴?/p>
2.指定位寫命令
目前用到的寫命令地址為:000,溫濕度傳感器監(jiān)測的溫濕度數(shù)據(jù)由同一條數(shù)據(jù)線傳輸,傳輸數(shù)據(jù)由5位命令位決定(溫度數(shù)據(jù):00011;濕度數(shù)據(jù):00101),例如:下圖為在地址位000寫入傳輸濕度數(shù)據(jù)命令時序圖。
3.等待監(jiān)測結(jié)束
為了保證溫濕度監(jiān)測的實時性,環(huán)境監(jiān)測系統(tǒng)的編程采用交差采集的方法,即溫度與濕度的數(shù)據(jù)采集交替進行。但同時為了兼顧數(shù)據(jù)采集的完整性,在寫入監(jiān)測切換命令以后,要經(jīng)過至少320ms的延時,等待上一組數(shù)據(jù)監(jiān)測結(jié)束。通過下拉DATA四個時鐘周期表示進入空閑模式。接下來是2B的監(jiān)測數(shù)據(jù),其傳輸時序如下圖所示。
傳輸?shù)臑闈穸葦?shù)據(jù):100100110001,對應(yīng)濕度75.79%RH。為確保傳輸數(shù)據(jù)的正確性,選擇8位CRC奇偶校驗碼進行校驗。此外,當溫濕度傳感器與主控芯片STM32的數(shù)據(jù)通信發(fā)生異常時,溫濕度傳感器將DATA拉高9個時鐘周期,產(chǎn)生復(fù)位信號。