曾小寶張家界航空工業(yè)職業(yè)技術(shù)學院
?
基于FPGA的簡易計算器的設(shè)計
曾小寶
張家界航空工業(yè)職業(yè)技術(shù)學院
本文介紹了一款基于FPGA的8051單片機IP核的簡易計算器的設(shè)計。系統(tǒng)硬件采用EP3C5E144芯片設(shè)計開發(fā),軟件采用康芯公司提供的8051單片機IP核設(shè)計開發(fā),該設(shè)計使用Quartus9.0開發(fā)環(huán)境來設(shè)計FPGA片上系統(tǒng),采用C語言設(shè)計8051單片機程序,并使用Keil開發(fā)環(huán)境來編程開發(fā)。系統(tǒng)外圍硬件設(shè)備主要包括液晶顯示模塊,鍵盤輸入模塊,蜂鳴器模塊,LED燈模塊;其中信息顯示使用LCD1602液晶顯示模塊,信息輸入使用矩陣鍵盤模塊,LED燈用于監(jiān)視程序運行狀態(tài),蜂鳴器設(shè)計用于產(chǎn)生按鍵輔助提示音。本文設(shè)計的簡易計算器實現(xiàn)了有符號整數(shù)的加、減、乘、除表達式運算顯示功能和日歷時間顯示功能,實驗測試表明,系統(tǒng)能夠穩(wěn)定、可靠地運行。
FPGA 8051單片機 IP核 計算器
隨著現(xiàn)代EDA(Electronic Designed Automation)技術(shù)的發(fā)展和大規(guī)模FPGA(Field-Programmable Gate Ar ray)器件的出現(xiàn),嵌入式軟核處理器在嵌入式系統(tǒng)設(shè)計開發(fā)中的應用越來越廣泛,與傳統(tǒng)的基于微控制器芯片的開發(fā)方式相比,IP核(Intel lectual Property Core)受硬件條件限制小,具有更大的靈活性,可縮短系統(tǒng)的設(shè)計開發(fā)時間。采用FPGA與IP核相結(jié)合進行嵌入式系統(tǒng)開發(fā),為設(shè)計人員提供了一種新的快捷高效的設(shè)計方法。
本文設(shè)計的簡易計算器是在FPGA芯片內(nèi)嵌入8051單片機IP核作為主控制器,并利用FPGA的內(nèi)部資源來構(gòu)造出單片機系統(tǒng)必需的PLL模塊、RAM模塊和ROM模塊,另外,因為4X4矩陣按鍵掃描和LCD1602讀忙操作都需要具有輸入輸出雙向功能的I/O口,因此系統(tǒng)設(shè)計了相應的雙向I/O口電路,此外,為了實現(xiàn)4X4矩陣按鍵的中斷掃描工作方式,還專門設(shè)計了按鍵中斷信號產(chǎn)生電路。
本文設(shè)計的簡易計算器系統(tǒng)硬件主要由電源模塊、EEPROM模塊、4X4矩陣鍵盤模塊、LCD1602液晶顯示模塊、蜂鳴器和LED監(jiān)視燈等構(gòu)成,如下圖1所示為簡易計算器系統(tǒng)的硬件框圖。其中,EEPROM是采用EPCS4芯片設(shè)計,該芯片具有512KB的存儲容量,可用于存儲FPGA的程序代碼,系統(tǒng)上電后,F(xiàn)PGA可從EEPROM中讀取程序代碼運行。設(shè)計考慮到計算器需要較多輸入按鍵,系統(tǒng)采用4X4的矩陣鍵盤作為輸入設(shè)備,該設(shè)計只需要8位數(shù)據(jù)線就可提供16個有效按鍵,具有占用資源少、使用高效、設(shè)計緊湊等優(yōu)點。
在采用輪詢掃描工作方式情況下,無法確保按鍵的可靠響應,同時周期性地掃描操作極大地占用了CPU的資源,甚至影響其他程序的正常運行,因此,本文采用中斷掃描方式設(shè)計矩陣按鍵的程序,由此需要利用矩陣鍵盤的8位數(shù)據(jù)線來生成中斷信號,根據(jù)矩陣鍵盤掃描工作方式的原理,利用矩陣鍵盤的4位輸入線(P0口高四位為鍵盤的行數(shù)據(jù)線)通過一個四輸入與門可生成需要的按鍵中斷信號,當某個按鍵按下時,P0[4]到P0[7]四個輸入線電平之一變?yōu)?,則按鍵中斷信號P3I[2]也變?yōu)?,信號P3I[2]與8051單片機的外部中斷0管腳連接。在單片機初始化程序中,設(shè)置外部中斷0為低電平觸發(fā)方式,并啟動外部中斷0 ,當外部按鍵按下時,按鍵中斷信號就會變?yōu)榈碗娖蕉|發(fā)按鍵中服務程序,在按鍵中斷服務程序中,逐列送出掃描電平,并判斷按鍵行號,然后根據(jù)行列值計算按鍵編碼,由此,實現(xiàn)按鍵動作的識別和編碼。
系統(tǒng)的實驗測試使用了康芯公司設(shè)計的EP3C5E144開發(fā)板硬件平臺,F(xiàn)PGA開發(fā)設(shè)計軟件采用Quartus9.0版本,單片機C程序開發(fā)采用Kei l uVision4。在開發(fā)調(diào)試過程中,我們遇到了很多問題,比如,在LCD1602液晶顯示設(shè)計中,由于沒有對液晶進行讀忙操作,使得液晶初始化操作異常,導致液晶顯示異常的問題,通過加入讀忙操作,可確保液晶可靠初始化,從而解決液晶顯示異常問題。讀忙的操作要求單片機的I/O具備雙向功能,為此,系統(tǒng)需要給8051單片機IP核設(shè)計雙向I/O的接口電路.
本文利用8051單片機IP核設(shè)計的簡易計算器能夠進行加、減、乘、除表達式運算,輸入設(shè)備采用使用普遍、占用資源少的4X4矩陣鍵盤,輸出設(shè)備采用價格低廉、性能穩(wěn)定可靠的LCD1602液晶顯示器;另外,系統(tǒng)使用蜂鳴器產(chǎn)生提示音來輔助用戶的輸入操作,使得人機交互操作更加簡單便捷。LED監(jiān)視燈的設(shè)計則可以讓用戶實時了解系統(tǒng)運行狀況,確保系統(tǒng)運行穩(wěn)定可靠。通過本文簡易計算器實例的設(shè)計,驗證了在嵌入式系統(tǒng)中,使用IP核可以加快設(shè)計過程,縮短設(shè)計周期,提高設(shè)計效率。
[1] 蘇學穎. 基于8051單片機IP軟核的優(yōu)化設(shè)計及應用研究[D]. 西華大學 2007
[2] 王瑞,游志宇,杜楊,王軍. MC8051單片機IP核的FPGA實現(xiàn)與應用[J]. 電子設(shè)計工程. 2009(01)
[3] 徐慧,王金海,王巍. 基于FPGA的8051IP核的設(shè)計與實現(xiàn)[J]. 計算機技術(shù)與發(fā)展. 2009(03)