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