技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > Max7000系列可編程器件在DSP系統(tǒng)設(shè)計(jì)中的應(yīng)用

Max7000系列可編程器件在DSP系統(tǒng)設(shè)計(jì)中的應(yīng)用

時(shí)間:2008-09-08 09:10:00來(lái)源:ronggang

導(dǎo)語(yǔ):?本文介紹了MAX7000系列CPLD器件在DSP接口電路中的應(yīng)用,重點(diǎn)介紹了TMS3202××系列DSP和存儲(chǔ)器,LCD接口的方法,并輔以VHDL源程序的例子
摘 要:本文介紹了MAX7000系列CPLD器件在DSP接口電路中的應(yīng)用,重點(diǎn)介紹了TMS3202××系列DSP和存儲(chǔ)器,LCD接口的方法,并輔以VHDL源程序的例子。 關(guān)鍵詞:DSP;MAX7000;CPLD;可編程邏輯器件 前言:   Altera公司的產(chǎn)品基本上都屬于CPLD結(jié)構(gòu)。由于它的內(nèi)部連線均采用連續(xù)式互聯(lián)結(jié)構(gòu),即利用同樣長(zhǎng)度的金屬線實(shí)現(xiàn)邏輯單元之間的連接,所以它具有延時(shí)可預(yù)測(cè)的優(yōu)點(diǎn)。由于采用了全新的結(jié)構(gòu),先進(jìn)的技術(shù)再加上MAX+PLUSII可編程邏輯的開(kāi)發(fā)環(huán)境,使得Altera公司的PLD器件不僅具有PLD器件的一般優(yōu)點(diǎn),而且還有如下一些優(yōu)勢(shì):高性能、高集成度、價(jià)格合理、開(kāi)發(fā)周期較短、可以很方便的進(jìn)行在線編程。   MAX系列是Altera目前最為流行,使用最廣泛的兩個(gè)系列之一,因此本文章以MAX7000系列芯片為例介紹了可編程芯片在DSP系統(tǒng)設(shè)計(jì)中的應(yīng)用。 MAX7000系列器件的特點(diǎn)   MAX7000系列是高密度,高性能的CMOS CPLD,是在Altera公司的第二代MAX結(jié)構(gòu)基礎(chǔ)上構(gòu)成的,采用先進(jìn)的0.8umCOMS EEPROM技術(shù)制造。MAX7000系列提供600到5000可用門(mén)(器件上提供1200-10000門(mén)),引腳到引腳的延時(shí)為6ns,計(jì)數(shù)器頻率可達(dá)151.5MHz。MAX7000系列的-7和-10P速度等級(jí)同PCI總線標(biāo)準(zhǔn)一致。MAX7000系列的高密度器件稱(chēng)為MAX7000E系列。它們有幾個(gè)加強(qiáng)的特性:附加全局時(shí)鐘,附加輸入使能控制,增加連線資源、快速輸入寄存器和可編程的輸出電壓擺動(dòng)率。   MAX7000是用CMOS EEPROM單元實(shí)現(xiàn)邏輯函數(shù)的??删幊痰腗AX7000結(jié)構(gòu)容納各種各樣的,有獨(dú)立的組合邏輯和時(shí)序邏輯函數(shù)。在設(shè)計(jì)開(kāi)發(fā)和調(diào)整階段,MAX7000器件可以快速而有效地重新編程,并保證可編程的擦除100次。 DSP系統(tǒng)結(jié)構(gòu)   在進(jìn)行DSP系統(tǒng)設(shè)計(jì)時(shí)采用CPLD來(lái)實(shí)現(xiàn)DSP和其他外圍芯片的接口電路的優(yōu)點(diǎn)主要是硬件設(shè)計(jì)簡(jiǎn)單,因?yàn)镃PLD的管腳具有重定義的功能,這使得PCB板的設(shè)計(jì)要簡(jiǎn)化很多;同時(shí)因?yàn)镸AX7000系列CPLD的功能比較強(qiáng)大,可以很容易實(shí)現(xiàn)地址譯碼、等待時(shí)序的插入以及這種簡(jiǎn)單的總線轉(zhuǎn)換,一般用一塊CPLD就可以實(shí)現(xiàn)系統(tǒng)所有的接口電路。它的功能框圖如下:
  下面從等待時(shí)序的產(chǎn)生、地址譯碼和LCD接口電路的實(shí)現(xiàn)幾個(gè)方面來(lái)舉例說(shuō)明。 用CPLD產(chǎn)生等待時(shí)序   TMS320C2X支持與慢速外設(shè)接口的硬件等待狀態(tài)插入。當(dāng)與慢速外設(shè)接口時(shí),系統(tǒng)必須提供能產(chǎn)生等待狀態(tài)的硬件電路。外設(shè)存取的速度越慢,所需插入的等待狀態(tài)數(shù)量就越多。那么,如何根據(jù)外設(shè)存取速度來(lái)確定所需的等待數(shù)可以由下式確定:   設(shè)t為外設(shè)訪問(wèn)時(shí)間   TMS32020 [200(N-1)+85]ns   TMS320C25-40 [100(N-1)+40]ns   TMS320C25-50 [80(N-1)+29]ns   假設(shè)設(shè)計(jì)的系統(tǒng)在訪問(wèn)程序空間時(shí)需要加入兩個(gè)等待,I/O空間和數(shù)據(jù)空間則是全速。用VHDL語(yǔ)言描述如下:   —— generate wait state for low speed interface   g_wait_prog:   PROCESS (clockout, reset)   BEGIN   IF ((res_cpu = ‘0‘) or (ps = ‘1‘))THEN   progwaitclock <= 0;   ELSIF (clockout‘EVENT AND clockout= ‘0‘) THEN   IF (ps = ‘0‘) THEN   IF progwaitclock = 2 THEN   progwaitclock <= 0;   ELSE   progwaitclock <= progwaitclock + 1;   END IF;   ELSE   progwaitclock <= progwaitclock ;   END IF;   END IF;   END PROCESS g_wait_prog;   —— generate ready signal   PROCESS   BEGIN   IF ((progwaitclock = 0)and(lcdwaitclock = 0)) THEN   ready <= ‘1‘;   ELSE   ready <= ‘0‘;   END IF;   END PROCESS ;   Clockout為CPU的時(shí)鐘輸出信號(hào),信號(hào)量progwaitclock是用來(lái)計(jì)數(shù)clockout的個(gè)數(shù),當(dāng)CPU訪問(wèn)程序空間時(shí),PS為低電平,progwaitclock開(kāi)始計(jì)數(shù),當(dāng)progwaitclock的值不為0時(shí)ready為高,CPU等待外部設(shè)備就緒,當(dāng)progwaitclock計(jì)數(shù)到要等待的個(gè)數(shù)時(shí),progwaitclock復(fù)位為零,ready變?yōu)榈?,CPU等待結(jié)束。 用CPLD實(shí)現(xiàn)存儲(chǔ)器接口   存儲(chǔ)器接口包括ROM接口和RAM接口兩種。ROM主要指PROM和EPROM,而RAM主要是靜態(tài)RAM(SRAM)。設(shè)計(jì)存儲(chǔ)器接口時(shí)主要考慮到存儲(chǔ)器速度,以確定需要插入幾個(gè)等待狀態(tài),同時(shí)還要考慮到地址譯碼,地址空間分配的問(wèn)題。   1 快速PROM/EPROM接口   快速PROM/EPROM(存取時(shí)間 35ns)可直接和TMS320C2××接口而不用加入等待,但要考慮到地址譯碼的問(wèn)題。   2 慢速EPROM/EEPROM/FLASH MEMORY的接口   對(duì)于慢速器件,在和DSP這種較快的處理器接口的時(shí)候要加入合適的等待周期,同時(shí)還要考慮地址譯碼的問(wèn)題。   3 快速SRAM接口   TMS320C2××既可將SRAM用作程序存儲(chǔ)器,也可用作數(shù)據(jù)存儲(chǔ)器。不管是程序空間還是數(shù)據(jù)空間,它都只要考慮譯碼的問(wèn)題,用正確的線片選即可,如程序空間用PS片選,而數(shù)據(jù)空間用DS片選。   4 程序和數(shù)據(jù)公用SRAM   在很多時(shí)候,為了方便調(diào)試不但要擴(kuò)展程序SRAM也要擴(kuò)展數(shù)據(jù)SRAM。因?yàn)門(mén)MS320C2××分別用PS和DS來(lái)選程序和數(shù)據(jù)空間,所以一般的做法是用PS和DS分別片選不同的芯片,為了使DSP有足夠的程序和地址空間,我們需要多片存儲(chǔ)器芯片,這樣,會(huì)給PCB布線的時(shí)候帶來(lái)很大的麻煩。因?yàn)椴捎昧薈PLD來(lái)進(jìn)行譯碼,我們可以很方便的用一塊容量較大的SRAM,通過(guò)合適的譯碼電路使它的空間能分開(kāi),既有程序空間又有數(shù)據(jù)空間。下以CY7C1024-15為例來(lái)說(shuō)明:   —— ram address allocation.   —— pro_data = 1 means select 8000H——ffffH(data);   —— pro_data = 0 means select 0000H——7fffH(program);   PROCESS (ds,ps)   BEGIN   IF((strb= ‘0‘)and(ds = ‘1‘)and(ps = ‘0‘)) THEN   pro_data <= ‘0‘;   ELSIF((strb= ‘0‘)and(ds = ‘0‘)and(ps = ‘1‘)) THEN   pro_data <= ‘1‘;   ELSE   pro_data <= ‘0‘;   END IF;   END PROCESS;   —— ram control line.   control:   PROCESS (we, w/r, ps, ds, ios, br, strb)   BEGIN   IF strb = "0" THEN   IF ((ds = ‘1‘)and(ps = ‘0‘))or((ds = ‘1‘)and(ps = ‘0‘)) THEN   ram_cs <= "0";   ram_w/r <= w/r;   ram_oe <= we;   ELSE   ram_cs <= "1";   ram_w/r <= "1";   ram_oe <= "1";   END IF;   ELSE   ram_cs <= "1";   ram_w/r <= "1";   ram_oe <= "1";   END IF;   CY7C1021是Cypress公司生產(chǎn)的64k×16bit Static RAM,以上程序要完成的功能是讓一塊芯片的64k空間中的低端32k為程序空間,另外32k為數(shù)據(jù)空間。程序中的pro_data接CY7C1021的最高位地址線A15,當(dāng)ps為低時(shí)pro_data為低電平,選中RAM的低32k空間,當(dāng)ds為低時(shí)pro_data為高電平,選中RAM的高32k空間,ram_cs、ram_w/r、ram_oe分別接CY7C1021的片選、讀、寫(xiě)線。 用CPLD實(shí)現(xiàn)LCD接口電路   我們常用的LCD有很多種,如段型、點(diǎn)陣型,這兒主要介紹如何用CPLD來(lái)實(shí)現(xiàn)DSP和點(diǎn)陣型LCD的接口。由于點(diǎn)陣型液晶顯示器的引線多,用戶(hù)使用極不方便,所以制造商將點(diǎn)陣型液晶顯示器做在一塊板上成套出售,這種產(chǎn)品稱(chēng)為液晶顯示模塊。在液晶顯示模塊上裝配好了液晶顯示驅(qū)動(dòng)電路和分壓電路,并提供驅(qū)動(dòng)電路的接口,這使得液晶顯示模塊和微處理器的接口十分方便。它在結(jié)構(gòu)上可分為接口、控制和輸出三大部分。以深圳天馬公司的液晶模塊為例,簡(jiǎn)單介紹它的接口。它一共有11條信號(hào)線:   RS用于寄存器選擇,低電平選擇指令寄存器,高電平選擇數(shù)據(jù)寄存器。   R/W為讀/寫(xiě)控制端,低電平時(shí)寫(xiě)顯示模塊,把CPU的數(shù)據(jù)寫(xiě)入顯示模塊;高電平讀顯示模塊,把顯示模塊的數(shù)讀回CPU。   E為允許輸入信號(hào)線(數(shù)據(jù)讀寫(xiě)操作允許信號(hào)),高電平有效。   D0-D7為數(shù)據(jù)線。   相比較DSP而言,LCD顯示模塊是慢速器件,在設(shè)計(jì)接口電路時(shí)除了要考慮它的接口時(shí)序匹配外還要考慮加入合適的等待周期。在下面給出的例子中地址線a0用來(lái)控制是讀還是寫(xiě),a1用來(lái)選擇數(shù)據(jù)寄存器還是控制寄存器。Lcd_rs接到LCD模塊的RS管腳,lcd_wr接到LCD模塊的W/R管腳,lcd_e接到E管腳。程序中的high_adr是DSP地址線高3位a15-a13的組合,在這個(gè)例子程序中LCD模塊的操作地址被映射到DSP的IO空間的0x2000-0x3fff。   —— lcd interface :   —— input : a1(lcd_rs), a0(lcd_wr) ,we, wr, ios, strb ;   —— a1,a0 => "00" : write command   —— a1,a0 => "01" : read AC value   —— a1,a0 => "10" : write data   —— a1,a0 => "11" : read data   —— lcd_rs : select register bank ‘1‘ for data, ‘0‘ for command   —— lcd_wr : write/read control ‘1‘ for read, ‘0‘ for write   —— lcd_e : enable signal; ‘1‘ for read , ‘1‘ to ‘0‘ write data in   lcd_en:   PROCESS (we, wr, ios, strb)   BEGIN   IF ((strb = ‘0‘) and (ios = ‘0‘)) THEN   IF (high_adr = "001") THEN   lcd_rs <= a1;   lcd_wr <= a0;   lcd_e <= (not (we or wr));   ELSE   lcd_rs <= ‘0‘;   lcd_wr <= ‘0‘;   lcd_e <= ‘0‘;   END IF;   ELSE   lcd_rs <= ‘0‘;   lcd_wr <= ‘0‘;   lcd_e <= ‘0‘;   END IF;   END PROCESS lcd_en;   —— generate wait state for low speed interface   g_lcd_wait:   PROCESS (clockout, reset1 )   BEGIN   IF ((reset1 = ‘0‘)or(not((ios = ‘0‘) and (high_adr = "001")))) THEN   lcdwaitclock <= 0;   ELSIF (clockout‘EVENT AND clockout= ‘0‘) THEN   IF ((ios = ‘0‘) and (high_adr = "001")) THEN   IF lcdwaitclock = 5 THEN   lcdwaitclock <= 0;   ELSE   lcdwaitclock <= lcdwaitclock + 1;   END IF;   ELSE   lcdwaitclock <= 0;   END IF;   END IF;   END PROCESS g_lcd_wait;   用CPLD實(shí)現(xiàn)鍵盤(pán)接口電路   DSP和鍵盤(pán)的接口可以用專(zhuān)用的鍵盤(pán)接口芯片來(lái)實(shí)現(xiàn),但如果是要識(shí)別的鍵不是很多,用一塊專(zhuān)門(mén)的鍵盤(pán)接口芯片就顯得有些多余,用一塊CPLD附帶就能實(shí)現(xiàn)鍵盤(pán)接口,它可以把鍵碼的識(shí)別映射到DSP的一個(gè)IO空間,然后通過(guò)讀這個(gè)IO地址來(lái)判斷是否有鍵按下,它也可以很方便的實(shí)現(xiàn)按鍵中斷,所以的鍵通過(guò)與的關(guān)系產(chǎn)生一個(gè)信號(hào),這個(gè)信號(hào)連到CPU的中斷輸入管腳,當(dāng)有鍵按下時(shí),這個(gè)信號(hào)發(fā)生調(diào)變觸發(fā)CPU的中斷。同時(shí)它還可以很容易實(shí)現(xiàn)硬件消抖。因?yàn)檫@部分比較簡(jiǎn)單,故不再舉例說(shuō)明。 仿真波形   如圖所示為以上VHDL程序在MAXPLUSII中編譯仿真的結(jié)果,仿真僅僅給出了每個(gè)功能模塊的部分波形,圖中顯示了當(dāng)訪問(wèn)程序空間時(shí),pro_data為低電平,ready保持兩個(gè)時(shí)鐘周期的低電平使得CPU總線插入兩個(gè)周期的等待。圖中還顯示了當(dāng)訪問(wèn)IO空間的0x2002地址時(shí)的波形,對(duì)這個(gè)地址進(jìn)行讀操作是從LCD的控制寄存器讀入數(shù)據(jù),這時(shí)ready保持5個(gè)時(shí)鐘周期的低電平來(lái)讓CPU插入5個(gè)周期的等待,在這個(gè)期間lcd_wr保持高電平表示對(duì)LCD進(jìn)行讀操作,lcd_rs保持低電平表示選擇LCD的控制寄存器。
結(jié)論   芯片的設(shè)計(jì)、生產(chǎn)和制造技術(shù)的發(fā)展使得CPLD的在各種設(shè)計(jì)中有越來(lái)越多的應(yīng)用,而隨著DSP芯片性能價(jià)格比和開(kāi)發(fā)手段的不斷提高,DSP已在通信與信息系統(tǒng)、信號(hào)與信息處理、自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療、家用電器等許多領(lǐng)域也得到廣泛的應(yīng)用。DSP的高速度和期復(fù)雜的接口時(shí)序使得在設(shè)計(jì)DSP系統(tǒng)時(shí)往往會(huì)難于設(shè)計(jì)DSP和外圍電路的接口,本文以存儲(chǔ)器,LCD等為例簡(jiǎn)單介紹了MAX7000系列在DSP系統(tǒng)中的應(yīng)用,并輔有VHDL實(shí)現(xiàn)的例子,通過(guò)在這方面的實(shí)踐應(yīng)用,總體感覺(jué)用CPLD來(lái)處理DSP的外圍接口電路很方便,因?yàn)樗腎O管腳幾乎可以隨意分配,可給PCB布線帶來(lái)很大的方便;尤其在調(diào)試的時(shí)候,甚至不用斷電就可以重新向CPLD中寫(xiě)入新的邏輯關(guān)系就可以調(diào)試。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:監(jiān)控組態(tài)軟件的熱備與冗余

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢(xún)采購(gòu)咨詢(xún)媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)