盧 貺
(武漢軟件工程職業學院,湖北武漢 430205)
微型打印機廣泛使用在各行各業,比如儀器儀表、超級市場、便利店、郵政、銀行、煙草專賣、公用事業抄表、移動警務系統、移動政務系統等等。配備了流行常用接口(如USB接口)的微型打印機,應用范圍更是廣泛:移動警務系統單據打印,如交警罰單打印;移動銷售系統單據打印,如煙草銷售系統;大企業移動配送系統單據打印;移動政務系統單據打印,如城管罰沒單打印;公用事業費(水、電、煤氣)抄收單據打印等配合其他移動數據處理終端的數據打印[1]。
本系統采用性價比高的摩托羅拉單片機MC68HC908AP64作為控制核心。通過片內PLL實現鎖相環控制,具有在線編程功能。為了降低整機功耗,在一段時間無命令后,打印機自動進入節能模式。采用中功率電源適配器,配備儲能電容,保證打印頭在大電流情況工作時設備的穩定性,可取得較好的成本和性能平衡。通過片內A/D實現電源監控,判斷電源電壓低、電源過載等異常情況。USB接口使用菲利浦公司的芯片PDIUSBD12,符合USB1.1版的規范,采用模擬總線擴展,通過軟件方式操作8位數據線及讀寫信號,控制USB專用芯片和其他邏輯芯片。在具有硬件看門狗,干擾很強的環境中仍能正常工作。系統通過軟件、硬件的設計配合,具有較強的EMC性能[2]。
* 打印方法:九針列式雙向打印
* 打印寬度:76mm
* 打印速度:約3行/秒
* 走紙速度:100mm/秒
* 打印字符:國標漢字一、二級字庫,具有擴充能力
* 打印機可靠性:500萬行(MCBF)
* 環境適應:工作溫度:5~40℃,相對濕度:10~80%
在該控制方案中打印機主要功能是通過USB接口從主機接收控制或者數據指令,解析該指令。根據不同的指令,執行從字庫中取得字符點陣、控制電機芯片等功能。然后驅動字車馬達和進紙馬達轉動以及打印頭上9根針的撞擊打印,從而在紙上顯示出我們所需要的一些直觀的字符或圖形。
系統框圖如圖1所示。

圖1 系統框圖
打印頭有字車機構、打印針機構、走紙機構,以及打印頭狀態傳感器。
打印頭通過字車機構實現橫向左、右移動,再由打印針撞擊色帶而印字。字車的動力源用步進電動機,通過傳動裝置將步進電動機的轉動變為字車的橫向移動。打印針是正確打印的關鍵,打印針機構實現打印針的出針和收針動作,通常利用電磁原理控制打印針的動作。當打印完一行后,由走紙機構走紙換行。走紙方式一般有摩擦走紙、齒輪饋送和壓紙滾筒饋送等,本系統采用摩擦式走紙方式,其動力方式為通過牽引機構將步進電動機的轉動轉變為走紙移動。
傳感器有原始位置傳感器(檢測字車是否停在左邊原始位置上)、紙盡傳感器(檢測所裝的打印紙是否用完,用完則報警)和溫度傳感器(檢測字車的瞬時溫度)等。
主控電路圖如圖2所示。
USB接口電路圖如圖3所示。
(1)主控核心部分。采用摩托羅拉公司單片機MC68HC908AP64作為主控CPU,通過通訊接口模塊從主機上接收命令或者數據,同時控制打印頭驅動模塊工作。
(2)打印頭驅動和檢測部分。打印頭采用ESPON公司的產品,性能優良。采用專用的步進電機驅動芯片來驅動兩個步進電機,達林頓管來驅動打印頭上的打印針。
(3)USB通訊部分。采用菲利浦公司的PDIUSBD12芯片,符合USB1.1版的規范。
(4)串行大容量存儲部分。采用SPI接口的串行FLASH存儲器。容量可達1M字節,能存放國標一、二級字庫。有自動地址增量(AAI)及小扇區擦除功能。通過軟件設計,可以仿真EEPROM功能。
(5)按鍵和撥碼開關部分通過動態掃描來控制按鍵,實時性高。使用撥碼開關,可以設置不同的工作模式,使系統工作穩定、可靠。
(6)LED和蜂鳴器部分。上電LED指示。工作狀態和故障LED指示,通過不同的閃爍頻率,指示不同的故障原因。通過定時器產生一個固定頻率的輸出脈沖,控制蜂鳴器工作。
(7)電源部分。采用典型的經濟型中功率電源設計,降壓、整流、濾波、穩壓。24V電源儲能,在打印頭短時間(毫秒級)大功率(約8A)工作時,提供儲能電流,在成本不高的情況下,滿足了打印頭工作需要。電源檢測部分包括電壓檢測、電流過載檢測等。
(8)看門狗部分。在硬件上增加看門狗芯片,檢測工作電壓,發現電壓波動較大時,使主控CPU停止工作;同時,檢測主控CPU軟件是否正常工作,出現異常,復位主控CPU。防止錯誤操作和發生不正常現象。

圖2 主控電路圖

圖3 USB接口電路圖
軟件結構分為字庫和監控程序兩大塊,其中字庫包括全部ASCII字符和國標一、二級字庫,監控程序包括主控程序部分、協議命令分析部分、打印字符處理部分、底層驅動部分、中斷服務處理部分等,對打印過程中的一些異常處理和信號狀態檢測放在中斷服務處理程序中,每一個部分可以進一步劃分成不同的模塊子函數。所有程序都放置在單片機內部FLASH中[3]。軟件設計主框圖如圖4所示。
(1)協議命令分析:該部分主要對接收到的打印命令及后繼數據進行分析,并根據解析結果來指引與打印操作相關的程序流向。
(2)打印字符處理:通過接收到的國標碼配以固定算法計算出該字符在字符存儲器中字模的起始地址,再取出該字符的字模數據存放到規定的寄存器中用以后面的操作。由于需要打印比較小而緊湊的字符,采用半點打印的方式,故要對16×16點陣的標準字模作出處理,使之轉換為7×9點陣字模和半點間隔打印方式。ASCII字符則轉換成5×7點陣字模[4]。

圖4 軟件設計主框圖
(3)打印操作處理:根據控制字車電機和進紙電機兩線圈中電流大小相位和脈沖時長間隔來控制字車在軸上來回的移動、速率大小和走紙的方向、速率大小。在進紙停止字車運動的過程中,根據時鐘和每行打印數據來控制打印針出針。
(4)打印頭檢測:收到溫度過高等信號后引起外部觸發中斷,單片機立即作出相應響應,停止打印,上報主機,待信號恢復正常后再繼續工作。
(5)USB接口。將PDIUSBD12模塊設計成完全的中斷驅動,當MC68HC908AP64單片機處理前臺任務時,USB的傳輸可在后臺進行,這樣有快的傳輸速率和好的軟件結構,同時簡化了編程和調試。這種結構,主循環不用理會數據來自USB、串口或者其他接口,只檢查緩沖區內需要處理的新數據。USB各模塊程序的框圖如圖5所示。

圖5 USB程序處理框圖
本系統做為DSP技術課程教學平臺設計中的外部配置模塊,設計上稍作更改,就可擴充應用領域,比如控制熱敏打印頭。
本系統融合了計算機技術、控制技術和通信技術,使微型打印機體現了便攜、智能的特點。具有高的精確度和可靠性,抗干擾能力強,擴充性好,體積小,重量輕,功耗低,智能化程度高,能滿足越來越多的應用領域[5][6]。
1 趙文通.一種基于單片機系統點陣式微型打印機的低成本設計[J].黑龍江科技信息,2010(13)
2 MOTOROLA公司.MC68HC908AP64單片機器件手冊Rev.4[M].美國:MOTOROLA公司,2007
3 蔡 祥.基于C8051F系列單片機的標簽打印機接口設計[J].現代電子技術,2011,34(8)
4 陳梅林.基于微型字符打印機芯的漢字點陣打印方法[J].福建電腦,2009,25(5)
5 胡小蘭.針式打印機的常見故障及解決方法[J].福建電腦,2010,26(7)
6 李伯成.微型計算機原理及接口技術[M].北京:清華大學出版社,2005