随着称重技术的日益进步,其周边配套设施也日益完善,尤其是打印机方面。因为很多时候用户都需要保存或打印称重记录,用以数据的核对和备份。而一般自带微打的仪表,都是配置针式微打,其换纸不方便、打印浓度深浅不一等缺点一直是用户提出意见较多的地方。而且针式微打还有噪音大、色带易耗损的缺点,都是其自身工作特性所决定的,不能彻底解决。针对以上情况,再结合市场调研,我们认为采用热敏打印的方式可以很好地解决这些问题。
首先,现在热敏打印机芯多采用易装纸结构,开盖、放纸、合盖瞬间完成,操作非常简单。即使遇到卡纸情况,普通用户也能自己解决,无需专业技术人员进行专门维护,具有良好的普及性。而且还有自带切纸刀的机芯,不仅方便用户,而且减少因撕纸方式不当而造成的机芯损坏,让机芯更经久耐用。
其次,热敏打印较针式打印分辨率高,普遍采用的是48mm打印384个点的方案,不仅可清晰打印出条形码,配合条码扫描仪使用外,还能打印出各种自定义图形,如公司的LOGO等,而且打印字体美观、速度快、噪音小,可广泛适用于各种场合。但热敏打印一个较大的缺点,就是打印的记录不能永久保存,一般在遮光条件下能保存1~3年,如使用特殊热敏纸也只能达到10年,而且只能在室内使用,不能与太阳光直接接触,限制了其使用环境。但瑕不掩瑜,热敏微打较针式微打的优点还是非常明显的。
以下是设计打印模块过程:
在元器件的选择方面,打印部分是最重要的环节。从理论上说,开发者可以自行设计用热敏头片、步进电机、温度传感器等组成一个打印机,但一般来说直接选用生产商的热敏打印机芯会较为方便,因其已内置了逻辑电路,接收控制芯片的操控,简化开发难度,而且从专业化生产角度来看,他们这些专门的生产商长时间对热敏打印的研究及积累的丰富经验是我们没有的,使用他们生产的专业热敏机芯会更安全、快捷、省心。而在众多品牌中,我们选用了APS的打印机芯ELM205o首先是因为它是易装纸结构,解决了用户换纸麻烦的问题;其次,它的打印宽度为48mm,纸宽54mm,尺寸和我们针式微打常用的EPSON的150II相同,具有良好的可替换性;再有它内置头片温度传感器、缺纸检测光耦,开发起来非常方便;而更重要的是它不仅具有良好的性价比,还能提供配套的嵌入式外壳,进一步降低开发难度,缩短开发周期。
在控制芯片的选择上,我们需要一块高速可配合打印机芯工作、体积小适合线路板设计、低成本的微控制器。而NXP的P89LPC934恰能满足我们的需求。LPC934采用了高性能的处理器结构,指令执行时间只需2~4个时钟周期,6倍于标准80C51器件,而且集成许多系统级功能,可大大减少元器件数目、电路板面积以及系统成本。例如其自带一个8位逐步逼近式模数转换模块(ADC1),可直接测量打印机芯的温度传感器变化;模拟比较器检测缺纸信号;FC总线接口或SPI串行外围接口与对应的字库芯片连接;看门狗定时器防止程序意外跑飞;内部数据EEPR0M让控制板保存重要参数;FLASH程序存储器提供在电路编程(ICP)、在系统编程(ISP)以及在应用中编程(IAP),方便程序下载调试。
打印机芯的步进电机是较难掌握的一部分。先参考下表了解步进电机的规格:
而要令步进电机启动或停止,时序必须符合下图要求:
在从停止状态(无励磁状态)起动时,输出了1个步骤的与停止步骤相同的相位后,转入打印步骤的序列;要停止步进电机时,对与打印步骤最后的相位相同的相位进行65ms励磁。所以建议采用专门的步进电机驱动芯片,如ROHM的BA6845FS或SANYO的LB1836。但需要注意的是,不是用了专门的驱动芯片就万事无忧,若长时间工作步进电机会因过热而引起烧毁,但它又无温度控制器,所以只能控制工作时间来进行调温。通过电机在不同工作电压有不同占空比的情况,我们测量出它的工作时间后,计算出其休息时间,保证温度保持正常,而且一次连续工作的时间不得大于30秒。然后还有步进电机起动时的控制。为了确保走动时的送纸力,还有避免打印机芯因老化造成的打印重叠现象,延长打印机芯的寿命,步进电机起动时需从慢到快,加速控制。以下为在5V工作状态下步进电机频率、步进的数值参考数据:
第一步6.67ms 第二步2.76ms
第三步2.12ms 第四步1.79m
第五步1.57ms 第六步1.42ms
第七步1.31ms 第八步1.22ms
第九步1.14ms 第十步1.08ms
第十一步1.03ms 第十二步0.98ms
第十三步0.94ms 第十四步0.91ms
第十五步0.88ms 第十六步0.85ms
第十七步0。83ms 以后匀速
在线路设计方面,很主要的一块就是让软件和硬件相结合完成对机芯头片电源的防护。因热敏打印是通过热敏头片的加热使热敏纸产生化学反应而变色的,所以一般机芯都配有加热头片的温度传感器,通过简单的AD转换就能读出片头温度,当温度超过额定温度时必须马上停止加热,待温度下降到正常值时再继续。虽说看似这样很简单,但是还有很多开发者因为头片的温度过高报废了不少的打印头。为什么?先从技术角度看他们的设计应无问题,只要AD转换正常,温度不可能过高。但是他们忽略了一个实际问题,就是如果微控制器受到外部干扰引起死机,而这时候又刚好是加热状态,那除非是切断电源,不然打印机芯肯定会报废了。所以针对这种情况,为了增加打印模块的可靠性,在打印机的头片电源还需加定时保护。通过一个单稳态触发器74HC123对控制片头电源的功率MOS-FET管进行操控,微控制器需要打印时给脉冲触发74HC123,这时候才能打开头片电源,定时到则自动关闭,即使控制芯片受干扰跑飞,也能强制关闭头片电源,有效提高了打印模块的自保护能力。
而检测是否空纸的线路较为简单,可参考下图:
VF是光电传感器的电源输入。一般用一个三极管来供电。三极管的基极通过一个几K的电阻接CPU的输出。由CPU决定什么时候检测打印机有无纸,由于光电传感器电流较大(近20mA)。所以在不检纸的时候应该将光电传感器电源关闭。Vout(Co)经一个l/2Vcc(Vdd)的比较器再接到CPU的输入端。
在通信接口方面,一般打印机都是设计成标准并口或RS232方式,但考虑标准并口需留给外接打印机使用,RS232留给上位机使用,为避免占用资源,而且作为外围元件的统一性,我们采用了SPI接口与仪表进行数据交换。SPI是一种全双工、高速、同步的通信总线,有两种操作模式:主模式和从模式。在主模式和从模式中均支持高达3Mbit/s的速率,还具有传输完成标志和写冲突标志保护。在与仪表的通信中,我们设计把仪表作为主模式,打印模块作为从模式,每次都是由仪表发起通信连接,打印模块在正常情况下返回正确应答,当打印模块接收缓冲区满或者其他原因返回错误应答,仪表收到后先进行延时重发,再判断是否岀错,如果继续岀错,则提示使用者打印模块岀现问题。
文章来源于网络转载,侵删