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

一種提高數(shù)據(jù)操作速率的方法

文檔序號(hào):6381975閱讀:239來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種提高數(shù)據(jù)操作速率的方法
技術(shù)領(lǐng)域
本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種提高數(shù)據(jù)操作速率的方法。
背景技術(shù)
USBKey (智能密鑰設(shè)備)是一種USB接口的硬件設(shè)備。它內(nèi)置單片機(jī)或智能卡芯片,有一定的存儲(chǔ)空間,可以存儲(chǔ)用戶的私鑰以及數(shù)字證書(shū),利用內(nèi)置的公鑰算法實(shí)現(xiàn)對(duì)用戶身份的認(rèn)證?,F(xiàn)有技術(shù)在USBKey生產(chǎn)過(guò)程中,需要對(duì)數(shù)據(jù)進(jìn)行加解密等處理,具體過(guò)程為USBKey接收主機(jī)發(fā)送的數(shù)據(jù),再根據(jù)數(shù)據(jù)進(jìn)行處理,并將處理后的數(shù)據(jù)和狀態(tài)返回給主機(jī),發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn)主機(jī)在多次發(fā)送命令及等待USBKey的處理結(jié)果數(shù)據(jù)的過(guò)程中,USBKey等待接收數(shù)據(jù)時(shí)處于閑置狀態(tài),導(dǎo)致了操作速率低。

發(fā)明內(nèi)容
為解決上述問(wèn)題,本發(fā)明提供了一種提高數(shù)據(jù)操作速率的方法。本發(fā)明實(shí)施例采用的技術(shù)方案如下一種提高數(shù)據(jù)操作速率的方法,包括1、一種提高數(shù)據(jù)操作速率的方法,其特征在于,包括操作處理和中斷處理,其中所述操作處理具體包括①-④①、USBKey上電并進(jìn)行初始化;②、所述USBKey判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否小于協(xié)議頭長(zhǎng)度,是則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟②,否則解析協(xié)議頭的內(nèi)容并更新所述第一操作指針,執(zhí)行步驟③;③、所述USBKey判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否小于第二預(yù)設(shè)值,是則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟③;否則根據(jù)操作類(lèi)型標(biāo)識(shí)執(zhí)行相應(yīng)的操作,得到結(jié)果數(shù)據(jù),并更新所述第一操作指針,執(zhí)行步驟④;④、所述USBKey判斷當(dāng)前接收指針的值與當(dāng)前第一操作指針的值是否相等,如果相等則發(fā)送得到的結(jié)果數(shù)據(jù);如果不相等則返回步驟③;當(dāng)所述USBKey接收到接收端點(diǎn)中斷時(shí)進(jìn)入接收中斷處理,包括⑤、所述USBKey將所接收的數(shù)據(jù)移動(dòng)至第一緩存區(qū)并更新所述接收指針,并中斷返回。進(jìn)一步地所述USBKey進(jìn)行初始化,具體包括所述USBKey將接收指針和第一操作指針的值分別設(shè)置為第一緩存區(qū)的基地址,打開(kāi)接收端點(diǎn)中斷,等待接收端點(diǎn)中斷進(jìn)入接收中斷處理;其中,所述接收指針用于指示接收的數(shù)據(jù)的位置;所述第一操作指針用于指示已操作數(shù)據(jù)的位置;所述步驟②具體包括判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否小于31,是則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟②,否則解析協(xié)議頭的內(nèi)容并更新所述第一操作指針,執(zhí)行步驟③;更進(jìn)一步地,所述解析協(xié)議頭的內(nèi)容并更新所述第一操作指針具體為從所述第一緩存區(qū)中獲取所述協(xié)議頭的內(nèi)容,從所述協(xié)議頭的第8-11個(gè)字節(jié)得到所述數(shù)據(jù)長(zhǎng)度;從所述協(xié)議頭的第12個(gè)字節(jié)得到方向標(biāo)識(shí),根據(jù)所述方向標(biāo)識(shí)的值執(zhí)行相應(yīng)操作;從所述協(xié)議頭的第16-19個(gè)字節(jié)得到所述命令操作類(lèi)型,根據(jù)命令操作類(lèi)型設(shè)置所述操作類(lèi)型標(biāo)識(shí);將所述第一操作指針的值更新為其當(dāng)前值加上31 ;再進(jìn)一步地,所述根據(jù)所述方向標(biāo)識(shí)的值執(zhí)行相應(yīng)操作具體為判斷所述方向標(biāo)識(shí)的值,若所述方向標(biāo)識(shí)的值為第一數(shù)值,則執(zhí)行步驟③;若所述方向標(biāo)識(shí)的值為第二數(shù)值,則執(zhí)行步驟⑤;或者,所述步驟②具體包括判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否小于10,是則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟②,否則解析協(xié)議頭的內(nèi)容并更新所述第一操作指針,執(zhí)行步驟③,更進(jìn)一步地,所述解析協(xié)議頭內(nèi)容并更新所述第一操作指針具體為從所述第一緩存區(qū)中獲取所述協(xié)議頭的內(nèi)容,從所述協(xié)議頭的第I個(gè)字節(jié)得到所述命令操作類(lèi)型,根據(jù)命令操作類(lèi)型設(shè)置所述操作類(lèi)型標(biāo)識(shí);從所述協(xié)議頭的第2-5個(gè)字節(jié)得到所述數(shù)據(jù)長(zhǎng)度,將所述第一操作指針的值更新為其當(dāng)前值加上10 ;所述第二預(yù)設(shè)值具體為每次處理的數(shù)據(jù)長(zhǎng)度;所述解析協(xié)議頭的內(nèi)容并更新所述第一操作指針具體包括從第一緩存區(qū)中獲取所述協(xié)議頭內(nèi)容并對(duì)其進(jìn)行解析得到數(shù)據(jù)長(zhǎng)度和命令操作類(lèi)型,根據(jù)命令操作類(lèi)型設(shè)置操作類(lèi)型標(biāo)識(shí),將所述第一操作指針的值更新為其當(dāng)前值加上協(xié)議頭長(zhǎng)度;所述根據(jù)操作類(lèi)型標(biāo)識(shí)執(zhí)行相應(yīng)的操作,得到結(jié)果數(shù)據(jù),并更新所述第一操作指針,具體為根據(jù)所述操作類(lèi)型標(biāo)識(shí)判斷當(dāng)前操作數(shù)據(jù)是否為加解密數(shù)據(jù)類(lèi)型,是則進(jìn)行加解密處理,并將所述第一操作指針的值更新為其當(dāng)前值加上所述第二預(yù)設(shè)值;否則根據(jù)數(shù)據(jù)類(lèi)型執(zhí)行相應(yīng)操作,并將第一操作指針的值更新為其當(dāng)前值加上所述第二預(yù)設(shè)值;所述更新所述接收指針,具體為將所述接收指針的值更新為其當(dāng)前值加上本次接收數(shù)據(jù)的長(zhǎng)度;所述結(jié)果數(shù)據(jù)中包括命令的執(zhí)行狀態(tài),進(jìn)一步地,所述命令的執(zhí)行狀態(tài)具體包括表示命令成功執(zhí)行的0x00、表示命令執(zhí)行失敗的0x01以及表示階段錯(cuò)誤的0x02 ;另外,所述方法還設(shè)置有發(fā)送端點(diǎn)中斷,并相應(yīng)設(shè)置有第二操作指針和發(fā)送指針,其中,所述第二操作指針用于指示操作后得到的結(jié)果數(shù)據(jù)的位置,所述發(fā)送指針用于指示發(fā)送的數(shù)據(jù)的位置,相應(yīng)地,所述步驟③中得到結(jié)果數(shù)據(jù),更新所述第一操作指針還包括更新第二操作指針,具體為將所述第二操作指針的值更新為其當(dāng)前值加上結(jié)果數(shù)據(jù)的長(zhǎng)度;進(jìn)一步地,當(dāng)設(shè)置有發(fā)送端點(diǎn)中斷時(shí);所述發(fā)送得到的結(jié)果數(shù)據(jù)具體包括⑥、所述USBKey判斷當(dāng)前第二操作指針的值與當(dāng)前發(fā)送指針的值是否相等,若相等則返回步驟②,若不相等則等待發(fā)送端點(diǎn)中斷進(jìn)入發(fā)送中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟⑥;當(dāng)所述USBKey接收到發(fā)送端點(diǎn)中斷時(shí)進(jìn)入發(fā)送中斷處理,包括⑦、所述USBKey判斷當(dāng)前發(fā)送數(shù)據(jù)變量的值是否小于第三預(yù)設(shè)值,是則執(zhí)行相應(yīng)的發(fā)送處理并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針,返回步驟②;否則執(zhí)行步驟⑧;
⑧、所述USBKey判斷當(dāng)前第二操作指針與當(dāng)前發(fā)送指針的差值是否大于第三預(yù)設(shè)值,是則執(zhí)行相應(yīng)的發(fā)送處理并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針,并中斷返回;否則中斷返回。更進(jìn)一步地所述USBKey進(jìn)行初始化時(shí)還包括打開(kāi)發(fā)送端點(diǎn)中斷;或者,所述USBKey進(jìn)行初始化時(shí)不包括打開(kāi)發(fā)送端點(diǎn)中斷,所述步驟⑥中當(dāng)當(dāng)前第二操作指針的值與當(dāng)前發(fā)送指針的值不相等時(shí),首先打開(kāi)發(fā)送端點(diǎn)中斷,然后再等待發(fā)送端點(diǎn)中斷進(jìn)入發(fā)送中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟⑥;所述第三預(yù)設(shè)值具體為每次發(fā)送數(shù)據(jù)的長(zhǎng)度;所述更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針具體包括將所述發(fā)送指針的值更新為其當(dāng)前值加上本次發(fā)送數(shù)據(jù)的長(zhǎng)度,將所述發(fā)送數(shù)據(jù)變量的值更新為其當(dāng)前值減去本次發(fā)送數(shù)據(jù)的長(zhǎng)度。所述結(jié)果數(shù)據(jù)存儲(chǔ)在第二緩存區(qū)中,所述第二操作指針具體用于指示操作后得到的結(jié)果數(shù)據(jù)在第二緩存區(qū)中的的位置,所述USBKey進(jìn)行初始化時(shí)還包括所述USBKey將發(fā)送指針和第二操作指針的值設(shè)置為第二緩存區(qū)的基地址。所述發(fā)送處理具體為將所述第二緩存區(qū)中的數(shù)據(jù)移動(dòng)至發(fā)送緩存區(qū)進(jìn)行發(fā)送。有益效果本發(fā)明實(shí)施例針對(duì)USBkey設(shè)備對(duì)數(shù)據(jù)進(jìn)行加密處理時(shí),通過(guò)端點(diǎn)中斷方式接收/發(fā)送數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的收發(fā)與數(shù)據(jù)處理同步,減少USBkey設(shè)備的等待時(shí)間,提高了數(shù)據(jù)操作速率。


圖Ι-a為本發(fā)明實(shí)施例二提供的一種提高數(shù)據(jù)操作速率的方法流程圖;圖Ι-b為接收到接收端點(diǎn)中斷時(shí)進(jìn)入接收中斷處理的詳細(xì)過(guò)程圖;圖Ι-c為接收到發(fā)送端點(diǎn)中斷時(shí)進(jìn)入發(fā)送中斷處理的詳細(xì)過(guò)程圖;圖2為本發(fā)明實(shí)施例三提供的一種提高數(shù)據(jù)操作速率的方法流程圖;圖3為本發(fā)明實(shí)施例四提供的一種提高數(shù)據(jù)操作速率的方法流程圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供了一種提高數(shù)據(jù)操作速率的方法,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)介紹。實(shí)施例一本發(fā)明實(shí)施例一提供了一種提高數(shù)據(jù)操作速率的方法,所述方法包括操作處理和中斷處理,其中所述操作處理具體包括步驟S1-S4,中斷處理包括步驟S5,具體內(nèi)容如下步驟S1:USBKey上電并進(jìn)行初始化;步驟S2 :所述USBKey判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否小于協(xié)議頭長(zhǎng)度,是則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟S2,否則解析協(xié)議頭的內(nèi)容并更新所述第一操作指針,執(zhí)行步驟S3 ;步驟S3 :所述USBKey判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否小于第二預(yù)設(shè)值,是則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟S3 ;否則根據(jù)操作類(lèi)型標(biāo)識(shí)執(zhí)行相應(yīng)的操作,得到結(jié)果數(shù)據(jù),并更新所述第一操作指針,執(zhí)行步驟S4 ;步驟S4 :所述USBKey判斷當(dāng)前接收指針的值與當(dāng)前第一操作指針的值是否相等,如果相等則發(fā)送得到的結(jié)果數(shù)據(jù);如果不相等則返回步驟S3 ;具體地,所述發(fā)送得到的結(jié)果數(shù)據(jù)為將結(jié)果數(shù)據(jù)移動(dòng)至發(fā)送緩存區(qū)進(jìn)行發(fā)送;當(dāng)所述USBKey接收到接收端點(diǎn)中斷時(shí)進(jìn)入接收中斷處理,包括步驟S5 :所述USBKey將所接收的數(shù)據(jù)移動(dòng)至第一緩存區(qū)并更新所述接收指針,并中斷返回。實(shí)施例二本發(fā)明實(shí)施例二提供了一種提高數(shù)據(jù)操作速率的方法,下面結(jié)合圖l_a、圖l_b、以及圖Ι-c對(duì)所述方法進(jìn)行介紹。如圖l_a所示,本發(fā)明實(shí)施例二提供了一種提高數(shù)據(jù)操作速率的方法,具體包括以下步驟步驟101 USBkey設(shè)備上電;步驟102 :所述USBkey設(shè)備對(duì)接收指針、發(fā)送指針、第一操作指針和第二操作指針進(jìn)行初始化,打開(kāi)接收端點(diǎn)中斷和發(fā)送端點(diǎn)中斷,等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后執(zhí)行步驟103;本實(shí)施例中,所述USBkey設(shè)備對(duì)接收指針、發(fā)送指針、第一操作指針和第二操作指針進(jìn)行初始化具體為將所述接收指針和所述第一操作指針的值分別設(shè)置為第一緩存區(qū)的基地址,將所述發(fā)送指針和所述第二操作指針的值設(shè)置為第二緩存區(qū)的基地址;所述接收指針用于指示接收的數(shù)據(jù)的位置;所述發(fā)送指針用于指示發(fā)送的數(shù)據(jù)的位置;所述第一操作指針用于指示已操作數(shù)據(jù)的位置;所述第二操作指針用于指示操作后得到的數(shù)據(jù)在第二緩存區(qū)中的的位置。具體地,參見(jiàn)圖l_b,在本實(shí)施例中,所述USBkey設(shè)備接收到接收端點(diǎn)中斷時(shí)進(jìn)入接收中斷處理具體包括A-1:將接收端點(diǎn)接收的數(shù)據(jù)移動(dòng)至第一緩存區(qū);A-2:更新接收指針和接收數(shù)據(jù)變量,中斷返回;具體地,所述更新接收指針具體為將所述接收指針的值更新為其當(dāng)前值加上本次接收到的數(shù)據(jù)的長(zhǎng)度;所述更新接收數(shù)據(jù)變量具體為將所述接收數(shù)據(jù)變量的值更新為其當(dāng)前值加上本次接收的數(shù)據(jù)的長(zhǎng)度;需要說(shuō)明的是,當(dāng)USBkey設(shè)備執(zhí)行完接收中斷處理后,若未接收到其他的中斷信號(hào)則返回主程序繼續(xù)執(zhí)行接收到接收端點(diǎn)中斷時(shí)正在處理的步驟;步驟103 :所述USBkey設(shè)備判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否大于協(xié)議頭長(zhǎng)度,是則執(zhí)行步驟104 ;否則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟103 ;本實(shí)施例中所述協(xié)議頭長(zhǎng)度根據(jù)數(shù)據(jù)傳輸協(xié)議確定;步驟104 :所述USBkey設(shè)備解析協(xié)議頭的內(nèi)容,并更新第一操作指針;本實(shí)施例中,所述更新第一操作指針具體為將所述第一操作指針的值更新為其當(dāng)前值加上所述協(xié)議頭的長(zhǎng)度;
步驟105 :所述USBkey設(shè)備判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否大于第一預(yù)設(shè)值,是則執(zhí)行步驟106 ;否則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟105 ;本實(shí)施例中所述第一預(yù)設(shè)值是指命令頭長(zhǎng)度;步驟106 :所述USBkey設(shè)備從命令頭中獲取當(dāng)前命令的命令操作類(lèi)型,并根據(jù)所述命令操作類(lèi)型設(shè)置操作類(lèi)型標(biāo)識(shí),更新所述第一操作指針;在本實(shí)施例中,更新所述第一操作指針具體為將所述操作指針的值更新為其當(dāng)前值加上所述第一預(yù)設(shè)值;步驟107 :所述USBkey設(shè)備判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否大于第二預(yù)設(shè)值,是則執(zhí)行步驟108 ;否則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)步驟107 ;在本實(shí)施例中,所述第二預(yù)設(shè)值為每次處理的數(shù)據(jù)長(zhǎng)度;步驟108 :所述USBkey設(shè)備根據(jù)操作類(lèi)型標(biāo)識(shí)判斷操作數(shù)據(jù)的類(lèi)型,若所述操作數(shù)據(jù)的類(lèi)型為加解密數(shù)據(jù)類(lèi)型,則執(zhí)行步驟109 ;若所述操作數(shù)據(jù)的類(lèi)型為其他數(shù)據(jù)類(lèi)型,則執(zhí)行步驟110 ;步驟109 :所述USBkey設(shè)備對(duì)所述操作數(shù)據(jù)進(jìn)行加解密處理得到結(jié)果數(shù)據(jù),并更新第一操作指針和第二操作指針,執(zhí)行步驟111 ;本實(shí)施例中,所述更新第一操作指針具體為將所述第一操作指針的值更新為其當(dāng)前值加上第二預(yù)設(shè)值;所述更新第二操作指針具體為將所述第二操作指針的值更新為其當(dāng)前值加上結(jié)果數(shù)據(jù)的長(zhǎng)度;步驟110 :所述USBkey設(shè)備根據(jù)所述操作數(shù)據(jù)的類(lèi)型執(zhí)行相應(yīng)的操作得到結(jié)果數(shù)據(jù),并更新第一操作指針和第二操作指針;本實(shí)施例中,將所述第一操作指針的值更新為其當(dāng)前值加上第二預(yù)設(shè)值;將所述第二操作指針的值更新為其當(dāng)前值加上結(jié)果數(shù)據(jù)的長(zhǎng)度;步驟111 :所述USBkey設(shè)備判斷當(dāng)前接收指針的值與當(dāng)前第一操作指針的值是否相等,是則執(zhí)行步驟112 ;否則返回步驟107 ;步驟112 :所述USBkey設(shè)備判斷當(dāng)前第二操作指針的值與當(dāng)前發(fā)送指針的值是否相等,是則返回步驟103 ;否則等待發(fā)送端點(diǎn)中斷,進(jìn)入發(fā)送中斷處理。在本實(shí)施例中,參見(jiàn)圖1-C,所述USBkey設(shè)備接收到發(fā)送端點(diǎn)中斷時(shí)進(jìn)入發(fā)送中斷處理具體為步驟B-1:判斷發(fā)送數(shù)據(jù)變量的值是否小于第三預(yù)設(shè)值,是則執(zhí)行相應(yīng)的發(fā)送處理并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針,返回步驟103 ;否則執(zhí)行步驟B-2;本實(shí)施例中第三預(yù)設(shè)值指每次發(fā)送數(shù)據(jù)的長(zhǎng)度,所述執(zhí)行相應(yīng)的發(fā)送處理并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針具體為步驟B-1-1:將第二緩存區(qū)的數(shù)據(jù)移動(dòng)至發(fā)送緩存區(qū)發(fā)送給主機(jī);步驟B-1-2:更新所述發(fā)送指針和所述發(fā)送數(shù)據(jù)變量;本實(shí)施例中,將所述發(fā)送指針的值更新為其當(dāng)前值加上本次發(fā)送數(shù)據(jù)的長(zhǎng)度,將所述發(fā)送數(shù)據(jù)變量的值更新為其當(dāng)前值減去本次發(fā)送數(shù)據(jù)的長(zhǎng)度;步驟B-2:判斷當(dāng)前第二操作指針與當(dāng)前發(fā)送指針的差值是否大于第三預(yù)設(shè)值,是則執(zhí)行步驟B-3 ;否則中斷返回;步驟B-3 :執(zhí)行相應(yīng)的發(fā)送處理并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針,中斷返回;本實(shí)施例中執(zhí)行相應(yīng)的發(fā)送處理并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針具體見(jiàn)步驟B-1-1至B-1-2,在此不再贅述;需要說(shuō)明的是,步驟102中可以不包括打開(kāi)發(fā)送端點(diǎn)中斷,當(dāng)步驟112中所述USBkey設(shè)備判斷當(dāng)前第二操作指針的值與當(dāng)前發(fā)送指針的值不相等時(shí)才打開(kāi)發(fā)送端點(diǎn)中斷;當(dāng)USBkey設(shè)備執(zhí)行完發(fā)送端點(diǎn)中斷操作后,若未接收到其他的中斷信號(hào)則返回主程序繼續(xù)執(zhí)行接收中斷信號(hào)時(shí)正在處理的步驟;所述接收中斷信號(hào)時(shí)正在處理的步驟可以為任意步驟;本發(fā)明實(shí)施例針對(duì)USBkey設(shè)備對(duì)數(shù)據(jù)進(jìn)行加密處理時(shí),通過(guò)端點(diǎn)中斷方式接收/發(fā)送數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的收發(fā)與數(shù)據(jù)處理同步,減少USBkey設(shè)備的等待時(shí)間,提高了數(shù)據(jù)操作速率。實(shí)施例三本發(fā)明實(shí)施例三提供了一種提高數(shù)據(jù)操作速率的方法,下面結(jié)合圖2對(duì)所述方法進(jìn)行介紹。如圖2所示,一種提高數(shù)據(jù)操作速率的方法,具體包括以下步驟步驟201 =USBKey設(shè)備上電;步驟202 =USBKey設(shè)備對(duì)接收指針、發(fā)送指針、第一操作指針以及第二操作指針進(jìn)行初始化,打開(kāi)接收端點(diǎn)中斷和發(fā)送端點(diǎn)中斷,等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后執(zhí)行步驟203;本實(shí)施例中,所述USBkey設(shè)備對(duì)接收指針、發(fā)送指針、第一操作指針和第二操作指針進(jìn)行初始化具體為將所述接收指針和所述第一操作指針的值分別設(shè)置為第一緩存區(qū)的基地址,將所述發(fā)送指針和所述第二操作指針的值設(shè)置為第二緩存區(qū)的基地址;所述接收指針用于指示接收的數(shù)據(jù)的位置;所述發(fā)送指針用于指示發(fā)送的數(shù)據(jù)的位置;所述第一操作指針用于指示已操作數(shù)據(jù)的位置;所述第二操作指針用于指示操作后得到的數(shù)據(jù)在第二緩存區(qū)中的的位置。具體地,在本實(shí)施例中,所述USBkey設(shè)備接收到接收端點(diǎn)中斷時(shí)進(jìn)入接收中斷處理具體包括A-1:將接收端點(diǎn)接收的數(shù)據(jù)移動(dòng)至第一緩存區(qū);A-2:更新接收指針和接收數(shù)據(jù)變量,中斷返回;具體地,將所述接收指針的值更新為其當(dāng)前值加上本次接收的數(shù)據(jù)的長(zhǎng)度;將所述接收數(shù)據(jù)變量的值更新為其當(dāng)前值加上本次接收的數(shù)據(jù)的長(zhǎng)度;需要說(shuō)明的是,當(dāng)USBkey設(shè)備執(zhí)行完接收中斷處理后,若未接收到其他的中斷信號(hào)則返回主程序繼續(xù)執(zhí)行接收到接收端點(diǎn)中斷時(shí)正在處理的步驟;步驟203 =USBKey設(shè)備判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否大于協(xié)議頭長(zhǎng)度,是則執(zhí)行步驟204;否則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟203 ;具體地,本實(shí)施例中所述協(xié)議頭的長(zhǎng)度為31 ;
步驟204 =USBKey設(shè)備從第一緩存區(qū)獲取協(xié)議頭并對(duì)其進(jìn)行解析,獲取數(shù)據(jù)長(zhǎng)度、方向標(biāo)識(shí)以及命令操作類(lèi)型;本實(shí)施例中所述協(xié)議頭包括31個(gè)字節(jié),具體地,獲取所述協(xié)議頭的第8-11個(gè)字節(jié)得到數(shù)據(jù)長(zhǎng)度,獲取所述協(xié)議頭的第12個(gè)字節(jié)得到方向標(biāo)識(shí);獲取所述協(xié)議頭的第16-19個(gè)字節(jié)得到所述命令操作類(lèi)型;需要說(shuō)明的是,所述命令操作類(lèi)型還可以通過(guò)解析命令頭獲?。徊襟E205 =USBKey設(shè)備根據(jù)所述數(shù)據(jù)長(zhǎng)度更新接收數(shù)據(jù)變量,根據(jù)所述命令操作類(lèi)型設(shè)置操作類(lèi)型標(biāo)識(shí),并更新所述第一操作指針;步驟206 =USBKey設(shè)備判斷所述方向標(biāo)識(shí)的值,如果所述方向標(biāo)識(shí)的值為第一數(shù)值,則執(zhí)行步驟207 ;如果所述方向標(biāo)識(shí)的值為第二數(shù)值,則執(zhí)行步驟212 ;具體地,在本實(shí)施例中,所述第一數(shù)值的取值為O ;所述第二數(shù)值的取值為I ;步驟207 =USBKey設(shè)備判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否大于第二預(yù)設(shè)值,是則執(zhí)行步驟208;否則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟207 ;在本實(shí)施例中,所述第二預(yù)設(shè)值為每次處理的數(shù)據(jù)長(zhǎng)度,根據(jù)所述操作類(lèi)型標(biāo)識(shí)
確定第二預(yù)設(shè)值;步驟208 =USBKey設(shè)備根據(jù)所述操作類(lèi)型標(biāo)識(shí)判斷所述操作數(shù)據(jù)的類(lèi)型,若所述操作數(shù)據(jù)類(lèi)型為加解密數(shù)據(jù)類(lèi)型,則執(zhí)行步驟209 ;若所述操作數(shù)據(jù)類(lèi)型為其他數(shù)據(jù)類(lèi)型,則執(zhí)行步驟210 ;步驟209 =USBKey設(shè)備對(duì)所述操作數(shù)據(jù)進(jìn)行加解密處理得到結(jié)果數(shù)據(jù),并更新所述第一操作指針和所述第二操作指針,執(zhí)行步驟211 ;本實(shí)施例中,將所述第一操作指針的值更新為其當(dāng)前值加上第二預(yù)設(shè)值;將所述第二操作指針的值更新為其當(dāng)前值加上結(jié)果數(shù)據(jù)的長(zhǎng)度;步驟210 =USBKey設(shè)備根據(jù)所述操作數(shù)據(jù)的數(shù)據(jù)類(lèi)型執(zhí)行相應(yīng)的操作得到結(jié)果數(shù)據(jù),并更新所述第一操作指針和所述第二操作指針,順序執(zhí)行步驟211 ;本實(shí)施例中,將所述第一操作指針的值更新為其當(dāng)前值加上第二預(yù)設(shè)值;將所述第二操作指針的值更新為其當(dāng)前值加上結(jié)果數(shù)據(jù)的長(zhǎng)度;步驟211 =USBKey設(shè)備判斷當(dāng)前接收指針的值與所述第一操作指針的值是否相等,是則執(zhí)行步驟212 ;否則返回步驟207 ;步驟212 =USBKey設(shè)備判斷當(dāng)前第二操作指針與當(dāng)前發(fā)送指針的值是否相等,是則返回步驟203 ;否則等待發(fā)送端點(diǎn)中斷進(jìn)入發(fā)送中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟212 ;在本實(shí)施例中,所述USBkey設(shè)備接收到發(fā)送端點(diǎn)中斷時(shí)進(jìn)入發(fā)送中斷處理具體為步驟B-1 :所述USBKey設(shè)備判斷發(fā)送數(shù)據(jù)變量的值是否小于第三預(yù)設(shè)值,是則執(zhí)行相應(yīng)發(fā)送操作并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針,返回步驟203 ;否則執(zhí)行步驟B-2;本實(shí)施例中第三預(yù)設(shè)值指每次發(fā)送數(shù)據(jù)的長(zhǎng)度,執(zhí)行相應(yīng)的發(fā)送操作并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針具體為
步驟B-1-1 :將第二緩存區(qū)的數(shù)據(jù)移動(dòng)至發(fā)送緩存區(qū)發(fā)送給主機(jī);在本實(shí)施例中,所述USBKey設(shè)備將命令的執(zhí)行狀態(tài)返回給主機(jī),具體的0x00表示命令成功執(zhí)行,0x01表示命令執(zhí)行失敗,0x02表示階段錯(cuò)誤;需要說(shuō)明的是,通常命令都能夠成功完成,只需要設(shè)置前面兩個(gè)字段為相應(yīng)的值即可滿足要求;具體的在本實(shí)施例中所述協(xié)議頭解析完返回給主機(jī)的數(shù)據(jù)具體為13個(gè)字節(jié),具體包括字段標(biāo)識(shí),命令狀態(tài)的標(biāo)簽,命令完成時(shí)的剩余字節(jié)數(shù)等;步驟B-1-2 :更新所述發(fā)送指針和所述發(fā)送數(shù)據(jù)變量;本實(shí)施例中,將所述發(fā)送指針的值更新為其當(dāng)前值加上本次發(fā)送數(shù)據(jù)的長(zhǎng)度,將所述發(fā)送數(shù)據(jù)變量的值更新為其當(dāng)前值減去本次發(fā)送數(shù)據(jù)的長(zhǎng)度;步驟B-2:所述USBKey設(shè)備判斷當(dāng)前第二操作指針與當(dāng)前發(fā)送指針的偏差值是否大于第三預(yù)設(shè)值,是則執(zhí)行步驟B-3 ;否則中斷返回;步驟B-3 :所述USBKey設(shè)備執(zhí)行相應(yīng)的發(fā)送操作并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針,中斷返回;本實(shí)施例中執(zhí)行相應(yīng)發(fā)送操作并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針具體見(jiàn)步驟B-1-1至B-1-2,在此不再贅述。需要說(shuō)明的是,步驟202中可以不包括打開(kāi)發(fā)送端點(diǎn)中斷,當(dāng)步驟212中所述USBkey設(shè)備判斷當(dāng)前第二操作指針的值與當(dāng)前發(fā)送指針的值不相等時(shí)才打開(kāi)發(fā)送端點(diǎn)中斷;當(dāng)USBkey設(shè)備執(zhí)行完發(fā)送端點(diǎn)中斷操作后,若未接收到其他的中斷信號(hào)則返回主程序繼續(xù)執(zhí)行接收中斷信號(hào)時(shí)正在處理的步驟;所述接收中斷信號(hào)時(shí)正在處理的步驟可以為任意步驟;本發(fā)明實(shí)施例針對(duì)USBkey設(shè)備對(duì)數(shù)據(jù)進(jìn)行加密處理時(shí),通過(guò)端點(diǎn)中斷方式接收/發(fā)送數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的收發(fā)與數(shù)據(jù)處理同步,減少USBkey設(shè)備的等待時(shí)間,提高了數(shù)據(jù)操作速率。實(shí)施例四本發(fā)明實(shí)施例四提供了一種提高數(shù)據(jù)操作速率的方法,下面結(jié)合圖3對(duì)所述方法進(jìn)行介紹。如圖3所示,一種提高數(shù)據(jù)操作速率的方法,具體包括以下步驟步驟301 =USBKey設(shè)備上電;步驟302 =USBKey設(shè)備對(duì)接收指針、發(fā)送指針、第一操作指針以及第二操作指針進(jìn)行初始化,打開(kāi)接收端點(diǎn)中斷和發(fā)送端點(diǎn)中斷,等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后執(zhí)行步驟303;本實(shí)施例中,所述USBkey設(shè)備對(duì)接收指針、發(fā)送指針、第一操作指針和第二操作指針進(jìn)行初始化具體為將所述接收指針和所述第一操作指針的值分別設(shè)置為第一緩存區(qū)的基地址,將所述發(fā)送指針和所述第二操作指針的值設(shè)置為第二緩存區(qū)的基地址;所述接收指針用于指示接收的數(shù)據(jù)的位置;所述發(fā)送指針用于指示發(fā)送的數(shù)據(jù)的位置;所述第一操作指針用于指示已操作數(shù)據(jù)的位置;所述第二操作指針用于指示操作后得到的數(shù)據(jù)在第二緩存區(qū)中的的位置。具體地,在本實(shí)施例中,所述USBkey設(shè)備接收到接收端點(diǎn)中斷時(shí)進(jìn)入接收中斷處理具體包括A-1:將接收端點(diǎn)接收的數(shù)據(jù)移動(dòng)至第一緩存區(qū);A-2:更新接收指針和接收數(shù)據(jù)變量,中斷返回;具體地,將所述接收指針的值更新為其當(dāng)前值加上本次接收的數(shù)據(jù)的長(zhǎng)度;將所述接收數(shù)據(jù)變量的值更新為其當(dāng)前值加上本次接收的數(shù)據(jù)的長(zhǎng)度;步驟303 =USBKey設(shè)備判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否大于協(xié)議頭長(zhǎng)度,是則執(zhí)行步驟304;否則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟303 ;具體地,本實(shí)施例中所述協(xié)議頭的長(zhǎng)度為10 ;步驟304 =USBKey設(shè)備從第一緩存區(qū)中獲取協(xié)議頭并對(duì)其進(jìn)行解析,獲取數(shù)據(jù)長(zhǎng)度以及命令操作類(lèi)型;本實(shí)施例中,所述協(xié)議頭包括10個(gè)字節(jié),具體地獲取所述協(xié)議頭的第I個(gè)字節(jié)得到所述命令操作類(lèi)型,獲取第2-5個(gè)字節(jié)得到數(shù)據(jù)長(zhǎng)度;步驟305 =USBKey設(shè)備根據(jù)所述數(shù)據(jù)長(zhǎng)度更新接收數(shù)據(jù)變量,根據(jù)所述命令操作類(lèi)型設(shè)置操作類(lèi)型標(biāo)識(shí),并更新所述第一操作指針;本實(shí)施例中,所述操作類(lèi)型標(biāo)識(shí)用于標(biāo)識(shí)命令操作類(lèi)型,所述更新所述第一操作指針具體為將所述第一操作指針的值更新為其當(dāng)前值加上協(xié)議頭的長(zhǎng)度;步驟306 =USBKey設(shè)備判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否大于第二預(yù)設(shè)值,是則執(zhí)行步驟307;否則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟306 ;本實(shí)施例中,所述第二預(yù)設(shè)值為每次處理的數(shù)據(jù)長(zhǎng)度;步驟307 =USBKey設(shè)備根據(jù)操作類(lèi)型標(biāo)識(shí)判斷所述操作數(shù)據(jù)的類(lèi)型,若所述操作數(shù)據(jù)的類(lèi)型為加解密數(shù)據(jù)類(lèi)型,則執(zhí)行步驟308 ;若所述操作數(shù)據(jù)的類(lèi)型為其他數(shù)據(jù)類(lèi)型,則執(zhí)行步驟309 ;步驟308 =USBKey設(shè)備對(duì)所述操作數(shù)據(jù)進(jìn)行加解密處理得到結(jié)果數(shù)據(jù),并更新所述第一操作指針和第二操作指針,執(zhí)行步驟310 ;本實(shí)施例中,將所述第一操作指針的值更新為其當(dāng)前值加上所述第二預(yù)設(shè)值,將所述第二操作指針的值更新為其當(dāng)前值加上結(jié)果數(shù)據(jù)的長(zhǎng)度;步驟309 =USBKey設(shè)備根據(jù)所述操作數(shù)據(jù)的數(shù)據(jù)類(lèi)型執(zhí)行相應(yīng)的操作得到結(jié)果數(shù)據(jù),并更新所述第一操作指針和所述第二操作指針,順序執(zhí)行步驟310 ;本實(shí)施例中,將所述第一操作指針的值更新為其當(dāng)前值加上所述第二預(yù)設(shè)值,將所述第二操作指針的值更新為其當(dāng)前值加上結(jié)果數(shù)據(jù)的長(zhǎng)度;步驟310 USBKey設(shè)備判斷當(dāng)前接收指針與當(dāng)前第一操作指針的值是否相等,是則執(zhí)行步驟311 ;否則返回步驟306 ;步驟311 =USBKey設(shè)備判斷所述第二操作指針與所述發(fā)送指針的值是否相等,是則返回步驟303 ;否則等待發(fā)送端點(diǎn)中斷進(jìn)入發(fā)送中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟311 ;在本實(shí)施例中,所述USBkey設(shè)備接收到發(fā)送端點(diǎn)中斷時(shí)進(jìn)入發(fā)送中斷處理具體為
步驟B-1 :所述USBKey設(shè)備判斷發(fā)送數(shù)據(jù)變量的值是否小于第三預(yù)設(shè)值,是則執(zhí)行相應(yīng)發(fā)送操作并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針,返回步驟303 ;否則執(zhí)行步驟B-2;本實(shí)施例中第三預(yù)設(shè)值指每次發(fā)送數(shù)據(jù)的長(zhǎng)度,執(zhí)行相應(yīng)的發(fā)送處理并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針具體為步驟B-1-1 :將第二緩存區(qū)的數(shù)據(jù)移動(dòng)至發(fā)送緩存區(qū)發(fā)送給主機(jī);步驟B-1-2 :更新所述發(fā)送指針和所述發(fā)送數(shù)據(jù)變量;本實(shí)施例中,將所述發(fā)送指針的值更新為其當(dāng)前值加上本次發(fā)送數(shù)據(jù)的長(zhǎng)度,將所述發(fā)送數(shù)據(jù)變量的值更新為其當(dāng)前值減去本次發(fā)送數(shù)據(jù)的長(zhǎng)度;步驟B-2:所述USBKey設(shè)備判斷當(dāng)前第二操作指針與當(dāng)前發(fā)送指針的偏差值是否大于第三預(yù)設(shè)值,是則執(zhí)行步驟B-3 ;否則中斷返回;步驟B-3 :所述USBKey設(shè)備執(zhí)行相應(yīng)的發(fā)送操作并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針,中斷返回;本實(shí)施例中執(zhí)行相應(yīng)發(fā)送操作并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針具體見(jiàn)步驟B-1-1至B-1-2,在此不再贅述。需要說(shuō)明的是,步驟302中可以不包括打開(kāi)發(fā)送端點(diǎn)中斷,當(dāng)步驟311中所述USBkey設(shè)備判斷當(dāng)前第二操作指針的值與當(dāng)前發(fā)送指針的值不相等時(shí)才打開(kāi)發(fā)送端點(diǎn)中斷;當(dāng)USBkey設(shè)備執(zhí)行完發(fā)送端點(diǎn)中斷操作后,若未接收到其他的中斷信號(hào)則返回主程序繼續(xù)執(zhí)行接收中斷信號(hào)時(shí)正在處理的步驟;所述接收中斷信號(hào)時(shí)正在處理的步驟可以為任意步驟;本發(fā)明實(shí)施例針對(duì)USBkey設(shè)備對(duì)數(shù)據(jù)進(jìn)行加密處理時(shí),通過(guò)端點(diǎn)中斷方式接收/發(fā)送數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的收發(fā)與數(shù)據(jù)處理同步,減少USBkey設(shè)備的等待時(shí)間,提高了數(shù)據(jù)操作速率。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明公開(kāi)的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種提高數(shù)據(jù)操作速率的方法,其特征在于,包括操作處理和中斷處理,其中所述操作處理具體包括①-④ ①、USBKey上電并進(jìn)行初始化; ②、所述USBKey判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否小于協(xié)議頭長(zhǎng)度,是則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟②,否則解析協(xié)議頭的內(nèi)容并更新所述第一操作指針,執(zhí)行步驟③; ③、所述USBKey判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否小于第二預(yù)設(shè)值,是則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟③;否則根據(jù)操作類(lèi)型標(biāo)識(shí)執(zhí)行相應(yīng)的操作,得到結(jié)果數(shù)據(jù),并更新所述第一操作指針,執(zhí)行步驟④; ④、所述USBKey判斷當(dāng)前接收指針的值與當(dāng)前第一操作指針的值是否相等,如果相等則發(fā)送得到的結(jié)果數(shù)據(jù);如果不相等則返回步驟③; 當(dāng)所述USBKey接收到接收端點(diǎn)中斷時(shí)進(jìn)入接收中斷處理,包括 ⑤、所述USBKey將所接收的數(shù)據(jù)移動(dòng)至第一緩存區(qū)并更新所述接收指針,并中斷返回。
2.如權(quán)利要求1所述的方法,其特征在于,所述USBKey進(jìn)行初始化,具體包括 所述USBKey將接收指針和第一操作指針的值分別設(shè)置為第一緩存區(qū)的基地址,打開(kāi)接收端點(diǎn)中斷,等待接收端點(diǎn)中斷進(jìn)入接收中斷處理; 其中,所述接收指針用于指示接收的數(shù)據(jù)的位置;所述第一操作指針用于指示已操作數(shù)據(jù)的位置。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟②具體包括 判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否小于31,是則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟②,否則解析協(xié)議頭的內(nèi)容并更新所述第一操作指針,執(zhí)行步驟③。
4.如權(quán)利要求1所述的方法,其特征在于,所述步驟②具體包括 判斷當(dāng)前接收指針與當(dāng)前第一操作指針的偏差值是否小于10,是則等待接收端點(diǎn)中斷進(jìn)入接收中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟②,否則解析協(xié)議頭的內(nèi)容并更新所述第一操作指針,執(zhí)行步驟③。
5.如權(quán)利要求1所述的方法,其特征在于,所述第二預(yù)設(shè)值具體為每次處理的數(shù)據(jù)長(zhǎng)度。
6.如權(quán)利要求1所述的方法,其特征在于,所述解析協(xié)議頭的內(nèi)容并更新所述第一操作指針具體包括 從第一緩存區(qū)中獲取所述協(xié)議頭內(nèi)容并對(duì)其進(jìn)行解析得到數(shù)據(jù)長(zhǎng)度和命令操作類(lèi)型,根據(jù)命令操作類(lèi)型設(shè)置操作類(lèi)型標(biāo)識(shí),將所述第一操作指針的值更新為其當(dāng)前值加上協(xié)議頭長(zhǎng)度。
7.如權(quán)利要求3所述的方法,其特征在于,所述解析協(xié)議頭的內(nèi)容并更新所述第一操作指針具體為 從所述第一緩存區(qū)中獲取所述協(xié)議頭的內(nèi)容,從所述協(xié)議頭的第8-11個(gè)字節(jié)得到所述數(shù)據(jù)長(zhǎng)度;從所述協(xié)議頭的第12個(gè)字節(jié)得到方向標(biāo)識(shí),根據(jù)所述方向標(biāo)識(shí)的值執(zhí)行相應(yīng)操作;從所述協(xié)議頭的第16-19個(gè)字節(jié)得到所述命令操作類(lèi)型,根據(jù)命令操作類(lèi)型設(shè)置所述操作類(lèi)型標(biāo)識(shí);將所述第一操作指針的值更新為其當(dāng)前值加上31。
8.如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)所述方向標(biāo)識(shí)的值執(zhí)行相應(yīng)操作具體為 判斷所述方向標(biāo)識(shí)的值,若所述方向標(biāo)識(shí)的值為第一數(shù)值,則執(zhí)行步驟③;若所述方向標(biāo)識(shí)的值為第二數(shù)值,則執(zhí)行步驟⑤。
9.如權(quán)利要求4所述的方法,其特征在于,所述解析協(xié)議頭內(nèi)容并更新所述第一操作指針具體為 從所述第一緩存區(qū)中獲取所述協(xié)議頭的內(nèi)容,從所述協(xié)議頭的第I個(gè)字節(jié)得到所述命令操作類(lèi)型,根據(jù)命令操作類(lèi)型設(shè)置所述操作類(lèi)型標(biāo)識(shí);從所述協(xié)議頭的第2-5個(gè)字節(jié)得到所述數(shù)據(jù)長(zhǎng)度,將所述第一操作指針的值更新為其當(dāng)前值加上10。
10.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)操作類(lèi)型標(biāo)識(shí)執(zhí)行相應(yīng)的操作,得到結(jié)果數(shù)據(jù),并更新所述第一操作指針,具體為 根據(jù)所述操作類(lèi)型標(biāo)識(shí)判斷當(dāng)前操作數(shù)據(jù)是否為加解密數(shù)據(jù)類(lèi)型,是則進(jìn)行加解密處理,并將所述第一操作指針的值更新為其當(dāng)前值加上所述第二預(yù)設(shè)值;否則根據(jù)數(shù)據(jù)類(lèi)型執(zhí)行相應(yīng)操作,并將第一操作指針的值更新為其當(dāng)前值加上所述第二預(yù)設(shè)值。
11.如權(quán)利要求1所述的方法,其特征在于,所述更新所述接收指針,具體為 將所述接收指針的值更新為其當(dāng)前值加上本次接收數(shù)據(jù)的長(zhǎng)度。
12.如權(quán)利要求1所述的方法,其特征在于,所述結(jié)果數(shù)據(jù)中包括命令的執(zhí)行狀態(tài)。
13.如權(quán)利要求12所述的方法,其特征在于,所述命令的執(zhí)行狀態(tài)具體包括 表示命令成功執(zhí)行的0x00、表示命令執(zhí)行失敗的0x01以及表示階段錯(cuò)誤的0x02。
14.根據(jù)權(quán)利要求1所述的方法,其特征在于,還設(shè)置有發(fā)送端點(diǎn)中斷,并相應(yīng)設(shè)置有第二操作指針和發(fā)送指針,其中,所述第二操作指針用于指示操作后得到的結(jié)果數(shù)據(jù)的位置,所述發(fā)送指針用于指示發(fā)送的數(shù)據(jù)的位置,相應(yīng)地,所述步驟③中得到結(jié)果數(shù)據(jù),更新所述第一操作指針還包括更新第二操作指針; 所述發(fā)送得到的結(jié)果數(shù)據(jù)具體包括 ⑥、所述USBKey判斷當(dāng)前第二操作指針的值與當(dāng)前發(fā)送指針的值是否相等,若相等則返回步驟②,若不相等則等待發(fā)送端點(diǎn)中斷進(jìn)入發(fā)送中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟⑥; 當(dāng)所述USBKey接收到發(fā)送端點(diǎn)中斷時(shí)進(jìn)入發(fā)送中斷處理,包括 ⑦、所述USBKey判斷當(dāng)前發(fā)送數(shù)據(jù)變量的值是否小于第三預(yù)設(shè)值,是則執(zhí)行相應(yīng)的發(fā)送處理并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針,返回步驟②;否則執(zhí)行步驟⑧; ⑧、所述USBKey判斷當(dāng)前第二操作指針與當(dāng)前發(fā)送指針的差值是否大于第三預(yù)設(shè)值,是則執(zhí)行相應(yīng)的發(fā)送處理并更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針,并中斷返回;否則中斷返回。
15.如權(quán)利要求14所述的方法,其特征在于,所述USBKey進(jìn)行初始化時(shí)還包括打開(kāi)發(fā)送端點(diǎn)中斷。
16.如權(quán)利要求14所述的方法,其特征在于,所述步驟⑥中當(dāng)當(dāng)前第二操作指針的值與當(dāng)前發(fā)送指針的值不相等時(shí),首先打開(kāi)發(fā)送端點(diǎn)中斷,然后再等待發(fā)送端點(diǎn)中斷進(jìn)入發(fā)送中斷處理,待中斷返回后繼續(xù)執(zhí)行步驟⑥。
17.如權(quán)利要求14所述的方法,其特征在于 所述第三預(yù)設(shè)值具體為每次發(fā)送數(shù)據(jù)的長(zhǎng)度; 所述更新所述發(fā)送數(shù)據(jù)變量和所述發(fā)送指針具體包括將所述發(fā)送指針的值更新為其當(dāng)前值加上本次發(fā)送數(shù)據(jù)的長(zhǎng)度,將所述發(fā)送數(shù)據(jù)變量的值更新為其當(dāng)前值減去本次發(fā)送數(shù)據(jù)的長(zhǎng)度。
18.如權(quán)利要求14所述的方法,其特征在于,所述結(jié)果數(shù)據(jù)存儲(chǔ)在第二緩存區(qū)中,所述第二操作指針具體用于指示操作后得到的結(jié)果數(shù)據(jù)在第二緩存區(qū)中的的位置,所述USBKey進(jìn)行初始化時(shí)還包括所述USBKey將發(fā)送指針和第二操作指針的值設(shè)置為第二緩存區(qū)的基地址。
19.如權(quán)利要求18所述的方法,其特征在于,所述發(fā)送處理具體為將所述第二緩存區(qū)中的數(shù)據(jù)移動(dòng)至發(fā)送緩存區(qū)進(jìn)行發(fā)送。
全文摘要
本發(fā)明公開(kāi)了一種提高數(shù)據(jù)操作速率的方法,屬于信息安全領(lǐng)域。所述方法包括①USBKey上電初始化;②判斷接收指針與第一操作指針的偏差值是否小于協(xié)議頭長(zhǎng)度,是則等待接收端點(diǎn)中斷且待中斷返回后繼續(xù)執(zhí)行②,否則解析協(xié)議頭的內(nèi)容并更新第一操作指針,執(zhí)行③;③判斷接收指針與第一操作指針的偏差值是否小于第二預(yù)設(shè)值,是則等待接收端點(diǎn)中斷且待中斷返回后繼續(xù)執(zhí)行③;否則根據(jù)操作類(lèi)型標(biāo)識(shí)執(zhí)行相應(yīng)操作得到結(jié)果數(shù)據(jù),并更新第一操作指針,執(zhí)行④;④判斷接收指針的值與第一操作指針的值是否相等,是則發(fā)送得到的結(jié)果數(shù)據(jù);否則返回③。本發(fā)明的有益效果在于,實(shí)現(xiàn)數(shù)據(jù)收發(fā)與處理同步,減少USBkey等待時(shí)間,提高數(shù)據(jù)操作速率。
文檔編號(hào)G06F9/48GK103049706SQ20121047704
公開(kāi)日2013年4月17日 申請(qǐng)日期2012年11月21日 優(yōu)先權(quán)日2012年11月21日
發(fā)明者陸舟, 于華章 申請(qǐng)人:飛天誠(chéng)信科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
枝江市| 尼木县| 葫芦岛市| 台东县| 广饶县| 柳江县| 历史| 墨江| 枝江市| 台州市| 古浪县| 通化市| 遂川县| 娄烦县| 张掖市| 江源县| 韶山市| 阳春市| 永春县| 贵州省| 汉寿县| 炎陵县| 郑州市| 盱眙县| 大城县| 安溪县| 莱阳市| 德兴市| 永福县| 青川县| 延吉市| 宜州市| 呼和浩特市| 寿光市| 盖州市| 江安县| 建德市| 闽清县| 阿勒泰市| 衡山县| 章丘市|