基于C8051F040多路浸水時(shí)刻記錄電路設(shè)計(jì)
1.4 串行存儲(chǔ)器M25P80
存儲(chǔ)器M25P80存儲(chǔ)容量為8 MByte,它采用SPI數(shù)據(jù)總線的方式進(jìn)行通信。該存儲(chǔ)器有16個(gè)扇區(qū),每個(gè)扇區(qū)有256頁,每頁256 Byte。工作電壓范圍2.7~3.6 V,工作溫度范圍-40~+85℃,最大時(shí)鐘75 MHz。能進(jìn)行10萬次的擦寫,數(shù)據(jù)保存20年,體積小巧,是一款通用存儲(chǔ)器。M25P80支持的操作指令共有12條,指令格式為如圖4所示。
其中,8位的命令是必需,地址、啞元以及數(shù)據(jù)字節(jié)的有無和長(zhǎng)度會(huì)因指令的不同而有所差異,詳情如表1所列。所有的命令碼、地址、串行輸入/輸出的數(shù)據(jù),均是高位在前。
由于單片機(jī)C8051F040的工作電源3.3 V,M25P80的工作電壓范圍為2.7~3.6 V故二者可以直接相連接。具體電路圖如圖5所示。
2 軟件設(shè)計(jì)
由于整個(gè)浸水腐蝕的時(shí)間不確定,需要一個(gè)開始記錄的時(shí)間。這個(gè)開始記錄時(shí)間是以系統(tǒng)通電正常工作的時(shí)刻為準(zhǔn)。系統(tǒng)的軟件設(shè)計(jì)主要包括浸水傳感器數(shù)據(jù)的檢測(cè)程序、DS12887時(shí)鐘數(shù)據(jù)存儲(chǔ)程序和CAN通信程序3部分。
2.1 浸水傳感器數(shù)據(jù)的檢測(cè)程序設(shè)計(jì)
浸水傳感器數(shù)據(jù)的檢測(cè)程序設(shè)計(jì)采用定時(shí)器檢測(cè)的方式;當(dāng)持續(xù)檢測(cè)到浸水輸出信號(hào)3 s,則認(rèn)為此刻浸水。具體設(shè)計(jì)框圖如圖6所示。
浸水傳感器數(shù)據(jù)的檢測(cè)程序初始化后,記錄開始時(shí)間;在100 ms定時(shí)中斷中,檢測(cè)多路的浸水輸出信號(hào)。針對(duì)不同的浸水傳感器采用記錄對(duì)應(yīng)的編號(hào)同時(shí)記錄該時(shí)刻的時(shí)間。
2.2 DS12887時(shí)鐘數(shù)據(jù)存儲(chǔ)程序
時(shí)間讀取程序設(shè)計(jì)就是對(duì)DS12887芯片的內(nèi)部的4個(gè)內(nèi)部寄存器A、B、C、D進(jìn)行相應(yīng)的初始化和對(duì)其它寄存器數(shù)據(jù)的讀取。
時(shí)間數(shù)據(jù)儲(chǔ)存程序設(shè)計(jì)是通過SPI總線,將時(shí)間數(shù)據(jù)存入M25P80當(dāng)中。C8051F040中有SPI總線模式。
2.3 CAN通信程序設(shè)計(jì)
由于C8051F040器件內(nèi)部集成了Bosch CAN控制器,只需要對(duì)該控制器進(jìn)行初始化和配置便可以實(shí)現(xiàn)CAN通信。操作通過特殊功能寄存器直接或間接訪問CAN控制器中的CAN控制寄存器。
3 結(jié)束語
設(shè)計(jì)的時(shí)間記錄系統(tǒng)能應(yīng)用其他場(chǎng)合的時(shí)刻記錄。該設(shè)計(jì)具有結(jié)構(gòu)簡(jiǎn)單、功能齊全、系統(tǒng)運(yùn)行可靠的特點(diǎn)。需要注意的是,DS12887時(shí)鐘芯片啟動(dòng)后需要設(shè)定時(shí)間,這樣才能與標(biāo)準(zhǔn)時(shí)間一致。實(shí)踐證明,雖然DS12887時(shí)鐘能夠掉電后正常運(yùn)行,但時(shí)間長(zhǎng)(約3個(gè)月),需要重新設(shè)定時(shí)間以便準(zhǔn)時(shí)記錄。
評(píng)論