隨著大規(guī)模集成的電路的飛速發(fā)展,PC機(jī)性能不斷提高。在PC機(jī)擴(kuò)展槽中嵌入以高性能微處理器為核心的智能型功能卡,可以組成綜合性能極佳的分布式控制系統(tǒng)。這種結(jié)構(gòu)方式可充分利用微處理器的控制功能、PC機(jī)的快速數(shù)據(jù)處理能力,以及多任務(wù)工作方式等特點。對于這種分布式控制系統(tǒng),主機(jī)要頻敏接收到來自擴(kuò)展卡從機(jī)所采集的數(shù)據(jù)、工作狀態(tài)等信息;向從機(jī)發(fā)送控制命令或處理數(shù)據(jù)等。這種主、從機(jī)之間的通訊,根據(jù)應(yīng)用條件的不同有多種方式。但在數(shù)據(jù)傳輸速度較高、數(shù)據(jù)量較大且需經(jīng)常交換信息的場合,采用雙口共享RAM緩沖區(qū)方式是最合適的。 為了用單片機(jī)實現(xiàn)對微秒級甚至納秒級高速瞬變信號進(jìn)行采樣,研究了一種基于ISA總線、GPS同步時鐘、用硬件電路實現(xiàn)高速數(shù)據(jù)采集、高速尋址以及存儲的技術(shù),保證了高速瞬態(tài)信號的實時采集。對于變化速極快、過程極短的高速瞬態(tài)信號的采集,需要高速A/D轉(zhuǎn)換單元、大量數(shù)據(jù)存儲單元、高速尋址和快速存儲等。 由于所采集的信號是高頻信號,用常規(guī)則方法受到單片機(jī)本身運行速度的限制,不僅造成成本提高,而且對高頻、遠(yuǎn)距離多路信號的信號處理增加困難,有時無法區(qū)別所采集信號的真?zhèn)巍Mㄟ^對8051單片機(jī)的外圍進(jìn)行有效的擴(kuò)展,采取在數(shù)據(jù)采集時由硬件實現(xiàn)采集和存儲,采集完畢后由8051系列單片機(jī)進(jìn)行數(shù)據(jù)處理和通信,比較好地解決了二者的矛盾。 筆者研制的高速數(shù)據(jù)采集板采樣頻率為20MSPS;A/D轉(zhuǎn)換字長為8位,并且采樣速率可變;存儲容量為512K字節(jié),符合ISA總線標(biāo)準(zhǔn)。可廣泛用于電力測量、繼電保護(hù)和故障定位等。 1 硬件系統(tǒng)基本工作原理 硬件電路框圖如圖1所示,它是由CPU1及CPU2基本系統(tǒng)、視頻閃爍ADC轉(zhuǎn)換器、高速緩存RAM、雙口RAM、地址計數(shù)器、采樣頻率控制、時序控制及譯碼電路等部分組成。 根據(jù)需要CPU采用DS80C320單片機(jī)。在時鐘頻率為33MHz條件下,單周期指令執(zhí)行時間是110納秒,充分發(fā)揮高速A/D轉(zhuǎn)換芯片的性能。DS80C320內(nèi)部有三個16位定時器/計數(shù)器、二個全雙工串行口、十三個中斷源(六個外部中斷端)、二個數(shù)據(jù)指針DPTR0和DPTR1。在33MHz晶振時,ALE的輸出信號頻率是8.25MHz。 CPU1主要用于數(shù)據(jù)采集、與PC機(jī)通訊;CPU2用于接收GPS時間報文,GPS時間報文可在任何時刻由CPU1從與之相接的雙口RAM2中讀取。高速雙端口RAM IDT7130(2K×8位)、IDT7134(4K×8位),內(nèi)部具有判決電路以防止因?qū)δ骋粏卧瑫r操作而產(chǎn)生沖突。雙口RAM1 IDT7134主要用于CPU1存放采集的數(shù)據(jù)、同步時間信息及工作狀態(tài)等,供PC機(jī)定時取用,同時也接收來自PC機(jī)的命令。雙口RAM2 IDT7130其容量為2K字節(jié),主要用于CPU1與CPU2交換GPS的同步時鐘信息。 對高速數(shù)據(jù)采集技術(shù)而言,最為重要的是系統(tǒng)的分辨率、精度與通過速率。特別是系統(tǒng)通過速率,是區(qū)別高速數(shù)據(jù)采集與一般數(shù)據(jù)采集最為關(guān)鍵的一項技術(shù)指標(biāo)。在硬件的具體實現(xiàn)過程中,則需要考慮兩個方面:(1)A/D轉(zhuǎn)換器的轉(zhuǎn)換時間;(2)轉(zhuǎn)換后的數(shù)據(jù)存儲時間。 1.1 高速A/D轉(zhuǎn)換 A/D轉(zhuǎn)換采用閃爍ADC器件AD9048,其最大轉(zhuǎn)換速率為35MSPS,分辨率為8位。利用高速雙極工藝制造,采樣速率快,頻帶寬,無代碼遺失,輸入電容小(僅為16pF),功耗低(為500mW)。AD9048內(nèi)部時鐘鎖定比較器可使編碼邏輯電路和輸出緩沖寄存器作在35MSPS的高速,并避免了多數(shù)系統(tǒng)對取樣保持電路(S/H)和跟蹤保持電路(T/H)的需要。數(shù)字輸入、輸出及控制電平與TTL兼容。AD589和AD741、2N3906等構(gòu)成穩(wěn)壓可調(diào)電路,提供給9048的RB、RT接地。AD9618作為輸入緩沖放大器[3]。由于AD9048的數(shù)據(jù)輸出沒有三態(tài)門控制,故在輸出加上74LS241作三態(tài)門控制。AD9048是否工作取決于輸入轉(zhuǎn)換脈沖信號,在脈沖信號上升沿取樣。轉(zhuǎn)換脈沖來自采樣頻率控制電路中的8254分頻器的輸出。 1.2 高速尋址 對于高速數(shù)據(jù)采集系統(tǒng),A/D轉(zhuǎn)換應(yīng)不受CPU控制。每當(dāng)ADC轉(zhuǎn)換一次后,由控制電路發(fā)出相應(yīng)的信號,將ADC轉(zhuǎn)換結(jié)果寫入高速緩存RAM某單元中,再使地址計數(shù)器加1,直到地址計數(shù)器記滿后產(chǎn)生采樣結(jié)束信號,封鎖RAM寫信號,利用二進(jìn)制地址發(fā)生器的最高位通過中斷方式通知主機(jī)采樣已完成。 地址計數(shù)器可根據(jù)地址位數(shù)由若干同步記有選舉權(quán)器級聯(lián)而成,五片74LS163可構(gòu)成19位地址形成電路。計數(shù)器每收到一個脈沖即產(chǎn)生一個地址。地址的初值可通過時序控制電路清零。若采用循環(huán)地址,則在計數(shù)滿后,用進(jìn)位信號迫使計數(shù)器的同步預(yù)置電平發(fā)生變化,使計數(shù)器恢復(fù)初值,進(jìn)入新一輪計數(shù)。 1.3 快速存儲 單片機(jī)與上位PC機(jī)間串口通訊的數(shù)據(jù)傳輸速率往往不能滿足實時要求;DMA通道最的大數(shù)據(jù)傳輸率也不超過5MB/s[1],這顯然無法滿足本系統(tǒng)中高達(dá)20MB/s的采樣速度。為了解決高速數(shù)據(jù)采集與低速數(shù)據(jù)傳輸?shù)拿埽趩纹瑱C(jī)系統(tǒng)中,數(shù)據(jù)存儲器選用雙端口RAM IDT7134(圖1中RAM1)。在上位PC主機(jī)與單片機(jī)之間建立了一個4K字節(jié)大小的緩沖區(qū),單片機(jī)只須將經(jīng)過預(yù)處理的采樣值通過一個端口存放緩沖區(qū),上位PC主機(jī)通過另一端口從緩沖區(qū)取數(shù)據(jù)。這樣就解決了高速采樣與低速數(shù)據(jù)傳輸?shù)拿埽蓾M足實時采集和控制的要求。 1.4 總線控制 單片機(jī)系統(tǒng)總線上掛有若干RAM或I/O口,尋址和數(shù)據(jù)傳輸均由CPU發(fā)出指令通過系統(tǒng)總線實現(xiàn)的。對于高速數(shù)據(jù)采集,為了提高尋址和數(shù)據(jù)傳輸速度,避免總線沖突或堵塞,必須建立局部總線。系統(tǒng)總線與局部總線應(yīng)該既區(qū)別、又統(tǒng)一,既隔離、又結(jié)合,彼此通過合理的控制邏輯聯(lián)系起來。 總線仲裁的基本原則實際就是在不同的總線請求時,采用不同長度的讀寫周期,以使各個使用者對總線的占用時間互相交錯,而使用者并不感覺到仲裁的存在。在內(nèi)存映射的傳輸方式中,A/D不斷地將轉(zhuǎn)換的數(shù)據(jù)寫入高速緩存RAM,CPU根據(jù)數(shù)據(jù)處理的需要從高速緩存RAM讀取數(shù)據(jù)至雙口RAM1,雙口RAM1還需要將所有單元刷新一遍。這三種操作都要占用卡上的數(shù)據(jù)、地址總線。但它們發(fā)生的時間是隨機(jī)的,因此對總線的占用必然會產(chǎn)生沖突,總線仲裁電路的功能就是對這三種操作進(jìn)行協(xié)調(diào)。這里,通過五片74LS241二選一開關(guān)協(xié)調(diào)地址計數(shù)器與CPU1對高速緩存RAM讀地址的沖突,二片74LS241協(xié)調(diào)高速緩存RAM與AD9048和雙口RAM之間的數(shù)據(jù)傳輸?shù)臎_突。 1.5 PC總線接口技術(shù) PC系統(tǒng)總線對4KB的雙口RAM尋址是一個難點。本數(shù)據(jù)采集卡采用PC總線,又稱8位ISA總線。它使用靈活,便于同8位單片機(jī)構(gòu)成接口電路。有62條引線,分五類:地址線、數(shù)據(jù)線、控制線、輔助與電源線。本數(shù)據(jù)采集卡只用了其中一部分引線:8條數(shù)據(jù)線、10條地址線、IOR和IOW控制線、電源線。譯碼電路詳細(xì)框圖如圖2。 本數(shù)據(jù)采集卡使用308H、309H、30AH三個口地址實現(xiàn)在板緩存4KB的尋址。這里的譯碼電路使用了GAL20V8和兩片74HC574。當(dāng)PC機(jī)要訪問某一地址時,首先寫入雙口RAM的低8位地址。此時GAL20V8的輸出信號選中74HC574(右),將PC-DB上的數(shù)據(jù)鎖存,形成雙口RAM的低8位地址Addrl;然后寫入雙口RAM的高8位地址。GAL20V8的輸出信號選中74HC574(左),將PC-DB上的數(shù)據(jù)鎖存,形成雙口RAM的高8位地址Addrh。最后通過選中雙口RAM的片選端cs,完成一次數(shù)據(jù)的讀/寫過程。 1.6 采樣頻率控制電路 采樣頻率挖掘電路是由晶振、可編程分頻器8254及一些控制電路組成。8254是可編程分頻器,工作頻率在8MHz~20MHz。通過不同的分頻數(shù),可以輸出不同頻率,分頻數(shù)在值為2~65535。它的輸出由觸發(fā)控制電路控制。其輸出時鐘分別送往地址計數(shù)器、高速緩存RAM的寫信號控制電路及AD9048的轉(zhuǎn)換脈沖輸入端。 2 系統(tǒng)軟件設(shè)計 系統(tǒng)軟件的主要功能是為用戶提供一個良好的操作環(huán)境,及時響應(yīng)用戶的命令。用戶操作界面采用Vi-sual basic語言編寫。通過采用一系列命令。用戶操作界面采用Visual basic語言編寫。通過采用一個系列命令按鍵,將電力系統(tǒng)采集到的實際信號的波形、故障發(fā)生的時刻等映射到計算機(jī)屏幕上,用戶可以對采集到的信息有一個直觀的認(rèn)識。用軟件虛擬硬件操作界面,可以充分利用計算機(jī)的強(qiáng)大運算功能、靈活多變的軟件優(yōu)勢和VGA強(qiáng)大的顯示功能。為便于系統(tǒng)的擴(kuò)充和軟件復(fù)用,整個軟件分為幾個相對獨立的功能模塊,模塊內(nèi)代碼封裝,相互之間設(shè)立統(tǒng)一的接口規(guī)范。 由于本系統(tǒng)中不僅有高層次、面向磁般文件的操作,也有許多直接控制硬件的操作,采用了TURBO C和匯編語言混合編程技術(shù),各模塊根據(jù)操作對象采用適當(dāng)?shù)恼Z言。這樣可以同時利用高級語言編程方便、結(jié)構(gòu)性好、匯編語言快速、靈活、針對性強(qiáng)的特點。 系統(tǒng)軟件框圖如圖3所示。 硬件驅(qū)動程序用于完成對硬件的操作,全部采用匯編語言編寫。使用系統(tǒng)前,先運行本程序,程序修改PC機(jī)系統(tǒng)中斷,運行后常駐內(nèi)存,和主程序的接口通過標(biāo)準(zhǔn)軟中斷形式。 高速圖形單元是對PC機(jī)VGA寄存器和顯示存儲器的直接操作,通過調(diào)用相關(guān)函數(shù)和VGA圖形庫,以較快速度將采樣信號顯示出來。 數(shù)據(jù)分析單元主要是對采樣信號進(jìn)行后處理,可以完成小波變換、信號奇異性檢測、譜分析和相關(guān)分析等數(shù)據(jù)處理功能,并通過波形輸出單元同時將時域信號和分析結(jié)構(gòu)用曲線顯示來出。 整個系統(tǒng)提供給用戶的是一個基于WINDOWS的快速圖形操作界面,系統(tǒng)主控程序協(xié)調(diào)整個系統(tǒng)的運行,控制硬件自動運行。在系統(tǒng)界面上包括用于波形顯示的高速視口和命令按鍵等,可以通過簡單操作直觀地觀察實時采集到的數(shù)據(jù)波形、幅值和故障發(fā)生的時刻。同時提供了對外的軟件接口,用戶可以按照規(guī)定的格式組織數(shù)據(jù),利用本系統(tǒng)強(qiáng)大的數(shù)據(jù)分析功能處理數(shù)據(jù)。 本高速采集卡具有采樣速率高、運行方式靈活、同步時鐘精度高并符合ISA總線標(biāo)準(zhǔn)等特點。以DS80C320單片機(jī)為核心,采用GPS同步時間,配合適當(dāng)?shù)耐鈬O(shè)備及合理的總線控制技術(shù)實現(xiàn)高速數(shù)據(jù)采集。同時兼有數(shù)字存儲示波器功能和數(shù)據(jù)分析能力,可以廣泛用于電力測量、電力系統(tǒng)故障定位和繼電保護(hù)領(lǐng)域。 |