基于LPC2103的蓝牙热敏打印机的开发
扫描二维码
随时随地手机看文章
1.引言
常用的微型针式打印机速度慢、噪声大, 无法满足某些场合的需要。微型热敏打印机具有打印速度快、噪音低、可靠性高、字迹清晰、机头小而轻等优点, 可满足各种场合的打印要求, 因此得到广泛应用。微型热敏打印头对打印时序和温度要求较高, 一旦控制不当极易造成打印头烧毁, 其控制系统的软硬件设计较复杂。本文选用FTP-628MCL101热敏打印头开展研发工作。此便携式微型热敏打印机为支持蓝牙无线通讯技术的便携式票据打印机,可广泛使用在移动政务、警务、烟草、邮政、运输、配送等等行业。
2.系统组成
本系统由LPC2103控制系统,蓝牙通信模块,打印头接口模块,外存芯片,电源模块组成。
组成框图如下:
3.打印原理
选用的FTP-628MCL101作为热敏打印头。该热敏打印头点结构384 点/行, 水平方向点密度: 8 点/mm, 垂直方向行间距: 8 点/mm。有效打印宽度48mm。打印速度最大为60mm/秒。要打印的数据在时钟CLK 的配合下, 经由数据输入脚DI 移到热敏机芯内部的移位寄存器中。经384 个时钟周期, 一行384 位数据全部移到移位寄存器后, 锁存端的锁存信号/LAT 由CPU 置低,移位寄存器的数据被锁存到锁存器。然后热敏头加热控制信号STB 产生高电平, 此时根据384 点输入的DI 数据是1 或者是0决定发热元件是否发热, 由此在热敏纸上产生要打印的点行。打印时序图如下:
步进电机时序如下:
打印头打印一点行,步进电机前进一点行。由于打印电流过大,所以打印头是逐段加热的,在打印一点行的过程中,1,2,3,4,5,6这6段是逐段加热的。供电电源选项用7.5V,电流2A以上电源。布线方面需要注意的就是蓝牙模块的天线不能被铺地铜给屏蔽,蓝牙模块那边地应空出来。
4.软件设计:
4.1 启动代码:
在用LPC2103进行热敏打印机开发中,启动代码是周立功公司提供的启动代码,包括三个文件,Init.s,Vectors.s,init.c,需要改动的地方就是堆栈大小,还有就是系统时钟的设置。
4.2 软件驱动:
热敏打印机是一个打印命令和控制面板驱动的系统。系统根据上位机传下来的打印命令流,完成相应的打印命令,打印命令可以以串口或是并口,或是蓝牙的方式从上位机获得;控制面板上的消息也可以对打印机进行驱动,如进纸键,切纸键。
系统主程序框图如下:
4.3 打印协议:
串口缓冲区采用循环队列,RS232的串口0与蓝牙的串口1共用同一缓冲区,打印处理的主要依据是协议主要是基于ESC/POS® 标准的命令协议,它包括打印控制命令,字符参数设置命令,打印排版设置命令,图形打印命令,条码打印命令,曲线打印命令,用户自定义命令,汉字打印命令等,下表给出一些打印控制命令的格式化式和功能:
还有一些具体命令,可以参考
UnifiedPOS Version 1.10 -- Released February 10, 2006
4.4 字库部分说明:
支持英数字符ANK、GB18030 汉字字符。
字库在FLASH中从0X30存放,0X10起为英文字库的行列(两个字) ,起始位置(2个字,高位在前),结束字节((2个字,高位在前); 0X20起为中文字库的行列(两个字) 起始位置(2个字,高位在前),结束字节((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灯,用来指示打印机的状态,一个是错误指示灯,一个是有纸无纸指示也作电源指示用,在不同状态下灯的闪烁情况也不一样,在正常打印下,错误指示灯灭,有纸灯亮;在下载位图和字库的时候,有纸灯会闪烁;当无纸时,错误指示灯亮,有纸灯灭;当打印头温度这高时,错误指示灯也会亮。
本文创新点:通过增加蓝牙通信模块的增加,使得此热敏打印机的应该范围更广,只要上位机拥有一个蓝牙Dongle,就可以实现无线打印。可广泛使用在移动政务、警务、烟草、邮政、运输、配送等等行业。通过合理的配置加热时间,可使得打印效果和打印速度之间的实现最最佳配置。
参考文献:
[1]王俊红,等.基于AT89C52 单片机的变量喷雾控制器设计[J].微计算机信息,2006,2:8- 10 .
[2] UnifiedPOS Version 1.10 -- Released February 10, 2006
[3]林锐.软件工程思想
[4]林锐.高质量C++/C 编程指南,2001.7
[5]美国 Micbeal Barr .C/C++嵌入式系统编程,中国电力出版社
[6]美国Steve McConnell.代码大全, 学苑出版社,1993