1.引言
常用的微型針式打印機速度慢、噪聲大, 無法滿足某些場合的需要。微型熱敏打印機具有打印速度快、噪音低、可靠性高、字跡清晰、機頭小而輕等優(yōu)點, 可滿足各種場合的打印要求, 因此得到廣泛應用。微型熱敏打印頭對打印時序和溫度要求較高, 一旦控制不當極易造成打印頭燒毀, 其控制系統(tǒng)的軟硬件設計較復雜。本文選用FTP-628MCL101熱敏打印頭開展研發(fā)工作。此便攜式微型熱敏打印機為支持藍牙無線通訊技術的便攜式票據(jù)打印機,可廣泛使用在移動政務、警務、煙草、郵政、運輸、配送等等行業(yè)。
2.系統(tǒng)組成
本系統(tǒng)由LPC2103控制系統(tǒng),藍牙通信模塊,打印頭接口模塊,外存芯片,電源模塊組成。
組成框圖如下:
3.打印原理
選用的FTP-628MCL101作為熱敏打印頭。該熱敏打印頭點結構384 點/行, 水平方向點密度: 8 點/mm, 垂直方向行間距: 8 點/mm。有效打印寬度48mm。打印速度最大為60mm/秒。要打印的數(shù)據(jù)在時鐘CLK 的配合下, 經(jīng)由數(shù)據(jù)輸入腳DI 移到熱敏機芯內(nèi)部的移位寄存器中。經(jīng)384 個時鐘周期, 一行384 位數(shù)據(jù)全部移到移位寄存器后, 鎖存端的鎖存信號/LAT 由CPU 置低,移位寄存器的數(shù)據(jù)被鎖存到鎖存器。然后熱敏頭加熱控制信號STB 產(chǎn)生高電平, 此時根據(jù)384 點輸入的DI 數(shù)據(jù)是1 或者是0決定發(fā)熱元件是否發(fā)熱, 由此在熱敏紙上產(chǎn)生要打印的點行。打印時序圖如下:
[!--empirenews.page--]
步進電機時序如下:
打印頭打印一點行,步進電機前進一點行。由于打印電流過大,所以打印頭是逐段加熱的,在打印一點行的過程中,1,2,3,4,5,6這6段是逐段加熱的。供電電源選項用7.5V,電流2A以上電源。布線方面需要注意的就是藍牙模塊的天線不能被鋪地銅給屏蔽,藍牙模塊那邊地應空出來。
4.軟件設計:
4.1 啟動代碼:
在用LPC2103進行熱敏打印機開發(fā)中,啟動代碼是周立功公司提供的啟動代碼,包括三個文件,Init.s,Vectors.s,init.c,需要改動的地方就是堆棧大小,還有就是系統(tǒng)時鐘的設置。
4.2 軟件驅(qū)動:
熱敏打印機是一個打印命令和控制面板驅(qū)動的系統(tǒng)。系統(tǒng)根據(jù)上位機傳下來的打印命令流,完成相應的打印命令,打印命令可以以串口或是并口,或是藍牙的方式從上位機獲得;控制面板上的消息也可以對打印機進行驅(qū)動,如進紙鍵,切紙鍵。
系統(tǒng)主程序框圖如下:
[!--empirenews.page--]
4.3 打印協(xié)議:
串口緩沖區(qū)采用循環(huán)隊列,RS232的串口0與藍牙的串口1共用同一緩沖區(qū),打印處理的主要依據(jù)是協(xié)議主要是基于ESC/POS® 標準的命令協(xié)議,它包括打印控制命令,字符參數(shù)設置命令,打印排版設置命令,圖形打印命令,條碼打印命令,曲線打印命令,用戶自定義命令,漢字打印命令等,下表給出一些打印控制命令的格式化式和功能:
還有一些具體命令,可以參考
UnifiedPOS Version 1.10 -- Released February 10, 2006
4.4 字庫部分說明:
支持英數(shù)字符ANK、GB18030 漢字字符。
字庫在FLASH中從0X30存放,0X10起為英文字庫的行列(兩個字) ,起始位置(2個字,高位在前),結束字節(jié)((2個字,高位在前); 0X20起為中文字庫的行列(兩個字) 起始位置(2個字,高位在前),結束字節(jié)((2個字,高位在前);
英文字庫下載命令為: 1D 55 ziku_line ziku_row Plongl Plongh,Pl Ph ;
中文字庫下載命令為: 1D 5A ziku_line ziku_row Plongl Plongh,Pl Ph ;
代碼如下:
unsigned char doGS(void)
{
unsigned char mm;
if(comcome()==TRUE) mm = comcomedata ;
else return FALSE;
switch(mm)
{
case 'U':englishZiKuDown();break; // 0x55='U'
case 'Z':chinaZiKuDown();break; // 0x5a='Z'
default :break;
}
return ENABLE;
}
5.小結
為了使打印機易于使用,我們設計了簡潔的按鍵和指示燈。在這款打印機中,我們設計了兩個LED燈,用來指示打印機的狀態(tài),一個是錯誤指示燈,一個是有紙無紙指示也作電源指示用,在不同狀態(tài)下燈的閃爍情況也不一樣,在正常打印下,錯誤指示燈滅,有紙燈亮;在下載位圖和字庫的時候,有紙燈會閃爍;當無紙時,錯誤指示燈亮,有紙燈滅;當打印頭溫度這高時,錯誤指示燈也會亮。
本文創(chuàng)新點:通過增加藍牙通信模塊的增加,使得此熱敏打印機的應該范圍更廣,只要上位機擁有一個藍牙Dongle,就可以實現(xiàn)無線打印??蓮V泛使用在移動政務、警務、煙草、郵政、運輸、配送等等行業(yè)。通過合理的配置加熱時間,可使得打印效果和打印速度之間的實現(xiàn)最最佳配置。
參考文獻:
[1]王俊紅,等.基于AT89C52 單片機的變量噴霧控制器設計[J].微計算機信息,2006,2:8- 10 .
[2] UnifiedPOS Version 1.10 -- Released February 10, 2006
[3]林銳.軟件工程思想
[4]林銳.高質(zhì)量C++/C 編程指南,2001.7
[5]美國 Micbeal Barr .C/C++嵌入式系統(tǒng)編程,中國電力出版社
[6]美國Steve McConnell.代碼大全, 學苑出版社,1993