一种通用的红外便携式打印机的硬件设计

in #steempress6 years ago (edited)

设计目的:

鉴于目前市场上的很多仪器仪表都配有测量结果红外输出的功能(如测量仪器,医疗设备,手持式终端,计算设备等),要想直观地显示并记录计算或测量结果,红外接收打印机是首选。而且红外接收打印机的诸多优点如外形小巧,可随身携带,使用方便也使得它的应用越来越广泛。

下面是硬件框图:
image

设计说明

一、打印机规格如表1:

项目规格
工作电压DC 9V, 500mA或 四节AA碱性电池
平均静态工作电流20~40mA
最大峰值电流(所有点启动)3.2A
最大接收距离4m(角度为0º)
水平接收角度±45º(距离为1.5m)
垂直接收角度+60º/-60º(距离为1.5m)
点阵设置(高度*宽度:点)8*166
字符点阵(高度*宽度:点)7*5
打印宽度/纸宽度(毫米)46/58
波特率2400bps
打印速度(行/秒)约1行/秒
DC,电池检测有。
自动关机功能有。(电池供电,空闲10分钟后)
打印功能可打印Roman 8字符,ECMA 94字符,展宽字符,下划线和图形。
接收字符编码格式应包含起始码﹑矫正码﹑资料码﹑结束码。其中矫正码为4位Hamming码,资料码为8位ASCII码。见图1。
适用范围字符信息与之相符的红外发送仪器。
工作温度0℃~50℃
工作湿度5%~95%相对湿度(40℃时)
存放温度-40℃~60℃

表1

image
图1 红外调制(发射)波形图:

image
图2 红外解调波形图(经过接收头解调)

二、便携式红外接收热敏打印机的硬件框图,如图3:

image
图3

红外调制信号通过IR MODULE解调后进入MCU,经内部处理后通过DRIVER MODULE驱动PRINTER HEAD打印输出。

各模块功能如下:

  • IR MODULE:
    将红外信号解调为方波,如图2。

  • MCU:
    打印机的中央处理器。

  • DRIVER:
    打印头消耗电流较大(启动一个DOT其消耗电流约为400mA),MCU无法直接驱动,需加驱动芯片。

  • PRINTER HEAD:
    信息的打印输出。

  • KEY:
    POWER ON/OFF键用于切换打印机电源的通断。PAPER FEED键用于打印机进纸,Contrast increasing与Contrast reducing用于调整打印字符的浓淡。

  • AT24C02:
    EEPROM用于存储字符浓淡对比度等级。

  • AUTO-SHUT OFF:
    用于电池供电时打印机空闲10分钟后自动关机。

  • POWER:
    向系统各模块供电,具体见设计内容。

参考资料

1)HP 82240B Infrared Printer manual
2)Datasheet of 78LE52 (Winbond), AT24C02 (Ateml), MC7660 (ON Semi),
MAX810TTR (ON Semi), ULN2003 (Texas Instruments), FM-6038LM (Kodenshi),
MTP SERIES THERMAL PRINTER MECHANISM TECHNICAL REFERENCE 39019-2352-01(Seiko)


设计内容

一.首先确定打印机的接受格式及应具有的功能。

与HP的红外传输编码格式(采用异步串行通讯,编码格式如图1所示)相适应,且能够打印Roman 8字符,ECMA 94字符,展宽字符,下划线和图形。

二.设计思路:

  • IR MODULE:

红外发射信号载波频率为32.7KHz,所以应选用带通滤波器中心频率f。(B.P.F Center Frequency)为32.7KHz。但32.7KHz的接收头需求困难,而目前市场上以中心频率37.9 KHz的接收模块最为普遍,如果要使用现成的接收模块, 37.9 KHz的接收模块最为方便。

因为37.9 KHz指的是带通滤波器中心频率,当带通滤波器频带宽度包括32.7KHz时,则可以使用37.9 KHz的接收头接收调制频率为32.7 KHz的信号。

先后试过Opto Semiconductors的SFH5111(32.7KHz),
VISHAY的TSOP1838SS3V(38KHz),
KODENSHI的FM-4038LM(37.9KHz),
PIC-28044TE2(32.7KHz)和
FM-6038LM(37.9KHz),
GOLD AIM的HIR-132LM(32.7KHz),
只有FM-6038LM适用。

其f。=37.9 KHz,工作电压4.5~5.5V,最大工作电流2.5mA。其余的接收头接收效果都不好,输出波形发生粘连(如图2虚线所示)。

为避免打印机打印时影响接收头电压(电池电压5V时打印,电压会跌至3V以下),这里采用MC7660对VCC1升压(两倍压)后再用5.1V稳压管稳压后对接收头单独供电。

参数确定:
VCC=4V时,接收头仍能正常工作,则确定R7最大值计算如下:
Rmax2.5mA+4.5V=4V2-1.4V-------Rmax=840

该5.1V稳压管功率为0.5W,则最大通过电流=0.5W0.7/5.1V=68mA(计算时稳压管功率一般放0.7~0.8的余量,这里取0.7)。则R7最小值计算如下:
Rmin=(VCCmax
2-1.4V-5.1V)/68 mA =81
经实验,R7取510时效果较佳。
image
图4


  • MCU:

因为发射速度较快而打印速度较慢,且要能够打印图形(一行内容最大时要166字节存贮空间,所以8951系列(128字节)不够用,需用8952系列(片内RAM 256字节)。

打印头打印时电流消耗很大(峰值电流大于3A),导致电源电压下跌较多(电池电压5V时会跌至3V以下),所以需选用低压芯片。

常用的52系列的低压芯片的生产厂家有Atmel和Winbond。考虑到采购因素,因此CPU选用Winbond的W78LE52。其工作电压2.4~5.5V, RAM为256字节,EPROM为8K。

在电池电压较低(5.1V左右)打印时,电压会跌至3V以下。为使CPU工作正常(最低工作电压为2.4V,低于2.4V时CPU会发生逻辑混乱),应使CPU在3V左右复位。经查,MAX810TTR符合要求。


  • DRIVER:

打印头的每一个DOT的驱动电流约为400mA, 无法用MCU直接驱动,所以需加驱动芯片。查到两种适用芯片,一种是SANYO的LB1246,驱动信号低电平有效;另一种是TI的ULN2003A,驱动信号高电平有效。为采购方便,选用ULN2003A。

因为ULN2003A的驱动信号为高电平有效,为避免CPU复位时引脚的高电平产生误驱动,需加一级反向缓冲(采用74HC14)。

因为ULN2003A为7通道,而打印头有8个DOT,所以还需外加Q3作为驱动,调节R5的大小可改变该通路(下划线)的浓淡。调节R5的大小使下划线的浓淡与其他DOT浓淡相仿。
image
图5


  • PRINTER HEAD:

因为打印机要能够打印文字和图形,所以必须选用具备这两种功能的打印头。经查,MTP201-G166为SEIKO的增强型产品,能够打印字符和图形。因此选用该型号。

打印头直流电机对外有5个接点,分别为M+(电机正电源),M-(电机负电源),TG信号(电机每旋转一周有两个周期正弦信号输出,用于打印点的定位),HS信号(即Home Switch信号,打印头在左边时为高电平,其余时间为低电平),GND(地)。为使CPU能够识别TG信号,应加一个Schmitt触发器对其进行整形,使之变为方波,C1用于隔离直流分量。

线路如图6所示(五个接点的具体使用方法见软件设计报告):
image
图6

电机驱动部分如图7所示,Q1导通时,电机运动,Q2导通时,电机停止。为了使Q1(或Q2)迅速导通,基极电阻取值较小(100欧姆,使基极电流较大)。考虑到线路和编程直观简便,Q1和Q2用一个I/O口驱动。而Q1和Q2不能同时导通(否则发生短路),因此这里Q2加一级反向(74HC74)。

但又因为R3(R4)较小,若直接用CPU的I/O口驱动,驱动口置为高电平后又被迅速拉低(电平值为0.7V+Ib*R3(R4), 而R3(R4)太小),无法驱动电机,因此Q1需加一级隔离缓冲(这里用74HC74)。相应地,Q2则需再加一级74HC74。

因为电机属感性负载,在制动时会产生反向电压,因此这里加D1用于Q2的反向电压保护。当反向电压超过VCC1 +0.7V时,D1导通,把电压控制在VCC1+0.7V左右。
image
图7


  • KEY:

为减轻编程的工作量,键盘的读取没有采取扫描的方式,而采用外部中断方式。PAPER FEED,Contrast increasing与Contrast reducing KEY 共用外部中断INT1,这三个键中任一键按下后都会进入中断,进入中断后再根据P1.5,P1.6,P1.7的状态辨别是哪一个键按下,再进行相应的处理。如图8所示:
image
图8
加一个上拉电阻R22使按键这部分线路更加可靠。


  • AT24C02:

为方便用户使用该打印机,即使在关机后,字符浓淡信息仍需要保存。因为关机后CPU断电,片内RAM无法掉电存储,因此要使用片外单元来存储字符浓淡信息。24系列的EEPROM采用I2C总线技术,其占用I/O口少,编程方便,所以选用。


  • AUTO-SHUT OFF:
    Q7用于DC与电池检测。当打印机使用DC适配器供电时,Q7导通,使CPU的P0.0引脚电平为低,否则P0.0电平为高。当CPU的P0.0引脚电平为高时,程序判定系统由电池供电。
    AUTO-SHUT OFF线路如图9。
    image
    图9

为节约电池电量,延长其使用寿命,当使用电池供电时,在打印机没接收而且不按键10分钟后,自动关断打印机电源(除了74HC74),此时消耗电流约为2uA。自动关机时CPU的P1.1置高电平,使Q6导通,通过74HC74的SD2复位使Q2置位,关断Q5。

开机后Q5导通,CPU复位,如果不加任何时间延迟,则P1.1的高电平会使Q6导通,从而影响74HC74使Q5立即截止,导致打印机无法开通。为了避免CPU复位时P1.1的高电平使Q6误导通,R15和C20,以及C19用于时间延迟来避开复位时的高电平。

D15用于关闭打印机后C20的快速放电。不加D15时,C20通过R27,R20放电,因为它们电阻比较大,而Q6的导通是由R15与R27+R20的分压电压决定的,不能减得太小,为使在关闭打印机后在较短的时间内能够重新开机,加上D5快速放电(Q5导通时D2为高电平,Q5截止时D2为低电平)。


  • POWER:

IR MODULE单独用MC7660单独供电,以确保电池电压在较大范围内波动时接收头电压正常。
DRIVER,PRINTER HEAD的工作电流很大(PRINTER HEAD的最大工作电流为3.2A),如果这些电流全经过电子开关Q5控制,则需选用大功率的开关管。这样使得生产成本提高,可靠性降低,设计不合理。

又因为DRIVER,PRINTER HEAD的静态电流几乎为0mA,可以不经过ON/OFF控制而直接连接VCC1,由VCC1供电。CPU,MAX810TTR,MC7660,LED用VCC供电,它们的工作电流较小(20~40mA),因此Q5可以选中功率的开关管。

而作为POWER ON/OFF的74HC74,必须连接VCC1。

LED是开/关机指示灯。LED亮时,表示打印机处于开通状态。

打印头的正常工作电压为5V,且打印时耗电较大,考虑到电池容量(工作寿命)及器件工作电压,用四节碱性电池供电为佳。用DC适配器时应与电池通路隔离,因此需加隔离二极管D13(用Schottky二极管,以降低二极管压降),D14(选用常用的1N4001)。因为D14压降约为1V左右,所以选用7806,DC适配器选用9V,500mA。

为避免电压跌幅过快过大(在电池电压较低打印时,打印头的每一个DOT的驱动电流约为400mA,因此电压会跌幅很大),在VCC1与地之间并一个2200uF的电容,布板时尽量靠近打印头。
具体线路如图10:
image
图10

W78LE52的休眠模式仍有2mA左右的静态电流,为延长电池工作寿命,在不使用打印机时,CPU不能采取休眠模式,应使其断电而减小功耗。所以采取了74HC74用于电源控制。74HC74始终连接在VCC1上,其静态工作电流约为2uA。如图11。
image
图11

74HC74的一个D触发器用做单稳态输出,用于去除按键抖动;另一个D触发器用作脉冲翻转输出,控制Q5的通断。改变R12与C28的值可调整单稳态(除抖动)时间。

POWER ON/OFF键应该在放开时有效(上升沿触发)。但使用Hitachi的74HC74时,POWER ON/OFF键在按下与放开时均有效(下降沿也会触发),会造成键按下去时开机,而键放开时又关机。因此单稳态时间定为2S,用以屏蔽按键放开时的又一次触发。若改为ON Semi的74HC74,则恢复POWER ON/OFF键在放开时有效。此时单稳态除抖动时间取10~50mS即可。

为降低整个系统中各块IC电源之间的串扰,在每一块IC的电源和地之间并一个0.1u的退耦电容。
图12为预留的232接口,以便于日后公司的其他测量仪表(有232信号输出)也可使用该打印机(只需改变接收程序)。D17~D20用于过压保护,R29和R30用于过流保护。
image
图12

以上,主要功能模块均已设计完成,经实际打样,样品功过状况良好,设计成功。


Posted from my blog with SteemPress : https://kissfirer.000webhostapp.com/%e4%b8%80%e7%a7%8d%e9%80%9a%e7%94%a8%e7%9a%84%e7%ba%a2%e5%a4%96%e4%be%bf%e6%90%ba%e5%bc%8f%e6%89%93%e5%8d%b0%e6%9c%ba%e7%9a%84%e7%a1%ac%e4%bb%b6%e8%ae%be%e8%ae%a1

Sort:  




This post has been voted on by the SteemSTEM curation team and voting trail in collaboration with @utopian-io and @curie.

If you appreciate the work we are doing then consider voting all three projects for witness by selecting stem.witness, utopian-io and curie!

For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

哗!
高大上的设计报告!

Posted using Partiko Android

帅哥/美女!欢迎在steemauto里设置跟赞 @cnbuddy 给整个cn区点赞倘若你想让我隐形,请回复“取消”。

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by steemall from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Hi @kissfirer!

Your post was upvoted by Utopian.io in cooperation with @steemstem - supporting knowledge, innovation and technological advancement on the Steem Blockchain.

Contribute to Open Source with utopian.io

Learn how to contribute on our website and join the new open source economy.

Want to chat? Join the Utopian Community on Discord https://discord.gg/h52nFrV

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 66945.54
ETH 3515.79
USDT 1.00
SBD 2.71