一種基於數據包的計算機與印表機雙向並行通信方法
2023-11-12 04:54:57 2
一種基於數據包的計算機與印表機雙向並行通信方法
【專利摘要】本發明公開了一種基於數據包的計算機與印表機雙向並行通信方法,該基於數據包的計算機與印表機雙向並行通信方法採用數據包的形式進行數據傳輸,在傳輸的過程中包括正向通路與反向通路。本發明採用數據包的形式進行數據傳輸,在傳輸的過程中包括正向通路與反向通路;通過利用數據包的傳輸手段,建立正向的和反向的通信通路,因為利用了全字節的並口通信所以加快了傳輸速度,而且實現了雙向的並口通信協議。本發明提高了數據傳輸的安全性,合理的、有效的解決了傳統單向的數據傳輸的缺陷。
【專利說明】一種基於數據包的計算機與印表機雙向並行通信方法
【技術領域】
[0001]本發明屬於計算機應用【技術領域】,尤其涉及一種基於數據包的計算機與印表機雙向並行通信方法。
【背景技術】
[0002]目前,已有的計算機與印表機之間的通信協議有串口通信協議,並口通信協議。
[0003]但是相對於並口通信協議,串口通信協議有其固有的缺點,與並口通信相比較,串口通信的速度要遠小於並口通信,不適用於那些實時性要求較高的系統,並口通信因為它在每次傳輸的過程中一次性能夠傳送一個字節的數據,所以並口的傳輸速度要遠高於串口通信的傳輸速度。
[0004]目前現有的計算機與印表機之間的並口通信協議也存在缺陷,對於現有的大部分並口通信協議都是單向傳輸的,即,只能是從主計算機到印表機之間傳輸數據,不能從印表機向主計算機傳輸數據。
[0005]專利號:CN1044414C,專利號:CN1070497A兩份專利中公開了一種提供給主計算機與印表機之間的雙向的通信協議,但是其中所提出的並口雙向通信協議也存在缺陷:
[0006]1、這兩篇專利中所提出的並口雙向通信協議的方案中所涉及的反向通道的建立方式比較複雜;
[0007]2、在傳輸過程中所採用的傳輸方式是半字節傳輸方式,所以其傳輸速度相對與全字節傳輸方式來說要下降50% ;
[0008]3、以上專利所提出的這種並口的雙向通信協議不具備很好的兼容性,對於現有的大部分只支持單向並口通信協議的印表機來說,很難採用以上專利所涉及的雙向通信協議來工作;
[0009]4、以上的雙向的並口通信協議沒有提供完整的指令集和時序控制模型,不能夠很好的擴展通信協議的使用範圍;
[0010]5、在數據傳輸的過程中沒有很好的數據校驗算法,不能夠保證數據在傳輸的過程中的穩定性和準確性。
【發明內容】
[0011]本發明實施例的目的在於提供一種基於數據包的計算機與印表機雙向並行通信方法,旨在解決現有的主計算機與印表機之間通信靈活性低和傳輸速度低,沒有有效的利用主計算機外圍資源的問題。
[0012]本發明實施例是這樣實現的,一種基於數據包的計算機與印表機雙向並行通信方法,該基於數據包的計算機與印表機雙向並行通信方法採用數據包的形式進行數據傳輸,在傳輸的過程中包括正向通路與反向通路;
[0013]具體包括以下步驟:
[0014]步驟一,主計算機先向印表機發送建立連接的數據包,數據包字節內容為:55H,ΑΑΗ,ΟΙΗ, ΟΟΗ, ΟΟΗ, XXH ;其中第一個字節55Η與第二個字節AAH為數據包起始字節,第三個字節OlH為數據包的命令字節,OlH代表試探命令,即判斷印表機是否支持雙向列印協議;
[0015]步驟二,發送完成第一條數據包後,主計算機進入等待狀態,等待印表機回復的數據包,如果印表機回複數據包為:55H,AAH, 02Η, ΟΟΗ, ΟΟΗ, ΧΧΗ,印表機支持雙向並口通信協議,主計算機進入下一步操作,開始傳送正式的數據內容,如果在等待一段時間之後如果印表機沒有回覆數據,則印表機可能不支持雙向通信協議;
[0016]步驟三,主計算機開始切換雙向通信協議為傳統的單向通信協議,來控制僅支持單向並口通信協議的印表機系統;
[0017]步驟四,主計算機與印表機之間建立完整的雙向連接之後,主計算機開始發正式的送數據包向印表機傳送數據,數據包字節內容為:55H,AAH,01Η,00Η,00Η, XXH ;其中第一個字節55Η與第二個字節AAH為數據包起始字節,第三個字節OlH為數據包的命令字節。
[0018]進一步,正向通路數據包的形式包括:包頭;數據;校驗碼三部分組成,包頭包括:起始字節佔用2個字節、命令字節佔用I個字節、數據包長度字節,佔用2個字節。
[0019]進一步,反向通路數據包的形式包括:包頭;數據;校驗碼三部分組成,包頭包括:起始字節佔用2個字節、狀態/命令字節佔用I個字節、數據包長度字節,佔用2個字節。
[0020]進一步,正向通路與反向通路使用相同的數據包格式,每次通信均先由主計算機向印表機發送命令字節,主計算機在向印表機發送完命令字節之後,等待印表機的回覆,主計算機接收印表機的回覆數據包,根據印表機回復的數據包中的印表機的狀態字節來判斷下一步的操作。
[0021]進一步,正向通路的數據包格式如下:55Η,ΑΑΗ,命令字節,數據包長度高字節,數據包長度低字節,數據字節,...,數據字節,校驗字節。
[0022]進一步,反向通路的數據包格式如下:55Η,ΑΑΗ,狀態/請求命令字節,數據包長度高字節,數據包長度低字節,數據字節,...,數據字節,校驗字節。
[0023]進一步,正向通路的命令字節和反向通路的狀態/請求命令字節另外擴展。
[0024]本發明提供的基於數據包的計算機與印表機雙向並行通信方法,採用數據包的形式進行數據傳輸,在傳輸的過程中包括正向通路與反向通路;通過利用數據包的傳輸手段,建立正向的和反向的通信通路,因為利用了全字節的並口通信所以加快了傳輸速度,而且實現了雙向的並口通信協議。本發明提高了數據傳輸的安全性,合理的、有效的解決了傳統單向的數據傳輸的缺陷。
【專利附圖】
【附圖說明】
[0025]圖1是本發明實施例提供的基於數據包的計算機與印表機雙向並行通信方法的流程圖。
【具體實施方式】
[0026]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
[0027]下面結合附圖及具體實施例對本發明的應用原理作進一步描述。[0028]如圖1所示,本發明實施例的基於數據包的計算機與印表機雙向並行通信方法包括以下步驟:
[0029]SlOl:主計算機先向印表機發送建立連接的數據包,數據包字節內容為:55H,ΑΑΗ,ΟΙΗ,ΟΟΗ,ΟΟΗ, XXH ;其中第一個字節55Η與第二個字節AAH為數據包起始字節,第三個字節OlH為數據包的命令字節,OlH代表試探命令,即判斷印表機是否支持雙向列印協議;
[0030]S102:發送完成第一條數據包後,主計算機進入等待狀態,等待印表機回復的數據包,如果印表機回複數據包為:55Η,ΑΑΗ, 02Η, ΟΟΗ, ΟΟΗ, ΧΧΗ,印表機支持雙向並口通信協議,主計算機進入下一步操作,開始傳送正式的數據內容,如果在等待一段時間之後如果印表機沒有回覆數據,則印表機可能不支持雙向通信協議;
[0031]S103:主計算機開始切換雙向通信協議為傳統的單向通信協議,來控制僅支持單向並口通信協議的印表機系統;
[0032]S104:主計算機與印表機之間建立完整的雙向連接之後,主計算機開始發正式的送數據包向印表機傳送數據,數據包字節內容為:55Η,ΑΑΗ,01Η,00Η,00Η, XXH ;其中第一個字節55Η與第二個字節AAH為數據包起始字節,第三個字節OlH為數據包的命令字節。
[0033]本發明的工作原理:
[0034]本發明採用數據包的形式進行數據傳輸,在傳輸的過程中包括正向通路與反向通路;正向通路數據包的形式包括:包頭;數據;校驗碼三部分組成,數據包的包頭包括:1、起始字節佔用2個字節;2、命令字節佔用I個字節;3、數據包長度字節,佔用2個字節;
[0035]本發明所採用的反向通路數據包的形式包括:包頭;數據;校驗碼三部分組成,數據包的包頭包括:1、起始字節佔用2個字節;2、狀態/命令字節佔用I個字節;3、數據包長度字節,佔用2個字節,其中正向通路與反向通路均使用相同的數據包格式,每次通信均先由主計算機向印表機發送命令字節,主計算機在向印表機發送完命令字節之後,等待印表機的回覆,主計算機接收印表機的回覆數據包,根據印表機回復的數據包中的印表機的狀態字節來判斷下一步的操作;
[0036]本發明中的主計算機與印表機建立通信的過程具體如下:
[0037]第一步,主計算機先向印表機發送建立連接的數據包,數據包字節內容為:55Η,ΑΑΗ,ΟΙΗ,ΟΟΗ,ΟΟΗ, XXH ;其中第一個字節55Η與第二個字節AAH為數據包起始字節,第三個字節OlH為數據包的命令字節,OlH代表試探命令,即判斷印表機是否支持雙向列印協議,發送完成第一條數據包後,主計算機進入等待狀態,等待印表機回復的數據包,如果印表機回複數據包為:55Η,ΑΑΗ, 02Η, 00Η, 00Η, ΧΧΗ,印表機支持雙向並口通信協議,主計算機進入下一步操作,開始傳送正式的數據內容,如果在等待一段時間之後如果印表機沒有回覆數據,則印表機可能不支持雙向通信協議,主計算機開始切換雙向通信協議為傳統的單向通信協議,來控制那些僅支持單向並口通信協議的印表機系統;
[0038]第二步,主計算機與印表機之間建立完整的雙向連接之後,主計算機開始發正式的送數據包向印表機傳送數據,建立數據包的格式一第一條類似。
[0039]本發明中的正向通路的數據包格式如下:55Η,ΑΑΗ,命令字節,數據包長度高字節,數據包長度低字節,數據字節,...,數據字節,校驗字節;
[0040]本發明中的反向通路的數據包格式如下:55Η,ΑΑΗ,狀態/請求命令字節,數據包長度高字節,數據包長度低字節,數據字節,...,數據字節,校驗字節;[0041]其中正向通路的命令字節,與反向通路的狀態/請求命令字節可以另外擴展,增強本協議的可擴展性,增強兼容性;
[0042]數據包的數據部分主要是主計算機與列印之間所傳輸的數據;
[0043]數據包的校驗碼部分主要是提供給校驗使用,因為有了數據校驗,提高了傳輸的安全性。
[0044]本發明所採用的校驗反方式為一種並行數據循環冗餘校驗算法,校驗方法是為保證數據的完整性,用一種指定的算法對原始數據計算出的一個校驗值,接收方用同樣的算法計算一次校驗值,如果和隨數據提供的校驗值一樣,說明數據是完整的,其中循環冗餘校驗算法這是利用除法及餘數的原理來進行錯誤檢測的.將接收到的碼組進行除法運算,如果除盡,則說明傳輸無誤;如果未除盡,則表明傳輸出現差錯。
[0045]以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種基於數據包的計算機與印表機雙向並行通信方法,其特徵在於,該基於數據包的計算機與印表機雙向並行通信方法採用數據包的形式進行數據傳輸,在傳輸的過程中包括正向通路與反向通路; 具體包括以下步驟: 步驟一,主計算機先向印表機發送建立連接的數據包,數據包字節內容為:55H,AAH,OlH, 00H, 00H, XXH ;其中第一個字節55H與第二個字節AAH為數據包起始字節,第三個字節OlH為數據包的命令字節,OlH代表試探命令,即判斷印表機是否支持雙向列印協議; 步驟二,發送完成第一條數據包後,主計算機進入等待狀態,等待印表機回復的數據包,如果印表機回複數據包為:55H,AAH, 02H, 00H, 00H, XXH,印表機支持雙向並口通信協議,主計算機進入下一步操作,開始傳送正式的數據內容,如果在等待一段時間之後如果印表機沒有回覆數據,則印表機可能不支持雙向通信協議; 步驟三,主計算機開始切換雙向通信協議為傳統的單向通信協議,來控制僅支持單向並口通信協議的印表機系統; 步驟四,主計算機與印表機之間建立完整的雙向連接之後,主計算機開始發正式的送數據包向印表機傳送數據,數據包字節內容為:55H,AAH,01H,00H,00H, XXH ;其中第一個字節55H與第二個字節AAH為數據包起始字節,第三個字節OlH為數據包的命令字節。
2.如權利要求1所述的基於數據包的計算機與印表機雙向並行通信方法,其特徵在於,正向通路數據包的形式包括:包頭;數據;校驗碼三部分組成,包頭包括:起始字節佔用2個字節、命令字節佔用I個字節、數據包長度字節,佔用2個字節。
3.如權利要求1所述的基於數據包的計算機與印表機雙向並行通信方法,其特徵在於,反向通路數據包的形式包括:包頭;數據;校驗碼三部分組成,包頭包括:起始字節佔用2個字節、狀態/命令字節佔用I個字節、數據包長度字節,佔用2個字節。
4.如權利要求1所述的基於數據包的計算機與印表機雙向並行通信方法,其特徵在於,正向通路與反向通路使用相同的數據包格式,每次通信均先由主計算機向印表機發送命令字節,主計算機在向印表機發送完命令字節之後,等待印表機的回覆,主計算機接收印表機的回覆數據包,根據印表機回復的數據包中的印表機的狀態字節來判斷下一步的操作。
5.如權利要求1所述的基於數據包的計算機與印表機雙向並行通信方法,其特徵在於,正向通路的數據包格式如下:55H,AAH,命令字節,數據包長度高字節,數據包長度低字節,數據字節,...,數據字節,校驗字節。
6.如權利要求1所述的基於數據包的計算機與印表機雙向並行通信方法,其特徵在於,反向通路的數據包格式如下:55H,AAH,狀態/請求命令字節,數據包長度高字節,數據包長度低字節,數據字節,數據字節,校驗字節。
7.如權利要求5或6所述的基於數據包的計算機與印表機雙向並行通信方法,其特徵在於,正向通路的命令字節和反向通路的狀態/請求命令字節另外擴展。
【文檔編號】G06F13/38GK103942015SQ201410172232
【公開日】2014年7月23日 申請日期:2014年4月25日 優先權日:2014年4月25日
【發明者】劉豔秋, 胡婷, 王國春, 李陽, 聞喆, 王旭, 宋濤, 曹曉燕, 丁建生 申請人:長春工業大學