1.引言
LED點陣顯示屏具有醒目、動態效應好、省電節能、亮度較高、用途廣等優點,是現代 化城市的主要標志之一。利用VHDL硬件描述語言設計了以CPLD器件為核心的控制電路, 在LED點陣屏上實現了音頻信號的頻譜型電平動態顯示, 而且具有顯示模式多樣化、易編程 修改,顏色可變、動態效果好等優點。
2.系統組成
本設計所用的EPM570T100C5采用了Altera公司的MAXII (Multiple Array Matrix II) 系列器件作為目標CPLD,采用雙色8*8LED點陣作為終端顯示器件,配合一些必需的外圍器件 和電路,實現了對音頻信號的選頻、AD轉換、各頻段的電平顯示模式控制、最終實現了音頻 信號的頻譜型電平的動態顯示。本系統的基本組成如圖1所示:
2.1 音頻輸入與預處理模塊
由于本設計采用8個頻段電平顯示,因此,筆者對音頻信號進行了8個中心頻率分別為 100Hz、200Hz、500Hz、1000Hz、1500Hz、3000Hz、6000Hz、12000Hz的帶通電路的選頻處理, 經電壓保持電路后送至以ADC0809為核心的八通道8位輸出數模轉換電路,由于ADC0809具有 八個輸入通道,受CPLD輸出的列選信號控制,從而實現了LED的八根列選線(共陰極)分別 對應音頻信號的8個中心頻率,為頻譜型電平顯示實現了列選掃描控制。
由于列選信號的切換頻率設定為200Hz,即頻段切換周期為5ms,ADC0809 完全能夠勝 任音頻信號各頻段直流電平的A/D 轉換處理,因此,ADC0809 一直處于主動轉換狀態,無需 接受CPLD 芯片的轉換控制。
2.2 核心控制模塊
本設計的核心模塊采用Altera公司的CPLD器件,型號為EPM570T100C5,它基于突破性的 CPLD架構,提供業界所有CPLD系列中單個I/O管腳最低成本和最小功耗。這些器件采用新的 查表(LUT)體系,采用TSMC的0.18μm嵌入Flash工藝,使其裸片尺寸僅為同樣工藝器件的1/4, 而且包括非易失性Flash存儲模塊和JTAG控制電路。
本電路采用12MHz的有源晶振,為CPLD提供主時鐘。EPM570T100C5芯片主要集成了分頻、 列選掃描、按鍵去抖、數字電平信號的線性比較、顯示模式控制、顯示數據ROM等功能模塊。
分頻電路對12MHz時鐘信號進行分頻處理后得到200Hz的列選計數脈沖,送至74HC138譯 碼器的輸入端和ADC0809的通道地址選擇控制端,實現8*8LED點陣的列掃描動態控制和 ADC0809的通道選擇控制。
按照人眼的視覺習慣,線性比較電路主要負責將A/D轉換后的8位數據電平信號(共256 個組態)轉換為8個梯級的數據信號,經顯示模式控制電路處理后作為地址數送至顯示數據 ROM,從而直接調用ROM中寄存的顯示模式數據。
2.3 輸出與顯示模塊
本設計采用雙色(紅色和綠色)8*8LED 點陣作為終端顯示器件,在CPLD 的ROM 數據控 制下,8*8LED 點陣的每個像素點能產生紅色、綠色、$(紅綠混合色),能夠再現顏色 的多樣化。
由于一般的I/O 的驅動能力是有限的,CPLD 中的ROM 輸出的顯示數據需要經過驅動電 路后送至8*8LED 點陣的行選端(陽極),列選線(陰極)則受74HC138 輸出的低電平譯碼 信號的控制。
3.軟件設計
本設計采用Altera 公司的Quartus II 7.0 (32-Bit)集成開發系統,它具有簡潔、合 理的操作界面,多語言支持的環境及其高效代碼生成編譯內核使得所有的設計輸人、編譯、 綜合和仿真都可以在項目管理器中完成。另外,QuartusⅡ7.0 (32-Bit)支持幾乎所有的FPGA 和CPLD 芯片,與MATLAB 和DSP Builder 結合可以進行基于FPGA 的DSP 系統開發,是DSP 硬件系統實現的關鍵EDA 工具,與SOPC Builder 結合,可實現SOPC 系統開發,是一款較受 用戶歡迎的開發工具。
本文采用VHDL 語言作為硬件描述語言,采用自頂向下的層次化設計方法。為了突出各 模塊之間的連接關系,頂層模塊(Top.tdf)采用原理圖方式對各個功能模塊進行綜合和調 用,如圖2 所示。
可以看出,軟件設計的功能模塊與系統組成中的核心模塊非常接近。
3.1 分頻與列選 掃描控制模塊
分頻模塊的作用是將12MHz的有源晶振時鐘信號通過軟件設計的方法分頻得到200Hz的 列選掃描時鐘信號。 列選掃描控制模塊的作用是設計一軟件計數器,將200Hz內部信號轉換為列選掃描信號 (SEL[2 downto 0]),仿真波形如圖3所示。該信號送至74HC138以后能夠動態選中LED點陣的 某一列(共陰極),送至A/D0809以后能夠選擇相應中心頻率的音頻信號進行數模轉換。
3.2 按鍵去抖模塊
去抖的基本思路是設計一個移動寄存器,移位脈沖的周期約為5ms,當按鍵輸入的低電 平信號持續三個以上的脈沖周期時才輸出一個低電平脈沖,達到去抖的目的。部分程序如下:
--****設計一個3位移位D寄存器****--
process(CLK_200Hz)
begin
IF(CLK_200Hz'EVENT AND CLK_200Hz='1')THEN
Q<=Keyin&Q(2 downto 1);
END IF;
end process;
flag<=Q(2) or Q(1) or Q(0);
Keyout<='0'when flag='0' else--如果連續3個CLK后Q仍為低電平,則輸出低電平'1';
END a;
3.3 線性比較模塊
由于A/D轉換后的8位數據電平信號共有256個組態,而終端顯示模塊為8*8LED點陣, 8*8LED點陣的每列顯示梯級最多為8級,若加上全滅狀態,8*8LED點陣的顯示梯級狀態共有9 種,因此,需要將A/D轉換后的8位數據電平信號按照人眼的視覺習慣轉換為9個梯級的數據 信號,本設計采用函數(function)的方法實現了信號轉換功能,部分程序如下:
function DATA_YM (indata :std_logic_vector(7 downto 0))
return integer is
variable result :integer range 0 to 8;---比較函數輸出begin
if indata<16 then result :=0;
elsif indata>=16 and indata<48 then
result :=1;
elsif indata>=48 and indata<80 then
result :=2;
elsif indata>=80 and indata<112 then
result :=3;
elsif indata>=112 and indata<144 then
result :=4;
elsif indata>=144 and indata<176 then
result :=5;
elsif indata>=176 and indata<208 then
result :=6;
elsif indata>=208 and indata<240 then
result :=7;
else
result :=8;
end if;
return result;
end function;
3.4 顯示控制模塊
本模塊由顯示模式控制、顯示數據ROM模塊組成。顯示模式控制模塊采用一個Process 進程語句循環定義了12種顯示模式,具體顯示的模式由按鍵按下的次數決定,即按鍵次數作 為內部計數信號,每種計數狀態則對應一種ROM地址的起始值,從而實現了ROM地址能隨按鍵 次數而變化的確定關系。
顯示數據ROM模塊將所有的顯示模式數據以ROM表格數據的形式進行片內存儲,以便根據 A/D轉換后的數據信號直接調用該表格數據。本模塊的功能仿真如圖4所示:
結果表明,該模塊能夠根據不同的地址值輸出相應的顯示模式數據,經驅動電路后送至 LED點陣的16個陽極,能實現相應的顯示模式的自動切換或按鍵輸入切換。
4.實物調試
筆者利用北京R&C百科融創公司的EDA實驗箱,通過擴展導線與外部電路進行連接,將程 序下載到芯片EPM570T100C5進行實物模擬調試,得到如圖5所示的顯示模式位圖。
結果表明,本系統達到了設計要求,完成了音頻信號的頻譜型電平動態顯示,具有正常 顯示、倒影顯示、單點顯示、雙點顯示等四大類顯示模式,每一大類顯示模式又能實現單紅 色、單綠色、$(紅綠混合色)三種顏色的自動切換,動態視覺效果好等特點。
5.結論
本文基于VHDL硬件描述語言,利用CPLD器件EPM570T100C5和LED點陣屏實現了對音頻信 號的頻譜顯示,并在電子設計的各個階段、各個層次進行計算機模擬驗證,保證設計過程的 正確性,拓展了CPLD在顯示領域的應用。若將設計思路進一步深入和擴展,則能完成更大屏 幕、更多像素的LED頻譜顯示,能夠方便地應用于商店、商場、卡拉OK等公共場所的LED顯示 區域,從而強化視覺效果。
-
led
+關注
關注
242文章
23308瀏覽量
661596 -
cpld
+關注
關注
32文章
1248瀏覽量
169433 -
vhdl
+關注
關注
30文章
817瀏覽量
128174
發布評論請先 登錄
相關推薦
評論