摘 要:TSK51是ALTIUM公司一款基于ASM51指令集并且兼容8051的8位微處理器內(nèi)核,TSK51提供了硬件中斷、串行通訊及定時(shí)器等輔助端口,并且開發(fā)了SFR特殊功能寄存器的用戶自定義功能。本文以Altera公司的CycloneII FPGA芯片為例,介紹了TSK51在其上的實(shí)現(xiàn)和應(yīng)用方法。
關(guān)鍵詞:TSK51 單片機(jī) FGPA IP核
中圖法分類號(hào):TP31 \t\t文獻(xiàn)標(biāo)識(shí)碼:A\t\t\t文章編號(hào):1672-3971(2011)10(a)-0049-01
MCS51是應(yīng)用最廣,了解的用戶最多,使用最流行的8位單片機(jī)系列。FPGA在復(fù)雜邏輯電路以及數(shù)字信號(hào)處理領(lǐng)域中扮演著越來越重要的角色,SOPC(片上系統(tǒng))以其低功耗,高性能,低成本,高可靠性等優(yōu)點(diǎn)成為嵌入式系統(tǒng)的發(fā)展趨勢,隨著大容量FPGA器件的使用,使得在一片F(xiàn)PGA芯片上可以定制MCU處理器和其它邏輯功能模塊,從而縮短了開發(fā)周期,同時(shí)也提高了系統(tǒng)穩(wěn)定性。TSK51是ALTIUM公司Altium Designer6.9開發(fā)環(huán)境內(nèi)部的一款8位處理器軟核,本文介紹如何將其應(yīng)用在Altera公司的CycloneII FPGA芯片上。
1 TSK51核功能特性
TASK51內(nèi)部采用了哈佛結(jié)構(gòu)是一款高速、單片的微處理器內(nèi)核,完全兼容了ASM51的指令集,并得到了KEIL C編譯器的支持,其特性如下。
控制單元包含一個(gè)8位指令譯碼器;內(nèi)部ALU單元支持8位算術(shù)譯碼器、支持8位邏輯運(yùn)算、支持布爾類型運(yùn)算、支持8位乘法運(yùn)算、支持8位除法運(yùn)算;提供了兩個(gè)16位定時(shí)器/計(jì)數(shù)器;具有32位通用I/O輸入/輸出端口(P0、P1、P2、P3);提供一個(gè)全雙工串行接口;支持兩個(gè)外部中斷(INT0、INT1);具有五級內(nèi)部中斷源(ES、ET1、EX1、ET0、EX0);支持內(nèi)部256字節(jié)數(shù)據(jù)存儲(chǔ)空間;最大支持64KB外部程序?qū)ぶ房臻g;最大支持64KB外部數(shù)據(jù)尋址空間;最大支持107個(gè)用戶自定義特殊功能寄存器。
2 TSK51硬件模塊
表1列出了TSK51硬件模塊主要引腳功能,在TSK51微處理器內(nèi)核中所有端口定義均為單向輸入/輸出口,便于用戶在復(fù)雜系統(tǒng)中的設(shè)計(jì)。
3 制作TSK51的RTL封裝[2]
為了方便在QuartusII中使用TSK51核,可以在Altium Designer6.9中將TSK51核綜合成RTL封裝文件.vqm。
(1)打開Altium Designer6.9,建立一個(gè)新的FPGA工程,在工程中加入原理圖文件(Schematic),并保存工程文件和原理圖文件。
(2)打開原理圖文件,選擇FPGA Proc essors.IntLib元件庫,將TSK51A加入到原理圖文件中,再選擇FPGA Peripherals.IntLib元件庫,將FPGA_STARTUP8加入到原理圖文件中[3]。
(3)在工程中加入一個(gè)新的約束文件,執(zhí)行菜單“工程\\配置管理”添加一個(gè)新的配置;執(zhí)行菜單“設(shè)計(jì)\\添加或修改約束\\器件”,在“賣主”中選擇“Altera”,在“FPGA系列”中選擇“Cyclone2”,選擇一個(gè)具體型號(hào)后確定。
(4)執(zhí)行“察看\\器件閱覽”后點(diǎn)“Syn thesize”進(jìn)行綜合;綜合后會(huì)在工程文件夾下面找到TSK51核的RTL封裝文件.vqm。
4 TSK51核應(yīng)用[4]
將TSK51核應(yīng)用在Altera公司的CycloneII FPGA芯片上,因此開發(fā)環(huán)境我們使用Altera公司的QuartusII。
(1)打開QuartusII,并建立一個(gè)新工程,將文件FPGA_STARTUP8.VQM、TSK51A.VQM、RAM256x8_TSK51.VHD拷貝到工程目錄下,加入到當(dāng)前工程中,并將VQM文件轉(zhuǎn)換成bsf圖形文件。
(2)新建一個(gè)設(shè)計(jì)頂層圖形文件,將TSK51A模塊和FPGA_START8模塊加入到頂層文件中,添加輸入、輸出引腳。添加LPM_ROM模塊,設(shè)置LPM_ROM大小為2048words,用Keil C編譯器產(chǎn)生的應(yīng)用程序Hex文件初始化LPM_ROM,頂層原理圖如圖1所示。其中FPGA_START8模塊用來產(chǎn)生上電時(shí)序信號(hào),用于給TSK51A進(jìn)行上電復(fù)位[5]。
(3)將輸入、輸出端口與外部的I/O引腳進(jìn)行鎖定,并設(shè)置相關(guān)編譯的參數(shù),最后進(jìn)行綜合生成FPGA的配置文件sof。
(4)利用QuartusII的Programmer將sof下載到FPGA或者EPCS中進(jìn)行應(yīng)用程序的測試。
5 結(jié)語
單片機(jī)系統(tǒng)具有功能靈活,控制簡單,對于處理人機(jī)接口有一定的領(lǐng)先地位,F(xiàn)PGA在處理高速的復(fù)雜邏輯方面具有一定的優(yōu)勢,本文詳細(xì)的介紹了如何將ALTIUM公司的TSK51軟核應(yīng)用在Altera公司的FPGA芯片上。通過在FPGA上實(shí)現(xiàn)單片機(jī)核可以結(jié)合二者的優(yōu)勢,解決了單片機(jī)受內(nèi)部資源的限制,同時(shí)也提高了FPGA控制的靈活性,具有一定的實(shí)用價(jià)值。
參考文獻(xiàn)
[1]\t潘松,黃繼業(yè),曾疏.SOPC技術(shù)實(shí)用教程[M].北京:清華大學(xué)出版社,2005.
[2]\t張義和,張顯盛.Altium Designer完全電路設(shè)計(jì)FPGA篇[M].中國電力出版社,2008.
[3]\t閆勝利,袁芳革.Altium Designer6.0中文版FPGA設(shè)計(jì)教程[M].電子工業(yè)出版社,2006.