摘要:在單片機高速數(shù)據(jù)采集存儲系統(tǒng)中,高速數(shù)據(jù)采集、海量數(shù)據(jù)存儲以及它們之間的數(shù)據(jù)傳輸是關鍵技術。本系統(tǒng)結合了兩種高頻信號的采集與處理系統(tǒng)的優(yōu)點,基于單片機的高速數(shù)據(jù)采集與海量數(shù)據(jù)存儲系統(tǒng)。
關鍵詞:單片機 數(shù)據(jù)系統(tǒng) 設計
對高頻信號的采集與處理系統(tǒng),通常的做法有兩種:一是選用速度快,內存大的計算機,并配備高速的A/D采樣板;二是以單片機為核心,配備高速A/D芯片與大容量電子盤,采集結束后再進行數(shù)據(jù)處理。前者雖然硬軟件開發(fā)簡單,但造成儀器成本的增加,體積大,對運行環(huán)境要求嚴格,而且當距信號源距離較遠或測量多路信號時,信號傳輸比較困難,有些情況甚至無法實現(xiàn)。后者持續(xù)采集時間受存儲器容量的限制,在許多場合可能無法滿足要求,而存儲器容量的增加,其價格也會成倍增長。
用于PC系統(tǒng)的硬盤,以其容量大、接口智能化程度高、控制方便越來越受到人們的重視。充分發(fā)揮硬盤的優(yōu)勢,利用單片機控制普遍應用的IDE接口硬盤,可極大地提高系統(tǒng)的性能價格比,因此本系統(tǒng)采用硬盤進行海量數(shù)據(jù)存儲。選擇高速A/D芯片完成高速數(shù)據(jù)采集不難,關鍵是A/D模塊與硬盤之間的數(shù)據(jù)傳輸。本系統(tǒng)采用高速雙口RAM作為兩者之間的接口進行數(shù)據(jù)緩存,很好地解決了這一問題。
一、系統(tǒng)結構及工作原理
高速數(shù)據(jù)采集與存儲系統(tǒng)結構如圖1,主要包括單片機、高速A/D轉換模塊、高速雙口RAM、IDE硬盤、可編程邏輯控制等。其工作原理:高頻信號經噪聲抑制、自動增益控制、信號放大等調理,送入高速A/D轉換模塊變成數(shù)字信號,在可編程邏輯控制器(產生寫地址及控制信號)的控制下,從左邊寫如一片高速雙口RAM中,同樣在可編程邏輯控制器(產生讀地址及控制信號)的控制下,從雙口RAM的右邊讀出數(shù)據(jù),存人由單片機控制的IDE接口硬盤中。在上述過程中,由于寫速度比讀速度快得多,不會出現(xiàn)讀寫地址重疊的情況,因此,向雙口RAM讀寫數(shù)據(jù)可以同時進行。在整個系統(tǒng)中,單片機起核心作用,既要控制數(shù)據(jù)的采集,同時要控制IDE硬盤的數(shù)據(jù)存儲。為了協(xié)調數(shù)據(jù)采集與存儲之間的速度不一致的矛盾,雙口RAM起了非常重要的作用,同時也使系統(tǒng)的電路得到簡化。
二、系統(tǒng)硬件設計
下面以最高采樣頻率達到500KHZ,轉換分辨率為14Bit,每幀數(shù)據(jù)量為141KB,存儲數(shù)據(jù)量最少10G的系統(tǒng)為例,介紹系統(tǒng)硬件設計。系統(tǒng)硬件電路分為數(shù)據(jù)采集與數(shù)據(jù)存儲兩個部分。
1、數(shù)據(jù)采集電路設計
基于雙口RAM的數(shù)據(jù)采集與傳輸系統(tǒng)如圖2,其中,A/D轉換器采用14位A/D轉換器LTC1419,其最高轉換頻率為800KHZ,能滿足系統(tǒng)要求。雙口RAM采用IDT7024,其左端口作為數(shù)據(jù)采集輸入口,16位數(shù)據(jù)線直接與A/D轉換器的14位輸出數(shù)據(jù)線相連,寫地址及控制信號有CPLD器件EPM7064產生;其右端口與IDE硬盤連接。
工作時,單片機首先通過P1.1腳向EPM7064組成的實時采集控制電路發(fā)出“開始采樣”信號,啟動一次實時采集過程。這時A/D轉換器便在EPM7064提供的采樣脈沖信號的驅動下進行A/D轉換,每個采樣脈沖信號的下降沿啟動轉換,轉換后的數(shù)據(jù)通過BUSY的上升沿鎖存在A/D轉換器的數(shù)據(jù)輸出端。為了將轉換后的數(shù)據(jù)可靠、實時地寫入到雙口RAM中,根據(jù)IDT7024的時序要求,EPM7064送到CER引腳的寫信號最少應滯后BUSY信號上升沿4ns,為此將BUSY信號經兩次反相(約延時14ns)再送至IDT7024的CER引腳,作為寫信號。雙口RAM寫入端地址由EPM7064內的地址計數(shù)器給出,地址計數(shù)器的初值為零,采集開始后,對應每個采樣脈沖的上升沿,地址計數(shù)器加1,從而保證產生的寫地址A/D轉換的過程同步。上述過程將重復1024次,此時雙口RAM已經存儲了一數(shù)據(jù),EPM7064停止地址的增加,至此完成了一次采集與存儲的過程。當寫入雙口RAM的數(shù)據(jù)達到一定數(shù)目時(例如10個),EPM7064向單片機P1.3 腳發(fā)出“取數(shù)據(jù)信號”,啟動IDE硬盤從雙口RAM的首地址開始讀取數(shù)據(jù),當硬盤將雙口RAM中數(shù)據(jù)全部取走后,然后再進行新一輪數(shù)據(jù)采集。
2、數(shù)據(jù)存儲部分設計
IDE接口的硬盤驅動器提供了兩種數(shù)據(jù)傳輸模式:PIO模式和DMA模式。由于PIO模式控制相對容易,提供了一種編程控制輸入/輸出的快速傳輸方法。該模式采用高速的數(shù)據(jù)塊I/O,以扇區(qū)為單位,用中斷請求方式進行批量數(shù)據(jù)交換。在扇區(qū)讀寫操作時,一次按16位長度通過內部的高速PIO數(shù)據(jù)寄存器傳輸。通常情況下,數(shù)據(jù)傳輸以扇區(qū)為單位,每傳輸一扇區(qū)數(shù)據(jù)產生一個中斷。本系統(tǒng)針對20G或以上IDE筆記本小硬盤設計。IDE接口是一種任務寄存器結構的接口,所有輸入輸出操作均通過對相應寄存器的讀寫完成。硬盤在讀寫 16 位數(shù)據(jù)時,PC 機中使用 INSW 指令或 OUTSW 指令實現(xiàn) 16 位數(shù)據(jù)讀/寫操作,由 I/O 端口直接到內存。而在本系統(tǒng)中采用 MCS-51 系列單片機控制硬盤,使數(shù)據(jù)傳輸在硬盤端口寄存器與緩沖存儲器之間進行,不經過單片機,單片機只是對硬盤進行初始化,并發(fā)相應的寫命令。這樣,在單片機的控制下,數(shù)據(jù)從雙口RAM的左邊入,右邊出,實現(xiàn)了高速數(shù)據(jù)無丟失存儲。在向硬盤驅動器發(fā)出命令前,必須先檢測硬盤驅動器是否忙碌(D7=1)。如果在規(guī)定時間內硬盤驅動器一直忙碌,則置超時錯;否則表示硬盤驅動器空閑,可接受命令。
對硬盤寫數(shù)據(jù)時,首先單片機把必要的參數(shù)寫入對應的地址寄存器,等待DRDY有效;然后將操作碼寫入命令寄存器,同時驅器設置狀態(tài)寄存器的DRQ位,表示準備好接收數(shù)據(jù),雙口RAM通過數(shù)據(jù)寄存器將數(shù)據(jù)寫入扇區(qū)緩沖區(qū);當扇區(qū)緩沖區(qū)填滿后,驅動器清除DRQ位,并置位BSY,驅動器將扇區(qū)緩沖區(qū)中數(shù)據(jù)寫入磁盤;當寫盤結束,清除BSY位,發(fā)中斷請求信號DNTRQ;CPU接收到中斷信號后,讀驅動器狀態(tài)寄存器,同時將中斷信號INTRQ撤除。
實驗證明,本采集存儲方案可行,系統(tǒng)運行穩(wěn)定,實現(xiàn)了高速數(shù)據(jù)正確、無丟失存儲,并應用到實際系統(tǒng)中。