小视频免费在线观看_夜夜b_男女隐私免费视频_国产一级性生活视频_久久综合入口_精品国内视频

技術頻道

Max7000系列可編程器件在DSP系統(tǒng)設計中的應用

摘 要:本文介紹了MAX7000系列CPLD器件在DSP接口電路中的應用,重點介紹了TMS3202××系列DSP和存儲器,LCD接口的方法,并輔以VHDL源程序的例子。

關鍵詞:DSP;MAX7000;CPLD;可編程邏輯器件

前言:

  Altera公司的產品基本上都屬于CPLD結構。由于它的內部連線均采用連續(xù)式互聯(lián)結構,即利用同樣長度的金屬線實現(xiàn)邏輯單元之間的連接,所以它具有延時可預測的優(yōu)點。由于采用了全新的結構,先進的技術再加上MAX+PLUSII可編程邏輯的開發(fā)環(huán)境,使得Altera公司的PLD器件不僅具有PLD器件的一般優(yōu)點,而且還有如下一些優(yōu)勢:高性能、高集成度、價格合理、開發(fā)周期較短、可以很方便的進行在線編程。

  MAX系列是Altera目前最為流行,使用最廣泛的兩個系列之一,因此本文章以MAX7000系列芯片為例介紹了可編程芯片在DSP系統(tǒng)設計中的應用。

MAX7000系列器件的特點

  MAX7000系列是高密度,高性能的CMOS CPLD,是在Altera公司的第二代MAX結構基礎上構成的,采用先進的0.8umCOMS EEPROM技術制造。MAX7000系列提供600到5000可用門(器件上提供1200-10000門),引腳到引腳的延時為6ns,計數(shù)器頻率可達151.5MHz。MAX7000系列的-7和-10P速度等級同PCI總線標準一致。MAX7000系列的高密度器件稱為MAX7000E系列。它們有幾個加強的特性:附加全局時鐘,附加輸入使能控制,增加連線資源、快速輸入寄存器和可編程的輸出電壓擺動率。

  MAX7000是用CMOS EEPROM單元實現(xiàn)邏輯函數(shù)的。可編程的MAX7000結構容納各種各樣的,有獨立的組合邏輯和時序邏輯函數(shù)。在設計開發(fā)和調整階段,MAX7000器件可以快速而有效地重新編程,并保證可編程的擦除100次。

DSP系統(tǒng)結構

  在進行DSP系統(tǒng)設計時采用CPLD來實現(xiàn)DSP和其他外圍芯片的接口電路的優(yōu)點主要是硬件設計簡單,因為CPLD的管腳具有重定義的功能,這使得PCB板的設計要簡化很多;同時因為MAX7000系列CPLD的功能比較強大,可以很容易實現(xiàn)地址譯碼、等待時序的插入以及這種簡單的總線轉換,一般用一塊CPLD就可以實現(xiàn)系統(tǒng)所有的接口電路。它的功能框圖如下:

  下面從等待時序的產生、地址譯碼和LCD接口電路的實現(xiàn)幾個方面來舉例說明。

用CPLD產生等待時序

  TMS320C2X支持與慢速外設接口的硬件等待狀態(tài)插入。當與慢速外設接口時,系統(tǒng)必須提供能產生等待狀態(tài)的硬件電路。外設存取的速度越慢,所需插入的等待狀態(tài)數(shù)量就越多。那么,如何根據(jù)外設存取速度來確定所需的等待數(shù)可以由下式確定:

  設t為外設訪問時間

  TMS32020 [200(N-1)+85]ns

  TMS320C25-40 [100(N-1)+40]ns

  TMS320C25-50 [80(N-1)+29]ns

  假設設計的系統(tǒng)在訪問程序空間時需要加入兩個等待,I/O空間和數(shù)據(jù)空間則是全速。用VHDL語言描述如下:

  —— 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的時鐘輸出信號,信號量progwaitclock是用來計數(shù)clockout的個數(shù),當CPU訪問程序空間時,PS為低電平,progwaitclock開始計數(shù),當progwaitclock的值不為0時ready為高,CPU等待外部設備就緒,當progwaitclock計數(shù)到要等待的個數(shù)時,progwaitclock復位為零,ready變?yōu)榈停珻PU等待結束。

用CPLD實現(xiàn)存儲器接口

  存儲器接口包括ROM接口和RAM接口兩種。ROM主要指PROM和EPROM,而RAM主要是靜態(tài)RAM(SRAM)。設計存儲器接口時主要考慮到存儲器速度,以確定需要插入幾個等待狀態(tài),同時還要考慮到地址譯碼,地址空間分配的問題。

  1 快速PROM/EPROM接口

  快速PROM/EPROM(存取時間 35ns)可直接和TMS320C2××接口而不用加入等待,但要考慮到地址譯碼的問題。

  2 慢速EPROM/EEPROM/FLASH MEMORY的接口

  對于慢速器件,在和DSP這種較快的處理器接口的時候要加入合適的等待周期,同時還要考慮地址譯碼的問題。

  3 快速SRAM接口

  TMS320C2××既可將SRAM用作程序存儲器,也可用作數(shù)據(jù)存儲器。不管是程序空間還是數(shù)據(jù)空間,它都只要考慮譯碼的問題,用正確的線片選即可,如程序空間用PS片選,而數(shù)據(jù)空間用DS片選。

  4 程序和數(shù)據(jù)公用SRAM

  在很多時候,為了方便調試不但要擴展程序SRAM也要擴展數(shù)據(jù)SRAM。因為TMS320C2××分別用PS和DS來選程序和數(shù)據(jù)空間,所以一般的做法是用PS和DS分別片選不同的芯片,為了使DSP有足夠的程序和地址空間,我們需要多片存儲器芯片,這樣,會給PCB布線的時候帶來很大的麻煩。因為采用了CPLD來進行譯碼,我們可以很方便的用一塊容量較大的SRAM,通過合適的譯碼電路使它的空間能分開,既有程序空間又有數(shù)據(jù)空間。下以CY7C1024-15為例來說明:

  —— 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公司生產的64k×16bit Static RAM,以上程序要完成的功能是讓一塊芯片的64k空間中的低端32k為程序空間,另外32k為數(shù)據(jù)空間。程序中的pro_data接CY7C1021的最高位地址線A15,當ps為低時pro_data為低電平,選中RAM的低32k空間,當ds為低時pro_data為高電平,選中RAM的高32k空間,ram_cs、ram_w/r、ram_oe分別接CY7C1021的片選、讀、寫線。

用CPLD實現(xiàn)LCD接口電路

  我們常用的LCD有很多種,如段型、點陣型,這兒主要介紹如何用CPLD來實現(xiàn)DSP和點陣型LCD的接口。由于點陣型液晶顯示器的引線多,用戶使用極不方便,所以制造商將點陣型液晶顯示器做在一塊板上成套出售,這種產品稱為液晶顯示模塊。在液晶顯示模塊上裝配好了液晶顯示驅動電路和分壓電路,并提供驅動電路的接口,這使得液晶顯示模塊和微處理器的接口十分方便。它在結構上可分為接口、控制和輸出三大部分。以深圳天馬公司的液晶模塊為例,簡單介紹它的接口。它一共有11條信號線:

  RS用于寄存器選擇,低電平選擇指令寄存器,高電平選擇數(shù)據(jù)寄存器。

  R/W為讀/寫控制端,低電平時寫顯示模塊,把CPU的數(shù)據(jù)寫入顯示模塊;高電平讀顯示模塊,把顯示模塊的數(shù)讀回CPU。

  E為允許輸入信號線(數(shù)據(jù)讀寫操作允許信號),高電平有效。

  D0-D7為數(shù)據(jù)線。

  相比較DSP而言,LCD顯示模塊是慢速器件,在設計接口電路時除了要考慮它的接口時序匹配外還要考慮加入合適的等待周期。在下面給出的例子中地址線a0用來控制是讀還是寫,a1用來選擇數(shù)據(jù)寄存器還是控制寄存器。Lcd_rs接到LCD模塊的RS管腳,lcd_wr接到LCD模塊的W/R管腳,lcd_e接到E管腳。程序中的high_adr是DSP地址線高3位a15-a13的組合,在這個例子程序中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實現(xiàn)鍵盤接口電路

  DSP和鍵盤的接口可以用專用的鍵盤接口芯片來實現(xiàn),但如果是要識別的鍵不是很多,用一塊專門的鍵盤接口芯片就顯得有些多余,用一塊CPLD附帶就能實現(xiàn)鍵盤接口,它可以把鍵碼的識別映射到DSP的一個IO空間,然后通過讀這個IO地址來判斷是否有鍵按下,它也可以很方便的實現(xiàn)按鍵中斷,所以的鍵通過與的關系產生一個信號,這個信號連到CPU的中斷輸入管腳,當有鍵按下時,這個信號發(fā)生調變觸發(fā)CPU的中斷。同時它還可以很容易實現(xiàn)硬件消抖。因為這部分比較簡單,故不再舉例說明。

仿真波形

  如圖所示為以上VHDL程序在MAXPLUSII中編譯仿真的結果,仿真僅僅給出了每個功能模塊的部分波形,圖中顯示了當訪問程序空間時,pro_data為低電平,ready保持兩個時鐘周期的低電平使得CPU總線插入兩個周期的等待。圖中還顯示了當訪問IO空間的0x2002地址時的波形,對這個地址進行讀操作是從LCD的控制寄存器讀入數(shù)據(jù),這時ready保持5個時鐘周期的低電平來讓CPU插入5個周期的等待,在這個期間lcd_wr保持高電平表示對LCD進行讀操作,lcd_rs保持低電平表示選擇LCD的控制寄存器。

結論

  芯片的設計、生產和制造技術的發(fā)展使得CPLD的在各種設計中有越來越多的應用,而隨著DSP芯片性能價格比和開發(fā)手段的不斷提高,DSP已在通信與信息系統(tǒng)、信號與信息處理、自動控制、雷達、軍事、航空航天、醫(yī)療、家用電器等許多領域也得到廣泛的應用。DSP的高速度和期復雜的接口時序使得在設計DSP系統(tǒng)時往往會難于設計DSP和外圍電路的接口,本文以存儲器,LCD等為例簡單介紹了MAX7000系列在DSP系統(tǒng)中的應用,并輔有VHDL實現(xiàn)的例子,通過在這方面的實踐應用,總體感覺用CPLD來處理DSP的外圍接口電路很方便,因為它的IO管腳幾乎可以隨意分配,可給PCB布線帶來很大的方便;尤其在調試的時候,甚至不用斷電就可以重新向CPLD中寫入新的邏輯關系就可以調試。

文章版權歸西部工控xbgk所有,未經(jīng)許可不得轉載。

主站蜘蛛池模板: 在线观看福利电影 | 亚洲精品国产精品国自产观看浪潮 | 欧美成人看片黄a免费看 | 一区二区中文字幕 | 国产亚洲精品久久久优势 | 日韩精品中文字幕在线 | 亚洲欧美网站 | 国产精品xxx在线观看www | 日本黄色精品 | 深夜影院深a | 五月婷婷视频在线观看 | 亚洲一区二区三区在线播放 | 欧美综合国产 | 久久免费影院 | 最新的中文字幕 | a级毛片大全 | 亚洲国产精品人人爽夜夜爽 | 久久久久国产精品免费免费搜索 | 亚洲福利一区二区三区 | 91久久久久久久久久久 | 一区二区三区不卡视频在线观看 | 91麻豆精品国产91久久久使用方法 | 亚洲视频高清 | 国产精品久久一区 | 小草av | 国产亚洲高清视频 | 亚洲欧美综合色 | 精品一区二区三区国产 | 国产九九精品 | 亚洲国产精品一区二区尤物区 | 久久免费视频在线观看 | 日本一二区视频 | 免费在线观看黄色av | 尤物国产| 久久成人精品视频 | 国产精品久久久久久久婷婷 | 精品久久久国产 | 精品一区二区久久久久久久网站 | 欧美色综合一区二区三区 | 欧美高清dvd| 亚洲欧美中文日韩在线v日本 |