技术领域
[0001] 本发明涉及一种打印数据的处理方法和打印控制系统,属于数据处理技术领域。
相关背景技术
[0002] 本部分的描述仅提供与本发明公开相关的背景信息,而不构成现有技术。
[0003] 大部分喷头都是由多列喷孔组成的,为实现正常打印,需要处理好打印数据和喷孔之间的对应关系,目前的现有技术中,这部分功能主要由上位机软件来实现。
[0004] 为便于理解,本发明背景技术中将现有的一种打印数据处理方法进行了简化。例如如图1所示,一个喷头由A,B两列喷孔交错排列组成,每列各负责一种颜色。为说明其打印原理,假设需要在介质第0列位置打印一条两色交错的直线,如图2所示,假设喷头A,B两列之间相隔3列喷孔距离。
[0005] 启动打印后,如图3所示,喷头向左侧移动,当喷头A列移到介质位置0上方时,外部编码器会触发一次打印指令,此时喷头A列输出数据1,代表出墨,B列输出数据0,代表不出墨。如图4所示,喷头继续向左移动,在到达介质1列上方时,A,B两列都输出0,代表都不出墨,此时介质上只有之前0列留有之前喷头A喷出的墨。如图5和图6所示,喷头继续向左移动,喷头到达介质2,3列上方位置时,A,B两列都输出0,代表不出墨,介质上仍然只有之前第0列留下的墨。如图7所示,当喷头A列移动到介质4列的上方时,喷头B列刚好也到达了介质0列的上方,此时A列输出0,不出墨,B列输出1,出墨,刚好与之前A列输出的墨叠加在一起,在介质0列位置构成一条完整的直线。
[0006] 如图8和图9所示,对上位机而言,针对每一次编码器的触发点火需要同时提供A,B两列的数据。为实现上述的打印目的,需要对打印数据做预处理,主要包括:
[0007] ‑‑原始数据按A,B两列拆分映射;
[0008] ‑‑列之间根据间隔填充空数据实现延迟对齐;
[0009] ‑‑合并重组后的列数据发送给下位机,因为每次触发点火A,B两列需要同时输出。
[0010] 继续如图9所示,下位机数据处理流程可以分为以下几步:
[0011] ‑‑输入数据的缓存管理,因为上机位发送数据的速度远大于喷头消耗数据的速度,所以需要将下发的数据先写入一个存储空间,一般用DDR3 SDRAM实现。在达到一定的存储阈值之后,会提前读出一部分数据到输出缓冲区,满足打印过程中的数据需求。
[0012] ‑‑喷头的数据接口一般都是A,B两列独立信号,所以需要先将数据按列分开,然后再分别送给喷头的不同列接口。
[0013] 从上述方案可以看出,上位机的数据处理比较麻烦,需要考虑喷头的构造,由多少列构成,列之间的间隔是多少,根据这些信息,将数据按列做数据补空操作,然后才能发给下位机。这中间涉及数据操作基本都是比特级的,CPU负载很重,数据量越大效率越低。相比之下,下位机的处理则相对简单,只需要将数据缓存好,并按列分配到不同的喷头接口即可,不需要考虑列之间的间隔信息,没有复杂的数据处理,不能充分发挥下位机的实时数据处理优势。
[0014] 而随着打印技术的发展,喷头内部集成的喷孔数量和分布的列数都在逐渐增加,软件处理数据的效率逐渐降低,已经满足不了系统对实时性的要求。
[0015] 应该注意,上面对技术背景的介绍只是为了方便对本发明的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本发明的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
具体实施方式
[0053] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054] 需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的和区别类似的对象,两者之间并不存在先后顺序,也不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0055] 参见附图10‑12,本说明一较佳实施例所述的一种打印数据的处理方法,用于控制打印喷头进行打印,所述打印喷头具有多个列,包括如下的步骤:
[0056] 1)获取原始打印数据以及延迟配置信息,所述延迟配置信息用于指示打印喷头中多个列的延迟值;
[0057] 2)将所述原始打印数据按列拆分,并将拆分获得的多个列信息分发至对应的列缓存单元中;
[0058] 3)基于所述延迟配置信息以所述列缓存中存储的多个列信息控制对应的打印喷头进行打印,并在打印过程中,实时匹配多个列对应的动态延迟。
[0059] 其中,所述原始打印数据是从上位机中获得的,该原始打印数据即是用于反应打印图案的像素数据或点阵数据等等常见的未经过现有技术中的上位机软件处理的打印数据,所述延迟配置信息用于指示打印喷头不同列的打印延迟值,例如图3‑图7中的A列延迟为0,B列延迟为4,该延迟配置信息可以由上位机发送,也可以写入打印机的自身配置信息中。
[0060] 继续参见图10,本发明实施例还提供应用上述处理方法的一种打印控制系统,设置于打印机中,包括:原始数据缓存管理模块、数据分发模块、多个列输出控制模块以及多个列数据缓冲模块;
[0061] 所述原始数据缓存管理模块包括原始数据存储单元和多个列缓存单元,用于获取原始打印数据以及延迟配置信息,所述延迟配置信息用于指示打印喷头中多个列的延迟值,所述原始打印数据存储于所述原始数据存储单元中;
[0062] 所述数据分发模块用于将所述原始打印数据按列拆分,并将拆分获得的多个列信息分发至对应的列缓存单元中;
[0063] 所述列输出控制模块和列数据缓冲模块用于基于所述延迟配置信息以所述列缓存中存储的多个列信息控制对应的打印喷头进行打印,并在打印过程中,实时匹配多个列对应的动态延迟。
[0064] 基于上述示例性技术方案,本发明实施例改进后的处理方案及打印系统,不需要上位机考虑喷头的具体结构,也不需要对图像数据做任何比特级处理,可以将原始数据直接下发,这样可以极大降低上位机的CPU负载,提高处理效率。另外需要将喷头固有的列延迟信息配置给下位机,如A列延迟配为0,B列延迟配置为4。
[0065] 同时,下位机可以充分发挥并行实时处理的优势,对原始数据根据喷头结构做复杂的数据处理。具体的,参见图10所示,将DDR3 SDRAM空间分为两部分,一部分与之前一样,用于接收上位机下发的原始数据,属于原始数据存储单元,另一部分划分为多个列缓存空间,属于列缓存单元,其数量视打印喷头的列多少而定,如例子中分为两部分,分别为A列与B列。所述的数据处理方法整个处理主要流程及打印系统的结构可以包括:
[0066] 1.原始数据存储管理,控制好与上位机之间的吞吐量,防止数据溢出或者读空。
[0067] 2.数据分发模块,实时监测列空间情况,将原始数据以喷头列为粒度重组分发,存储到为每一列单独分配的空间中。
[0068] 3.列输出控制模块,根据打印需求,通过控制各列数据的输出,实现列之间打印数据的延迟,以达到打印对齐的目的。
[0069] 4.延迟同步接口实现打印过程中各列之间的实时数据对齐功能。最早输出的列作为主模块,实时监测统计相同两次打印任务触发之间延迟数据,并将此信息广播到其余列模块,实现延迟信息的共享同步,以保证每次打印任务,各列之间延迟能够保持打印对齐。
[0070] 5.每列都有单独的列数据缓冲模块,一般用FIFO实现,在数据为空或点火计数没有达到配置的延迟值时,向喷头对应列送数据0,即不出墨。这样可以独立实现各列之间的数据打印延迟。
[0071] 具体的,原始数据缓存管理模块中:
[0072] 上位机下发的数据首先会先进入输出数据数据缓冲模块,这个模块一般用FIFO实现,可简称为IN_FIFO,当处理模块发现IN_FIFO中有数据,且原始数据缓存(可简单为DDR3_DAT_BUF)有额外空间时,则将数据从IN_FIFO中搬运到DD3_DAT_BUF中。如果此时DDR3_DAT_BUF中没有空间,则向上位机反馈状态满信息,阻止数据的继续下发。
[0073] 数据输出缓冲也是用FIFO实现,可简称为OUT_FIFO。数据管理模块在监测到OUT_FIFO有空间,且DDR3_DAT_FIFO中有数据时,就会立即启动数据从DDR3_DAT_FIFO向OUT_FIFO中搬运。
[0074] 具体的,数据分发模块中:
[0075] 数据分发模块分实时监测列缓存(简称为COL_BUF)和OUT_FIFO的空间情况,当OUT_FIFO中有数据且所有COL_BUF有空间时,就会从OUT_FIFO中读出数据,并按列拆分,分别存储到对应的COL_BUF中。
[0076] 具体的,列输出控制模块中:
[0077] 列输出控制模块实时监测任务触发信号,当检测到此信号,且列数据缓冲(简称为COL_FIFO)有空间时,如果COL_BUF有数据,则将数据从COL_BUF搬到COL_FIFO中,如果COL_BUF无数据,则直接为COL_FIFO中写入0数据。
[0078] 继续参见图11和图12,在接到第一个任务触发信号且对应打印数据输出完成后,列输出模块的主模块(延迟最小的模块)需要实时统计点火脉冲的个数,在下一次任务触发信号到达到,将以点火脉冲为单位统计的延迟信息广播给其它的从模块。所有从模块在随后的打印任务中,首先需要统计点火脉冲数计数,在大于收到的广播延迟信息后,才能向OUT_FIFO中写入真实打印数据,否则只能写入0。通过这种方法,可以实现运行过程中的不同列之间动态延迟匹配。其中,所述脉冲点火计数代表每次脉冲点火用于打印的累计次数。
[0079] 具体的,列数据缓冲模块中:
[0080] 在数据送给喷头之前实现小数据缓冲功能,一般为FIFO实现,简单为COL_FIFO。打印任务开始后,此模块实时监测点火触发信号,在点火次数大于配置的对应列固有延迟后,才能向喷头输出真实数据,否则直接输出0,这样可以实现列之间初始延迟对齐功能。
[0081] 基于上述实施案例,可以明确,本发明实施例所提供的打印数据的处理方法和打印控制系统可以显著提高打印数据的处理速度,从触发打印任务到实施打印可实现几乎零延迟,实时性好;此外,对同一架构的喷头可做归一化处理,通用性强。
[0082] 以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。