基于SD2300的定時(shí)采集存儲(chǔ)系統(tǒng)設(shè)計(jì)
3 軟件設(shè)計(jì)
3.1 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件的設(shè)計(jì)流程如圖4所示。首先完成系統(tǒng)的初始化工作,包括C8051F021的初始化和SD2300的定時(shí)中斷設(shè)置,然后系統(tǒng)進(jìn)入等待狀態(tài)。待到達(dá)預(yù)定時(shí)刻后,SD2300發(fā)出定時(shí)中斷,使C8051F021進(jìn)入中斷處理程序,進(jìn)行數(shù)據(jù)采集和存儲(chǔ)。存儲(chǔ)完畢,系統(tǒng)再次進(jìn)入等待狀態(tài),等待下一次定時(shí)中斷的到來。
3.2 SD2300的軟件接口設(shè)計(jì)
SD2300的I2C接口與C8051F021的GPIO相連,通過GPIO來模擬I2C,編程簡(jiǎn)單,操作方便。SD2300的訪問控制通過寄存器直接尋址實(shí)現(xiàn),其內(nèi)部的寄存器如表1所列。
SD2300通過兩線式串行接口方式接收各種命令并讀寫數(shù)據(jù)。下面具體介紹兩線式串行接口方式。
①開始條件:當(dāng)SCL處于高電平時(shí),SDA由高電平變成低電平構(gòu)成一個(gè)開始條件。對(duì)SD2300的所有操作均必須由開始條件開始。
②停止條件:當(dāng)SCL處于高電平時(shí),SDA由低電平變成高電平構(gòu)成一個(gè)停止條件。此時(shí)SD2300所有的操作均停止,系統(tǒng)進(jìn)入待機(jī)狀態(tài)。
③數(shù)據(jù)傳輸:當(dāng)SCL為低電平,且SDA電平變化時(shí),數(shù)據(jù)由C8051F021傳輸給SD2300;當(dāng)SCL為高電平,且SDA電平不變時(shí), C8051F021讀取SD2300 E2PROM發(fā)送來的數(shù)據(jù);當(dāng)SCL為高電平,且SDA電平變化時(shí),SD2300收到一個(gè)開始或停止條件。
④確認(rèn):數(shù)據(jù)傳輸以8位序列進(jìn)行。SD2300在第9個(gè)時(shí)鐘周期時(shí)將SDA置位為低電平,即送出一個(gè)確認(rèn)信號(hào),標(biāo)明數(shù)據(jù)被其收到。
評(píng)論