CN1217502A - 对打印头驱动参数的控制 - Google Patents

对打印头驱动参数的控制 Download PDF

Info

Publication number
CN1217502A
CN1217502A CN98122480A CN98122480A CN1217502A CN 1217502 A CN1217502 A CN 1217502A CN 98122480 A CN98122480 A CN 98122480A CN 98122480 A CN98122480 A CN 98122480A CN 1217502 A CN1217502 A CN 1217502A
Authority
CN
China
Prior art keywords
printer
order
printhead
print
printing equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN98122480A
Other languages
English (en)
Other versions
CN1207656C (zh
Inventor
雅史鎌田
明彦锄柄
和幸桝本
弘光平林
顕季山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Business Machines Inc
Original Assignee
Canon Business Machines Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Business Machines Inc filed Critical Canon Business Machines Inc
Publication of CN1217502A publication Critical patent/CN1217502A/zh
Application granted granted Critical
Publication of CN1207656C publication Critical patent/CN1207656C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/015Ink jet characterised by the jet generation process
    • B41J2/04Ink jet characterised by the jet generation process generating single droplets or particles on demand
    • B41J2/045Ink jet characterised by the jet generation process generating single droplets or particles on demand by pressure, e.g. electromechanical transducers
    • B41J2/04501Control methods or devices therefor, e.g. driver circuits, control circuits
    • B41J2/04528Control methods or devices therefor, e.g. driver circuits, control circuits aiming at warming up the head
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41BMACHINES OR ACCESSORIES FOR MAKING, SETTING, OR DISTRIBUTING TYPE; TYPE; PHOTOGRAPHIC OR PHOTOELECTRIC COMPOSING DEVICES
    • B41B15/00Photographic composing machines with movable character carriers for composing lines of characters prior to photography
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/015Ink jet characterised by the jet generation process
    • B41J2/04Ink jet characterised by the jet generation process generating single droplets or particles on demand
    • B41J2/045Ink jet characterised by the jet generation process generating single droplets or particles on demand by pressure, e.g. electromechanical transducers
    • B41J2/04501Control methods or devices therefor, e.g. driver circuits, control circuits
    • B41J2/0454Control methods or devices therefor, e.g. driver circuits, control circuits involving calculation of temperature
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/015Ink jet characterised by the jet generation process
    • B41J2/04Ink jet characterised by the jet generation process generating single droplets or particles on demand
    • B41J2/045Ink jet characterised by the jet generation process generating single droplets or particles on demand by pressure, e.g. electromechanical transducers
    • B41J2/04501Control methods or devices therefor, e.g. driver circuits, control circuits
    • B41J2/04563Control methods or devices therefor, e.g. driver circuits, control circuits detecting head temperature; Ink temperature
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/015Ink jet characterised by the jet generation process
    • B41J2/04Ink jet characterised by the jet generation process generating single droplets or particles on demand
    • B41J2/045Ink jet characterised by the jet generation process generating single droplets or particles on demand by pressure, e.g. electromechanical transducers
    • B41J2/04501Control methods or devices therefor, e.g. driver circuits, control circuits
    • B41J2/0458Control methods or devices therefor, e.g. driver circuits, control circuits controlling heads based on heating elements forming bubbles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/015Ink jet characterised by the jet generation process
    • B41J2/04Ink jet characterised by the jet generation process generating single droplets or particles on demand
    • B41J2/045Ink jet characterised by the jet generation process generating single droplets or particles on demand by pressure, e.g. electromechanical transducers
    • B41J2/04501Control methods or devices therefor, e.g. driver circuits, control circuits
    • B41J2/04591Width of the driving signal being adjusted
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
    • B41J2/01Ink jet
    • B41J2/015Ink jet characterised by the jet generation process
    • B41J2/04Ink jet characterised by the jet generation process generating single droplets or particles on demand
    • B41J2/045Ink jet characterised by the jet generation process generating single droplets or particles on demand by pressure, e.g. electromechanical transducers
    • B41J2/04501Control methods or devices therefor, e.g. driver circuits, control circuits
    • B41J2/04598Pre-pulse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/10Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by matrix printers

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Ink Jet (AREA)
  • Character Spaces And Line Spaces In Printers (AREA)
  • Dot-Matrix Printers And Others (AREA)

Abstract

在具有至少一个可拆下打印装置的打印机中的打印机控制器把代表当前安装的可拆下打印装置的特性的数据送到一个主处理器,并接收来自主处理器的命令。响应接收的命令,打印机控制器根据相连的打印装置的特性控制打印机功能。接收的命令包括与相连的打印装置的特性相应的打印头驱动参数。该打印头驱动参数可包括修正在制造时装载到打印机中的预存储打印头驱动参数的值的参数,或者打印头驱动参数可包括为实际打印中打印机的使用而寄存的实际参数值。

Description

对打印头驱动参数的控制
本发明涉及一种打印机中的打印头驱动参数的控制,该打印机带有能够与具有不同的物理特性的打印盒相互换的可拆下打印盒。
在某些传统的打印系统中,打印机具有单个的不可拆下的打印头装置,因而所要执行的多数打印功能是固定的。其他传统的打印系统利用了一种固定的多头结构,因而打印参数是不变的。由于打印头结构是固定的,提供对打印头驱动参数的控制是比较容易和节约的。
然而,诸如喷墨或气泡喷射型的串行打印机现在都具有多个可拆下的打印头,因而头的结构是互换的且打印机功能随着打印机上当前所安装的打印头的类型而改变。
如果多个可拆下打印头被安装到打印机上,打印机控制根据当前所安装的打印头的类型而进行;因而当当前的打印头结构被不同的打印头结构所取代时,控制也改变。其结果,需要对随着打印数据的产生和存储而变化很大的打印机功能进行控制,并控制打印头的运动和用于实现图象和文字打印的信号。例如,把黑色的墨打印头改变成彩色打印头要求不同的打印数据、不同的打印数据存储、不同的传送到打印头的信号、不同的打印头操作表等等,从而使打印机中的打印机控制更为复杂且打印机变得更为昂贵。另外,当打印头技术和打印要求改变时,对打印机进行修正以把新型的打印头连接到其上,是困难而昂贵的。因此,需要一种打印控制设置,它使得能够在不受打印机的结构变得复杂的情况下对打印机上的可拆下打印头盒进行改变。而且,当新的盒-它具有新的墨或新的头(例如喷嘴大小、喷嘴设置或加热方法不同于当前的打印机所用的头)-得到开发时,需要在不改变打印机的硬件的情况下对新的盒进行控制。
本发明的目的,是提供一种打印控制,它克服了现有技术系统中的前述缺点,并提供了用于不同的打印模式的各种打印装置结构。
本发明的另一目的,是提供用于打印机的灵活硬件。
根据本发明的一个方面,在一种具有至少一个可拆下打印装置的打印机中的一种打印控制器把表示当前安装的可拆下打印装置的特性的数据送到一种主处理器,并从该主处理器接收命令。响应于接收的命令,打印控制器根据相连的打印装置的特性控制打印机功能。接收的命令包括与相连的打印装置的特性相应的打印头驱动参数。
根据本发明的另一方面,主处理器包括用于具有至少一个可拆下打印装置的打印机的打印机驱动程序。该打印机驱动程序从打印机接收表示当前连接的打印装置的特性的数据,并把命令送到打印机以根据连接的打印装置的特性控制打印功能。这些命令包括与连接的打印装置的特性相应的打印头驱动参数。
根据本发明的又一个方面,打印控制器把表示打印机存储器的存储区的数据送到两个打印机驱动器,以用于产生命令。
根据本发明的再一个方面,当打印机与主处理器在其接通状态下连接且可拆下打印装置改变时,可拆下打印装置的的特性被打印机送到打印机驱动器,
根据本发明的又一个方面,打印机是这样的打印机,即其连接有多个打印头且命令被从打印机驱动程序送来,以根据连接的打印头的打印头驱动特性在选定的打印模式下控制打印。
借助前述设置,具有多个可拆下打印头的打印机的控制可根据与打印机相连的打印头结构而得到改变,而不需要具有复杂结构的打印机,且不同类型的打印头结构可容易地得到提供,以利用简单而经济的打印机结构来进行各种打印模式。
根据本发明的另一方面,具有至少一个可拆下打印装置的打印机中的一个打印机控制器接收来自一个外部装置的影响打印头驱动参数的命令。响应于接收的命令,打印机控制器根据至少一个可拆下打印装置的特性控制打印机的功能。这些命令能够定义当新的盒(它现在可被用于打印机而不必改变硬件)出现时适合于控制功能的参数。
以上提供了简要的描述,以使得能够迅速地理解本发明的性质。通过以下结合附图对本发明的最佳实施例所进行的一定详细描述,可以获得对本发明的更为完整的理解。
图1显示了与本发明的打印机一起采用的计算设备的立体图。
图2是图1显示的打印机的正视立体图。
图3是图1的打印机的后视立体图。
图4是图1的打印机的正视切去立体图。
图5是图1的打印机的后视切去立体图。
图6A和6B分别显示了与本发明结合使用的盒接收部分的正视和后视图。
图7显示了用于本发明的可随意处理的墨盒的一个例子。
图7A和7B显示了用于本发明的第二类型的墨盒的一个例子。
图8显示了用于本发明的打印头的头结构的顶视图。
图9显示了本发明的打印机打印的点结构。
图10是框图,显示了与本发明的打印机接口的主处理器的硬件结构。
图11显示了图10显示的打印机和主处理器的功能框图。
图12是框图,显示了图10显示的选通电路阵列的内部结构。
图13显示了本发明的打印机的存储器结构。
图14显示了本发明的打印机的操作的总体系统流程图。
图15是流程图,显示了打印机响应于本发明的打印机的用户操作。
图16是流程图,显示了根据本发明的打印控制流程。
图17是流程图,显示了本发明中的扫描参数的设定。
图18是一个表,显示了打印期间的命令流。
图19是流程图,显示了用于本发明的打印机的硬加电序列。
图20是流程图,显示了本发明的打印机的软加电序列。
图21是流程图,显示了本发明的打印机的软去电序列。
图22显示了包括一个Centronics接口任务的各种任务的循环处理程序。
图23是流程图,显示了根据用于控制定时操作的循环处理机的控制器定时器控制。
图24显示了图1显示的打印机的详细立体图,其中该打印机的排放托盘为操作而进行了设定。
图25显示了图24的排放托盘的详细立体图。
图25A是包括在图25中的排放托盘上采用的活板上的斜削边缘的一个例子的立体图。
图25B和25C显示了图25A显示的活板,用于说明该斜削边缘。
图26显示了图24的排放托盘上的活板的连接的详细立体图。
图27显示了图24的排放托盘的另一详细立体图。
图28显示了图1的打印机的底视图。
图29A至29D显示了图24的排放托盘的操作。
图29E是本发明的纸排放托盘的第二实施例的立体图。
图30A和30B显示了本发明的打印机中的盒接收部分的操作。
图31A和31B显示了安装在图30A和30B的盒接收部分中的墨盒。
图32显示了用在图1的打印机上的墨清洗装置的结构。
图33A和33B显示了安装在图1的打印机中的各个打印头的墨清洗。
图34是流程图,显示了主处理器中的打印头命令数据的补偿。
图35是流程图,显示了根据本发明进行的时基清洗。
图36是流程图,显示了本发明的打印机保持推移的时间排定的步骤。
图37、38、39和40是流程图,显示了本发明的打印机进行的自动清洗序列。
图41是流程图,显示了根据本发明的墨盒头更换。
图42显示了当纸被装载到本发明的打印机上和开始自动清洗序列时执行的步骤。
图43是时序图,显示了根据本发明的清洗方案。
图43A是流程图,用于描述打印机喷嘴驱动时间的控制。
图43B显示了存储在打印机中的加热系数表和驱动时间表的分解图。
图43C是流程图,用于描述喷嘴发射序列和滴大小的控制。
图43D至43F显示了各种打印条件下头使用与打印缓存器使用之间的相关性。
图43G显示了各种打印条件下的喷嘴加热序列。
图43-1A至43-1E显示了从主处理器至打印机中的打印缓存器的数据传送。
图43-2A至43-2E显示了一个向前扫描之后的一个向后扫描过程中的打印数据传送。
图43-3A至图43-3F显示了单个打印头在打印介质上的向前扫描期间打印数据的传送。
图43-4A至图43-4F显示了本发明的替换实施例中的向前扫描期间的打印数据传送。
图43-5A至图43-5F显示了在已经进行了向前扫描之后的向后扫描期间的打印数据传送。
图43-6A至图43-6F显示了单个的打印头的向前扫描期间的打印数据传送。
图43-7A至图43-7L显示了在一对打印头的向前方向的打印数据传送。
图44A显示了一对打印头的向前方向的打印数据传送。
图44B显示了一对打印头的向后方向的打印数据传送。
图44C至44M是流程图,显示了从主处理器中的打印数据存储器至打印机的打印缓存器的打印数据传送。
图44N显示了两个框图,显示了打印系统中的移位缓存器技术的可能应用。
图45是示意图,用于说明各个不同的头的不同分辨率的打印输出的好处。
图45A是流程图,显示了主处理器中的打印机驱动器执行的处理步骤,以便独立地控制各个打印头的打印分辨率,并命令打印输出。
图46显示了与本发明的打印机相关的用户接口。
图46A是示意图,用于说明以不同分辨率的打印头进行打印的好处。
图46B是流程图,显示了主处理器中的打印机驱动器执行的处理步骤,以便控制打印头的打印分辨率,并命令打印输出。
图47是流程图,显示了打印机进行的用于独立打印分辨率设定的处理步骤。
图48是流程图,用于描述墨选择的方法。
图49显示了用于确定黑目标象素是否位于不同颜色的区中的一个区。
图49A是流程图,显示了CMYK黑墨或颜料黑墨的选择。
图50A、50B和50C显示了黑区与不同颜色区之间边界的相邻区的打印。
图51是流程图,用于描述打印黑区与不同颜色区之间边界的相邻区的方法。
图52是流程图,用于描述打印黑区与不同颜色区之间边界的相邻区的方法。
图53A、53B和53C显示了用于根据黑区与不同颜色区之间边界的相邻区的打印数据打印数据的方法。
图54显示了根据本发明的一个实施例的颜色处理。
图54A和54B显示了根据本发明的一个实施例的象素的二分。
最佳实施例的描述被分成以下的部分:
1.0机械
   1.1结构
   1.2功能
       1.2.1手动清洗
       1.2.2盒更换
   1.3墨盒
   1.4打印头结构
   1.5打印模式
2.0电气
   2.1系统结构
   2.2系统功能
   2.3控制逻辑
   2.4一般操作
3.0打印机软件的结构
   3.1操作系统
   3.2初始化
   3.3任务
   3.4中断处理程序
   3.5循环处理程序
   3.6往来于主处理器的命令
      3.6.1控制命令
      3.6.2设定命令
      3.6.3维护命令
   3.7往来于打印机引擎的命令
4.0纸排放托盘
   4.1第一实施例
   4.2第二实施例
5.0墨清洗装置
6.0存储打印机状况参数
7.0计划打印头的清洗
   7.1清洗方案处理
   7.2自动清洗处理
   7.3打印头的清洗
8.0设定和修正打印头驱动参数
9.0打印缓存器操作
   9.1单个打印缓存器
   9.2缓存器控制的一般描述
10.0不同分辨率的多头打印
11.0不同墨的选择
   11.1CMYK黑或颜料黑的选择
   11.2边界区打印
   11.3用不同墨以不同分辨率的打印
1.0机械
本部分描述含有本发明的打印机的机械设计和功能。
1.1结构
图1显示了与本发明结合使用的计算设备的外形。计算设备20包括主处理器23。主处理器23包括一个个人计算机(以下称为PC),较好地是具有窗口环境(例如微软的Windows95)的IBMOPC兼容机。与计算设备20一起设置的有包括彩色监视器等的显示屏22、用于输入文本数据和用户命令的键盘26、以及指点装置27。指点装置27较好地是包括用于指点和操作显示在显示屏22上的物体的鼠标器。
计算设备20包括一个计算机可读取的存储介质,诸如计算机硬盘25,以及软盘接口24。软盘接口24提供了使计算设备20能够存取诸如存储在软盘上的数据、应用程序等的信息的装置。计算设备20可设置有一个类似的CD-ROM接口(未显示),通过它计算设备20能够存取存储在CD-ROM上的信息。
磁盘25,除了其他的功能之外,存储使主处理器23产生文件、操纵这些文件并把这些文件存储在盘25上、把这些文件中的数据经过显示屏22提供给操作者以及借助打印机30打印这些文件中的数据的应用程序。磁盘25还存储一个操作系统,该系统较好地是诸如Windows95的窗口操作系统。设备驱动程序也被存储在磁盘25中。至少一个这些驱动程序包括一个打印机驱动程序,它提供了至打印机30中的固件的软件接口。以下更详细地描述主处理器23与打印机30之间的数据交换。
在本发明的最佳实施例中,打印机30是多头的串行打印机。因此,虽然在此描述的本发明不限于采用这种打印机,但将结合这种打印机对本发明进行描述。
在此方面,图2和3分别显示了打印机30的关闭状态下的正视和后视立体图。如这些图中所示,打印机30包括外壳31、检修门32、自动馈送器34、自动馈送调节器36、手动馈送器37、手动馈送调节器39、介质排放端口40、排放托盘41、托盘接收部分42、指示灯43、电源按钮44、恢复按钮46、电源47、电源线49、以及并行端口连接器50。
外壳31宽约498毫米且深约271毫米且高约219毫米,且容纳了打印机30的内部装置,包括以下描述的在记录介质上打印图象的打印引擎。外壳31上包括有检修门32。检修门32是可以手动打开和关闭的,从而允许用户对打印机30的内部装置进行检修,尤其是能够对安装在打印机30内部的打印盒进行检修。为此,打印机30还包括一个检测器(未显示),它检测检修门32的打开和关闭。一旦检测到检修门32已经被打开,以可释放的方式把盒保持在打印机30内的盒接收部分被移动到与打开的检修门32相应的一个位置。这种特征的细节在下面给出。
在检修门32的顶部设置有一个前面板,它包括指示灯43、电源按钮44和恢复按钮46。电源按钮44是一个控制器,借助它用户能够启动和关闭打印机30。然而,电源按钮44也可具有其他的功能。例如,通过使电源按钮44保持被按下直到打印机30上的一个扬声器(未显示)发出诸如蜂鸣的声音,可以选择一种测试打印功能。响应于这些测试打印功能,打印机30打印出一个测试图案。
恢复按钮46提供了一种控制,借助它操作者能够在发生了错误之后恢复打印。另外,恢复按钮46可被用来激活其他的功能。例如,通过使恢复按钮46保持被按下直到打印机30上的一个扬声器发出蜂鸣声,可以激活一种打印头清洗功能。
在此方面,打印机30能够提供各种连续的蜂鸣声。这些声音每一个都包括了不同类型的错误,诸如无纸、卡纸等等。
指示灯43由单个的灯管、绿发光二极管(以下称为LED)和一个橙色LED构成。指示灯43给用户提供了对打印机30的操作状态的指示。具体地,当指示灯43灭时,表示打印机30关闭。当指示灯43发出绿光时(即绿LED被激活时),表示打印机30电源接通并可准备打印。当指示灯43为绿并闪烁时,表示打印机的操作状态,诸如打印机当前处于电源接通。
指示灯43还可借助橙色LED发出橙色光。当指示灯43发出橙色光时,表示打印机30中发生了可恢复的错误,即操作者呼叫错误。可恢复错误包括无纸、卡纸、安装在打印机30中的缺陷盒、盒正在被更换等等。可以根据打印机30的扬声器发出的蜂鸣声的数目来区分可恢复错误的类型。通过在指示LED持续发橙色光时对这些蜂鸣声进行计数,用户能够确定发生了哪一种错误并采取相应的行动。
当指示灯43为橙色且闪烁时,表示打印机30发生了严重的错误,即维修呼叫错误。可以仅通过对橙色光闪烁的次数计数来区分严重错误的类型。
如图2和3所示,自动馈送器34也被包括在打印机30的外壳31中。自动馈送器34限定了打印机30的一个介质馈送部分。即,自动馈送器34存储打印机30在其上打印图象的打印介质。在此方面,打印机30能够在各种记录介质上打印图象。这些类型包括但不限于普通纸、高分辨率纸、透明片、光纸、光膜、背面打印膜、织物、T恤衫转印物、气泡喷射纸、贺卡、手册纸、标签纸、厚纸等。
自动馈送器34能够容纳约13毫米厚的一叠记录介质。这意味着自动馈送器34能够保持约130张密度为64g/m2的纸或约15个信封。在打印期间,叠置在自动馈送器34中的各个纸从自动馈送器34得到馈送而通过打印机30。具体地,打印机30中的辊(在下面描述)把各个介质从自动馈送器34拉入打印机30中。这些各个介质随后沿着一个J型通路被馈送过这些辊而到达图2中显示的排放端口40。
自动馈送器34包括自动馈送调节器36。自动馈送调节器36横向运动,以在自动馈送器34中容纳不同的介质尺寸。自动馈送器34还包括支撑部分55,它可延伸以支撑保持在自动馈送器34中的记录介质。当不使用时,支撑部分55被存放在自动馈送器34中的一个开口中,如图2所示。延伸的支撑部分55的一个例子在图24中给出。
各个纸也经过图3显示的手动馈送器37而通过打印机30,手动馈送器37也限定了打印机30的一个介质馈送部分。在最佳实施例中,手动馈送器37可容纳具有至少64g/m2与550g/m2之间的密度并具有0.8毫米的厚度的介质。通过手动馈送器37送进的纸通过打印机30中的辊而被馈送到排放端口40。与自动馈送器34的情况一样,手动馈送器37包括手动馈送调节器39。通过横向滑动手动馈送调节器39,用户能够改变手动馈送器37能够容纳的介质。
利用手动馈送器37和自动馈送器34,打印机30能够在具有不同尺寸的介质上打印图象。这些尺寸包括但不限于信件、法律、A4、A3、A5、B4、B5、小报、10号信封、DL信封、标签、宽标签、和LTRfull bleed。用户定义的记录介质也可被用于打印机30。
如上所述,介质被送过打印机30并从排放端口40排放而进入排放托盘41。如在部分4.0中所更详细显示的,排放托盘41包括由弹簧偏置的活板-它支撑从打印机30排放的介质,且它在更多的介质堆积在其上时向下移动。当不使用时,排放托盘41被存放在打印机30的托盘接收部分42中,如图2所示。
电源线49把打印机30与外部交流电源相连。电源47被用来转换来自外部电源的交流电,并把转换的电力提供给打印机30。并行端口50把打印机30连接到主处理器23。并行端口50较好地是包括一个IEEE1284双向端口,通过它可在打印机30与主处理器23之间传送诸如以下在部分3.0中描述的数据和命令。
图4和5分别显示了打印机30的后和正视切去立体图。如图5所示,打印机30包括辊60,用于把介质从自动馈送器34或手动馈送器37通过打印机30而传送到介质排放端口40。辊60在介质传送期间沿着逆时针方向转动,如图5中的箭头60a所示。
行馈送电机61控制辊60的转动。行馈送电机61包括一个96阶的2-2相脉冲电机并响应于从电路板62接收的命令而受到控制。行馈送电机61由具有四级电流控制的电机驱动器驱动。
在最佳实施例中,行馈送电机61能够使辊60转动,从而使记录介质以120毫米/秒的速度被送过打印机30。在打印机30的操作的主要模式下,行馈送分辨率是(1/720)英寸/脉冲(2-2相),且在1440dpi模式下,线分辨率为(1/1440)英寸/脉冲(1-2相)。打印模式在下面得到更详细的描述。
如图4所示,打印机30是一个双盒打印机,它利用两个打印头(即每个盒一个头)来打印图象。具体地,这些盒由盒接收部分64a和64b并排地保持,从而使盒上的各个打印头彼此水平地偏离。图5显示的滑架电机66,响应于从电路板62接收的命令,控制盒接收部分64a和64b的运动。具体地,滑架电机66控制带67的运动,后者又控制盒接收部分64a和64b沿着滑架69的运动。在此方面,滑架电机66提供了带67的双向运动,因而提供了盒接收部分64a和64b的双向运动。借助这种特征,打印机30能够从右向左和从左向右打印图象。
滑架电机66包括一个96阶2-2相脉冲电机-它具有(9/360)英寸/脉冲的滑架分辨率。滑架电机66由一个具有四级电流控制的电机驱动器驱动。当打印机30在360dpi模式下进行打印时,滑架电机66得到驱动以使盒接收部分64a和64b以459.32毫米/秒(10KHz)的缺省速度沿着滑架69移动。相比之下,当打印机30以720dpi模式打印时,滑架电机66得到驱动而使盒接收部分64a和64b沿着滑架69以229.66毫米/秒(5.0kHz)的缺省速度移动。打印速度也可减小到3.26kHz,如在部分3.6.2中描述的。
图6A是图4的盒接收部分64b的详细立体图。盒接收部分64a和64b在结构上是相同的,只是只在盒接收部分64b上包括有自动对准(AA)检测器。因此,为了简化,在此只详细描述盒接收部分64b。
盒接收部分64b被用来保持打印机30中的墨盒(它包括一个打印头并能够包括用于存储墨的一或多个可拆下墨罐)。在此方面,图7A和7B显示了可装在盒接收部分64b中(见图4)的墨盒300b的结构。如图7A和7B所示,墨盒300b包括打印头80,墨罐83、盒电路触头81、和孔90。此时,应该注意的是,本发明也可采用不包含可拆下墨罐而是把所有墨存储在内部的墨盒。
墨罐83可从墨盒300b上拆下并存储打印机30用来打印图象的墨液。具体地墨罐83被插入墨盒300b中并可沿着箭头85的方向被拉出而卸下,如图7B所示。墨罐83可存储彩色(例如青、品红和黄)墨液和/或黑墨液,如下面所详细描述的。打印头80包括多个喷嘴(未显示),这些喷嘴在打印期间从墨罐83排放墨液。盒电路触头81被打印机30用来触发墨盒清洗,如下面所述。盒孔90与盒接收部分64b上的销93匹配,以使墨盒300b保持定位。
再看图6A,盒接收部分64b包括在其底部的开口79。安装的盒的一个打印头,诸如打印头80,通过开口79伸出。借助这种结构,盒的打印头能够与打印机30中的记录介质接触。盒接收部分64b还包括杆72和舱73。如以下的部分5.0中所详细描述的,杆72相对于存储在盒接收部分64b中的墨盒的墨罐作枢轴运动,从而使杆72在墨罐的至少一部分上延伸,并沿着离开墨罐的方向作枢轴运动从而允许用户对墨罐进行检查。
舱73把墨盒(包括打印头和墨罐)保持在盒接收部分64b中并能够响应于杆72的枢轴运动在盒接收部分64b中作横向运动。在此横运动期间,舱73上的指282与静止部分502上的套284相滑动接触。借助这种横向运动,盒电路触头,诸如墨盒300b上的盒电路触头81,与盒接收部分64b上的一个电路触头即装置电路触头71相接触和分离。该过程被用来输出一个信号,该信号促成了打印头的清洗,并将在下面得到详细描述。
图6B显示了盒接收部分64b的结构的后视图。图6B显示了舱73、杆72、后件501以及静止部分502(用双点/划线表示)的互连。在此方面,杆72包括指507-它与后件501上的相应的孔504相连。借助这种设置,当杆72沿着图6B所示的箭头A1的方向向下枢轴运动时,后件501沿着图6B中的箭头A2的方向向上运动。相反地,当杆72沿着箭头B1的方向向上作枢轴运动时,后件501沿着箭头B2的方向向下运动。后件501的这种向上和下的运动控制了所述舱73的横向运动。
为此,后件501包括凸轮表面509-它当杆/后部件组件被安装到静止部分502上时与弹簧加载的推杆510相互作用。具体地,该杆/后部件组件经过指508和相应的孔506而与静止部分502相连。当以这种方式相连时,后件501的凸轮表面509与舱73背面的弹簧加载推杆510相接触。这种连接使得舱73在杆72作枢轴运动时作横向运动。
更具体地说,由于凸轮表面509包括具有角度的侧面511和直的侧面512,当凸轮表面509向上运动(即当杆72沿着箭头A1的方向向着舱73作枢轴运动时,使后件501因而凸轮表面509沿着箭头A2的方向向上运动),推杆510沿着箭头A4的方向而受到凸轮表面509的带角度的侧面511的推动。这种运动使舱73沿着图6B显示的箭头A3的方向移动。
相反地,当凸轮表面向下运动时(即当杆72沿着箭头B1的方向作离开舱73的枢轴运动,使后件501从而使凸轮表面509沿着箭头B2的方向向下运动时),推杆510不再与带角度的侧面511相接触。相反地,凸轮表面509的运动使得推杆510与直的侧面512相对应。在此位置,弹簧513-它被设置在舱73之下并相对于静止部分502对舱73施力,使舱73沿着图6的箭头B3的方向移动。
如图6B所示,杆72还包括凸缘287-它与舱/静止部分组件上的台肩286相接触。如下面所详细描述的,这种接触减小了杆72与盒接收部分64b中的墨罐和/或盒相接触的机会。
如图6A所示,盒接收部分64b包括自动对准检测器82。自动对准检测器82检测打印机30形成的点模式的位置。这种信息被用来对准打印机30上的所有打印头。与盒接收部分64a和64b相连的,还有一个初始位置检测器(未显示),它被用来检测盒接收部分64a和64b何时处于相对于滑架69的初始位置。初始位置的该位置和意义将在下面得到详细描述。
再看图4,打印机30包括刮片84a和84b以及墨清洗装置86。墨清洗装置86被设置在初始位置87并包括一个转动泵(未显示)和打印头连接盖88a和88b。打印头连接盖,在打印头清洗期间和其他时间-诸如当打印机30被关断时,与安装在盒接收部分64a和64b中的盒的打印头分别相连,从而保护打印头。
行馈送电机61驱动墨清洗装置86的转动泵,以从与打印头连接盖88a相连的打印头中抽吸过量的墨。如在部分5.0中所详细描述的,墨液只从用户指定的一或多个盒中得到抽吸。用户指定将在下面得到详细描述。
刮片84a和84b可包括由滑架电机66驱动的刮片等等,以刮去盒打印头上的过量的墨。具体地,刮片84a和84b在预定的条件发生之后得到提升,以与打印头接触。例如,刮片84a和84b可在打印头打印了预定数目的点之后得到提升。
1.2功能
打印机30包括各种可经过检修门32和打印机30的前面板而获得的功能和特征。以下是对这些功能的描述。
1.2.1手动清洗
打印机30包括手动清洗功能,该功能可经过其前面板而得到启动。具体地,手动清洗是通过按下恢复按钮46直到打印机30发出一个两秒长的蜂鸣声而得到启动。为了表示手动清洗已经得到启动,指示灯43闪烁。在打印过程中的任何介质随后被从排放端口40排放。墨清洗装置86随后清洗-例如抽吸和刮除-存储在盒接收部分64a和64b中的墨盒的打印头的墨液,且抽吸和刮下的墨液被存储在一个废墨存储区。随后,指示灯43停止闪烁并在没有错误发生的情况下被点亮。在发生废墨错误(例如废墨存储区快满)的情况下,指示灯43被橙色LED照亮,且打印机30将发出六声蜂鸣声。
1.2.2盒更换。
打印机30在检修门32打开时进入盒更换模式,除非发生以下情况:打印机30被关断,记录介质被从一个纸馈送器送进,打印机30正在打印或已经接收到了来自主处理器23的数据,发生了无纸错误或卡纸,打印机30中的打印头的温度太高,或者发生了严重错误。
在此方面,盒更换模式通常是在安装整个墨盒或墨罐的打印机设定时进入,或者在打印机的寿命期间为更换用过的或有缺陷的盒或墨罐时进入。在打印机初始设定期间,在盒接收部分64b或64a之一中没有墨盒或墨罐。为了表明这点,指示灯43闪烁,为了安装盒或墨罐,用户打开检修门32,从而使盒接收部分64a和64b沿着滑架69移向一个中心位置。在此位置,用户可简单地通过提起盒接收部分64a和64b的杆72,把盒-首先是打印头一降入盒接收部分64a和64b中,并关闭杆72,而安装一个墨盒。更换空或缺陷的墨盒的过程与在此描述的相同。为了更换墨罐,用户可把缺陷或空的墨罐从盒拉出,并插入新的墨罐。
为了结束盒更换模式,用户只需要关闭检修门32。一旦更换模式被结束,打印机30检查新安装的盒以判定它是否得到正确安装。如果盒或墨罐得到正确安装,打印机30时盒接收部分64a和64b移动到初始位置87。另一方面,如果盒或墨罐的安装不正确,或者由于某些理由而不能被使用(例如有缺陷),则指示灯43发出橙色光。另外,打印机30发出三个蜂鸣声,以表示盒接收部分64b中的墨盒有问题,并发出四声蜂鸣声以表示盒接收部分64a中的墨盒有问题。
1.3墨盒
在此描述的打印机可使用包括可更换墨罐以存储不同类型墨液的墨盒。这种盒的一个例子在图7A和7B中显示。然而,如上所述,本发明也可用于不包含可更换墨罐而是把所有的墨液存储在内部的一次性墨盒。这种盒的一个例子在图7中得到显示。
一般地,打印机30能够采用不同类型的盒。例如,打印机30可采用存储染料基黑墨并具有沿着纵向延伸的128个喷嘴的盒。这种盒的一个例子是Canon BC-20盒。也可采用一种类似的盒,它存储颜料黑墨。在此方面,一般地说,染料基黑墨对于记录介质具有高穿透性。另一方面,颜料基的黑墨对于记录介质一般具有低穿透性(且在某些情况下不具有穿透性)
打印机30还可采用彩色墨盒。例如,打印机30能够采用存储青、品红、黄和黑墨的墨盒,且它包括136个沿着纵向延伸的喷嘴。在这种盒中,24个喷嘴用青墨打印,24个喷嘴用品红墨打印,24个喷嘴用黄墨打印,且64个喷嘴用黑墨打印。这种盒的一个例子是Canon BC-21(e)盒。
可用于打印机30的墨盒的另一个例子存储有光学密度较小(如“照片”)的墨,并包括沿着纵向排列的136个喷嘴。这种盒也具有与上述彩色盒相同的喷嘴结构。
1.4打印头结构
至于本发明可采用的盒的打印头的物理构造,图8显示了其中打印机30包括具有几乎纵向排列的128个喷嘴的打印头98的情况下的喷嘴结构的视图,其中各个喷嘴与相邻的喷嘴相距紧密。这种排列对于单色(例如黑)打印是较好的。喷嘴较好地是排列在略微倾斜的斜面上,从而在打印头在记录介质上移动时,可以迅速地相继地使喷嘴发射,而不是同时地发射,从而打印纵向线。快速相继地发射喷嘴的功率和控制要求比同时发射时大大地降低了。斜角的较好设置是在360dpi分辨率下每16个纵向喷嘴对应于一个象素的水平改变。
打印头99具有136个喷嘴,其中24个喷嘴较好地是用于黄墨,24个喷嘴较好地是用于品红墨,24个喷嘴用于青墨,且64个喷嘴用于黑墨,并以相对于纵向略微倾斜的角度一个在另一个之上地排列。各个颜色的喷嘴组与相邻组之间隔有对应于8个喷嘴的纵向空隙。略微倾斜的角度也在360dpi下提供了每16个纵向喷嘴一个象素的水平改变。
1.5打印模式
在其操作期间,打印机30包括不同的模式,这些模式可借助主处理器23(见图1)向打印机30发出的命令而得到设定。在这些模式中,安装在打印机30上的盒可排放出不同尺寸的墨滴,从而形成具有不同分辨率的图象。是否可获得打印机30的一定模式,部分地取决于安装在打印机30中的盒的类型。即,在某些类型的盒上的打印头能够排放不同尺寸的滴,例如大或小的墨滴,而在其他类型的盒上的打印头可排放具有单一尺寸的滴。
如上所述,在不同的打印机操作模式下采用不同的墨滴尺寸以形成具有不同分辨率的图象。更具体地说,喷墨打印机通过在纸上形成墨滴来产生图象。所形成的图象的分辨率部分地对应于形成的墨滴的数目且部分地对应于这些墨滴形成的排列。在本发明的打印机中,利用上述大或小的墨滴可形成不同分辨率的图象。
在此,应该注意的是,打印期间的墨滴分配和排列是部分地受到打印所用纸类型的限制的。具体地,普通纸在360dpi象素下可吸收约最多四个小滴,而高分辨率(以下称为HR-101)在360dpi象素下可吸收最多6个小滴。
因此,图9显示了利用常规(即非照片)墨和任何类型的纸在180水平(H)乘180纵向(V)栅化中各个象素的滴排列。如图9所示,这种排列提供了三级,并能够用大的滴实现360(H)乘360(V)dpi的打印输出。
2.0电气
如上述的部分1.0所述,打印机30可采用不同组合的多个打印头,诸如黑-黑、黑-彩色、彩色-彩色、或彩色-照片,从而可以在不同的分辨率(例如180dpi、360dpi、720dpi)下执行几种打印模式。另外,打印头组合在不同的打印模式下可得到改变,诸如文本、文本和彩色、彩色和高质量彩色。其结果,不同模式的打印任务要求复杂的操作,而这些操作随着打印头组合、记录介质和打印质量而变。在图1的信息处理系统中,与打印头结构、打印头排列等等有关的打印机参数被存储在打印机30中并根据打印机30获得的数据而被送到主处理器23。相应地,主处理器23中的打印机驱动程序进行打印数据的复杂处理和为各种打印模式的打印机设定并把命令序列送到简化打印执行的打印机。有利地简化了打印机的结构,而在主处理器23上进行打印处理的需要对主处理器23的操作没有或几乎没有影响。
2.1系统结构
图10是框图,显示了主处理器23和打印机30的内部结构。在图10中,主处理器23包括一个中央处理单元100,诸如与计算机总线101接口的可编程微处理器。与计算机总线101耦合的,还有用于与显示器22接口的显示接口102、用于通过双向通信线路106与打印机30接口的打印机接口104、用于与软盘107接口的软盘接口24、用于与键盘26接口的键盘接口109、以及用于与指点装置27接口的指点装置接口110。盘25包括用于存储操作系统111的操作系统部分、用于存储应用程序112的应用程序部分、以及用于存储打印机驱动程序114的打印机驱动程序部分。
一个主随机存取存储器(以下称为RAM)116与计算机总线101接口,以为CPU 100提供至存储器的存取。具体地,当执行存储的应用程序指令序列-诸如与存储在盘25的应用程序部分112中的应用程序相关的序列-时,CPU 100把这些应用程序指令序列从盘25(或其他的存储介质,诸如经过网络或软盘驱动器24存取的介质)装载到随机存取存储器(以下称为RAM)116中并执行RAM 116中存储的程序指令序列。RAM 116提供了根据本发明的打印机驱动程序114所用的打印数据缓存器,如将在下面所详细描述的。应该注意的是,在窗口操作系统下的标准盘交换技术允许存储器的段-包括上述打印数据缓存器-被换入或换出盘25。在主处理器23上的只读存储器(以下称为ROM)存储不变的指令序列,诸如启动指令序列或基本输入/输出操作系统(BIOS)序列,用于操作键盘26。
如图10所示,且如上所述,盘25存储用于窗口操作系统和诸如图形应用程序、绘制应用程序、桌面出版应用程序等的应用程序的程序指令序列。另外,盘25还存储彩色图象文件,诸如可在指定的应用程序的控制下由显示器22显示或由打印机30打印的图象。盘25还存储在其他驱动部分119中的彩色监视器驱动程序,该部分119控制着如何把多级RGB彩色基色值提供给显示接口102。打印机驱动程序114控制打印机30的黑白和彩色打印并根据打印机30的结构提供用于打印输出的打印数据。打印数据被传送到打印机30,且控制信号通过与路线106相连的打印机接口104而在打印机驱动程序114的控制下在主处理器23与打印机30之间进行交换。其他装置的驱动程序也被存储在盘25上,用于向与主处理器23相连的各种装置-诸如网络装置、传真装置等-提供适当的信号。
通常,存储在盘25上的应用程序和驱动程序需要先由用户从其他的计算机可读取介质-其上存储有这些程序和驱动程序-安装到到盘25上。例如,通常的作法是由用户购买其上存储有打印机驱动程序的复本的软盘或其他的计算机可读取介质(例如CD-ROM)。用户随后借助众所周知把打印机驱动器复制到盘25上的技术,把打印机驱动程序安装到盘25上。同时,还可以由用户通过调制解调器接口(未显示)或经过网络(未显示)下载打印机驱动器,诸如通过从文件服务器或从计算机化的公告板上下载。
再看图10,打印机30包括CPU 121-诸如包括可编程定时器和中断控制器的8位或16位的微处理器、ROM 122、控制逻辑124、和与总线126相连的I/O端口单元127。与控制逻辑124相连的还有RAM129。控制逻辑124包括用于行馈送电机61、RAM 129中的打印图象缓存、加热脉冲发生和头数据的控制器。控制逻辑124还提供了用于打印引擎131的打印头130a和130b中的喷嘴、滑架电机66、行馈送电机61、和用于打印头130a和130b的打印数据的控制信号,并通过I/O端口单元127从打印引擎131接收用于打印头130a和130b对准的信息。EEPROM 132与I/O端口单元127相连,以提供用于诸如打印头结构和打印头对准参数的打印机信息的非易失性存储器。EEPROM 132还存储识别打印机、驱动器、打印头、打印头的对准、以及盒中的墨的状态等的参数-它们被送到主处理器23的打印机驱动程序114以把打印机30的操作参数通知主处理器23。
I/O端口单元127与打印引擎131相耦合,在打印引擎131中一对打印头130a和130b(它们分别被存储在盒接收部分64a和64b中)通过在利用来自RAM 129中的打印缓存器的打印数据进行打印的同时在记录介质上进行扫描,而在记录介质上进行记录。控制逻辑124也经过通信线路106而与主处理器23的打印机接口104相耦合,用于交换控制信号并接收打印数据和打印数据地址。ROM 122存储字型数据、用于控制打印机30的程序指令序列、以及用于打印机操作的其他不变数据。RAM 129在打印机驱动程序114限定的打印缓存器中存储用于打印头130a和130b的打印数据和用于打印机操作的其他信息。
打印引擎131的打印头130a和130b与分别存放在盒接收部分64a和64b中的墨盒相对应。用134总体表示的检测器被排列在打印引擎131中,以检测打印机状态并测量温度和影响打印的其他量。盒接收部分64中的一个光检测器(例如图6A中显示的自动对准检测器82)测量打印密度和点位置,以进行自动对准。检测器134也被设置在打印引擎131中以检测其他的状态,诸如检修门32的打开或关闭、记录介质是否存在等等。另外,包括热敏电阻的二极管检测器被设置在打印头130a和130b中,以测量打印头温度,该温度数据被传送到I/O端口单元127。
I/O端口单元127还接收来自诸如电源按钮44和恢复按钮46的开关133的输入,并把控制信号送到LED 135以照亮指示灯43、送到蜂鸣器128、以及分别经过行馈送电机驱动器61a和滑架电机驱动器66a而送到行馈送电机61和滑架电机66。如上所述,蜂鸣器128可包括一个扬声器。
虽然图10以彼此分离的形式显示了打印机30的各个部件,较好的是这些部件中的某些是结合的。例如,控制逻辑124可与I/O端口单元127结合成一个ASIC,以简化打印机30的功能所需的互连。
2.2系统功能
图11显示了一个高级功能框图,它显示了主处理器23与打印机30之间的作用。如图11所示,当打印指令从存储在盘25的应用程序部分112中的图象处理应用程序112a发出时,操作系统111向打印机驱动程序114发出图形装置接口调用。打印机驱动程序114通过产生与打印指令相应的打印数据进行响应并把该打印数据存储在打印数据存储部分136中。打印数据存储部分136可位于RAM 116或盘25中,或者可通过操作系统111的盘交换操作而被初始存储在RAM 116中并换入或换出盘25。随后,打印机驱动程序114从打印数据存储器136获得打印数据并将打印数据通过打印机接口104传送到双向通信线路106,并通过打印机控制器140传送到打印缓存器139。打印缓存器139位于RAM 129中且打印机控制器140位于图10的控制逻辑124和CPU 121中。打印机控制器140,响应于从主处理器23接收的命令,处理打印缓存器139中的打印数据,并在存储在ROM122(见图10)的指令的控制下执行打印任务,以提供适当的打印头和其他控制信号给打印引擎131,从而在记录介质上记录图象。
打印缓存器139具有用于存储将要由打印头130a和130b之一进行打印的打印数据的第一部分,且用于存储将要由打印头130a和130b中的另一个进行打印的打印数据的第二部分。各个打印缓存器部分都具有与相关的打印头的打印位置的数目相应的存储单元。这些存储单元由打印机驱动程序114按照选定的打印分辨率来确定。各个打印缓存器部分还包括额外的存储单元,用于在打印头130a和130b提升(ramp)至打印速度期间传送打印数据。打印数据从主处理器23中的打印数据存储器136被传送到被打印机驱动程序114所寻址的打印缓存器139的存储单元。其结果,用于下一个扫描的打印数据可在提升期间和当前扫描的打印期间被插入到打印缓存器139中的空白存储单元中。
2.3控制逻辑
图12显示了图10的控制逻辑124和I/O端口单元127。如上所述,I/O端口单元也可以被包括在控制逻辑124中。在图10中,用户逻辑总线146与打印机总线126相连,用于与打印机CPU 121进行通信。总线146与主计算机接口141相耦合,而接口141与双向通信线路106相连以进行诸如IEEE-1284协议的双向通信。相应地,双向通信线路106还与主处理器23的打印机接口104相耦合。主计算机接口141与总线146相连并与DRAM总线仲裁器/控制器144相连,以控制包括打印缓存器139的RAM 129(见图10和11)。数据解压器148连接在总线146与DRAM仲裁器/控制器144之间,以在处理时对打印数据解压。与总线146相连的还有与图10的行馈送电机驱动器61a相连的行馈送电机控制器147、为各个打印头130a和130b提供串行控制信号和打印数据信号的图象缓存器控制器152、以及为各个打印头130a和130b提供块控制信号和模拟加热脉冲的加热脉冲发生器154。滑架电机控制是由CPU 121通过I/O端口单元127和滑架电机驱动器66a进行的,因为行馈送电机61和滑架电机66可同时运行。
控制逻辑124进行操作以接收来自主处理器23的用于CPU 121的命令,并通过主计算机接口141和双向通信线路106把打印机状态和其他响应信号送到主处理器23。打印数据和用于从主处理器23接收的打印数据的打印缓存器存储器地址经过DRAM仲裁器/控制器144而被送到RAM129中的打印缓存器139,且来自打印缓存器139的被寻址的打印数据通过控制器144传送到打印引擎131,以借助打印头130a和130b进行打印。在此方面,加热脉冲发生器154产生打印打印数据所需的模拟加热脉冲。
图13显示了打印机30的存储器结构。如图13所示,EEPROM132、RAM129、ROM 122和用于控制逻辑124的临时存储器161形成了具有单个寻址设置的存储器结构。参见图13,被显示为非易失存储部分159的EEPROM132存储主处理器23用的参数和识别打印机和打印头、打印头状态、打印头对准、以及其他打印头特性的参数。EEPROM132还存储其他参数,诸如清洗时间、自动对准检测器数据等等,这些参数为打印机30所使用。被显示为存储部分160的ROM 122存储用于打印机操作的不变信息,诸如用于打印机任务的程序序列和用于控制喷嘴加热脉冲的产生的打印头操作温度表等等。一个随机存取存储器部分161存储用于控制逻辑124的临时操作信息,且与RAM129相应的存储部分162包括用于打印机任务的可变操作数据的存储区和打印缓存器139。
2.4一般操作
图14是流程图,显示了图10的框图显示的信息处理系统的一般操作。当在步骤S1401接通了打印机30的电力之后,打印机30在步骤S1402得到初始化。在初始化中,如在部分3.2中所详细描述和在图19和20中显示的,CPU 121、控制逻辑124和系统定时器都被置于初始状态。另外,打印机30的ROM 121、RAM 139和EEPROM 132得到检查且CPU 121中的中断请求级在把打印机30的电力接通时得到指定。当打印机30被置于其接通状态时,EEPROM 132被打印机驱动程序114所读取,控制器任务被打印机CPU 121所启动,诸如复位打印机、根据系统定时器判定是否应该进行打印头清洗等等。在步骤S1402的初始处理,还选定一个数据压缩模式,用于打印头130a和130b的加热脉冲得到确定,缓存器控制得到确定,打印缓存器139得到清除,且消息得到显示以指明打印机30的状态。
随后,步骤S1403得到执行。在步骤S1403,如果判定打印头结构已经改变,打印机驱动程序114从由打印机CPU 121获得的数据根据与头结构和对准相关的打印机测量结果计算打印机参数。该对准系统在标题为“打印装置的自动对准系统”的、于1997年7月28日递交的美国专利申请08/901,560号中得到了更详细描述,且该文件在此被作为参考文献。
在步骤S1403之后,处理进行到步骤S1404,在此判定打印机30是否联机。一旦判定打印机30联机,处理进行到步骤S1405,在那里计算出的打印机参数被寄存到打印机EEPROM 132中。
具体地,当判定打印机30联机时,存储在EEPROM 132中的打印机参数在步骤S1405被打印机驱动程序114所寄存。这些参数随后在步骤S1405被CPU 121送出以存储在主处理器23中,从而使打印机驱动程序114能够产生用于打印机操作的适当命令。这样的命令在图14的虚线框中的步骤中得到表示,并考虑到了打印机30的当前识别、打印头结构、打印头对准和盒墨状态。
按照步骤S1405的用于发送参数的一种方法包括把表示当前的头结构的打印机参数的数据送到主处理器。在主处理器中的一个打印机驱动程序根据相连的打印装置的特性产生用于控制打印机功能的命令,并把产生的命令送到打印机控制器。这些命令包括与相连的打印装置的特性相应的参数,允许对多种打印装置结构的打印机操作进行控制。打印机参数数据至主处理器中的打印机驱动程序的传送和命令的产生和传送,在部分6.0中得到更详细的描述。
至于打印头清洗,清洗可以被安排在打印机操作期间的各种时间,诸如在步骤S1405A。用于根据步骤S1405A安排打印头清洗的方法包括从一个外部源接收实时/日期(时间和/或日期)信息、把该实时/日期信息存储在一个易失存储器中、在一个非易失RAM中存储喷墨打印机中的至少一个打印头的一个最后清洗时间、以及通过减去存储的实时/日期信息和存储的最近清洗时间来计算已过时间。该方法进一步包括把计算的已过时间与预定的已过时间进行比较、当计算的已过时间大于或等于预定的已过时间时控制该至少一个打印头以进行清洗处理、并在非易失存储器中存储最新的用于清洗该至少一个打印头的最近时间。当计算的已过时间小于预定的已过时间时,该方法进行等候,以根据已过内部时间、下一个下载时间的比较、或诸如更换打印头的清洗事件的发生而进行清洗。打印头清洗的计划在以下的部分7.0中得到了详细描述。
在步骤S1405中寄存的参数被用来控制打印头操作。根据步骤S1405的用于控制具有至少一个打印头的图象打印装置的打印头的方法,包括获得该至少一个打印头(该头包括在步骤S1405寄存的参数)的特征信息。该方法包括把该状况参数存储在一个非易失RAM中,并在得到请求时把该特征信息输出到与图象打印装置相连的主处理器。该主处理器利用该打印头特征信息来产生补偿参数-这些参数补偿将要从主处理器送到打印头以进行打印的打印信息。该方法在部分8.0中得到了更详细的描述。
在步骤S1405的打印机参数信息寄存之后,步骤S1405A中的清洗计划、各个打印头盒300a和300b(见图4)的状态,在步骤S1406得到检查。这是通过确定检修门32是否已经被打开和关闭并检测一或多个墨盒或墨罐是否已经被改变,而得到进行的。如果盒或墨罐已经被改变,则在相应的打印头上进行清洗操作,其中该打印头的喷嘴得到清洗。
在步骤S1406用于在墨罐/盒改变期间清洗打印头的装置包括一个盒接收部分-它安装在一个支架上以可释放地接收具有打印头和至少一个可拆下墨罐的盒。该接收部分包括一个枢轴杆,它允许拆下至少一个墨罐。该杆在该至少一个墨罐的至少一部分上延伸,从而防止对至少一个墨罐的接触直到杆作离开该至少一个墨罐作枢轴运动。当杆作离开至少一个墨罐的枢轴运动且随后枢轴运动到该至少一个墨罐的至少一部分上时,输出了一个信号,该信号提示对打印头的清洗。打印头清洗设置在部分5.0中得到更详细的描述。
在步骤S1406中进行的盒改变处理之后,处理进行到步骤S1407。在步骤S1407,判定打印机30是否请求了一个中断以进行诸如打印头加热器控制的操作。响应于这种中断请求,被请求的打印机操作在步骤S1408得到进行。随后,处理返回到步骤S1406。
如果打印机未在步骤S1407请求中断,处理进行到步骤S1409。在步骤S1409,判定打印机驱动程序114是否请求了一个命令序列。在图10的系统中,打印机30的任务由来自打印机驱动程序114的命令控制,这些命令是根据从打印机30接收的参数和状态信息而产生的。当用户接口序列得到选择时,进入到步骤S1414且执行图15显示的处理。
在选择用户接口时,在步骤S1501,通过双向通信线路106从打印机30请求并接收打印机30的当前状态。随后,在步骤S1502,判定打印机30是否具有新的打印头。当检测到新的打印头时,在步骤S1503进行自动对准,且在步骤S1504打印机30的状态信息被存储在打印机驱动程序114中,否则,在步骤S1505为用户获得最新的打印机驱动程序信息。在两种情况下,然后在步骤S1506判定所要打印的页是用于头更换和/或对准的实用页还是文件的首页。当实用页得到选择时,当前的头结构在步骤S1507得到显示且用户在步骤S1508选择是启动还是禁止打印机30。随后进入选择步骤S1509且用户可借助步骤S1510选择对准、借助步骤S1510和步骤S1511进行头更换和对准并随后在步骤S1512存储打印机状态信息、借助步骤S1513进行恢复操作以清洗打印头130a和130b、或者在步骤S1514取消用户接口。一旦在步骤S1509选择的任务得到进行,控制返回到图14的步骤S1409。
当在图15的步骤S1506选择了打印模式时,当前的头结构被显示给用户(步骤S1515)。在步骤S1516操作了使能/禁止按钮之后,用户可在步骤S1517选择打印、介质类型、介质尺寸、目标图象、自选页设定、实用或取消操作。介质类型(步骤S1518)、介质尺寸(步骤S1519)、目标图象(步骤S1520)(即文本和彩色或照片-彩色)、自选页尺寸(步骤S1521)、以及自选设定页(步骤S1522)的选择,使得信息被存储在打印机驱动程序114中,而打印机驱动程序114控制着所要执行的打印序列的打印机参数和打印数据。在借助用户接口显示器上的键盘和指点器输入的用户选择完成时,控制返回到步骤S1409并被引向使用打印命令序列步骤S1410。
如果在步骤S1409选择了打印序列,处理进行到步骤S1410。在步骤S1410,打印机驱动程序114根据打印头结构、打印头对准、介质类型和尺寸以及存储在其中的目标图象信息,产生命令序列。这些命令被送到打印机30中的打印机控制器140(见图11)。在打印机中,打印机控制器140接收这些命令和来自打印机ROM 122的固件并使得命令任务在打印引擎131中得到执行。
该打印命令序列包括把打印数据从打印机驱动程序114传送到由各个打印任务定义的打印缓存器139。该打印数据传送是在没有打印机30中的接收缓存器的情况下进行的。在当前扫描中打印头的提升期间用于下一个扫描的打印数据被发送到打印缓存器139中的当前扫描的空存储单元中。
简要地说,在步骤S1410中命令被传送至的打印缓存器包括与各个打印头的当前扫描的打印位置相应的一组存储单元。打印机驱动程序识别打印缓存器中当前扫描的空存储单元并在打印头的当前扫描的提升期间把打印头的下一个扫描的打印数据传送到识别的空存储单元。根据本发明的打印命令序列中的打印数据传送,将在部分9.0中得到更详细的描述。
步骤S1410的命令序列包括设定打印头130a和130b的打印分辨率的命令。这些命令,通过根据存储在用于打印头的打印缓存器中的数字数据和打印数据从用于该打印头的打印缓存器被读取的顺序而对墨滴大小进行的控制,而得到设定。具体地,用于控制具有第一和第二打印头的打印机中的打印分辨率的方法包括彼此独立地控制第一和第二头的分辨率。对于根据存储在打印缓存器中的数字数据排放墨滴的喷墨型打印头,分辨率是通过控制墨滴大小和控制从打印缓存器的读出顺序而得到控制的,其中各个打印头的墨滴大小和读出顺序是彼此独立地得到控制的。打印分辨率的控制在部分10.0中得到了更详细的描述。
在步骤S1410的打印命令序列中,进一步地,打印机驱动程序114根据对相邻象素的多级图象数据的分析,来选择将要用于打印目标象素的墨的类型。作为一个例子,对于一个图象中被彩色象素所围绕的黑目标象素可选择染料基的墨,而对于被黑象素所围绕的黑目标象素可选择颜料基的墨。
总之,根据本发明的用于控制与多级图象对应的象素的打印的方法,包括根据目标象素的多级图象数据和用于与该目标象素相邻的象素的多级图象数据,确定该目标象素是应该用染料基墨打印还是应该用颜料基墨打印,在确定目标象素应该采用染料基墨打印的情况下命令打印机用染料基墨打印目标象素,并在确定目标象素应该用颜料基墨打印的情况下命令打印机用颜料基墨打印目标象素。象素打印的控制在部分11.0中得到了更为详细的描述。
在完成了一页的打印时,流程进行到图14的步骤S1411,在那里该页响应于一个纸排放命令而被从打印机30输出。打印机30随后把该页排放到由弹簧以可调节的方式定位在一个托盘上的一对具有角度的可缩回活板上,如在部分4.0中所描述的。当在打印期间移到该托盘上时,一页滑行到前面排放的页上的高度,通过活板的向下运动而得到保持,从而使页不会在打印头区中发生弯曲。这种弯曲可造成所打印的图象的失真。另外,纸排放托盘具有便于存放和设定的结构。
为此,本发明的该方面是打印机的一种排放托盘,它具有限定一个介质馈送部分和一个介质排放端口的外壳,其中该外壳适合于容纳一个用于在记录介质上进行打印的打印引擎。该排放托盘包括一个基座,而该基座可滑动地位于打印机的外壳上与介质排放端口沿着横向相距的一个位置上。该基座包括至少一对沿着基座的滑动方向延伸的凹槽。在该排放托盘中还包括有一对活板。该对活板每一个都具有与基座与排放端口之间的横向距离相对应的至少一个宽度部分。各个活板绞接到基座的相应凹槽中并经过一个弹簧而被向上施力-这提供了活板相对于基座的转动运动。在基座向外壳外滑动时,活板沿着向上离开凹槽的方向被施力而到达与介质排放端口的位置相应的一个高度。
图16是流程图,它更详细地显示了打印机驱动程序114产生的用于打印和操作打印机30的命令序列。在图16中,打印命令序列由一个打印机初始化命令在步骤S1601启动,该命令被送到打印控制器140,以复位打印机操作。随后一个载纸命令(步骤S1602)被提供给打印机控制器140,而打印机控制器140在选择步骤S1603选择一个加纸操作并执行一个启动纸装载(步骤S1604)。当打印机控制器140在步骤S1605检测到加纸结束时,一个表示结束加纸的信号被送到打印机驱动程序114,且在步骤S1606为打印头130a和130b的第一扫描准备好打印数据。打印机控制器140被告知这种扫描准备。打印机驱动程序114中的打印数据的准备在1997年7月28日递交的标题为“用于彩色打印机的打印驱动器”的美国专利申请第08/901,719得到了更为详细的描述。如果在确定步骤S1607没有确定用于扫描的打印数据,在步骤S1608在打印机驱动程序114中进行一个虚拟跳过。当在步骤S1609未检测到页完成时,控制返回到步骤S1607。当检测到页完成时,步骤S1610至步骤S1614和步骤S1608得到进行。
在步骤S1610,打印机驱动程序114向打印机控制器140提供一个实际的跳过命令,以打印正确的打印数据。打印机控制器140选择该实际的跳过操作(步骤S1603)并执行该实际跳过(步骤S1615)。随后在打印机驱动程序114中进行扫描设定(步骤S1611),且打印机控制器140得到通知。随后,在打印机驱动程序114中产生的打印数据和用于该打印数据的打印缓存器地址被传送到打印机控制器140,而打印机控制器140将这种信息存储在打印缓存器139中(步骤S1612)。随后在打印机驱动程序114中准备下一个扫描,且打印机控制器140得到通知(步骤S1613)。随后,在打印机驱动程序114中产生的一个打印命令被送到打印机控制器140。作为响应,打印机控制器140在步骤S1619选择一个打印操作并在步骤S1614执行该打印任务。随后由打印机驱动程序114在步骤S1608执行一个虚拟跳过以跟踪正在打印的页的行。当在判定步骤S1609判定了页完成时,打印机驱动程序114把一个页排放命令送到打印机控制器140,而打印机控制器140选择一个页排放操作(步骤S1616)并开始页排放(步骤S1617)。在页排放完成时(步骤S1618),打印机驱动程序114被告知页排放的完成且控制进行到图14的步骤S1409。
图17是流程图,显示了在图16的当前扫描的扫描设定步骤S1611中采用的一组命令。参见图17,一个[SPEED]命令在步骤S1701被发出以设定扫描速度,一个[DROP]被发出(步骤S1702)以设定一个打印头(A)的墨滴大小且另一个[DROP]被发出(步骤S1703)以设定另一打印头(B)的墨滴大小。在步骤S1704和步骤S1705,发出了一个[SELECT_PULSE]以设定用于打印的加热脉冲且一个[PCR]命令被发出以设定用于温度表调节的脉冲控制比值。[SELECT_CONTROL]命令在步骤S1706和步骤S1707被发出以选择各个打印头的缓存器控制,以确定打印头喷嘴的排放时间。[DEFINE_BUF]命令在步骤S1708和步骤S1709被发出,以定义各个打印头130a和130b的打印缓存器。相应地,打印机操作的各个方面,诸如扫描设定,由主处理器打印机驱动程序114在考虑到打印头结构和打印模式的情况下进行控制。打印机30执行的任务因而被打印机驱动程序114所详细定义,从而使打印机的结构得到了大大的简化且费用得到了降低。
图18中的表A给出了从主处理器23至打印机30以在彩色模式下用两个彩色打印头打印一页的命令序列的一个例子。开始时,如表所示,当前时间由一个[UCT]命令设定且打印机30被一个[RESET]命令所复置。数据压缩得到选择,以借助一个[COMPRESS]命令来压缩打印数据。用于打印头130a和130b的打印缓存器由[DEFINE_BUF]命令定义。打印头结构的彩色模式的加热脉冲和缓存器控制表由[DEFINE_PULSE]和[DEFINE_CONTROL]命令定义。
在打印机任务由前述初始化命令执行之后,装载页或其他打印介质的加纸命令[LOAD]和跳过第一打印头扫描的打印位置的栅跳过命令[SKIP]被送到打印机30,且第一扫描的打印头130a和130b的打印方向和打印边缘得到设定。一个命令环随后被送出以为页中各行的打印控制打印机任务。对于各行该环的第一部分中,行的扫描参数如图17所述地得到设定。在选择缓存器控制表命令[SELECT_CONTROL]的打印机任务完成之后,打印数据块由[BLOCK]命令选择,且打印色根据打印头130a和130b的确定的打印区而由重复的选择色[COLOR]和数据传送[DATA]命令选择。
随后由[DIRECTION]和[EDGE]命令设定第二扫描的方向和第二扫描的打印区的左和右边缘。此时,一个[PRINT]命令被从主处理器23传送到打印机30,以执行第一扫描的打印,且一个[SKIP]命令得到传送以跳到第二扫描的打印位置。当最后一行已经被打印时,页排放命令被提供给打印机30,以执行纸排放。
如从用于设定的扫描操作的命令序列和根据本发明的打印操作的例子可见,本发明的各个方面,诸如扫描设定或打印,由打印机驱动程序114在考虑打印头结构和打印模式的情况下进行控制。将要由打印机30进行的任务因而由打印机驱动程序114所详细地定义,从而使打印机的结构得到了简化且费用得到降低。
参见图17,当在步骤S1409确定了一个打印机状态请求时,流程进行到步骤S1412。在步骤S1412,一个打印机状态命令序列得到执行。提供打印机状态信息请求的状态命令在部分3.6中得到了更为详细的描述。一般地,各个状态命令从主处理器23被送到打印机30,以请求有关打印机操作的信息或存储在打印机30中的信息。例如,一个基本状态命令[BASE_STATUS]请求打印机的当前状态。作为响应,打印机30送回表示以下之一的一个数据字节:打印状态、打印缓存器139能够还是不能够接收数据、打印机30是否忙于执行启动、盒更换、打印头清洗、测试打印等等、以及是否检测到了误差或警报。一个[HEAD]命令请求打印返回头结构且一个[DATA_SEND]命令请求将EEPROM返回至主处理器23。在请求的数据在步骤S1412的返回之后,控制返回到步骤S1406。
3.0打印机软件的结构
打印机30的功能的控制是由在CPU 121上执行的单个程序实现的。各个程序包括初始化步骤-诸如在接通时执行的步骤、中断从主处理器23接收的命令的任务、诸如处理实时硬件中断的处理程序的中断处理程序、以及处理循环处理的循环处理程序一诸如控制与主处理器23的双向通信的处理程序。
打印机CPU 121进一步执行一个操作系统,从而协调各个程序的执行(即初始化程序、任务、中断处理程序、以及循环处理程序)。该操作系统通过消息传送等而进行程序间的通信,以及程序间的切换,从而在适当时从一个程序至另一个程序地切换执行。以下是操作系统的细节。
3.1操作系统
该操作系统是一个实时操作系统(或“核”或“监测机”),是为了分解打印机控制程序和便利维护、继承和扩展而产生的。该实时操作系统是提供抢先多任务软件环境的系统软件,其中当前执行的程序可被暂停,以有利于向另一具有更高优先级的程序的切换。
该操作系统允许四种不同类型的程序,其每一个都由该操作系统根据其具体的类型而执行。这些类型是初始化例程、任务、中断处理程序、以及循环处理程序。初始化例程是为打印机30被复置之后但在操作系统初始化其自身之后立即由操作系统调度的程序。任务是依次执行的通常的连续处理程序(有时被称为“执行单元”)。因此,任务是由操作系统以多编程或多处理环境中由CPU 121执行的工作的单元形式的一或多个指令序列。操作系统通过在各个任务单元中调度处理,而产生了同时处理的假象。
中断处理程序是程序单元(通常是短的),它由操作系统在接收到硬件中断时立即激活。循环处理程序与中断处理程序类似,但不是由硬件中断激活,而是由操作系统的定时器中断激活。
当打印机30被复置时,操作系统的执行是由CPU 121执行的第一个软件。CPU寄存器按照预定的要求而得到设定,且随后用户定义的初始化例程(如果有的话)得到执行。随后,控制返回到操作系统,激活系统中的各个任务。一个这种任务是启动任务。在启动任务开始之后,操作系统每当系统调用发出或发生中断时得到激活。在执行了系统调用或处理了中断之后,执行返回到操作系统,而操作系统调度任务从而执行具有最高优先级的可执行任务。
调度任务涉及在同时有若干可执行任务的情况判定执行哪一个任务。任务是按照一个分配的优先级而调度的,其中较高优先级的任务在所有其他优先级较低的任务之前得到执行。可执行但由于其优先级较低而当前没有执行的任务根据它们的优先级而被置于一个就绪排队中。
随着各个任务变得可执行,它被置于就绪队列的末尾。随后当从一个任务发出的系统调用返回或当从中断处理返回到一个任务时进行调度,这两种安排都能够造成新的任务进入队列或造成已经存在于队列中的任务的优先级的改变。调度按照各个任务的优先级来把任务排列在任务队列中,并使具有最高优先级的任务成为当前可执行的运行任务。如果在就绪队列中有两或多个具有相同优先级的任务,哪一个任务应该得到选择的确定是根据哪一个任务首先进入队列而确定的。
该操作系统用信号灯作为任务之间的通信的基本手段并用于任务的控制或同步。任务还能够利用消息在它们之间通信和传送数据。消息由一个任务送到邮箱,且需要接收该消息的任务向邮箱发出一个接收请求,从而获得该消息。
该操作系统进一步采用事件标记来同步任务。希望根据一定的事件而从等候状态得到释放的任何任务可寄存一个事件标记模式,在其发生时操作系统将把该任务从等候状态释放。
操作系统的中断管理是由一个中断处理程序和中断允许级设定提供的。时间管理由操作系统根据系统定时器对中断处理程序的致动而提供。
循环处理程序,根据操作系统寄存的循环处理程序,在每一个指定的时间间隔进行处理。通常,循环处理程序是一个短程序,它指定在各个指定的时间间隔执行的任务。
对打印机30较好的初始化例程、任务、中断处理程序和循环处理程序在下面得到描述。
3.2初始化
在加电时,执行初始化功能以初始化打印机30,诸如初始化控制逻辑124、检查ROM 122、检查RAM 129和检查EEPROM 132。
图19和20分别显示了硬加电序列和软加电序列。在此方面,应该注意的是只要电力被提供到打印机30、CPU 121就执行软件,而不论电源按钮44的状态如何。因此,“硬加电”表示对打印机30的初始供电。随后,用户激活电源按钮44只是造成软加电或软去电。这种设置是较好的,因为它允许打印机30即使在打印机30“关断”时也能够监测正在进行的事件(诸如时间的推移)。
参见图19,它显示了硬加电序列,在初始电力接通时,步骤S1901进行存储器检查,诸如ROM检查、RAM检查以及EEPROM检查。步骤S1902初始化软件任务,且在步骤S1903,CPU 121进入空循环,等候一个软加电。
图20显示了软加电序列。步骤S2001进行打印引擎131的机械初始化,诸如至起始位置的复位,步骤S2002启动包括Centronic通信任务的软件控制任务,且步骤S2003进入主处理模式。
图21详细描述了软去电序列。步骤S2101终结了所有软件任务,且步骤S2102进入一个闲循环-其中在步骤S2103打印机30等候下一个软加电序列。
3.3任务
在本发明的最佳实施例中,打印机任务得到适当设计以隔离功能,从而使各个任务响应于打印机控制的单个方面。一般地说,任务可被分成三个概念上的组,即引擎任务、控制器任务、以及杂项任务。
对于与引擎有关的任务,任务得到提供以控制滑架电机66以进行运送运动,控制行馈送电机61以使纸行进,并为打印头130a和130b控制纸馈送和清洗操作,诸如墨抽吸、清洗、等等。其他任务把消息从打印引擎131传送到其他任务,并根据来自另一任务的消息控制打印机引擎131。
对于控制任务,任务得到提供以中断从主处理器23接收的命令;这些命令在部分3.6中得到了详细描述。与测试有关的任务在需要时可得到提供。
对于杂项任务,一个初始化任务(它在部分3.2中得到了描述),初始化打印机30。提供了其他的任务以控制打印机30上的显示,以扫描与在打印机30的前面板上的按钮相应的键开关并检测它们的状态,初始化与主计算机接口141和I/O端口单元127有关的硬件,控制Centronic输出信号,并解译这些信号和将这些信号传送到其他的任务。提供了一个任务以控制引擎控制任务和通信任务。另外,这种任务初始化、暂停和恢复其他的任务。一个空闲任务基本上不作任何事情,并得到提供以在没有其他任务排队在等候状态下时由操作系统使用。
任务之间的接口和其他通信是通过使用邮箱-其中放置了消息-和信号灯而实现的,以协调消息通信。这种设置在图22中得到显示。图22显示的有控制器任务201、用户接口任务202、双向通信任务204、杂项任务205、以及引擎任务206。任务组中的各个任务具有相关的邮箱,这些在图22中得到了示意显示,其中210表示控制器任务201中的各个任务的邮箱,213表示用户接口任务202中的各个任务的邮箱,215表示通信任务204中的各个任务的邮箱、217表示杂项任务205中的各个任务的邮箱,且219表示引擎任务206中的各个任务的邮箱。除了引擎任务206之外,送到邮箱或从邮箱获取的消息的协调由信号灯控制。对于引擎任务206,没有采用信号灯,因为检测存储器的使用就足够了。
各个邮箱得到适配以接收来自各个其他任务的消息并得到进一步的适配以把消息传送到其相关的任务。因此,邮箱210能够接收来自用户接口任务202、通信任务204、杂项任务205、和引擎任务206中的任何一个的消息,且能够把这些消息传送到任务组201中其相关的任务。类似地,邮箱213得到适配以接收来自控制器任务201、通信任务204、杂项任务205、和引擎任务206中的任何一个的消息;并把这些消息传送到用户接口任务202中的相关任务。类似地,邮箱215得到适配以接收来自控制器任务201、用户接口任务202、杂项任务205、和引擎任务206中的任何一个的消息;并把这些消息传送到通信任务204。类似地,邮箱217得到适配,以接收来自控制器任务201、用户接口任务202、通信任务204、以及引擎任务206中的任何一个的消息;并把这些消息传送到杂项任务组205中的相关任务。最后,邮箱219得到适配,以接收来自控制器任务201、用户接口任务202、通信任务204、以及杂项任务205中的任何一个的消息;并把这些消息传送到引擎任务206中的相关任务。
3.4中断处理程序
虽然操作系统能够容纳诸如用于定期时钟中断的处理程序这样中断处理程序,这种循环事件也能够用循环处理程序来处理。
3.5循环处理程序
循环处理程序是为通信任务204和为用户接口任务202提供的,如结合图22所显示和描述的。
另外,为控制器定时器操作提供了一个循环处理程序。图23是流程图,显示了根据这种循环处理程序的控制器定时器控制。如图23所示,在接收到一个10毫秒的中断时,副加热器控制得到实现。副加热器控制的目的是把打印机30中的各个打印头(即打印头130a和130b)的温度提到一个目标温度。这是通过根据计算出的头温度与一个目标头温度之差而设定一个副加热器驱动时间得到实现的。
图23显示的50毫秒的中断根据施加到各个头的头驱动脉冲的量,计算各个头的头温度。计算是根据预存储在ROM 122中的表而进行的,该表提供用于根据头发射计算温度增加以及温度降低的常数。
50毫秒中断进一步根据预存储在ROM 122中的表来控制脉冲宽度调制控制,从而设定各个打印喷嘴的预加热脉冲以及各个喷嘴的实际主脉冲宽度。这些脉冲参数随后被送到控制逻辑124。
50毫秒中断进一步实现头保护控制以保证预加热的脉冲的宽度和主脉冲的宽度不超过可能损坏打印头的限度。
如图23所示,500毫秒的中断实现了主加热控制。如图23所示,该1秒中断计算环境温度,并随后进行到根据计算出的环境温度来更新目标温度。
应该注意的是,10毫秒、50毫秒、500毫秒和1秒的持续时间只是说明性的,并可以被改变。
3.6往来于主处理器的命令
以下概述在双向打印机接口104上往来于主处理器23的命令。一般地说,各个命令将包括一或多个参数,而某些命令(诸如[DATA]图象数据传送命令)也包括数据。
状态请求命令[STATUS]是一个通用的命令,它引出了在双向接口104上的来自打印机30的响应。通过状态请求命令的使用,主处理器23能够获得有关打印机30的详细信息,诸如EEPROM 132的内容、对准和密度检测器结果等等。该状态请求命令因而在下面得到更详细的描述。
在以下的部分中,各个命令的助记符用方括号“[]”括起。以下显示的助记符只是例子。用于形成命令助记符的实际的字母序列和组合不是实质性的,只要它们的使用在打印机侧和在处理器侧是一致的从而使由一方送出的命令能够被另一方所理解就行。
3.6.1控制命令
控制命令用于控制打印机30的打印操作。以下是对各种控制命令的描述。
[LOAD]纸装载
装载命令造成纸装载,但不排放当前装载的记录介质。这种命令必须被送到打印机30,即使是当介质已经被手动装载时。
[EJECT]-纸排放
该命令打印剩余在打印缓存器中的所有数据,然后排放当前装载的介质。
[PRINT]-打印执行
打印执行命令使打印缓存器中的数据被打印到当前装载的记录介质上。打印区域从以下描述的[EDGE]命令的左和右参数指定的各个打印缓存器的左边缘至右边缘延伸。
[CARRIGE]-滑架运动
滑架运动命令包括以列位置为单位指定滑架位置的位置参数。该命令被用于向前和向后的寻找。
[SKIP]-栅跳过
栅跳过命令用于使纵向打印位置行进由一个跳过参数指定的栅行数。
[DATA]-图象数据发送
该命令用于把黄(Y)、品红(M)、青(C)或黑(Bk或K)位图象数据以列图象格式分别地传送到打印机30。多个序列的这种命令可被发出,以构成单个的扫描线。位图象数据被存储在由以下描述的块[BLOCK]和颜色[COLOR]命令指定的区中。打印机30将在接收到[PRINT]命令时实际开始打印。
3.6.2设定命令
设定命令指定打印机30进行的打印操作的设定。一旦这些命令得到设定,它们就是有效的,直到设定被另一命令所改变。如果没有为一个页提供设定,这些设定将被复置到缺省设定。设定命令将在下面得到更详细的描述。
[RESET]-打印机复置
该模式参数定义了打印机复置命令并指定了复置模式。包括了缺省设定,以用于数据压缩标记、缓存器大小、墨滴大小、打印速度、脉冲控制表、缓存器控制表等等。
[COMPRESS]-选择数据压缩
选择数据压缩命令的模式参数指定图象数据是得到压缩还是未得到压缩,未得到压缩的是缺省设定。
[DEFINE_BUF]-定义打印缓存器
定义打印缓存器命令被用于定义各个头A和B共同的存储器大小和打印缓存器139的结构。
[DROP]-选择墨滴大小
该命令用于指定各个打印头的墨滴大小(大或小)。
[SPEED]-选择打印速度
该命令用于指定打印速度。
[DIRECTION]-设定打印方向
该命令的方向参数指定打印是沿着向前方向(左向右)还是沿着向后方向(从右向左)。
[EDGE]-设定打印边缘
设定打印边缘命令指定以列位置为单位的打印位置的左边缘和右边缘;左边缘必须小于右边缘。
[BLOCK]-选择打印块
该命令用于指定以从各个打印缓存器的顶部以列位置为单位的数据块的左边缘和右边缘。[BLOCK]命令还指定[DATA]命令(如上所述)之后的位图象被存储在哪里。
[COLOR]-选择打印颜色
该命令用于指定打印缓存器139中在[DATA]命令(如上所述)之后的位图象数据被存储处与颜色相应的位置。
[DEFINE_PULSE]-定义加热脉冲表
[DEFINE_PULSE]命令用于定义多个不同加热脉冲块表。该脉冲块表必须在打印机30接收到[SELECT_PULSE]命令(它将在下面得到定义)之前得到定义。
[SELECT_PULSE]-选择加热脉冲表
选择加热脉冲表命令用于从[DEFINE_PULSE]命令定义的多个表中选择一个加热脉冲块表,该表是所有头共同的。
[DEFINE_CONTROL]-定义缓存器控制表
该命令用于定义多个不同打印缓存器控制表。该打印缓存器控制表必须在打印机接收到[SELECT_CONTROL]命令(在下面描述)之前得到定义。
[SELECT_CONTROL]选择缓存器控制表
该命令用于从[DEFINE_CONTROL]命令中定义的多个表中为打印头130a和130b的每一个选择一个打印缓存器控制表。
3.6.3维护命令
维护命令用于保持打印机30的打印操作并在下面得到更为详细的描述。
[RECOVER]-头恢复
接收到该命令使得打印机30进入头恢复模式,诸如清洗和墨抽吸操作。
[PCR]-改变脉冲控制比值
该命令用于改变脉冲控制表的比值。各个比值可被设定为从1至200,这意味着1%至200%。缺省设定是100,意味着100%。
[UCT]-国际定标时间
该命令用于设定打印机30中的当前时间,且必须在打印任务开始时被送到打印机30。打印机30用该时间判定打印机30是否应该恢复打印头。该时间值被表示为按照主处理器23的系统时钟从国际定标时间(UCT)1970年1月1日子夜(00:00:00)起过去的秒数。
[SCAN]-扫描检测器
该命令用于读取一个自动对准检测器值并把结果送回主处理器23。扫描速度、方向、分辨率和区域分别由上述的[SPEED]、[DERECTION][DEFINE_BUF]和[EDGE]命令定义。
[NVRAM]-VN-RAM控制
该命令用于从EEPROM 132读取数据并将读取的数据送回到主处理器23
[STATUS]-状态请求
该命令被用作一个前缀命令以把状态请求送到打印机30。请求可以是对基本设定、主状态、和详细状态的。
基本设定命令是主处理器23用于设定打印机30的命令且不一定要求来自打印机30的响应。
主状态请求/响应命令是用于获得常规模式下的状态信息的命令,并包括基状态[BASE_STATUS]、回送命令[ECHO]、打印头结构[HEAD]、对准检测器结果[SENSOR_RESULTS]、至主机的EEPROM数据传送[DATA_SEND]、以及送到主机的移位缓存器大小[BUFFER_SIZE]。对于发出的各个主状态请求/响应命令,一个响应被自动送回主处理器23。
详细的状态请求/响应命令被用于获得详细的状态信息。这些命令包括详细的任务状态[JOB_STATUS]、详细的忙状态[BUSY_STATUS]、详细的警告状态[WARNING_STATUS]、详细的操作员调用状态[OPERATOR_CALL]、以及详细的维修呼叫状态[SERVICE_CALL]。象主要状态请求/响应命令一样,对于所发出的各个详细状态请求/响应命令,一个响应被自动送回到主处理器23。
3.7往来于打印机引擎的命令
主处理器23和打印机30通过把消息插入邮箱219(见图22)而把命令送到打印机引擎131。这些消息由引擎任务206进行处理
4.0纸排放托盘
简要地说,本发明的这个方面是与在此描述的打印机一起使用的排放托盘。在结构上,打印机包括限定了介质馈送部分和介质排放端口的外壳,其中该外壳适合于容纳用于在记录介质上进行打印的打印引擎。排放托盘包括一个基座,该基座以可滑动的方式被接收在打印机的外壳中并处于与介质排放端口沿着横向方向相距的一个位置上。该基座包括至少一对沿着基座的滑动方向延伸的凹槽。在排放托盘中还包括一对活板。该对活板每一个都具有至少一个与基座与排放端口之间的横向距离相当的宽度部分。各个活板绞接到基座的相应凹槽中并经过一个弹簧而被向上施力-这提供了活板相对于基座的转动运动。在基座向外壳外滑动时,活板沿着向上离开凹槽的方向被施力而到达与介质排放端口的位置相应的一个高度。
如以下所述,前述的配置提供了纸排放托盘的方便的设定和存放。另外,前述的配置减小了从打印机排放的纸阻塞打印机的排放区的机会。
4.1第一实施例
图24显示了带有为使用而设定的纸排放托盘41的打印机30的立体图。此时,应该注意的是,虽然本发明的纸排放托盘是结合图1和24的打印机30描述的,但是本发明的纸排放托盘可用于接收从任何类型的设备(例如传真机等等)排放的纸或其他类型的记录介质。在此方面,为了便于描述,将结合纸来描述本发明。
图25显示了纸排放托盘41的详细立体图。如这些图中所示,纸排放托盘41包括基座240,两个活板241a和241b、弹簧242a和242b,以及托盘延伸部分244。活板241a和241b每一个都绞接到基座240的凹槽264a和264b之一的一个边缘上,如以下所详细描述的。另外,各个活板241a和241b分别经过弹簧242a和242b而沿着相对于基座向上的方向而被施力。另外,弹簧242a和242b提供了活板241a和241b相对于基座240受控的向上和向下的转动运动。
图26显示了活板241b至基座240的连接的闭合侧视图。在此方面,活板241a和241b都以相同的方式绞接在基座240上。相应地,在此只描述活板241b的连接。具体地活板241b经过设置在其各个端部的销246和247而得到绞接,且这些销被置于基座240的凹槽264b上的相应的接收孔(未显示)中。这些销形成了一个轴,活板241b绕着该轴相对于基座240转动。
包括在活板241b上的还有一个中心杆248,如图26所示。弹簧242b绕在中心杆248上并与活板241b和基座240相连。当纸排放托盘41在外壳31之外时,弹簧242b的固有张力使活板241b沿着向上的方向到达凹槽264b之外。因此,当没有向下的力加到活板241b上时,活板241b处于相对于基座240的一个初始角度。图24中显示了这初始角度的例子,标为249a和249b。在本发明的最佳实施例中,该初始角度小于30°。
当向下的压力被加到活板241a和241b上时,弹簧242a和242b被压缩。然而,弹簧242a和242b,至少直到预定量的压力被加到活板241a和241b上时,防止了活板241a和241b与基座240接触。因此,当压力被加到活板241a和241b上时,活板241a和241b向下向着基座240转动,但是以一种受控的方式进行这种转动。在此运动期间,各个活板241a和241b与基座240之间的角度从初始角度减小,如果压力足够大则角度最终减小到0°。在此方面,使各个活板241a和241b移动到0°所需的压力是基于与弹簧242a和242b之一相应的张力。
较好地,活板241a和241b每一个都具有一个宽度部分,它大体相当于基座240与介质排放端口40之间的横向距离。为了显示之点,图27显示了平贴在基座240上的活板241a和241b。具体地,如图27所示,活板241a包括四个边缘,即支撑从打印机30排放的纸的顶边缘250、连接到基座240的底边缘251、以及侧边缘254和252(即上述的宽度部分)。
较好地,对着打印机30的各个活板的边缘即用于活板241a的侧边缘252和用于活板241b的侧边缘252b,带有斜角(即渐细)并如图25所示地沿着离开打印机30的方向形成角度。更具体地说,由于边缘252和252b是斜角形的,当这些边缘与打印机30的外壳31接触时,这些边缘相对于外壳31滑动从而使活板241a和241b折叠。最终,活板241a和241b折叠到足够的程度从而使横向推力迫使打印机30从而进入托盘接收部分42。这种特征在下面得到更为详细的描述。
图25A显示了活板241b的边缘252b的闭合图。如上所述,且如图25A所示,边缘252b是斜角形的,意味着它相对于顶边缘250b和基座240形成了角度。图25B和25C进一步显示了这种特征。在此方面,图25B显示了活板241b的闭合侧视图。图25C显示了在位置A-A沿着虚线63取的活板241b的剖视图。因此,如图25C所示,斜角形的缘252b相对于顶边缘250b和基座240形成了角度。这种角度在图25C中被标为255且在本发明的最佳实施例中大约为45°。
因此,当排放托盘41被推向打印机30时,如在托盘41的存放期间的情况那样,活板141a和141b的斜角形的缘与打印机30的外壳31接触,具体是外部的缘272。响应于这种接触,且当额外的横向推力被加上时,外部边缘272与斜角形的缘之间的接触迫使活板241a和241b向下移向基座240上的凹槽。如果施加了足够的力,活板241a和241b被强迫向下足够的程度从而滑动到外部缘272之下并进入托盘接收部分42。本发明的这种特征将在下面得到更为详细的描述。
侧边缘252还包括部分253(相应侧边缘252b包括类似的部分253b),它较好地不是斜角形的或具有角度的。这种设置提供了平坦的表面,以使各个活板241a和241b经过销246与基座240相啮合,从而增大啮合的结构强度。侧边缘253和253b装入外部缘272之下因而不会对将排放托盘41存放到托盘接收部分42中产生不利的影响。
对于侧边缘254,在所示的例子中该边缘既不是具有角度的也不是斜角形的。然而,如果希望的话侧边缘254可具有角度并是斜角形的,以便利从打印机30拉出纸排放托盘41。
对于顶边缘250和底边缘251,这些边缘较好地是不彼此平行,从而减小排放的纸发生弯曲的可能。即,在本发明的最佳实施例中,顶边缘250相对于底边缘251和基座240略微地向上形成角度,从而便利所排放的纸向下的运动。因此,顶边缘250与底边缘251之间的距离在侧边缘252(斜角形的缘)与顶边缘250之间的交点260处处于最小。这种距离在离开交点260时增大,从而使该距离在交点261即侧边缘254与顶边缘250相交的点处于最大。顶边缘250相对于底边缘251的这种具有角度的结构,减小了纸在排放期间从活板241a和241b落下的机会。
如上所述,基座240还包括凹槽264a和264b(见图24和25),它们对应于活板241a和241b中相应的一个且它们沿着基座240的滑动方向延伸。在最佳实施例中,凹槽264a和264b中的每一个都具有与活板241a和241b中的相应的一个的形状相应的形状。借助这种配置,当一个活板(诸如活板241a)与基座240之间的角度大体为0°时,该活板能够几乎完全地装入其相应的凹槽中。当两个活板都被如此装入时,基座240的顶表面266-包括活板241a和241b-基本上是平面状的,如图27所示。这便利了纸排放托盘41至托盘接收部分42中的滑动,如下所述。
更具体地说,如上所述,打印机30包括托盘接收部分42(见图24)-它当打印机30未被使用时存放纸排放托盘41。图28是打印机30的底视图,它显示了托盘接收部分42。如所示,托盘接收部分42较好地包括在打印机30的底侧上的一个开口或类似的部分,纸排放托盘41(包括托盘延伸部分244)被装入该开口。当活板241a和241b相对于基座240处于0°或基本上接近于0°时,纸排放托盘41能够在托盘接收部分42内滑动。在此方面,图1显示了存放在打印机30内的纸排放托盘41的正视图。
纸排放托盘41还可包括上述的托盘延伸部分244。如图24所示,托盘延伸部分244较好地滑入或出基座240内的开口。这便利了纸排放托盘41在打印机30中的存放。另外,托盘延伸部分244包括手动止动器269。手动止动器269被用于把托盘延伸部分244滑入或滑出排放托盘41中的开口并防止排放的纸从纸排放托盘41落下。
另外,手动止动器269能够有助于设定和存放纸排放托盘41。即,如图1所示,当纸排放托盘41被存放在托盘接收部分42中时,手动止动器269并未被完全地装入托盘接收部分42,因而用户仍然能够对其进行操作。通过握住手动止动器269并把手动止动器269从打印机30拉出,用户能够为操作设定纸排放托盘41。相反地,通过把手动止动器269推向打印机30,用户能够把纸排放托盘41存放到打印机30中。这些操作在下面将得到更为详细的描述。
在此方面,图29A至29D显示了纸排放托盘41在使用期间的操作。参见图2和24,对纸排放托盘41的设定和存放进行描述。图1显示了不使用时的打印机30。在此配置中,纸排放托盘41被存储在托盘接收部分42中。较好地是在打印机30不使用时把纸排放托盘存放起来,因为存放减小了纸排放托盘41受到损坏的可能性。
为了设定纸排放托盘41,用户只需要把纸排放托盘41从打印机30拉出,从而使纸排放托盘41从外壳31中的托盘接收部分42滑出。这通常是通过拉动手动止动器269而进行的,虽然拉在纸排放托盘41的其他部分上也能够实现相同的结果。在这种拉动中,活板241a和241b保持在相对地平贴在基座240上的状态,直到活板241a和241b脱离托盘接收部分42。
一旦活板241a和241b脱离托盘接收部分42,活板241a和241b分别沿着向上离开凹槽264a和264b的方向受到施力,从而到达与介质排放端口40的位置相应的高度。即,当活板241a和241b脱离托盘接收部分42时,不再有任何作用把活板241a和241b保持在基座240上。结果,弹簧242a和242b使得活板241a和241b向上得到施力,从而使活板在向上看时呈现大体V形。如上所述,此时,各个活板241a和241b相对于基座240处于一个较好地是小于90°的角度。一旦活板241a和241b处于这种位置。打印机30可开始把纸排放到纸排放托盘41上。
图29A至29D显示了为接收从打印机30排放的纸而设定的纸排放托盘41的正视图。如图29A所示,在上面被称为初始角度的角度249a和249b相对于基座240小于90°。由于角度249a和249b小于90°,从活板241a和241b排放的纸的重量将使得活板向下移动,从而分别减小角度249a和249b。这在图29B中得到了显示。
更具体地说,图29B显示了一种情况,其中纸排放托盘41已经接收了几张纸270一它们是从打印机30排放的。如所示,纸270的重量使活板241a和241b向下向着基座240运动。其结果,活板与基座之间的角度249a和249b从初始角度减小。图29C显示了一种情况,其中更多的纸被加到纸排放托盘41上,从而迫使活板241a和241b进一步向下,因而进一步减小了角度249a和249b。这种作用减小了打印机30操作期间从介质排放端口40排放的纸阻塞介质排放端口40的可能性。
图29D显示了一种情况,其中活板241a和241b接收了更多的纸。在此情况下,活板241a和241b上的纸270的重量足以迫使活板241a和241b相对于基座240成约0°角。其结果,各个活板241a和241b将被强迫至凹槽264a和264b中相应的一个上。因此,与其传统的相应打印机相比,打印机30能够在基本上不阻塞介质排放端口40的情况下打印更多的纸。
如上所述,活板241a和241b响应于施加的力而向下移动的程度取决于相对于基座240对活板241a和241b施力的弹簧242a和242b的张力。如上所述,在本发明的最佳实施例中,弹簧242a和242b具有一个张力,从而使活板241a和241b在没有纸被排放到其上时被偏置到介质排放端口40的高度。在本发明的一个特别好的最佳实施例中,所有的纸的排放位置都保持大体相同。
另外,在本发明的最佳实施例中,活板241a和241b都具有大体相同的形状,且如上所述地具有与基座240的相同连接。与活板241a和241b相结合的弹簧242a和242b还较好地具有大体相同的张力。借助这种对称性,本发明能够保持更多的纸并减少机械故障。在此方面,应该注意的是,纸排放托盘41还可在活板241a和241b具有不同的形状且弹簧242a和242b产生不同的施力的情况下进行操作。
以下结合图2和24描述纸排放托盘41在打印机30内的存放。在此方面,如图24所示,打印机30上的托盘接收部分42包括外部边缘272。另外,活板241a和241b每一个都包括对着打印机30的一个侧边缘(即图25和27显示的侧边缘252和252b)-它沿着离开打印机30的方向形成一个角度且它是斜角形的,如以上结合图25A、25B和25C所描述的,从而使该侧边缘大体上是平的并相对于顶边缘和基座形成角度。如下所述,这些侧边缘即侧边缘252和252b具有这样的构造,从而便利了将纸排放托盘41存放在托盘接收部分42中。
更具体地说,为了把纸排放托盘41存放在托盘接收部分42中,用户只需要沿着横向方向推动基座240(或托盘延伸部分269)。这种横向推动迫使活板与外壳31共同作用,从而在回到外壳31的滑动时把活板折叠回到凹槽中。具体地,该横向推动迫使托盘接收部分42之下的部分253和侧边缘252和252b贴在托盘接收部分42的外部边缘272上。外部边缘272以一个相等但相反的力作用在侧边缘上以进行“响应”。由于侧边缘252和252b是斜角形和带角度的(见例如图25A),所以这种相等但相反的力包括了一种向下的分量-它迫使活板241a和241b向下移向基座240。当额外的横向推力作用在排放托盘41上时,侧边缘252和252b贴着外部边缘272滑动,迫使活板进一步向下移动。
象上述情况一样,当活板241a和241b向下运动时,活板241a和241b与基座240之间的角度减小。由于侧边缘的角度,当额外的力被加到侧边缘上时,活板241a和241b继续沿着外部边缘272滑动,从而迫使活板241a和241b进一步向下移动。最终,如果施加了足够的横向推力,活板241a和241b被强迫向下至这样的程度,即它们在凹槽264a和264b内折叠起来。因此,纸排放托盘41可方便地滑入托盘接收部分42。图1显示了存储在打印机30的托盘接收部分42内的纸排放托盘41。
因此,与其传统的相应打印机不同,本发明提供了用于存储纸排放托盘41的装置-它不需要用户进行太多的物理操纵。另外,由于活板241a和241b和外壳31的形状首先是为了方便纸排放托盘41的存放的,所以纸排放托盘41上的额外的机械部件的数目减小了。
此时,应该注意的是,用于保持记录材料的保持部件(例如活板)的形状也可以是变化的。在此方面,本发明还可利用两个以上的保持部件的单个的保持部件来实施。例如,本发明可利用单个的V形保持部件实施,其中一或多个施力弹簧位于保持部件的相对的臂之间。图29E中显示了可用于打印机2460的本发明的纸排放托盘的第二实施例。
4.2第二实施例
如图29E所示,纸排放托盘2400包括一个单个的活板,即活板2410。活板2410绞接在单个的凹槽2440之内并由一个弹簧(未显示)相对于凹槽2440进行施力。活板2410以与上述第一实施例中类似的方式进行操作。因此,为了简化在此省略了详细描述。只要说当托盘2400被推向打印机2460时活板2410的顶表面2450与打印机2460共同作用从而使活板2410被折叠在凹槽2440之内,就足够了。这使得活板2410能够被存放在打印机2460中。类似地,当托盘2400被从打印机2460中拉出时,在活板2410之下的一个弹簧(未显示)把活板2410偏置到一个大体上与打印机2460的介质排放端口2465的高度相同的高度。
在打印期间,活板2410以与上述第一实施例中的活板类似的方式进行操作。具体地,当纸被排放到活板2410上时,活板2410向下移向凹槽2440并最终在足够的纸被排放时被移入凹槽2440。如在上述情况下那样,活板2410的向下运动经过一个弹簧(未显示)-它相对于凹槽2440而对活板2410施力-而得到控制。
最后,应该注意的是,虽然本发明的纸排放托盘是对于单个的活板和一对活板进行描述的,本发明也可被用于多个活板。
5.0墨清洗装置
简要地说,本发明的该方面是一个盒接收部分,它被安装在一个滑架上以便以可释放的方式接收一个具有打印头和至少一个可拆卸墨罐的盒。该接收部分包括一个枢轴杠杆-它允许拆下至少一个墨罐。该杠杆在至少一个墨罐的至少一部分上延伸,从而防止对至少一个墨罐的操作,直到杠杆离开至少一个墨罐作枢轴运动。当该杠杆离开至少一个墨罐作枢轴运动时,且随后杠杆在至少一个墨罐的至少一部分上方进行枢轴运动时,一个信号得到输出,该信号提示对打印头的清洗。
如结合图4所描述的,打印机30包括盒接收部分64a和64b。对盒接收部分64a和64b中的墨盒(因而对这些盒中的墨罐)的操作是通过图2中显示的检修门32而自动提供的。更具体地说,如上所述,打印机30包括一个检测器,它检测检修门32的打开或关闭。响应于这种检测器对检修门32已经打开的检测,滑架马达66得到驱动从而使盒接收部分64a和64b大体向着滑架69的中心移动,即向着图4显示的位置移动。打印机30的该区域对应于在检修门32被打开时可进行操作的打印机30的内部部分。因此,可以只通过打开检修门32而对盒接收部分64进行操作。这种设置的意义将在下面得到更为详细的描述。
图6A和6B显示了盒接收部分64b的物理结构。图7A和7B显示了墨盒300b的物理结构,而墨盒300b可被安装到盒接收部分64b中。如上所述,图6A和6B显示的盒接收部分的电路触头和图7A和7B显示的墨盒被用于与墨清洗装置的连接。更具体地说,根据本发明,盒接收部分上的一个电路触头响应于盒接收部分的杠杆的打开和关闭而与在墨盒上的一个电路触头相接触或脱离。
图6A和6B显示的盒接收部分在操作中的正视图在图30A和30B中得到显示。如图30A和30B所示,盒接收部分64b包括舱73和杠杆72,和其他部分。杠杆72得到绞接从而使它能够相对舱73作枢轴运动。这种枢轴运动允许用户操作或拆下盒接收部分64b中的整个墨盒或只从盒上拆下墨罐。
杠杆72还与舱73相连,从而当杠杆72进行枢轴运动(例如打开或关闭)时,舱73横向移动,如结合图6B所详细描述的。更具体地说,当杠杆72从图30B显示的打开位置枢轴运动到图30A显示的闭合位置时,舱73沿着箭头280(见图30A)的方向在盒接收部分64b中横向移动。这种运动造成舱73的侧壁75与盒接收部分64b的侧壁78相接触。另一方面,当杠杆72从图30A显示的闭合位置移到图30B显示的打开位置时,舱73在盒接收部分64b中沿着箭头281(见图30B)的方向横向移动。这种运动造成舱73的侧壁75离开盒接收部分64b的侧壁的运动。
在上述运动即舱73在图30A显示的位置与图30B显示的位置之间的移动期间,舱73上的指282以可滑动的方式与套284相啮合。如图30A和30B所示,舱73包括台肩286,且杠杆72包括凸缘287。因此,当杠杆72被关闭时,如图30A所示,凸缘287与台肩286接触,而不与安装的墨盒或墨罐接触。借助这些特征,与杠杆72的无意接触造成的盒运动可得到减小。
图31A和31B显示了其中安装有墨盒300b的盒接收部分64b。如图31A所示,当杠杆72在墨罐83的一部分上枢轴运动时,即杠杆72处于关闭位置时,操作员不能对墨罐83进行操作。即,在此位置,墨罐83的顶部至少部分地被杠杆72掩盖,从而限制了对其的操作。另外,在此位置,在墨盒300b上的盒电路触头81与盒接收部分64b上的装置电路触头71相接触。相反地,当杠杆72进行离开墨罐83的枢轴运动即杠杆72处于打开位置时,操作员能够对墨罐83进行操作。在此位置,墨盒300b上的盒电路触头81与盒接收部分64b上的装置电路触头71相脱离。
因此,在以上结合图30A和30B描述的舱64b的横向运动期间,电路触头71和81相啮合和脱离。具体地,电路触头71和81在杠杆72打开时脱离,且当杠杆72关闭时啮合。电路触头的这种啮合和脱离是用户指定打印头300b的清洗的手段,并使得一个信号得到输出从而提示打印头300b的清洗。打印机30中的一个控制器(诸如上述CPU 121)接收这种信号并启动以下所述的清洗处理。
在此方面,应该注意的是打印机30中的一或两个墨盒能够以前述方式得到指定而进行清洗。进一步应该注意的是,墨液清洗只是对以这种方式被指定的盒进行的。
一旦墨盒得到了指定,墨清洗在检修门32被关闭前不会实际进行。即,在墨盒指定期间,检修门32必须被打开。在上述检修门检测器检测到检修门32被关闭前,将不会发生墨液清洗。在此方面,一旦检测到检修门32被关闭,盒接收部分64a和64b自动移到起始位置87,即与墨清洗装置86相应的位置。墨清洗装置86随后被用于从指定的盒的打印头清洗(即抽吸)墨液。
为此,墨清洗装置86包括两个打印头连接盖88aa和88b(见图4)。各个这些打印头连接盖分别对应于在盒接收部分64a和64b之一中的一个墨盒的打印头。然而,只有一个打印头连接盖即盖88a与从打印头清洗(即抽吸)墨液的转动泵相连。这种配置的一个例子被显示在图32中,其中打印头连接盖88a与泵294相连。
因此,当检修门32关闭时,被指定进行清洗的墨盒的打印头与打印头连接盖88a相连。例如,如图33A的框图所示,如果墨盒300b已经被指定进行清洗,墨盒300b被移动而与盖88a接触。另一方面,如果墨盒300a已被指定进行清洗,墨盒300a在检修门32关闭时移到与盖88a接触的位置,如图33B描述的框图所示。在两个墨盒都以上述方式被指定进行清洗的情况下,墨盒依次与盖88a相连。
一旦经过上述的起始位置检测器检测到连接,墨液被泵294从喷嘴或盒的打印头上的孔提取(即抽吸)。在此清洗操作之后,盒可随后被用于打印。
6.0存储打印机状况参数
简要地说,本发明的该方面是用于控制具有至少一个打印头的图象打印装置的打印头的一种方法。该方法包括获得至少一个打印头的特征信息、将该状况参数存储在一个非易失RAM中、在得到请求时把该特征信息输出到与图象打印装置相连的主处理器,其中该主处理器利用了打印头特征信息来产生对从主处理器送到打印头以进行打印的特征信息进行补偿的补偿参数。
详细地说,当加上电力并进行硬加电时,打印机30进入离线模式。在此模式下,打印机30中的CPU 121从ROM 122获取初始化软件并执行一种加电自测程序(POST)。在它执行的很多自测和状态检查程序中,CPU121检查打印头130a和130b的状态以确定一或两个打印头是否已经被装在打印机30中。CPU 121检查这种状态的一种方式,是通过确定检修门32是否已经被打开,且如果是则把存储在EEPROM 132中的打印头识别(ID)信息与当前打印头的ID进行比较。如果新的打印头已经得到安装,这种改变将与其他存储的打印机状况参数一起在EEPROM 132中得到注意,如下面所述。
然而,在初始安装和加电时,CPU 121收集有关打印机30的各种状况参数,作为其安装程序的部分。例如,CPU 121将获得打印机ID、打印头ID信息(或者如果安装了一个以上的打印头,则获得所有打印头的打印机ID),以及打印机30和打印头130a和130b的当前状态(这种特征在任何随后的加电以及指定的预定次数和事件之后也得到执行,这将在下面得到更为详细的描述)。
一旦POST处理已经得到执行,打印机30进入在线模式且等候来自主处理器23的命令。如图10所示,主处理器23把命令通过打印机接口104直接送到打印机30的控制逻辑124。来自主处理器23的对打印机30的EEPROM 132的读/写命令也通过打印机接口104和控制逻辑124。
通常,在进入在线之后,主处理器23将经过控制逻辑124把一个状态请求命令[STATUS]送到打印机30。在接收到这种状态请求命令时,打印机30的CPU 121将把存储的打印机状况参数从EEPROM 132、I/O端口单元127、以及控制逻辑124送到主处理器23。存储在EEPROM 132中的指定区域并借助主处理器23寄存的打印机状况参数的一个例子,被显示在以下的表1中。
                         表1
EEPROM的内容
废墨量
打印头改变计数
驱动器信息
打印头清洗时间
改变的打印头
前述的这些打印机状况参数被主处理器23在打印操作期间用来补偿打印头命令数据。
因此,结合图34显示的流程图,在步骤S3401,在进行硬加电时,打印机30进入一种离线模式。在此离线模式下,在步骤S3402打印机30进行一种POST操作以收集状态和功能性数据,并检查硬件或软件故障。在初始化之后,在步骤S3403,打印机30的CPU 121判定是否已经安装了新的打印头。当在安装打印机30之后的初始加电期间遇到步骤S3403且一或多个分别具有一或多个打印头的墨盒已经被安装的情况下,CPU 121从新插入的打印头获得信息并将该信息存储在EEPROM 132中并在下一个软加电时命令一个清洗处理。然而,如果打印机30只是由于用户已经打开了检修门32并安装了新的打印头而处于离线,在步骤S3404CPU 121将收集打印头ID并在EEPROM 132中设定一个标记,这表明打印头已经得到改变。该标记告诉主处理器23一个墨盒已经被改变了。这种处理将在第一次安装打印头和打印头随后被改变时得到执行。
在此方面,EEPROM 132存储了用主处理器23寄存的用于各种目的的多个打印机状况参数,诸如用于向主处理器23提供补偿的参数-这些参数又被用于补偿打印头和打印头盒内的墨液的物理特性。例如,如以下的表2所示,EEPROM 132除了打印头对准和光学密度信息之外还存储与废墨量、打印头改变计数、打印头清洗次数、打印头ID、打印头类型等等有关的信息和参数。表2
内容 说明
驱动程序的信息 打印机驱动程序读/写对准数据等等
检查和 该数据块的检查和
右头(A头)的清洗时间 右头(A头)最近的清洗时间清洗时间
左头(B头)的清洗时间 左头(B头)最近的清洗时间清洗时间
检查和 该数据块的检查和
改变的打印头 打印头是否改变的状态
右头(A头)的清洗时间[Mirror] 用于在系统Master中进行恢复的备份
左头(B头)的清洗时间[Mirror] 用于在系统Master中进行恢复的备份
检查和 该数据块的检查和
回到图34,如果未安装新的墨盒,在步骤S3405打印机30进入一种在线模式,其中打印机30能够与主处理器23通信,且如果是网络连接的,能够与主服务器进行通信。一旦在线,打印机30等候接收来自主处理器23的命令。这些命令-有些已经在前面列出-是能够在打印机30在线时送到打印机30的通常的命令。在此方面,通常在进入在线之后,主处理器23将向打印机30输出一个状态请求[STATUS]命令,以获得打印机离线时可能被改变的新的信息或参数。作为响应,在步骤S3406打印机30将把存储在EEPROM 132中的打印机状况参数传送到主处理器23。在收到这些参数时,主处理器23将回顾这些参数,特别是与打印头有关的参数,以确定打印头是否已经被改变。如果确定打印头已经被改变,在步骤S3407主处理器23将判定是否应该请求一个测试图案。通常,将打印一个测试图案以能够测量打印头对准和打印的图象的光学密度。如果打印头已经得到改变且要求一个测试图案,在步骤S3408主处理器23通过打印机接口104和控制逻辑124把一或多个命令送到打印引擎131。例如,主处理器23能够传送一系列命令,如图3所示。这些命令能够与打印数据一起发送到打印引擎131从而打印所要扫描的测试图案。
                            表3测试图案和扫描命令流程的例子
BC-21×2、彩色模式、360dpi和8.5″打印缓存器139情况下的样本命令流程如下:[UCT]                 世界定标时间(设定当前时间)[RESET]               打印机复位(软件复位)[COMPRESS]            选择数据压缩(字节压缩模式)[DEFINE_BUF]          定义打印缓存器A(360dpi,12字节×3060
                  列,……)[DEFINE_BUF]          定义打印缓存器B(360dpi,12字节×3060
                  列,……)[DEFINE_PULSE]        定义加热脉冲表(16分区)[DEFINE_CONTROL]      定义缓存控制表(BC-21彩色模式)[LOAD]                纸装载(函件大小的普通纸,8.5英寸×11英寸)[SKIP]                第一扫描的至打印位置的栅跳过[DIRECTION]           为第一扫描设定打印方向[EDGE]                为第一扫描设定头A的左和右边缘[EDGE]                为第一扫描设定头B的左和右边缘循环1:开始           重复直到[EJECT]命令[SPEED]               选择第一扫描的打印速度(6.51kHz)[DROP]                选择第一扫描中头A的墨滴大小[DROP]                选择第一扫描中头B的墨滴大小[SELECT_PULSE]      选择下一个扫描的加热脉冲表[SELECT_CONTROL]    选择第一扫描中头A的缓存器控制表[SELECT_CONTROL]    选择第一扫描中头B的缓存器控制表循环2:开始         对9块(4.5英寸/0.5英寸)乘2头(头A和头
                B)重复18次[BLOCK]             选择打印块循环3:开始         为4颜色(黄、品红、青、黑)重复4次[COLOR]             选择打印颜色[DATA]              图象数据发送(540字节/块)循环3:结束循环2:结束[DIRECTION]         设定第二扫描的打印方向[EDGE]              设定第二扫描的头A的左和右边缘[EDGE]              设定第二扫描的头B的左和右边缘[PRINT]             执行第一扫描的打印[SKIP]              至第二扫描的打印位置的栅跳过(24栅)[SCAN]              扫描测试图案并在RAM中存储数据[SENSOR_RESULTS]    发送扫描结果[NVRAM]             把补偿参数写入EEPROM[EJECT]             纸排放(只进行排放)
一旦打印了测试图案,在步骤S3409主处理器23输出一个扫描[SCAN]命令至打印机30,后者借助打印头130a和130b上的检测器82对打印的测试图案进行扫描。具体地,在接收到[SCAN]命令时,各个打印头130a和130b将返回到起始位置87-此时各个检测器82的盖被打开且测试图案被打印在其上的纸被送进,从而使打印的测试图案与检测器82对准。
各个检测器82扫描打印的测试图案的一个部分-该部分已经被其相应的打印头所打印,并将所产生的测试图案数据(即对准测量数据)存储在RAM 129中。这种测试图案数据是从对检测器82的输出电压电平进行的模拟-数字转换获得的8位数字化的数据。
存储在RAM 129中的测试图案数据保持在那里,直到主处理器23把一个状态请求[SENSOR_RESULTS]命令送到打印机30。在接收到该[SENSOR_RESULTS]命令时,在步骤S3410打印机30把存储在RAM129中的测试图案数据发送到主处理器23。当接收到该数据时,主处理器23从盘25获取补偿公式并把接收的数据用于这些公式以导出补偿参数。一旦计算出了补偿参数,主处理器23把一个[NVRAM]控制命令送到打印机30,使得打印机30在步骤S3411把补偿参数写入到EEPROM 132中。
如前所述,EEPROM 132为打印头130a和130b分别存储参数和测量结果,且补偿参数是根据各个打印头的对准和光学密度而分别计算和下载的。在以下的表4中显示了由主处理器23下载补偿参数的类型的一个例子。
                     表4
内容
打印机Id
头Id(头A)
状态(头A)
X对准(头A)
Y对准(头A)
向前对准(头A)
向后对准(头A)
向前光学密度(头A)
向后光学密度(头A)
头Id(头B)
状态(头B)
X对准(头B)
Y对准(头B)
向前对准(头B)
向后对准(头B)
向前光学密度(头B)
向后光学密度(头B)
保留
以上显示的信息和参数与打印头130a和130b的对准以及各个打印头130a和130b打印的图象的光学密度有关。主处理器23在打印操作中当把打印头命令信号送到打印头130a和130b时利用这种信息。
回到图34的流程图,在步骤S3411,打印机30等候来自主处理器23的进一步的命令。
在步骤S3413,主处理器23把一个状态请求[DATA_SEND]命令送到打印机30且打印机状况参数重新被主处理器23寄存。该[STATUS]命令可在指定的时间间隔或在诸如更换打印头的指定打印机事件之后被送到打印机30。随后,在步骤S3414主处理器23利用该打印机状况参数,以在把打印信息送到各个打印头130a和130b时补偿各个打印头130a和130b以及与各个打印头130a和130b相连的墨盒中的墨液的物理特性和变化。
因此,打印机30记忆了分别来自主处理器23的特征。这使得另一个主处理器能够从打印机30读取寄存的特征以补偿与打印机30有关的物理特性。
7.0打印头的计划清洗
简要地说,在此实施例中公布的本发明的一个方面是一种喷墨打印机,它包括用于与主处理器相连并用于接收打印数据、打印命令和来自主处理器的实时/日期信息的一个接口、用于存储该打印数据、打印命令和实时/日期的存储器、用于根据该打印数据和打印命令打印图象的打印引擎-该打印引擎控制至少一个打印头以打印该图象、以及用于根据经过接口从主处理器接收的实时/日期信息以及根据与打印机有关的事件控制打印引擎的处理事件的处理器。
更具体地说,由于吸入气泡或干燥的墨而导致打印头喷嘴堵塞,打印机30的打印头130a和130b必须得到清洗。该清洗处理包括把打印头移到其起始位置-在那里转动泵294从打印头抽吸墨液。所产生的废墨被置于一个废墨存储区(诸如一个废墨井),在那里废墨最终逐渐蒸发。重要的是在预定的时间之后清洗打印头130a和130b,该时间在本发明中被确定为最近的清洗过后73个小时。如果不这样做,打印头可能堵塞,从而对打印质量产生不利影响。另外,为了保证喷墨打印机30的适当操作,各个打印头130a和130b在墨盒安装和每次更换墨盒时都得到清洗。
如上所述,除了按照事件计划的清洗之外,打印机30根据已过时间进行打印头清洗。已过时间是通过确定从最近的清洗过去了多少时间而确定的。清洗操作的手动初始化的一个例子在部分5.0中得到了描述。已过时间是根据在每一个打印任务开始时从主处理器23下载的一个实时/日期印记而确定的。以此方式,打印机30将能够跟踪从最近的清洗处理过去多少时间。
以下结合图35的流程图来更多详细地描述前述的处理。在安装和第一次把电力加到打印机30上时,在步骤S3501,硬加电开始对打印机30的清洗安排处理。在步骤S3502和步骤S3503,打印机30的CPU 121,通过执行存储在ROM 122中的处理步骤,进行其加电自测初始化程序。CPU121用这些程序检查并定义各种硬件参数。在步骤S3504,CPU 121读取存储在EEPROM 132中的各种参数。这些参数已经在上述的部分6.0中得到讨论。为了本发明的这个方面,CPU 121只对为各个打印头130a和130b列出的最近的清洗时间有兴趣。正是这种信息是安排下一个清洗时间所需的。然而,如果EEPROM 132还没有被初始化,最近的清洗时间将被设定为零。
如上所述,EEPROM 132保持打印机30使用的所有打印头的特征信息。EEPROM 132把打印头130a和130b的最近清洗时间保持在单独的存储单元中。各个清洗时间还与一个检查和值一起存储。即清洗时间借助检查和处理或CRC检查处理而得到了数据误差校正。清洗时间和检查和被镜象存储在单独的存储单元或EEPROM 132中,以防止在意外的断电时或在向EEPROM 132的写入操作中间发生硬复位时可能发生的清洗时间的丢失。其结果,即使发生了意外也可保证至少一组清洗时间。
在步骤S3505,CPU 121复位变量Delta T_A-它代表了从打印头A(例如图10的打印头130a)最近被清洗之后过去的时间。该变量,在使能时,以一秒的间隔增加并在每次硬去电时被清除。类似地,CPU 121还复位打印头B(例如图10的打印头B)的Delta T B。CPU 121此时复位其他的指示标记,诸如指示是否设定了一个实时的FlagRealTimeActive、指示是否复位了实时的FlagRealTimeReset、只在未设定实时时指示Delta T A值指示打印头A的最近的清洗时间的FlagRecordYet A、以及表示来自打印头B的类似信息的FlagReeordYet B。在本发明的清洗安排处理期间被设定和复位的这些变量和标记都被列在了表5中。表5
变量/标记 定义
RealTime 表示当前时间且其值只在FlagRealTimeActive被设定时是有效的。另外,它在该值有效时每秒都增加。
Delta T_A 表示从A头的最近清洗过去的时间且其值只在FlagRealTimeActive被复位时是有效的。另外,它在有效时每秒都增加。
Delta T_B 表示从B头的最近清洗过去的时间且其值只在FlagRealTimeActive被复位时是有效的。另外,它在有效时每秒都增加。
FlagRealTimeActive 表示RealTime标记是否被设定
FlagRealTimeReset 表示RealTime标记是否已被复位
FlagRecordYet_A 只在RealTime标记未被设定时表示Delta_A值是否表示从A头的最近清洗过去的时间。
FlagRecordYet_B 只在RealTime标记未被设定时表示Delta_B值是否表示从B头的最近清洗过去的时间。
在步骤S3506,CPU 121判定各个打印头的最近清洗时间是否等于零。在此方面,在打印机是新安装的情况下,这些变量将被读为零。因此,在步骤S3507,从清洗打印头A过去的时间将被置为一个预定时间,如上所述,该时间为73小时。其结果,在进行软加电时,打印机30将执行对打印头A的清洗操作。步骤S3508和步骤S3509对打印头B进行类似的操作。
在步骤S3510,CPU 121启动清洗安排处理。在步骤S3511,CPU 121等候软加电和来自主处理器23的命令。在初始安装的情况下,在此步骤将对各个打印头进行清洗处理。
7.1清洗安排处理
如上所述,在初始化之后,CPU 121在图35的步骤S3510启动清洗安排。现在结合图36的流程图对保持已过时间安排的方式进行更为详细的描述。在清洗处理已经作为中断处理而得到启动的情况下,所显示的处理是在每一秒钟进行的。
具体地,在步骤S3601,清洗安排处理得到启动且对于打印头A和B已过时间以每一秒增加。在步骤S3602,判定是否已经设定了FlagRealTimeActive。该标记将表明已经从主处理器23下载了实时。在该标记还未被设定的情况下,流程进行到步骤S3603,在那里判定从打印头A最近的清洗过去的时间是否达到了预定的最大时间73小时或者其变化范围的最大值。如果达到了,然后流程进到以下所讨论的自动清洗过程。另外,如果DeltaT_A的值达到最大值,则它能够被忽略或复位。这防止了在存储器中数值溢出。
如果从上次清洗起的时间还没有达到最大时间,则在步骤S3604DeltaT_A增加一秒。由于在收到实时之前打印机30可能闲置超过73小时,故执行这一过程。如果是这种情形,将根据来自打印机30内部时钟所经过的时间执行清洗,以后是在软加电或自动清洗过程中执行清洗。在步骤S3605和S3606对打印头B执行类似的过程。
在已经设置FlagRealTimeActive的情形下,这意味着主处理器23已经下载时间/日期印记,在步骤S3607,判断RealTime是否达到73小时这一最大值或在其可变范围的最大值。如果已经达到,则流程进到以下讨论的自动清洗顺序。另外,如果RealTime的值达到最大值,则它可能被忽略或复位。这防止了存储器中数值溢出。另一方面,如果实时没有达到最大值,则实时在步骤S3608增加一秒。
在软加电时,返回图35的步骤S3511,流程进到图37中的步骤S3701,该步骤等待软加电。然后,在步骤S3702,CPU 121判断用户是否已经请求软加电。如果回答为是,则CPU 121在步骤S3703和S3704执行软件程序和打印机单元机械的初始化。在完成了初始化时,CPU 121在步骤S3705指示每一打印头在需要时执行自动清洗操作(将在以下更详细讨论自动清洗操作)。
在执行了自动清洗操作之后,打印机30在步骤S3706联机,并等待或者来自主处理器23的打印命令,或者在步骤S3707由用户输入的软去电。如果这些事件都没有发生,则打印机30保持等待状态等待来自主处理器23的命令。另一方面,如果已经收到软去电请求,则打印机30在步骤S3708基于打印机30的当前状态,通过进行状态检验和更新EEPROM 132中的参数而执行其软去电过程。
本发明中,打印机30等待来自主处理器23的命令,诸如打印测试模式的命令、扫描测试模式的命令等。打印机30寻找的一个命令是向打印机30提供时间/日期印记的世界定标时间(UCT)。UCT命令用来在打印机30中设置当前时间,并必须在打印工作启动的开始发送给打印机30。打印机30使用该时间确定打印机30是否应当恢复打印头。根据主处理器23的系统时钟,时间值表示为从世界定标时间(UCT)1970年1月1日午夜(00:00:00)计算所经过的秒数。就此,UCT命令在打印命令的开始被下载,使得UCT命令领先于每一打印命令。然而应当注意,只有在硬去电之后,才有必要存储下载的时间/日期印记,因为由打印机30自己内部时钟增量的时间在硬去电时从存储器清除。
这样,参照图38的流程图,在步骤S3801主处理器23发送UCT命令。在步骤S3802确定时间和日期是否有效。在此,下载的时间/日期印记可能是无效的,例如如果打印机30已经连接到其内部时钟领先于主处理器23的实时时钟的主处理器。在某些情形下,时间和日期可能比存储在打印机30中的实际的最后时间和日期晚。如果时间/日期由于数据格式错误或数值超出范围等而无效,则流将进到以下将详细说明的自动清洗过程。另外,如果时间无效,则可能执行错误处理程序,或可能忽略无效的时间。
如果在步骤S3802确定当前时间和日期是有效的,则流程进到步骤S3803。在步骤S3803,确定实时是否实际上已经存储在打印机30。例如,可能没有设置FlagRealTimeActive。当在打印机30中还没有设置实时时,如通常在打印机30正在第一次使用且没有打印工作被打印时,就是这种情形。如果还没有设置FlagRealTimeActive,那么在步骤S3804把在打印工作开始时提供的当前时间和日期设置为实时。
然后流程进到步骤S3805。在步骤S3805,在实时还没有设置的情形下,CUP 121确定对于打印头A(诸如图10所见的打印头130a)所经过的时间是否对应于打印头A上次清洗的时间。如果确定了所经过时间已经被记录,则在步骤S3806,打印机30通过从存储的经过时间减去实时而确定上次清洗时间。在步骤S3807,上次清洗时间写入EEPROM 132,并在步骤S3808,为打印头A重新设置FlagRecordYet A。在步骤S3809到S3812对打印头B(诸如从图10所见的打印头130b)执行类似的处理。这样,上次清洗的时间和检验和被更新且对每一打印头A和B分别在各自的存储器单元写入EEROM 132。
返回步骤S3805,如果还没有设置FlagRecordYet A和FlagRecordYet B,则流程进到步骤S3813,在此设置FlagRealTimeActive以便指示已经设置实时。
返回步骤S3803,如果已经从先前的打印操作存储了实时且确定为有效时间,则流程进到步骤S3814,在此先前下载的新的时间数据与实时数据进行比较。如果在步骤S3815新的时间数据和实时数据之间的差是可接受的,则在步骤S3818忽略这一差且流向前进行。
另一方面,如果步骤S3815确定,由于主机实时时钟中的改变或打印机内部时钟中的错误使得差不可接受,则在步骤S3816以新的时间数据重新设置实时。在步骤S3817,设置FlagRealTimeReset以便指示实时已经复位。结果是,将使用新的时间数据来计算对于打印头A和B应当何时排定自动清洗。即使用户偶然把主机实时时钟复位到未来某遥远时间执行打印工作及[UCT]命令然后复位到实际的当前时间,也不进行清洗处理。
7.2自动清洗过程
图39描述了自动清洗过程。如果清洗是由于最初使用打印机30或是排定时间清洗,则在步骤S3901确定打印机30中是否存在打印头A。如果在步骤S3901打印头A不存在,则CPU 121检验看是否已经设置FlagRealTimeActive。如果为是,则流程进到步骤S3902以检验看FlagRealTimeReset是否已经设置。如果没有,则CPU 121通过从实时中减去存储在EEPROM 132中的对于打印头A的上次清洗时间而计算清洗时间。如果差大于73小时的预置的清洗时间,则在步骤S3905清洗打印头A。然而,如果差小于预置的清洗时间,则流程进到步骤S3903且设置FlagRealTimeReset,使得新的时间数据复位为实时。这种情形下,打印头A被强制清洗,因为在步骤S3817复位了实时。
返回步骤S3902,如果没有设置FlagRealTimeActive,则流程进到步骤S3906。在步骤S3906,打印头A的经过时间与清洗时间比较。如果从打印头A清洗以来已经经过了大于或等于73小时,且没有安装打印头B,则流程进到步骤S3913,在此复位时间FlagRealTimeReset。步骤S3913通常在打印机30从硬加电以来还没有使用时执行。
在安装了打印头B的情形下,在步骤S3907到步骤S3912对打印头B执行类似的处理。
7.3打印头的清洗
图40是图39的步骤S3905和S3911中执行的操作更为详细的描述。在步骤S4001,确定是否安装了打印头。如果在步骤S4001确定安装了打印头,则在步骤S4002执行清洗操作。清洗操作由以下动作组成:将打印头移至一起始位置,使要被清洗的打印头上的喷嘴对准打印头连接帽88a(见图4),从喷嘴吸取墨液,并在废物槽存放废弃的墨液。对从打印头吸取的液滴的数目进行计数,且如同以上所述对更新上次清洗时间相同的方式那样,在EEROM 132中更新这一信息。
在步骤S4003,确定是否设置了FlagRealTimeActive。在设置了该标志的情形下,在步骤S4004设置被清洗的打印头上次清洗时间为实时。在步骤S4005,作为打印头上次清洗时间实时被写入EEROM 132。
返回步骤S4003,如果没有设置FlagRealTimeActive,由于过去73小时中UCT命令还没有下载到打印机,故在步骤S4006设置已过时间为零,且在步骤S4007对特定的打印头设置FlagRecordYet。这将指示,实时未在步骤S4007设置,且已过时间计数器重新启动。
如上所述,在打印头或墨盒已经替换的情形下将执行打印头的清洗。图41是关于这种事件之后的打印头清洗的详细流程图。
在步骤S4101开始打印头替换处理。在步骤S4102,CPU 121等待由用户进行的打印头替换的终止。在步骤S4103,替换过程终止。从而在步骤S4104,CPU 121检验看哪一个打印头已经除去;即哪一个打印头已经使电路接触在其对应的墨盒接收部分上或已经从其取出。如果打印头A已经除去,则在步骤S4105清洗打印头A。清洗是以对于图40中的流程所述相同的方式执行的。在步骤S4106和S4107对打印头B执行类似的处理。
图42中的流程图描述了,当安排了自动清洗过程且纸张已经加载到打印机30的打印位置时会发生什么。在纸张已经加载到打印位置且已经排定自动清洗的情形下,在步骤S4201纸张被一个命令排出,以便完成打印。一旦纸张被排出,则在步骤S4202执行一个或多个打印头的自动清洗。在自动清洗过程之后,在步骤S4203新的纸张加载到打印位置。在此,每当自动清洗之后不论纸张以前是否加载过,都将执行步骤S4201和S4202。
图43是对于打印头典型的清洗时间表,根据本发明该时间表按照以上所述图35到42执行。在说明典型的清洗时间表之前,应当理解到,对于每一打印头130a和130b,打印机30保有分开的清洗时间和清洗时间表。这样作的原因在于,一个打印头可能在另一打印头的或该头可能在73小时周期内没有使用之前就被替换。例如,当只打印文本文挡时,黑色打印头将比彩色打印头使用得多。因而,黑色打印头将比彩色打印头可能需要更频繁地被清洗。这就是说,即使从上次清洗已经多于73小时和发生了软加电,直到打印之前也可能不必清洗彩色打印头。这样,能够节省墨液。
图43是表示五个分开的时间周期(T1-T5)下载到打印机30的时间表。图43所示的时间周期在打印机第一次安装时的时间周期开始。
在初始的硬加电时,打印机30执行其初始化过程,并从EEPROM 132读取上次清洗时间。因为是第一次加电,故所有的标记和变量被复位。如上所述,在软加电时这一复位将启动清洗过程。在图43所示的例子中,因为软加电是先于向打印机安装打印头执行的,故直到打印头安装才执行清洗。一旦安装了打印头,则对每一打印头130a和130b执行自动清洗。对所有的打印头Delta T变量设置为0,且FlagRecordYet按以上讨论的步骤S4006和S4007设置。
一旦打印头被清洗软件已经初始化,则打印机30联机。在看到打印机30联机时,主处理器23发送第一个打印工作及提供了当前的日期和时间印记的世界定标时间(UCT)命令。当第一次收到UCT命令时,设置FlagRealTimeActive,且新的时间设置为实时。在本例子中,由于从打印机安装以来上次清洗小于73小时,故在T1不执行自动清洗过程。
在图43中所示的时间表中,设置清洗时间的下一个时间是当打印头在T2被替换时,并在这时不论经过的时间如何都将发生清洗。
如上所述,UCT命令是每一个打印命令的开始。因而,根据图43所示的这一样品时间表,打印命令在T3提供下一个新的时间数据。假设这是有效的时间并设置了FlagRealTimeActive,则计算新时间数据与实时数据之间的差。在图43所示的情形下,T3和T2之间的差大于73小时,故执行清洗。由于从先前日期印记起打印机30内部的时钟已经被启动,故经过的实时应当与打印工作开始时下载的新的实时相同。结果是,没有必要存储新下载的时间。
在打印工作的打印之后,打印机30执行清除了所有存储时间的硬去电。随后是硬加电及复位所有的标志和变量。硬加电之后是把打印机30置于联机的软加电。一旦联机,主处理器就在T4发送以提供了当前时间和日期的UCT命令为开端的打印工作。如同对图38所述那样,由于还没有设置FlagRealTimeActive,故存储下载的实时为新的时间并设置FlagRealTimeActive。
在这时,CPU 121确定打印头139a和130b是否安装,是否设置了FlagRealTimeActive,以及是否设置了FlagRealTimeReset。因为已经通过主处理器23提供了新的时间,故计算实时和打印头上次清洗时间之间的差。如图43所示,时间T4和时间T3之间的差大于73小时。结果是在T4执行清洗。
在上次打印工作之后,发生了清除了存储的时间的硬去电。下一个硬加电复位所有的变量和标记。如上所述,在硬加电后,已过时间变量以一秒的间隔增加。如图43中的例子所示,在下一个软加电之前经过了73小时的周期。结果是执行清洗。这一清洗是基于打印机30自身的内部经过时钟执行的,而不是下载的实时,因为打印机30已经闲置超过73小时没有收到打印工作。另外,内部时钟上经过的73小时之后可能不需要打印头的清洗,且可能对即将打印操作前重新排定打印头的清洗。通过这样推迟清洗到即将打印之前,能够保存墨液。
如上所述,EEPROM 132能够以任何类型的非易失存储器代替,诸如带有电池后备的静态RAM,或快闪存储器等等。这种情形下,包括上述的上次清洗时间的信息能够存储在类似型的非易失存储器装置中。
此外,ROM 122能够以任何类型的可重写存储器装置代替,诸如快闪存储器等。这种情形下,这种存储器装置能够接受通过打印机30的主处理器23和主计算机接口141下载到打印机30的程序代码。还能够使用存储器装置在存储器专用区域中存储所有信息,代替EEPROM 132。
此外,虽然通信线路106是作为双向说明的,但是对于本发明非双向接口也可使用。更具体来说,虽然在以上的说明中采样了IEEE-1284接口,但是如SCSI、USB(通用串行接口)、及IEEE-1394(高速串行总线接口)等任何类型的接口也可代替使用。
最后,本发明是使用两个打印头说明的。然而应当明白,这数目能够增加或减小。类似地,EEPROM 132和RAM 129中的存储器单元的数目能够基于在打印机30中使用的打印头的数目增加或减少。
8.0设置及修改打印头驱动参数
因为打印头130a和130b设计为对打印机30是可拆除和可替换的,并因为不同类型的墨盒(诸如具有不同喷嘴配置和不同的墨液特性的墨盒)能够安装到打印头接收部分64a和64b上,故打印机30对于许多不同类型的打印头预装载了打印头驱动参数。例如,用于分别驱动每一喷嘴以便喷出墨滴的脉宽序列与打印头的温度、墨液特性(例如,是彩色还是黑色,及是染料还是颜料)、周围环境温度、墨滴大小等等密切相关。因而,ROM 122包含预存储的表,对各种打印头/墨液/分辨率的组合规定了驱动脉冲序列。在ROM 122中预存储的表概括了各种已经知道的打印头/墨液/分辨率组合,以及打印头/墨液/分辨率预期的组合。
类似地,用来进行诸如打印头温度的计算等内部计算的参数也是与打印机的打印头及喷嘴配置、墨液类型、及分辨率有关。于是由于同样原因,打印机30在其ROM 122中包含了对打印头/墨液/分辨率已知组合的加热系数的各种表格、以及打印头/墨液/分辨率的预期组合的加热系数的各种表格。
其中本发明人已经认识到,不可能预期到打印头、墨液、分辨率的所有可能的组合,且不可能对所有的组合预先存储适用的表。其原因很简单:不知道在打印头和墨液未来会出现什么新的发展。同时,希望以未来可能出现的打印头、墨液、分辨率的任意组合使用打印机30,而无需ROM 122中对表的新的设置。特别地,新表将需要重新制造打印机,并更新程序,向现有顾客分发新的ROM。
本发明通过来自主处理器23的命令提供对预存储表中的数值的修改,并通过允许从主处理器23对打印头控制参数的实时定义,来满足这一愿望。借助于这些特点,通过使用来自主处理器23的命令而能够定义打印头的驱动参数,它们适用于控制新开发的墨盒或其ROM 122中的预存储表不能使用的其它墨盒的功能,这一般不需要改变ROM表或其它打印机硬件。
简而言之,根据本发明的这一方面,接收来自外部处理器的命令的打印机控制器,基于这些命令控制了具有可拆卸墨盒的打印机的处理功能。这些命令能够定义新的墨盒驱动参数,这些参数被改编以控制其预存储的驱动参数在打印机中已经不能使用的新墨盒的功能。例如这些参数包括:加热脉冲序列以便喷出墨滴的定时,对于这种加热脉冲序列所需的用于计算打印头温度的加热系数,打印速度,墨滴大小,缓冲器读出控制,喷嘴发射顺序等等。
图43A是表示本发明的第一实施例的流程图,其中为打印头定义打印驱动控制参数的命令由一个命令组成,以便修改预先存储的打印头驱动条件的表中的数值。简而言之,根据图43A,在具有为多个可拆卸打印头的至少一个定义了预存储打印头驱动条件的预存储查找表的打印机中,为了控制打印头驱动条件,一个外部主处理器发送修改预存储查找表的命令,诸如通过乘以控制率修改。打印控制器从预存储查找表获得打印头驱动条件,并修改打印头驱动条件,以便获得修改的打印头驱动参数。然后修改的打印头驱动参数继而用于打印操作。
详细来说,在步骤S43101,打印机30接收命令,以便设置用于驱动打印头脉宽序列的控制率。该命令由主处理器23发送(步骤S43102),并在没有收到任何这种命令时,打印机30保持默认值100%。如以下步骤S43112中更充分说明的那样,在步骤S43101收到的用于驱动的控制率是从ROM122中的一个预存储表施加到查找表的一个因子。
在步骤S43103,打印机30接收用于打印头温度计算的控制率的命令。该命令是从主处理器23收到的(步骤S43104),并在没有这种命令时,打印机30保持默认值100%。用于打印头温度计算的控制率是作为一乘法因子对用于计算打印头温度加热系数的预存储数值施加,如以下与步骤S43115相关的更充分的说明那样。
步骤S43101到步骤S43104最好通过使用以上3.6节中定义的改变脉冲率命令([PCR])实现。如上所述,[PCR]命令用于改变脉冲控制表的比率,诸如用于计算打印头温度的加热系数的比率,以及对打印头130a和130b的各个喷嘴当从喷嘴喷射墨滴时,对脉宽驱动序列改变脉宽比率。
在打印机30中从步骤S43106到S43115的流连续反复以周期间隔执行,例如50毫秒,以便使实时对打印头驱动参数保持最新当前数值。更具体来说,如以上图23相关的说明,按50毫秒周期间隔执行步骤S43106到S43115,以便计算打印头温度,并对所施加的脉宽序列导出脉宽定时以便从喷嘴喷射墨滴,这是与其它也是按50毫秒间隔执行的任务一同执行的。
再来参见图43A,步骤S43106从一未示出的打印机30内的温度计读取当前环境温度(Tenv)。当前环境温度可能是从温度计读取的最近的当前值,或更好是从温度计读取的实际值通过低通滤波以平滑任何不规则成分,忽略温度计坏的读数,消除噪声,诸如模拟到数字采样噪声等等。
基于在步骤S43106读取的环境温度Tenv,在步骤S43107计算目标温度(Ttgt)。目标温度是基于当前环境温度对打印机的最佳工作温度。一般来说,打印机30通过未示出在打印头130a和130b内的加热器控制而达到目标温度,如以上与图23相关的说明按500毫秒中断级。目标温度是基于当前环境温度对打印头工作的最佳温度。目标温度与环境温度之间的关系是逆反的,即是说,低的环境温度导致相对比较高的目标温度,而高的环境温度导致相对比较低的目标温度。例如,在诸如Tenv=5℃的非常低的环境温度下,较好的目标温度可能是Ttgt=35℃,而在诸如Tenv=35℃非常高的环境温度下,较好的目标温度可能是Ttgt=15℃。
步骤S43109计算从打印头130a和130b实际的墨滴喷射所引起的对打印头温度的效应。更具体来说,在步骤S43106读取的环境温度是基于由安装在打印头130a和130b以外的温度计读取的环境温度的。另一方面,对打印头驱动参数适当控制更直接受到打印头喷嘴附近墨液内部温度的影响。一般不考虑在这样小的区域内安装温度计的实际可能性。同时,已知激发的墨滴喷射将引起墨液温度上升,且在没有墨液喷射时,墨液温度一般将降低。步骤S43109的目的是计算墨滴喷射所引起的对打印头温度的效应,以便进行这种计算。
步骤S43109中打印头温度的计算部分地基于在诸如50毫秒的时间间隔上实际喷射的墨滴数。在预定的时间间隔内墨滴的每一喷射被指定一个热系数权重。基于在预定时间周期内墨滴喷射的数目,能够计算墨滴喷射对打印头温度的效应。
同时,知道这种加热系数变化依赖于所使用的打印头的具体型号、打印头中所使用的墨液的特性、打印头打印输出的分辨率等等。打印头/墨液/分辨率的每一种不同的组合要改变对应于打印的墨滴数的加热系数值。于是,ROM 122预存储有加热系数的表。这种情形示于图43B中。
如图43B所示,ROM 122的一部分包括预存储的加热系数表701。该表包括多个表702a,702b等等,对于打印头、墨液、分辨率的每一种不同的组合有一个表。多个表的每一个包含按表格访问的系数,诸如标记为1,2和3的系数(标号703,704和705),它们是通过查找操作基于在诸如50毫秒(如标号706所示)等任何一具体的间隔内喷射的墨滴数访问的。
基于默认的选择或基于命令的选择(如以下与图43C相关的说明),打印机30从存储在701的表选择一加热表,然后从选择的表中基于50毫秒周期内喷射的墨滴数选择加热系数。
通过在表701的查找操作获得的系数用来计算墨滴喷射对打印头温度的效应。一种适用的计算如下:
ΔTmain=(系数1*(喷射的黑色墨滴数))+(系数2*(喷射的彩色墨滴数))+(系数3*(加热器额定周期))-系数4
其中系数1是基于喷射的黑色墨滴数的加热系数,系数2是基于喷射的彩色墨滴数的加热系数,系数3是基于加热器当前额定周期的加热系数,且系数4是实际表示基于不活动的打印头冷却下来的加热系数。当然,所使用的实际系数和计算依赖于打印头/墨液/分辨率的组合。例如,以上给出的计算适用于四色打印头,而全黑色打印头则使用不同的例如排除了对喷射的彩色墨滴数相关性的计算。
使用环境温度Tenv、目标温度Ttgt、和打印头温度效应ΔTmain,步骤S43110计算差ΔTdiff如下:
Tdiff=Ttgt-Tenv-ΔTmain
步骤S43111基于温差Tdiff访问ROM 122中存储了用于脉宽驱动序列的脉宽时间的查找表。如下所述,适用的表图示于图43B中。
具体来说,如图43B所示,ROM 122包括用于存储驱动时间的查找表710。驱动时间是用于驱动喷嘴加热器喷射墨滴的脉冲序列的脉宽。典型的脉冲序列示于图43A中43311处,并包括宽Tpre的预热脉冲、宽度Tint的静止周期、及宽度为Tmain的主加热脉冲。这种脉冲序列施加到打印头130a和130b的每一喷嘴中的喷嘴加热器,以便喷射供打印的墨滴。表710的目的是部分地基于在步骤S43110计算的温差来计算Trep、Tint和Tmain。
同时,认识到脉冲驱动序列的脉宽基于打印头、墨液特性、分辨率等的具体组合而不同。于是,如图43B所示,表710包括诸如712a、712b等各不同的表。每一个表712a、712b等是对于打印头、墨液类型、分辨率具体的组合而制作的。如710处所示,每一表包含预热脉冲Tpre宽度的项714、静止区间Tint的宽度的项715、以及主加热脉冲宽度Tmain的项716。任何一个具体的项是通过基于在步骤S43110计算的温差Tdiff来访问的。
基于默认的选择或基于命令的选择(如以下与图43C相关更充分的说明),打印机30从存储在710的表选择驱动时间的一个表。打印机30然后访问选择的表中的项,并查找预热脉冲、静止区间及主加热脉冲的适当的时间,所有都是基于在步骤S43110计算的温差,及打印头/墨液/分辨率的具体组合。
参见图43A,步骤S43112基于在步骤S43101收到的用于驱动的控制比率,修改从表710通过查找操作获得的驱动时间。这一步骤的目的是要允许,考虑到安装在打印机30中的实际的打印头及存储在表710中的打印头组合,修改来自查找表710的预存储数值。更详细来说,并如前所述,虽然打印机30的ROM 122预存储有驱动时间的多个表,每一表是对打印头/墨液/分辨率具体的组合制作的,还是不能预料每一个每一种打印头/墨液/分辨率组合。于是步骤S43112的修改,允许使用预先不知道或没有存储的打印头/墨液/分辨率的组合。
步骤S43112中的修改最好通过由步骤S43111中查找操作所获得的驱动时间乘以步骤S43101中收到的控制比率。为此,默认控制率为100%。通过改变脉冲控制率命令[PCR]可命令的控制率限制在1%到200%之间,从而允许从实际可忽略的脉冲时间到两倍于存储在表710中的数值来修改脉冲时间。
然后流程进到步骤S43114,其中打印机30查找用于打印头温度计算的加热系数。如前面与图43B的表701相关的说明,加热系数是基于打印头、墨液、分辨率具体的组合而获得的,并基于每一具有大约50毫秒的持续时间的每周期打印的点数,从表702a等之一查找的。
步骤S43115基于在步骤S43103收到的控制率修改加热系数。而且,这种修改的目的是要允许使用特定的、还没有在表701中存储的打印头、墨液、分辨率组合。
在步骤S43115中加热系数的修改最好通过在步骤S43114通过查找操作获得的系数乘以在步骤S43103收到的控制率。为此,默认控制率为100%。通过改变脉冲控制率命令[PCR]可命令的控制率限制在1%到200%之间,从而允许从实际可忽略的脉冲时间到两倍于存储在表701中的数值来修改加热系数。
在步骤S43116,打印机30基于在步骤S43112获得修改的驱动时间控制喷嘴驱动,所有都响应来自向打印机30发送打印数据的主处理器23的命令,及命令打印机30打印这种数据的命令(步骤S43117)。流如同前面以按50毫秒周期间隔执行从步骤S43106到S43115重复进行,例如基于修改的驱动时间对喷嘴驱动进行控制,如步骤S43116所述按主处理器23的命令执行。此外,应当认识到,驱动的控制率以及打印头温度计算的控制率在任何时间可从主处理器23发送,并如以上步骤S43101和S43103所述由打印机30响应。
图43C示出本发明的另一实施例,就此实施例,对具有可拆卸打印头的打印机能够定义打印头驱动参数的命令,是从诸如主处理器23这一外部装置向打印控制器发送的。图43C所示的实施例中与图43A所示的实施例的一个差别在于,不是响应修改预存储打印头驱动参数的参数,图43C的实施例响应实际打印头驱动参数。一般来说,图43C中收到的参数对打印缓冲器139中的数据控制读出顺序,对打印头中各喷嘴控制喷嘴发射的顺序,对从喷嘴喷射的墨滴控制墨滴大小,以及控制其它打印头驱动参数。来自主处理器23的命令最好定义多组各缓冲器控制和喷嘴发射序列。这些缓冲器控制和喷嘴发射序列寄存在打印机30的RAM 129中。通过来自主处理器23的相继的命令,可为在打印头越过打印介质的一特定的扫描、或多个扫描中的使用,选择任何寄存的缓冲器控制或喷嘴发射序列组。
详细来说,在步骤S43351,主处理器23向打印机30发送缓冲器控制命令,并在步骤S43352打印机30接收缓冲器控制命令并如下适当地响应。在步骤S43351发送的缓冲器控制命令可能是两种类型:第一种类型定义缓冲器控制序列,第二种类型选择已经在打印机30中定义的多个缓冲器控制序列之一。对于定义缓冲器控制序列的第一种类型,主处理器23定义在由打印机30进行打印操作期间从打印缓冲器139读出数据的缓冲器控制序列。响应这种命令,缓冲器控制读出顺序由打印机30存储在RAM 129中供以后选择。为了定义缓冲器读出控制顺序,使用以上3.6节中所述定义缓冲器控制表命令([DEFINE_CONTROL])。
一旦在RAM 129中寄存了多个缓冲器控制读出顺序,第二类型的缓冲器控制命令允许主处理器23选择它们之一用于顺序打印输出操作。以上3.6节所定义的选择缓冲器控制表([SELECT_CONTROL])命令最好用于这一操作。
作为基于[DEFINE_CONTROL]命令可寄存在RAM 129中的缓冲器控制表的例子,图43D示出两个不同的缓冲器控制读出顺序。需要这种缓冲器控制读出顺序的原因在于,是为了适应影响在打印操作期间数据必须如何从打印缓冲器139读取的至少三种不同的因素。第一个这种因素是打印喷嘴在它们排布在打印头上时倾斜度的调节。这一因素已在上述中结合图8做了说明,该图示出喷嘴最好处于稍微倾斜(偏斜)的方向,使得对每16个喷嘴有一象素/360 dpi、二象素/720 dpi、及四象素/1440 dpi的横向位移。
这些影响缓冲器读出顺序中的第二因素是打印头的配置,及打印操作期间实际使用的喷嘴。这一因素参照图43D、43E、43F解释,这些图表示出,对于不同的打印头配置和喷嘴以及分辨率,缓冲器读出顺序的例子。
图43D示出一种可能的打印头配置,其中对于黄色、品红色、及青色墨液的每一种打印头由24个喷嘴组成,垂直倾斜排布在64个喷嘴顶部,黑色在内。对于四色打印,对应于24个三种其它颜料的喷嘴,通常只使用全部64个这种黑色喷嘴中的24个黑色喷嘴。然而物理上,在用于打印的24个黑色喷嘴和最近相邻的青色喷嘴之间有相当的偏移。此外,由于以上参照图8所解释的喷嘴偏移长度,缓冲器读出顺序必须补偿水平方向喷嘴偏移。
缓冲器读出顺序对于这些效应的补偿如下。首先,实际喷嘴排布740是对于假设的标准定义的:具有256喷嘴的打印头。由于图43D的打印头实际具有如上所述的对于黄色、品红色、青色和黑色墨液的24-24-24-64喷嘴排布,喷嘴的初始位置在打印缓冲器中比带有256喷嘴打印头应当开始的单元低15字节的一个单元开始。这样,喷嘴开始位置741定义为15字节。因而,对每一连序的喷嘴组定义了喷嘴偏移的字节单元。如742中所示,对于黄色、品红色和青色墨液喷嘴偏移对应于一个字节。因为上一个相邻的青色喷嘴和供打印实际使用的第一个黑色喷嘴之间的间隙对于标准的256喷嘴打印头对应于六个字节,故对于打印中实际使用的第一个黑色喷嘴定义了六的喷嘴的偏移。
缓冲器读出控制进而按字节定义了缓冲器数据高度743(这例子中,缓冲器数据高度为12字节)及打印缓冲器高度744(这例子中,打印缓冲器高度为12字节)。
为了控制在补偿喷嘴倾斜中的缓冲器读出顺序,对于打印缓冲器中的单元定义了起始位置745,其一部分设定在746。对应于打印缓冲器中的单一的八位字节的八个喷嘴的每一相继的偏移如在747处所示规定。在图43D的例子中,对360 dpi打印规定了缓冲器读出顺序。在该分辨率下,喷嘴倾斜对应于对十六个垂直喷嘴在水平方向的一个打印象素。于是,顺序读出打印缓冲器中头两个字节(对应于16位,黄色墨液每头十六个喷嘴的一个)。然而,在360 dpi分辨率下,黄色墨液的下一个喷嘴将实际被打印在水平方向离开先前的16个喷嘴的一个象素。为了补偿这一水平偏移,提供了13字节的缓冲器偏移,使允许黄色墨液最后八个喷嘴的打印对先前的16个喷嘴处于正确的垂直关系。如图8中所示,由于在黄色和青色墨液之间有对应于八个喷嘴的物理间隙,故对于间隙中非现存的喷嘴没有必要提供读出数据。
由于品红色打印的第一喷嘴位于离开对黄色喷嘴上次打印缓冲器读出的开始达16个喷嘴的物理距离,故必须对上一组黄色喷嘴与第一组品红色喷嘴的打印之间提供额外的13字节偏移。类似地,对于其余的品红色打印,和青色打印顺序地提供正1字节,正13字节,正13字节,正1字节和正13字节的偏移。
对于黑色墨液打印,因为实际供打印使用的24个黑色喷嘴的位置对应于因图8所示的倾角所至的三象素的水平位移,并因为青色和黑色喷嘴之间的八个喷嘴,故对缓冲器读出顺序需要37字节的偏移。这也是在747处示出的。
这样,总的来说,缓冲器读出顺序受到打印头上的喷嘴物理排布的影响,包括间隙和倾角,实际供打印使用的喷嘴,打印分辨率等等。于是规定缓冲器读出顺序的一种方法涉及了喷嘴起始位置、喷嘴偏移、打印缓冲器数据高度、打印缓冲器的高度及对应于打印中所用喷嘴的打印缓冲器中的字节的字节偏移的说明。
这一排布再次与表示按720 dpi打印的图43D相关联示出。由于打印头配置没有改变,喷嘴偏移等没有必要不同。然而,由于按720 dpi图8的倾角对应于每16个垂直喷嘴两个象素的水平偏移,故缓冲器偏移必须如749处所示改变。
如何对打印头配置(包括喷嘴在打印头上的物理排布和喷嘴的倾角)、打印期间实际使用的喷嘴、及打印分辨率不同的组合规定缓冲器读出顺序的例子,在图43E和43F中给出。例如图43E示出使用图43D中所示相同的打印头的打印输出,但只使用全部64个黑色喷嘴而不使用任何彩色喷嘴。这样如750处所示,对于256喷嘴打印头的假设标准,打印中所涉及的第一个喷嘴位置低24字节。于是,喷嘴起始位置751被适当地改变,如包含八个连续八位字节的喷嘴偏移752那样。打印缓冲器数据高度如在754处那样变为八字节,虽然打印缓冲器高度755保持在12字节。覆盖在物理打印缓冲器的746部分的缓冲器偏移756,指示对于从打印缓冲器每一字节适当的读出顺序的偏移。
对以720 dpi分辨率打印的缓冲器偏移示于757。
图43F示出如图8中98处所示,当使用由带有倾角顺序排布在打印头上的128个黑色喷嘴组成的打印头时缓冲器读出顺序的例子。这种喷嘴排布759不同于256喷嘴打印头的假设标准以低16字节的一个喷嘴起始位置开始。喷嘴偏移761表示16个顺序八位喷嘴组。如打印缓冲器高度764那样,打印缓冲器数据高度762设置为16字节。缓冲器偏移765表示缓冲器读出顺序如何受到覆盖到打印缓冲器的746部分上的打印头倾斜的影响。
对于以720 dpi分辨率打印,缓冲器偏移在766处示出。
在影响读出顺序中的其它因素中的第三个因素是打印分辨率。具体来说,当以高分辨率打印时,使用比在以低分辨率打印时较慢的滑架速度。因为滑架的速度不同,以及差如何计入对打印喷嘴非倾斜排布的效应,故必须基于打印分辨率修改缓冲器读出顺序。
这样总的来说,步骤S43351向打印机30发送多个缓冲器控制表,其中它们在步骤S43352寄存。一个这种表是为在实际打印操作期间使用选择的。
在步骤S43354,主处理器23向打印机30发送喷嘴发射顺序命令。从主处理器23发送的喷嘴发射顺序命令在步骤S43355由打印机30接收并如下所述被适当处理。一般来说,步骤S43354发送两种喷嘴发射顺序命令之一:定义了多个不同喷嘴发射顺序的第一型,和其中选择先前定义的喷嘴发射顺序之一用于后继的打印操作的第二型。对于第一型喷嘴发射顺序命令,其中定义了多个喷嘴发射顺序,主处理器23最好发送3.6节中所述的定义加热脉冲表命令([DEFINE_PULSE])。对于由主处理器23定义的每一这种喷嘴发射顺序,打印头以在RAM 129中寄存喷嘴发射顺序响应。
对于第二型喷嘴发射顺序命令,主处理器23选择多个先前寄存的喷嘴发射顺序之一用于后继的打印操作。主处理器23最好采用选择3.6节中所述的加热脉冲表命令([SELECT_PULSE])。在收到选择加热脉冲表命令时,打印机30从RAM 129检索先前寄存的加热脉冲表指定的一个,并将其用于后继的打印操作,诸如打印头130a和130b越过打印介质的下一个扫描或多个扫描。
不同的喷嘴加热顺序的例子示于图43G中。需要不同的喷嘴发射顺序的原因是因为实际的喷嘴发射顺序与包括分辨率、扫描方向(即向前或向后)及喷嘴的倾角等许多因素有关。其它的因素也影响喷嘴发射顺序。例如由于对于低分辨率的打印输出,打印头以高速穿越滑架运动,故分辨率影响喷嘴发射顺序。这一速度这样计算,使得在16个喷嘴被激发时,滑架对应于喷嘴的倾角正好前进一个象素/360 dpi,两个象素/720 dpi,或四个象素/1440 dpi。这结果是,如果喷嘴从上到下被顺序激发则垂直线将被打印。另一方面,在低分辨率下,滑架速度降低。于是为了产生垂直线,必须每隔一个喷嘴顺序激发。这样,分辨率是影响喷嘴发射顺序的一个因素。
能够理解的是,在其它影响喷嘴发射顺序的因素中打印方向是另一个因素。具体来说,因为倾角的关系,在向前和向后打印之间喷嘴发射顺序必须反向。
图43G示出能够由主处理器23定义并寄存在打印机RAM 129中供后继选择顺序的喷嘴发射顺序的一些例子。如图43E中所示,对四个不同的打印条件的每一个定义了对于1号到16号喷嘴的喷嘴发射顺序:前向的360dpi打印,反向的360 dpi打印,前向的720 dpi打印,反向的720 dpi打印。四个喷嘴发射顺序的每一个由主处理器23定义,并传送到打印机30,打印机30在RAM 129中寄存喷嘴发射顺序。然后,主处理器23选择适用于当前希望的打印条件的一个喷嘴发射顺序,并将适用的选择命令传送给打印机30。打印机30通过选择指定的喷嘴发射顺序响应该命令,并将其用于后继的打印操作。
这样,总的来说,步骤S43354允许主处理器23定义多个不同的喷嘴驱动顺序,其中之一指定用于后继打印操作。在步骤S43355,打印机30通过在RAM 129中寄存多个喷嘴发射顺序的每一个,并选择寄存的喷嘴发射顺序中指定的一个用于后继打印操作,响应来自主处理器23的命令。
在步骤S43356,主处理器23发送以上3.6节中所述诸如[DROP]命令等墨滴尺寸命令,并在步骤S43357,打印机30通过选择所命令的墨滴尺寸来响应墨滴尺寸命令。然后以该墨滴尺寸实现打印。
在步骤S43359,主处理器23发送打印数据(最好以[DATA]命令),并然后命令打印机30实现该数据的打印(以[PRINT]命令)。在步骤S43360到S43362打印机30通过以下进行响应,即通过基于在步骤S43352所选择的缓冲器控制命令来控制从打印机缓冲器139读出的顺序,通过在基于在步骤S43355收到的喷嘴发射顺序命令控制喷嘴发射顺序,并通过在步骤S43357收到的墨滴尺寸命令控制墨滴尺寸。
这样,借助于上述处理,通过使用来自设置了用于驱动打印头的参数的外部主处理器的命令,打印机能够被控制而使用具有在设计时没有考虑到的配置的打印头。结果是,大大增加了打印机30在其随不同的打印头配置而发展时,接纳新的打印头的灵活性和其它的特性。
9.0打印缓冲器的操作
图43-1A到43-1E示出用于前向打印的打印数据从主处理器23的打印数据存储器136向打印缓冲器139的传送(图10和11中所示)。图43-1A到43-1E中的打印传送由在打印机驱动程序114中存储的程序代码和打印机30中存储的程序代码控制。在图43-1A到43-1E中,单打印头4330执行越过记录介质的扫描,即通过从静止位置向前提升到均匀扫描速度,越过记录介质扫描,及从匀速扫描下降到静止位置。提升位置7标号4335指示,扫描区域由标号4338指示,且下降在4339指示。标号4320表示打印缓冲器139中存储供当前扫描的打印数据的区域。区域4321是用于存储对应于打印头倾角的打印数据而保留的打印缓冲器的额外区域。(在以上参照图43D到43F,即对于上节关于缓冲器读出顺序的说明已经说明对于打印缓冲器139中额外存储的需要,是为了存储对应于打印喷嘴的倾角的数据)。标号4325表示由打印机驱动程序114所驱动并存储在主处理器23中的打印数据存储器136中的打印数据。该打印数据用于下一个扫描。标号4315表示在打印介质上打印的图象,打印的图象根据打印缓冲器4320中当前扫描数据被存储的。
如图43-1A所示,在打印缓冲器的所有打印位置中有用于当前扫描的打印数据,且在打印数据存储器136的所有打印位置中有用于下一个扫描的打印数据。在提升周期4335期间,打印头4330向前运动,在达到均匀扫描速度之前不进行任何打印。由于没有打印,故在打印缓冲器4320中没有任何打印数据的清空,因而在打印缓冲器4320中没有空间从打印数据存储器136传送用于下一个扫描的打印数据。
图43-1B示出打印头4330达到扫描速度并如4315所示已经开始打印输出的情形。因为用于当前扫描的打印数据已经从打印缓冲器4320清空(或更精确地说,由于已经被打印而不再需要),故用于下次扫描的打印数据的第一模块能够由打印机驱动程序114从打印数据存储器4325传送到打印缓冲器4320。在打印缓冲器4320中对于来自对于数据存储器4325的额外的数据不再有可用的空间;于是,没有进一步的数据传送。
打印机驱动程序114确定在打印缓冲器4320中存在空区域的一个机制,使用了来自打印机30的指示当前不能接收向打印机30的数据传送的一个信号。这种信号的一个例子包括“忙”信号或“未就绪”信号等,且以下将称为“忙信号”。忙信号将由打印机30产生并通过主计算机接口141传送给主处理器23。具体来说,由于打印机30使用了步进电动机用于使其滑架步进越过打印介质,故打印机30在所有的时刻知道其打印头4330的打印位置。打印机30进而知道打印机缓冲器4320中当前未打印区域的左和右边缘。通过在打印头4330的位置和打印缓冲器4320的左和右边缘之间的比较,打印机30能够确定,打印缓冲器中是否有存储从打印机驱动程序114接收的数据的空区域。如果在打印缓冲器中没有空区域,则打印机30向主处理器23产生忙信号。另一方面,如果在打印缓冲器4320中有空区域,则打印机30清除忙信号,指示准备接收打印数据。
在图43-1C到43-1E,越来越多的来自当前扫描的打印数据从打印缓冲器4320打印到记录介质上,如4315处所示。在每个连续块的打印数据从缓冲器4320清空时,打印机驱动程序114从打印数据存储器136的区域4325向打印缓冲器4320传送用于下次扫描的后继打印数据块。这样,如图43-1C所示,第二打印数据块从4325向4320传送,在图43-1D中,后继的块3至8从打印数据存储器4325向打印缓冲器4320传送,并在图43-1E,用于下次扫描的第十六块打印数据从打印数据存储器4325向打印缓冲器4320传送。在图43-1E,如4315所示当前的全部扫描已经打印,且打印头4330开始其下降操作。明显地,现在打印头4330可以使用已经存储在打印缓冲器4320中的用于下次扫描的打印数据开始逆向打印,在这期间用于进一步后继扫描的打印数据将由打印机驱动程序114从打印数据存储器136向打印缓冲器139传送。
对逆向打印参照图43-2A到43-2E说明如下。
具体来说,图43-2A表示与图43-1A类似的情形,其中对于当前扫描的打印数据(存储在打印缓冲器4320中)的大小与用于后继扫描的打印数据(存储在打印数据存储器4325中)的大小相同或较大。标号4321表示打印缓冲器4320的额外的存储,以便适应补偿打印头4330上喷嘴倾角的缓冲器读出顺序。以下,这一区域将称为“喷嘴偏移长度”。标号4315表示由前向扫描已经在记录介质上打印的数据。在4339处所示的提升周期期间,打印头从静止位置向均匀扫描速度提升;没有数据被打印且没有从打印缓冲器4320清空。图43-2B中,打印头4330以匀速在反向运动,并已经开始打印在打印缓冲器4320中对应于当前扫描的打印数据的数据。被打印在记录介质上的数据在4316处表示。因为已经由在记录介质上的打印输出清空了打印缓冲器4320的足够大的区域,故来自打印数据存储器4325的第一数据块由打印机驱动程序114传送到打印缓冲器4320。
随着继续的逆向打印,后继的数据块被打印到记录介质上,从而从打印缓冲器4320清空打印数据。这种情形示于图43-2C和43-2D,其中第二和后继块3到8由打印机驱动程序114从打印数据存储器4325传送到缓冲器4320的清空区域。如同在图43-1的情形,只要没有从打印机30收到忙信号,则打印机驱动程序114向打印机30传送数据。在图43-2E中,打印数据最后的块已经从打印缓冲器4320打印到4316的记录介质上,从而允许从打印数据存储器4325向打印缓冲器4320传送用于下次扫描的打印数据的最后的块。打印头4330继而从均匀扫描速度下降到4335处所示的静止位置。
图43-3A到43-3F示出,存储在打印缓冲器4320的当前打印数据小于存储在主处理器23的打印数据存储器4325中用于下次扫描的打印数据的情形下,在单打印头4330越过记录介质的前向扫描期间,打印数据从主处理器23中的打印数据存储器136向打印机30的打印缓冲器139的传送。因为当前打印数据的量小于下次打印数据量,故即使在打印已经开始时,在打印缓冲器4320中也有空区域。因而,通过向打印缓冲器4320已经清空的区域传送用于下次扫描的打印数据,而能够利用这种情形。这种处理在以下参照图43-3A到43-3F说明。
这种情形下,为了确定在向其存储用于下次扫描的打印数据的打印缓冲器是否有空间,打印机驱动程序114不需要特别依赖于从打印机30忙/就绪信号的产生。具体来说,因为打印机驱动程序先前传送用于当前扫描的数据存储到特定的打印缓冲器单元,故打印机驱动程序无需来自打印机的任何反馈而能够确定打印缓冲器中哪些单元应当是空的,并准备接收用于下次扫描的打印数据。在打印机驱动程序传输打印数据期间,打印机30可能产生忙信号,但是忙信号将一般与打印缓冲器单元的空/满状态无关地产生(即打印机可能没有准备接收新的数据,因为它由诸如打印头清洗等其它任务占用)。
图43-3A中,单打印头4330通过从静止位置提升到4338区的均匀扫描速度越过记录介质打印,以匀速穿越区域4338打印(或前向寻找下一个打印区域),并然后从均匀扫描速度下降到4339的静止位置。4320是指包含区域4320-1,4320-2和4320-3的打印缓冲器,其中只有后者的区域包含供当前扫描的打印数据。其余的区域是空的,指示在记录介质上对应的位置没有要打印的数据。4321是指打印缓冲器4320的喷嘴偏移区域。4325是指打印数据存储器136中用于下次扫描的数据,该数据有待从主处理器23传送到打印机30。
图43-3B中,在打印头4330的提升期间,由于在打印缓冲器4320中存在空单元,故信息的第一块由打印机驱动程序114从第一数据存储器4325传送到打印缓冲器4320。类似地,在图43-3C中,由于打印缓冲器4320-2是空的,故第二块打印数据从打印数据存储器4325传送到打印缓冲器4320。在这点,打印头4330已经达到其均匀扫描速度,并开始向前寻找其对应于打印缓冲器4320中的当前打印数据的第一打印区域。这一情形在图43-3D中示出,其中被打印的数据4315由打印头4330在记录介质上打印。此外,由于打印数据4315的打印清空了打印缓冲器4320中的区域,后继的打印数据块由打印机驱动程序114从打印数据存储器4325传送到打印缓冲器4320。在打印头4330继续在前向移动时,图43-3E描绘了添加的打印数据在4315被打印的情形,且打印数据的后继块由打印机驱动程序114从打印数据存储器4325传送到打印缓冲器4320。在图43-3F中,如4315处所示,打印头4330已经完成打印缓冲器4320中所有当前打印数据的打印,并开始向前寻找下次打印数据的端头,这时这些打印数据已经完全从打印数据存储器4325传送到打印缓冲器4320。当向前寻找完成时,打印头4330在区域4339从其均匀扫描速度下降到静止位置,并开始在逆向提升到用于现在所有存储在打印缓冲器4330中的打印数据的打印的均匀扫描速度。
反向打印一般沿图43-2所示的线路前进,并涉及在提升期间下次扫描数据向打印缓冲器4320的空单元的传送,以及在打印输出期间打印缓冲器单元被清空时,打印数据块向打印缓冲器的后继的传送。
9.1单打印缓冲器
在图43-1的前向打印操作中,及图43-2的逆向打印操作中,由于当前扫描的打印数据量等于或者大于后继扫描的打印数据量,故不能事先从打印机存储器4325向打印缓冲器4320传送打印数据。于是由于在新的数据能够从打印机驱动程序114向打印机30传送之前,必须等待打印头4330通过打印清空打印缓冲器4320中的数据,故性能受到影响。
相反在图43-3的情形下,由于用于当前扫描的打印数据量小于用于后继扫描的打印数据量,故即使在打印头4330开始打印之前,打印机驱动程序114也能够向打印缓冲器4320的空区域传送用于后继扫描的数据。这种配置提供了先进的处理速度。同时,当前扫描小于下次扫描的情形相对不那么频繁发生,这是因为更为常见的是每一后继扫描的打印数据与用于先前扫描的打印数据相同或接近相同。
为了对所有扫描改进打印数据传送性能本发明人已经考虑到在打印缓冲器4320中提供对应于打印头4330提升周期的另外的区域。这添加的区域以下将称为“位移区域”。对打印缓冲器4320添加的位移区域的提供意味着,对所有的时刻,即使当打印头4330没有打印时,在打印缓冲器4320中仍然将有空区域,打印机驱动程序114能够为下次扫描向其填充打印数据。实际上,在打印头4330提升期间或在其完成之前,打印机驱动程序114能够向位移区域传送打印数据。此外,打印机驱动程序无需特别依赖于打印机产生忙/读信号,来确定打印机是否准备就绪向这一位移区域接收打印数据;因为是打印机驱动程序本身指定用于当前扫描的和下次扫描的打印数据在打印缓冲器中存储在何处,故打印机驱动程序能够确定位移区域是否准备好接收打印数据,一般无需来自打印机的反馈。
图43-4A到43-4F示出,在类似于图43-1所示的情形下,即用于当前扫描的打印数据大约与一下次扫描的打印数据相同的情形前向打印期间,使用位移区域改进数据传送效率。在图43-4A中,打印缓冲器4320包括附加在区域4320-2的最前边缘处的位移区域4320-1。4321是指补偿喷嘴偏移长度的打印缓冲器中的区域。区域4320-2存储用于当前扫描的打印数据,位移区域4320-1为空,而打印数据存储器4325存储等待从打印机驱动程序114传送的用于下次扫描的打印数据。与图43-1所示不同,用于下次扫描的打印数据表示在从其实际打印位置的一个位移位置处,从其实际打印的位置的位移是由虚线表示的。这一位移的目的只是为说明之用,以便简化说明数据向打印缓冲器4320的位移区域4320-1和区域4320-2的传送。
在没有来自打印机30的忙信号情形下,打印机驱动程序114确定允许从打印数据存储器4325向打印缓冲器4320传送打印数据。这样,如图43-4B所示,在打印头4330的提升周期4335期间,打印机驱动程序114从打印数据存储器4325向打印缓冲器4320的位移区域4320-1传送用于下次扫描的打印信息的第一块。在位移区域已经填充之后,打印机30产生使数据的进一步传送停止的忙信号。图43-4C中,打印头4320已经达到均匀扫描速度并通过打印输出打印缓冲器4320的4320-2区域中的数据,开始对当前扫描的打印数据的打印输出。打印示于4315处。在打印缓冲器4320-2的区域已经清空之后,打印机30释放忙信号,向打印机驱动程序114指示它准备接收另外的数据。结果是,打印机驱动程序114从打印数据存储器4325向打印缓冲器4320开始传送用于下次扫描的打印数据的第二块。
在打印头4330继续前向打印时,打印缓冲器4320的后继区域被清空打印数据,从而为从打印数据存储器4325接收用于下次扫描的打印数据释放打印缓冲器4320中的这些单元。这种情形示于图43-4D及图43-4E,其中打印缓冲器4320的后继区域被在4315的打印输出清空打印数据,且打印数据的后继块由打印机驱动程序114从打印数据存储器4325传送到打印缓冲器4320。
图43-4E中,用于下次扫描的打印数据的最后一块已经从打印数据存储器4325传送到打印缓冲器4320。然而,对当前扫描的打印还没有完成,因为用于当前扫描的打印数据保留在打印缓冲器4320中没有打印。这样,如图43-4F所示,打印头4330继续打印,释放打印缓冲器4320另外的区域。打印缓冲器4320的另外释放的区域对用于下次扫描的打印数据是不需要的,因为如图43-4E所示所有的打印数据已经被传送。因而,打印缓冲器4320新释放的区域在反向打印期间重新分配给位移区域,这示于图43-5A到43-5F。在任何情形下,在前向打印完成时,打印头从均匀扫描速度下降到4339处的静止位置。
图43-5A到43-5F表示用于下次扫描的打印数据从打印数据存储器4325向打印缓冲器4320传送,打印缓冲器在区域4320-2包含用于当前扫描的打印数据以及空的位移区域4320-1。这样,图43-5中所示的打印类似于图43-2中所示的打印,即逆向打印。然而,图43-5中所示的数据传送不同于图43-2中所示的数据传送,主要是因为使用了提供了更为有效的数据传送的4320-1处的位移区域。
在提升区域4335打印头完成从静止位置向均匀扫描速度的提升周期之前,由于打印机30在其打印缓冲器4320具有空区域,故它向主计算机23指示一就绪信号。结果,打印机驱动程序114从打印数据存储器4325向位移区域4320-1传送用于下次扫描的第一块打印数据。这示于图43-5B,其中打印头4330开始其向均匀扫描速度提升。在用于块1的打印数据已经从打印数据存储器4325传送到位移区域4320-1之后,打印机30产生一忙信号,指示打印机驱动程序114不要进一步传送打印数据。
在图43-5C中,打印头4330已经达到均匀扫描速度并开始逆向打印。在4316处的逆向打印输出已经清空打印缓冲器4320中的一区域。从而,打印机30产生一就绪信号,指示打印机驱动程序114打印机30能够接收打印数据。打印机驱动程序114继而从打印数据存储器4325向打印缓冲器4320传送用于下次扫描的打印数据的块2。
图43-5D到43-5E表示逆向继续打印。这样,在图43-5D中,打印头4330继续逆向打印,从而清空打印缓冲器4320中的打印单元。响应清空的打印单元,打印机驱动程序114向打印缓冲器4320的后继清空的单元传送用于下次扫描的后继块的打印数据。在图43-5E中,用于下次扫描的最后的打印数据块从打印数据存储器4325向打印缓冲器4320传送。然而,逆向打印还没有完成,因为在打印缓冲器4320中还余留有未打印的数据。因而,如图43-5E中所示,打印继续在逆向进行,清空打印缓冲器4320中的后继单元。清空的单元对用于下次扫描的任何打印数据是不需要的,因为所有的这种数据在图43-5E中已经被传送。因而打印缓冲器4320清空的单元变为用于后来在前向打印中的位移区域。
借助于图43-4和43-5所示的处理,通过使用位移区域使打印数据的传送更有效率,其中位移区域在前向打印期间附加在打印缓冲器4320的前端,并在打印数据的当前行结束打印时在打印缓冲器4320的尾端生成。在打印缓冲器4320的尾端所生成的位移缓冲器用于逆向打印中相继的扫描。从而,由于打印机驱动程序114已经清空在打印头提升期间向其传送数据的打印缓冲器4320的单元,故增加了打印数据传送的效率。
图43-6示出在以下意义下类似于图43-3的情形的数据的传送,即当前扫描打印数据的大小小于下次扫描打印数据的大小。然而在图43-6所示的数据传送中,位移区域4320-5是对应于打印头4330提升周期提供的,以便增加数据传送的效率。
在图43-6中,打印缓冲器4320包括含有对于当前扫描的打印数据的区域4320-1。区域4320-2,4320-3,4320-4是不包含打印数据的空区域。区域4321是对于打印头偏移长度提供的打印缓冲器4320的区域。区域4320-5是对应于打印头4330的提升周期的位移区域。
如图43-6A所示,当前存储在主处理器23中的打印数据存储器4325用于下次扫描的打印数据大于当前扫描的打印数据。于是,存在打印缓冲器4320的一个空的并即使在打印头4330还没有开始打印也能接收数据的区域。这种情形示于图43-6B,在打印头4330从静止位置向均匀扫描速度提升完成之前,用于下次扫描的第一块打印数据由打印机驱动程序114从打印数据存储器4325向打印缓冲器4320传送。打印数据存储到位移区域4320-5和空区域4320-4。然后,如图43-6C所示,打印头4330已经达到均匀扫描速度并开始向前寻找对应于打印缓冲器4320的区域4320-1中的打印数据的第一打印位置。在这期间,由于在打印缓冲器4320中仍然有空区域,故打印机驱动程序114把用于下次扫描的打印数据的第二块从打印数据存储器4325传送到打印缓冲器4320的空区域4320-2。
图43-6D中,打印头4330已经到达第一打印位置并开始如4315处所示打印示出。在打印头4330继续打印时,它清空了打印缓冲器4320的打印数据,从而释放打印缓冲器4320的这些区域以便接收用于下次扫描的打印数据。这样,打印机驱动程序114从打印数据存储器4325向打印缓冲器4320传送用于下次扫描的打印数据的第三块。
在打印头4330继续前向打印时,它继续清空打印缓冲器4320中的存储单元。这种情形示于图43-6E,其中打印头4320已经完成4315处当前扫描中所有打印信息的打印。打印机驱动程序114继续向打印缓冲器4320的清空单元传送用于下次扫描的打印数据后继块。同时,打印头4330开始向前寻找用于下次扫描的打印数据的第一打印位置。在图43-6F中,打印头4330到达该位置并开始从均匀扫描速度下降到静止速度,以便使扫描方向反向用于逆向打印。
在下降并为逆向打印提升之前期间,现在区域4320-3可用作为逆向打印位移区域的空单元。于是,即使用于下次后继扫描的打印数据与存储在打印缓冲器4320中的打印数据大小相同或较大,在打印缓冲器4320中区域4320-3处仍然有空单元接收用于下次后继扫描的打印数据。于是,增加了从打印机驱动程序114向打印缓冲器4320的打印数据的传送。
逆向打印一般沿图43-2所示的线进行,并涉及在提升期间下次扫描数据向打印缓冲器4320的空单元的传送,以及在打印输出期间打印缓冲器单元被清空时打印数据块向打印缓冲器的传送。
总的来说,为提高传送打印数据的效率位移区域的使用涉及了对打印机驱动程序的控制和打印机侧的控制之间的协调。在打印机驱动程序侧,打印机驱动程序监视用于当前扫描(先前已经传送的)及下次扫描(待传送的)的左和右边缘。如果下次扫描的左边缘小于当前扫描的左边缘,则打印机驱动程序发送数据块直到当前扫描左边缘已经达到。类似地,如果下次扫描的右边缘大于当前扫描的右边缘,则打印机驱动程序发送用于下次扫描的右侧的数据块,直到当前扫描右边缘已经达到。这一处理保证了在下次扫描大于当前扫描的情形下,尽可能有效地传送数据。
此外,对于下次扫描打印区域重叠到当前扫描打印区域的重叠区域,打印机驱动程序把重叠区域划分为小块。取决于从打印机收到的是忙信号还是就绪信号,打印机驱动程序以小块为单位传送重叠区域。如果当前扫描是前向的,则打印机驱动程序从左向右按小块传送下次扫描的重叠数据;而如果的扫描是逆向的,则打印机驱动程序从右向左按小块传送下次扫描的重叠数据。
在打印机侧,当对当前扫描的打印开始时,打印机保持对打印头位置的监视。如果收到的打印机数据的右边缘小于当前扫描的左边缘(由滑架移动的打印机监测器更新),则打印机把收到的数据块立即放入打印缓冲器。类似地,如果收到的打印机数据的左边缘大于当前扫描的右边缘(由滑架移动的打印机监测器更新),则打印机把收到的数据块立即放入打印缓冲器。对于重叠区域,即收到的块重叠到当前扫描打印区域,打印机发出忙信号,以便停止任何来自打印机驱动程序的另外的打印数据传送。当由滑架移动的打印机监测器所更新的由打印机驱动程序规定的块整个变为空的时,则打印机把收到的数据块放入打印缓冲器,并释放忙信号以向打印机驱动程序指示,打印机准备好接收另外的信息。
在任何情形下,如果当前扫描是前向的,则打印机从打印缓冲器的位移区域的末端开始打印(如向前测量的那样),而如果当前的扫描是后向的,则打印机从位移区域的末端开始打印(如向后测量的那样)。
这些推广的过程示于图43-7,该图表示在当前打印数据小于用于下次扫描的打印数据的情形下,由使用每一带有位移区域的两个打印缓冲器的两个打印头打印。图43-7中所示的打印是对于前向的,但是从以上总的概述能够明白,逆向打印的打印和数据传送是互补进行的。
图43-7A中,双打印头4330A和4330B以其间横向间距4340配置,并被配置使得从静止位置以均匀扫描速度打印,即通过4335处的提升周期到均匀扫描速度,通过在均匀扫描速度的打印区域4338,以及通过在4339从均匀扫描速度到静止位置的下降周期。为每一个打印头提供了一个打印缓冲器,打印缓冲器4320A提供给打印头4330A,打印缓冲器4320B提供给打印头4330B。每一打印缓冲器包括用于当前扫描的打印数据,用于下次扫描的打印数据的大小大于用于当前扫描的打印数据的大小。这样,对于打印缓冲器4320A,用于当前扫描的打印数据存储在区域4320A-4,区域4320A-1,4320A-2,4320A-3为空。位移区域4320A-5附加在打印缓冲器4320A上,以便增加数据传送的效率。4321表示对喷嘴偏移长度的存储单元。
类似地,对于打印缓冲器4320B,区域4320B-4包含用于当前扫描的打印数据。区域4320B-1,4320B-2,4320B-3为空。位移区域4320B-5领先于打印缓冲器4320B,以增加向打印缓冲器4320B的数据传送效率,且4321指示对于喷嘴偏移的存储单元。
在主处理器侧,对每一打印头提供了一个打印数据存储器。这样,数据存储器4325A提供给打印头4330A且存储用于下次扫描的打印数据;且打印数据存储器4325B提供给打印头4330B,并包含用于供打印头4330B下次扫描的打印数据。
在图43-7B中,打印头4330A和4330B开始从静止位置提升到越过记录介质的均匀扫描速度速率。在没有来自打印机30的忙信号的情形下,打印机驱动程序114基于先前传送的打印数据而确定用于打印头4330A的下次扫描数据的左边缘小于对于当前打印数据的左边缘,并继而从打印数据存储器4325A向打印缓冲器4320A发送存储在位移区域4320-5和区域4320A-1中的第一打印数据块。类似地,打印机驱动程序114确定,对于打印头4330B的下次扫描数据的左边缘小于对于打印头4330B的当前扫描数据的左边缘。于是,打印机驱动程序114从打印数据存储器4325B向打印缓冲器4320B传送用于打印头4330B的一个打印数据块。用于下次扫描的打印数据块存储在位移区域4320B-5和区域4320B-1。
在图43-7C中打印头4330A和4330B已经达到它们的均匀扫描速度并开始向前寻找对于打印头4330A和4330B两者之一的第一打印位置。打印机30仍然没有发送忙信号,因为在打印缓冲器4320A和4320B中保留有空区域,且打印机驱动程序114没有发送与用于当前扫描的现有打印数据重叠的数据。于是由于打印机驱动程序114推断,打印机30准备好接收附加的打印数据,故它适当地传送打印数据。这种情形下,由于用于打印头4330A的下次扫描数据的右边缘大于用于当前扫描的打印数据的右边缘,故打印机驱动程序114从打印数据存储器4325A向打印缓冲器4320A传送一打印数据块。这种情形下,传送的打印数据存储在区域4320A-2。打印机驱动程序114可能试图发送用于打印头4330A的新的打印数据,但是由于发送的数据将重叠到打印缓冲器中的非空单元中,故任何这种发送将引起打印产生忙信号。这时,打印机驱动程序114确定,对于打印头4330A,用于下次扫描的左边缘不小于当前扫描的左边缘,且于下次扫描的右边缘不大于当前扫描的右边缘。于是,直到忙信号清除之前,不会有打印头4330A的打印数据由打印机驱动程序传送。
另一方面,打印机驱动程序114确定,用于打印头4330B的下次扫描数据的右边缘大于当前扫描的打印数据的右边缘。于是,一个打印数据块从打印数据存储器4325B向打印缓冲器4320B传送。这种情形下,传送的数据块存储在区域4320B-2。打印机驱动程序114可能试图发送用于打印头4330B的另外的打印数据,但是由于发送的数据将重叠到打印缓冲器中的非空单元中,故任何这种发送将引起打印机产生忙信号。这时,打印机驱动程序114确定,对于打印头4330B,用于下次扫描的左边缘不小于当前扫描打印数据的左边缘,且于下次扫描打印数据的右边缘不大于当前扫描打印数据的右边缘。于是,直到忙信号清除之前,不会有供打印头4330B的打印数据传送给打印驱动程序。
这时,没有进一步的数据从打印机驱动程序114向打印机30传送。如果打印机驱动程序114要传送用于打印头4330A和4330B之一的打印数据,打印机驱动程序将以[EDGE]命令领先于数据,该命令向打印机指定了在打印缓冲器中相继的打印数据块应当存储的单元。基于在[EDGE]命令中所规定的单元,打印机将识别出任何来自驱动程序114的相继的打印数据块将重叠到打印缓冲器中非空单元。这时打印机发出忙信号,因为任何传送的打印数据将是不能打印的打印数据,且从而打印机30将不准备接收另外的打印数据。
在图43-7D中,通过打印头4330A和4330B的继续向前寻找,打印头4330B已经达到其第一打印位置。于是,如4315B处所示打印输出开始,从而清空打印缓冲器4320B中的单元。已经把下次扫描的打印区域分为小块的打印机驱动程序114从打印数据存储器4325B向打印缓冲器4320B传送小块的第一个。基于打印头4330B的当前单元检测到4320B中缓冲器单元为空的打印机30,允许立即存储传送的块。
在图43-7E中,在打印头4330B继续向前打印时,打印缓冲器4320B中的附加单元被清空,从而允许打印机驱动程序114从打印数据存储器4325B向打印缓冲器4320B传送数据。同时打印头4330A已经到达其第一打印位置(更精确地说,打印头4330A已经到达喷嘴偏移区域4321A中的第一打印位置)。从而打印通过打印头4330A开始,并对打印头4330B继续进行。
图43-7F中,通过打印头4330B在4315B继续打印,在打印缓冲器4320B中的附加单元被清空。打印机驱动程序114从打印数据存储器4325B向打印缓冲器4320B传送用于下次扫描的附加的打印数据块。由于这些单元是空的,打印机30允许立即存储传送的块。
同时,打印头4330A如4315A处所示已经开始打印,从而清空打印缓冲器4320A中的单元。结果,打印机驱动程序114从打印数据存储器4325A向打印缓冲器4320A传送用于下次扫描的打印数据块。由于打印缓冲器4320A中的单元是空的且不包含重叠的数据(用于当前扫描的未打印数据),故打印机30允许立即向打印缓冲器4320A存储传送的数据。
在图43-7G和43-7H中,打印头4330A和4330B继续打印,分别如4315A和4315B处所示。随着继续打印,打印缓冲器4320A和4320B中的附加单元被清空。结果是,打印机驱动程序114从打印数据存储器4325A和4325B,逐块地分别向打印缓冲器4320A和4320B的空单元传送用于下次扫描的附加打印数据。在这一处理及所有用于下次扫描的打印数据可从驱动程序114向两个打印头传送的处理期间,驱动程序114确定哪一个打印头将使数据首先传送(即A先于B,或B先于A)。基于哪一个打印头更可能要首先清空块,基于重叠区域的相对位置,驱动程序作出这一判断。这一处理以下将在图44C到44J中说明,这些图解释了驱动程序决定对打印头A先于B还是打印头B先于A发送打印数据块的过程。
图43-7I中,对于打印头4330B已经完成打印,从而对于打印缓冲器4320B清空最后的单元。于是,打印机驱动程序114从打印数据存储器4325B向打印缓冲器4320B传送用于下次扫描的最后余留的打印数据块。同时,如4315A处所示对于打印头4330A继续打印输出,清空打印缓冲器4320A中附加的单元。由于这些单元是空的,故打印机驱动程序114从打印数据存储器4325A向打印缓冲器4320A传送用于下次扫描的打印数据块。
图43-7J和43-7K中,打印对打印头4330A继续进行,清空打印缓冲器4320A中附加的单元。由于这些单元是空的,故它们以用于下次扫描的由打印机驱动程序114从打印数据存储器4325A逐块向打印缓冲器4320A传送的打印数据填充。图43-7K中,对打印头4330A当前打印数据的打印输出完成,结果是最后的块从打印数据存储器4325A向打印缓冲器4320A传送。然后打印头4330A和4330B开始向前寻找,以到达用于下次扫描中打印数据的第一打印位置。
图43-7L中,在打印头4330A和4330B到达下次扫描线的逆向打印的第一打印位置后,打印头从均匀扫描速度下降到静止位置。这时,区域4320A-3和4320B-3分别是缓冲器4320A和4320B中的空单元。因而在供当前存储在打印缓冲器4320A和4320B中的现当前扫描打印数据的逆向打印的提升周期期间,这些空区域成为接收供下次后继扫描接收打印数据的位移区域。
9.2缓冲器控制的一般说明
图44C到44J的流程图示出由主处理器23的CPU 100所执行的作为打印机驱动程序114执行的一部分的处理步骤,以便根据本发明的位移缓冲器控制,实现从打印数据存储器136向打印缓冲器139对用于下次扫描线的打印数据的数据传送。这些流程图所示的处理步骤作为计算机可执行的处理步骤存储在计算机可读介质上,诸如盘25或RAM 116中,并由CPU 100执行,以实现根据本发明的位移缓冲器控制。
类似地,图44K到44M的流程图示出由打印机30的CPU 121执行的处理步骤,以实现根据本发明的打印缓冲器控制。这些流程图所示的处理步骤作为计算机可执行的处理步骤存储在计算机可读介质上,诸如ROM 122或在RAM 129中,由CPU 121执行,以实现根据本发明的打印控制。
根据这些流程图所示的处理步骤,根据本发明的打印缓冲器控制定义了带有附加在打印缓冲器上的位移区域的打印缓冲器,位移区域对应于打印头的前向提升周期。对于逆向打印,打印缓冲器包括附加在其末端的位移区域,位移区域对应于打印头在逆向打印期间的提升周期。用于前向打印的位移缓冲器是用于逆向打印的打印缓冲器的一部分,而用于逆向打印的位移缓冲器是用于前向打印的打印缓冲器的一部分。
借助于这种位移缓冲器附加或附属于打印缓冲器的配置,打印机驱动程序总具有用来在打印头的提升周期期间,传送用于下次扫描线的打印数据的单元。这样,提高了从打印机驱动程序向打印机传送用于下次扫描线的打印数据的效率。
此外,由于位移区域对应于提升周期,并由于前向位移缓冲器是用于在逆向打印的打印缓冲器的一部分,且反之也然,故无需提供大量的附加打印缓冲器单元,诸如传统的使缓冲配置加倍,而能够获得打印数据传送效率的提高。
在说明图44C到44J的流程图,及图44K到44M的流程图之前,图44A和44B将用来给出在这些流程图中使用的一些变量的说明。这些变量对应于打印机30上的物理距离,对应于打印缓冲器内的存储单元,并对应于打印缓冲器内存储单元及其在记录介质上打印输出位置的对应关系。
图44A提供了用于前向打印的变量标识。这样,对于以打印头4330A和4330B使用打印缓冲器4320A和4320B中的当前打印数据,以及从打印数据存储器4325A和4325B传送下次扫描的打印数据而进行前向打印,定义了以下变量:打印头间隙4340定义了打印头4330A和4330B之间的距离,打印头位置A和打印头位置B分别定义了打印头A和B的滑架当前位置,BuffTop F和BuffEnd F对于前向打印定义了打印缓冲器4320A和4320B的头和尾,EdgeL_Ac和EdgeR_Ac对打印头4330A定义了当前扫描数据的左和右边缘,EdgeL_Bc和EdgeR_Bc对打印头4330B定义了当前扫描数据的左和右边缘,ShiftLen定义了位移区域的长度,标号1203定义了补偿打印头中喷嘴的倾角的喷嘴偏移长度,EdgeL_An和EdgeR_An是指对打印头4330A下次扫描数据的左和右边缘,EdgeL_Bn和EdgeR_Bn对打印头4330B定义了下次扫描数据的左和右边缘,BlockLen定义了打印机驱动程序114划分用于逐块向打印缓冲器4320A和4320B传送的下次扫描打印数据的块宽度,以及BlockLeft和BlockRight指示当前考虑用于传送的各块的左和右地址。
图44B标出了对于由打印头4330A和4330B逆向(或“反向”)打印的变量。这样,对于以打印头4330A和4330B使用打印缓冲器4320A和4320B中的当前打印数据,以及从打印数据存储器4325A和4325B传送下次扫描的打印数据而进行逆向打印,定义了以下变量:打印头间隙4340定义了打印头4330A和4330B之间的距离,打印头位置A和打印头位置B分别定义了打印头A和B的滑架当前位置,BuffTop_B和BuffEnd_B对于逆向打印定义了打印缓冲器4320A和4320B的头和尾,EdgeL_Ac和EdgeR_Ac对打印头4330A定义了当前扫描数据的左和右边缘,EdgeL_Bc和EdgeR_Bc对打印头4330B定义了当前扫描数据的左和右边缘,ShiftLen定义了位移区域的长度,标号1203定义了补偿打印头中喷嘴的倾角的喷嘴偏移长度,EdgeL An和EdgeR_An是指对打印头4330A下次扫描数据的左和右边缘,EdgeL_Bn和EdgeR_Bn对打印头4330B定义了下次扫描数据的左和右边缘,BlockLen定义了打印机驱动程序114划分用于逐块向打印缓冲器4320A和4320B传送的下次扫描打印数据的块宽度,以及BlockLeft和BlockRight指示当前考虑用于传送的各块的左和右地址。
以上注释的变量适当数值的表示例子如下:对于打印缓冲器A和B长度为8英寸,1/2英寸小数据块长度,21/2英寸打印头A和B之间的间隙,752列位移缓冲器区域,以及32列喷嘴偏移长度。当前扫描区域和下次扫描区域的长度依赖于打印的实际数据。例如,参见图43-7给出的例子,当前扫描打印数据的长度大约为3英寸,而下次扫描区域的长度为8英寸。
现在参照图44C到44J的流程图,给出由打印机驱动程序114根据由主处理器23中的CPU 100执行的存储的程序指令序列所进行的处理的详细说明。
在步骤S4401起始,从主处理器23到打印机30的命令设置下次扫描方向(前向或逆向),并在步骤S4402定义当前扫描的打印数据的边缘。打印缓冲器A中打印数据的左边缘EdgeL_A设置为EdgeL_Ac(当前扫描打印数据的左边缘)-喷嘴偏移长度。打印缓冲器A中打印数据的右边缘EdgeR_A设置为EdgeR_Ac(当前扫描打印数据的右边缘)+喷嘴偏移长度。打印缓冲器B中打印数据的左边缘EdgeL_B设置为EdgeL_Bc(当前扫描打印数据的左边缘)-喷嘴偏移长度。打印缓冲器B中打印数据的右边缘EdgeR_B设置为EdgeR_Bc(当前扫描打印数据的右边缘)+喷嘴偏移长度。如上所述,喷嘴偏移长度对应于打印缓冲器中用于对应于打印头上喷嘴的倾斜的区域的存储单元。
在步骤S4404,打印机驱动程序114决定当前扫描是前向还是逆向。对于前向打印,流程进到确定下次扫描打印方向的步骤S4405。如果步骤S4405确定下次扫描的打印方向为逆向,则在步骤S4406通过添加对应于在提升期间要被填充的每一打印缓冲器的存储单元的位移区域的长度而调整边缘EdgeL_A,EdgeL_B,EdgeR_A,EdgeR_B。
步骤S4407到S4416对每一打印头4330A和4330B确定,下次扫描的左边缘是否小于当前扫描的左边缘(意即在打印缓冲器的左边缘存在空区域),如果是这样,则从打印数据存储器4335A和/或4335B向打印缓冲器4320A和/或4320B传送用于下次扫描的打印数据,以便在当前打印是前向时填充包含位移区域的缓冲器的左侧。在步骤S4407到S4411对于左边缘数据传送处理打印缓冲器4320A。当确定用于下次扫描的打印数据的左边缘EdgeL_An小于对应于当前扫描的EdgeL_A时,则向打印机30发送块选择命令[BLOCK]和数据命令[DATA]。块选择命令与EdgeL_An(即下次扫描的左边缘)的块左边缘地址及EdgeR_A-1(即当前扫描的左边缘-1)的块右边缘地址一同发送。然后下次扫描EdgeL_An的左边缘复位为Edge_A(S4411)。然后流前进对于左边缘数据传送可能性处理缓冲器4320B。
应当指出,图44C和44D中的所有步骤是这样设计的,使得打印机驱动程序114能够确定打印机30的打印缓冲器中哪一个单元为空,并向这些空单元传送数据。因而未必打印机30将发出指示打印机30没有准备好接收数据的忙信号。然而,如果打印机30发出了忙信号(例如可能涉及诸如打印头清洗等非打印操作),然后打印机驱动程序114停止传送数据,直到忙信号清除且打印机30再次准备好接收数据。
然后在步骤S4412到S4416对于左边缘数据传送处理打印缓冲器4320B。当确定用于下次扫描的打印数据的左边缘EdgeL_Bn小于对当前扫描设置的EdgeL_B时,则向打印机30发送块选择命令[BLOCK]和数据命令[DATA]。块选择命令与EdgeL_Bn(即下次扫描的左边缘)的块左边缘地址及EdgeR_B-1(即当前扫描的左边缘-1)的块右边缘地址一同发送。然后下次扫描的左边缘EdgeL_Bn复位为Edge_B(S4416)。
步骤S4417到S4426对每一打印头4330A和4330B确定,下次扫描的右边缘是否大于当前扫描的右边缘(意即在打印缓冲器的右边缘存在空区域),如果是这样,则从打印数据存储器4335A和/或4335B向打印缓冲器4320A和/或4320B传送用于下次扫描的打印数据,以便在当前打印是前向时填充缓冲器的右侧。在步骤S4417到S4421对于右边缘的数据传送处理打印缓冲器4320A。当确定用于下次扫描的打印数据的右边缘EdgeTR_An大于EdgeR_A时,则向打印机30发送块选择命令[BLOCK]和数据命令[DATA]。块选择命令与EdgeR_A+1(即当前扫描的右边缘+1)的块左边缘地址及EdgeR_An(即下次扫描的右边缘)的块右边缘地址一同发送。然后下次扫描的块右边缘EdgeR_An复位为EdgeR_A(S4421)。然后流前进对于右边缘数据传送可用性处理缓冲器4320B。
然后在步骤S4425到S4426对于右边缘数据传送处理打印缓冲器4320B。当确定用于下次扫描的打印数据的右边缘EdgeR_Bn大于对当前扫描设置的EdgeR_B时,则向打印机30发送块选择命令[BLOCK]和数据命令[DATA]。块选择命令与EdgeL_B+1(即下次扫描的右边缘)的块左边缘地址及EdgeR_Bn(即下次扫描的右边缘)的块右边缘地址一同发送。然后下次扫描的右边缘EdgeR_Bn复位为EdgeR_B(S4426)。
步骤S4405到S4426的上述操作在打印头4330A和4330B的提升周期期间和之前执行。根据本发明,确定打印缓冲器4320A和4320B中是否有空存储单元,及在缓冲器的打印位置当前扫描之前打印数据是否从主处理器23发送到各打印缓冲器。
步骤S4427到S4435示出在根据步骤S4405到S4426数据传送之后在当前扫描期间打印数据的传送。与打印数据传送的速度有关,如果在步骤S4405到S4426中的数据传送是在提升周期结束之前完成的,则这些步骤的部分可能实际上在提升周期期间执行。这些步骤确定,是否只在缓冲器4320A,还是只在缓冲器4320B中,或是在两个缓冲器4320A和4320B中都有重叠数据。在两个缓冲器4320A和4320B中都有重叠的情形下,这些步骤进一步确定缓冲器4320A的数据是否应当先于缓冲器4320B的数据,或者相反。
当由打印机驱动程序114传送的数据和打印机缓冲器136中未打印的数据之间可能有重叠时,执行图44E和44F所示的步骤。于是,由打印机驱动程序114传送数据是以来自打印机30的忙信号为条件的。如果有忙信号,则打印机驱动程序114停止数据的传送,直到忙信号清除且打印机30再次准备接收新的打印数据。
这样,在步骤S4427和S4429中,打印机驱动程序114检测是否用于下次扫描的EdgeL_An小于用于下次扫描的EdgeR_An,但是用于下次扫描的EdgeL_Bn不小于用于下次扫描的EdgeR_Bn。如果这些条件满足,则只在4320A中有重叠的数据。于是,从块的左块地址到右块地址向打印缓冲器4320A发送一个预定的小的打印数据块(步骤S4431;参见图44G)。然后重新进入步骤S4427以便传送下一个小块传送的打印数据。
在步骤S4427和S4432中,打印机驱动程序114检测是否用于下次扫描的EdgeL_An不小于用于下次扫描的EdgeR_An,但是用于下次扫描的EdgeL_Bn小于用于下次扫描的EdgeR_Bn。如果这些条件满足,则只在4320B中有重叠的数据。于是,从块的左块地址到右块地址向打印缓冲器4320A发送一个预定的小的打印数据块(步骤S4434;参见图44H)。然后重新进入步骤S4427以便传送下一个小块传送的打印数据。
在步骤S4427和S4429中,打印机驱动程序114还检测是否用于下次扫描的EdgeL_An小于用于下次扫描的EdgeR_An,并且用于下次扫描的EdgeL_Bn小于用于下次扫描的EdgeR_Bn。如果这些条件满足,则在两个缓冲器4320A和4320B中都有重叠的数据。然后,步骤S4430确定缓冲器S4320A的数据是否先于缓冲器4320B的数据,或反过来。
具体来说,步骤S4430确定EdgeL_Bn是否大于或等于EdgeL_An+打印头4330A和4330B之间的间隙。如果是这样,则用于缓冲器4320A的数据先于用于缓冲器4320B的数据。于是,一个小的用于打印缓冲器4320A的预定的打印数据块从主处理器23的打印数据存储器136发送到打印缓冲器4320A(步骤S4431)。另一方面,在步骤S4430中的“否”判定指示着用于缓冲器S4320B的数据先于用于缓冲器4320A的数据。于是,一个小的用于打印缓冲器4320B的预定的打印数据块从主处理器23的打印数据存储器136发送到打印缓冲器4320B(步骤S4434),且控制返回步骤S4427。
当在步骤S4427和S4432中判定EdgeL_An不小于EdgeR_An且EdgeL_Bn不小于EdgeR_Bn时,则数据传送完成且在步骤S4435,向打印机30发送用于下个扫描线的打印命令[PRINT]。
再来参见图44C,当步骤S4404判定当前扫描是逆向的,则步骤S4445判定下次扫描的打印方向。如果步骤S4445确定下次扫描为前向,则在步骤S4446通过减去在提升周期期间要被填充的每一打印缓冲器的存储单元的位移区域的长度而调整边缘EdgeL_A,EdgeL_B,EdgeR_A,EdgeR_B。
步骤S4447到S4466对每一打印头4330A和4330B确定,下次扫描的右边缘是否大于当前扫描的右边缘(意即在打印缓冲器的右边缘存在空区域),如果是这样,则从打印数据存储器4325A和/或4325B向打印缓冲器4320A和/或4320B传送用于下次扫描的打印数据,以便在当前打印是逆向时填充包含位移区域的缓冲器4320A和/或4320B的右侧。在步骤S4447到S4451对于右边缘数据传送处理打印缓冲器4320A。当确定用于下次扫描的打印数据的右边缘EdgeR_An大于对应于当前扫描的EdgeR_A时(步骤S4447),则向打印机30发送块选择命令[BLOCK]和数据命令[DATA]。块选择命令与EdgeR_A+1(即当前扫描的右边缘+1)的块左边缘地址及EdgeR_An(即下次扫描的右边缘)的块右边缘地址一同发送。然后下次扫描的右边缘EdgeR_An复位为EdgeR_A(S4451)。
然后在步骤S4452到S4456对于右边缘数据传送处理打印缓冲器4320B。当确定用于下次扫描的打印数据的右边缘EdgeR_Bn大于对应于当前扫描的EdgeR_B时,则向打印机30发送块选择命令[BLOCK]和数据命令[DATA]。块选择命令与EdgeR_B+1(即当前扫描的右边缘+1)的块左边缘地址及EdgeR_Bn(即下次扫描的右边缘)的块右边缘地址一同发送。然后下次扫描的右边缘EdgeR_Bn复位为EdgeR_B(S4456)。
步骤S4459到S4456对每一打印头4330A和4330B确定,下次扫描的左边缘是否小于当前扫描的左边缘(意即在打印数据存储器4325A和/或4325B到打印缓冲器4320A和/或4320B的左边缘存在空区域),以便在当前打印是逆向时填充缓冲器4320A和/或4320B的左侧。在步骤S4457到S4461对于左边缘打印数据传送处理打印缓冲器A。当确定用于下次扫描的打印数据的左边缘EdgeL_An小于对应于当前扫描的EdgeL_A时(步骤S4457),则向打印机30发送块选择命令[BLOCK]和数据命令[DATA]。块选择命令与EdgeL_An(即下次扫描的左边缘)的块左边缘地址及EdgeL_A-1(即当前扫描的左边缘-1)的块右边缘地址一同发送。然后下次扫描的块左边缘EdgeL_An复位为EdgeL_A(S4461)。
然后在步骤S4462到S4466对于左边缘打印数据传送处理打印缓冲器4320B。当确定用于下次扫描的打印数据的左边缘EdgeL_Bn小于对应于当前扫描的EdgeL_B时,则向打印机30发送块选择命令[BLOCK]和数据命令[DATA]。块选择命令与EdgeL_Bn(即下次扫描的左边缘)的块左边缘地址及EdgeR_B-1(即当前扫描的左边缘-1)的块右边缘地址一同发送。然后下次扫描的左边缘EdgeL_Bn复位为EdgeL_B(S4466)。
上述步骤在打印头4330A和4330B的提升期间和之前执行。步骤S4467到S4475示出在根据步骤S4445到S4466数据传送之后在当前扫描期间数据的处理。与打印数据传送的速度有关,如果在步骤S4445到S4466中的数据传送是在提升周期末尾之前完成的,则这些步骤的部分可能实际上在提升周期期间执行。这些步骤确定,是否只在缓冲器4320A,还是只在缓冲器4320B中,或是在两个缓冲器4320A和4320B中都有重叠数据。在两个缓冲器4320A和4320B中都有重叠的情形下,这些步骤进一步确定缓冲器4320A的数据是否应当先于缓冲器4320B的数据,或者相反。
这样,在步骤S4467和S4469中,打印机驱动程序114检测是否用于下次扫描的EdgeL_An小于用于下次扫描的EdgeR_An,而用于下次扫描的EdgeL_Bn不小于用于下次扫描的EdgeR_Bn。如果这些条件满足,则只在4320A中有重叠的数据。于是,从块的左块地址到右块地址向打印缓冲器4320A发送一个预定的小的打印数据块(步骤S4471;参见图44I)。然后重新进入步骤S4467以便传送下一个小块传送的打印数据。
在步骤S4467和S4472中,打印机驱动程序114检测是否用于下次扫描的EdgeL_An不小于用于下次扫描的EdgeR_An,而用于下次扫描的EdgeL_Bn小于用于下次扫描的EdgeR_Bn。如果这些条件满足,则只在4320B中有重叠的数据。于是,从块的左到右地址向打印缓冲器4320B发送一个预定的小的打印数据块(步骤S4474;参见图44J)。然后重新进入步骤S4467以便传送下一个小块传送的打印数据。
在步骤S4467和S4469中,打印机驱动程序114还检测是否用于下次扫描的EdgeL_An小于用于下次扫描的EdgeR_An,并且用于下次扫描的EdgeL_Bn小于用于下次扫描的EdgeR_Bn。如果这些条件满足,则在两个缓冲器4320A和4320B中都有重叠的数据。然后,步骤S4470确定用于缓冲器S4320A的数据是否先于用于缓冲器4320B的数据,或反过来。
具体来说,步骤S4470确定EdgeR_Bn减去打印头4330A和4330B之间的间隙是否小于或等于EdgeR_An。如果是这样,则用于缓冲器4320A的数据先于用于缓冲器4320B的数据。于是,一个小的用于打印缓冲器4320A的预定的打印数据块从主处理器23的打印数据存储器136发送到打印缓冲器4320A(步骤S4471)。如果在步骤S4470中获得“否”判定,则用于缓冲器4320B的数据先于用于缓冲器4320A的数据。于是,一个小的用于打印缓冲器4320B的预定的打印数据块从主处理器23的打印数据存储器136发送到打印缓冲器4320B(步骤S4474),且控制返回步骤S4467。
当在步骤S4467和S4472中判定EdgeL_An不小于EdgeR_An且EdgeL_Bn不小于EdgeR_Bn时,则数据传送完成且在步骤S4475向打印机30发送用于下个扫描线的打印命令[PRINT]。
图44G和44H表示对于缓冲器4320A和4320B的用于左块到右块定址打印数据传送的图44E中步骤S4431和S4434的详细流程图。对于打印缓冲器4320A参见图44G,在步骤S4476设置EdgeL_A为用于下次扫描的EdgeL_An加上预定的小块长度。然后进入步骤S4477,其中判定用于下次扫描的EdgeR_An是否小于EdgeL_A。如果“是”,则块命令与EdgeL_An的左块地址和EdgeR_An的右块地址一同向打印缓冲器4320A发送(步骤S4478),这样定址的打印数据发送到打印缓冲器4320A(步骤S4479),且下次扫描的打印数据的左边缘EdgeL_An设置为EdgeR_An(S4480)。如果在步骤S4477为“否”,则块命令与EdgeL_An的左块地址和EdgeR_A-1的右块地址一同向打印缓冲器4320A发送(步骤S4481),这样定址的打印数据发送到打印缓冲器4320A(步骤S4482),且下次扫描的打印数据的左边缘EdgeL_An设置为EdgeL_A(S4483)。
图44H表示对于缓冲器4320B用于左块到右块定址打印数据传送的图44E的步骤S4434的详细流程图。参见图44H,在步骤S4486设置EdgeL_B为用于下次扫描的EdgeL_Bn加上预定的小块长度。然后进入步骤S4477,其中判定用于下次扫描的EdgeR_Bn是否小于EdgeL_B。如果“是”,则块命令与EdgeL_Bn的左块地址和EdgeR_Bn的右块地址一同向打印缓冲器4320B发送(步骤S4488),这样定址的打印数据发送到打印缓冲器4320B(步骤S4489),且下次扫描的打印数据的左边缘EdgeL_Bn设置为EdgeR_Bn(S4490)。如果在步骤S4487为“否”,则块命令与EdgeL_Bn的左块地址和EdgeR_B-1的右块地址一同向打印缓冲器4320B发送(步骤S4491),这样定址的打印数据发送到打印缓冲器4320B(步骤S4492),且下次扫描的打印数据的左边缘EdgeL_Bn设置为EdgeL_B(S4493)。
图44I和44J表示对于缓冲器4320A用于右块到左块定址打印数据传送的图44F的步骤S4471和S4474的详细流程图。对于打印缓冲器4320A参见图44I,在步骤S4506设置EdgeR_A为用于下次扫描的EdgeR_An减去预定的小块长度。然后进入步骤S4507,其中判定用于下次扫描的EdgeL_An是否小于EdgeR_A。如果“是”,则块命令与EdgeL_An的左块地址和EdgeR_An的右块地址一同向打印缓冲器4320A发送(步骤S4508),这样定址的打印数据发送到打印缓冲器4320A(步骤S4509),且下次扫描的打印数据的右边缘EdgeR_An设置为EdgeL_An(S4510)。如果在步骤S4507为“否”,则块命令与EdgeR_A+1的左块地址和EdgeR_An的右块地址一同向打印缓冲器4320A发送(步骤S4511),这样定址的打印数据发送到打印缓冲器4320A(步骤S4512),且下次扫描的打印数据的右边缘EdgeR_An设置为EdgeR_A(S4513)。
图44J表示对于缓冲器4320B用于右块到左块定址打印数据传送的图44F的步骤S4474的详细流程图。参见图44J,在步骤S4516设置EdgeR_B为用于下次扫描的EdgeR_Bn减去预定的小块长度。然后进入步骤S4517,其中判定用于下次扫描的EdgeL_Bn是否小于EdgeR_B。如果“是”,则块命令与EdgeL_Bn的左块地址和EdgeR_Bn的右块地址一同向打印缓冲器4320B发送(步骤S4518),这样定址的打印数据发送到打印缓冲器4320B(步骤S4519),且EdgeR_Bn设置为EdgeL_Bn(S4520)。如果在步骤S4517为“否”,则块命令与EdgeR_B+1的左块地址和EdgeR_Bn的右块地址一同向打印缓冲器4320B发送(步骤S4521),这样定址的打印数据发送到打印缓冲器4320B(步骤S4522),且下次扫描的打印数据的右边缘EdgeR_Bn设置为EdgeR_B(S4523)。
图44K到44M是表示打印机30中用于打印数据传送的处理的流程图,这些流程图对应于在打印机30的ROM122中驻留的存储的计算机可执行程序代码。一般来说,这些步骤对于打印机操作提供了以下功能:(1)当当前扫描的打印开始时,打印机监视滑架的位置和滑架运动的位置;(2)如果收到的块的右边缘小于当前扫描的左边缘,则立即把数据块放到打印机缓冲器。如果收到的块的左边缘大于当前扫描的右边缘,则立即把数据块放到打印机缓冲器;(3)如果由打印机驱动程序规定的块重叠到当前扫描的打印区域上,则发出忙信号以便引起打印机驱动程序等待到规定的块完全变为空。如果由打印机驱动程序规定的块完全变空,则把数据块放到打印机缓冲器并解除任何忙信号以便向打印机驱动程序表示打印机准备好接收数据;(4)如果当前扫描是前向的,则打印机打印位移的缓冲器。如果当前扫描是逆向的,则打印机打印非位移的缓冲器。参见图44K,当在步骤S4544收到来自打印机驱动程序114的命令时,判定步骤S4545,S4548,S4550,S4553及由虚线表示的其它判定步骤被顺序执行。如果在步骤S4545判定收到的命令为方向命令,则接收下次扫描方向(即前向或逆向)(步骤S4546),设置当前扫描方向和下次扫描方向(S4547)且控制进到步骤S4548。当在步骤S4548检测到在步骤S4544收到的命令为块命令时,则执行步骤S4549的块地址处理。以下将参照图44L和44M更为详细地说明块地址处理。
当在步骤S4550判断出在步骤S4544收到的命令是数据命令时,在步骤S4551收到的打印数据输入到指定的打印缓冲器(步骤S4552),且控制进到步骤S4553,在此判断在步骤S4554收到的命令是否为打印命令。如果在步骤S4553为“是”,则在步骤S4554判断当前扫描方向是否设置为前向。当设置的当前扫描方向为前向时,则从指定的对应于位移区域之后打印头的第一打印位置的打印缓冲器的顶端到指定的打印缓冲器的相对端执行打印(步S4555)。对于逆向扫描,从对应于打印头最后打印位置的打印缓冲器的另一端到指定的打印缓冲器的顶端执行打印。然后控制返回步骤S4544等待来自打印机驱动程序114的另一命令。
图44L和44M较详细示出图44K的步骤S4549的块地址处理过程。参见图44L,在步骤S4534接收块命令中的块左地址和块右地址,并在步骤S4535确定当前扫描的打印数据是否保留在指定的打印缓冲器。如果在步骤S4535打印缓冲器没有保留当前扫描的打印数据,则控制进到图44K中的步骤S4550以判断是否已经收到数据命令。否则,在步骤S4536判断指定的打印缓冲器是打印缓冲器A还是打印缓冲器B,在步骤S4537和S4538之一适当设置变量X为A或B,且控制进到步骤S4539。在步骤S4539,指定的打印缓冲器X的左边缘EdgeL_X设置为EdgeL_Xc(即指定缓冲器中用于当前扫描的打印数据的左边缘)减去不能发生打印的喷嘴偏移长度。指定的打印缓冲器的右边缘EdgeR_X设置为EdgeR_Xc(即指定缓冲器中用于当前扫描的打印数据的右边缘)加上不能发生打印的喷嘴偏移长度。然后控制进到检验当前扫描方向的步骤S4540。
当在步骤S4540当前扫描方向为前向时,设置指定的打印缓冲器的左和右边缘提供下次扫描的打印数据的位移。于是,在步骤S4541将左边缘EdgeL_X设置为EdgeL_X加上位移区域长度,且将右边缘EdgeR_X设置为EdgeR_X加上位移区域长度。在当前扫描方向为逆向时,由于在打印缓冲器的底端没有预先定义的位移区域,故不需要调节。在步骤S4542检验下一个扫描方向。如果在步骤S4542扫描方向为前向,则执行步骤S4543,其中将块左和块右地址BlockLeft和BlockRight分别设置为BlockLeft加上位移区域长度和BlockRight加上位移区域长度,从而当插入到指定的打印缓冲器X时偏移下次扫描打印数据。
然后通过连接线10-11从步骤S4543进入图44M的步骤S4525。在判断步骤S4525和S4526,判断BlockRight地址是否小于EdgeL_X(即打印缓冲器X中打印数据的左边缘),或BlockLeft地址是否大于EdgeR_X(即打印缓冲器X中打印数据的右边缘)。如果这两个条件之一为真,则要传送到打印缓冲器的下次扫描的打印数据块在包含打印数据的打印缓冲器X的区域之外,于是能够立即进行传送,且控制返回用于数据命令处理的图44K的步骤S4550。
当在两个步骤S4525和S4526中的判断都为“否”时,则在打印缓冲器X中下次扫描打印数据与当前扫描打印数据有重叠,且进入步骤S4527,在此判断当前扫描方向是否为前向。如果在步骤S4527判断为“是”,则判断BlockRight地址是否小于或等于EdgeR_X(S4528)。响应步骤S4528的“是”判断,推迟返回图44K用于数据命令的步骤S4550,直到BlockRight地址小于与打印缓冲器X相关的打印头的位置HeadPos_X(步骤S4529),以便保证向打印缓冲器X的空区域插入块打印数据。响应步骤S4528的“否”判断,推迟返回图44K的步骤S4550,直到对于打印缓冲器X的打印头结束打印当前打印位置(步骤S4530)。
响应步骤S4527中的逆向当前扫描,进入步骤S4531,在该步骤中判断BlockLeft地址是否大于或等于EdgeL_X(步骤S4531)。响应步骤S4531中的“是”判断,推迟返回图44K的步骤S4550,直到BloclLeft地址大于HeadPos_X(步骤S4532),以便保证向打印缓冲器X的空区域插入块打印数据。响应步骤S4531的“否”判断,推迟返回图44K的步骤S4550,直到对于打印缓冲器X的打印头结束打印当前打印位置(步骤S4533)。
根据本发明,在当前扫描期间从主处理器23到打印缓冲器139用于下次扫描的打印数据的传送避免了需要与打印缓冲器139同样大小的分开的接收缓冲器,并增加了打印数据的传送效率。此外,位移区域的大小不是固定的,而是由[DEFINE_BUF]命令对于每一打印任务设置的,于是可以根据打印机30的存储容量选择位移区域的大小。
此外,打印机缓冲器位移区域技术能够适用于任何顶端处理器之间的任何数据传送。图44N在850示出这里所描述的实施例,其中位移缓冲器技术用于在打印机驱动程序和打印机控制器之间传送打印数据。860示出位移缓冲器技术还能够适用于在打印机控制器和打印引擎之间传送打印数据。
10.0多打印头以不同分辨率打印
因为打印机30具有多个打印头,并因为影响分辨率的命令向每一打印头分别发送的软件体系结构,打印机30能够打印并能够被控制以便对每一个打印头以不同分辨率打印,于是在对一页的打印数据包括希望把高分辨率与适宜低分辨率的打印数据混合的打印信息的情形下提高整体打印效率。
一般来说,本节描述了对具有至少第一和第二打印头的打印机的控制,使得第一和第二打印头的分辨率彼此独立地控制。如以上1.0节所述,打印机30包含分别标记为130a和130b的两个喷墨打印头A和B;并如同3.0节所述软件体系结构包括从主处理器23发送的影响打印分辨率的命令。通过从主处理器23向打印机30中的打印缓冲器139传送图象数据(使用[DATA]命令)、并继而传送打印执行命令[PRINT]而实现打印。对打印分辨率的控制通过传送改变墨滴大小的命令([DROP]命令)、选择打印速度的命令([SPEED]命令)、选择喷嘴发射顺序的命令([SELECT_PULSE])、及选择用于从打印机缓冲器139读出图象数据的读出顺序的命令([SELECT_CONTROL]命令)而实现。
每一打印头打印的分辨率可由用户人工输入确定,或例如基于对打印头130a和130b的相关头结构、打印数据的内容、及记录(或打印)介质的类型而自动地确定。打印机驱动程序114中的用户接口是为此目的提供的。
从打印机观点来说,打印机30接收命令对每一打印头130a和130b独立设置分辨率,并以选择的分辨率实现打印输出。
图45用来解释对每一不同的打印头以不同的分辨率打印输出的好处。图45中,400代表包含不同类型的混合打印信息的记录介质上的打印页。区域402a、402b、402c和402d是主要由黑色和白色区域构成的需要适当低分辨率的文本区域。另一方面区域404表示需要高分辨率的非文本区域,诸如彩色图象、图形或线图。这样,如图45中可见,打印输出400由混合打印信息组成,其中一些需要以高分辨率打印,而其它需要低分辨率。打印信息在单一记录介质401上混合,并在某些情形下,诸如区域404和402b,在越过打印机30的扫描方向水平打印带上混合。
405是区域402a的部分的放大图示。放大的图示405描绘了配置不同的打印头130a和130b。具体来说,打印头130a包括垂直排布的黄色、品红色、青色和黑色打印喷嘴,有24个黄色喷嘴、24个品红色喷嘴、24个青色喷嘴及64个黑色喷嘴。打印头130b包括128个全都是黑色的打印喷嘴。这样,打印头130a和130b在设置上是不同的,打印头130a适于打印高分辨率彩色图象,而打印头130b只适于打印黑白图象。当然,打印头130a和130b其它的配置也是可能的,其结果的情形是一个打印头适于高分辨率图象,而另一个适于打印较低分辨率的图象。
因为区域402a是分辨率要求低的文本区域,故区域402的打印由打印头130b实现。这种安排示于405处,其中出自打印头130b的一个带406以剖线强调示出。为了以这一分辨率打印,命令打印机30把打印头130b置于大的墨滴喷射模式,并根据打印头130b的设置且根据所选择的分辨率,选择打印数据从打印缓冲器139读出的顺序。
与区域402a相反,区域404是需要高分辨率打印输出的区域。这种情形在407处放大的区域描绘,该图示出由打印头130a只在带409的打印输出。如以下参照图45A的流程图更充分的说明那样,为了实现在409处所示的带的打印输出,命令打印头130a以小的墨滴喷墨,并根据打印头130a的头设置及所选择的分辨率来选择从打印缓冲器139数据读出的顺序。
为了打印象402b这样的、在打印头130a和130b越过记录介质401的横向扫描方向上混合的区域,采用两步过程。在一步,由打印头130a打印如409那样的相继的带。被打印的相继的带的数目对应于对于打印头130a的带中的打印喷嘴数目与对于打印头130b的带中的打印喷嘴数目之间的比率。在另一步,在区域402b中实现来自打印头130b的单次通过。借助于这种两步过程,能够在单一方向上连续使记录介质401前向推进,而无需逆向给进,从而实现了区域402b的打印输出。
图45A是表示由主处理器23中的打印机驱动程序114执行的处理步骤的流程图,以便独立控制每一打印头的打印分辨率,并命令以此实现打印输出。一般来说,图45A所示的处理步骤是存储的程序指令序列,该序列通过独立控制每一打印头墨滴大小、并通过独立控制从打印缓冲器139对每一打印头的读出顺序而设置打印分辨率。
更具体来说,在步骤S4501,主处理器23的用户从应用程序发出打印打印数据的命令,从而启动打印机驱动程序114。打印机驱动程序114实际上执行的功能要远多于图45余留部分指示的功能,但只说明与设置打印分辨率相关的那些功能。这样,在步骤S4502,打印机驱动程序114确定,打印分辨率是否应当由打印机驱动程序114自动指定,或打印分辨率还是应当由用户人工指定。在步骤S4502,向用户显示一用户界面,诸如图46中所示的典型的用户界面。如这里所见,当用户选择410部分时,该部分提供自动指定打印分辨率。另一方面,当选择411时,用户人工指定打印分辨率。可对非文本图形以及文本规定不同的分辨率,用户能够对每一文本和非文本区人工设定高速(即低分辨率)或高质量(即高分辨率)。
参见图45,如果选择了自动指定,则流程分支到打印机驱动程序144为图形自动选择分辨率的步骤S4504,且然后到打印机驱动程序144为文本自动选择分辨率的步骤S4505。为图形和为文本选择分辨率基于连续色调打印数据,并根据图形和其它非图形信息的存在、文本信息的存在、为打印输出选择的记录介质类型、及打印头130a和130b的打印头相关设置作出。
然后流程进到步骤S4506,在此打印机驱动程序判断是否以人工或自动方式规定了双分辨率。如果没有规定双分辨率,则流程分支到步骤S4507对两个打印头以一致的分辨率进行打印。另一方面,如果规定了双分辨率,则流程分支到步骤S4509,以便独立控制每一打印头的打印分辨率并从而实现打印输出。
这样,步骤S4509定义缓冲器控制表,其中一个表可对每一打印头选择,按照这表每一打印头能够对打印数据从其各个打印缓冲器的读出确定读出顺序。采用哪一个缓冲器控制表的实际选择直到过程的稍后才实行,而步骤S4509只是对每一分辨率并对每一打印输出方向定义适当的缓冲器控制表。最好使用上述3.6节中定义缓冲器控制表的命令[DIFINE_CONTROL]。
类似地,步骤S4510定义适当的加热脉冲表,通过该表对打印头130a和130b中每一喷嘴控制发射顺序。打印头130a和130b所使用的实际的加热脉冲表不在这时选择,而是为稍后的选择定义适当的表。最好使用上述3.6节中定义加热脉冲表的命令[DIFINE_PULSE]。
然后流程进到步骤S4511到S4530,这些步骤(步骤S4520和S4521除外)确定当前打印带分辨率、设置诸如喷墨墨滴大小及缓冲器读出顺序等打印控制条件、发送打印数据、及命令打印输出传送的打印数据。
更详细来说,步骤S4511确定一个具体的带或带的一部分是为高分辨率还是低分辨率打印输出。如果带或带的一部分为低分辨率打印输出,则流程分支到为每一打印头130a和130b设置适当的喷墨墨滴大小的步骤S4512。使用图45中的例子,把对于打印头130b的墨滴大小设置为大的,而对打印头130a的墨滴大小设置为小的。最好使用上述3.6节中定义的墨滴大小命令[DROP]。
在步骤S4514,打印机驱动程序114选择对应于低分辨率的高打印速度。最好使用上述3.6节中定义的选择速度命令[SPEED]。
步骤S4516根据选择的低分辨率为打印缓冲器139的读出顺序选择偏移。具体来说,步骤S4516选择以上步骤S4509中设置的缓冲器控制表之一。最好使用上述3.6节中定义的选择缓冲器控制表的命令[SELECT_CONTROL]。
如在上述3.6节中所述,步骤S4517从打印机驱动程序114到打印机30通过双向接口逐块传送图象数据。一旦打印数据的整个带传送到打印机30,打印机驱动程序114在步骤S4519通过传送打印执行命令[PRINT]启动带的打印输出。然后步骤S4520根据流程返回步骤S4511还是流程在步骤S4521终止而确定是否需要打印另外的带。
返回步骤S4511,如果要传送并打印打印信息的高分辨率带,则在打印机驱动程序114中执行步骤S4522到S4530,以便执行与S4512到S4519的低分辨率步骤互补的步骤。这样,步骤S4522设置小墨滴尺寸,步骤S4525设置对应于高分辨率的低打印速度,步骤S4526选择高分辨率喷嘴发射顺序,步骤S4527通过选择预定的缓冲器控制偏移表之一而选择从打印缓冲器139的读出顺序,步骤S4529逐带地向打印机30传送高分辨率图象数据,以及步骤S4530启动已全部传送的带的打印输出。
根据第二实施例,打印头在打印机30的扫描方向按不同的分辨率打印水平打印带的象素,而无需逆向的页给进,从而提高了整个打印效率。
虽然以下参照具有多打印头的打印机说明这一实施例,应当注意,当结合单打印头打印使用时以下的实施例还提供了重要的优点。
如上所述,打印头打印的分辨率可以由用户手动输入启确定,或例如基于打印数据的内容、记录介质的类型、或在多打印头系统的情形下打印头130a和130b相关的打印头设置而自动地确定。
打印机30最好接收对每一打印头130a和130b独立设置分辨率的命令,并以设置的分辨率实现打印输出。
图46A是解释以多分辨率控制打印头打印输出的优点的示意图。图46A中,420表示记录介质421上具有各种打印信息的打印页面。区域420a,420b,420c,420d是主要由黑白区域组成的文本区域。于是,包含在这些文本区域中的信息能够以低分辨率满意地打印。反之,区域424是非文本区域,诸如彩色图象或图形或线图,为此最好要高分辨率。应当注意,区域420b和区域424位于打印机30的扫描方向中公共的水平打印带。
425是区域420b部分放大的图示。放大的图示425描绘了打印头130a和130b。每一打印头130a和130b包括垂直排布的黄色、品红色、青色和黑色打印喷嘴,有24个黄色喷嘴、24个品红色喷嘴、24个青色喷嘴及64个黑色喷嘴。当然,打印头130a和130b其它的配置也是可能的。
因为区域420b是适于低分辨率文本区域,故如425处所示,区域420b的打印以低分辨率/高速模式进行。在区域425中,由打印头130a和130b打印一低分辨率带426,并由剖线条强调表示。为了以这一分辨率打印,命令打印机30把打印头130a和130b置于大墨滴喷射模式,并根据选择的分辨率来选择从打印缓冲器139读出打印数据。以下参照图46B的流程图更充分地说明这些步骤。
与区域420b相反,区域424是需要高分辨率打印输出的区域。这种情形在427处表示由打印头130a和130b只在带429处的打印输出的放大区域中描绘。如以下参照图46B的流程图更充分的说明,为了实现429处所示的带中的打印输出,命令打印头130a和130b以小墨滴喷墨,并根据选择的分辨率来选择从打印缓冲器139读出数据。
为了打印象420b和424这样的、在打印头130a和130b越过记录介质421的横向扫描方向上混合的区域,采用两步过程。在一步,由打印头130a和130b打印如429那样的相继的带。诸如429被打印的相继的带的数目对应于在24这种情形下青色、品红色、和黄色每一种墨液打印喷嘴的数目与在64这种情形下对于黑色所使用的打印喷嘴数目之间的比率。在第二步,实现来自打印头130a和130b的单次通过,从而打印区域420b的带。在第二通过期间,墨液以低分辨率从打印头130a和130b的黑色喷嘴喷射。借助于这种两步过程,记录介质420能够在单一方向上推进,而无需逆向给进,从而实现了区域420b和424的变化分辨率的打印输出。
图46B是表示由主处理器23中的打印机驱动程序114执行的处理步骤的流程图,以便控制每一打印头的打印分辨率,并命令以此实现打印输出。一般来说,图46B所示的处理步骤是存储的程序指令序列,该序列通过控制每一打印头墨滴大小、并通过控制从打印缓冲器139对每一打印头的读出顺序而设置打印分辨率。
更具体来说,在步骤S4601,主处理器23的用户从应用程序发出打印打印数据的命令,从而启动打印机驱动程序114。打印机驱动程序114实际上执行的功能要远多于图46余留部分指示的功能,但这里只说明与设置打印分辨率相关的那些功能。这样,在步骤S4602,打印机驱动程序114确定,打印分辨率是否应当由打印机驱动程序114自动指定,或打印分辨率还是应当由用户人工指定。在步骤S4602,向用户显示一用户界面,诸如图46中所示的那种典型的用户界面。如这里所见,当用户选择410部分时,该部分提供自动指定打印分辨率。另一方面,当选择411时,用户人工指定打印分辨率。可对非文本图形以及文本规定不同的分辨率,用户能够对每一文本和非文本区人工设定高速(即低分辨率)或高质量(即高分辨率)。
参见图46B,如果选择了自动指定,则流程分支到打印机驱动程序144为图形自动选择分辨率的步骤S4604,且然后到打印机驱动程序144为文本自动选择分辨率的步骤S4605。为图形和为文本选择分辨率基于连续色调打印数据,并根据图形和其它非图形信息的存在、文本信息的存在、为打印输出选择的记录介质类型、及打印头130a和130b的打印头相关设置作出。
然后流程进到步骤S4606,在此打印机驱动程序114判断是否以人工或自动方式规定了双分辨率。如果没有规定双分辨率,则流程分支到步骤S4607对两个打印头以一致的分辨率进行打印。另一方面,如果规定了双分辨率,则流程分支到步骤S4609,以便控制每一打印头的打印分辨率并从而实现打印输出。
这样,步骤S4609定义缓冲器控制表,其中一个表可对每一打印头选择,按照这表每一打印头能够对打印数据从其各个打印缓冲器的读出确定读出顺序。采用哪一个缓冲器控制表的实际选择直到过程的稍后才实行,而步骤S4609只是对每一分辨率并对每一打印输出方向定义适当的缓冲器控制表。最好使用上述3.6节中定义缓冲器控制表的命令[DIFINE_CONTROL]。
类似地,步骤S4610定义适当的加热脉冲表,通过该表对打印头130a和130b中每一喷嘴控制发射顺序。打印头130a和130b所使用的实际的加热脉冲表不在这时选择,而是为稍后的选择定义适当的表。最好使用上述3.6节中定义加热脉冲表的命令[DIFINE_PULSE]。
然后流程进到步骤S4611到S4630,这些步骤(步骤S4620和S4621除外)确定当前打印带分辨率、设置诸如喷墨墨滴大小及缓冲器读出顺序的打印控制条件、发送打印数据、及命令打印输出传送的打印数据。
更详细来说,步骤S4611确定一个具体的带或带的一部分是高分辨率还是低分辨率打印输出。如果带或带的一部分为低分辨率打印输出,则流程分支到为每一打印头130a和130b设置适当的喷墨墨滴大小的步骤S4612。使用图44中的例子,把对于打印头130a和130b的墨滴大小设置为大的。最好使用上述3.6节中定义的墨滴大小命令[DROP]。
在步骤S4614,打印机驱动程序114选择对应于低分辨率打印输出的高打印速度。最好使用上述3.6节中定义的选择速度命令[SPEED]。
步骤S4616根据选择的低分辨率为打印缓冲器139的读出顺序选择偏移。具体来说,步骤S4616选择以上步骤4509中设置的缓冲器控制表之一。最好使用上述3.6节中定义的选择缓冲器控制表命令[SELECT_CONTROL]。
如在上述3.6节中所述,步骤S4617从打印机驱动程序114到打印机30通过双向接口逐块传送图象数据。一旦打印数据的整个带传送到打印机30,打印机驱动程序114在步骤S4619通过传送打印执行命令[PRINT]启动带的打印输出。然后步骤S4620根据流程返回步骤S4611还是流程在步骤S4621终止而确定是否需要打印另外的带。
返回步骤S4611,如果要传送并打印打印信息的高分辨率带,则在打印机驱动程序114中执行步骤S4622到S4630,以便执行与S4612到S4619的低分辨率步骤互补的步骤。这样,步骤S4622设置小墨滴尺寸,步骤S4624设置适当大的缓冲区尺寸,步骤S4625设置对应于高分辨率的低打印速度,步骤S4626选择高分辨率喷嘴发射序列,步骤S4627通过选择预定的缓冲器控制偏移表之一而选择从打印缓冲器139的读出顺序,步骤S4629逐带地向打印机30传送高分辨率图象数据,以及步骤S4630启动已全部传送的带的打印输出。
图47是从打印机30的方面表示由打印机30对于独立打印分辨率设置而执行的处理步骤的流程图。于是,在步骤S4701,打印机30接收控制命令以便使打印机30为每一打印头准备高或低打印分辨率。如上所述,这些控制命令包括设置打印速度、喷嘴大小、喷嘴发射序列及打印缓冲器读出顺序的命令。
在步骤S4702,从打印机驱动程序114接收打印数据,随之在步骤S4703是打印命令。此后,在步骤S4704根据所命令的是低还是高打印分辨率,在步骤S4702接收的打印数据按步骤S4701命令打印。这样,如步骤S4705所示,对于高打印分辨率,打印数据以低速、小墨滴尺寸、高分辨率喷嘴脉冲序列表、以及高分辨率缓冲器控制读出顺序打印。类似地,在步骤S4706,对于低打印分辨率,打印输出以高速、大墨滴尺寸、低分辨率喷嘴脉冲序列表、以及低分辨率缓冲器偏移读出序列实现。在这两种情形下,流程都进到步骤S4707等待下次打印命令序列。
正如对图46A和46B的说明,也能控制单打印头利用在步骤S4705和步骤S4706中所述的打印特性设置,在单打印带上在扫描方向打印打印数据。
11.0可替换墨液的选择
如上所述,能够配置打印机30向一种记录介质输出几种类型的墨液。这种特性的优点是允许打印机30使用染料基黑色墨液及颜料基黑色墨液两者打印一个图象。
在优选实施例中,染料基黑色墨液与不同彩色的墨液配合使用以便于进行彩色打印。结果是,当在彩色图象中用来打印黑色象素时,染料基的黑色墨液允许彩色图象保持基本上一致的光学密度。
反之,颜料基黑色墨液当用来在彩色图象内打印黑色象素时,与彩色图象的其它区域形成鲜明对比,从而扰乱了彩色图象的一致性。然而,有很多情形希望在黑色打印区域和不同彩色区域之间保持相当的对比度。这些情形中最可注意的是在白色记录介质上黑色文本的打印。从而,颜料基黑色墨液最好用来打印文本数据。
于是在上述的实施例中,基于围绕黑色目标象素的图象数据的内容来选择染料基黑色墨液还是颜料基黑色墨液打印黑色目标象素。更具体来说,在判定黑色目标象素对应于图象数据的不同彩色区域的情形下,使用染料基黑色墨液打印目标象素。如果不是这样,则使用颜料基黑色象素墨液打印目标象素。判定黑色象素是否对应于图象数据的不同彩色区域的一个方法在以下参照图49说明。这种判定最好基于多层次图象数据进行,使得能够达到对图象内容的精确刻划。
由于各种墨液的上述视觉性质依赖于向记录介质渗透的程度,故在确定染料基、或其它高渗透性黑色墨液、或诸如颜料基墨液这种低渗透性黑色墨液更适合具体的打印工作中记录介质的类型起很大作用。
例如普通纸张已显示出不良的吸墨性,因而不能指望与高渗透性黑色墨液使用,因为该墨液不能有效结合到记录介质内以产生稳定可再现的色彩。另一方面,能够使用有特别涂料的纸张,这种纸张对沉积在其中的各种色彩高渗透性墨液提供比较均匀的结合。但是这种有特别涂料的纸张不适合与低渗透性墨液一同使用。
从以上可见,用来在记录介质上打印象素的墨液的类型最好与包含象素数据的图象类型和墨液置于其上的记录介质两者相关。
图48是用于描述基于记录介质类型和图象内容的墨液选择方法的流程图。一般来说,为了控制喷墨打印机使用第一墨液或第二墨液向记录介质上打印对应于多层图象数据的象素,要确定记录介质是否为普通纸张还是有特别涂料的纸张,并在确定了记录介质为有特别涂料的纸张的情形下,命令打印机使用第一种墨液打印目标象素。另一方面,在确定记录介质为普通纸张的情形下,要确定目标象素是否对应于不同彩色区域。在目标象素对应于不同彩色区域的情形下,指令打印机使用第一种墨液打印目标象素。反之,在目标象素不对应于不同彩色区域的情形下,指令打印机使用第二种墨液打印目标象素。
更详细来说,流程在确定纸张类型的步骤S4801开始。如图中所示,该优选实施例考虑到普通纸张或有特别涂料的纸张的使用。有特别涂料的纸张最好是1.0节中所述的“高分辨率”纸张HR-101。
在确定纸张类型为有特别涂料的纸张的情形下,流程进到步骤S4802,在其中确定应该使用高渗透性墨液打印黑色象素数据。这一决定是基于假设高渗透性黑色墨液总是更适合于在有特别涂料的记录介质上打印黑色象素数据,而不论图象类型如何。
如果在步骤S4801确定了纸张类型为普通的,则流程进到步骤S4803,在其中确定在要打印的图象的彩色区域内是否存在黑色目标象素。如果是这样,则如上所述流程进到步骤S4802。如果不是这样,则流程进到步骤S4804,在此确定使用低渗透性黑色墨液打印目标象素。
根据优选实施例,通过检测围绕目标象素的图象象素作出步骤S4803的决定。图49是用来说明这一具体实施例的图示。
图49表示图象数据的5×5网格416中的黑色目标象素415。网格416的每一子部分表示单独的一个图象象素。每一图象象素最好由三个8位数值表示,每个8位数值表示图象象素的红色、绿色和蓝色成分。为了确定黑色目标象素415是否位于不同彩色区域之内,使用以下方程式比较网格416中每一象素的红色、绿色和蓝色成分:
|R-B|<α;|B-G|<β;及|G-R|<γ,
其中α,β,γ是相对小的数值。
如果每一方程式对网格416内每一象素满足,则确定在不同彩色区域内不存在黑色目标象素415。另外,步骤S4803可能要求网格416中的每一象素的红色、绿色和蓝色成分满足方程式R=G=B,以便确定在不同彩色区域内不存在目标象素。然而,这一替代的方法对图象数据中由噪声、不良的扫描等引起的差错是敏感的。于是使用以上所示的α,β,γ对数据的差错提供了小的容差。当然,在步骤S4803中可以使用其它方法确定在不同的彩色区域内是否存在黑色目标象素415。
在上述实施例中最好使用多层次数据确定不同彩色区域。反之,使用二进制数据确定不同彩色区域的系统可能错误地解释原图象数据的50%的灰色区域以由黑白象素的交替区域组成。结果是,可能使用不适当的墨液打印“黑色”区域。
应当理解,虽然选择可替换的墨液的上述说明具体集中在高分辨率黑色墨液和低渗透性黑色墨液,但是也可考虑与任何在颜色、渗透特性、或其它特性诸如黏性或密度彼此不同的第一和第二墨液结合使用上述方法。
此外,虽然以上讨论的是普通和有特别涂料的高分辨率纸张,确定适当的墨液可以基于任何介质类型。其它可适用的介质包括透明片、玻璃纸、玻璃膜、背打印膜、织物片、T恤衫转印膜、喷泡纸、贺卡片、册卡纸等。就此,纸张的类型可通过位于打印机30内的纸张传感器检测,或由用户通过显示在显示屏幕22上的用户界面输入,或通过位于打印机30上的按钮输入。
还应当注意,在优选实施例中,打印机驱动程序114包含计算机可执行的步骤以便执行图48的流程。当然,这些步骤可能全部包含在打印机30的ROM 122中,或可能联合存储在主计算机23和打印机30的计算机可读存储器内。
11.1 CMYK黑色或颜料黑色的选择
已经注意到PCBk可以用来在记录介质上打印黑色象素。另外,颜料基的黑色墨液和染料基的黑色墨液也用于打印这种象素。通过提供可选择的使用颜料基黑色墨液或青色、品红色、黄色及黑色染料基墨液的组合的黑色象素打印,打印机30提供了附加功能。
为此,最初要确定黑色目标象素是否对应于不同彩色的区域。在确定了黑色目标象素不对应于不同彩色区域的情形下,指令打印机使用颜料基黑色墨液打印黑色目标象素。否则,指令打印机使用染料基黑色墨液和每一相减基色的染料基墨液打印黑色目标象素。
图49A是用于具体说明上述特性的流程图。在步骤S4901,确定黑色目标象素是否对应于彩色区域。这一判定最好基于表示与黑色目标象素相邻的区域的多层数据。在上面参照图49详细描述了这种方法,因而在此省略。
在确定了彩色区域内存在目标象素的情形下,流程进到步骤S4902,其中使用染料基黑色墨液和染料基青色、品红色及黄色墨液的组合打印目标象素。在到达步骤S4904时,已经确定目标象素在彩色区域内不存在。结果是,使用颜料基黑色墨液打印目标象素。
可注意的是,上述特性允许图象的彩色区域中黑色象素呈现比使用PCBk所达到的更真切的黑色,同时使用各种染料基墨液的混合以便保持在彩色区域内相对一致的输出密度。此外,上述的可选择性允许使用颜料基黑色墨液打印孤立的黑色象素,从而允许更精确再现这种黑色图象数据。
如对于上述实施例所述,打印机驱动程序114包含计算机可读步骤以便执行图49A的流程。当然,这些步骤可以完全包含在打印机30的ROM122内,或联合存储在主计算机23和打印机30的计算机可读存储器内。
11.2边界区域打印
如上所述,传统方式打印的黑色/彩色边界区域有几种缺陷。首先,这种区域常常基于原始多层图象的二进制数据被识别。然而,二进制图象数据常常不能精确地趋近实际的多层图象数据。结果是,原始图象中在不存在这种区域的位置可能“识别”出边界区域。
其次,用来打印黑色区域的低渗透性黑色墨液有可能混合到使用高渗透性墨液打印的相邻的彩色区域中。已经提出PCBk作为这种彩色区域与低渗透性黑色墨液之间的缓冲区。然而,如图50A所示,这种缓冲区是不能令人满意的,因为PCBk区域422和低渗透性黑色墨液区域424的不同的光学密度引起显著的视觉不连贯性。
还提出使用高渗透性黑色墨液和PCBk“缓冲区”打印黑色/彩色边界区域。如图50B所示,虽然PCBk区域426和高渗透性黑色墨液区域427的光学密度比图50A中所示较为相似,但是由高渗透性黑色墨液产生的黑色不适于产生高质量的实黑色区域。
图51是描述边界区域打印方法的流程图。一般来说,该方法包括检测图象的黑色区域和图象的不同彩色区域之间的边界,指令打印机使用工艺黑色在黑色并与边界相邻的区域内打印黑色象素的第一区域,指令打印机使用高渗透性黑色墨液在黑区并与第一区域相邻的区域内打印黑色象素的第二区域,指令打印机使用低渗透性黑色墨液在黑区以及与第二区域相邻的区域内打印黑色象素的第三区域。
具体来说,流程在步骤S5101开始,其中检测图象的黑色区域与图象的不同彩色区域之间的边界。参见图50C,步骤S5101导致对不同彩色区域430和黑色区域432之间的边界429进行检测。如上所述,边界检测最好基于多层图象数据,以便比使用二进制图象数据进行边界检测的系统能够更精确地检测黑色/不同彩色边界。
流程进到步骤S5102,其中指令打印机使用PCBk打印黑色象素的第一区域。如图50C所示,第一区域431在黑色区域432内并与边界429相邻。
然后,在步骤S5103,指令打印机使用高渗透性黑色墨液打印黑色象素的第二区域。在图50C中把第二区域描绘为区域434。第二区域434最好与第一区域431相邻并在黑色区域432内。
最后,在步骤S5104指令打印机使用低渗透性黑色墨液打印黑色象素的第三区域。如图50C所示,第三区域436与第二区域434相邻并在黑色区域432内。
应当理解,第一、第二和第三区域的大小可基于在黑色区域与不同彩色区域之间的边界区域中所希望的PCBk象素数及所希望的高渗透性黑色象素数得以调节。
作为图51流程的结果,光学密度越过黑色区域和不同彩色区域之间边界逐渐变化,减小了黑色区域和彩色区域之间的混合,并获得了高质量黑色区域。
打印机驱动程序114能够含有计算机可执行步骤以便执行图51的流程。这些步骤也可包含于打印机30的ROM 122内,或可以联合存储在主处理器23与打印机30的计算机可读存储器内。
图52表示用于打印黑色区域与不同彩色区域之间的边界区域的更详细的方法。
一般来说,图52描述了使用喷墨打印机控制对应于图象数据的象素的打印的系统,该系统包括高渗透性墨罐、低渗透性墨罐、及生成工艺黑色的墨罐。根据该系统,基于图象数据确定与黑色目标象素相邻的第一预定大小的第一区域是否包含不同彩色区域。在确定了该第一区域包含不同彩色区域的情形下,指令打印机使用工艺黑色打印目标象素。在定了该第一区域不包含不同彩色区域的情形下,基于图象数据确定与目标象素相邻的第二预定大小的第二区域是否包含不同彩色的区域,该第二区域大于第一区域。最后,在确定了该第二区域包含不同彩色区域的情形下,指令打印机使用高渗透性黑色墨液打印目标象素,否则指令打印机使用低渗透性黑色墨液打印目标象素。
更具体来说,流程在步骤S5201开始,其中在原始图象数据内识别黑色目标象素。流程进到步骤S5202,其中确定与目标象素相邻的第一区域是否包含不同彩色的区域。如果包含,则流程进到步骤S5204,在此指令打印机30使用PCBk打印目标象素。如果不包含,则流程进到步骤S5205。
在步骤S5205确定与在步骤S5201识别出的目标象素相邻的第二区域是否包含不同彩色区域。可注意的是,第二区域大于在步骤S5202所分析的第一区域。于是,步骤S5205确定目标象素是否接近不同彩色区域。如果是,则流程进到步骤S5206,在此指令打印机30使用高渗透性黑色墨液打印目标象素。如果不是,则流程继续到步骤S5208,在该步骤指令打印机30使用低渗透性黑色墨液打印目标象素。
图53A示出根据步骤S5202优选实施例的第一不同彩色区域的检测。图53A表示不同彩色多层图象数据的区域450和黑色多层图象数据区域451。对于以上的解释,在步骤S5201中识别的目标象素由象素数据单元452表示。此外,5×5区域454是在步骤S5202分析的第一区域。
为了确定区域454是否包含不同彩色区域,以上对于图49所描述的算法用于区域454内的象素值。最好使用多层象素值以便精确地检测区域454内的黑色象素和不同彩色象素。由于区域454包含来自区域450的彩色值,故在步骤S5204指令打印机30使用PCBk打印目标象素4524。
这一指令反应在图53C中,该图是对应于图53A的图象数据所打印的象素的表示。如图53C中所示,表示象素单元452的打印象素456是使用PCBk打印的。在此应当理解,表示象素单元459的打印象素457也是使用PCBk打印的。
以下参照图53B和53C更详细地描述了步骤S5205到S5208。具体来说,对与象素数据单元461相邻并大于第一区域454的第二区域460进行分析而确定它是否包含不同彩色的区域。于是,指令打印机30使用高渗透性黑色墨液打印对应于象素数据单元461的象素462。
从图53B可见,与象素数据单元466相邻的第二区域464不包含不同彩色区域。于是,根据步骤S5208,指令打印机30使用低渗透性黑色墨液打印对应于象素数据单元466的象素467。
作为图52的流程的结果,获得了诸如图50C所示的边界区域。具体来说,光学密度越过边界区域逐渐变化,减小了黑色区域与不同彩色区域之间的混合,并使用低渗透性黑色墨液打印黑色区域。
当然,基于所希望的PCBk象素数,并基于黑色区域和不同彩色区域之间的边界区域中所希望的高渗透性黑色墨液象素数,第一区域和第二区域的大小是可调节的。
如同对于以上实施例所讨论,打印机驱动程序114可以包含计算机可执行步骤以便执行图52的流程。这些步骤也可以包含在打印机30的ROM122中,或可以联合存储在主处理器23与打印机30的计算机可读存储器内。
11.3以不同墨液按不同分辨率打印
图54是表示根据另一实施例的处理的流程图。如图54中所示,在输入诸如5×5象素区域416的象素数据时,在步骤S5402到S5407确定输入象素数据中的目标象素是否在彩色区域内。这一过程与以上对于图49所述的过程相同。于是为了简练,其说明在此从略。
步骤S5409到S5412提供了颜色校正,即根据本发明所进行的黑色校正。具体来说,在步骤S5409,对目标象素执行颜色校正,使得把象素从RGB数据变为CMYK数据。然后,步骤S5410确定目标象素是否在彩色区域内。如果目标象素不在彩色区域内,则处理进到步骤S5411。在目标象素不在彩色区域内的情形下,设置颜料墨液(即K1墨液)形成象素。反之,在步骤S5410确定目标象素在彩色区域内的情形下,由工艺黑色形成黑色,即青色、品红色、和黄色墨液及染料基(即K2)黑色墨液形成黑色。
然后,步骤S5413对象素数据进行输出颜色校正。例如,在这步骤可进行灰度校正等。然后,处理进到步骤S5414到S5419。这些步骤提供根据本发明的二进制化。
更具体来说,步骤S5414确定目标象素是否在彩色区域内。在目标象素是在彩色区域内的情形下,处理进到步骤S5418,在其中以2×2指数对目标象素二进制化,并进到步骤S5419,在其中按720×720分辨率以染料基黑色墨液打印象素(参见图54A)。另一方面,在步骤S5414确定目标象素是不在彩色区域内的情形下,处理进到步骤S5415,在其中以1×1指数对目标象素二进制化,并进到步骤S5417,在其中按360×360 dpi以颜料基黑色墨液打印象素(参见图54B)。然后,处理结束。
以上已经对具体的示例性实施例描述了本发明。应当理解,本发明不限于上述实施例,并在不背离本发明的精神和范围的情形下业内一般专业人员能够作出各种变形和修改。

Claims (66)

1.用于具有至少一个可拆下打印装置的打印机的打印机控制器,包括:
用于把代表至少一个可拆下打印装置的特性的数据送到一个外部装置的装置;
用于接收来自该外部装置的命令的装置;以及
响应于接收的命令用于根据该至少一个可拆下打印装置的特性控制打印机的功能的装置,
其中接收的命令包括与送到外部装置的至少一个可拆下打印装置的特性相应的参数。
2.根据权利要求1的打印机控制器,其中当至少一个可拆下打印装置被改变成具有不同的特性的打印装置时,从外部装置接收的用于控制打印机功能的命令参数得到改变以对应于该不同的特性。
3.根据权利要求1的打印机控制器,其中代表至少一个可拆下打印装置的数据在把至少一个可拆下打印装置安装到打印机上时被送到了外部装置。
4.根据权利要求1的打印机控制器,其中代表至少一个可拆下打印装置的特性的数据在把打印机连接到处于在线状态的外部装置时被送到该外部装置。
5.根据权利要求1的打印机控制器,其中该至少一个可拆下打印装置是用于把墨排放到记录介质上的打印头。
6.根据权利要求5的打印机控制器,其中接收的命令是用于把加热脉冲加到该至少一个打印头上的命令。
7.根据权利要求5的打印机控制器,其中接收的命令是用于设定该至少一个打印头的打印速度的命令。
8.根据权利要求5的打印机控制器,其中接收的命令是用于设定从至少一个打印头排放的墨滴的大小的命令。
9.根据权利要求1的打印机控制器,其中接收的命令是用于定义存储至少一个打印头的打印数据的打印缓存器的命令。
10.根据权利要求9的打印机控制器,其中接收的命令是用于把该打印数据从外部装置传送到打印缓存器的命令。
11.根据权利要求1的打印机控制器,其中接收的命令是用于从打印机请求至少一个打印装置的信息的命令。
12.用于具有至少一个可拆下打印装置的打印机驱动器,包括
用于接收来自打印机的代表该至少一个可拆下打印装置的特性的数据的装置;
用于把命令送到打印机以根据至少一个可拆下打印装置的特性控制打印机的功能的装置,
其中这些命令包括与至少一个可拆下打印装置的特性相应的参数。
13.根据权利要求12的打印机驱动器,其中当至少一个可拆下打印装置被改变成具有不同的特性的打印装置时,该打印机驱动器改变用于控制打印机功能的命令参数以与不同的特性相应。
14.根据权利要求12的打印机驱动器,其中代表至少一个可拆下打印装置的特性的数据是在把至少一个可拆下打印装置安装到打印机上时从打印机接收的。
15.根据权利要求12的打印机驱动器,其中代表至少一个可拆下打印装置的特性的数据是在把打印机耦合到处于在线状态的外部装置时从打印机接收的。
16.根据权利要求12的打印机驱动器,其中至少一个可拆下打印装置是用于把墨排放到记录介质上的打印头。
17.根据权利要求16的打印机驱动器,其中送到打印机的命令是用于把加热脉冲加到至少一个打印头上的命令。
18.根据权利要求16的打印机驱动器,其中送到打印机的命令是用于设定至少一个打印头的打印速度的命令。
19.根据权利要求16的打印机驱动器,其中送到打印机的命令是用于设定从至少一个打印头排放的墨滴的大小的命令。
20.根据权利要求12的打印机驱动器,其中接收的命令是用于定义用于存储至少一个打印头的打印数据的打印缓存器的命令。
21.根据权利要求20的打印机驱动器,其中接收的命令是用于把打印数据从外部装置传送到打印缓存器的命令。
22.根据权利要求12的打印机驱动器,其中接收的命令是用于从打印机请求至少一个打印装置的信息的命令。
23.存储在计算机可读取介质中的用于利用具有至少一个可拆下打印装置的打印机形成图象的计算机可执行程序代码,包括:
第一组计算机可执行程序代码,用于接收来自打印机的代表该至少一个打印装置的特性的数据;以及
第二组计算机可执行程序代码,用于传送用于根据至少一个可拆下打印装置的特性而控制打印机的功能的命令,
其中这些命令包括与至少一个可拆下打印装置的特性相应的参数。
24.根据权利要求23的存储在计算机可读取介质中的计算机可执行程序代码,其中,当该至少一个可拆下打印装置被改变成具有不同的特性的打印装置时,一个第三组计算机可执行程序代码改变用于控制打印机功能的命令参数以对应于不同的特性。
25.根据权利要求23的存储在计算机可读取介质中的计算机可执行程序代码,其中代表该至少一个可拆下打印装置的的特性数据是在该至少一个可拆下打印装置被连接到打印机上时由第一组计算机可执行程序代码从打印机接收的。
26.根据权利要求23的存储在计算机可读取介质中的计算机可执行程序代码,其中代表该至少一个可拆下打印装置的特性的数据是在该打印机与外部装置相耦合时由第一组计算机可执行程序代码从打印机接收的。
27.根据权利要求23的存储在计算机可读取介质中的计算机可执行程序代码,其中该打印机是一个串行打印机且该至少一个可拆下打印装置是用于把墨排放到记录介质上的打印头。
28.根据权利要求27的存储在计算机可读取介质中的计算机可执行程序代码,其中送到打印机的命令是用于把加热脉冲加到至少一个打印头上的命令。
29.根据权利要求27的存储在计算机可读取介质中的计算机可执行程序代码,其中送到打印机的命令是用于设定至少一个打印头的打印速度的命令。
30.根据权利要求27的存储在计算机可读取介质中的计算机可执行程序代码,其中送到打印机的命令是用于设定从至少一个打印头排放的墨滴的大小的命令。
31.根据权利要求23的存储在计算机可读取介质中的计算机可执行程序代码,其中接收的命令是用于定义存储用于至少一个打印头的打印数据的打印缓存器的命令。
32.根据权利要求23的存储在计算机可读取介质中的计算机可执行程序代码,其中接收的命令是用于把打印数据从外部装置传送到打印缓存器的命令。
33.根据权利要求23的存储在计算机可读取介质中的计算机可执行程序代码,其中接收的命令是用于从打印机请求至少一个打印装置的信息的命令。
34.用于具有至少一个可拆下打印装置的打印机的打印机控制器,包括:
用于接收来自一个外部装置的命令的装置;
响应于接收的命令用于根据至少一个可拆下打印装置的特性控制打印机的功能的装置,
其中所述命令当使用新的、当前打印机不能获得的盒时能够在不改变所述控制装置的硬件的情况下定义适合于控制该功能的参数。
35.根据权利要求34的打印机控制器,其中当该至少一个可拆下打印装置被改变成具有不同的特性的打印装置时,从外部装置收到的用于控制打印机功能的命令得到改变以对应于该不同的特性。
36.根据权利要求34的打印机控制器,其中在把该至少一个可拆下打印装置连接到打印机上时代表该至少一个可拆下打印装置的特性的数据被送到该外部装置。
37.根据权利要求34的打印机控制器,其中在把打印机连接到处于在线状态下的外部装置时代表该至少一个可拆下打印装置的特性的数据被送到外部装置。
38.根据权利要求34打印机控制器,其中该至少一个可拆下打印装置是用于向记录介质上排放墨的打印头。
39.根据权利要求38的打印机控制器,其中接收的命令是用于向该至少一个打印头上施加加热脉冲的命令。
40.根据权利要求38的打印机控制器,其中接收的命令是用于设定至少一个打印头的打印速度的命令。
41.根据权利要求38的打印机控制器,其中接收的命令是用于设定从该至少一个打印头排放的墨滴的大小的命令。
42.根据权利要求34的打印机控制器,其中接收的命令是用于定义存储用于该至少一个打印头的打印数据的打印缓存器的命令。
43.根据权利要求42的打印机控制器,其中接收的命令是用于从外部装置向打印缓存器传送打印数据的命令。
44.根据权利要求34打印机控制器,其中接收的命令是用于从打印机请求至少一个打印装置的信息的命令。
45.用于具有至少一个可拆下打印装置的打印机的打印机驱动器,包括:
用于向打印机传送命令以根据该至少一个可拆下打印装置的特性控制打印机的功能的装置;
用于发送图象数据以使打印机根据由所述命令控制的条件而形成一个图象的装置,
其中所述命令能够定义一种参数,该参数适合于在当前不能获得的用于打印机的新的盒时在不改变打印机中的控制装置的硬件的情况下控制该功能。
46.根据权利要求45的打印机驱动器,其中当该至少一个可拆下打印装置被改变成具有不同特性的打印装置时,发送至打印机的用于控制打印机功能的命令参数得到改变以与不同特性相对应。
47.根据权利要求45的打印机驱动器,其中在至少一个可拆下打印装置被连接到打印机上时代表至少一个可拆下打印装置的特性的数据被送到打印机驱动器。
48.根据权利要求45的打印机驱动器,其中在打印机被连接到处于在线状态的打印机驱动器时代表至少一个可拆下打印装置的特性的数据被送到打印机驱动器。
49.根据权利要求45的打印机驱动器,其中至少一个可拆下打印装置是用于向一个记录介质上排放墨的打印头。
50.根据权利要求49的打印机驱动器,其中发送的命令是用于向至少一个打印头上施加加热脉冲的命令。
51.根据权利要求49的打印机驱动器,其中发送的命令是用于设定至少一个打印头的打印速度的命令。
52.根据权利要求49的命令,其中发送的命令是用于设定从至少一个打印头排放的墨滴的大小的命令。
53.根据权利要求45的打印机驱动器,其中发送的命令是用于限定存储用于至少一个打印头的打印数据的打印缓存器的命令。
54.根据权利要求53的打印机驱动器,其中发送的命令是用于把打印数据从打印机驱动器传送到打印缓存器的命令。
55.根据权利要求45的打印机驱动器,其中发送的命令是用于请求来自打印机的至少一个打印装置的信息的命令。
56.存储在计算机可读取介质中的用于利用具有至少一个可拆下打印装置的打印机形成图象的计算机可执行程序代码,包括:
第一组计算机可执行程序代码,用于把命令送到打印机以根据至少一个可拆下打印装置的特性控制打印机的功能;以及
第二组计算机可执行程序代码,用于发送图象数据以使打印机根据由所述命令控制的条件形成图象。
57.根据权利要求56的存储在计算机可读取介质中的计算机可执行程序代码,其中当至少一个可拆下打印装置被改变成具有不同的特性的打印装置时,一个第三组计算机可执行程序代码改变用于控制打印机功能的命令参数以与该不同的特性相对应。
58.根据权利要求56的存储在计算机可读取介质中的计算机可执行程序代码,其中在至少一个可拆下打印装置被连接到打印机时代表至少一个可拆下打印装置的特性的数据被送到打印机驱动器。
59.根据权利要求56的存储在计算机可读取介质中的计算机可执行程序代码,其中当打印机被连接到处于在线状态下的打印机上时代表至少一个可拆下打印装置的特性的数据被送到打印机驱动器。
60.根据权利要求56的存储在计算机可读取介质中的计算机可执行程序代码,其中至少一个可拆下打印装置是用于把墨排放到记录介质上的打印头。
61.根据权利要求60的存储在计算机可读取介质中的计算机可执行程序代码,其中发送的命令是用于把加热脉冲加到至少一个打印头上的命令。
62.根据权利要求60的存储在计算机可读取介质中的计算机可执行程序代码,其中发送的命令是用于设定至少一个打印头的打印速度的命令。
63.根据权利要求60的存储在计算机可读取介质中的计算机可执行程序代码,其中发送的命令是用于设定从至少一个打印头排放的墨滴大小的命令。
64.根据权利要求56的存储在计算机可读取介质中的计算机可执行程序代码,其中发送的命令是用于定义存储至少一个打印头的打印数据的打印缓存器的命令。
65.根据权利要求56的存储在计算机可读取介质中的计算机可执行程序代码,其中发送的命令是用于把打印数据从打印机驱动器传送到打印缓存器的命令。
66.根据权利要求56的存储在计算机可读取介质中的计算机可执行程序代码,其中发送的命令是用于请求来自打印机的至少一个打印装置的信息的命令。
CNB981224806A 1997-11-17 1998-11-17 打印机控制器和打印机驱动器 Expired - Fee Related CN1207656C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US972307 1997-11-17
US08/972,307 US6128098A (en) 1997-11-17 1997-11-17 Control over print head driving parameters

Publications (2)

Publication Number Publication Date
CN1217502A true CN1217502A (zh) 1999-05-26
CN1207656C CN1207656C (zh) 2005-06-22

Family

ID=25519494

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB981224806A Expired - Fee Related CN1207656C (zh) 1997-11-17 1998-11-17 打印机控制器和打印机驱动器

Country Status (8)

Country Link
US (1) US6128098A (zh)
EP (1) EP0916495B1 (zh)
JP (1) JP3902877B2 (zh)
CN (1) CN1207656C (zh)
AT (1) ATE260769T1 (zh)
AU (1) AU745044B2 (zh)
CA (1) CA2252117C (zh)
DE (1) DE69822078T2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101118481B (zh) * 2006-07-31 2010-09-29 佳能株式会社 文档处理设备和用于控制文档处理设备的方法
CN102189790A (zh) * 2010-02-19 2011-09-21 兄弟工业株式会社 能有效地增加色调数目的液滴喷射设备
CN107073952A (zh) * 2014-10-31 2017-08-18 惠普发展公司,有限责任合伙企业 基于环境温度的流率
CN111989210A (zh) * 2018-07-26 2020-11-24 惠普发展公司,有限责任合伙企业 三维对象的分层

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1297192B1 (it) * 1997-07-09 1999-08-03 Olivetti Lexikon Spa Stampante a colori a getto di inchiostro e relativo metodo di funzionamento
US6206506B1 (en) 1997-11-17 2001-03-27 Canon Kabushiki Kaisha Ink jet printer having an ink cleaning mechanism
US6260940B1 (en) 1998-05-04 2001-07-17 Canon Kabushiki Kaisha Ink jet printing system having ink preheating during non-printing periods
JP3102429B2 (ja) * 1998-08-27 2000-10-23 セイコーエプソン株式会社 印刷装置および印刷方法
JP2000198227A (ja) * 1998-10-27 2000-07-18 Canon Inc インクジェット記録方法、その装置、該装置の制御方法及びコンピュ―タ可読記憶媒体
US6345875B1 (en) * 1999-01-19 2002-02-12 Xerox Corporation Field programmable print control
US6631976B2 (en) 1999-04-14 2003-10-14 Canon Kabushiki Kaisha Control of ink jet nozzle prefiring
US6827423B1 (en) * 1999-05-06 2004-12-07 Seiko Epson Corporation Liquid jetting apparatus, method of driving the same, computer-readable recording medium storing the method and image recording apparatus incorporating the same
US6760119B1 (en) * 1999-05-25 2004-07-06 Silverbrook Research Pty Ltd Relay device
JP2000357063A (ja) * 1999-06-14 2000-12-26 Canon Inc プリンタヘッド及びプリンタ装置
JP2001063058A (ja) * 1999-08-24 2001-03-13 Canon Inc 記録システム、記録装置、情報処理装置及びそれらの制御方法、コンピュータ可読メモリ
JP2001325087A (ja) * 2000-05-12 2001-11-22 Seiko Epson Corp 書き換え可能なコマンド記憶部を利用したコマンド解析
JP2002091745A (ja) * 2000-09-11 2002-03-29 Canon Inc 印刷制御装置及びシステム及びその制御方法と印刷装置とプリンタドライバ
JP2002091724A (ja) * 2000-09-11 2002-03-29 Canon Inc 情報処理装置及びシステム及びその情報処理方法とデバイスドライバ
JP2002091725A (ja) * 2000-09-11 2002-03-29 Canon Inc 情報処理装置及びシステム及びその制御方法と周辺装置とプリンタドライバ
JP2002086853A (ja) * 2000-09-11 2002-03-26 Canon Inc 情報処理装置及びシステム及びその制御方法と周辺装置とプリンタドライバ
US6464334B2 (en) * 2001-01-08 2002-10-15 Hewlett-Packard Company Method for improving the quality of printing processes involving black pixel depletion
AUPR399001A0 (en) * 2001-03-27 2001-04-26 Silverbrook Research Pty. Ltd. An apparatus and method(ART104)
US6764158B2 (en) * 2001-10-02 2004-07-20 Hewlett-Packard Development Company, L.P. Compact optical sensing system
US7248382B2 (en) * 2001-10-17 2007-07-24 Hewlett-Packard Development Company, L.P. Media parameter downloading
JP2003202968A (ja) 2001-10-30 2003-07-18 Canon Inc 情報処理装置
US6749279B2 (en) * 2001-11-30 2004-06-15 Hitachi Printing Solutions, Ltd. Inkjet recording device capable of controlling ejection timing of each nozzle individually
JP2003305837A (ja) * 2002-04-15 2003-10-28 Canon Inc 記録装置、情報処理装置及びそれらの制御方法、プログラム
JP2003305836A (ja) * 2002-04-15 2003-10-28 Canon Inc 記録装置、情報処理装置及びそれらの制御方法、プログラム
JP2003305902A (ja) * 2002-04-15 2003-10-28 Canon Inc 記録装置、情報処理装置及びそれらの制御方法、プログラム
JP3977128B2 (ja) * 2002-04-15 2007-09-19 キヤノン株式会社 記録システム
JP4078215B2 (ja) * 2003-01-22 2008-04-23 キヤノン株式会社 記録装置、情報処理装置、および記録システム
JP2005204174A (ja) * 2004-01-16 2005-07-28 Seiko Epson Corp 画像形成装置、及び記憶媒体
US7469989B2 (en) 2004-01-21 2008-12-30 Silverbrook Research Pty Ltd Printhead chip having longitudinal ink supply channels interrupted by transverse bridges
US20050157112A1 (en) 2004-01-21 2005-07-21 Silverbrook Research Pty Ltd Inkjet printer cradle with shaped recess for receiving a printer cartridge
US7645025B2 (en) 2004-01-21 2010-01-12 Silverbrook Research Pty Ltd Inkjet printer cartridge with two printhead integrated circuits
US7367650B2 (en) * 2004-01-21 2008-05-06 Silverbrook Research Pty Ltd Printhead chip having low aspect ratio ink supply channels
US7448734B2 (en) * 2004-01-21 2008-11-11 Silverbrook Research Pty Ltd Inkjet printer cartridge with pagewidth printhead
US7524016B2 (en) * 2004-01-21 2009-04-28 Silverbrook Research Pty Ltd Cartridge unit having negatively pressurized ink storage
US7441865B2 (en) * 2004-01-21 2008-10-28 Silverbrook Research Pty Ltd Printhead chip having longitudinal ink supply channels
US7237864B2 (en) * 2004-02-06 2007-07-03 Hewlett-Packard Development Company, L.P. Fluid ejection device identification
US7654531B2 (en) * 2004-10-26 2010-02-02 Mattel, Inc. Travel game
JP2006150816A (ja) 2004-11-30 2006-06-15 Brother Ind Ltd インクジェット記録装置及び波形決定方法
US7391427B2 (en) * 2005-06-28 2008-06-24 Zink Imaging, Llc Parametric programmable thermal printer
US7543908B2 (en) * 2005-08-23 2009-06-09 Hewlett-Packard Development Company, L.P. Clearing silicate kogation
JP4835216B2 (ja) * 2006-03-17 2011-12-14 セイコーエプソン株式会社 プリンタ、プリンタシステム及びファームウェア書き換え方法
US8944544B2 (en) * 2007-06-28 2015-02-03 Canon Finetech, Inc. Printing apparatus and printing method
JP4683114B2 (ja) * 2008-11-06 2011-05-11 ブラザー工業株式会社 記録装置、記録制御方法、及び記録制御プログラム
US20120291156A1 (en) 2009-07-08 2012-11-15 Wageningen Universiteit Method for increasing the resistance of a plant or a part thereof to a pathogen, method for screening the resistance of a plant or part thereof to a pathogen, and use thereof
JP5811135B2 (ja) * 2013-05-10 2015-11-11 コニカミノルタ株式会社 画像形成装置
WO2016015773A1 (en) * 2014-07-31 2016-02-04 Hewlett-Packard Development Company Printer drive signal control
WO2017074415A1 (en) 2015-10-30 2017-05-04 Hewlett-Packard Development Company, L.P. Hinge set
US10493784B2 (en) 2017-03-31 2019-12-03 Canon Kabushiki Kaisha Printing apparatus, printing system, method of controlling printing apparatus, method of controlling printing system, and storage medium
WO2020162895A1 (en) 2019-02-06 2020-08-13 Hewlett-Packard Development Company, L.P. Issue determinations responsive to measurements
EP3710986B1 (en) 2019-02-06 2023-06-07 Hewlett-Packard Development Company, L.P. Modifying control data packets that include random bits
WO2020162923A1 (en) 2019-02-06 2020-08-13 Hewlett-Packard Development Company, L.P. Emulating parameters of a fluid ejection die
CN110065314B (zh) * 2019-05-23 2021-11-19 珠海艾派克微电子有限公司 采用耗材芯片对打印设备进行数据修正的方法
JP2022044166A (ja) * 2020-09-07 2022-03-17 セイコーエプソン株式会社 液体吐出装置及び液体吐出装置の駆動方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4692778A (en) * 1985-03-28 1987-09-08 Canon Kabushiki Kaisha Image formation apparatus with a recording unit and paper feed cover and a sealing member
US4872027A (en) * 1987-11-03 1989-10-03 Hewlett-Packard Company Printer having identifiable interchangeable heads
JP2675851B2 (ja) * 1989-01-28 1997-11-12 キヤノン株式会社 インクジェット記録方法及び該方法に用いる装置
US5266974A (en) * 1989-05-18 1993-11-30 Canon Kabushiki Kaisha Ink jet recording apparatus including means for controlling speed of wiper member
DE69022112T2 (de) * 1989-05-18 1996-02-15 Canon Kk Tintenstrahlaufzeichnungsgerät.
JP2859296B2 (ja) * 1989-06-01 1999-02-17 キヤノン株式会社 画像再生方法及びその装置
JP2768788B2 (ja) * 1990-02-26 1998-06-25 キヤノン株式会社 記録装置
KR940000377B1 (ko) * 1990-05-10 1994-01-19 캐논 가부시끼가이샤 Cpu를 사용한 데이타 처리장치
US5172140A (en) * 1990-06-13 1992-12-15 Canon Kabushiki Kaisha Ink jet recording apparatus including a device for indicating need to change waste ink pack
DE69219180T2 (de) * 1991-02-12 1997-10-02 Canon Kk Tintenstrahlaufzeichnungssystem und Verfahren
JP2941998B2 (ja) * 1991-06-03 1999-08-30 キヤノン株式会社 インクジェット記録装置
CA2074906C (en) * 1991-08-01 2000-09-12 Hiromitsu Hirabayashi Ink jet recording apparatus having temperature control function
JP2942031B2 (ja) * 1991-09-30 1999-08-30 キヤノン株式会社 インクジェット記録装置
JP3009764B2 (ja) * 1991-10-03 2000-02-14 キヤノン株式会社 インクジェット記録装置
EP0860285B1 (en) * 1991-12-11 2002-03-06 Canon Kabushiki Kaisha Ink jet cartridge
CA2085550C (en) * 1991-12-19 1999-07-06 Kentaro Yano Method of controlling an ink-jet recording apparatus according to recording head information, and ink-jet recording apparatus in which the method is implemented
JP3083409B2 (ja) * 1992-07-24 2000-09-04 キヤノン株式会社 インクジェット記録装置および該記録装置の回復方法
JP3491972B2 (ja) * 1994-07-14 2004-02-03 キヤノン株式会社 記録装置及び記録方法
US5742306A (en) * 1995-07-31 1998-04-21 Hewlett-Packard Company Imaging cartridge system for inkjet printing mechanisms

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101118481B (zh) * 2006-07-31 2010-09-29 佳能株式会社 文档处理设备和用于控制文档处理设备的方法
CN102189790A (zh) * 2010-02-19 2011-09-21 兄弟工业株式会社 能有效地增加色调数目的液滴喷射设备
CN102189790B (zh) * 2010-02-19 2013-11-27 兄弟工业株式会社 能有效地增加色调数目的液体喷射设备
CN107073952A (zh) * 2014-10-31 2017-08-18 惠普发展公司,有限责任合伙企业 基于环境温度的流率
US10112385B2 (en) 2014-10-31 2018-10-30 Hewlett-Packard Development Company, L.P. Ambient temperature based flow rates
CN107073952B (zh) * 2014-10-31 2019-10-11 惠普发展公司,有限责任合伙企业 基于环境温度的流率
CN111989210A (zh) * 2018-07-26 2020-11-24 惠普发展公司,有限责任合伙企业 三维对象的分层
US11338520B2 (en) 2018-07-26 2022-05-24 Hewlett-Packard Development Company, L.P. Layering of a three-dimensional object
CN111989210B (zh) * 2018-07-26 2022-08-02 惠普发展公司,有限责任合伙企业 用于三维对象的分层的设备

Also Published As

Publication number Publication date
DE69822078D1 (de) 2004-04-08
EP0916495A3 (en) 2000-06-28
EP0916495B1 (en) 2004-03-03
DE69822078T2 (de) 2004-10-28
ATE260769T1 (de) 2004-03-15
CA2252117A1 (en) 1999-05-17
JP3902877B2 (ja) 2007-04-11
EP0916495A2 (en) 1999-05-19
CA2252117C (en) 2002-07-09
JPH11227181A (ja) 1999-08-24
AU745044B2 (en) 2002-03-07
AU9239798A (en) 1999-06-03
CN1207656C (zh) 2005-06-22
US6128098A (en) 2000-10-03

Similar Documents

Publication Publication Date Title
CN1207656C (zh) 打印机控制器和打印机驱动器
JP3792916B2 (ja) プリンタ、およびプリンタの回復制御方法
JP3548441B2 (ja) 異なる解像度でのマルチヘッドプリント
JPH11227182A (ja) プリンタプロファイルパラメータを格納するメモリを有したプリンタ
CN1313274C (zh) 一种墨盒与使用这种墨盒的打印机
CN1268993C (zh) 印刷装置及其控制方法
JPH11227229A (ja) 複数の異なる黒インクを用いたプリント
JP3715806B2 (ja) アクセス可能なプリントバッファを有したシリアルプリンタ
CN1244796C (zh) 记录介质判别方法及记录装置
CN101077662A (zh) 喷墨记录装置和记录方法
CN1960879A (zh) 供墨装置、记录装置、供墨方法和记录方法
JP3382551B2 (ja) 記録装置用排出トレイ
CN1958293A (zh) 打印机和打印系统
CN1684829A (zh) 液体喷射装置和打印系统
CN1657286A (zh) 记录装置和记录方法
CN101038633A (zh) 标签-标记制作装置
CN1671557A (zh) 记录设备、记录方法、程序以及计算机系统
CN1183438C (zh) 信息处理设备和方法、打印驱动程序形成方法
CN1831848A (zh) 记录装置、用于记录装置的数据处理方法以及记录系统
CN1795106A (zh) 成像装置
CN1269070C (zh) 记录装置和缓冲存储器管理方法
CN1717327A (zh) 液体喷射设备、液体喷射方法以及液体喷射系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Applicant after: Canon K. K.

Applicant before: Canon Business Machine Co.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: CANON BUSINESS MACHINE CO. TO: CANON CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050622

Termination date: 20141117

EXPY Termination of patent right or utility model