CPLD" title="CPLD">CPLD是復(fù)雜的PLD,專指那些集成規(guī)模大于1000門以上的可編程邏輯器件,。它由與陣列,、或陣列、輸入緩沖電路,、輸出宏單元組成,,具有門電路集成度高、可配置為多種輸入輸出形式,、多時(shí)鐘驅(qū)動(dòng),、內(nèi)含ROM或FLASH(部分支持在系統(tǒng)編程)、可加密,、低電壓、低功耗以及支持混合編程技術(shù)等突出特點(diǎn),。而且CPLD的邏輯單元功能強(qiáng)大,,一般的邏輯在單元內(nèi)均可實(shí)現(xiàn),因而其互連關(guān)系簡(jiǎn)單,電路的延時(shí)就是單元本身和集總總線的延時(shí)(通常在數(shù)納秒至十?dāng)?shù)納秒),,并且可以預(yù)測(cè),。所以CPLD比較適合于邏輯復(fù)雜、輸入變量多但對(duì)觸發(fā)器的需求量相對(duì)較少的邏輯型系統(tǒng),。
MAX7000" title="MAX7000">MAX7000系列產(chǎn)品與高速數(shù)據(jù)采集系統(tǒng)的要求相符,,十分適合于高速設(shè)計(jì)。由MAX7000系列CPLD設(shè)計(jì)的高速數(shù)據(jù)采集系統(tǒng)已經(jīng)應(yīng)用在電力系統(tǒng)某精確故障定位系統(tǒng)中,。
1 高速數(shù)據(jù)采集系統(tǒng)的硬件結(jié)構(gòu)
對(duì)于一般的高速數(shù)據(jù)采集系統(tǒng)而言,,除了采用高速的A/D轉(zhuǎn)換器、高速存儲(chǔ)器等高速器件之外,,還要解決如何高速尋址,、如何控制總線邏輯、如何進(jìn)行高速存儲(chǔ)以及如何方便地與PC機(jī)交換數(shù)據(jù)等問(wèn)題,。這些問(wèn)題都是設(shè)計(jì)一個(gè)高速數(shù)據(jù)采集系統(tǒng)所要共同面對(duì)的問(wèn)題,。兼顧這些共性問(wèn)題,筆者設(shè)計(jì)了一套以精確故障定位為目的的高速數(shù)據(jù)采集系統(tǒng),。
該系統(tǒng)的硬件框圖如圖1所示,。在沒(méi)有故障發(fā)生的時(shí)候,輸入的模擬量通過(guò)高速AD芯片AD9225(其轉(zhuǎn)換速率可達(dá)到25MSPS,,分辨率為12位)轉(zhuǎn)換成數(shù)字量,,然后通過(guò)CPLD構(gòu)成的數(shù)據(jù)總線控制器,以高4位和低8位的形式分別存儲(chǔ)在兩片橫向并聯(lián)的緩沖RAM 628512(存儲(chǔ)時(shí)間為70ns)中,。存儲(chǔ)地址由CPLD構(gòu)成的地址發(fā)生器產(chǎn)生,,地址發(fā)生器產(chǎn)生的地址范圍可由存儲(chǔ)器的容量決定。地址產(chǎn)生器循環(huán)計(jì)數(shù),,數(shù)據(jù)循環(huán)存儲(chǔ),。此間的運(yùn)行完全不需要CPU控制,系統(tǒng)硬件可自動(dòng)完成高速數(shù)據(jù)采集,,使硬件的高速性能得到充分運(yùn)用,。CPU2采用AD公司的AduC812,它本身就是全集成的高性能12位數(shù)據(jù)采集系統(tǒng),,內(nèi)部集成了1個(gè)12位的ADC,。當(dāng)其檢測(cè)到輸入的模擬量發(fā)生了突變時(shí),再經(jīng)過(guò)預(yù)定的持續(xù)采集時(shí)間后,,給出觸發(fā)信號(hào)到數(shù)據(jù)總線控制器和地址總線控制器,,由CPU2取得數(shù)據(jù)總線和地址總線控制權(quán),然后通過(guò)雙口RAM2以及CPLD構(gòu)成的ISA總線接口,,將緩沖RAM 628512中的數(shù)據(jù)傳入PC機(jī),。再聯(lián)合由GPS,、CPU1和雙口RAM1構(gòu)成的精確授時(shí)系統(tǒng),就可用于精確故障定位或故障錄波了,。
2 MAX7000系列CPLD及其開(kāi)發(fā)平臺(tái)介紹
由于高速數(shù)據(jù)采集系統(tǒng)的特殊要求,,在眾多的CPLD器件中,選擇了ALTERA公司的MAX系列器件,。MAX系列的高性能和高密度是基于它先進(jìn)的MAX(Multiple Array Matrix--多重陣列矩陣)架構(gòu),,因此為高速應(yīng)用提供了非常高的性價(jià)比。MAX7000系列還提供了業(yè)界速度最快的可編程邏輯解決方案,。它基于CMOS EEPROM工藝,,傳播延遲最小為3.5ns,可以實(shí)現(xiàn)速度高于200MHz的計(jì)數(shù)器,,并且為高密度的器件提供了非常寬的選擇余地,,十分適合高速設(shè)計(jì)時(shí)應(yīng)用,。該公司的MAX+plusII軟件是一款易于使用的開(kāi)發(fā)工具,,其界面友好,,集成化程度高,,兼容工業(yè)標(biāo)準(zhǔn),,支持FLEX\MAX\ACEX 1K等系列產(chǎn)品,。并且為大學(xué)提供了學(xué)生版軟件,,在功能上與商業(yè)版類似,,僅在可使用的芯片上受限制,。由于MAX7000系列的這些優(yōu)點(diǎn),,以下的設(shè)計(jì)都基于MAX7000系列產(chǎn)品。
3 CPLD在高速尋址中的應(yīng)用
一般的數(shù)據(jù)采集均需由CPU將A/D轉(zhuǎn)換的結(jié)果讀入,,然后再轉(zhuǎn)存到片外的存儲(chǔ)器中,,這樣至少需要4個(gè)機(jī)器周期。如果按照一般一個(gè)機(jī)器周期為1μs,,那么最高采樣率只能達(dá)到250kHz,,絕難滿足高速采樣的需要。在本系統(tǒng)中,,直接將采樣數(shù)據(jù)存到高速緩沖RAM中,,而存儲(chǔ)器尋址則采用ALTERA公司的EPM7032LC44-6構(gòu)成的地址發(fā)生器來(lái)完成。寫(xiě)信號(hào)可采用A/D轉(zhuǎn)換的時(shí)鐘信號(hào),,但需經(jīng)過(guò)一系列分頻及邏輯組合,,也可另由電路產(chǎn)生或放在地址發(fā)生器中。EPM7032LC44-6構(gòu)成地址發(fā)生器的基本原理是采用5片級(jí)聯(lián)的74161組成20位的同步計(jì)數(shù)器,,第20位接在高速緩沖RAM的片選線上,,用來(lái)切換緩沖存儲(chǔ)器組。用CPU2的P1.7控制計(jì)數(shù)允許端,,異步清零,,則20位地址線輸出保持同步,。其具體的實(shí)現(xiàn)可以采用圖形編輯輸入或者文本編輯輸入的方法。下面給出其VHDL語(yǔ)言程序,。
其仿真結(jié)果如圖2所示。
4 CPLD構(gòu)成數(shù)據(jù)總線控制器
在這個(gè)高速數(shù)據(jù)采集系統(tǒng)中,,為了提高數(shù)據(jù)傳輸和尋址的速度,,在正常采樣期間,其數(shù)據(jù)總線和地址總線并不需要CPU控制,,數(shù)據(jù)存儲(chǔ)是由系統(tǒng)硬件自動(dòng)完成的,。但當(dāng)CPU2監(jiān)測(cè)到輸入模擬量的突變時(shí),再經(jīng)過(guò)預(yù)定的一段持續(xù)采樣時(shí)間后,,就會(huì)發(fā)出控制信息給地址發(fā)生器和數(shù)據(jù)總線控制器,,停止繼續(xù)存儲(chǔ)采樣數(shù)據(jù)和自動(dòng)產(chǎn)生地址,而由CPU2取得總線的控制權(quán),,對(duì)處在高速緩沖RAM中的故障前后數(shù)據(jù)進(jìn)行操作,。為避免總線沖突,就需要一塊數(shù)據(jù)總線的控制器處理好系統(tǒng)總線和局部總線的關(guān)系,。
EPM7064可以很好地解決這個(gè)問(wèn)題,。在EPM7064的內(nèi)部,用三態(tài)門將CPU2的讀寫(xiě)控制線,、8根數(shù)據(jù)總線以及AD9225的12根數(shù)據(jù)線及一根溢出線與控制高速緩沖RAM的讀寫(xiě)控制線和數(shù)據(jù)線隔離開(kāi)來(lái),,由CPU2的P1.7作為CPU2或高速A/D控制總線的控制信號(hào)線,這樣就能方便地實(shí)現(xiàn)緩沖RAM數(shù)據(jù)線訪問(wèn)控制權(quán)的切換,??紤]篇幅,不再詳細(xì)給出實(shí)現(xiàn)程序,。地址總線控制邏輯實(shí)現(xiàn)方法類似,,不再介紹。
5 CPLD構(gòu)成的ISA總線接口
在PC系列機(jī)中,,I/O空間是獨(dú)立的,,共有1KB(地址編號(hào)為000H~3FFH)。由于I/O接口一部分分布在主機(jī)母板上,,另一部分分布在擴(kuò)展槽上,,所以I/O的1024個(gè)口地址也分成兩個(gè)部分,其中前512個(gè)由母板上的接口控制器使用,,后512個(gè)供擴(kuò)展槽內(nèi)的接口控制卡使用,。而且由于后512個(gè)地址中的一部分已經(jīng)被配置成系統(tǒng)資源的接口,所以真正能被用戶設(shè)計(jì)開(kāi)發(fā)的I/O端口為數(shù)不多,,而且不連續(xù),。這樣就不能采用常規(guī)的用PC機(jī)提供的地址總線來(lái)尋址雙口RAM的方法,,因?yàn)檫@種方法只能尋址其中為數(shù)不多而且不連續(xù)的一些單元。所以這是一個(gè)難點(diǎn),。為此,,采用用PC機(jī)的數(shù)據(jù)線來(lái)尋址雙口RAM的方式,只需占用三個(gè)I/O端口,,就能尋址整個(gè)4K的RAM區(qū),。
歡迎轉(zhuǎn)載,本文來(lái)自電子發(fā)燒友網(wǎng)(www.elecfans.com)
ISA總線接口電路邏輯框圖如圖3所示,。
采用了ISA插槽中的8位數(shù)據(jù)線,、10位地址線、讀寫(xiě)控制線IOW和IOR以及電源線,,并假設(shè)使用390H,、391H、392H三個(gè)端口,。當(dāng)PC機(jī)要訪問(wèn)某一地址單元時(shí),,首先通過(guò)390H端口將低8位地址送到數(shù)據(jù)總線上。此時(shí)由PC-AB送出的390H信號(hào)和IOW信號(hào)經(jīng)解碼電路輸出一個(gè)鎖存脈沖到鎖存器(L),將此低8位地址鎖存,;然后通過(guò)391H端口將高4位地址送到數(shù)據(jù)總線上,,此時(shí)由PC-AB送出的391H信號(hào)和IOW信號(hào)經(jīng)解碼電路輸出一個(gè)鎖存脈沖到鎖存器(H),將此高4位地址鎖存;最后通過(guò)392H端口進(jìn)行讀寫(xiě),,只要PC-AB上出現(xiàn)392H信號(hào),,解碼電路就輸出一個(gè)低電平到雙口RAM的/CS,再根據(jù)相應(yīng)的讀寫(xiě)控制信號(hào)就能進(jìn)行讀寫(xiě)操作。
用ALTERA公司的EPM7064SLC84-5實(shí)現(xiàn)這一接口的VHDL文件如下:
仿真結(jié)果表明此電路設(shè)計(jì)完全可以實(shí)現(xiàn)上述功能,。PC機(jī)使用端口392H讀取雙口RAM中的數(shù)據(jù)時(shí)的仿真圖如圖4所示,。
CPLD是現(xiàn)代電子工程領(lǐng)域的一門新技術(shù),它提供了基于計(jì)算機(jī)和信息技術(shù)的電路系統(tǒng)設(shè)計(jì)方法,,提高了設(shè)計(jì)電路的集成度和可靠性,。筆者在將ALTERA公司推出的MAX7000系列產(chǎn)品應(yīng)用于高速數(shù)據(jù)采集方面做了嘗試,具體使用EPM7032和EPM7064設(shè)計(jì)了地址發(fā)生器,、數(shù)據(jù)總線控制器和ISA總線的接口,,目前已經(jīng)將其應(yīng)用在電力系統(tǒng)某精確故障定位系統(tǒng)中。