其組成部分及各部分的功能如下:
(1)運(yùn)算部件模塊。主控制器模塊控制數(shù)據(jù)從寄存器和輸入端口到ALU,在運(yùn)算部件中實(shí)現(xiàn)數(shù)據(jù)的算術(shù)/邏輯運(yùn)算。
(2)定時(shí)/計(jì)數(shù)器模塊。包含2個(gè)定時(shí)/計(jì)數(shù)器,有4種工作模式,與工業(yè)標(biāo)準(zhǔn)的8051兼容,但定時(shí)時(shí)鐘頻率在內(nèi)部為clk/16(標(biāo)準(zhǔn)8051是clk/12) 。
(3)中斷控制器模塊。提供了4個(gè)中斷源:2個(gè)外部中斷請(qǐng)求INT0和INT1 ,2個(gè)定時(shí)/計(jì)數(shù)器T0和T1的溢出中斷請(qǐng)求。
(4)DRAM 數(shù)據(jù)存儲(chǔ)器單元(Data RAM) 。即128 B通用寄存器的RAM 實(shí)現(xiàn),該單元在8051 IP核中用寄存器組來描述實(shí)現(xiàn)。
(5)PROM 程序存儲(chǔ)器單元( Program ROM) 。片內(nèi)程序存儲(chǔ)器容量為4 KB 可擴(kuò)充至64 KB ,視需要和所選FPGA 芯片而定。
(6)主控制器模塊。它是整個(gè)8051 核的控制核心,其中還包括程序計(jì)數(shù)器PC、堆棧、指令譯碼器及微指令寄存器等。
1.2 8051 IP CORE設(shè)計(jì)流程
IP核使用VHDL硬件描述語言編寫,將整個(gè)系統(tǒng)按模塊進(jìn)行劃分,可以進(jìn)行獨(dú)立的仿真綜合驗(yàn)證,其設(shè)計(jì)流程圖如圖2所示:
圖2:8051 IP核的開發(fā)流程圖
(1)首先,根據(jù)系統(tǒng)需要定制IP核基本模塊,使用Synplify Pro綜合器對(duì)此IP核進(jìn)行綜合,FPGA芯片選擇Altera公司Cyclone系列的EP1C6Q240C8,編譯綜合成功生成可調(diào)用的MC8051_top.Vqm文件,用于在Quartus II環(huán)境中生成原理圖文件進(jìn)行調(diào)用。
(2)在Quartus II開發(fā)環(huán)境下,建立此IP核的應(yīng)用工程,工程名為MC8051_MOTO,在此工程中利用定制我們需要的符合我們所用FPGA芯片的ROM,RAM和擴(kuò)展RAM,大小分別為4K,128B,和2K。利用QuartusII提供的MegaWizard Plug-In Manager工具定制ROM等存儲(chǔ)模塊,ROM中的內(nèi)部結(jié)構(gòu)是由我們編寫的軟件程序來決定的,將Keil C51編譯軟件程序,并生成ROM中的內(nèi)部程序,這種程序是ASCII碼或者十六進(jìn)制形式的文件(.Hex或者.mif)寫入的。在工程中建立頂層文件,將生成的8051IP核模塊調(diào)用,經(jīng)Quartus II 綜合編譯后,觀看時(shí)序分析報(bào)告,其最高運(yùn)行頻率為18.05MHz(每次編譯都可能不同,I/O 分配不同結(jié)果可能不同),因此系統(tǒng)時(shí)鐘不能超過時(shí)序報(bào)告的時(shí)鐘最高頻率(即fmax)。在24M的時(shí)鐘頻率下,定制鎖相環(huán),使輸出頻率為18M。
1.3 8051 IP核與傳統(tǒng)8051芯片的性能比較
(1)時(shí)鐘信號(hào)輸入方式不同,傳統(tǒng)8051芯片需外界晶體震蕩器,這里直接利用單路的時(shí)鐘信號(hào)即可。
(2)傳統(tǒng)芯片中ALE,EA,PSEN等口線在IP核設(shè)計(jì)中裁減掉了,因?yàn)?SPAN lang=EN-US>IP核中的I/O口都沒有復(fù)用,完全使用獨(dú)立的輸入輸出方式。總共有64根I/O線,其中P0口可以通過開漏三極管輸出變成雙向口,P1,P2,P3可以通過上拉電阻實(shí)現(xiàn)準(zhǔn)雙向口,但不具備傳統(tǒng)的特殊功能引腳。
(3)傳統(tǒng)8051芯片的定時(shí)時(shí)鐘頻率為CLK/12,而8051IP核的定時(shí)時(shí)鐘頻率為CLK/16,且定時(shí)器可擴(kuò)展,最多可以擴(kuò)展到128個(gè)。
(4)8051 IP核設(shè)計(jì)了獨(dú)立的串口讀寫控制傳輸引腳,可以通過此獨(dú)立串口與外界通信。
(5)8051 IP核ROM和RAM的設(shè)計(jì),利用Maxplus II或QuartusII提供的MegaWizard plugin Manager工具,該工具所提供的RAM和ROM例化設(shè)計(jì)文件,實(shí)現(xiàn)了128B內(nèi)部RAM和4KB內(nèi)部ROM模塊,其中ROM模塊是一個(gè)空結(jié)構(gòu)實(shí)體,在有內(nèi)部程序時(shí)換成相應(yīng)的結(jié)構(gòu),內(nèi)部程序必須以ASCII碼形式或十六進(jìn)制形式的文件(.mif文件)寫入。
(6)8051IP核的目標(biāo)代碼與工業(yè)標(biāo)準(zhǔn)的8051微處理器兼容,但其多數(shù)指令周期只有4個(gè)時(shí)鐘周期,比標(biāo)準(zhǔn)8051指令要快。
2.8051 IP核對(duì)步進(jìn)電機(jī)的細(xì)分控制
為了驗(yàn)證所定制的8051 IP核的功能,本文采用8051 IP核作為主控制模塊,設(shè)計(jì)了步進(jìn)電機(jī)細(xì)分控制系統(tǒng)。
2.1 步進(jìn)電機(jī)細(xì)分原理
步進(jìn)電機(jī)的驅(qū)動(dòng)是靠給步進(jìn)電機(jī)的各相勵(lì)磁繞組輪流通以電流,實(shí)現(xiàn)步進(jìn)電機(jī)內(nèi)部磁場合成方向的變化來使步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度,稱為步距角。步進(jìn)電機(jī)的細(xì)分即對(duì)步距角的細(xì)分。由于步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)是對(duì)應(yīng)各相勵(lì)磁繞組所通以的電流,所以可以通過控制給定電流的大小,來控制步進(jìn)電機(jī)每轉(zhuǎn)動(dòng)一次的角度。在每次輸入脈沖切換時(shí),不是將繞組電流全部通入或切除,而是只改變相應(yīng)繞組中額定的一部分,則電機(jī)轉(zhuǎn)子的每步運(yùn)動(dòng)也只有步距角的一部分。這里繞組電流不是1個(gè)方波,而是階梯波,額定電流是臺(tái)階式的投入或切除。電流被分成多少個(gè)臺(tái)階,轉(zhuǎn)子就以同樣的個(gè)數(shù)轉(zhuǎn)過1個(gè)步距角。本設(shè)計(jì)采用三相步進(jìn)電機(jī),圖3為細(xì)分后輸入各相的階梯波。
圖3:細(xì)分后階梯脈沖波形
如圖所示,在選定所需細(xì)分?jǐn)?shù)后,只要給在勵(lì)磁繞組通以對(duì)應(yīng)的階梯波,即可實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)步距角的細(xì)分。本設(shè)計(jì)采用廣泛使用的恒頻脈沖調(diào)寬細(xì)分驅(qū)動(dòng)技術(shù),通過寫入8051 IP核的軟件控制程序,實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的細(xì)分。
2.2系統(tǒng)設(shè)計(jì)
本細(xì)分控制系統(tǒng)的由四個(gè)主要模塊組成:定制的8051 IP核,LED顯示模塊,鍵盤控制模塊,步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)模塊。圖4為系統(tǒng)結(jié)構(gòu)原理圖。
圖4:系統(tǒng)結(jié)構(gòu)原理圖
系統(tǒng)設(shè)計(jì)如下:
(1)首先利用MegaWizard Plug-In Manager工具,將由程序生成的HEX文件初始化到定制的4K ROM單元中。
(2)利用鍵盤,向系統(tǒng)輸入細(xì)分?jǐn)?shù),轉(zhuǎn)動(dòng)速度等初始化信息。同時(shí),實(shí)時(shí)控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)速度、方向。速度和細(xì)分?jǐn)?shù),同時(shí)在8位LED數(shù)碼管上顯示。速度可調(diào)為:0,50,100,200。每按一次加速,速度進(jìn)階。細(xì)分?jǐn)?shù)可為:2分度,3分度,4分度……100分度。
(3)8051 IP核收到串口控制信號(hào),生成顯示信號(hào),發(fā)送給LED顯示模塊。8051 IP核輸出P0_o口作字形碼輸出,P2_o口外接74LS04作位選掃描。同時(shí),根據(jù)細(xì)分?jǐn)?shù),查找分度表,將對(duì)應(yīng)數(shù)字信號(hào)發(fā)送給D/A轉(zhuǎn)換器,D/A轉(zhuǎn)換器根據(jù)對(duì)應(yīng)數(shù)字信號(hào)輸出階梯電壓Vout, Vout與電壓比較器同相端相接 ,而步進(jìn)電機(jī)該相輸出電壓V,并與電壓比較器反相端相接,進(jìn)行電壓比較。當(dāng)V>Vout時(shí), 電壓比較器輸出低電平,D觸發(fā)器清零,開關(guān)管組成的功放級(jí)截止,I1因繞組能量泄放而下降,出現(xiàn)V<Vout時(shí),電壓比較器輸出高電平,CP脈沖的上升沿使D觸發(fā)器的Q=1,功放級(jí)導(dǎo)通,則繞組電流I1上升,結(jié)果是V>Vout,又 使電壓比較器輸出低電平,D觸發(fā)器清零,功放級(jí)截止,I1因繞組能量泄放而下降, 又出現(xiàn)V<Vout。此過程一直往復(fù)。由于恒頻脈沖頻率較高,使V 基本保持在Vout值,且I1波頂比較平穩(wěn)。這樣通過D/A轉(zhuǎn)換輸入不同的階梯電壓,產(chǎn)生不同的階梯電流,達(dá)到了步距角細(xì)分的目的。
3.結(jié)論
IP 核應(yīng)用領(lǐng)域的不斷擴(kuò)展,可編程芯片的規(guī)模化,從而使得將數(shù)字電子系統(tǒng)集成到一塊芯片上變成可能,同時(shí)IP 核的重用性,使得開發(fā)風(fēng)險(xiǎn)降低,周期變短。本文利用現(xiàn)有的8051 IP核技術(shù),對(duì)其進(jìn)行相應(yīng)的定制和裁減,實(shí)現(xiàn)了一個(gè)片上可編程系統(tǒng)的典型模型,而且可以利用IP 核的可修改,可編程等功能,實(shí)現(xiàn)具體要求的片上系統(tǒng),是片上系統(tǒng)開發(fā)的一個(gè)有效方案。
本文作者創(chuàng)新點(diǎn):本文利用IP重用技術(shù),用FPGA設(shè)計(jì)出8051 IP軟核,并將其應(yīng)用到自動(dòng)控制系統(tǒng)中,結(jié)合步進(jìn)電機(jī)的控制原理,實(shí)現(xiàn)了利用8051 IP核作為主控制器的步進(jìn)電機(jī)細(xì)分控制系統(tǒng)。在IP核重用技術(shù)方面提出了新的思路和解決方法。
參考文獻(xiàn)
[1] 潘 松, 黃繼業(yè), 曾 毓. SOPC技術(shù)實(shí)用教程[M].清華大學(xué)出版社.2005年3月
[2] 林伸茂. 8051單片機(jī)徹底研究[M].人民郵電出版社.2004年5月
[3] Oregano Systems. MC8051 IP Core User Guide [Z]. Oregano Systems.2002年6月
[4] 鄢永明, 劉軼民, 曾 云. 基于8051 軟核的SOPC系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].集成電路應(yīng)用.2005年10月
[5] 李琳琳, 黃 銳. 在8051 IP 核基礎(chǔ)上用FPGA 實(shí)現(xiàn)數(shù)據(jù)采集[J].單片機(jī)與嵌入式系統(tǒng).2005年12月
[6] 王 羲,董燕飛.步進(jìn)電機(jī)轉(zhuǎn)臺(tái)的控制[J].微計(jì)算機(jī)信息,2005,21-2:29-30