基于FPGA的單片機外圍接口電路設計
2 系統模塊實(shí)現
2.1 通用邏輯模塊
FPGA可以設計成各種組合邏輯和時(shí)序邏輯電路,完成鎖存、三態(tài)輸出、多路選擇、編譯碼、計數、寄存等功能。在實(shí)際應用中可以根據需要選擇相應的功能模塊組成符合設計要求的邏輯功能。
本系統中設計的為擴展存儲器時(shí)用的地址鎖存器(功能與帶三態(tài)緩沖輸出的8D鎖存器
74LS373相似),其 VHDL描述為: process(oe,enable,d) begin if e='1' then
q=ZZZZZZZZ;
else if enable='1' then q=d; end if;
end if;
end procESS; 其中oe為三態(tài)門(mén)的使能信號,當 oe為低電平時(shí)三態(tài)門(mén)處于導通狀態(tài),允許q輸出到外部,當 oe為高電平時(shí)三態(tài)門(mén)處于斷開(kāi)狀態(tài),輸出處于浮空狀態(tài); enable為鎖存控制信號,當做鎖存器用時(shí),應使oe為低電平,這時(shí),當 enable為高電平時(shí),鎖存器輸出狀態(tài)與輸入狀態(tài)相同,當enable從高電平返回到低電平(即下降沿)時(shí),輸出不變,即輸入端的數據鎖入鎖存器中。
2.2 鍵盤(pán)接口模塊鍵盤(pán)是單片機應用系統中一個(gè)很重要的部件,它能實(shí)現向系統輸入數據、傳送命令等功 能,是人工干預系統工作的重要手段。本文所設計的鍵盤(pán)接口電路框圖如圖2所示,由分頻電路、鍵盤(pán)掃描計數器電路、鍵盤(pán)按鍵檢測電路、按鍵抖動(dòng)消除電路和鍵盤(pán)編碼電路等組成。
其中clock為時(shí)鐘脈沖, col為鍵盤(pán)的列輸入,row為鍵盤(pán)的行輸出,scan_f為掃描頻率, key_valid為按鍵確定信號,butt_code為按鍵值。首先,將外部時(shí)鐘信號分頻為適合鍵盤(pán)的掃描頻率;計數器的計數值輸出到按鍵檢測電路,檢測使用者是否按下鍵盤(pán),同時(shí)輸出到鍵盤(pán)編碼電路對鍵盤(pán)數值編碼;當使用者按下鍵盤(pán)時(shí),按鍵檢測電路的 key_pressed將為0,并輸出到計數器使計數停止,同時(shí)抖動(dòng)消除電路在確認使用者正確按鍵后,輸出按鍵確定信號。
2.3 顯示接口模塊
顯示功能是單片機應用系統中實(shí)現人機對話(huà)的基本功能之一,用戶(hù)通過(guò)靈活的顯示方式方便的了解系統的工作情況。在簡(jiǎn)單的應用系統中常用LED數碼管或LCD顯示器顯示數據或工作狀態(tài)。本文設計的為一個(gè)4位七段動(dòng)態(tài) LED數碼管顯示接口電路,電路框圖如圖3所示,它由BCD多路選擇器、BCD對應七段顯示器編碼電路、計數譯碼電路和七段顯示器掃描電路等組成。其中clk為同步時(shí)鐘脈沖信號, flk_ena為掃描時(shí)鐘脈沖信號, bcd_data為輸入的BCD碼,ledseg為七段顯示器數值輸出, ledcom為七段顯示器輸出使能。
2.4 串并行接口模塊
雖然大多數單片機都帶有通用的串行接口,但自行設計的接口意味著(zhù)更大的使用靈活性,特別是FPGA的高速特性允許更高的數據傳輸速度,在實(shí)用中有重要意義。作為范例, 本文設計了基于RS232-C標準的異步串行通信接口,它主要由數據總線(xiàn)接口、控制邏輯、波特率發(fā)生器、發(fā)送和接收等部分組成,其功能主要包括微處理器接口,用于數據傳輸的緩沖器(Buffer)、幀產(chǎn)生、奇偶校驗、并轉串,用于數據接收的緩沖器、幀產(chǎn)生、奇偶校驗、串轉并等。
評論