高德洋 侯立剛 張志遠
摘 要: 提出一種基于FPGA的噴墨打印機控制系統(tǒng),使用Altera公司的FPGA芯片EP1C6Q240C8作為控制核心,把噴墨打印機分為兩部分研究,控制噴墨打印機噴墨的打印頭與控制噴墨打印機走紙的步進電機,實現(xiàn)噴墨打印機打印頭的噴墨與步進電機的走紙運動的聯(lián)合控制。實驗結(jié)果表明,該系統(tǒng)不但能實現(xiàn)對噴墨打印機的高精度控制,并且具有操作簡單、可升級性強等特點。
關(guān)鍵詞: FPGA; 噴墨打印機; 打印頭; 步進電機
中圖分類號: TN709?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2015)18?0064?04
Abstract: A FPGA?based control system of inkjet printer is proposed, which takes FPGA chip EP1C6Q240C8 of Altera Corporation as the control core. The inkjet printer is divided into the printing head and the stepping motor to research. The former is used to control the inkjet of inkjet printer, and the latter is used to control the paper feeding of inkjet printer. The combined control of the two parts was realized. The experimental results show that the system can realize high precision control of the inkjet printer, and has the characteristics of easy operation and better upgradability.
Keywords: FPGA; inkjet printer; printing head; stepping motor
噴墨打印機摒棄了原始打印機的擊打的工作方式,采用更為先進的微壓控制技術(shù)與氣泡噴墨控制技術(shù),其無論在體積上、可操作性上、打印噪音的控制方面,較原始的打印機都有很大的突破,使用專用紙張時可以打印出與照片相媲美的圖片。所以,研發(fā)噴墨打印機的控制系統(tǒng),是制造自主知識產(chǎn)權(quán)的噴墨打印機的基礎(chǔ),也是制造以噴墨打印機作為輸出部件的設(shè)備的重要基礎(chǔ)。
現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)是在PAI,GAL等邏輯器件的基礎(chǔ)上發(fā)展起來的。由于它具有集成度高、速度快、開發(fā)周期短、費用低、用戶可定義功能及可重復(fù)編程和擦寫等許多優(yōu)點,其應(yīng)用領(lǐng)域不斷擴大。這些器件的靈活性和通用性使它們成為了研制和開發(fā)復(fù)雜數(shù)字系統(tǒng)的理想選擇[1]。
在國內(nèi),對于噴墨打印機的打印頭與電機聯(lián)合控制的研究相對較少,而且大多數(shù)的控制核心芯片采用單片機,其速度、精度、開發(fā)周期、可操作性、可升級性等遠不如FPGA,因此本文提出了一種基于FPGA的噴墨打印機控制系統(tǒng),并且同時實現(xiàn)噴墨打印機的噴墨與走紙運動。
1 系統(tǒng)整體設(shè)計
如圖1所示,本文將噴墨打印機的控制系統(tǒng)分為控制噴墨打印機噴墨的打印頭與控制噴墨打印機走紙的步進電機,在FPGA的控制下,實現(xiàn)對噴墨打印機的打印頭的噴墨與步進電機的機械運動的控制。噴墨打印機的工作共有3種模式:FPGA控制打印頭噴墨;FPGA控制步進電機運動;FPGA對打印頭和步進電機的聯(lián)合控制。
1.1 FPGA控制打印頭噴墨
1.1.1 打印頭
噴墨技術(shù)主要分為微電壓控制技術(shù)與氣泡噴墨打印技術(shù),本文采用的打印機頭為氣泡噴墨打印頭,特點是打印頭和墨盒集成在一起,噴頭上集成噴嘴數(shù)量比微電壓控制技術(shù)噴頭上的噴嘴要多得多,噴嘴數(shù)量排列多,打印每一行的寬度也就寬,從而完成一頁內(nèi)容的時間就會短。因此氣泡噴墨打印頭在打印速度上要比微電壓控制打印頭快,對其進行控制系統(tǒng)的研究與搭建有重要的意義。
1.1.2 打印頭的控制信號要求
打印頭中共有7個主要控制信號[2] S1~S6,K,其中S4,S5,S6是需要差分的信號:
S1:使能信號EN,3.3 V TTL電平,低電平有效;
S2:輔助信號A, 3.3 V TTL電平,高電平有效;
S3:輔助信號B,3.3 V TTL電平,高電平有效;
S4:+(LVDS+ 信號高);
S4:-(LVDS- 信號低);
S5:+(LVDS+);
S5:-(LVDS-);
S6:+(LVDS+);
S6:-(LVDS-);
K:GND。
其中:使能信號S1為噴頭的起始信號;S2,S3為輔助信號,分別對應(yīng)數(shù)據(jù)信號S4、S5,S4比S2遲4個時鐘周期,S5比S3遲4個時鐘周期;S6為時鐘信號,要求頻率為28.5 MHz;K為GND信號,需要連接1 kΩ電阻并接地。
當(dāng)滿足打印頭控制信號要求的前提下,數(shù)據(jù)信號S4,S5在輔助信號S2,S3有效后的528個周期里為低電平的部分,打印頭進入工作狀態(tài)[3]。
1.1.3 FPGA控制打印頭噴墨的工作原理
如圖2所示,采用氣泡噴墨打印頭驅(qū)動板,其主要由Altera公司的FPGA芯片EQ1C6T144C8作為核心控制,AS芯片作為邏輯儲存,一個AM26LV31I差分芯片和一個LVC14A信號傳輸芯片作為整個板子的輸入的接收接口,一個AM26LV32I差分芯片和一個LVC14A信號傳輸芯片作為整個板子的輸出接口、打印頭的輸入接口[4]。
氣泡噴墨打印頭驅(qū)動板需要的信號即為1.1.2節(jié)中提到的S1~S6,K信號,其中S4,S5作為輸入信號來自于FPGA開發(fā)板中的EP1C6Q240C8芯片,S1,S2,S3,S6,K信號的邏輯通過USB Blaster下載到AS芯片中。
FPGA上的轉(zhuǎn)接板是由一個AM26LV32I差分芯片和一個LVC14A信號傳輸芯片組成,其的作用是與打印頭驅(qū)動板實現(xiàn)接口對接,使FPGA開發(fā)板中的EP1C6Q240C8芯片把驅(qū)動信號發(fā)送到打印頭驅(qū)動板。其PCB原理圖如圖3所示。
FPGA開發(fā)板的EP1C6Q240C8芯片主要輸出信號共有4個:cs_n,sck,mosi_s4,mosi_s5。其中:cs_n是整個系統(tǒng)的使能信號,低有效,當(dāng)其有效時,整個系統(tǒng)開始工作;sck是氣泡噴墨打印頭驅(qū)動板的工作時鐘信號,由于FPGA開發(fā)板提供的時鐘為50 MHz,不滿足氣泡噴墨打印頭驅(qū)動板的時鐘工作要求,因此其由開發(fā)板的FPGA芯片EP1C6Q240C8調(diào)用IP核鎖相環(huán)分倍頻后得到;cs_n和sck這2個信號由FPGA開發(fā)板經(jīng)過轉(zhuǎn)接板的信號傳輸芯片LVC14A發(fā)送給氣泡噴墨打印頭驅(qū)動板的相對應(yīng)的LVC14A芯片,再經(jīng)過驅(qū)動板上的FPGA芯片EQLC6T144C8發(fā)送給打印頭的接收端相對應(yīng)的芯片LVC14A;
mosi_s4,mosi_s5即為1.1.2節(jié)中所描述的打印頭噴墨的數(shù)據(jù)信號S4,S5,這2個信號由開發(fā)板的FPGA芯片EP1C6Q240C8經(jīng)過轉(zhuǎn)接板上的AM26LV32I芯片發(fā)送給打印頭驅(qū)動板的AM26LV31I芯片,在氣泡噴墨打印頭驅(qū)動板的FPGA芯片EP1C6T144C8中經(jīng)過移位寄存器后發(fā)送給打印頭接收端的相對應(yīng)芯片AM26LV32I。
1.2 FPGA控制步進電機運動
1.2.1 FPGA控制步進電機運動的工作原理
如圖4所示,步進電機一般包括PUL,DR,F(xiàn)REE這3個主要輸入控制信號和2個碼盤輸出信號。其中,PUL是步進電機運動需要的脈沖信號,其不僅決定了電機是否轉(zhuǎn)動,而且其寬度也決定了電機轉(zhuǎn)動的速度,其在不超過驅(qū)動器可接受的脈沖頻率和電機響應(yīng)頻率脈沖的前提下越寬電機轉(zhuǎn)動的速度越慢,反之越快[5];DR是步進電機的方向信號,其確定步進電機的轉(zhuǎn)動方向;FREE是步進電機的脫機信號,當(dāng)脫機信號FREE為低電平時,驅(qū)動器輸出到電機的電流被切斷,電機轉(zhuǎn)子處于自由狀態(tài)(脫機狀態(tài))。如果在驅(qū)動器不斷電的情況下要求直接轉(zhuǎn)動電機軸(手動方式),就可以將FREE信號置低,使電機脫機,進行手動操作或調(diào)節(jié)。
碼盤經(jīng)常以轉(zhuǎn)速傳感器的形式出現(xiàn),其不但能檢測電機的轉(zhuǎn)動速度,也能有效地對電機定位;碼盤一般設(shè)在電機的一端,使電機和碼盤同步轉(zhuǎn)動,這樣便可以通過接收到碼盤轉(zhuǎn)動時所產(chǎn)生的2個脈沖信號來定位電機。
FPGA作為步進電機的信號源,其能提供較穩(wěn)定的控制信號,但由于FPGA的標(biāo)準(zhǔn)電平為3.3 V?LVTTL,而步進電機的驅(qū)動電平為5 V,因此,需要在FPGA與電機驅(qū)動板、FPGA與碼盤間加入電平轉(zhuǎn)換芯片以保證電機的正常驅(qū)動與碼盤的正常反饋[6]。
1.2.2 步進電機的精度的確認
碼盤的兩個輸出信號SignalA,SignalB作為電機的定位信號,當(dāng)電機轉(zhuǎn)動時,碼盤向FPGA發(fā)送SignalA,SignalB,其信號為相位相差90°的脈沖方波信號[7],如圖5所示。
在FPGA內(nèi)部把SignalA,SignalB信號的異或作為電機的定位信號,利用計數(shù)器與數(shù)碼管直觀的定位電機的實際位移[8]。由于電機帶動打印機的走紙會存在一定的機械抖動誤差;因此SignalA,SignalB會產(chǎn)生一些極小的脈沖誤差信號,會影響電機的定位精度;因此需要對碼盤的輸出信號進行簡單的信號濾波處理。
高頻率時鐘對低頻率信號的采樣處理即可較好地完成濾波,由于電機的脈沖頻率約為1 kHz,碼盤因與其保持同步運動,所以其輸出的2個定位信號SignalA,SignalB的頻率也為1 kHz,因此用相對高頻50 MHz的時鐘分別采樣相對低頻1 kHz的信號SignalA,SignalB,使兩信號通過20 b的移位寄存器,當(dāng)在移位寄存器中的SignalA,SignalB 20 b均為1或0的時候輸出1或0,否則不輸出并繼續(xù)移位。對同樣距離進行定位測試,并通過數(shù)碼管觀察其結(jié)果,電機位移精度如表1所示。
表1 電機位移精度確認
如表1所示,在同樣的距離下,當(dāng)碼盤信號沒有經(jīng)過濾波處理時,電機的定位位移相對較大,相同速度下每一次的定位也不夠準(zhǔn)確,而且由于電機轉(zhuǎn)動的越快,其產(chǎn)生的脈沖誤差越多,因此未濾波的時候,電機的轉(zhuǎn)動速度嚴重影響電機的定位精度;當(dāng)碼盤信號經(jīng)過濾波處理后,電機的位移明顯減小,而且電機的轉(zhuǎn)動速度不再影響電機的定位精度,定位效果準(zhǔn)確。
1.3 FPGA對打印頭和步進電機的聯(lián)合控制
1.3.1 FPGA對打印頭和步進電機聯(lián)合控制的工作原理
系統(tǒng)分為4種狀態(tài):空閑狀態(tài);走紙狀態(tài);噴墨狀態(tài);噴墨走紙狀態(tài),如圖6所示[9]。
1.3.2 FPGA對打印頭和步進電機聯(lián)合控制的quartus
上的實現(xiàn)[10]
圖7中左邊模塊為數(shù)碼管顯示模塊,右邊模塊為電機、打印機的頂層模塊。在FPGA中設(shè)置一個工作控制輸入信號spray_ctrlin,一個FREE控制輸入信號FREE_ctrlin,當(dāng)FREE_ctrlin生效時,電機進入脫機狀態(tài);當(dāng)spray_ctrlin生效時FPGA產(chǎn)生PUL、DR信號并發(fā)送給電機,系統(tǒng)進入走紙狀態(tài),并將電機碼盤的2個輸出信號發(fā)送給FPGA,將經(jīng)過濾波后的定位信號作為數(shù)碼管的輸入并對其計數(shù),將計得的數(shù)作為電機運動的實際位移,再根據(jù)實際位移來觸發(fā)打印頭與電機內(nèi)部的噴墨使能信號,當(dāng)噴墨信號有效時打印頭進入噴墨狀態(tài),整體系統(tǒng)進入噴墨走紙狀態(tài), 6位的7段數(shù)碼管上也會實時顯示出電機的實際位移。
2 實驗結(jié)果與硬件實際連接
2.1 打印頭與電機聯(lián)合控制結(jié)果
圖8為電機1先左右運動實現(xiàn)x軸走紙,并在指定好的位置實現(xiàn)打印頭的單色噴墨,當(dāng)走紙并噴墨完成第一行后,電機2上下運動實現(xiàn)y軸走紙,隨后逆向重復(fù)一次x軸走紙單色噴墨。
圖9為電機1、電機2同時運動實現(xiàn)x,y軸同時走紙,并在指定好的位置實現(xiàn)打印頭的雙色噴墨。
2.2 硬件實際連接
硬件實際連接如圖10~圖12所示。
3 結(jié) 語
本文通過對當(dāng)前噴墨技術(shù)、打印技術(shù)的研究,在前人的理論基礎(chǔ)上再創(chuàng)新,提出了對噴墨打印機的噴墨與電機的聯(lián)合控制,在FPGA平臺下搭建了噴墨打印機的控制系統(tǒng)。實驗結(jié)果表明,該系統(tǒng)能夠精確的實現(xiàn)對打印頭的噴墨控制以及電機的走紙控制,且其操作簡單,可升級性強。這對制造自主知識產(chǎn)權(quán)的噴墨打印機提供了堅實的基礎(chǔ),對當(dāng)下熱門的以噴墨打印機作為輸出部件的設(shè)備制造提供了更多的可能。
參考文獻
[1] 董盈鈞,孔明,馬忠祥.基于FPGA的打印機走紙控制系統(tǒng)[J].微型機與應(yīng)用,2010,29(21):94?95.
[2] 馬玉春,陸華.基于C語言的壓電式噴墨打印機驅(qū)動程序設(shè)計[J].瓊州學(xué)院學(xué)報,2011,18(2):11?12.
[3] 王彥,田丹丹,陳瓊,等.基于FPGA的微型打印機驅(qū)動電路和程序設(shè)計[J].南華大學(xué)學(xué)報,2004,18(3):79?82.
[4] 廖強,文榮,夏洋,等.基于SoPC的寬幅噴墨打印機控制系統(tǒng)[J].計算機工程,2009,35(19):260?261.
[5] 陳興文,劉燕.基于FPGA實現(xiàn)步進電機脈沖信號控制器設(shè)計[J].機械設(shè)計與制造,2006(2):86?87.
[6] 龐淑娟,倪受東.基于FPGA的步進電機速度控制器的設(shè)計[J].新技術(shù)新工藝,2008(4):32?33.
[7] 劉加峰,蘆勤,郁蘇娟,等.步進電機控制電路一種基于FPGA的實現(xiàn)[J].微計算機應(yīng)用,2007,28(8):864?865.
[8] 安立宇,趙曙光,杜丘.基于FPGA的兩相步進電機細分驅(qū)動器設(shè)計[J].儀表技術(shù),2009(1):31?32.
[9] 粘朋雷,李國林,毛維平,等.基于FPGA與VHDL的微型打印機的驅(qū)動設(shè)計[J].現(xiàn)代電子技術(shù),2010,33(24):72?73.
[10] 周潤景,圖雅,張麗敏.基于QuartusⅡ的FPGA/CPLD[M].北京:電子工業(yè)出版社,2007.