CN1439956A - 一种可对打印数据流命令字符串实时分析分离的打印设备 - Google Patents
一种可对打印数据流命令字符串实时分析分离的打印设备 Download PDFInfo
- Publication number
- CN1439956A CN1439956A CN 03121286 CN03121286A CN1439956A CN 1439956 A CN1439956 A CN 1439956A CN 03121286 CN03121286 CN 03121286 CN 03121286 A CN03121286 A CN 03121286A CN 1439956 A CN1439956 A CN 1439956A
- Authority
- CN
- China
- Prior art keywords
- data stream
- fifo
- state machine
- printing device
- character string
- 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.)
- Pending
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
Abstract
本发明提供了一种可对数据流命令字符串实时分析分离的打印设备所述打印设备包括:打印机数据输入接口、打印机控制模块、端口仲裁模块、SDRAM接口、SDRAM(同步随机存储器)、通用处理器、打印设备机芯;所述打印装置还包含一个命令字符串实时分析分离模块,该模块在所述数据流进入SDRAM进行存储之前,负责对所述光栅化打印数据流进行实时分析,将某些特定的命令字符串从数据流中分离,将该类命令字符串交给所述通用处理器处理;被分离后的数据流流入SDRAM进行存储。本发明的打印设备,可以对打印数据流中需要立即处理的命令进行实时处理。
Description
技术领域
本发明涉及一种打印设备,具体来说,涉及一种可对打印数据流命令字符串进行实时分析分离的打印设备。
背景技术
目前市场上大多数中低端激光打印机采用光栅化打印数据流进行打印控制,而其中的绝大多数打印机控制器是采用通用处理器或通用处理器为内核的打印机专用处理器;用通用处理器或用通用处理器为内核的打印机专用处理器处理光栅化打印数据流的过程是:用通用处理器的DMA通道将端口的光栅化数据流(经编码压缩)存入打印机控制器的内存,通用处理器需要对光栅化数据流进行多次处理,每次处理都需要对内存进行读写,由于通用处理器在解压缩还原光栅化数据处理时很难达到实时输出的要求,因此需要将光栅化还原数据存还内存,这样在要求一定的打印速度条件下需要通用处理器具有相当高的性能。由于数据流是从端口直接被存入内存,一些需要立即处理的命令如:取消作业命令、读当前打印机状态等命令将在数据流中等待处理,直到处理器扫描到该类命令时才处理,这样实时性就差,而打印处理器程序、语言监控器程序是系统SPOOL管理的软件模块,数据流在这些软件模块通道中一般是4k-byte为单位传输,因此在语言监控器程序中插入的命令字符串对于打印机控制器而言是在任意位置,因此任意位置出现的命令字符串能被分离很有意义,不然语言监控器程序需要对数据流进行分析,从而影响效率,同样命令字符串被实时处理能确保数据流不被阻塞,提高通道效率。
发明内容
针对现有打印设备设计中所存在的缺陷和不足,本发明的目的是提供一种能够对打印数据流中需要立即处理的命令进行实时处理的打印设备。
为达到上述目的,本发明设计了一种可对数据流命令字符串实时分析分离的打印设备,所述打印设备包括:打印机数据输入接口、打印机控制模块、端口仲裁模块、SDRAM接口、SDRAM(同步随机存储器)、通用处理器、打印设备机芯;
打印机数据输入接口负责将经过打印驱动程序、打印处理程序、语言监控器程序处理后形成的光栅化打印数据流输入所述打印机控制模块;
所述端口仲裁模块负责对输入端口进行管理,端口仲裁;
所述SDRAM用于打印数据流进行存储;
在适当的时候,所述通用处理器将对所述SDRAM中的待执行操作及相关数据进行处理,并将相关光栅数据流转化成可打印的光栅数据流;
还原后的可打印光栅化数据流由所述打印机机芯模块按机芯相关的输出格式进行输出;
所述打印装置还包含一个命令字符串实时分析分离模块,该模块在所述数据流进入SDRAM进行存储之前,负责对所述光栅化打印数据流进行实时分析,将某些特定的命令字符串从数据流中分离,将该类命令字符串交给所述通用处理器处理;
被分离后的数据流流入SDRAM进行存储。
更具体来说,所述命令字符串实时分析分离模块包括一字符串检测状态机及一个具有一定深度的FIFO或RAM,该状态机对流过的数据流进行检测,同时该状态机对FIFO的输出请求、端口数据流输入允许进行控制;
当所述状态机检测到与某些预先设定的字符串部分匹配的数据流段时禁止FIFO的输出,否则允许FIFO输出;
若检测到与某些预先设定的字符串全部匹配时,所述状态机产生通用处理器中断信号,由所述通用处理器读取该字符串及相关的数据;
若所述状态机检测到与某些预先设定的字符串部分匹配后没有全部匹配,所述状态机允许驻留在FIFO中的这部分字符串输出。
所述状态机的某些预先设定的字符串是需要立即执行的命令的标识字符串。
作为更优的方案,在所述命令字符串实时分析分离模块中还可以包含一个FIFO/RAM作为前端FIFO/RAM,数据流先在所述前端FIFO/RAM中进行缓冲,由前端FIFO/RAM再将数据分别传送到所述状态机和所述FIFO/RAM中,用以消除当所述状态机禁止对所述FIFO写入时,后续数据流无法缓冲的现象。
实施本发明无需任何昂贵的组件和复杂的逻辑结构,能够利用较小的资源开销有效地解决目前打印设备无法对需要立即处理的命令进行实时响应的问题,同时状态机设计保证在任意位置出现的命令字符串能被分离,通过将这些命令字符串及时并有效地从打印数据流中分离,确保了这些命令不被阻塞,从而提高了打印设备的打印效率。
附图说明
通过下面的详细描述和相应的本发明实施例的附图,将更加全面充分地理解本发明。当然,附图不应该被用来将本发明限定在特定的实例中,它只是起到解释和帮助理解的作用。图1为本发明打印设备的各模块框图。图2为本发明打印设备的实时分析分离模块内部结构图。图3为本发明打印设备的实时分析分离模块中的信号流图。图4为本发明打印设备的实时分析分离模块状态机分析控制流程图。图5为采用双FIFO的实时分析分离模块的信号流图。
具体实施方式
如图1所示,经过打印驱动程序、打印处理器程序、语言监控器程序处理后的打印数据流由PC机的平行端口即图中的1248端口或USB端口进入打印机控制器端口IEEE 1248模块或DMA模块。
先达到的打印数据流将获得打印处理权,处理权在整个作业打印完成后释放,未获得打印处理权的打印数据流将被禁止在端口;端口仲裁逻辑模块负责端口管理和端口仲裁。
打印数据流经过命令字符串实时分析分离模块时,该硬件模块对数据流进行实时分析,将需要进行立即处理的命令字符串从数据流分离,将这类命令字符串交给通用处理器处理。
经过分离后的打印数据流进入SDRAM进行存储,当该存储器中的数据流大于或等于一页时,通用处理器通过SDARM接口读取存储器的数据并分析作业头文件和页头文件,根据文件内容对机芯进行初始化和必要的设置,由相关模块进行数据流的解释和数据解压缩并获得SDRAM的读控制权,页内的打印数据流经解释器和数据解压缩处理后还原成可打印的数据,当一页完成后SDRAM的读控制权被释放,由通用处理器作页间的分析处理。重复这一处理过程直到通用处理器处理到打印数据流中的作业结束命令字符串后结束该打印过程。
还原后的数据流由打印机机芯接口模块按机芯相关的输出格式进行输出。
在其中所述的命令字符串实时分析分离模块包括一个字符串检测状态机及一个具有一定深度的FIFO或RAM,当然为了保证数据流通道的畅通,FIFO需要具有一定深度,如图2所示,该状态机对流过的数据流进行检测,同时该状态机对FIFO的输出请求、端口数据流输入允许进行控制。当所述状态机检测到与某些预先设定的字符串部分匹配的数据流段时禁止FIFO的输出,否则允许FIFO输出。若检测到与某些预先设定的字符串全部匹配时,所述状态机产生通用处理器中断信号,由所述通用处理器读取该字符串及相关的数据。若所述状态机检测到与某些预先设定的字符串部分匹配后没有全部匹配,所述状态机允许驻留在FIFO中的这部分字符串输出。所述状态机的某些预先设定的字符串例如是需要立即执行的命令的标识字符串。
下面对命令字符串实时分析分离模块的工作过程进行进一步的描述。
在一条命令中,通常包括三个部分:命令字符串头、命令字符串、和命令数据。其中,命令字符串头由多个字节组成,用于标识某一类命令如PJL中的一类命令。命令字符串由一个或多个字节组成,表示需要执行的具体命令,执行的命令又分为需要立即执行的命令和后处理的命令,当然作为替换也可以将区分这两类命令的标识字符串规定到命令字符串头中。所述命令数据由一个或多个字节组成,用来表示执行命令可能需要的数据,当然并不是所有的命令都需要命令数据部分才能执行,因此对那些需要提供命令数据的指令该部分才有效。
图3更具体的示出了实时分析分离模块中的信号流图,图中各信号如下定义。
数据流输入:Write数据流写信号。
DataIn[]输入数据流。
DataLock数据流输入禁止(FIFO满时设置)。
数据流输出:DataRdy数据流数据就绪。
DataOut[]输出数据流。
Read数据流读信号。
如图3所示,输入数据流中的数据流写信号Write将分别输入到所述FIFO和状态机中,触发FIFO的写使能。在Write信号为高时,也即FIFO写使能时输入数据流DataIn[]能够将数据分别输入到所述FIFO和状态机中,所述FIFO将这些输入数据缓存起来,并在存储空间满时向外发送数据流输入禁止信号DataLock以禁止随后的一切写FIFO的请求。同时状态机对输入数据流DataIn[]逐个字符地进行分析,当分析结果显示输入字符串的头与某一个预先设定好的命令的头相匹配时,状态机将禁止FIFO的输出,但允许其继续写入。状态机将继续分析随后的字符,当后续字符串完全匹配该命令字符串时,表明状态机检测到了一个与预定命令集中的命令相匹配的需要立即处理的命令,则状态机将禁止FIFO的读写操作并将与通用处理器进行通讯,向通用处理器发出中断请求等相关信号,同时FIFO将其间缓存的相关数据发送给通用处理器执行该命令。当状态机分析当前字符串不与任何预定命令相匹配时,允许FIFO输出其缓存的数据,也就是说,在该状态下当产生数据流读信号Read时,FIFO接收该Read信号后可以将输出数据流DataOut[]输出。
下面将详细描述所述状态机匹配命令字符串并设置相关控制信号的流程。
假定需要检测的字符串命令是:
{StrComHd0,StrComHd1,...,StrComHdN-1}命令字符串头,
{StrCom0,...,StrComM-1}命令字符串,
{ComData0,...,ComDataK-1}命令数据,
同时假定{StrCom0,...,StrComJ-1}需要立即执行命令标识字符串;J小于等于K。
其流程及各状态可表示为:
状态0(Idle):状态入口
若Write&(DataIn[]==StrComHd0)有效,则进入Status1。在该
状态下:FifoRdEna有效。FifoWrEna有效。
命令字符串头检测状态1(Status1):
若Write&(DataIn[]==StrComHd1)有效,则进入Status2。
若Write&(DataIn[]==StrComHd0)有效,保持该状态。
否则(Write有效)进入Idle。
在该状态下:FifoRdEna无效。FifoWrEna有效。
命令字符串头检测状态2(Status2):
若Write&(DataIn[]==StrComHd2)有效,则进入Status3。
若Write&(DataIn[]==StrComHd0)有效,则进入Status1。否则
(Write有效)进入Idle。
在该状态下:FifoRdEna无效。FifoWrEna有效。
命令字符串头检测状态3(Status3)
。。。。。。
在该状态下:FifoRdEna无效。
命令字符串头检测状态N-1(StatusN-1)
若Write&(DataIn[]==StrComHdN-1)有效,则进入StatusC0。
若Write&(DataIn[]==StrComHd0)有效,则进入Status1。
否则(Write有效)进入Idle。
在该状态下:FifoRdEna无效。FifoWrEna有效。
命令字符串检测状态0(StatusC0):
若Write&(DataIn[]==StrCom0)有效,则进入StatusC1。
若Write&(DataIn[]==StrComHd0)有效,则进入Status1。
否则(Write有效)进入Idle。
在该状态下FifoRdEna无效。FifoWrEna有效。
命令字符串检测状态1(StatusC1):
若Write&(DataIn[]==StrCom1)有效,则进入StatusC2。
若Write&(DataIn[]==StrComHd0)有效,则进入Status1。否则
(Write有效)进入Idle。
在该状态下:FifoRdEna无效。FifoWrEna有效。
。。。。。。
在该状态下:FifoRdEna无效。FifoWrEna有效。命令字符串检测状态K-1(StatusK-1):
若检测到‘页结束命令’(设置FFifoRdEna有效)等待FIFO‘空’条
件后进入Idle。
否则:
若Write&(DataIn[]==StrCom K-1)有效,则进入ReqProcStA。
若Write&(DataIn[]==StrComHd0)有效,则进入Status1。否则
(Write有效)进入Idle。
设置:FifoRdEna无效。FifoWrEna有效。请求处理状态A(ReqProcStA):
若FIFO中的数据长度>N+J时(FIFO中的数据是{StrComHd0,StrComHd1,…,StrComHdN-1,StrCom0,…,StrComJ-1}),
则进入ReqProcStB。
否则进入ReqProcStC。
在该状态下:FifoRdEna无效。FifoWrEna无效。请求处理状态B(ReqProcStB):
若FIFO中的数据长度=N+J时(FIFO中的数据是{StrComHd0,StrComHd1,...,StrComHdN-1,StrCom0,...,StrComJ-1},则
进入ReqProcStC。
否则等待。
在该状态下:FifoRdEna有效。FifoWrEna无效。请求处理状态C(ReqProcStC):
若通用处理器中断应答,则进入ReqProcStD。
在该状态下:FifoRdEna无效。FifoWrEna有效。
产生通用处理器中断请求信号。
请求处理状态D(ReqProcStD):
若通用处理器处理完成,则进入Idle。
在该状态下:FifoRdEna无效。FifoWrEna有效。
通用处理器处理命令。补充说明:接口信号:
DataRdy=(!FioEmpty&FifoRdEna)‖(FifoCn>=MaxComLength)
FifoRdEna为读FIFO数据使能,
FifoWrEna为写FIFO数据使能,
FifoEmpt为FIFO‘空’。
FifoFull为FIFO‘满’。
FifoCnt为FIFO内数据计数。
MaxComLength为命令字符串最大长度
上述状态机匹配命令字符串并设置相关控制信号的流程如图4所示。
从状态机实现部分可以看出,FifoWrEna在一些状态下是无效的,因此数据流通道可能被阻塞,如果需要提高通道效率,作为提高性能的替代方案,可以设计两个FIFO,将它们接连。如图5所示,数据流先在所述前端FIFO/RAM中进行缓冲,由前端FIFO/RAM再将数据分别传送到所述状态机和所述FIFO/RAM中,前端FIFO在写使能的情况下在FIFO存储未满时,输入的数据流总能在该FIFO中缓存,因此不会出现前述方案中当状态机控制禁止FIFO写入时,输入数据流不能得到缓存的情况。
在此时DataLock=FifoFull.
后端FIFO的深度一般略大于N+J即可。
前端FIFO的深度需要综合输入、输出数据通道的带宽选取。
当然,采用本发明的技术方案要求需要被分离的命令字符串不能相互嵌套,如{Str0,Str1,...,StrM-1,Str0,Str1,...StrN,StrM,...StrN},如果嵌套,则只能分离出嵌入的字符串,被嵌入的字符串将在后端处理。
根据以上的描述,本领域的普通技术人员已经可以容易地实施本发明所述的打印设备。当然,上述发明可以在其它的特殊形式中得到具体实施,且并不背离所揭示的精髓或根本特征。因此可以理解,本发明不应被前面说明性的细节所限定,而是由附加的权利要求所定义。
Claims (8)
1.一种可对打印数据流命令字符串实时分析分离的打印设备,所述打印设备包括:打印机数据输入接口、打印机控制模块、端口仲裁模块、SDRAM接口、SDRAM、通用处理器、打印设备机芯;
打印机数据输入接口负责将经过打印驱动程序、打印处理程序、语言监控器程序处理后形成的光栅化打印数据流输入所述打印机控制模块;
所述端口仲裁模块负责对输入端口进行管理,端口仲裁;
所述SDRAM用于打印数据流进行存储;
在适当的时候,所述通用处理器将对所述SDRAM中的待执行操作及相关数据进行处理,并将相关光栅数据流转化成可打印的光栅数据流;
还原后的可打印光栅化数据流由所述打印机机芯模块按机芯相关的输出格式进行输出;
其特征在于,所述打印装置还包含一个命令字符串实时分析分离模块,该模块在所述数据流进入SDRAM进行存储之前,负责对所述光栅化打印数据流进行实时分析,将某些特定的命令字符串从数据流中分离,将该类命令字符串交给所述通用处理器处理;
被分离后的数据流流入SDRAM进行存储。
2.如权利要求1所述的打印设备,其特征在于,所述命令字符串实时分析分离模块包括一字符串检测状态机及一个具有一定深度的FIFO或RAM,该状态机对流过的数据流进行检测,同时该状态机对FIFO的输出请求、端口数据流输入允许进行控制;
当所述状态机检测到与某些预先设定的字符串部分匹配的数据流段时禁止FIFO的输出,否则允许FIFO输出;
若检测到与某些预先设定的字符串全部匹配时,所述状态机产生通用处理器中断信号,由所述通用处理器读取该字符串及相关的数据;
若所述状态机检测到与某些预先设定的字符串部分匹配后没有全部匹配,所述状态机允许驻留在FIFO中的这部分字符串输出。
3.如权利要求2所述的打印设备,其特征在于,所述状态机的某些预先设定的字符串是需要立即执行的命令的标识字符串。
4.如权利要求2或3所述的打印设备,其特征在于,在所述字符串实时分析分离模块中数据流分别传送到所述状态机和所述FIFO中,所述状态机对接收的数据流进行命令字符串的匹配并加以分析,所述FIFO将接收的数据流进行缓冲,通过所述状态机与所述FIFO之间的控制逻辑,该状态机根据分析结果对所述FIFO的读或写操作的使能进行控制。
5.如权利要求4所述的打印设备,其特征在于,在所述命令字符串实时分析分离模块中还包含一个FIFO/RAM作为前端FIFO/RAM,数据流先在所述前端FIFO/RAM中进行缓冲,由前端FIFO/RAM再将数据分别传送到所述状态机和所述FIFO/RAM中,用以消除当所述状态机禁止对所述FIFO写入时,后续数据流无法缓冲的现象。
6.如权利要求1所述的打印设备,其中端口仲裁模块的仲裁策略为:先到达的光栅化打印数据流将获得打印处理权,处理权在整个作业打印完成后释放,未获得打印处理权的光栅化打印数据流将被禁止在端口。
7.如权利要求1-6中任一项所述的打印设备,其特征在于,所述打印机数据输入接口是IEEE 1284端口或USB接口。
8.如权利要求7所述的打印设备,其特征在于所述打印机控制模块是IEEE 1284模块或USB模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03121286 CN1439956A (zh) | 2003-03-31 | 2003-03-31 | 一种可对打印数据流命令字符串实时分析分离的打印设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03121286 CN1439956A (zh) | 2003-03-31 | 2003-03-31 | 一种可对打印数据流命令字符串实时分析分离的打印设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1439956A true CN1439956A (zh) | 2003-09-03 |
Family
ID=27797240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 03121286 Pending CN1439956A (zh) | 2003-03-31 | 2003-03-31 | 一种可对打印数据流命令字符串实时分析分离的打印设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1439956A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100334539C (zh) * | 2004-09-21 | 2007-08-29 | 大日本网目版制造株式会社 | 打印控制设备、程序、打印系统以及打印系统的控制方法 |
CN1892571B (zh) * | 2005-06-28 | 2011-02-16 | 星精密株式会社 | 打印系统 |
CN111344447A (zh) * | 2017-11-10 | 2020-06-26 | 欧瑞康纺织有限及两合公司 | 用于生产或处理合成纱线的机器设备 |
-
2003
- 2003-03-31 CN CN 03121286 patent/CN1439956A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100334539C (zh) * | 2004-09-21 | 2007-08-29 | 大日本网目版制造株式会社 | 打印控制设备、程序、打印系统以及打印系统的控制方法 |
CN1892571B (zh) * | 2005-06-28 | 2011-02-16 | 星精密株式会社 | 打印系统 |
CN111344447A (zh) * | 2017-11-10 | 2020-06-26 | 欧瑞康纺织有限及两合公司 | 用于生产或处理合成纱线的机器设备 |
CN111344447B (zh) * | 2017-11-10 | 2022-06-28 | 欧瑞康纺织有限及两合公司 | 用于生产或处理合成纱线的机器设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1251474C (zh) | 具有图像特征分析功能的数字静物照相机 | |
US8593668B2 (en) | Parallel printing system | |
CN1326131A (zh) | 图象显示系统 | |
CN1932802A (zh) | 具有文本提取功能的主机设备及其提取方法 | |
US20120062939A1 (en) | Print control apparatus, printing system, and computer readable medium storing program | |
CN1141666C (zh) | 利用标准笔划识别输入字符的在线字符识别系统 | |
CN1741026A (zh) | 一种快速生成逻辑电路的方法 | |
US9208414B2 (en) | Bi-color duplex printing method and device | |
CN1174311C (zh) | 信息处理设备、打印系统、以及命令生成方法 | |
CN1439956A (zh) | 一种可对打印数据流命令字符串实时分析分离的打印设备 | |
CN1892574A (zh) | 成像装置 | |
CN1710598A (zh) | 一种能够避免打印越界错误的打印控制方法 | |
CN1215401C (zh) | 使用便携式设备的打印方法 | |
JP2004074783A5 (zh) | ||
CN1132092C (zh) | 打印机控制装置及打印机控制方法 | |
CN1881171A (zh) | 打印系统、打印方法、打印设备、以及驱动器 | |
CN1439958A (zh) | 一种打印机数据流命令字符串实时分析分离方法 | |
CN1497525A (zh) | 设定轮廊字体的印字线宽度的技术 | |
JP3492297B2 (ja) | 画像処理方法、画像処理装置および記憶媒体 | |
CN1287264C (zh) | 打印控制装置及其控制方法 | |
GB2330030A (en) | Increasing printer speed by data reduction | |
CN1959624A (zh) | 图像形成系统和图像形成程序 | |
JP5267147B2 (ja) | 画像処理装置、画像処理方法、及び、コンピュータプログラム | |
CN1099068C (zh) | 字体识别装置和方法 | |
CN100351856C (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |