基于C8051F040多路浸水時刻記錄電路設(shè)計
摘要 針對某型航行器自沉系統(tǒng)中,需要掌握某合金材料在海水中因不同溫度條件下的受腐蝕時間長短。采用模塊化硬件設(shè)計,使用浸水傳感器為檢測單元、時鐘芯片DS12887為計時模塊;以C8051F040為微處理器和串行M25P80為存儲模塊設(shè)計浸水時間記錄系統(tǒng)。外部數(shù)據(jù)通信采用CAN總線。通過實踐證明,DS12887時鐘能在掉電后正常運行,但時間長,需要新設(shè)定時間,以便準時記錄。
關(guān)鍵詞 浸水傳感器;DS12887;串行存儲器;CAN
在某型水下航行器自沉系統(tǒng)中,某合金材料在海水中一定時間內(nèi)能正常工作,但正常時間過后會被海水腐蝕;從而實現(xiàn)該航行器的自沉功能。為此設(shè)計了該電路,用以測試鋁鉻合金材料在不同溫度的多組時間信息。
1 系統(tǒng)硬件結(jié)構(gòu)
基于C8051F040多路浸水時刻記錄電路硬件部分由6個主要模塊組成:浸水傳感器、信號電平轉(zhuǎn)換電路、達接斯時鐘模塊、串行存儲器M25P80模塊、單片機C8051F040模塊和CAN通訊模塊。系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。
1.1 單片機08051F040
C8051F040由美國Silicon Labs公司設(shè)計,對原51單片機內(nèi)核進行了較大改造,由原來12個時鐘執(zhí)行一條指令,改進為一個時鐘執(zhí)行一條單周期指令,多數(shù)指令執(zhí)行的時鐘周期數(shù)與指令的Byte數(shù)相同,使得該款單片機的運行速度大幅提高。C8051F040具有64個數(shù)字I/O引腳,片內(nèi)集成了一個CAN2.0B控制器。主要特性如下:(1)高速、流水線結(jié)構(gòu)的8051兼容的CIP-51內(nèi)核(可達25 MI·s-1)。(2)控制器局域網(wǎng)(CAN 2.0B)控制器,具有32個消息對象,每個消息對象有其自己的標識。(3)硬件實現(xiàn)的SPI、SMBus/I2C和兩個UART串行接口。(4)5個通用16位定時器。(5)具有6個捕捉/比較模塊的可編程計數(shù)器/定時器陣列。
1.2 浸水傳感器及電平轉(zhuǎn)換電路
浸水傳感器采用自行研制的浸水模塊,該模塊接口簡單,只需5根線分別為:浸水傳感器測試點A、浸水傳感器測試點B、供電電源24V、供電電源地、感應輸出OUT24V。當浸水傳感器測試點A和浸水傳感器測試點B接觸或之間有水使A、B導通,這樣A、B間的電阻由無窮大變?yōu)閹?Omega;甚至零。通過比較電路從而輸出供電電壓24 V,而單片機C8051F040I/O口能夠承受的電壓僅為5 V。電平轉(zhuǎn)換電路采用光電隔離芯片TLP28 1-4電路圖如圖2所示。
1.3 時鐘芯片DS12887
DS12887是美國達拉斯半導體公司推出的時鐘芯片,采用CMOS技術(shù)制成,把時鐘芯片所需的晶振和外部鋰電池相關(guān)電路集于芯片內(nèi)部。采用DS12887芯片設(shè)計的時鐘電路無需外圍電路并具有良好的微機接口。DS12887芯片具有微耗、外圍接口簡單、精度高、工作穩(wěn)定可靠等優(yōu)點,可廣泛用于各種需要較高精度的實時時鐘場合中。其主要功能如下:(1)內(nèi)含一個鋰電池,斷電后運行10年以上不丟失數(shù)據(jù)。(2)計秒、分、時、天、星期、日、月、年,并有閏年補償功能。(3)二進制數(shù)碼或BCD碼表示時間、日歷和定鬧。(4)12小時或24小時制,12小時時鐘模式帶有PWM和AM指導,有夏令時功能。(5)Motorola5和Inatael總線時序選擇。
DS12887有4個狀態(tài)控制寄存器,它們在任何時間都可訪問,即使更新周期也不例外。具體電路連接圖如圖3所示。
1.4 串行存儲器M25P80
存儲器M25P80存儲容量為8 MByte,它采用SPI數(shù)據(jù)總線的方式進行通信。該存儲器有16個扇區(qū),每個扇區(qū)有256頁,每頁256 Byte。工作電壓范圍2.7~3.6 V,工作溫度范圍-40~+85℃,最大時鐘75 MHz。能進行10萬次的擦寫,數(shù)據(jù)保存20年,體積小巧,是一款通用存儲器。M25P80支持的操作指令共有12條,指令格式為如圖4所示。
其中,8位的命令是必需,地址、啞元以及數(shù)據(jù)字節(jié)的有無和長度會因指令的不同而有所差異,詳情如表1所列。所有的命令碼、地址、串行輸入/輸出的數(shù)據(jù),均是高位在前。
由于單片機C8051F040的工作電源3.3 V,M25P80的工作電壓范圍為2.7~3.6 V故二者可以直接相連接。具體電路圖如圖5所示。
2 軟件設(shè)計
由于整個浸水腐蝕的時間不確定,需要一個開始記錄的時間。這個開始記錄時間是以系統(tǒng)通電正常工作的時刻為準。系統(tǒng)的軟件設(shè)計主要包括浸水傳感器數(shù)據(jù)的檢測程序、DS12887時鐘數(shù)據(jù)存儲程序和CAN通信程序3部分。
2.1 浸水傳感器數(shù)據(jù)的檢測程序設(shè)計
浸水傳感器數(shù)據(jù)的檢測程序設(shè)計采用定時器檢測的方式;當持續(xù)檢測到浸水輸出信號3 s,則認為此刻浸水。具體設(shè)計框圖如圖6所示。
浸水傳感器數(shù)據(jù)的檢測程序初始化后,記錄開始時間;在100 ms定時中斷中,檢測多路的浸水輸出信號。針對不同的浸水傳感器采用記錄對應的編號同時記錄該時刻的時間。
2.2 DS12887時鐘數(shù)據(jù)存儲程序
時間讀取程序設(shè)計就是對DS12887芯片的內(nèi)部的4個內(nèi)部寄存器A、B、C、D進行相應的初始化和對其它寄存器數(shù)據(jù)的讀取。
時間數(shù)據(jù)儲存程序設(shè)計是通過SPI總線,將時間數(shù)據(jù)存入M25P80當中。C8051F040中有SPI總線模式。
2.3 CAN通信程序設(shè)計
由于C8051F040器件內(nèi)部集成了Bosch CAN控制器,只需要對該控制器進行初始化和配置便可以實現(xiàn)CAN通信。操作通過特殊功能寄存器直接或間接訪問CAN控制器中的CAN控制寄存器。
3 結(jié)束語
設(shè)計的時間記錄系統(tǒng)能應用其他場合的時刻記錄。該設(shè)計具有結(jié)構(gòu)簡單、功能齊全、系統(tǒng)運行可靠的特點。需要注意的是,DS12887時鐘芯片啟動后需要設(shè)定時間,這樣才能與標準時間一致。實踐證明,雖然DS12887時鐘能夠掉電后正常運行,但時間長(約3個月),需要重新設(shè)定時間以便準時記錄。