热敏打印机驱动,大家都是用的什么方式控制走纸啊??

hjpraul 2011-07-26 10:37:42
最近在做热敏打印机驱动,在走纸和加热这里有点不知所措了。我是按轮询方式的,大概步骤是:走纸→停→heat on→heat off→走纸……但是这样会导致步进电机发出的噪声很大,想过用中断方式控制走纸和加热,但是,打印机文档里面说如果所有点都加热的话会损坏打印头,最好分组加热。所以...正犯困呢。大家有做过热敏打印机驱动的,你们是怎么处理这个问题的啊??我看人家的热敏打印机几乎没噪声啊!!跪求高人解答!!
...全文
906 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cutemale 2011-10-11
  • 打赏
  • 举报
回复
skylkj 对打印机很熟啊,你们用的是什么CPU呢?
hjpraul 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shenzhentom 的回复:]
关注.

楼主是在什么方案(CPU), 什么操作系统上开发呀?
[/Quote]

51单片机单独控制打印机。
shenzhentom 2011-07-26
  • 打赏
  • 举报
回复
关注.

楼主是在什么方案(CPU), 什么操作系统上开发呀?
skylkj 2011-07-26
  • 打赏
  • 举报
回复
一定要中断控制走纸,否则速度不好控制。当然你也可以用pwm的方式,但cpu至少要有5路pwm输出。
打印头数据发送一般可以使用ssc的方式,但如果cpu不支持,只能自己用io口模拟发送

2英寸的打印头有384个加热点,需要发送48个字节的数据。一般来说,热敏打印头都是4相8步,走4步就是一个点行的距离。你需要在走一步的时间内完成整个点行的数据发送,这样在剩下3步的时间内才可以操作分组加热。 以203dpi的打印头为例,一个点行是0.125mm, 如果要达到60mm/s的速度,走纸中断需要设计成0.5ms。 你必须在0.5ms的时间内将48个字节发送给打印头。

我们都是把数据发送也放在中断里的,但必须注意的是,如果使用io口模拟来连续发送48个字节会让这个中断持续时间过长影响其他中断,比如串口(变相限制了串口波特率)。 我们的做法是将数据分成两部分,在该行打印之前发一半,该行启动的第一次走纸中断里发剩下的一半,然后在该行最后一步的走纸中断里发下一行的前一半。


分组加热很好实现,打印头提供几路STB,自己设计控制方法就可以了。

另外,打印机的噪声不完全和走纸方式有关,会和机器外壳以及打印头的固定方式都有关系。当然,你走一下停一下的噪声大是肯定的。

21,600

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧