CPLD在無(wú)功補償控制儀鍵盤(pán)中的設計應用
1 引言
無(wú)功補償裝置是用于補償電網(wǎng)無(wú)功功率的不足,提高功率因數,保證供電系統安全運行和節約電能的設備,其核心是控制儀。本控制儀集無(wú)功補償、電度量計量、電能質(zhì)量監測及通信于一體,對電網(wǎng)參數進(jìn)行實(shí)時(shí)采樣與計算并把各項參數顯示在LCD上,還可通過(guò)鍵盤(pán)進(jìn)行系統參數設置,用于改變控制儀的運行模式等。
控制儀的最小系統由單片機80C196KC和可編程單片機外圍接口芯片PSD834F2組成,這樣既省去了地址鎖存器和譯碼器等一些小規模芯片,使硬件電路得到了簡(jiǎn)化,又提高了系統的可靠性。系統運行所需要的程序、數據和參數均放在PSD834F2中。用復雜可編程邏輯器件(CPLD)取代一些數字器件擴展系統的外圍電路,進(jìn)一步提高了系統的性能,還便于調試和維護。本文以下將具體介紹如何用CPLD來(lái)擴展鍵盤(pán)和顯示電路。
2 鍵盤(pán)輸入模塊的硬件設計
鍵盤(pán)輸入主要用于現場(chǎng)電流變比,電容器組數,單組電容器容量,電壓上、下限,諧波上限,控制儀地址編號等系統參數設置。而且與顯示模塊配合用于查看各相電壓、電流,無(wú)功功率,有功功率,功率因數等的情況。
設計鍵盤(pán)時(shí),如果采用軟件掃描的方式,雖然硬件電路簡(jiǎn)單,但掃描會(huì )耗去CPU不少時(shí)間,降低系統的整體性能;如果采用接口芯片8279來(lái)管理鍵盤(pán),雖可代替CPU完成對鍵盤(pán)的控制,減輕CPU的負擔,但8279體積大且功能單一。所以,本系統采用復雜可編程邏輯器件(CPLD)來(lái)設計鍵盤(pán)的接口電路,完成對鍵盤(pán)的掃描工作,當有鍵按下時(shí),則產(chǎn)生中斷信號供CPU讀取掃描碼。除此之外,CPLD還可實(shí)現其它模塊的接口電路以及完成地址譯碼等功能。
本系統采用4X4鍵盤(pán),其硬件電路如圖1:
圖1 4X4 鍵盤(pán)框圖
CPLD采用Lattice公司的ispLSI1016E-100L器件,該器件包括32個(gè)I/O引腳,4個(gè)專(zhuān)用引腳,集成密度為2000個(gè)PLD等效門(mén),引腳至引腳的延遲為7.5ns,工作頻率為100MHz。該器件由集總布線(xiàn)區(GRP)和萬(wàn)能邏輯塊(GLB)構成,GLB通過(guò)GRP連接起來(lái)。
對復雜可編程邏輯器件(CPLD)內部邏輯功能的描述方式有多種,本系統采用了原理圖輸入與VHDL語(yǔ)言描述相結合的方式,這樣可以發(fā)揮兩者的優(yōu)勢,加快開(kāi)發(fā)進(jìn)程。設計時(shí)采用層次化設計,描述系統總體功能的最上層使用原理圖輸入,而原理圖中的某些功能模塊采用VHDL編寫(xiě)。實(shí)際原理圖如圖2:
圖2 鍵盤(pán)邏輯實(shí)際原理圖
上圖中Module 1模塊實(shí)現分頻功能,CLK來(lái)自單片機80C196KC的CLKOUT腳,其周期為3個(gè)時(shí)鐘振蕩周期,占空比為33%。若單片機用16M晶振,其頻率約為:16M/3=5.33M。Module 1 把頻率降至約1K,Module 2模塊以一秒的間隔使O3~O0依次循環(huán)輸出低電平進(jìn)行鍵盤(pán)掃描 。當有鍵按下時(shí),I3~I0中有一個(gè)為低電平,異或門(mén)輸出1個(gè)高電平脈沖,鎖存鍵盤(pán)狀態(tài)并向單片機申請中斷。系統為鍵盤(pán)分配的地址空間為0xf100~0xf1ff,在此范圍內可讀取鍵盤(pán)的掃描碼。
由于篇幅有限,以下只給出Module 2的VHDL語(yǔ)句,具體如下:
LIBRARY ieee;
USE ieee.STd_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY Module2 IS
PORT ――定義端口
( clk :IN std_logic;
q :OUT std_logic_vector(3 DOWNTO 0)
);
END Module2;
ARCHITECTURE Module2 of Module2 IS
BEGIN
PROCESS(clk)
VARIBLE sum:integer:=0; ――定義變量sum,初值為0
BEGIN
IF(clk’event AND clk=’1’)THEN
sum:=sum+1; ――clk為上升沿時(shí),sum加1
IF(sum>=5)THEN
sum:=1;
END IF;
END IF;
CASE sum IS ――根據sum輸出相應的值
WHEN 1 => q=“1110”;
WHEN 2 => q=“1101”;
WHEN 3 => q=“1011”;
WHEN 4 => q=“0111”;
WHEN THERS => q=“1111”;
END CASE;
END PROCESS;
END Module2;
3 鍵盤(pán)掃描碼與相應鍵的對應關(guān)系
中斷服務(wù)程序讀取寄存器FD18中的掃描碼,經(jīng)過(guò)判斷就可知道按下的是哪一個(gè)鍵,然后轉入相應的程序進(jìn)行處理。鍵號和掃描碼的具體對應關(guān)系如表1:
表1 鍵號和掃描碼對應表
4 鍵盤(pán)輸入模塊的軟件設計
系統的一些基本參數可以通過(guò)鍵盤(pán)來(lái)設置或改變,每按下一鍵,CPLD掃描到鍵值后向CPU申請中斷。CPU進(jìn)入鍵盤(pán)管理中斷程序后,讀取、存儲鍵值并置接收到鍵值標志。主程序識別到標志,對接收到的鍵值進(jìn)行處理。
參數設置格式是:A**B**…*B。也就是說(shuō),按‘A’鍵進(jìn)入設置狀態(tài),‘**’的組合表示設置項目,‘B’確認設置項目,‘**…*’所設置項目的數值,最后的‘B’是結束符,表示此次設置結束。設置步驟的軟件處理流程如圖3:
圖3 系統參數設置處理流程圖
5 結束語(yǔ)
用復雜可編程邏輯器件(CPLD)擴展的鍵盤(pán)接口經(jīng)過(guò)實(shí)用,效果較好,既提高了單片機的響應速度,又簡(jiǎn)化了硬件電路。此外,CPLD還可用于其它的接口設計,使其性能得到進(jìn)一步體現。
評論