热敏打印机驱动,大家都是用的什么方式控制走纸啊解决方法
发布时间:2010-06-14 17:30:23 文章来源:www.iduyao.cn 采编人员:星星草
热敏打印机驱动,大家都是用的什么方式控制走纸啊??
最近在做热敏打印机驱动,在走纸和加热这里有点不知所措了。我是按轮询方式的,大概步骤是:走纸→停→heat on→heat off→走纸……但是这样会导致步进电机发出的噪声很大,想过用中断方式控制走纸和加热,但是,打印机文档里面说如果所有点都加热的话会损坏打印头,最好分组加热。所以...正犯困呢。大家有做过热敏打印机驱动的,你们是怎么处理这个问题的啊??我看人家的热敏打印机几乎没噪声啊!!跪求高人解答!!
------解决方案--------------------
关注.
楼主是在什么方案(CPU), 什么操作系统上开发呀?
------解决方案--------------------
一定要中断控制走纸,否则速度不好控制。当然你也可以用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,自己设计控制方法就可以了。
另外,打印机的噪声不完全和走纸方式有关,会和机器外壳以及打印头的固定方式都有关系。当然,你走一下停一下的噪声大是肯定的。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
在驱动开发中出现 'struct' type redefinition 应该怎么办?? 大神们告诉小弟一下...
下面是我写的代码:
#pragma once
//**********...
-
大神们帮我看一下,我的代码错在什么地方? 加载成功,卸载就蓝屏了....
/*
*******************************************************...
-
sigma8653很罕见的问题
SOS!
sigma8653板子插上卡,上电后可以识别SD卡,然后软重启(reboot)就无法识别了!
奇怪的时,继续软重启一次又可...
-
Cancel自旋锁 起了什么作用?
发现IoCancelIrp 函数中
获取了Cancel自旋锁
设置了Irp->Cancel
调用了OnCancelIo函数
但是进入了On...
-
windows下 pnp设备的即插即用功能是怎么实现的?
看到 windows内核情景分析里说
加载驱动有三种方式 前两种是静态 分别是引导...
-
取消当前 IRP 执行的过程是怎样的?
#pragma code_seg("PAGE")
NTSTATUS MyWdmRead(PDEVICE_OBJECT DeviceObject,PIRP Irp)
{
...
-
vs2008中,link2001错误的问题,代码如下
vs2008中,link2001错误的问题,代码如下
#include <ntddk.h>
VOID OnUnload(IN PDRIVER_OBJ...
-
什么是内核缓冲区,用户缓冲区
比如网卡的内核缓冲区,那这个缓冲区是在pc内存还是在网卡的芯片上呢?
------解决方案---------------...
-
如果在一个函数中有提升IRQL的语句 是不是整个函数都不能放在分页内存中 ?
如果我在一个函数前使用了 #pragma code_seg("PAGE") ...
-
请教Linux下dm9000网卡驱动程序问题
应用程序网络编程是基于socket接口的,好像完全屏蔽了底层,不能像字符设备那样应用程序可以调用...