专利名称:一种对打印设备上的数据流进行管理和控制的方法
技术领域:
本发明涉及一种对打印设备上的数据流进行管理和控制的方法。
由于通用处理器不但要进行命令解释和数据解压缩等工作,而且要实时保持与主机的通讯并对打印硬件进行管理和配置,同时还要负责内存的管理,这使得通用处理器的工作负担过大,需要较高的成本投入,才能满足其性能上的要求。
发明内容
针对上述普通打印机在打印过程中所存在的问题和不足,本发明的目的是提供一种对打印设备上的数据流进行管理和控制的方法。通过实施该方法,能够有效的解决打印数据在存储器中进行多次存储的问题,从而更好的满足了实时性的要求。同时,设计一种独立的存储器控制方法对内存进行管理,以减轻通用处理器的工作负担。
为了达到上述目的,本发明设计了一种对打印设备上的数据流进行管理和控制的方法,所述打印设备包括打印机数据输入接口、打印机接口协议模块、端口仲裁模块、SDRAM接口、SDRAM(同步随机存储器)、存储器控制模块、通用处理器、命令解释和数据解压缩模块、打印设备机芯接口及打印机机芯。所述方法包括如下步骤将经过打印驱动程序、打印处理器程序、语言监控器程序处理后形成的打印数据流通过所述打印机数据输入接口进入打印机接口协议模块。
所述端口仲裁模块负责对输入端口进行管理,端口仲裁。
对所述打印数据的页结束字符串进行监控,为所述存储器管理模块提供页计数。
所述数据流通过所述SDRAM接口存储到所述SDRAM中,并由所述存储器控制模块对所述SDRAM进行存储管理。
在适当的时候,所述通用处理器通过所述SDRAM接口读取存储器的数据并分析作业头文件和页头文件,根据文件内容对机芯进行初始化和必要的设置,之后启动所述命令解释和数据解压缩模块。
页内的光栅化打印数据流经命令解释和数据解压缩模块处理还原成可打印的光栅化数据。
重复这一处理过程直到所述通用处理器处理到光栅化打印数据流中的作业结束命令字符串后结束该打印过程。
还原后的光栅化数据流由打印机机芯接口模块按机芯相关的输出格式进行输出。
其特征在于,在所述通用处理器对打印作业的头文件和页头文件完成分析,并且对打印机的机芯进行设置后,所述命令解释和数据解压缩模块获得所述SDRAM的读控制权,读取包含压缩指令和压缩数据的数据流,根据压缩指令对压缩编码进行还原。
更具体来说,所述存储器控制模块将所述SDRAM控制为一环形存储器,该控制模块包括三个内存管理单元写指针(lpWrite)、读指针(lpRead)和当前打印页开始位置指针(lpCurrentJob);所述写指针(lpWrite)指向数据流被写入存储器的位置,所述读指针(lpRead)指向数据流被读出存储器的位置,所述当前打印页开始位置指针(lpCurrentJob)指向当前打印页开始位置的位置;所述存储器管理模块根据所述三个内存管理单元的值及其相互关系确定对所述SDRAM进行读或写操作的地址,并指示所述SDRAM的状态。
由于本发明采用了与通用处理器相分离的命令解释和数据解压缩模块,因此能够保证一定的解压缩速度,而且能够达到实时解压缩实时打印的要求,从而避免了现有打印设备中打印数据需要多次存储的现象。
另外,本发明还采用了独立的存储器控制模块,用于对存储页面进行简单的控制,而不需要通用处理器对存储器进行管理,因此,减轻了通用存储器的负担。
由上述两点有益效果可以看出,由于通用处理器无需再对打印数据进行命令解释和解压缩,也无需对存储器内存进行管理,因此对于通用处理器的性能要求将大大降低,从而降低了成本开销。
对光栅化打印数据流的页结束字符串进行监控,给多页面环形存储管理模块提供页计数。
而后,该光栅化打印数据流进入SDRAM进行存储,存储后的光栅化打印数据流由存储器控制模块进行管理,当存储器中的数据流大于或等于一页时,通用处理器通过SDARM接口读取存储器的数据并分析作业头文件和页头文件,根据文件内容对机芯进行初始化和必要的设置,之后启动精简光栅化PCL解释器和数据解压缩模块。精简光栅化PCL解释器和数据解压缩模块被启动后获得SDRAM的读控制权,页内的光栅化打印数据流经PCL解释器和数据解压缩模块处理还原成可打印的光栅化数据,当一页完成后将SDRAM的读控制权释放,由通用处理器作页间的分析处理。重复这一处理过程直到通用处理器处理到光栅化打印数据流中的作业结束命令字符串后结束该打印过程。
还原后的光栅化数据流由打印机机芯接口模块按机芯相关的输出格式进行输出;在数据输出简单通用处理器可以同时与机芯保持通讯。
下面详细介绍本发明的命令解释和解压缩过程。根据优选的具体实施方案在简单通用处理器完成作业的头文件和页头文件分析、对机芯初始化设置后启动精简光栅化PCL解释器和数据解压缩模块,处理任务由该模块进行,该模块在获得SDRAM的读控制权后读取包含精简光栅化PCL压缩指令和压缩编码的数据流,根据压缩指令对压缩编码进行还原。为了提高压缩编码的效率采用了多种编码技术共用的编码,不同的编码方法由PCL指令指示;编码采用行内编码和行内分段技术,使压涨(压涨时用不压缩指令)范围限制到最小。一旦模块完成当前页处理(遇到页结束指令),模块将SDRAM的读控制权释放。
该模块能独立完成页内光栅化PCL指令的解释和数据解压缩,能确保一定的解压缩速度,保证实时解压缩打印。
下面将对照图2详细描述本发明优选的存储器管理方法。该方法是一种用于存储打印数据流的内存管理技术。将分配的一块内存视为环形存储器,内存管理模块(硬件模块)管理写指针lpWrite指向数据流被写入存储器的位置、读指针lpRead指向数据流被读出存储器的位置、当前打印页开始位置指针lpCurrentJob指向当前打印页开始的位置,三个指针像表针一样作“顺”时针旋转;lpWrite到lpCurrentJob的“顺”时针间隔表示“空”内存,这一区间可以接受新的数据流。若接收到‘作业开始’命令,lpCurrentJob=lpRead=lpWrite=0;当数据流被写入内存时lpWrite计数,此时lpWrite象表针作‘顺’时针旋转,当lpWrite达到该块内存的长度时lpWrite=0,象表针过‘12’后回零一样。当数据流被读出内存时lpRead计数,此时lpRead也象表针作‘顺’时针旋转,若一页数据输出后该页面需要‘拷贝’多份,内存管理模块在接收到CopyCommand(拷贝命令)后,将lpCurrentJob赋给lpRead,就象把lpRead‘逆’时针拨到lpCurrentJob的位置,当前页面数据将被重复输出一次。若当前页输出完成或‘拷贝’达到要求的份数后,内存管理模块将收到CurrentPagePrintedCom(当前页打印完成命令),管理模块将lpRead赋给lpCurrentJob,象把lpCurrentJob‘顺’时针拨到lpRead的位置,接着可以进行下一页的打印,此时上一次的页面数据将被遗弃。当lpRead达到该块内存的长度时lpRead=0,同lpWrite一样。该内存管理模块同时得到‘空’内存的长度(若分配的内存长度=2**N,MemoryEmptyLength=lpCurrentJob-lpWrite).N+1位自动溢出。PC机可以通过相应的命令获取包含‘内存状态’的‘打印控制器状态字符串’得到内存状态。
使用该环形存储管理打印数据流时无须考虑‘页面’格式,语言监控器程序只需要通过‘获取内存状态’命令得到‘空’内存状态(如是否有64k-bytede的‘空’内存)来确定数据流的是否需要继续传输,确保硬件通道不被阻塞,同时提高内存的使用效率,存储多个页面的压缩数据。
该方案内存管理简单,简单通用处理器只需根据分析页面头文件结果及当前页输出后发送‘作业开始’、‘拷贝’或‘当前页打印完成’等命令。
根据以上的描述,本领域的普通技术人员已经可以容易的实施本发明所述的方法。当然,上述发明可以在其它的特殊形式中得到具体实施,且并不背离所揭示的精髓或根本特征。因此可以理解,本发明不应被前面说明性的细节所限定,而是由附加的权利要求所定义。
权利要求
1.一种对打印设备上的数据流进行管理和控制的方法,所述打印设备包括打印机数据输入接口、打印机接口协议模块、端口仲裁模块、SDRAM接口、SDRAM、存储器控制模块、通用处理器、命令解释和数据解压缩模块、打印设备机芯接口及打印机机芯;所述方法包括如下步骤将经过打印驱动程序、打印处理器程序、语言监控器程序处理后形成的打印数据流通过所述打印机数据输入接口进入所述打印机接口协议模块;所述端口仲裁模块负责对输入端口进行管理,端口仲裁;对所述打印数据的页结束字符串进行监控,为所述存储器管理模块提供页计数;所述数据流通过所述SDRAM接口存储到所述SDRAM中,并由所述存储器控制模块对所述SDRAM进行存储管理;在适当的时候,所述通用处理器通过所述SDRAM接口读取存储器的数据并分析作业头文件和页头文件,根据文件内容对机芯进行初始化和必要的设置,之后启动所述命令解释和数据解压缩模块;页内的光栅化打印数据流经命令解释和数据解压缩模块处理还原成可打印的光栅化数据;重复这一处理过程直到所述通用处理器处理到光栅化打印数据流中的作业结束命令字符串后结束该打印过程;还原后的光栅化数据流由打印机机芯接口模块按机芯相关的输出格式进行输出;其特征在于,在所述通用处理器对打印作业的头文件和页头文件完成分析,并且对打印机的机芯进行设置后,所述命令解释和数据解压缩模块获得所述SDRAM的读控制权,读取包含压缩指令和压缩数据的数据流,根据压缩指令对压缩编码进行还原。
2.如权利要求1所述的方法,其特征在于,所述存储器控制模块将所述SDRAM控制为一环形存储器,该控制模块包括三个内存管理单元写指针(lpWrite)、读指针(lpRead)和当前打印页开始位置指针(lpCurrentJob);所述写指针(lpWrite)指向数据流被写入存储器的位置,所述读指针(lpRead)指向数据流被读出存储器的位置,所述当前打印页开始位置指针(lpCurrentJob)指向当前打印页开始位置的位置;所述存储器管理模块根据所述三个内存管理单元的值及其相互关系确定对所述SDRAM进行读或写操作的地址,并指示所述SDRAM的状态。
3.如权利要求2所述的方法,其特征在于,所述写指针与所述当前打印页开始位置指针之间的存储区域为可用区域;初始时所述三个内存管理单元的值置零;当数据流被写入时,所述写指针进行计数,当其值达到了该内存区域的长度时,将该写指针置零;当数据流被读出时,所述读指针进行计数,当其值达到了该内存区域的长度时,将该读指针置零,同时将此段存储区作为可用区域,将其值提交给所述存储器管理模块;若当前页的数据需要多次复制,则使所述读指针的值等于所述当前打印页开始位置指针的值;当前页输出完成或按照指定次数复制完成后,使所述当前打印页开始位置指针的值等于所述读指针的值。
4.如权利要求2所述的方法,其特征在于,所述命令解释和数据解压缩模块中的命令为精简PCL指令集。
5.如权利要求4所述的方法,其特征在于,所述命令解释和数据解压缩模块根据所述精简PCL指令集中的指令所指示的压缩编码技术对相应的数据进行解压缩。
6.如权利要求1所述的方法,其特征在于,所述通用处理器为简单通用处理器,该简单通用处理器负责对USB包协议进行解释,对PJL命令进行解释执行,与主机进行通讯,以及对打印硬件进行配置。
7.如权利要求1所述的方法,其特征在于,当所述SDRAM中的数据流大于或等于一页时,所述通用处理器通过所述SDRAM接口读取存储器的数据并分析作业头文件和页头文件,根据文件内容对机芯进行初始化和必要的设置。
8.如权利要求1所述的方法,所述打印机数据输入接口是IEEE 1284端口、USB接口或其他协议端口。
9.如权利要求8所述的方法,所述打印机接口协议模块是IEEE1284模块、USB模块或其他协议模块。
全文摘要
本发明提供了一种对打印设备上的数据流进行管理和控制的方法,步骤为打印数据流经打印机数据输入接口进入打印机接口协议模块;端口仲裁模块对输入端口进行管理,端口仲裁;对打印数据的页结束字符串进行监控,为存储器管理模块提供页计数;数据流通过SDRAM接口存储到SDRAM中,并由存储器控制模块对SDRAM进行存储管理;通用处理器通过SDRAM接口读取存储器的数据并分析作业头文件和页头文件,根据文件内容对机芯进行初始化和必要的设置,之后启动命令解释和数据解压缩模块,获得SDRAM的读控制权,读取包含压缩指令和压缩数据的数据流,根据压缩指令对压缩编码进行还原;重复处理过程直到通用处理器处理到光栅化打印数据流中的作业结束命令字符串后结束该打印过程。
文档编号G06F12/00GK1439972SQ03121288
公开日2003年9月3日 申请日期2003年3月31日 优先权日2003年3月31日
发明者徐忠良, 陈文先 申请人:上海北大方正科技电脑系统有限公司