CPLD在高速數據采集系統中的應用

發(fā)布時(shí)間:2010-6-25 16:23    發(fā)布者:zealot
關(guān)鍵詞: CPLD , 數據采集
CPLD是復雜的PLD,專(zhuān)指那些集成規模大于1000門(mén)以上的可編程邏輯器件。它由與陣列、或陣列、輸入緩沖電路、輸出宏單元組成,具有門(mén)電路集成度高、可配置為多種輸入輸出形式、多時(shí)鐘驅動(dòng)、內含ROM或FLASH(部分支持在系統編程)、可加密、低電壓、低功耗以及支持混合編程技術(shù)等突出特點(diǎn)。而且CPLD的邏輯單元功能強大,一般的邏輯在單元內均可實(shí)現,因而其互連關(guān)系簡(jiǎn)單,電路的延時(shí)就是單元本身和集總總線(xiàn)的延時(shí)(通常在數納秒至十數納秒),并且可以預測。所以CPLD比較適合于邏輯復雜、輸入變量多但對觸發(fā)器的需求量相對較少的邏輯型系統。

MAX7000系列產(chǎn)品與高速數據采集系統的要求相符,十分適合于高速設計。由MAX7000系列CPLD設計的高速數據采集系統已經(jīng)應用在電力系統某精確故障定位系統中。

1 高速數據采集系統的硬件結構

對于一般的高速數據采集系統而言,除了采用高速的A/D轉換器、高速存儲器等高速器件之外,還要解決如何高速尋址、如何控制總線(xiàn)邏輯、如何進(jìn)行高速存儲以及如何方便地與PC機交換數據等問(wèn)題。這些問(wèn)題都是設計一個(gè)高速數據采集系統所要共同面對的問(wèn)題。兼顧這些共性問(wèn)題,筆者設計了一套以精確故障定位為目的的高速數據采集系統。

該系統的硬件框圖如圖1所示。在沒(méi)有故障發(fā)生的時(shí)候,輸入的模擬量通過(guò)高速AD芯片AD9225(其轉換速率可達到25MSPS,分辨率為12位)轉換成數字量,然后通過(guò)CPLD構成的數據總線(xiàn)控制器,以高4位和低8位的形式分別存儲在兩片橫向并聯(lián)的緩沖RAM 628512(存儲時(shí)間為70ns)中。存儲地址由CPLD構成的地址發(fā)生器產(chǎn)生,地址發(fā)生器產(chǎn)生的地址范圍可由存儲器的容量決定。地址產(chǎn)生器循環(huán)計數,數據循環(huán)存儲。此間的運行完全不需要CPU控制,系統硬件可自動(dòng)完成高速數據采集,使硬件的高速性能得到充分運用。CPU2采用AD公司的AduC812,它本身就是全集成的高性能12位數據采集系統,內部集成了1個(gè)12位的ADC。當其檢測到輸入的模擬量發(fā)生了突變時(shí),再經(jīng)過(guò)預定的持續采集時(shí)間后,給出觸發(fā)信號到數據總線(xiàn)控制器和地址總線(xiàn)控制器,由CPU2取得數據總線(xiàn)和地址總線(xiàn)控制權,然后通過(guò)雙口RAM2以及CPLD構成的ISA總線(xiàn)接口,將緩沖RAM 628512中的數據傳入PC機。再聯(lián)合由GPS、CPU1和雙口RAM1構成的精確授時(shí)系統,就可用于精確故障定位或故障錄波了。


2 MAX7000系列CPLD及其開(kāi)發(fā)平臺介紹

由于高速數據采集系統的特殊要求,在眾多的CPLD器件中,選擇了ALTERA公司的MAX系列器件。MAX系列的高性能和高密度是基于它先進(jìn)的MAX(Multiple Array Matrix--多重陣列矩陣)架構,因此為高速應用提供了非常高的性?xún)r(jià)比。MAX7000系列還提供了業(yè)界速度最快的可編程邏輯解決方案。它基于CMOS EEPROM工藝,傳播延遲最小為3.5ns,可以實(shí)現速度高于200MHz的計數器,并且為高密度的器件提供了非常寬的選擇余地,十分適合高速設計時(shí)應用。該公司的MAX+plusII軟件是一款易于使用的開(kāi)發(fā)工具,其界面友好,集成化程度高,兼容工業(yè)標準,支持FLEX\MAX\ACEX 1K等系列產(chǎn)品。并且為大學(xué)提供了學(xué)生版軟件,在功能上與商業(yè)版類(lèi)似,僅在可使用的芯片上受限制。由于MAX7000系列的這些優(yōu)點(diǎn),以下的設計都基于MAX7000系列產(chǎn)品。

3 CPLD在高速尋址中的應用

一般的數據采集均需由CPU將A/D轉換的結果讀入,然后再轉存到片外的存儲器中,這樣至少需要4個(gè)機器周期。如果按照一般一個(gè)機器周期為1μs,那么最高采樣率只能達到250kHz,絕難滿(mǎn)足高速采樣的需要。在本系統中,直接將采樣數據存到高速緩沖RAM中,而存儲器尋址則采用ALTERA公司的EPM7032LC44-6構成的地址發(fā)生器來(lái)完成。寫(xiě)信號可采用A/D轉換的時(shí)鐘信號,但需經(jīng)過(guò)一系列分頻及邏輯組合,也可另由電路產(chǎn)生或放在地址發(fā)生器中。EPM7032LC44-6構成地址發(fā)生器的基本原理是采用5片級聯(lián)的74161組成20位的同步計數器,第20位接在高速緩沖RAM的片選線(xiàn)上,用來(lái)切換緩沖存儲器組。用CPU2的P1.7控制計數允許端,異步清零,則20位地址線(xiàn)輸出保持同步。其具體的實(shí)現可以采用圖形編輯輸入或者文本編輯輸入的方法。下面給出其VHDL語(yǔ)言程序。

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY untitle4 IS
PORT
(ci : IN std_logic;
clk : IN std_logic;
nreset: IN std_logic;
addbus; buffer std_logic_vector(19 DOWNto 0)

); ?

END untitle4;
ARCHITECTURE behave OF untitle4 IS
BEGIN
PROCESS(clk,nreset)
BEGIN

IF(nreset='0' THEN

Addbus<="00000000000000000000"?

ELSIF rising_edge(clk))THEN

IF(ci='1') THEN

IF(addbus="11111111111111111111" then

Addbus<="00000000000000000000"?

ELSE

Addbus<=addbus+1;

END IF;

END IF;---end if ci=1

END IF;---end if reset

END PROCESS;

END behave;

仿真結果如圖2所示。


4 CPLD構成數據總線(xiàn)控制器

在這個(gè)高速數據采集系統中,為了提高數據傳輸和尋址的速度,在正常采樣期間,其數據總線(xiàn)和地址總線(xiàn)并不需要CPU控制,數據存儲是由系統硬件自動(dòng)完成的。但當CPU2監測到輸入模擬量的突變時(shí),再經(jīng)過(guò)預定的一段持續采樣時(shí)間后,就會(huì )發(fā)出控制信息給地址發(fā)生器和數據總線(xiàn)控制器,停止繼續存儲采樣數據和自動(dòng)產(chǎn)生地址,而由CPU2取得總線(xiàn)的控制權,對處在高速緩沖RAM中的故障前后數據進(jìn)行操作。為避免總線(xiàn)沖突,就需要一塊數據總線(xiàn)的控制器處理好系統總線(xiàn)和局部總線(xiàn)的關(guān)系。

EPM7064可以很好地解決這個(gè)問(wèn)題。在EPM7064的內部,用三態(tài)門(mén)將CPU2的讀寫(xiě)控制線(xiàn)、8根數據總線(xiàn)以及AD9225的12根數據線(xiàn)及一根溢出線(xiàn)與控制高速緩沖RAM的讀寫(xiě)控制線(xiàn)和數據線(xiàn)隔離開(kāi)來(lái),由CPU2的P1.7作為CPU2或高速A/D控制總線(xiàn)的控制信號線(xiàn),這樣就能方便地實(shí)現緩沖RAM數據線(xiàn)訪(fǎng)問(wèn)控制權的切換?紤]篇幅,不再詳細給出實(shí)現程序。地址總線(xiàn)控制邏輯實(shí)現方法類(lèi)似,不再介紹。

5 CPLD構成的ISA總線(xiàn)接口

在PC系列機中,I/O空間是獨立的,共有1KB(地址編號為000H~3FFH)。由于I/O接口一部分分布在主機母板上,另一部分分布在擴展槽上,所以I/O的1024個(gè)口地址也分成兩個(gè)部分,其中前512個(gè)由母板上的接口控制器使用,后512個(gè)供擴展槽內的接口控制卡使用。而且由于后512個(gè)地址中的一部分已經(jīng)被配置成系統資源的接口,所以真正能被用戶(hù)設計開(kāi)發(fā)的I/O端口為數不多,而且不連續。這樣就不能采用常規的用PC機提供的地址總線(xiàn)來(lái)尋址雙口RAM的方法,因為這種方法只能尋址其中為數不多而且不連續的一些單元。所以這是一個(gè)難點(diǎn)。為此,采用用PC機的數據線(xiàn)來(lái)尋址雙口RAM的方式,只需占用三個(gè)I/O端口,就能尋址整個(gè)4K的RAM區。

ISA總線(xiàn)接口電路邏輯框圖如圖3所示。


采用了ISA插槽中的8位數據線(xiàn)、10位地址線(xiàn)、讀寫(xiě)控制線(xiàn)IOW和IOR以及電源線(xiàn),并假設使用390H、391H、392H三個(gè)端口。當PC機要訪(fǎng)問(wèn)某一地址單元時(shí),首先通過(guò)390H端口將低8位地址送到數據總線(xiàn)上。此時(shí)由PC-AB送出的390H信號和IOW信號經(jīng)解碼電路輸出一個(gè)鎖存脈沖到鎖存器(L),將此低8位地址鎖存;然后通過(guò)391H端口將高4位地址送到數據總線(xiàn)上,此時(shí)由PC-AB送出的391H信號和IOW信號經(jīng)解碼電路輸出一個(gè)鎖存脈沖到鎖存器(H),將此高4位地址鎖存;最后通過(guò)392H端口進(jìn)行讀寫(xiě),只要PC-AB上出現392H信號,解碼電路就輸出一個(gè)低電平到雙口RAM的/CS,再根據相應的讀寫(xiě)控制信號就能進(jìn)行讀寫(xiě)操作。

用ALTERA公司的EPM7064SLC84-5實(shí)現這一接口的VHDL文件如下:

PORT
(PCDB: INOUT std_logic_vector(7 downto 0);
PCAB: IN std_logic_vector(9 downto 0);
PCRD: IN std_logic;
PCWR; IN std_logic;
RAMDB:INOUT std_logic_vector(7 downto 0);
RAMABL:OUT std_logic_vector(7 downto 0);
RAMABH:OUT std_logic_vector(3 downto 0);
RAMCS:OUT std_logic;
RAMWR:OUT std_logic;
RAMRD:OUT std_logic
 ?
END isal;
ARCHITECTURE behave OF isal IS

BEGIN

RAMDB<=PCDB WHEN (PCWR='0') ELSE (OTHERS=>'Z');

PCDB<=RAMDB WHEN (PCRD='0') ELSE (OTHERS=>'Z');

RAMABL<=PCDB WHEN (PCAB="1110010000" AND PCWR='0' )ELSE

(OTHERS=>'Z');

RAMABH<=PCDB(3 DOWNTO 0) WHEN (PCAB="1110010001" AND PCWR='0')

ELSE (OTHERS=>'Z');

RAMCS<='0' when (PCAB="1110010010") ELSE '1';

RAMWR<=PCWR;

RAMRD<=PCRD;

END BEHAVE;

仿真結果表明此電路設計完全可以實(shí)現上述功能。PC機使用端口392H讀取雙口RAM中的數據時(shí)的仿真圖如圖4所示。


CPLD是現代電子工程領(lǐng)域的一門(mén)新技術(shù),它提供了基于計算機和信息技術(shù)的電路系統設計方法,提高了設計電路的集成度和可靠性。筆者在將ALTERA公司推出的MAX7000系列產(chǎn)品應用于高速數據采集方面做了嘗試,具體使用EPM7032和EPM7064設計了地址發(fā)生器、數據總線(xiàn)控制器和ISA總線(xiàn)的接口,目前已經(jīng)將其應用在電力系統某精確故障定位系統中。
本文地址:http://selenalain.com/thread-13726-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
xwk297046 發(fā)表于 2010-6-28 09:54:32
xwk297046 發(fā)表于 2010-6-28 09:54:44
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页