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