摘 要:
关键词:
一、 背景技术介绍
SIM300模块是SIMCOM推出的GSM双频模块,主要为语音传输、短消息提供无线接口。SIM300模块集成了完整的射频电路和GSM的基带处理器,并提供了功能较为完备的系统接口,如:SIM卡接口、5*5键盘输入接口、基于硬件SPI的LCD控制接口、串行通讯接口、若干个中断IO口、若干个普通输入输出IO口、电池电压检测的ADC接口等等。适合于开发一些GSM的无线应用产品,如移动电话、PDA、无线公用电话、无线商务电话、监控、调度、车载、遥控、远程测量、定位和导航等系统和产品,应用范围十分广泛。
随着SIM300模块应用的普及,越来越多的场合需要在其上实现票据打印功能,比如:用SIM300模块开发的移动终端需要具备移动充值话单的打印、通话详单的打印、SIM卡远程写卡票据的打印、电力缴费票据的打印等;在一般场合下,可选择具有打印速度快、噪音低、可靠性高、字迹清晰、机头小而轻的微型热敏打印头作为执行机构。但是,由于微型热敏打印头对打印时序和温度要求都较高,而基于嵌入式系统的SIM300模块的MMI运行优先级相对较低,用常规软件定时器的控制方法,其响应精度并不能满足对打印头的适时控制要求,另外,SIM300模块内部ROM空间也不足于存储较大点阵的汉字字库;所以,目前基于SIM300模块开发的移动打印终端均是通过外挂独立热敏打印机板来实现热敏打印功能,在外挂热敏打印机板上集成了微型热敏打印头、主控单片机单元、扩展RAM存储单元、扩展FLASH存储单元、步进电机驱动单元、热敏打印头过热保护单元、热敏打印头缺纸检测单元、通信转换单元、电源转换单元等。这种通过外挂热敏打印机板来实现热敏打印功能的方案,势必会增加系统的成本,也增加了生产工艺环节;同时,由于SIM300模块与热敏打印机板通过串口进行通讯,这会占用极为宝贵的串口资源,而且,需要对打印数据及SIM300模块的配置数据进行分流设计(比如:通过串口复用的方法),这增加了系统设计的难度;另外,这种热敏打印机板一般匹配大容量的RAM,打印时首先从串口不断接收需要打印的数据,之后逐行进行打印输出,其打印过程中并无打印状态及打印结果的反馈,属于开环式控制形式,所以,在SIM300模块的MMI应用中也无法实现适时、准确的打印进度显示,界面不够友好。
本文针对SIM300模块软件定时器精度较差而无法直接控制热敏打印头以及ROM空间不足的问题,提出一种采用电压比较器结合软件中断以及在程序中采用指令延时控制步进电机速度的方法,规避了SIM300模块的MMI定时器响应精度较差而无法做精确定时控制的问题;同时,系统采用硬件SPI复用的方法不但解决了SIM300模块ROM空间无法存储较大字库的问题,还有效的提高了字模芯片的读写速度、打印头数据的移位速度,从而使SIM300模块内置的资源得到充分的利用。
不失一般性,本文选用精芯JX-702-48R作为热敏打印头,该热敏打印头的点结构为:384点/行(1行的象素点为384个,即:48字节),水平方向的点密度为:8点/mm,垂直方向的行间距为:8点/mm。有效打印宽度为48mm。打印速度最大为60mm/秒。
二、 系统设计框图
打印头需要的硬件资源为:1个复用的SPI接口、4个普通输出口、1个普通输入口及1个中断输入口。当需要使用SPI接口时,首先选择对应设备的片选脚,禁止其它设备的片选脚,以避免干扰其它SPI设备。系统结构如下图所示:
三、 打印控制流程
当有用户打印需求时,首先将待打印的数据存储到打印字符缓存gbkBuf中,然后按行取出打印字符并取模、解析得到可直接打印的象素行数据存储到dotsBuf中,再以48字节为单位将dotsBuf中的数据送出到打印头缓存,启动加热直到中断检测到温度已经达到后停止加热,最后执行电机走步;依次循环 ,先完成dotsBuf中的数据打印,再完成gbkBuf中其它字符数据的打印。
四、 温度检测与中断处理流程
系统通过电压比较器LM393实现加热时间的控制。首先,设置LM393的参考电压为打印头温度为55度时对应的电压(该值可根据打印浓度的需要做一定的调整),当打印头的加热器加热并达到预定温度时,LM393比较结果将发生翻转输出,由此触发SIM300模块的中断流程,并由程序适时对加热器进行关断操作。
五、 步进电机控制流程
热敏打印头内部有1个二相四拍步进电机,用来控制走纸及走纸速度。SIMCOM模块通过其2路输出口模拟2路PWM输出,再经过LB1836M驱动,将输出的2路模拟PWM波形转换为4路,最后输出驱动步进电机。步进电机的走纸速度通过打印流程中的指令延时T1来控制。步进电机的脉冲控制周期如下图所示:
六、 打印头象素行数据的移位流程
SIMCOM模块通过SPI接口将象素行数据输出到热敏打印头的移位寄存器中,当1象素行的数据(48字节)全部移位到寄存器后,才开始启动加热印字,如下图所示:E1] Q}
jn0
七、 结论
微型热敏打印头对打印时序和温度要求都较高,一般均需要由独立的MCU进行适时的控制,而本设计采用电压比较器结合软件中断的方法解决了SIM300模块无法适时控制温度的问题;同时,在程序中采用指令延时控制步进电机速度的方法,规避了SIM300模块的MMI定时器响应精度较差而无法做精确定时控制的问题;另外,系统采用硬件SPI复用的方法不但解决了SIM300模块ROM空间无法存储较大字库的问题,还有效的提高了字模芯片的读写速度、打印头数据的移位速度,从而使SIM300模块内置的资源得到充分的利用,很大程度的降低了成本。
实验证明:以上的打印头控制方案在SIM300模块上可以得到理想的应用效果,同时,也可很好的满足MMI人机界面的友好显示。