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