??? 關(guān)鍵詞:多通道,高速數(shù)據(jù)采集系統(tǒng),CPLD,F(xiàn)IFO
1 引 言
隨著數(shù)字信號處理技術(shù)及各種故障分析技術(shù)的發(fā)展,以及單片機(jī)的運(yùn)算速度的提高,在一些由單片機(jī)構(gòu)成的較小系統(tǒng)中對信號進(jìn)行實時處理(如諧波分析等)已經(jīng)成為可能,且越來越受到人們的重視。這就要求作為最底層的數(shù)據(jù)采集系統(tǒng),既要具有很高的采樣速率,又要能提供更豐富的原始數(shù)據(jù)信息。
常規(guī)采集方案為:(1)由單片機(jī)直接控制的采集方案,這是最簡單最常用的控制方案。由于每次采樣都要有單片機(jī)的參與,需占用單片機(jī)的時間,影響其數(shù)據(jù)處理,而且對于多通道、多個A/D轉(zhuǎn)換器的控制,因所需處理的信息更多,則更加不方便。(2)由DMA控制的采集方案。此方案硬件電路復(fù)雜,若與單片機(jī)配合使用,需要單片機(jī)具有總線掛起功能(Hold功能),否則還需要進(jìn)行總線切換。在總線掛起的時候,單片機(jī)就不能訪問外部存儲器和外部端口,如果單片機(jī)要訪問外部數(shù)據(jù),也只能等待總線的釋放,這樣就帶來很多不方便,也影響數(shù)據(jù)的及時處理。
在電力系統(tǒng)的微機(jī)檢測系統(tǒng)中或者其他數(shù)據(jù)巡檢系統(tǒng)中,需要對多通道的數(shù)據(jù)作快速的采集分析,尤其是對于實時性很強(qiáng)的系統(tǒng),更要求采集獲得的數(shù)據(jù)必須實時準(zhǔn)確地反映系統(tǒng)的運(yùn)行情況,例如,故障錄波和實時在線監(jiān)測系統(tǒng)〔1〕〔2〕。本文提出了一種易與各種單片機(jī)系統(tǒng)接口的由純硬件電路控制的多通道高速數(shù)據(jù)采集系統(tǒng)。它的自動采樣硬件電路主要采用CPLD(Complex Programmable Logic Device)和FIFO(First In FirstOut)技術(shù)設(shè)計而成。該裝置可以實現(xiàn)多路模擬量的高速采集,每一個模數(shù)轉(zhuǎn)換器(ADC)可以采集10個通道的數(shù)據(jù),并且多個模數(shù)轉(zhuǎn)換器件的輸出可以以總線形式進(jìn)行擴(kuò)展。
2 系統(tǒng)設(shè)計原理框圖和基本設(shè)計思想
??? 多通道高速A/D數(shù)據(jù)采集系統(tǒng)的設(shè)計原理框圖如圖1所示。
![](/article/UploadPic/2009-5/200955204915399.jpg)
圖中模擬輸入量1至模擬輸入量n是指每一個模數(shù)轉(zhuǎn)換器(ADC)的采樣通道數(shù),模擬量經(jīng)過低通濾波器預(yù)處理后,再進(jìn)入采樣保持器(S/H),經(jīng)多路開關(guān)(Multi-channelSwitches)分時切換進(jìn)入模數(shù)轉(zhuǎn)換器,通過DSP(Digital SignalProcessing)芯片的觸發(fā),在CPLD器件的控制下,進(jìn)入n個通道的一次循環(huán)采樣,并將采樣數(shù)據(jù)依順序打入FIFO器件,DSP在每個采樣結(jié)束后直接從FIFO芯片中讀出數(shù)據(jù)即可。該多通道高速A/D數(shù)據(jù)采集系統(tǒng)的設(shè)計核心就是在DSP芯片的每一個定時中斷時,從FIFO芯片中讀入采樣數(shù)據(jù)后,復(fù)位FIFO器件,觸發(fā)CPLD進(jìn)行硬件時序控制采樣,采樣過程不需要DSP芯片的參與,DSP芯片可以并行處理主程序中的數(shù)據(jù)。
3 芯片介紹
3.1 FIFO存儲器件LH5496(H)簡介
LH5496(H)是SHARP公司采用CMOS工藝制造的512×9位可以實現(xiàn)先進(jìn)先出(FIFO)算法、可以進(jìn)行異步讀寫操作的雙端口存儲器。它提供“全空”(/EF)、“全滿”(/FF)、“半滿”(/HF)狀態(tài)標(biāo)志,用以防止數(shù)據(jù)溢出或不足。擴(kuò)展邏輯電路允許多片F(xiàn)IFO進(jìn)行級聯(lián),在字寬和容量深度兩方面進(jìn)行擴(kuò)展,而且不會增加額外的延時時間〔3〕。LH5496(H)功能引腳如圖2所示。
![](/article/UploadPic/2009-5/200955204915437.jpg)
讀寫操作會自動訪問存儲器中的連續(xù)存儲單元,從FIFO中讀出的數(shù)據(jù)順序與寫入的順序相同,地址的順序在內(nèi)部已經(jīng)預(yù)先定義好,對芯片的操作不需要額外的地址信息。芯片提供對讀/寫指針的復(fù)位功能(/RS),使內(nèi)部讀/寫指針同時設(shè)置到初始位置。另外,它還對讀指針提供單獨(dú)的復(fù)位功能(/RT),僅把讀指針設(shè)置到初始位置,實現(xiàn)對已讀出數(shù)據(jù)的重新讀取。該器件采用9位數(shù)據(jù)寬度,第9位用作控制位或奇偶校驗位,在需要對傳輸進(jìn)行奇偶校驗的通訊系統(tǒng)中,該位可以被用到。IDT公司的LH5496(H)的存取時間可以有15μs、20μs、25μs、35μs、50μs、65μs、80μs幾種選擇。
需要注意的是,這是一個單向的FIFO雙端口存儲器,即,只能由D0~D8輸入數(shù)據(jù),由Q0~Q8輸出數(shù)據(jù),所以,讀、寫控制線只有一套。也就是說不能作為
雙向的數(shù)據(jù)傳送。另外,因為這是一個FIFO(先入先出)存儲器,所以沒有絕對地址的概念,只有讀指針和寫指針的相對位置。當(dāng)相對位置為0時,表明存儲器空;為所用的存儲器的容量時,表明存儲器己滿。具體包括:
?。?)寫操作:只要/FF標(biāo)志不為0,就可以進(jìn)行寫操作,且可以與讀操作同時進(jìn)行。每寫一次數(shù)據(jù),寫指針自動加一,當(dāng)寫指針與讀指針的相對位置為存儲器的容量時,標(biāo)志/FF清零。當(dāng)/FF標(biāo)志為0時,所進(jìn)行的任何寫操作都不會改變存儲器中的數(shù)據(jù),也不會改變寫指針的值。此時的寫禁止由內(nèi)部控制。
?。?)讀操作:只要/EF標(biāo)志不為0,就可以進(jìn)行讀操作,且可以與寫操作同時進(jìn)行。每讀一次數(shù)據(jù),讀指針自動加一,當(dāng)讀指針與寫指針的相對位置為0時,標(biāo)志/EF清零。當(dāng)/EF標(biāo)志為0時,所進(jìn)行的任何讀操作都不會改變讀指針,且讀出的數(shù)據(jù)都為0FFH,即數(shù)據(jù)總線呈現(xiàn)高阻。
3.2 X95108芯片簡介
X95108芯片是XILINX公司生產(chǎn)的CPLD芯片,它是X9500系列芯片,是一種ISP(在系統(tǒng)可編程)芯片〔4〕(http://www.XILINX.com,1998),它的主要特點(diǎn)有:7.5ns的pin-to-pin邏輯時延,工作時鐘125MHz,具有108個宏單元和2400個邏輯門,每個宏單元可工作在省電模式,最多108個用戶I/O引腳,采用ISP在系統(tǒng)可編程技術(shù),可編程10000次以上,支持?jǐn)U展IEEE1149.1邊界掃描協(xié)議(JTAG),輸入輸出緩沖器可兼容5V TTL電平,5V CMOS電平,3.3V及2.5V CMOS電平,封裝有84腳PLCC,100腳PQFT,100腳TQFP,和160腳PQFP供選擇。
3.3 AD976A簡介
AD976A是ANALOGDEVICE公司生產(chǎn)的一種高速16位模數(shù)轉(zhuǎn)換器,其采樣速率為200ksps,能夠在單電源5V供電情況下工作,具有極低功耗的特點(diǎn)(http://www.ANALOG.com,1998)。它的輸入信號范圍為-10V~+10V,內(nèi)含時鐘、2.5V參考電源和誤差校準(zhǔn)電路,使用時,用戶可選擇外部參考電源亦可選擇內(nèi)部參考電源。芯片采用低功耗設(shè)計,最大功率消耗為100mW。AD976A在漂移、增益、線性度和SNR(信噪比)上作了嚴(yán)格的修正。有28引腳DIP、SSOP和SOIC封裝可供選擇。
4 系統(tǒng)設(shè)計原理及工作原理
4.1 A/D轉(zhuǎn)換部分的工作原理
多通道高速A/D數(shù)據(jù)采集系統(tǒng)的采樣部分的原理框圖如圖3所示。它由一片多路模擬開關(guān)MAX306,一片儀器放大器AD620,一片AD976A,兩片數(shù)據(jù)緩沖接口器件74HC245構(gòu)成了一個數(shù)據(jù)轉(zhuǎn)換單元。MAX306是一個16路的多路模擬開關(guān),本設(shè)計中輸入了10路模擬量,其中,前9路接入采樣的模擬信號。為了減小采樣誤差,在信號進(jìn)入MAX306之前增加了采樣保持LF398進(jìn)行采樣保持,第10路用于電源電壓的監(jiān)視。AD620是一個高精度的儀器放大器,本系統(tǒng)將其接成放大倍數(shù)為1的工作方式,AD976采用內(nèi)部2.5V電壓基準(zhǔn)源,74HC245作為數(shù)據(jù)緩沖接口,輸入接到AD976A的數(shù)據(jù)線上,輸出接到連接FIFO的輸入數(shù)據(jù)總線上,可以將多個這樣的數(shù)據(jù)轉(zhuǎn)換單元并接到總線上,通過每個單元的74HC245的使能腳選通。由于設(shè)計上是可以擴(kuò)展的,即,將多個數(shù)據(jù)轉(zhuǎn)換單元數(shù)據(jù)輸出總線并聯(lián)接到FIFO的輸入總線上,所以,采用將AD976A的/BUSY位作為數(shù)據(jù)位最低位讀入。由于是多通道多A/D轉(zhuǎn)換器的工作模式,在設(shè)計時已經(jīng)考慮到采樣保持及轉(zhuǎn)換時間的要求,并給出了一定的裕度,定時采樣時不必判斷A/D轉(zhuǎn)換是否完成,而直接讀取總線上的數(shù)據(jù)。在數(shù)據(jù)處理時,判
斷最低位是否為0來確定本次采樣數(shù)據(jù)是否有效,如果有效,則右移一位得到有效數(shù)據(jù),當(dāng)然,這樣會降低采樣精度,但對一般的數(shù)據(jù)處理系統(tǒng),15位也已經(jīng)足夠了。如果無效,則舍棄本次采樣數(shù)據(jù),并累加無效次數(shù),計數(shù)超過設(shè)定的次數(shù),則應(yīng)發(fā)出告警,提示AD976A采樣異常。
4.2 CPLD實現(xiàn)全自動硬件采樣的原理
FIFO與CPLD及與DSP(TMS320F206)、74HC245輸出總線及外圍器件的連接如圖4所示。圖中,X95108芯片的引腳只畫出了與采樣有關(guān)的一部分,另外與DSP接口及存儲器等的片選信號沒有畫出。
![](/article/UploadPic/2009-5/200955204915856.jpg)
![](/article/UploadPic/2009-5/200955204915423.jpg)
![](/article/UploadPic/2009-5/200955204915820.jpg)
![](/article/UploadPic/2009-5/200955204915772.jpg)
FIFO的D0~D15連接到A/D轉(zhuǎn)換單元的74HC245的輸出數(shù)據(jù)線上,BD0~BD15則連接到DSP芯片的數(shù)據(jù)總線上。/WR? F是由CPLD發(fā)出的將AD976A轉(zhuǎn)換完成后的數(shù)據(jù)打入FIFO的寫信號,/RD? F是DSP采樣數(shù)據(jù)從FIFO芯片中讀出的讀信號。/RST? F復(fù)位FIFO芯片的信號,S/H是啟動采樣保持器工作在采樣還是保持狀態(tài)的控制信號,CH0~CH3是每一片A/D芯片的輸入通道選擇。由于每次采樣前會復(fù)位FIFO器件,所以,每次采樣開始時的讀指針和寫指針均指向第一個物理存儲地址,只要采樣的數(shù)據(jù)不超過256個字,/EF和/FF標(biāo)志可以不讀入判斷,實際上,/EF和/FF標(biāo)志引腳雖然連接到了X95108,但沒有處理。X95108實現(xiàn)時序的控制,包括:啟動采樣,鎖存數(shù)據(jù),啟動A/D轉(zhuǎn)換,將數(shù)據(jù)打入FIFO存儲器,通道號遞增重復(fù)下一通道采樣。
硬件控制采樣邏輯實際上就是CPLD與采樣保持器、A/D轉(zhuǎn)換器、FIFO的時序配合,時序由CPLD在DSP觸發(fā)采樣后自動完成。
DSP芯片上電初始化時就給FIFO器件發(fā)一個復(fù)位信號,使FIFO器件的讀指針和寫指針復(fù)位,指向第一個物理單元,同時,去觸發(fā)CPLD進(jìn)入第一通道的采樣邏輯,CPLD硬件邏輯如圖5所示。
由于FIFO器件的讀和寫是完全獨(dú)立的,所以,DSP芯片在每一個定時中斷中,直接一次性地將所有采樣數(shù)據(jù)從FIFO中讀取數(shù)據(jù),放入DSP的內(nèi)存區(qū)域供處理,讀完數(shù)據(jù)后,復(fù)位FIFO器件并重新觸發(fā)CPLD執(zhí)行下一點(diǎn)的采樣,退出定時中斷程序處理數(shù)據(jù)。
多個AD976A的轉(zhuǎn)換是同時進(jìn)行的,順序進(jìn)行的僅僅是從AD976A將采樣數(shù)據(jù)打入FIFO存儲器和從FIFO讀出采樣數(shù)據(jù),所以,數(shù)據(jù)最高采樣速率取決于以下幾個部件的速率,即,采樣保持器的采樣時間,A/D轉(zhuǎn)換時間,A/D中數(shù)據(jù)打入FIFO的時間,以及從FIFO中讀出數(shù)據(jù)的時間。通過選用高速的采樣保持器件和高速的A/D轉(zhuǎn)換器件,可以提高采樣的速率。
CPLD程序用VHDL語言設(shè)計,設(shè)計的關(guān)鍵是分析各個器件的工作時序和采樣保持時間,A/D轉(zhuǎn)換時間,打入數(shù)據(jù)等。VHDL設(shè)計的時序處理的進(jìn)程中,要根據(jù)CPLD工作的頻率計算各個等待周期,等器件準(zhǔn)備好以后才能進(jìn)行下一個處理。如圖5所示,DSP觸發(fā)復(fù)位FIFO信號和采樣邏輯,CPLD先復(fù)位FIFO,然后啟動采樣保持器進(jìn)行采樣,插入等待周期,等采樣完成以后,再發(fā)出命令使采樣保持器保持?jǐn)?shù)據(jù),然后啟動A/D轉(zhuǎn)換器轉(zhuǎn)換,插入等待周期,即理論上的轉(zhuǎn)換完成時間加上一定的時間裕度,等待A/D轉(zhuǎn)換結(jié)束,然后將數(shù)據(jù)打入FIFO,遞增模擬通道號,進(jìn)行下一通道的采樣。
5 結(jié)束語
?? 本文提出了一種易與各種單片機(jī)系統(tǒng)接口的由純硬件電路控制的多通道高速數(shù)據(jù)采集系統(tǒng)。由于本采樣電路是多通道高速采樣,所以要合理地設(shè)計直流電源,在設(shè)計PCB板時,要注意合理布局和設(shè)置良好的靜電屏蔽,還要考慮電磁干擾問題。如果是擴(kuò)展多個A/D轉(zhuǎn)換器,A/D選擇的讀入信號為X95108上的/BRD1~/BRD4,在X95108上還可以擴(kuò)展讀入信號,以增加A/D轉(zhuǎn)換器,這時更應(yīng)該注意總線的布局。它的自動采樣硬件電路主要采用CPLD和FIFO技術(shù)設(shè)計而成。該裝置可以實現(xiàn)多路模擬量的高速采集。在實際應(yīng)用工頻電流電壓采樣中,可以采集36路模擬量,每個周波(20ms)采樣32點(diǎn),工作非常穩(wěn)定可靠,值得推廣。
2 李維波,毛承雄,李啟炎,等.陡脈沖大電流的Rogowski測 量線圈仿真研究.高電壓技術(shù),2002,28(8):11~133 竇振中編著.單片機(jī)外圍器件使用手冊——存儲器分冊.北京:北京航空航天大學(xué)出版社,1998
4 朱明程編著.XILINX數(shù)字系統(tǒng)現(xiàn)場集成技術(shù).南京:東南大學(xué)出版社,2001
5 李剛,林凌,葉文宇編著.TMS320F206DSP結(jié)構(gòu)、原理及應(yīng)用.北京:北京航空航天大學(xué)出版社,2002
評論