彩燈作為一種景觀,安裝在建筑物的適當地方一是作為裝飾增添節日氣氛,二是有一種廣告宣傳的作用,也可用在舞臺上增強晚會燈光效果。實現彩燈控制的方案很多,不同的控制方案,其設計方法和思路也不一樣。本文介紹一種彩燈控制器的設計方法。該系統基于可編程邏輯器件CPLD(Complex Programmable Logic Device)芯片,利用VHDL硬件描述語言設計系統核心部件,再配以適當的外圍電路構成。輸出為32路數字信號,控制32路彩燈輸出,上電后,彩燈系統無需外加輸入信號,能自動循環演示十六種花型,彩燈明暗變換節拍為0.25秒和0.5秒,快慢兩種節拍自動交替運行。該系統較以前的傳統設計,選用硬件電路簡單、花型容量大,體積小,功耗低,可靠性高,特別是可以在使用一段時間后,不修改硬件電路的基礎上,僅通過更改軟件就可實現修改花型的編程控制方案。
1、 系統組成
該彩燈控制器系統組成框圖如圖1所示。系統工作原理:彩燈控制器是以高、低電平控制燈的亮滅,按節拍改變送給各路的高、低電平,即l、0編碼,就可控制彩燈按預定的規律亮滅,從而顯示花型。彩燈控制器包括下列幾部分。振蕩器:提供系統工作的主時鐘。節拍產生器:產生系統要求的快、慢節拍脈沖PH、PL,并根據系統運行情況,提供相應節拍,使彩燈明暗變換以快、慢兩種節拍自動交替運行。地址碼產生器:為編碼發生器提供合適的地址碼,以保證按節拍讀出規定的編碼,復現預定的花型,并根據系統運行情況,送節拍產生器反饋信號,控制節拍按快慢兩種自動交替運行。編碼發生器:根據花型要求按節拍輸出32位狀態編碼信號,以控制彩燈按規律亮滅。緩沖驅動器:為彩燈提供需要的工作電壓和電流,隔離負載對系統工作的影響。
2、系統各單元設計
2.1 振蕩器
振蕩器提供系統工作的主時鐘。因彩燈控制器對定時要求不高,故選用簡單易行的555定時振蕩器。系統彩燈明暗變換節拍為0.25秒和0.5秒,我們使振蕩器振蕩頻率為f = 4Hz,電路原理圖如圖2所示。圖中電阻R1=8K,Rw=4.7K, R2=47K,電容C1=3.3 uF,振蕩頻率輸出端OUT送“節拍產生器”的輸入端。
2.2節拍產生器
其作用產生系統要求的快、慢節拍脈沖,快節拍PH=0.25秒、慢節拍PL= 0.5秒。快節拍頻率直接由振蕩器的頻率傳入,慢節拍頻率將振蕩器輸出的頻率進行二分頻得到。節拍選擇信號Pc由地址碼產生器產生,若第一輪花型循環輸出為慢節拍,Pc為低電平,則第二輪花型循環,Pc為高電平,第三輪花型循環,Pc又為低電平,如此反復。節拍產生器輸出節拍脈沖PP由PL和PH合成,。輸出節拍頻率PP送地址碼產生器。
該模塊VHDL程序如下(略去聲明部分):
ENTITY jpxz IS --節拍產生器
PORT ( clk: IN STD_LOGIC; --傳入振蕩器頻率
Pc : IN STD_LOGIC; --節拍選擇信號
PP : out STD_LOGIC);--輸出節拍頻率
end;
ARCHITECTURE jiep OF jpxz IS
signal PPL: STD_LOGIC;
signal PH: STD_LOGIC;--快節拍信號
signal PL: STD_LOGIC;--慢節拍信號
begin
fenp: process(clk) -- 將clk時鐘二分頻,得到節拍為0.5秒的慢節拍
BEGIN
IF clk‘EVENT AND clk = ’1‘
THEN PPL 《= NOT PPL;
END IF;
END PROCESS;
PH 《= clk;-- 快節拍的頻率等于振蕩器輸出的頻率
PL 《= PPL; -- 慢節拍
pp 《= (not Pc and PL) or (Pc and PH);
-- PP為輸出節拍信號,Pc為高電平輸出快節拍,Pc為低電平輸出慢節拍
end;
2.3 地址碼產生器
其作用一是為編碼發生器提供合適的地址碼,二是為節拍產生器提供節拍控制信號。
該部分主要電路,一部分為地址計數器,利用進程p01: process(ppclk)根據節拍產生器提供的節拍頻率PP產生地址碼,完成地址累加,實現預定花型的循環顯示,同時利用jiep信號記錄系統運行情況,該32路彩燈控制器演示花型共16種,花型循環一周共243拍,地址計數器將地址碼累加到244,jiep值為‘1’,地址碼為其它值時,jiep值為‘0’;另一部分內容為利用進程P02:process( jiep )將jiep信號進行二分頻,使輸出花型在第一輪循環時, 節拍選擇信號Pc為低電平,則第二輪花型循環時,Pc為高電平,第三輪花型循環,Pc又為低電平,如此反復。該模塊VHDL程序如下(略去聲明部分):
ENTITY cai_lizi IS --地址碼產生器;
PORT ( ppclk: IN STD_LOGIC; --節拍脈沖信號,由節拍產生器傳入
dzout : out integer range 0 to 245;-- 地址碼輸出,16種花型運行一次共243拍
Pc: out STD_LOGIC);--節拍選擇信號,送節拍產生器
end;
ARCHITECTURE lizi OF cai_lizi IS
signal count: integer range 0 to 245;
signal jiep: STD_LOGIC;
begin
p01: process(ppclk) --產生地址碼
begin
if count=244 then count 《= 0; jiep 《= ’1‘; --16種花型運行一次共243拍
elsif rising_edge(ppclk) then count 《= count + 1; jiep 《= ’0‘;
end if;
end process;
P02:process( jiep ) --將jiep信號進行二分頻,產生節拍選擇信號Pc值
VARIABLE Count2 : STD_LOGIC;
BEGIN
IF jiep’EVENT AND jiep = ‘1’
THEN Count2 := NOT Count2;
END IF;
IF Count2 = ‘1’ THEN Pc 《= ‘1’;
ELSE PC 《= ‘0’;
END IF;
END PROCESS;
dzout 《= count;
end;
2.4 編碼發生器
地址碼產生器將輸出的地址碼送入編碼發生器,編碼發生器根據高、低電平控制燈的亮滅,即l、0編碼,依據花型要求按節拍輸出32位狀態編碼信號,以控制彩燈按規律亮滅。
該模塊VHDL程序如下(略去聲明部分):
ENTITY cai_bmq IS
PORT ( dzout: IN integer range 0 to 245;-- 由地址碼產生器傳入地址碼
qout : OUT STD_LOGIC_VECTOR(31 DOWNTO 0));-- 輸出32位狀態編碼
END;
ARCHITECTURE bianma OF cai_bmq IS
begin
process(dzout)
begin
case dzout is
when 0 =》 qout 《= “10000000000000000000000000000000”;
when 1 =》 qout 《= “11000000000000000000000000000000”;
when 2 =》 qout 《= “11100000000000000000000000000000”;
……
when 241 =》 qout 《= “10010010010010010010010010010010”;
when 242 =》 qout 《= “01001001001001001001001001001001”;
when 243 =》 qout 《= “00100100100100100100100100100100”;
when others =》 qout 《= “10010010010010010010010010010010”;
end case;
end process;
end;
2.5 在CPLD芯片中頂層文件的原理圖,如圖3所示。
圖中JPXZ模塊為節拍產生器,輸入端CLK接振蕩器的輸出時鐘,頻率為4Hz,Pc為節拍選擇信號,PP為輸出節拍。CAI_LIZI模塊為地址碼產生器,CAI_BMQ模塊為編碼發生器,輸出端QOUT[31..0] 輸出32位狀態編碼信號, 接緩沖驅動電路。
2.6 緩沖驅動電路
該模塊為彩燈提供需要的工作電壓和電流,隔離負載對系統工作的影響。首先根據每路彩燈的功率選擇繼電器或雙向可控硅,再根據繼電器或雙向可控硅所需驅動電壓和電流設計驅動電路。詳細設計此處不再介紹。
3、系統仿真測試與實物測試
在基于MAX+PLUSⅡ軟件平臺,對該系統程序各模塊進行仿真測試,圖4所示為彩燈控制器頂層文件仿真波形圖。
圖中CLK為振蕩器產生系統的主時鐘,周期為0.25秒,qout[31..0]為彩燈控制器輸出的32路數字控制信號(32位狀態編碼),圖中所示當系統以慢節拍(0.5秒,2個周期一拍)輸出最后一組編碼后,馬上以快節拍(0.25秒,1個周期一拍)開始下一輪花型循環,達到設計要求。
將該系統程序下載到MAX7000S系列的EPM7128SLC84-15目標芯片上,并配以外圍電路進行實物測試( 以LED燈代替彩燈),滿足到設計要求。
4、結束語
本文作者創新點:以VHDL 硬件描述語言進行設計,將彩燈控制器的核心部分集成在可編程邏輯器件CPLD芯片上,大大簡化了外部電路,較以前的傳統設計,既減少了所用芯片的種類和數量,縮小了體積,降低了功耗,提高了系統的整體性能,對系統在使用中的故障率大為減少。特別是,對花型設計方案的修改、增加花型數量都很方便,可以在不修改硬件電路的基礎上,僅通過更改軟件就可實現,具有廣闊的應用前景。
責任編輯:gt
評論