修改包括随机位的控制数据包
文献发布时间:2023-06-19 12:25:57
背景技术
许多打印装置包括至少一个流体喷射装置(例如,打印头),所述流体喷射装置被设计成容纳填充有流体(例如,在喷墨打印装置的情况下为墨水或墨粉,或在三维打印装置的情况下为精细剂)的盒。流体喷射装置进一步包括至少一个喷嘴,流体经由所述喷嘴从盒分配到基材(例如,纸)上。当打印文档时,打印装置的打印引擎控制器可将命令发送到流体喷射装置,这些命令控制流体喷射装置的各个喷嘴何时“射出(fire)”或分配流体。
附图说明
图1是图示根据一个示例的打印装置的元件的框图。
图2是图示根据一个示例的控制数据包的图,该控制数据包可用于传达用于使流体喷射装置的喷嘴进行射出的命令。
图3是图示根据一个示例的流体喷射阵列控制器接口的框图。
图4是图示根据一个示例的用于图3中所示的流体喷射阵列控制器接口的信号的时序的时序图。
图5是图示流体喷射控制器接口的示例的框图。
图6是图示根据一个示例的处理控制数据包的方法的流程图。
具体实施方式
在以下详细描述中,参考了形成其一部分的附图,并且在附图中通过图示示出了其中可实践本公开的特定示例。将理解的是,在不脱离本公开的范围的情况下,可利用其他示例并且可做出结构或逻辑改变。因此,将不在限制性的意义上理解以下详细描述,并且本公开的范围由所附权利要求限定。将理解的是,除非另外特别指出,否则本文中所描述的各种示例的特征可彼此部分或全部地组合。
当打印文档时,打印装置的打印引擎控制器可经由数据路径将控制数据包中的命令发送到流体喷射装置(例如,打印头),这些命令控制流体喷射装置的各个喷嘴何时“射出”或分配流体(例如,在喷墨打印装置的情况下为墨水、墨粉,或在三维打印装置的情况下为精细剂)。对于高密度打印应用,可将各种喷嘴分组为多个“基元”,使得每个基元中的一个喷嘴基于从打印引擎控制器加载的数据(例如,每基元一个数据位)在任何给定时间进行射出。对于较低密度的打印应用,可组合多个基元以形成“虚拟”基元,其中每个虚拟基元中的一个喷嘴在任何给定时间进行射出(因此,虚拟基元中的一些基元可不使任何喷嘴进行射出)。
一些移位寄存器流体喷射实施方式可允许在控制数据包的标头中插入随机数据。可将可变数量的随机数据位添加到标头。随机数据位可能对真实喷嘴数据和/或控制字数据没有功能性影响,但可以提供益处,诸如识别数据完整性问题和有效地随机化或抖动射出时段以扩展与射出相关的电磁兼容性辐射的频率。然而,一些流体喷射装置设计可不利用与随机长度标头兼容的接收器。这些流体喷射装置设计在利用随机长度标头的系统中可能未恰当地操作。例如,一些流体喷射装置设计可利用不同的控制字或数据路径结构,因此可执行数据包内的位的重新映射以提供兼容性。这种重新映射涉及对准到随机长度标头以确定真实控制字/数据包的位置的能力。
本公开的一些示例涉及一种流体喷射阵列控制器接口,其确定随机数据在控制数据包内的位置。对准到随机长度标头允许去除随机标头和/或修改数据包(包括控制字)。本公开的一些示例针对一种流体喷射阵列控制器接口,其在将控制数据包提供给流体喷射装置之前从该控制数据包的标头去除随机插入位。本文中所公开的一些示例允许将针对与移位寄存器流体喷射实施方式的兼容性所定义的系统与替代性流体喷射装置一起使用(例如,通过去除随机标头)或者将针对特定控制字位排序(例如,地址位位置)所定义的系统与替代性流体喷射装置一起使用(例如,通过修改控制字数据和/或位映射以重新排列控制字位)。一些示例为未来未定义的流体喷射架构提供了灵活的系统设计。
在一个示例中,流体喷射阵列控制器接口包括时钟恢复逻辑,该时钟恢复逻辑用于接收突发模式输入时钟信号并生成自由运行时钟信号。流体喷射阵列控制器接口可包括用于基于自由运行时钟信号来识别随机插入位的位置的计数器逻辑。流体喷射阵列控制器接口包括用于基于由计数器逻辑执行的识别来去除随机插入位的输出逻辑,并且将去除了随机插入位的修改后的数据包输出到流体喷射装置。输出逻辑还通过在对应于随机插入位的位置的时间期间掩蔽自由运行时钟信号来生成输出时钟信号。
尽管可在喷墨打印的上下文内讨论本公开的示例,但是可进一步应用本文中所公开的技术以控制三维打印装置的流体喷射装置以及喷射流体(诸如,墨水、墨粉等,或增材制造过程中使用的精细剂(例如,结合剂材料、粉末等)的其他装置。
图1是图示根据一个示例的打印装置100的元件的框图。打印装置100包括打印引擎控制器102、流体喷射阵列控制器接口104和流体喷射装置106。在一个示例中,流体喷射装置106可以是布置成打印装置(例如,喷墨打印装置或三维打印机)的流体喷射阵列(例如,打印杆)的多个流体喷射装置(例如,打印头)中的一者。流体喷射装置106包括喷嘴阵列108,该喷嘴阵列进一步包括沿着流体喷射装置106成行布置的喷嘴列110(1)-110(X)(下文中统称为“喷嘴列110”)。每个喷嘴列110包括布置成将流体分配到基材上的多个喷嘴,其中这些喷嘴可布置成称为“基元”的组。基元可进一步布置成称为“虚拟基元”的组。喷嘴的数量和布置可取决于期望的打印密度而变化。流体喷射装置106还包括流体喷射阵列控制器112,该流体喷射阵列控制器连接到喷嘴阵列108。在一些示例中,流体喷射阵列控制器112也可被称为流体喷射控制器,并且流体喷射阵列控制器接口104也可被称为流体喷射控制器接口。
流体喷射阵列控制器接口104从打印引擎控制器102接收控制数据包103以用于控制由喷嘴阵列108的喷嘴进行的流体喷射。接口104从接收到的控制数据包103去除随机插入位以创建去除了随机插入位的修改后的控制数据包105,并且将修改后的控制数据包105输出到流体喷射阵列控制器112。流体喷射阵列控制器112基于修改后的控制数据包105的内容来生成用于喷嘴阵列108的喷嘴(或更具体地,在一些示例中,用于喷嘴阵列108的虚拟基元)的喷射控制数据113。数据路径将打印引擎控制器102、流体喷射阵列控制器接口104和流体喷射阵列控制器112互连,并且传输控制数据包103和修改后的控制数据包105。该数据路径可以是高速数据路径,诸如多通道(multi-lane)串行总线。
在一个示例中,控制数据包103是“射出脉冲组”(或“FPG”)包,其包含关于流体喷射装置106的哪些喷嘴应进行射出的数据。例如,控制数据包103可识别包含要进行射出的喷嘴的基元或虚拟基元,或者这些包可包含用于每个基元的数据位。在图2中进一步详细图示了射出脉冲组的一个示例。流体喷射阵列控制器接口104可以被构造成从接收到的控制数据包103去除随机插入位以创建修改后的控制数据包105。基于被包含在修改后的控制数据包105中的信息,流体喷射阵列控制器112将唯一基元数据(例如,一个喷嘴的有效数据(worth of data))写入到流体喷射装置106的每个基元。唯一基元数据被包含在喷射控制数据113中。这可涉及将空值插入到控制数据包103中以指示特定基元不应使任何喷嘴进行射出。
流体喷射阵列控制器112还可基于被包含在修改后的控制数据包105中的信息来生成多个喷嘴控制位。这些喷嘴控制位可包括该基元本地(local to that primitive)的基元数据、地址信息和FIRE(射出)信号的组合。喷嘴控制位命令使被寻址的喷嘴进行射出。在一个示例中,流体喷射阵列控制器112为流体喷射装置106上的每个基元生成一个喷嘴控制位。在一个示例中,流体喷射阵列控制器112用位值(例如,“0”或“1”)填充喷嘴控制位,所述位值指示由对应地址识别的喷嘴是否应进行射出。流体喷射阵列控制器112还可将地址数据输送到流体喷射装置106的基元。在一个示例中,地址数据识别(例如,通过对应地址)流体喷射装置106的基元内的哪些喷嘴应进行射出。
在一个示例中,流体喷射阵列控制器接口104被实施为与流体喷射装置106分离并且被定位在打印引擎控制器102和流体喷射装置106之间的装置。在另一个示例中,流体喷射阵列控制器接口104被集成到流体喷射装置106中,并且可与流体喷射阵列控制器112位于共同的半导体管芯上。
图2是图示根据一个示例的控制数据包200的图,该控制数据包可用于传达用于使流体喷射装置的喷嘴进行射出的命令。控制数据包200是控制数据包103(图1)的格式的一个示例。在一个示例中,控制数据包200是射出脉冲组(或FPG)包。在一个示例中,控制数据包200包括随机数据202、标头204、包括一组地址位206和/或一组射出数据位208的有效载荷、以及页脚210。图2中所图示的示例是抽象概念,且并不意在限制可被包括在包200中或包200的任何特定部分中的位数。
随机数据202包括被添加到控制数据包200的在标头204前面的前端的随机数量的随机数据位。在一个示例中,随机数据202由伪随机数生成器(PRNG)生成,诸如通过使用线性反馈移位寄存器方法。随机数据202的长度(即,所包括的随机数据位的数量)和随机数据位的值两者都可由PRNG确定。在一个示例中,具有伪随机长度的随机数据202包括0、2、4、6或8位的伪随机数据。
在一个示例中,标头204包括由流体喷射阵列控制器112(图1)用于检测控制数据包200的起点的位。因此,标头204可包括某个预定义的位序列,该位序列指示控制数据包的起点。在一个示例中,标头204附加地包括一组基元选择位212。基元选择位212可用于例如识别虚拟基元内的哪个基元正被寻址(且因此应进行射出)。基元选择位212可被包含在控制数据包200的不同部分(诸如,有效载荷或页脚210)中。
在一个示例中,该组地址位206为每个基元识别对应于要进行射出(即,射出唯一基元数据和喷射流体)的喷嘴的地址(也被称为“嵌入地址”)。在一个示例中,可从控制数据包200中省略该组地址位206;在这种情况下,地址位206可由流体喷射阵列控制器112的地址生成器生成。
在一个示例中,该组射出数据位208包括用于流体喷射装置106上的每个基元的一个喷嘴的有效数据(例如,唯一基元数据)。被包括在该组射出数据位208中的数据确定由特定基元内的该组地址位识别的喷嘴是否应进行射出。例如,射出数据位208可包括用于指示基元的喷嘴应进行射出的非空值(例如,“1”)。对于每个基元,被包括在该组射出数据位208中的数据可不同。
在一个示例中,页脚210包括由流体喷射阵列控制器112用于检测控制数据包200的终点的位。因此,页脚210可包括某个预定义的位序列,该位序列指示控制数据包的终点。
一旦控制数据包200被加载到流体喷射阵列控制器112中,数据和地址的信息位然后就存在于每个基元处。此时,将射出信号发送到所有基元(从第一个基元传播到最后一个基元)。该射出信号然后生成喷嘴控制位,这些喷嘴控制位包括该基元本地(local to thatprimitive)的基元数据、地址信息和FIRE(射出)信号的组合。然后将喷嘴控制位发送到流体喷射装置106上的基元组,并且这些基元组将使由所述喷嘴控制位寻址的喷嘴进行射出。为了在一个射出脉冲组中使流体喷射装置106上的所有喷嘴进行射出,将因此为每个地址值加载虚拟基元控制包200。
图3是图示根据一个示例的流体喷射阵列控制器接口300的框图。图3中所示的接口300是图1中所示的接口104的一个示例实施方式。接口300包括DCLK输入302、DATA_x输入304、时钟信号生成器306、时钟恢复逻辑308、可训练的门控计数器310、与门312和314、DCLK
图4是图示根据一个示例的用于图3中所示的流体喷射阵列控制器接口300的信号的时序的时序图。图4示出了五个控制数据包402(0)-402(4)(本文中统称为控制数据包402)。在一个示例中,控制数据包402是“射出脉冲组”(或“FPG”)包或数据突发,其包含关于流体喷射装置的哪些喷嘴应进行射出的数据。控制数据包402中的每一者包括真实包数据(例如,真实包数据420(1)、420(2)和420(3))和随机数据(例如,随机数据418(2)和418(3))。
图4还示出了信号404、406、408和410。DATA_x信号404表示由接口300经由输入304接收到并以串行方式提供给与门314的输入的控制数据包402。DCLK信号406表示由接口300经由输入302接收到并提供给时钟恢复逻辑308的输入时钟信号。DCLK
在一个示例中,输入302和304连接到打印引擎控制器(例如,打印引擎控制器102),并且输出316和318连接到流体喷射阵列控制器(例如,流体喷射阵列控制器112)。在根据一个示例的操作中,时钟恢复逻辑308经由输入302和由时钟信号生成器306提供的时钟信号来接收突发模式输入DCLK信号406。基于这些接收到的时钟信号,时钟恢复逻辑308使用时钟恢复方法从DCLK信号406恢复内部自由运行时钟信号(DCLK
可训练的门控计数器310包括计数器逻辑,该计数器逻辑用于基于接收到的DCLK
在对应于真实包数据(例如,真实包数据420(1)、420(2)和420(3))的时间段期间,门控计数器310经由通信链路313将具有逻辑高值的DATA_
门控计数器310使用对应于空闲时段的计数器目标值。该计数器目标值可在门控计数器310内是固定的,或者门控计数器310可以是自适应的/可训练的以确定空闲时段并使用对应的计数器目标值。由于真实包数据(例如,真实包数据420(1)、420(2)和420(3))具有固定时段(即,固定数量的DCLK
本公开的一个示例涉及一种流体喷射控制器接口。图5是图示流体喷射控制器接口500的示例的框图。流体喷射控制器接口500可包括时钟恢复逻辑506,该时钟恢复逻辑用于接收突发模式输入时钟信号502并生成自由运行时钟信号508。接口500包括用于接收控制数据包504的输出逻辑512。每个控制数据包504包括一组基元数据位和一组随机位。接口500包括计数器逻辑510,该计数器逻辑用于使输出逻辑512将修改后的控制数据包514输出到流体喷射装置516的流体喷射控制器518。在其他示例中,接口500可包括更多或更少的元件,诸如未被包括在接口500中的时钟恢复逻辑506。
计数器逻辑510可基于自由运行时钟信号来识别随机位在接收到的控制数据包中的位置。每个控制数据包504的该组随机位可具有伪随机长度。每个控制数据包504的该组随机位的值可具有伪随机数值。计数器逻辑510可对自由运行时钟信号508的时钟周期进行计数以识别随机位的位置。输出逻辑512可包括用于接收自由运行时钟信号508并将输出时钟信号输出到流体喷射控制器518的逻辑部件。计数器逻辑510可使该逻辑部件在对应于每个控制数据包504的该组随机位的时段期间掩蔽自由运行时钟信号508。输出逻辑512可包括用于接收控制数据包504并输出修改后的控制数据包514的逻辑部件,并且计数器逻辑510可使该逻辑部件在对应于每个接收到的控制数据包504的该组随机位的时段期间掩蔽接收到的控制数据包504。流体喷射控制器接口500可被实施为与流体喷射装置516分离。流体喷射控制器接口500可被集成到流体喷射装置516中。流体喷射控制器接口500可与流体喷射控制器518位于共同的半导体管芯上。
输出逻辑512可包括修改逻辑,该修改逻辑用于修改接收到的控制数据包504中的位的位置和/或值以促进修改后的控制数据包514的创建,并且修改后的控制数据包514可包括或可不包括该组随机位。
本公开的另一个示例涉及一种处理控制数据包的方法。图6是图示根据一个示例的处理控制数据包的方法600的流程图。在602处,方法600包括:由时钟恢复逻辑基于接收到的突发模式输入时钟信号来生成自由运行时钟信号。在604处,方法600包括:由输出逻辑接收控制数据包,每个控制数据包包括一组基元数据位和一组随机位。在606处,方法600可包括:由计数器逻辑基于自由运行时钟信号来识别随机位在接收到的控制数据包中的位置。在608处,方法600包括:由输出逻辑将修改后的控制数据包输出到流体喷射装置的流体喷射控制器。在其他示例中,方法600可包括更多或更少的步骤,诸如未被包括在方法600中的在606处的识别。
方法600中的每个控制数据包的该组随机位可具有伪随机长度,并且每个控制数据包的该组随机位的值可以是伪随机数值。方法600可进一步包括:由输出逻辑接收自由运行时钟信号;以及由计数器逻辑来控制输出逻辑以通过在对应于每个控制数据包的该组随机位的时段期间掩蔽自由运行时钟信号来生成输出时钟信号。方法600可进一步包括:由输出逻辑基于随机位的所识别的位置从接收到的控制数据包去除随机位以创建修改后的控制数据包。
本公开的又一示例针对一种设备,其包括时钟恢复逻辑,该时钟恢复逻辑用于从接收到的突发模式输入时钟信号恢复自由运行时钟信号。该设备包括用于接收控制数据包的第一输出逻辑部件。每个控制数据包包括一组基元数据位和一组随机位。该设备包括用于接收自由运行时钟信号的第二输出逻辑部件。该设备包括计数器逻辑,该计数器逻辑用于使第一输出逻辑部件将修改后的控制数据包输出到流体喷射装置的流体喷射控制器、以及使第二输出逻辑部件将输出时钟信号输出到流体喷射控制器。
计数器逻辑可基于自由运行时钟信号来识别随机位在接收到的控制数据包中的位置。计数器逻辑可对自由运行时钟信号的时钟周期进行计数以识别随机位的位置。计数器逻辑可使第一输出逻辑部件基于所识别的位置来掩蔽接收到的控制数据包、以及使第二输出逻辑部件基于所识别的位置来掩蔽自由运行时钟信号。
本公开的各方面可以通过机器可读指令和/或以机器可读指令和硬件的组合来实施,例如使用专用集成电路(ASIC)、可编程逻辑阵列(PLA)(包括现场可编程门阵列(FPGA))或部署在硬件装置、通用计算机或任何其他硬件等效物上的状态机,例如与本文中所讨论的(多种)方法有关的计算机可读指令可以用于将硬件处理器构造成执行所公开的方法的块、功能和/或操作。
此外,当硬件处理器执行指令以执行“操作”时,这可包括硬件处理器直接执行操作和/或促进、指导另一个硬件装置或部件(例如,协处理器等)或与其合作来执行操作。执行与本文中所描述的(多种)方法相关的机器可读指令的处理器可以被视作编程处理器或专用处理器。因而,本公开的用于控制本文中所公开的装置的模块(包括相关联的数据结构)可以存储在有形的或物理的(广泛地非暂时性的)计算机可读存储装置或介质上,例如易失性存储器、非易失性存储器、ROM存储器、RAM存储器、磁性或光学驱动器、装置或软盘等。更具体地,计算机可读存储装置可包括提供存储信息(诸如,要由处理器或计算装置(诸如,计算机或应用服务器)访问的数据和/或指令)的能力的任何物理装置。
尽管本文中已图示和描述了特定示例,但是在不脱离本公开的范围的情况下,可用各种替代和/或等效的实施方式来代替所示和描述的特定示例。本申请旨在涵盖本文中所讨论的特定示例的任何修改或变化。因此,本公开旨在仅由权利要求及其等效物限制。
- 修改包括随机位的控制数据包
- 工程机械的作业机位置控制装置及作业机位置控制方法