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