SD卡在斷路器離線測試儀中的應(yīng)用
在斷路器離線測試儀的設(shè)計(jì)和使用過程中,需要積累大量的正常狀態(tài)和故障狀態(tài)下的歷史動作數(shù)據(jù),形成樣本庫,作為斷路器進(jìn)行故障診斷的依據(jù)。從數(shù)據(jù)庫的建立和維護(hù)的角度來說,上位機(jī)比儀器本身更占有優(yōu)勢。同時,由于儀器自身硬件系統(tǒng)資源的局限,相對復(fù)雜的故障診斷分析也需要利用上位機(jī)軟件來實(shí)現(xiàn)。因此,這就需要容量大、移動靈活的測試儀和上位機(jī)的中間存儲介質(zhì)。
SD卡(Seecure Digital Memory Cardl)是一種基于Flash的新一代存儲器,具有體積小、容量大、數(shù)據(jù)傳輸快、移動靈活、安全性能好等優(yōu)點(diǎn),是許多便攜式電子儀器理想的外部存儲介質(zhì)。
1 ATMEGAl28的SPI接口簡介及基本數(shù)據(jù)傳輸
SPI全稱為“Series Peripheral Interface”,意為“串行外設(shè)接口”,是一種全雙工、3線同步數(shù)據(jù)傳輸?shù)拇锌偩€接口。圖1為ATMEGA128單片機(jī)主機(jī)一從機(jī)通過SPI進(jìn)行互連的示意圖。
系統(tǒng)包括兩個移位寄存器和一個主機(jī)時鐘發(fā)生器。主機(jī)通過將需要的從機(jī)的SS引腳拉低,啟動一次通訊過程。主機(jī)和從機(jī)將需要發(fā)送的數(shù)據(jù)放入相應(yīng)的移位寄存器中。主機(jī)在SCK引腳上產(chǎn)生時鐘脈沖以交換數(shù)據(jù)。主機(jī)的數(shù)據(jù)從主機(jī)的MOSI移出,從從機(jī)的MOSI移入;從機(jī)的數(shù)據(jù)從從機(jī)的MISO移出,從主機(jī)的MISO移入。主機(jī)通過將從機(jī)的SS引腳拉高實(shí)現(xiàn)與從機(jī)的同步?;镜耐ㄟ^SPI接口發(fā)送和接收單個字節(jié)的流程如圖2所示。
值得注意的是,因?yàn)榘l(fā)送和接收是同時進(jìn)行的,所以發(fā)送和接收數(shù)據(jù)使用同一個函數(shù)。在發(fā)送數(shù)據(jù)時,并不關(guān)心函數(shù)的返回值;在接收數(shù)據(jù)時,可以發(fā)送并無實(shí)際意義的字節(jié)(如0xFF)作為函數(shù)的參數(shù)。
2 SPI模式下的ATMEGAl2B單片機(jī)與SD卡的接口電路
SD卡為用戶提供兩種操作模式:SD模式和SPI模式。SPI模式下SD卡的引腳定義如表1所示。在該模式下,SD卡為主機(jī)提供了CS、SCLK、DI、DO四線接口。ATMEGAl28單片機(jī)與SD卡的接口電路如圖3所示。
因?yàn)椴簧婕爸鲝臋C(jī)之間的轉(zhuǎn)換,所以單片機(jī)的SS引腳閑置不用。單片機(jī)的PORTXn引腳作為SD卡的選通信號。
對于單片機(jī)來說,SPI接口和程序下載接口復(fù)用,節(jié)約了單片機(jī)的硬件開銷,提高了單片機(jī)的資源利用率。
3 SPI模式下對SD卡的操作
SPI模式下SD卡的操作流程如圖4所示。
上電后,SD卡自動進(jìn)入SD模式。單片機(jī)此時使CS信號為低電平,并向SD卡發(fā)送RESET命令(CMDO),如果SD卡有0x01作為響應(yīng),則表明SD卡進(jìn)入SPI模式下的ldle狀態(tài)。在等待至少74個時鐘周期后,向SD卡發(fā)送SEND_OP_COND(CMD1)命令,當(dāng)輪詢到SD卡的響應(yīng)為0x00時,說明SD卡已經(jīng)準(zhǔn)備好接收讀寫操作了。
對SD卡的基本讀寫操作命令有:數(shù)據(jù)塊讀命令READ_BLOCK(CMDl7)、多數(shù)據(jù)塊讀命令READ_MULTIPLE_BLOCK(CMDl8)和數(shù)據(jù)塊寫命令WRITE_BLOCK(CMD24)、多數(shù)據(jù)塊寫命令WRITE_MULTIPLE_BLOCK(CMD25)。
對SD卡的操作都是由一些命令來實(shí)現(xiàn)的。所有的命令都是由48個數(shù)據(jù)位組成的,其結(jié)構(gòu)如表2所示。
在應(yīng)用時,可以連續(xù)發(fā)送6個字節(jié)來實(shí)現(xiàn)上述的命令格式。
4 應(yīng)用于斷路器離線測試儀的SD卡文件系統(tǒng)設(shè)計(jì)
在使用斷路器離線測試儀的過程中,希望記錄下斷路器每次動作時的線圈電流以及動作電壓。按照圖5所示的結(jié)構(gòu)來組織數(shù)據(jù)的存儲。
首先為各次動作數(shù)據(jù)文件創(chuàng)建父文件夾。以動作的次數(shù)作為文件夾名,CuRRENT.TXT和V0LTAGE.TXT分別為各文件夾下記錄電流、電壓數(shù)據(jù)的擴(kuò)展名為TXT的子文件。
SD卡數(shù)據(jù)區(qū)的組織結(jié)構(gòu)如表3所示。
在實(shí)際應(yīng)用中,只對系統(tǒng)區(qū)進(jìn)行配置即可。其中的分區(qū)引導(dǎo)扇區(qū)設(shè)置了扇區(qū)(Sector)和串(Cluster)的大小,以及采用哪類文件分配表(FATl2或FATl6)等內(nèi)容。
文件分配表則包含了與目錄或文件相對應(yīng)的入口(Entry)。每個入口由32個字節(jié)組成,包含文件名、擴(kuò)展名、記錄的時間和日期、起始位置和文件大小等信息。文件的大小可以根據(jù)對電流電壓信號進(jìn)行采樣時的采樣頻率和采樣時間計(jì)算得到。
按照以上原則設(shè)計(jì)的文件系統(tǒng),結(jié)構(gòu)簡單、容易維護(hù),能夠滿足上位機(jī)數(shù)據(jù)積累和軟件分析的需要。