溫濕度傳感器SHT15及其在嵌入式系統(tǒng)中的應(yīng)用
控制器發(fā)出啟動命令后,接著發(fā)出一個后續(xù)8為命令碼。后續(xù)命令包含3個地址位(目前只支持000’)和5個命令位。相應(yīng)代碼對應(yīng)的命令集如表2所示。本文引用地址:http://www.ex-cimer.com/article/150952.htm
SHT15接收到上述地址和命令碼后,在第8個時鐘下降沿,將DATA下拉為低電平作為從機(jī)的ACK;在第9個時鐘下降沿之后,從機(jī)釋放DATA(恢復(fù)高電平)總線;釋放總線后,從機(jī)開始測量當(dāng)前濕度,測量結(jié)束后,再次將DATA總線拉為低電平;主機(jī)檢測到DATA總線被拉低后,得知濕度測量已經(jīng)結(jié)束,給出SCK時鐘信號;從機(jī)在第8個時鐘下降沿,先輸出高字節(jié)數(shù)據(jù);在第9個時鐘下降沿,主機(jī)將DATA總線拉低作為ACK信號。然后釋放總線DATA;在隨后8個SCK周期下降沿,從機(jī)發(fā)出低字節(jié)數(shù)據(jù);接下來的SCK下降沿,主機(jī)再次將DATA總線拉低作為接收數(shù)據(jù)的ACK信號;最后8個SCK下降沿從機(jī)發(fā)出CRC校驗數(shù)據(jù),主機(jī)不予應(yīng)答(NACK)則表示測量結(jié)束。
本設(shè)計中微處理器為三星公司的S3C2440A,通過對I/O寄存器編程來模擬通信過程。該處理器的I/O口可根據(jù)需要設(shè)置成輸入、輸出,高阻等狀態(tài)。在軟件實現(xiàn)過程中通過子函數(shù)來實現(xiàn)I/O口狀態(tài)的改變。
以上函數(shù)可以實現(xiàn)SCK和DATA總線的各種輸入與輸出狀態(tài)。在SHT15的通信中還需要延時函數(shù),設(shè)計時采用函數(shù)void DelaylIn8(U32 tt)實現(xiàn)軟延時。這樣就能完成對SHT15通信協(xié)議的模擬。
評論