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