基于TSL2561的無(wú)線光強(qiáng)傳感器節(jié)點(diǎn)設(shè)計(jì)
3 軟件設(shè)計(jì)
TSL2561是一個(gè)數(shù)字傳感器,輸出信號(hào)符合I2C總線標(biāo)準(zhǔn)。該總線支持以字節(jié)方式發(fā)送和接收數(shù)據(jù)。
字節(jié)方式發(fā)送數(shù)據(jù)格式如下:
字節(jié)方式接收數(shù)據(jù)格式如下:
其中,A為應(yīng)答信號(hào),O表示響應(yīng)(ACK),1表示不響應(yīng)(NACK);S為啟動(dòng)信號(hào);P為停止信號(hào);Wr為寫(xiě)(低電平有效);Rd為讀(高電平有效)。非陰影部分為控制器到傳感器;陰影部分為傳感器到控制器。
I2C總線的SDA線和SCL線是雙向線路,當(dāng)總線空閑時(shí),這兩條線都是高電平。SDA線上的數(shù)據(jù)必須在時(shí)鐘的高電平周期保持穩(wěn)定,數(shù)據(jù)線的高或低電平狀態(tài)只有在SCL線的時(shí)鐘信號(hào)是低電平時(shí)才能改變。I2C總線的起始和停止條件分別是:當(dāng)SCL線是高電平時(shí),SDA線從高電平向低電平切換表示起始條件;SDA線由低電平向高電平切換表示停止條件。由于I2C總線上的數(shù)據(jù)是以8位傳送的,為確保發(fā)送器發(fā)送的每個(gè)字節(jié)都被接收器收到,在第9個(gè)時(shí)鐘脈沖期間,數(shù)據(jù)線被釋放,由接收器反饋一個(gè)確認(rèn)信號(hào)。確認(rèn)信號(hào)為低電平時(shí),規(guī)定為有效確認(rèn)位(用ACK表示),表示接收器已經(jīng)成功地接收了該字節(jié);確認(rèn)信號(hào)為高電平時(shí),規(guī)定為非確認(rèn)位(用NACK表示),表示接收器接收該字節(jié)沒(méi)有成功。
評(píng)論