欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種打印機數(shù)據(jù)流命令字符串實時分析分離方法

文檔序號:6607122閱讀:226來源:國知局
專利名稱:一種打印機數(shù)據(jù)流命令字符串實時分析分離方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種在打印設備上的數(shù)據(jù)流控制方法,具體來說,涉及一種光柵化打印設備中對數(shù)據(jù)流命令字符串進行實時分析分離的方法。
為達到上述目的,本發(fā)明設計了一種打印設備上對數(shù)據(jù)流命令字符串進行實時分析分離的方法,所述打印設備包括打印機數(shù)據(jù)輸入接口、打印機控制模塊、SDRAM(同步隨機存儲器)、通用處理器,所述方法包括如下步驟將經(jīng)過打印驅(qū)動程序、打印處理程序、語言監(jiān)控器程序處理后形成的打印數(shù)據(jù)流通過所述打印機數(shù)據(jù)輸入接口進入打印機控制模塊;數(shù)據(jù)流進入所述SDRAM進行存儲;在所述數(shù)據(jù)流進入SDRAM進行存儲之前,先由一個命令字符串實時分析分離模塊對數(shù)據(jù)流進行實時分析,將需要進行立即處理的命令字符串從數(shù)據(jù)流分離,將該類命令字符串立即交給所述通用處理器處理;被分離后的數(shù)據(jù)流流入SDRAM進行存儲。
所述的命令字符串實時分析分離模塊包括一個字符串檢測狀態(tài)機及一個具有一定深度的FIFO或RAM,該狀態(tài)機對流過的數(shù)據(jù)流進行檢測,同時該狀態(tài)機對FIFO的輸出請求、端口數(shù)據(jù)流輸入允許進行控制。當所述狀態(tài)機檢測到與某些預先設定的字符串部分匹配的數(shù)據(jù)流段時禁止FIFO的輸出,否則允許FIFO輸出。若檢測到與某些預先設定的字符串全部匹配時,所述狀態(tài)機產(chǎn)生通用處理器中斷信號,由所述通用處理器讀取該字符串及相關(guān)的數(shù)據(jù)。若所述狀態(tài)機檢測到與某些預先設定的字符串部分匹配后沒有全部匹配,所述狀態(tài)機允許駐留在FIFO中的這部分字符串輸出。所述狀態(tài)機的某些預先設定的字符串是需要立即執(zhí)行的命令的標識字符串。
作為更優(yōu)的方案,在所述命令字符串實時分析分離模塊中還可以包含一個FIFO/RAM作為前端FIFO/RAM,數(shù)據(jù)流先在所述前端FIFO/RAM中進行緩沖,由前端FIFO/RAM再將數(shù)據(jù)分別傳送到所述狀態(tài)機和所述FIFO/RAM中,用以消除當所述狀態(tài)機禁止對所述FIFO寫入時,后續(xù)數(shù)據(jù)流無法緩沖的現(xiàn)象。
實施本發(fā)明無需任何昂貴的組件和復雜的邏輯結(jié)構(gòu),能夠利用較小的資源開銷有效地解決目前打印設備無法對需要立即處理的命令進行實時響應的問題,同時狀態(tài)機設計保證在任意位置出現(xiàn)的命令字符串能被分離,通過將這些命令字符串及時并有效地從打印數(shù)據(jù)流中分離,確保了這些命令不被阻塞,從而提高了打印設備的打印效率。
光柵化打印數(shù)據(jù)流經(jīng)過命令字符串實時分析分離模塊時,該硬件模塊對數(shù)據(jù)流進行實時分析,將需要進行立即處理的命令字符串從數(shù)據(jù)流分離,將這類命令字符串交給通用處理器處理。
經(jīng)過分離后的光柵化打印數(shù)據(jù)流進入SDRAM進行存儲。
在其中所述的命令字符串實時分析分離模塊包括一個字符串檢測狀態(tài)機及一個具有一定深度的FIFO或RAM,當然為了保證數(shù)據(jù)流通道的暢通,F(xiàn)IFO需要具有一定深度,如圖2所示,該狀態(tài)機對流過的數(shù)據(jù)流進行檢測,同時該狀態(tài)機對FIFO的輸出請求、端口數(shù)據(jù)流輸入允許進行控制。當所述狀態(tài)機檢測到與某些預先設定的字符串部分匹配的數(shù)據(jù)流段時禁止FIFO的輸出,否則允許FIFO輸出。若檢測到與某些預先設定的字符串全部匹配時,所述狀態(tài)機產(chǎn)生通用處理器中斷信號,由所述通用處理器讀取該字符串及相關(guān)的數(shù)據(jù)。若所述狀態(tài)機檢測到與某些預先設定的字符串部分匹配后沒有全部匹配,所述狀態(tài)機允許駐留在FIFO中的這部分字符串輸出。所述狀態(tài)機的某些預先設定的字符串例如是需要立即執(zhí)行的命令的標識字符串。
下面將對命令字符串實時分析分離方法作進一步的描述。
在一條命令中,通常包括三個部分命令字符串頭、命令字符串、和命令數(shù)據(jù)。其中,命令字符串頭由多個字節(jié)組成,用于標識某一類命令如PJL中的一類命令。命令字符串由一個或多個字節(jié)組成,表示需要執(zhí)行的具體命令,執(zhí)行的命令又分為需要立即執(zhí)行的命令和后處理的命令,當然作為替換也可以將區(qū)分這兩類命令的標識字符串規(guī)定到命令字符串頭中。所述命令數(shù)據(jù)由一個或多個字節(jié)組成,用來表示執(zhí)行命令可能需要的數(shù)據(jù),當然并不是所有的命令都需要命令數(shù)據(jù)部分才能執(zhí)行,因此對那些需要提供命令數(shù)據(jù)的指令該部分才有效。
圖3更具體地示出了實時分析分離模塊中的信號流圖,圖中各信號如下定義。
數(shù)據(jù)流輸入Write數(shù)據(jù)流寫信號。
DataIn[]輸入數(shù)據(jù)流。
DataLock數(shù)據(jù)流輸入禁止(FIFO滿時設置)。
數(shù)據(jù)流輸出DataRdy數(shù)據(jù)流數(shù)據(jù)就緒。
DataOut[]輸出數(shù)據(jù)流。
Read數(shù)據(jù)流讀信號。
如圖3所示,輸入數(shù)據(jù)流中的數(shù)據(jù)流寫信號Write將分別輸入到所述FIFO和狀態(tài)機中,觸發(fā)FIFO的寫使能。在Write信號為高時,也即FIFO寫使能時輸入數(shù)據(jù)流DataIn[]能夠?qū)?shù)據(jù)分別輸入到所述FIFO和狀態(tài)機中,所述FIFO將這些輸入數(shù)據(jù)緩存起來,并在存儲空間滿時向外發(fā)送數(shù)據(jù)流輸入禁止信號DataLock以禁止隨后的一切寫FIFO的請求。同時狀態(tài)機對輸入數(shù)據(jù)流DataIn[]逐個字符地進行分析,當分析結(jié)果顯示輸入字符串的頭與某一個預先設定好的命令的頭相匹配時,狀態(tài)機將禁止FIFO的輸出,但允許其繼續(xù)寫入。狀態(tài)機將繼續(xù)分析隨后的字符,當后續(xù)字符串完全匹配該命令字符串時,表明狀態(tài)機檢測到了一個與預定命令集中的命令相匹配的需要立即處理的命令,則狀態(tài)機將與通用處理器進行通訊,向通用處理器發(fā)出中斷請求等相關(guān)信號,同時FIFO將期間緩存的相關(guān)數(shù)據(jù)發(fā)送給通用處理器執(zhí)行該命令。當狀態(tài)機分析當前字符串不與任何預定命令相匹配時,允許FIFO輸出其緩存的數(shù)據(jù),也就是說,在該狀態(tài)下當產(chǎn)生數(shù)據(jù)流讀信號Read時,F(xiàn)IFO接收該Read信號后可以將輸出數(shù)據(jù)流DataOut[]輸出。
下面將詳細描述所述狀態(tài)機匹配命令字符串并設置相關(guān)控制信號的流程。
假定需要檢測的字符串命令是{StrComHd0,StrComHd1,...,StrComHdN-1}命令字符串頭,{StrCom0,...,StrComM-1}命令字符串,{ComData0,...,ComDataK-1}命令數(shù)據(jù),
同時假定{StrCom0,...,StrComJ-1}需要立即執(zhí)行命令標識字符串;J小于等于K。
其流程及各狀態(tài)可表示為狀態(tài)0(Idle)狀態(tài)入口若Write&(DataIn[]==StrComHd0)有效,則進入Status1。在該狀態(tài)下FifoRdEna有效。FifoWrEna有效。
命令字符串頭檢測狀態(tài)1(Status1)若Write&(DataIn[]==StrComHd1)有效,則進入Status2。
若Write&(DataIn[]==StrComHd0)有效,保持該狀態(tài)。
否則(Write有效)進入Idle。
在該狀態(tài)下FifoRdEna無效。FifoWrEna有效。
命令字符串頭檢測狀態(tài)2(Status2)若Write&(DataIn[]==StrComHd2)有效,則進入Status3。
若Write&(DataIn[]==StrComHd0)有效,則進入Status1。否則(Write有效)進入Idle。
在該狀態(tài)下FifoRdEna無效。FifoWrEna有效。
命令字符串頭檢測狀態(tài)3(Status3)。。。。。。
在該狀態(tài)下FifoRdEna無效。
命令字符串頭檢測狀態(tài)N-1(StatusN-1)若Write&(DataIn[]==StrComHdN-1)有效,則進入StatusC0。
若Write&(DataIn[]==StrComHd0)有效,則進入Status1。
否則(Write有效)進入Idle。
在該狀態(tài)下FifoRdEna無效。FifoWrEna有效。
命令字符串檢測狀態(tài)0(StatusC0)若Write&(DataIn[]==StrCom0)有效,則進入StatusC1。
若Write&(DataIn[]==StrComHd0)有效,則進入Status1。
否則(Write有效)進入Idle。
在該狀態(tài)下FifoRdEna無效。Fifo WrEna有效。命令字符串檢測狀態(tài)1(StatusC1)若Write&(DataIn[]==StrCom1)有效,則進入StatusC2。
若Write&(DataIn[]==StrComHd0)有效,則進入Status1。否則(Write有效)進入Idle。
在該狀態(tài)下FifoRdEna無效。FifoWrEna有效。
。。。。。。
在該狀態(tài)下FifoRdEna無效。FifoWrEna有效。命令字符串檢測狀態(tài)K-1(Status K-1)若檢測到‘頁結(jié)束命令’(設置FifoRdEna有效)等待FIFO‘空’條件后進入Idle。
否則若Write&(DataIn[]=StrCom K-1)有效,則進入ReqProcStA。
若Write&(DataIn[]==StrComHd0)有效,則進入Status1。否則(Write有效)進入Idle。
設置FifoRdEna無效。FifoWrEna有效。請求處理狀態(tài)A(ReqProcStA)若FIFO中的數(shù)據(jù)長度>N+J時(FIFO中的數(shù)據(jù)是{StrComHd0,StrComHd1,...,StrComHdN-1,StrCom0,...,StrComJ-1}),則進入ReqProcStB。
否則進入ReqProcStC。
在該狀態(tài)下FifoRdEna無效。FifoWrEna無效。請求處理狀態(tài)B(ReqProcStB)若FIFO中的數(shù)據(jù)長度=N+J時(FIFO中的數(shù)據(jù)是{StrComHd0,StrComHd1,...,StrComHdN-1,StrCom0,...,StrComJ-1}, 則進入ReqProcStC。
否則等待。
在該狀態(tài)下FifoRdEna有效。FifoWrEna無效。請求處理狀態(tài)C(ReqProcStC)若通用處理器中斷應答,則進入ReqProcStD。
在該狀態(tài)下FifoRdEna無效。FifoWrEna有效。
產(chǎn)生通用處理器中斷請求信號。
請求處理狀態(tài)D(ReqProcStD)若通用處理器處理完成,則進入Idle。
在該狀態(tài)下FifoRdEna無效。FifoWrEna有效。
通用處理器處理命令。補充說明接口信號DataRdy=(!FifoEmpty&FifoRdEna)‖(FifoCn>=MaxComLength)FifoRdEna為讀FIFO數(shù)據(jù)使能,F(xiàn)ifoWrEna為寫FIFO數(shù)據(jù)使能,F(xiàn)ifoEmpt為FIFO‘空’。
FifoFull為FIFO‘滿’。
FifoCnt為FIFO內(nèi)數(shù)據(jù)計數(shù)。
MaxComLength為命令字符串最大長度上述狀態(tài)機匹配命令字符串并設置相關(guān)控制信號的流程如圖4所示。
從狀態(tài)機實現(xiàn)部分可以看出,F(xiàn)ifoWrEna在一些狀態(tài)下是無效的,因此數(shù)據(jù)流通道可能被阻塞,如果需要提高通道效率,作為提高性能的替代方案,可以設計兩個FIFO,將它們接連。如圖5所示,數(shù)據(jù)流先在所述前端FIFO/RAM中進行緩沖,由前端FIFO/RAM再將數(shù)據(jù)分別傳送到所述狀態(tài)機和所述FIFO/RAM中,前端FIFO在寫使能的情況下在FIFO存儲未滿時,輸入的數(shù)據(jù)流總能在該FIFO中緩存,因此不會出現(xiàn)前述方案中當狀態(tài)機控制禁止FIFO寫入時,輸入數(shù)據(jù)流不能得到緩存的情況。
在此時DataLock=FifoFull.
后端FIFO的深度一般略大于N+J即可。
前端FIFO的深度需要綜合輸入、輸出數(shù)據(jù)通道的帶寬選取。
當然,采用本發(fā)明的技術(shù)方案要求需要被分離的命令字符串不能相互嵌套,如{Str0,Str1,...,StrM-1,Str0,Str1,...StrN,StrM,...StrN},如果嵌套,則只能分離出嵌入的字符串,被嵌入的字符串將在后端處理。
根據(jù)以上的描述,本領(lǐng)域的普通技術(shù)人員已經(jīng)可以容易地實施本發(fā)明所述的方法。當然,上述發(fā)明可以在其它的特殊形式中得到具體實施,且并不背離所揭示的精髓或根本特征。因此可以理解,本發(fā)明不應被前面說明性的細節(jié)所限定,而是由附加的權(quán)利要求所定義。
權(quán)利要求
1.一種打印設備上對數(shù)據(jù)流命令字符串進行實時分析分離的方法,所述打印設備包括打印機數(shù)據(jù)輸入接口、打印機控制模塊、SDRAM(同步隨機存儲器)、通用處理器,所述方法包括如下步驟將經(jīng)過打印驅(qū)動程序、打印處理程序、語言監(jiān)控器程序處理后形成的打印數(shù)據(jù)流通過所述打印機數(shù)據(jù)輸入接口進入打印機控制模塊;數(shù)據(jù)流進入所述SDRAM進行存儲;其特征在于,在所述數(shù)據(jù)流進入SDRAM進行存儲之前,先由一個命令字符串實時分析分離模塊對數(shù)據(jù)流進行實時分析,將某些特定的命令字符串從數(shù)據(jù)流分離,將該類命令字符串立即交給所述通用處理器處理;被分離后的數(shù)據(jù)流流入SDRAM進行存儲。
2.如權(quán)利要求1所述的方法,其特征在于,所述命令字符串實時分析分離模塊包括一字符串檢測狀態(tài)機及一個具有一定深度的FIFO或RAM,該狀態(tài)機對流過的數(shù)據(jù)流進行檢測,同時該狀態(tài)機對FIFO的輸出請求、端口數(shù)據(jù)流輸入允許進行控制;當所述狀態(tài)機檢測到與某些預先設定的字符串部分匹配的數(shù)據(jù)流段時禁止FIFO的輸出,否則允許FIFO輸出;若檢測到與某些預先設定的字符串全部匹配時,所述狀態(tài)機產(chǎn)生通用處理器中斷信號,由所述通用處理器讀取該字符串及相關(guān)的數(shù)據(jù);若所述狀態(tài)機檢測到與某些預先設定的字符串部分匹配后沒有全部匹配,所述狀態(tài)機允許駐留在FIFO中的這部分字符串輸出。
3.如權(quán)利要求2所述的方法,其特征在于,所述狀態(tài)機的某些預先設定的字符串是需要立即執(zhí)行的命令的標識字符串。
4.如權(quán)利要求2或3所述的方法,其特征在于,在所述字符串實時分析分離模塊中數(shù)據(jù)流分別傳送到所述狀態(tài)機和所述FIFO中,所述狀態(tài)機對接收的數(shù)據(jù)流進行命令字符串的匹配并加以分析,所述FIFO將接收的數(shù)據(jù)流進行緩沖,通過所述狀態(tài)機與所述FIFO之間的控制邏輯,該狀態(tài)機根據(jù)分析結(jié)果對所述FIFO的讀或?qū)懖僮鞯氖鼓苓M行控制。
5.如權(quán)利要求4所述的方法,其特征在于,在所述命令字符串實時分析分離模塊中還包含一個FIFO/RAM作為前端FIFO/RAM,數(shù)據(jù)流先在所述前端FIFO/RAM中進行緩沖,由前端FIFO/RAM再將數(shù)據(jù)分別傳送到所述狀態(tài)機和所述FIFO/RAM中,用以消除當所述狀態(tài)機禁止對所述FIFO寫入時,后續(xù)數(shù)據(jù)流無法緩沖的現(xiàn)象。
6.如權(quán)利要求1-5中任一項所述的方法,其特征在于,所述打印機數(shù)據(jù)輸入接口是1284端口或USB接口。
7.如權(quán)利要求6所述的方法,其特征在于,所述打印機控制模塊是1284模塊或USB模塊。
全文摘要
一種打印設備上對數(shù)據(jù)流命令字符串進行實時分析分離的方法,所述打印設備包括打印機數(shù)據(jù)輸入接口、打印機控制模塊、SDRAM(同步隨機存儲器)、通用處理器、所述方法包括如下步驟將經(jīng)過打印驅(qū)動程序、打印處理程序、語言監(jiān)控器程序處理后形成的打印數(shù)據(jù)流通過所述打印機數(shù)據(jù)輸入接口進入打印機控制模塊;所述打印數(shù)據(jù)流進入SDRAM進行存儲之前,由一個命令字符串實時分析分離模塊對數(shù)據(jù)流進行實時分析,將需要進行立即處理的命令字符串從數(shù)據(jù)流分離,將該類命令字符串立即交給所述通用處理器處理;被分離后的數(shù)據(jù)流流入SDRAM進行存儲。
文檔編號G06F13/24GK1439958SQ0312129
公開日2003年9月3日 申請日期2003年3月31日 優(yōu)先權(quán)日2003年3月31日
發(fā)明者徐忠良 申請人:上海北大方正科技電腦系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
商水县| 夏河县| 射阳县| 航空| 井陉县| 安宁市| 兴宁市| 弥渡县| 怀安县| 河间市| 胶南市| 文山县| 额敏县| 绥滨县| 嘉荫县| 平塘县| 札达县| 谷城县| 蒙阴县| 登封市| 揭东县| 金塔县| 全州县| 宜良县| 荥阳市| 江陵县| 广水市| 平舆县| 白沙| 九寨沟县| 柳州市| 海林市| 长寿区| 肇源县| 奉新县| 南漳县| 交城县| 图木舒克市| 梅河口市| 堆龙德庆县| 遂宁市|