本發(fā)明涉及打印機領域,尤其涉及一種針式打印機的控制電路。
背景技術:
針式打印機是一種利用打印針將墨點印在打印紙上,從而完成打印工作的設備。其基本原理為:1、打印頭內包括打印針與電磁鐵,打印針在電磁鐵作用下,可以通過吸合與釋放作用將墨點印在打印紙上;2、字車電機、走紙電機及相關機械器件配合,通過移動打印頭,即可對打印點位置進行排布,從而實現對規(guī)定字符、漢字及圖形等的打印。
針式打印機通常由兩個部分組成,包括機械部分與電氣控制部分。其中,電氣控制部分將待打印的文字與圖形信息轉換為用于控制電機與打印針的脈寬信號;機械部分將脈寬信號轉換為電機的轉動及打印針的吸合與釋放運動,進而完成打印工作。
通常,針式打印機的電氣控制部分主要由CPU外加保護電路來實現,這樣的好處是CPU邏輯處理功能強大,可自動完成對打印內容的解析,進而分解成需要機械部分完成動作的脈寬信號并直接輸出;當CPU進入異常狀態(tài)時,可以利用硬件保護電路進行信號保護,防止異常的信號輸出導致機械部分的電機燒毀或打印頭長時間通電失效。
但對智能設備來說,由于芯片上運行的操作系統(tǒng)越來越復雜,對實時性事務的響應越來越慢,已無法保證對針式打印機的有效控制。近年來,以FPGA與CPLD為代表的可編程門陣列器件被引入對時序較為敏感的控制領域。例如,公開號為CN101648462A的中國專利提出了一種基于FPGA模塊的針式打印機控制電路,包括數據總線、譯碼模塊、輔助電機模塊、脈寬調制控制模塊、中斷模塊、同步串口模塊、面板控制模塊、字車電機模塊、進紙電機模塊、打印頭模塊、電源控制模塊、CPU,所述數據總線、譯碼模塊、輔助電機模塊、脈寬調制控制模塊、中斷模塊、同步串口模塊、面板控制模塊、字車電機模塊、進紙電機模塊、打印頭模塊、電源控制模塊集成于FPGA模塊EP2C5Q208C8芯片內,所述輔助電機模塊、脈寬調制控制模塊、中斷模塊、面板控制模塊、字車電機模塊、進紙電機模塊及打印頭模塊的一端接譯碼模塊,另一端接數據總線,CPU分別與譯碼模塊、數據總線相連,電源控制模塊與譯碼模塊相連,同步串口模塊分別與打印頭模塊、CPU相連。
上述方案使用了FPGA芯片來控制打印機,但是該方案所有關于打印頭的控制及走紙/字車電機的控制均通過FPGA實現,需使用大容量、高成本、IO數目較多的高端FPGA芯片才可實現,成本過高。
技術實現要素:
本發(fā)明所要解決的技術問題是:提供一種結合CPU和可編程門陣列器件的針式打印機的控制電路,既能夠實現對打印機的有效控制,又能降低成本。
為了解決上述技術問題,本發(fā)明采用的技術方案為:
一種針式打印機的控制電路,包括:CPU和可編程門陣列器件,所述CPU分別與可編程門陣列器件和針式打印機的走紙電機連接,所述可編程門陣列器件分別與針式打印機的字車電機和打印頭連接;
所述CPU用于對待打印數據進行處理,計算得到打印指令和走紙指令;并將所述打印指令發(fā)送至可編程門陣列器件,以及將所述走紙指令發(fā)送至走紙電機;
所述可編程門陣列器件用于依據所述打印指令控制字車電機和打印頭進行打??;
走紙電機依據所述走紙指令控制走紙。
本發(fā)明的有益效果在于:通過設置CPU,對待打印的數據進行處理得到打印指令和走紙指令,將走紙指令發(fā)送給走紙電機,實現CPU直接控制走紙;CPU將打印指令發(fā)送給可編程門陣列器件,由于可編程門陣列器件與打印頭和字車電機,從而實現可編程門陣列器件控制打印頭出針和字車移動。本發(fā)明將實時性要求高的控制由可編程門陣列器件實現,實時性要求低的控制由CPU實現,既提高了響應速度,保證對針式打印機的有效控制,又降低了可編程門陣列器件的性能要求,降低了成本;同時可節(jié)省CPU引腳資源,減少軟件改動量。
附圖說明
圖1為本發(fā)明實施例的針式打印機的控制電路的結構示意圖;
圖2為本發(fā)明實施例一的針式打印機的控制電路的結構示意圖一;
圖3為本發(fā)明實施例一的針式打印機的控制電路的結構示意圖二;
圖4為本發(fā)明實施例一的總線控制模塊發(fā)送的數據的時序示意圖;
圖5為本發(fā)明實施例一的字車控制模塊輸出的時序示意圖。
標號說明:
1、CPU;2、可編程門陣列器件;21、總線控制模塊;22、流程控制模塊;23、定時計數模塊;24、字車控制模塊;25、出針控制模塊;26、中斷模塊。
具體實施方式
為詳細說明本發(fā)明的技術內容、所實現目的及效果,以下結合實施方式并配合附圖予以說明。
本發(fā)明最關鍵的構思在于:CPU連接針式打印機的走紙電機,可編程門陣列器件連接針式打印機的打印頭和字車電機。
請參照圖1,本發(fā)明提供:
一種針式打印機的控制電路,包括:CPU1和可編程門陣列器件2,所述CPU1分別與可編程門陣列器件3和針式打印機的走紙電機連接,所述可編程門陣列器件2分別與針式打印機的字車電機和打印頭連接;
所述CPU1用于對待打印數據進行處理,計算得到打印指令和走紙指令;并將所述打印指令發(fā)送至可編程門陣列器件2,以及將所述走紙指令發(fā)送至走紙電機;
所述可編程門陣列器件2用于依據所述打印指令控制字車電機和打印頭進行打??;
走紙電機依據所述走紙指令控制走紙。
進一步的,所述可編程門陣列器件2包括:
總線控制模塊21,用于控制可編程門陣列器件2與CPU1之間的通訊,接收CPU1發(fā)送的打印指令;
流程控制模塊22,用于響應總線控制模塊21下達的打印指令;
定時計數模塊23,用于依據所述打印指令產生字車移動時序、出針時序、字車移動步數和出針次數;
字車控制模塊24,用于依據所述字車移動時序和字車移動步數輸出字車電機控制信號;
出針控制模塊25,用于依據所述出針時序和出針次數輸出出針控制信號。
從上述描述可知,進行打印控制時,可編程門陣列器件的總線控制模塊接收CPU發(fā)來的打印指令,并通過流程控制模塊相應該打印指令,從而定時計數模塊能夠依據該指令產生字車移動和出針的時序以及字車移動的步數和出針次數,再由字車控制模塊和出針控制模塊輸出字車電機和出針的控制信號,實現打印控制。
進一步的,所述定時計數模塊23還依據所述打印指令產生字車移動速度,所述字車控制模塊24依據所述字車移動時序、字車移動步數和字車移動速度輸出字車電機控制信號。
從上述描述可知,對字車移動的控制還包括對字車移動速度的控制。通過輸出控制字車電機的控制信號的電平切換,從而實現字車移動。
進一步的,所述定時計數模塊23還用于統(tǒng)計實際執(zhí)行的字車移動步數和出針次數,并將所述實際執(zhí)行的字車移動步數和出針次數發(fā)送至流程控制模塊22。
從上述描述可知,能夠將實際執(zhí)行的打印操作反饋至CPU,從而CPU能夠依據反饋的信息進行后續(xù)操作。
進一步的,所述可編程門陣列器件2還包括中斷控制模塊26,所述中斷控制模塊26分別連接所述流程控制模塊22和總線控制模塊21;所述中斷控制模塊26用于產生中斷信號,供CPU1讀取可編程門陣列器件2當前的工作狀態(tài)。
進一步的,所述流程控制模塊22依據所述實際執(zhí)行的字車移動步數和出針次數判斷打印是否結束,若是,控制中斷控制模塊26輸出中斷信號至CPU1,CPU1控制走紙電機進行走紙。
從上述描述可知,打印結束后,CPU控制走紙,具體的,單行打印結束后,進行走紙,走紙完畢,若下一行還有數據則繼續(xù)下一行打印,若下一行沒有數據則CPU操作針打機芯直接走紙至撕紙口,打印結束。
進一步的,所述可編程門陣列器件2包括:總線控制模塊21、流程控制模塊22、定時計數模塊23、字車控制模塊24和出針控制模塊25;所述總線控制模塊21與CPU1連接,所述總線控制模塊21、流程控制模塊22和定時計數模塊23依次連接,所述定時計數模塊23分別連接字車控制模塊24和出針控制模塊25,所述字車控制模塊24與字車電機連接,所述出針控制模塊25與打印頭連接。
進一步的,所述可編程門陣列器件2包括FPGA或CPLD。
從上述描述可知,FPGA和CPLD為功能比較強大的兩款可編程門陣列器件,也可以采用其他可編程門陣列器件。
進一步的,所述打印頭的打印針的數目為兩個以上,所述可編程門陣列器件2控制打印針同時出針或間隔出針。
從上述描述可知,當打印頭為多個時,可控制多個打印頭同時出針或間隔出針。
進一步的,所述CPU1為微控制器或單片機。
請參照圖2至圖5,本發(fā)明的實施例一為:
一種針式打印機的控制電路,外接針打機芯,包括:CPU針和FPGA,CPU和針式打印機的走紙電機連接,FPGA分別和針式打印機的打印頭和字車電機連接;具體的,CPU通過走紙控制口線與針式打印機的針打機芯連接;FPGA分別通過字車控制口線和出針控制口線與針打機芯連接;同時CPU與FPGA通過數據通訊口線和中斷口線連接,如圖2所示。
上述CPU與FPGA之間的數據傳遞通過一個8位數據總線實現,由一根地址線,八根數據線,讀信號、寫信號與片選構成。由于除了片選以外,其余口線皆可與其余模塊共享,故可有效減少CPU部分I/O口線的資源占用。所述的數據通訊口線,可以是8080數據總線,也可以是SPI、串口等數據通訊接口。
所述FPGA包括:
總線控制模塊,用于控制FPGA與CPU之間的通訊,讀取CPU傳送的數據,完成譯碼并執(zhí)行打印相關動作;同時可響應CPU的讀取指令,回傳與打印狀態(tài)相關的數據;
流程控制模塊,設計為一個狀態(tài)轉移機(字車加速—字車勻速(打印)—字車減速),可響應總線控制模塊下達的打印/字車移動指令,并根據預先設定,在不需CPU干涉的前提下,配合字車控制模塊、出針控制模塊與定時計數模塊獨立完成雙向打印、字車移動及字車初始化動作;
字車控制模塊,用于通過字車加減速表、移動方向與移動步數,控制字車電機控制信號的電平切換,從而實現字車移動;
定時計數模塊,用于一方面產生時鐘控制字車相位切換與出針時序,另一方面統(tǒng)計出針次數、字車電機移動步數給流程控制模塊,以實現流程控制;
出針控制模塊,用于通過讀取出針數據并按照時序要求輸出出針電平;
中斷控制模塊,用于當FPGA產生需要反饋CPU的信息(如打印執(zhí)行完畢/出現硬件問題)時,通過中斷產生模塊產生中斷信號,供CPU讀取當前FPGA工作狀態(tài);
所述總線控制模塊與CPU連接,所述總線控制模塊、流程控制模塊和定時計數模塊依次連接,所述定時計數模塊分別連接字車控制模塊和出針控制模塊,所述字車控制模塊與字車電機連接,所述出針控制模塊與打印頭連接,所述中斷控制模塊分別連接所述流程控制模塊和總線控制模塊,如圖3所示。
需要打印時,該控制電路實現方法如下:
S1、CPU對待打印數據進行分析,將需要打印的數據分解為實際字車運動路徑與出針數據;
S2、CPU將字車運動方向及運動步數發(fā)送至FPGA的相應寄存器內;
S3、CPU將打印數據存放至FPGA的數據存儲區(qū)內;具體的,采用FPGA內建的RAM資源暫存打印數據;
S4、CPU發(fā)送打印指令,FPGA內部的總線控制模塊接到指令后,使能流程控制模塊;流程控制模塊使能定時計數模塊開始產生字車馬達換相時鐘與出針時鐘;總線控制模塊發(fā)送至流程控制模塊的數據的時序如圖4所示;
S5、字車馬達換相時鐘與出針時鐘驅動字車控制模塊與出針控制模塊輸出字車馬達換相信號與出針時序信號,在以上信號驅動下,針打機芯開始進行單行打印動作;字車控制時序如圖5所示;
S6、打印動作結束后,流程控制模塊使能中斷控制模塊輸出中斷給CPU,CPU收到相關工作狀態(tài)后,開始直接控制針打機芯進行走紙動作;
S7、走紙完畢后,若下一行仍有打印數據,則CPU開始分析下一行打印數據,回到S1;若沒有打印數據,則CPU操作針打機芯直接走紙至撕紙口,打印結束。
對于單獨使用CPU進行針式打印機控制的電路來說,在打印過程中如使用同時出針的打印機芯,字車每換相一次,即每1ms左右即產生一次中斷需CPU進行處理;若使用打印針數為8根,出針方式為間隔出針的打印機芯,則每100us左右即產生一次中斷。這一數字對CPU來說屬于很大的工作負荷。如果CPU無法及時響應頻率如此高的中斷,輕則導致字車換相與出針時機無規(guī)律延遲,影響打印效果;重則導致字車馬達失步,造成打印失敗。
采用本發(fā)明所述的控制電路及電路的控制實現方法,在打印過程中,打印每行數據只產生1-2次中斷,如果以打印單行數據速度為8行/秒計算,可將平均中斷產生時間延長至大于50ms;且由于在單行打印過程中無需CPU干預,故對CPU響應FPGA中斷的延時沒有要求;同時,由于所有打印控制信號均由FPGA硬件邏輯直接生成而不會受到CPU中斷響應延遲的影響,故可有效提高打印效果并降低字車馬達失步的概率。
綜上所述,本發(fā)明提供的針式打印機的控制電路,既能夠對打印事務進行實時響應,極大地提高控制效率,又能夠大量減少FPGA等可編程門陣列器件的邏輯門資源占用,降低了FPGA的性能要求,成本降低。
以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等同變換,或直接或間接運用在相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內。