摘 要: 提出了一種基于FPGA的打印機走紙控制系統(tǒng)的設計方案,,充分利用FPGA高速處理數(shù)據(jù)的能力及自上而下設計方法的優(yōu)勢,,運用Quartus II軟件圖像設計與程序設計相結(jié)合的開發(fā)方法,利用反饋式控制系統(tǒng)的設計理念,,實現(xiàn)了打印機走紙系統(tǒng)的閉環(huán)控制,,提高了走紙速度和精度。敘述了控制系統(tǒng)的軟件設計和硬件設計,,并給出了詳細電路圖,。
關鍵詞: 走紙控制系統(tǒng);閉環(huán)控制,;打印機,;FPGA;Quartus II
隨著經(jīng)濟的持續(xù)高速發(fā)展和信息化工程的大力推廣,作為介質(zhì)輸出重要工具的票據(jù)打印機得到了廣泛應用,,同時隨著需求的增加,,對票據(jù)打印機的速度和精度的要求也越來越高[1]。目前市場上的票據(jù)打印機的走紙控制系統(tǒng),,主要以單片機為核心,,采用開環(huán)方式直接控制步進電機,由于自身硬件的限制,,其速度和精度都難以提高,。因此,本文提出一種基于FPGA的打印機走紙閉環(huán)控制系統(tǒng),。系統(tǒng)以FPGA為核心,,能大大提高票據(jù)打印機走紙的速度和精度,且采用普通直流電機代替步進電機,,結(jié)構(gòu)簡單,、性能可靠、成本較低,。
現(xiàn)場可編程門陣列FPGA(Field-Programmable Gate Array)是在PAL,、GAL等邏輯器件的基礎上發(fā)展起來的。由于它具有集成度高,、速度快,、開發(fā)周期短、費用低,、用戶可定義功能及可重復編程和擦寫等許多優(yōu)點,,其應用領域不斷擴大,。這些器件的靈活性和通用性使它們成為了研制和開發(fā)復雜數(shù)字系統(tǒng)的理想選擇[2-3],。
1 系統(tǒng)整體設計
本系統(tǒng)作為打印機控制系統(tǒng)的一部分,采用了ARM+FPGA的結(jié)構(gòu),,該結(jié)構(gòu)以高速FPGA處理器來完成電機的閉環(huán)控制,,以ARM處理器來實現(xiàn)FPGA的功能控制,使得運動控制精度更高,、速度更快,。同時在提高控制系統(tǒng)通用性、可移植性的指導思想下,,將系統(tǒng)核心部件的軟,、硬件設計成一個模塊,可以方便地移植到不同的設備上[4],。
2 FPGA內(nèi)部邏輯設計
本系統(tǒng)內(nèi)部分為五個模塊,,分別為接口模塊、寄存器模塊、反饋信號處理模塊,、顯示模塊和時鐘處理模塊,。其結(jié)構(gòu)如圖1所示。
2.1 接口模塊
接口模塊包括鎖存器,、譯碼器,、收發(fā)三態(tài)門和輸出選擇器。它的主要功能是與ARM進行通信,,接受ARM發(fā)出的指令和數(shù)據(jù),,并傳遞給寄存器模塊存儲,或是將寄存器中的數(shù)據(jù)傳遞給ARM進行處理,。
在接口模塊的四個器件中,,為了實現(xiàn)數(shù)據(jù)總線和地址總線的復用,收發(fā)三態(tài)門的作用至關重要,。它的作用為轉(zhuǎn)換總線的收發(fā)狀態(tài),,即在接收數(shù)據(jù)時,寄存器的數(shù)據(jù)輸入總線和數(shù)據(jù)/地址總線接通,,而輸出選擇器的數(shù)據(jù)輸出總線處于高阻狀態(tài),;在發(fā)送數(shù)據(jù)時,輸出選擇器的數(shù)據(jù)輸出總線與數(shù)據(jù)/地址總線接通,,而寄存器的數(shù)據(jù)輸入總線處于高阻狀態(tài),。這樣可避免總線上的數(shù)據(jù)沖突。
2.2 寄存器模塊
寄存器模塊由8個寄存器組成,,地址從0XFFF0到0XFFF7,。具體設定見表1。
控制寄存器的功能為存儲ARM發(fā)出的控制信息,。系統(tǒng)根據(jù)該存儲器的數(shù)值決定自己的工作狀態(tài),。其中D2~D0位為脈沖預分頻設置位,系統(tǒng)根據(jù)這三位的值決定對光電編碼器信號的分頻數(shù),。D3為控制啟動位,,該位置1時,系統(tǒng)發(fā)出控制信號,,否則不發(fā)出,。D4~D7位功能未定。
脈沖匹配預設值寄存器的功能為存儲脈沖匹配預設值,,設置范圍為0~255,,根據(jù)實際需要可擴展寄存器的位數(shù)。系統(tǒng)將光電編碼器的反饋值計數(shù)后與預設值比較,,從而判斷運動是否到位,。
速率寄存器的功能為存儲電機的轉(zhuǎn)動速率,,可提供給ARM讀取或直接顯示。
2.3 反饋信號處理模塊
反饋信號處理模塊及時鐘模塊的頂層原理圖如圖2所示,。反饋信號處理模塊包括倍頻模塊和信號處理模塊,。
倍頻模塊的功能是將光電編碼器輸出的反饋信號進行二、四倍頻,,或者不進行倍頻,,供后續(xù)模塊使用。同時,,因為FPGA運行過程不可避免會導致輸出信號相對原始信號有延遲,,所以對光電編碼器輸出的零位信號進行處理,使其與輸出信號相符,,起到零位信號的標定作用,。
信號處理模塊包括選擇器、比較器和速率計算器,。該模塊首先根據(jù)控制寄存器的數(shù)值,,選擇指定的輸入信號,然后分別由比較器和速率計算器處理,。比較器將信號計數(shù)后與脈沖匹配預設值寄存器中的數(shù)字比較,,若相等,則輸出一個脈沖,。速率計算器的功能為計算電機的轉(zhuǎn)動速率,,然后輸出給速率寄存器。
2.4 時鐘模塊
時鐘模塊包括時鐘分頻器和時鐘計數(shù)器,。由晶振提供的時鐘為48 MHz,,頻率過高。由于輸出脈沖脈寬是時鐘周期的兩倍,,所以輸出脈寬太小,,不利于后續(xù)處理,需由時鐘分頻器分頻后才能被倍頻和顯示模塊使用,。時鐘計數(shù)器的功能為定時輸出脈沖,,提供給速率計算器,。
2.5 顯示模塊
顯示模塊由十進制轉(zhuǎn)換器和掃描器組成,。速率計算器的二進制數(shù)值需由十進制轉(zhuǎn)換器轉(zhuǎn)換成十進制,,然后通過掃描器將數(shù)值的每一位在數(shù)碼管上顯示。其頂層示意圖如圖3所示,。
3 仿真及實驗結(jié)果
本系統(tǒng)是以Altera公司的Quartus II為平臺、采用Verilog HDL語言開發(fā)的,。Quartus II作為Altera公司的專用開發(fā)平臺,,包括設計輸入,、編譯、仿真,、器件編程等功能,。它使用方便,允許用戶用原理圖,、語言編程,、波形圖等多種輸入方法進行設計。
圖4是在設定為4倍頻,、預設值為9模式下的系統(tǒng)仿真波形圖,。其中add為數(shù)據(jù)/地址總線,en為鎖存信號,,we為寫信號,,oe為讀信號,ina和inb為相位差為90°的兩路方波信號(代替光電編碼器的輸出信號),,int0為脈沖匹配信號,。
系統(tǒng)先將控制指令FA寫入地址為F0的寄存器,然后將預設值9寫入地址為F1的寄存器,,在如此的設定下,,系統(tǒng)得到ina和inb倍頻后的脈沖信號outc,對outc計數(shù),,并與預設值比較,,獲得脈沖匹配信號int0。從圖中可看出,,每10個outc脈沖得到一個int0脈沖,,與預定的功能完全一致。最后,,系統(tǒng)讀取地址為F0的寄存器的值,,由outp輸出。由于軟件不能對三態(tài)門進行仿真,,所以未將讀取的數(shù)據(jù)從數(shù)據(jù)/地址總線輸出,。
將程序綜合、編譯,、下載后,,在實際系統(tǒng)中的實驗結(jié)果與仿真結(jié)果完全一致,系統(tǒng)能精確地輸出電機控制信號,。且因FPGA的快速數(shù)據(jù)處理能力,,能接受并處理頻率高達100 kHz的光電編碼器的輸出信號,所以大大提高了系統(tǒng)的速度,。另一方面,,由于輸出的控制信號通過其他電路的處理,,可直接用于精確控制直流電機的啟動停止,不需用步進電機提高系統(tǒng)的精度,,節(jié)約了成本,。
由于運動控制系統(tǒng)的控制邏輯較多,若采用分立元件進行設計,,由于系統(tǒng)過于復雜,,線路互聯(lián)延遲及布線等原因極易造成系統(tǒng)不穩(wěn)定,從而影響系統(tǒng)的控制精度,。而FPGA器件能提高系統(tǒng)的集成度,,可方便地解決以上問題。以FPGA設計的反饋式打印機走紙控制系統(tǒng)實現(xiàn)簡單,,便于調(diào)試,,運行可靠,且在控制速度,、精度,、成本上較目前市場上的產(chǎn)品有所提高。
參考文獻
[1] 《電子計算機及外部設備》期刊編輯部. 國內(nèi)外票據(jù)打印機現(xiàn)狀與國內(nèi)市場趨勢[J]. 電子計算機及外部設備,,1999,,23(2):75-76.
[2] 褚振勇,齊亮,,田心紅,,等.FPGA設計及應用[M].西安:西安電子科技大學出版社,2006.
[3] Altera. Configuration handbook [EB/ OL ] . http: //www. altera. com,, 2004-11-05.
[4] 冉龍明.基于ARM和FPGA的數(shù)控系統(tǒng)研究及實現(xiàn)[D].成都:電子科技大學,,2008.