亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種實(shí)現(xiàn)多個(gè)usb設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法

文檔序號(hào):6370923閱讀:527來(lái)源:國(guó)知局
專利名稱:一種實(shí)現(xiàn)多個(gè)usb設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法
技術(shù)領(lǐng)域
本發(fā)明屬于信息處理技術(shù)領(lǐng)域,特別涉及一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法。
背景技術(shù)
目前,智能卡因有良好的處理能力和保密性能,成為IC卡發(fā)展的主要方向,已經(jīng)被越來(lái)越多的領(lǐng)域所廣泛應(yīng)用,例如,數(shù)字電視領(lǐng)域的用戶卡、金融領(lǐng)域的銀行卡、公交領(lǐng)域的公交一卡通等。目前使用的智能卡,其生產(chǎn)工藝流程包括智能卡片初始化及個(gè)性化。隨著技術(shù)和經(jīng)濟(jì)的發(fā)展,智能卡產(chǎn)品的物理形態(tài)不再是單一的塑料卡片,并且越來(lái)越多的產(chǎn)品不再是單一的智能卡產(chǎn)品,而是將智能卡芯片和其他功能芯片封裝在一起形成一種多功能產(chǎn)品,如片上操作系統(tǒng)(C0S),主要功能是維護(hù)芯片中的文件系統(tǒng),處理主機(jī)下發(fā)給卡的各種命令。例如,應(yīng)用在網(wǎng)上銀行領(lǐng)域用來(lái)做安全認(rèn)證的USB Key,在移動(dòng)多媒體廣播應(yīng)用中內(nèi)置智能卡的移動(dòng)終端等。在產(chǎn)品生成過(guò)程中,發(fā)明人發(fā)現(xiàn)由于智能卡產(chǎn)品形態(tài)的物理多樣化以及智能卡產(chǎn)品的過(guò)功能化,給傳統(tǒng)的產(chǎn)品生成工藝流程的產(chǎn)品初始化這一流程中,由于主機(jī)每次僅能向一個(gè)產(chǎn)品發(fā)送初始化命令,因此在產(chǎn)品批量生產(chǎn)過(guò)程中,直接影響生產(chǎn)效率。

發(fā)明內(nèi)容
為了提高卡產(chǎn)品的生產(chǎn)效率,解決現(xiàn)有的生產(chǎn)設(shè)備過(guò)程中存在的問(wèn)題,本發(fā)明提供了一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法,可以解決COS同時(shí)下載到多個(gè)設(shè)備的問(wèn)題。本發(fā)明采取的技術(shù)方案是一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法,我們通過(guò)更改COS實(shí)現(xiàn)將幾個(gè)USB設(shè)備的地址設(shè)為一致,上層主機(jī)發(fā)送一條命令能夠同時(shí)被幾個(gè)USB設(shè)備接收到,類似于廣播的形式。一種實(shí)現(xiàn)多USB個(gè)設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法包括步驟SI :設(shè)備上電初始化;步驟S2 :接收主機(jī)下發(fā)的命令;步驟S3 :判斷所述命令類型;當(dāng)所述命令為設(shè)置地址命令時(shí),則從所述命令中獲取主設(shè)備地址,判斷是否執(zhí)行設(shè)置地址操作,是則執(zhí)行設(shè)置地址操作后執(zhí)行下一步,否則向主機(jī)返回設(shè)置地址響應(yīng)后執(zhí)行下一步;當(dāng)所述命令為特殊操作命令時(shí),則設(shè)備執(zhí)行所述特殊操作,判斷是否向主機(jī)返回特殊操作響應(yīng),是則向主機(jī)返回特殊操作響應(yīng)后執(zhí)行下一步,否則直接執(zhí)行下一步;當(dāng)所述命令為其他操作命令時(shí),則判斷是否執(zhí)行所述其他操作,是則執(zhí)行所述其他操作并向主機(jī)返回操作結(jié)果后執(zhí)行下一步,否則無(wú)響應(yīng)轉(zhuǎn)到下一步;步驟S4 :返回執(zhí)行步驟S2。、
主機(jī)獲取主設(shè)備地址的方式有兩種,其一是當(dāng)設(shè)備接收主機(jī)下發(fā)的設(shè)置地址命令之前包括,主機(jī)從與其相連的USB HUB上獲取并保存一個(gè)設(shè)備的地址為主設(shè)備地址;其二是當(dāng)設(shè)備接收到主機(jī)下發(fā)的命令為獲取地址命令時(shí),則獲取當(dāng)前設(shè)備地址,并將獲取到的當(dāng)前設(shè)備地址發(fā)送給主機(jī),所述主機(jī)將接收到的當(dāng)前設(shè)備地址保存為主設(shè)備地址。上述步驟S3中當(dāng)所述命令為設(shè)置地址命令時(shí)執(zhí)行的操作具體為從所述設(shè)置地址命令中獲取主設(shè)備地址,判斷當(dāng)前設(shè)備地址是否與所述主設(shè)備地址一致,是則無(wú)需設(shè)置地址,否則將當(dāng)前設(shè)備地址緩存為原始地址,將當(dāng)前設(shè)備地址更改為主設(shè)備地址;當(dāng)所述命令為特殊操作命令時(shí)執(zhí)行的操作具體為執(zhí)行特殊操作,判斷當(dāng)前設(shè)備地址是否與當(dāng)前設(shè)備的原始地址一致,是則向主機(jī)返回特殊操作響應(yīng),否則判斷所述特殊操作是否執(zhí)行完成,是則將當(dāng)前設(shè)備地址更改回原始地址,否則繼續(xù)執(zhí)行所述特殊操作;當(dāng)所述命令為其他操作命令時(shí)執(zhí)行的操作具體為判斷當(dāng)前設(shè)備地址是否與當(dāng)前 設(shè)備的原始地址一致,是則執(zhí)行所述命令并向主機(jī)返回執(zhí)行結(jié)果,否則無(wú)響應(yīng)?;蛘咴谒鰧?dāng)前設(shè)備地址更改為主設(shè)備地址之后還包括啟動(dòng)計(jì)時(shí)器,則當(dāng)計(jì)時(shí)器達(dá)到預(yù)設(shè)時(shí)間時(shí),當(dāng)前設(shè)備地址將自動(dòng)還原為所述原始地址。或者步驟S3還包括,當(dāng)所述命令為恢復(fù)地址命令時(shí),則判斷當(dāng)前設(shè)備地址是否與當(dāng)前設(shè)備的原始地址一致,是則返回恢復(fù)地址響應(yīng),否則將當(dāng)前設(shè)備地址更改回原始地址;相應(yīng)的,當(dāng)所述命令為特殊操作命令時(shí)執(zhí)行的操作具體為執(zhí)行特殊操作,判斷當(dāng)前設(shè)備地址是否與當(dāng)前設(shè)備的原始地址一致,是則向主機(jī)返回特殊操作響應(yīng),否則無(wú)響應(yīng)。上述步驟S3中當(dāng)所述命令為設(shè)置地址命令時(shí)執(zhí)行的操作具體為從所述設(shè)置地址命令中獲取主設(shè)備地址,判斷當(dāng)前設(shè)備地址是否與所述主設(shè)備地址一致,是則無(wú)需設(shè)置地址,否則將當(dāng)前設(shè)備地址緩存為原始地址,將當(dāng)前設(shè)備地址更改為主設(shè)備地址,設(shè)置地址更新標(biāo)記;當(dāng)所述命令為特殊操作命令時(shí)執(zhí)行的操作具體為執(zhí)行特殊操作,判斷是否存在地址更新標(biāo)記,不存在則向主機(jī)返回特殊操作響應(yīng),存在則判斷所述特殊操作是否執(zhí)行完成,是則將當(dāng)前設(shè)備地址更改回原始地址并清除地址更新標(biāo)記,否則繼續(xù)執(zhí)行所述特殊操作;當(dāng)所述命令為其他操作命令時(shí)執(zhí)行的操作具體為判斷是否存在地址更新標(biāo)記,存在則無(wú)響應(yīng),不存在則執(zhí)行所述命令并向主機(jī)返回執(zhí)行結(jié)果?;蛘咴谒鰧?dāng)前設(shè)備地址更改為主設(shè)備地址之后還包括啟動(dòng)計(jì)時(shí)器,則當(dāng)計(jì)時(shí)器達(dá)到預(yù)設(shè)時(shí)間時(shí),當(dāng)前設(shè)備地址將自動(dòng)還原為所述原始地址。或者步驟S3還包括,當(dāng)所述命令為恢復(fù)地址命令時(shí),則判斷是否存在地址更新標(biāo)記,不存在則返回恢復(fù)地址響應(yīng),存在則讀取預(yù)存的原始地址,將當(dāng)前設(shè)備地址更改回原始地址,清除地址更新標(biāo)記;相應(yīng)的,當(dāng)所述命令為特殊操作命令時(shí)執(zhí)行的操作具體為執(zhí)行特殊操作,判斷是否存在地址更新標(biāo)記,是則無(wú)響應(yīng),否則向主機(jī)返回特殊操作響應(yīng)。上述特殊操作指令為主機(jī)向設(shè)備發(fā)送的數(shù)據(jù)傳輸指令,所述數(shù)據(jù)傳輸指令為燒寫指令、加解密指令或檢索指令。本發(fā)明的有益效果是本發(fā)明提供的方法可以提高下行數(shù)據(jù)效率,例如應(yīng)用于產(chǎn)品生產(chǎn)過(guò)程中提高初始化效率;另外采用本發(fā)明的方法可以同時(shí)在多個(gè)設(shè)備中生成密鑰對(duì)。


圖I是本發(fā)明實(shí)施例I提供的一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法;圖2是本發(fā)明實(shí)施例2提供的一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法;圖3是本發(fā)明實(shí)施例3提供的一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法;
圖4是本發(fā)明實(shí)施例4提供的一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。本發(fā)明的實(shí)施例以USB設(shè)備為例進(jìn)行說(shuō)明,USB設(shè)備具有專用的引擎接口用于設(shè)置地址,當(dāng)主機(jī)檢測(cè)到USB設(shè)備插入后,會(huì)先對(duì)設(shè)備復(fù)位,所有的USB設(shè)備在總線復(fù)位后其地址都為0,這樣主機(jī)就可以跟那些剛剛插入的設(shè)備通過(guò)地址O通信。設(shè)備復(fù)位后,主機(jī)就會(huì)對(duì)地址為O的設(shè)備發(fā)送獲取設(shè)備描述符的標(biāo)準(zhǔn)請(qǐng)求,設(shè)備收到該請(qǐng)求后,在數(shù)據(jù)階段將設(shè)備描述符返回給主機(jī),主機(jī)在成功獲取到一個(gè)數(shù)據(jù)包的設(shè)備描述符后并且確認(rèn)沒(méi)有什么錯(cuò)誤后,就會(huì)返回一個(gè)O長(zhǎng)度的確認(rèn)數(shù)據(jù)包給設(shè)備。然后主機(jī)再對(duì)設(shè)備復(fù)位一下,接下來(lái)就會(huì)進(jìn)入到設(shè)置地址階段。這時(shí)主機(jī)發(fā)出一個(gè)設(shè)置地址的請(qǐng)求,并在后面跟著一個(gè)O長(zhǎng)度的數(shù)據(jù)輸出包。地址包含在建立包中,具體的地址主機(jī)會(huì)負(fù)責(zé)管理,它會(huì)分配一個(gè)唯一的地址給新的設(shè)備。USB設(shè)備在收到地址后,返回O長(zhǎng)度的應(yīng)答包,設(shè)備在收到這個(gè)O長(zhǎng)度應(yīng)答包的ACK之后,就可以起用新的地址了。這樣設(shè)備就分配到了一個(gè)唯一的設(shè)備地址,以后主機(jī)就通過(guò)它來(lái)進(jìn)行訪問(wèn)該設(shè)備。實(shí)施例I本實(shí)施例提供了一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法,通過(guò)設(shè)置地址命令和恢復(fù)地址命令來(lái)實(shí)現(xiàn)多個(gè)設(shè)備既可以同時(shí)接收并處理特殊操作命令,也可以單個(gè)接收處理其他操作命令,具體實(shí)現(xiàn)方法如下步驟101 :設(shè)備接收主機(jī)下發(fā)的命令;步驟102 :判斷命令類型;如果是獲取地址命令,則執(zhí)行步驟103-1至步驟103-2 ;如果是設(shè)置地址命令,則執(zhí)行步驟104-1至步驟104-5 ;如果是特殊操作命令,則執(zhí)行步驟105-1至步驟105-3 ;如果是恢復(fù)地址命令,則執(zhí)行步驟106-1至步驟106-4 ;如果是其他操作命令,則執(zhí)行步驟107-1至步驟107-3 ;具體地,設(shè)備通過(guò)對(duì)接收到的所述命令進(jìn)行解析,根據(jù)解析得到的數(shù)據(jù)的字節(jié)組成判斷命令類型,具體通過(guò)解析得到的第一和第二字節(jié)數(shù)值滿足預(yù)先設(shè)定的數(shù)值時(shí)判斷得到相應(yīng)的命令,例如,當(dāng)接收到的數(shù)據(jù)前兩個(gè)字節(jié)為OX 67 01時(shí)為獲取地址命令,當(dāng)接收到的數(shù)據(jù)前兩個(gè)字節(jié)為OX 67 02時(shí)為設(shè)置地址命令,當(dāng)接收到的數(shù)據(jù)前兩個(gè)字節(jié)為OX 6704時(shí)為恢復(fù)地址命令;當(dāng)接收到的數(shù)據(jù)的第二字節(jié)取值范圍在預(yù)設(shè)范圍時(shí)為特殊操作指令,所述特殊操作指令為主機(jī)向設(shè)備發(fā)送的數(shù)據(jù)傳輸指令,包括燒寫指令、加解密指令、檢索指令等,所述燒寫指令用于將接收到的數(shù)據(jù)寫入指定存儲(chǔ)器,例如下COS指令;所述檢索指令用于檢索設(shè)備中是否存在所需內(nèi)容,例如通過(guò)發(fā)送檢索指令檢索所需證書存儲(chǔ)在哪個(gè)設(shè)備中。例如當(dāng)接收到的數(shù)據(jù)前兩字節(jié)為OX 67 05時(shí)為下載片上操作系統(tǒng)(COS)命令,當(dāng)接收到的數(shù)據(jù)為OX 67 06時(shí)為下載加密程序命令等。當(dāng)接收到的數(shù)據(jù)的第一個(gè)字節(jié)為“00”時(shí)為其他操作命令,所述其他操作命令可以具體為讀記錄命令、擦除命令、寫記錄命令等。步驟103-1 :獲取當(dāng)前設(shè)備地址;一般的,獲取的當(dāng)前設(shè)備地址為主機(jī)為當(dāng)前設(shè)備分配的唯一的設(shè)備地址,例如,與 主機(jī)連接的USB HUB上的多個(gè)設(shè)備各自擁有不同的設(shè)備地址,獲取當(dāng)前設(shè)備地址具體為獲取接收到所述獲取地址命令的設(shè)備的設(shè)備地址。步驟103-2 :將獲取的當(dāng)前設(shè)備地址發(fā)送給主機(jī),主機(jī)將接收到的設(shè)備地址保存為主設(shè)備地址,然后返回步驟101 ;步驟104-1 :從所述命令中獲取主設(shè)備地址;步驟104-2 :判斷當(dāng)前設(shè)備地址是否與主設(shè)備地址一致,是則向主機(jī)返回設(shè)置地址響應(yīng)然后返回步驟101,否則執(zhí)行步驟104-3 ;步驟104-3 :將當(dāng)前設(shè)備地址緩存為原始地址;具體地,將當(dāng)前設(shè)備地址作為原始地址緩存在原始寄存器中。步驟104-4 :將當(dāng)前設(shè)備地址更改為主設(shè)備地址;步驟104-5 :設(shè)置地址更新標(biāo)記,然后返回步驟101 ;本實(shí)施例中具體地,在標(biāo)記緩存中設(shè)置地址更新標(biāo)記。本步驟還可以替換為步驟104-5’ 將地址更新標(biāo)記設(shè)置為預(yù)設(shè)值;例如,所述預(yù)設(shè)值為1,則本步驟為將標(biāo)記緩存中的地址更新標(biāo)記設(shè)置為I。步驟105-1 :設(shè)備執(zhí)行特殊操作;步驟105-2 :判斷是否存在地址更新標(biāo)記,是則返回執(zhí)行步驟101,否則執(zhí)行步驟105-3 ;具體地,判斷標(biāo)記緩存是否為空,是則不存在地址更新標(biāo)記,否則存在地址更新標(biāo)記?;蛘呤遣襟E105-2可以為,判斷地址更新標(biāo)記是否為預(yù)設(shè)值。例如,判斷地址更新標(biāo)記是否為1,是則執(zhí)行步驟101,否則執(zhí)行下一步。步驟105-3 :向主機(jī)返回特殊操作響應(yīng),然后返回執(zhí)行步驟101 ;步驟106-1 :判斷是否存在地址更新標(biāo)記,是則執(zhí)行步驟106-2,否則向主機(jī)返回恢復(fù)地址響應(yīng)然后返回執(zhí)行步驟101 ;判斷方法同步驟105-2在此不再贅述。步驟106-2 :讀取緩存的原始地址;
具體地,從原始寄存器中讀取當(dāng)前設(shè)備的原始地址。步驟106-3 :將當(dāng)前設(shè)備地址更改為原始地址;步驟106-4 :清除地址更新標(biāo)記,然后返回執(zhí)行步驟101 ;本實(shí)施例中,清除地址更新標(biāo)記具體為將標(biāo)記緩存清空。本步驟還可以替換為步驟106-4’ 更改地址更新標(biāo)記;具體為將地址更新標(biāo)記更改為與步驟104-5’所述預(yù)設(shè)值不同的一個(gè)數(shù)值,例如,當(dāng)預(yù)設(shè)值為I時(shí),將地址更新標(biāo)記更改為O或其他非I數(shù)值。步驟107-1 :判斷是否存在地址更新標(biāo)記,是則無(wú)響應(yīng),否則執(zhí)行步驟107-2 ;或者本步驟也可以為判斷地址更新標(biāo)記是否為預(yù)設(shè)值。
步驟107-2 :執(zhí)行接收到的所述命令;本實(shí)施例中,所述命令為符合USB設(shè)備傳輸協(xié)議的命令,例如,讀記錄命令、復(fù)位命令、擦除命令、與記錄命令等。步驟107-3 向主機(jī)返回執(zhí)行結(jié)果,然后返回執(zhí)行步驟101 ;本實(shí)施例中,具體是根據(jù)步驟107-2所述命令產(chǎn)生相應(yīng)的響應(yīng)作為執(zhí)行結(jié)果返回給主機(jī)。例如,當(dāng)執(zhí)行讀記錄命令的執(zhí)行結(jié)果是記錄未被找到,則向主機(jī)返回OX 65 83。實(shí)施例2本實(shí)施例提供了一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法,通過(guò)設(shè)置特殊操作命令來(lái)實(shí)現(xiàn)執(zhí)行完特殊操作后設(shè)備自動(dòng)恢復(fù)地址,從而使得多個(gè)設(shè)備既可以同時(shí)接收并處理特殊操作命令,也可以單個(gè)接收處理其他操作命令,具體實(shí)現(xiàn)方法如下步驟201 :設(shè)備接收主機(jī)下發(fā)的命令;步驟202 :判斷命令類型;如果是獲取地址命令,則執(zhí)行步驟203-1至步驟203-2 ;如果是設(shè)置地址命令,則執(zhí)行步驟204-1至步驟204-5 ;如果是特殊操作命令,則執(zhí)行步驟205-1至步驟205-6 ;如果是其他操作命令,則執(zhí)行步驟206-1至步驟206-3 ;步驟203-1 :獲取當(dāng)前設(shè)備地址;一般的,獲取的當(dāng)前設(shè)備地址為主機(jī)為當(dāng)前設(shè)備分配的唯一的一個(gè)設(shè)備地址。步驟203-2 :將獲取的當(dāng)前設(shè)備地址發(fā)送給主機(jī),主機(jī)將接收到的設(shè)備地址保存為主設(shè)備地址;然后返回步驟201 ;步驟204-1 :從接收到的命令中獲取主設(shè)備地址;步驟204-2 :判斷當(dāng)前設(shè)備地址是否與主設(shè)備地址一致,是則向主機(jī)返回設(shè)置地址響應(yīng)然后返回執(zhí)行步驟201,否則執(zhí)行步驟204-3 ;步驟204-3 :將當(dāng)前設(shè)備地址緩存為原始地址;具體地,將當(dāng)前設(shè)備地址作為原始地址緩存在原始寄存器中。步驟204-4 :將當(dāng)前設(shè)備地址更改為主設(shè)備地址;步驟204-5 :設(shè)置地址更新標(biāo)記,然后返回步驟201 ;本實(shí)施例中具體為,在標(biāo)記緩存中設(shè)置地址更新標(biāo)記。本步驟還可以替換為步驟204-5’ 將地址更新標(biāo)記設(shè)置為預(yù)設(shè)值;例如,所述預(yù)設(shè)值為0,則本步驟為將標(biāo)記緩存中的地址更新標(biāo)記設(shè)置為O。
步驟205-1 :設(shè)備執(zhí)行特殊操作;步驟205-2 :判斷是否存在地址更新標(biāo)記,是則執(zhí)行步驟205-3,否則執(zhí)行步驟205-6 ;步驟205-3 :判斷特殊操作是否執(zhí)行完成,是則執(zhí)行步驟205-4,否則返回繼續(xù)執(zhí)行步驟205-1 ;本實(shí)施例中,具體可以判斷接收并執(zhí)行的數(shù)據(jù)的長(zhǎng)度是否達(dá)到預(yù)設(shè)長(zhǎng)度,是則表示執(zhí)行完成,例如,預(yù)設(shè)長(zhǎng)度為I個(gè)數(shù)據(jù)包;或者是自定義當(dāng)接收到一個(gè)標(biāo)記符時(shí)則特殊操作執(zhí)行完成,反之返回步驟205-1繼續(xù)執(zhí)行特殊操作。步驟205-4 :將當(dāng)前設(shè)備地址更改為原始地址;
具體為,從原始寄存器中讀取該設(shè)備的原始地址,將當(dāng)前設(shè)備地址更改為原始地址。步驟205-5 :清除地址更新標(biāo)記,然后返回執(zhí)行步驟201 ;本實(shí)施例中,清除地址更新標(biāo)記具體為將標(biāo)記緩存清空。本步驟還可以替換為步驟205-5’ 更改地址更新標(biāo)記;具體為將地址更新標(biāo)記更改為與步驟204-5’所述預(yù)設(shè)值不同的一個(gè)數(shù)值,例如,當(dāng)預(yù)設(shè)值為O時(shí),將地址更新標(biāo)記更改為I或其他非O數(shù)值。
步驟205-6 :向主機(jī)返回特殊操作響應(yīng),然后返回步驟201。步驟206-1 :判斷是否存在地址更新標(biāo)記,是則無(wú)響應(yīng),否則執(zhí)行步驟206-2 ;或者本步驟也可以為判斷地址更新標(biāo)記是否為預(yù)設(shè)值,是則無(wú)響應(yīng),否則執(zhí)行步驟 206-2。步驟206-2 :執(zhí)行接收到的所述命令;步驟206-3 :向主機(jī)返回執(zhí)行結(jié)果,然后返回執(zhí)行步驟201。實(shí)施例3本實(shí)施例提供了一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法,通過(guò)設(shè)置一個(gè)定時(shí)器來(lái)實(shí)現(xiàn)執(zhí)行完特殊操作后設(shè)備定時(shí)恢復(fù)地址,從而使得多個(gè)設(shè)備既可以同時(shí)接收并處理特殊操作命令,也可以單個(gè)接收處理其他操作命令,具體實(shí)現(xiàn)方法如下步驟301 :設(shè)備接收主機(jī)下發(fā)的命令;步驟302 :判斷命令類型;如果是獲取地址命令,則執(zhí)行步驟303-1至步驟303-2 ;如果是設(shè)置地址命令,則執(zhí)行步驟304-1至步驟304-6 ;如果是特殊操作命令,則執(zhí)行步驟305-1至步驟305-3 ;如果是其他操作命令,則執(zhí)行步驟306-1至步驟306-3 ;步驟303-1 :獲取當(dāng)前設(shè)備地址;一般的,獲取的當(dāng)前設(shè)備地址為主機(jī)為當(dāng)前設(shè)備分配的唯一的一個(gè)設(shè)備地址,例如,與主機(jī)連接的USB HUB上的多個(gè)設(shè)備各自擁有不同的設(shè)備地址,獲取當(dāng)前設(shè)備地址具體為獲取接收到所述獲取地址命令的設(shè)備的設(shè)備地址。步驟303-2 :將獲取的當(dāng)前設(shè)備地址發(fā)送給主機(jī),主機(jī)將接收到的設(shè)備地址保存為主設(shè)備地址;例如,主機(jī)將與其連接的USB HUB的第一端口上的USB設(shè)備返回的地址保存為主設(shè)備地址。步驟304-1 :從接收到的命令中獲取主設(shè)備地址;步驟304-2 :判斷當(dāng)前設(shè)備地址是否與主設(shè)備地址一致,是則向主機(jī)返回設(shè)置地址響應(yīng)然后返回步驟301,否則執(zhí)行步驟304-3 ;步驟304-3 :將當(dāng)前設(shè)備地址緩存為原始地址;具體地,將當(dāng)前設(shè)備地址作為原始地址緩存在原始寄存器中。步驟304-4 :將當(dāng)前設(shè)備地址更改為主設(shè)備地址;步驟304-5 :啟動(dòng)計(jì)時(shí)器;
具體的,計(jì)時(shí)器開始計(jì)時(shí),當(dāng)計(jì)時(shí)達(dá)到預(yù)設(shè)時(shí)間時(shí),設(shè)備自動(dòng)將當(dāng)前設(shè)備地址還原為原始地址,即實(shí)現(xiàn)當(dāng)前設(shè)備原始地址的恢復(fù)。例如,當(dāng)計(jì)時(shí)器從計(jì)時(shí)開始超出了 10秒鐘,則判斷為計(jì)時(shí)器超出了預(yù)設(shè)時(shí)間,設(shè)備自動(dòng)將地址還原為原始地址。步驟304-6 :設(shè)置地址更新標(biāo)記,然后返回步驟301本實(shí)施例中具體為,在標(biāo)記緩存中設(shè)置地址更新標(biāo)記。本步驟還可以替換為步驟304-5’ 將地址更新標(biāo)記設(shè)為預(yù)設(shè)值;步驟305-1 :執(zhí)行特殊操作;例如,當(dāng)接收的特殊命令是下載COS命令則設(shè)備執(zhí)行下COS操作,當(dāng)接收的特殊命令是下載加密程序命令則設(shè)備執(zhí)行下載加密程序操作。步驟305-2 :判斷是否存在地址更新標(biāo)記,是則返回步驟301,否則執(zhí)行步驟305-3 ;步驟305-3 :向主機(jī)返回特殊操作響應(yīng),然后返回執(zhí)行步驟301 ;步驟306-1 :判斷是否存在地址更新標(biāo)記,是則無(wú)響應(yīng),否則執(zhí)行步驟306-2 ;步驟306-2 :執(zhí)行接收到的所述命令;步驟306-3 :向主機(jī)返回執(zhí)行結(jié)果,然后返回執(zhí)行步驟301。實(shí)施例4本實(shí)施例提供了一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法,具體實(shí)現(xiàn)方法參見圖4,包括以下步驟步驟401 :設(shè)備上電初始化;在上電初始化的過(guò)程中包括,設(shè)備將當(dāng)前的地址作為原始地址存儲(chǔ)在原始寄存器中。步驟402 :接收主機(jī)下發(fā)的命令;步驟403 :判斷命令類型;如果是設(shè)置地址命令,則執(zhí)行步驟404-1至步驟404-3 ;如果是特殊操作命令,則執(zhí)行步驟405-1至步驟405-5 ;如果是其他操作命令,則執(zhí)行步驟406-1至步驟406-3 ;本實(shí)施例中,當(dāng)接收主機(jī)下發(fā)的命令為設(shè)置地址命令之前還包括主機(jī)獲取一個(gè)USB設(shè)備的設(shè)備地址并將其保存主為設(shè)備地址。例如,主機(jī)獲取與其連接的USB HUB的第一端口上的USB設(shè)備的設(shè)備地址并將其存儲(chǔ)為主設(shè)備地址的方法具體為主機(jī)對(duì)USB HUB的當(dāng)前端口進(jìn)行查詢,獲取當(dāng)前端口上的設(shè)備連接信息;
在本實(shí)施例中,當(dāng)是第一次對(duì)此USB HUB進(jìn)行查詢時(shí),則此USB HUB的第一端口即為當(dāng)前端口;其中,對(duì)USB HUB的當(dāng)前端口進(jìn)行查詢的方法為主機(jī)向USB HUB的當(dāng)前端口發(fā)送10CTL_USB_GET_N0DE_C0NNECT10N_INF0RMATION 請(qǐng)求,獲取該端口 上的設(shè)備連接信息,其中設(shè)備連接信息中具體包括連接狀態(tài)標(biāo)志位、HUB標(biāo)志位、設(shè)備地址等信息。主機(jī)將USB HUB上第一端口上的設(shè)備的地址設(shè)置為主設(shè)備地址存儲(chǔ)在固定寄存器中。 步驟404-1 :從接收到的所述獲取地址命令中獲取主設(shè)備地址;步驟404-2 :判斷當(dāng)前設(shè)備地址是否與主設(shè)備地址一致,是則向主機(jī)返回設(shè)置地址響應(yīng),然后返回到步驟402,否則繼續(xù)下一步;步驟404-3 :將當(dāng)前設(shè)備地址更改為主設(shè)備地址;步驟405-1 :執(zhí)行特殊操作;步驟405-2:判斷當(dāng)前設(shè)備地址是否與預(yù)存的原始地址一致,是則執(zhí)行步驟405-5,否則執(zhí)行步驟405-3 ;步驟405-3 :判斷特殊操作是否執(zhí)行完成,是則繼續(xù)下一步,否則返回繼續(xù)執(zhí)行步驟 405-1 ;步驟405-4 :將當(dāng)前設(shè)備地址更改為原始地址,然后返回步驟402 ;步驟405-5 :向主機(jī)返回特殊操作響應(yīng)然后返回步驟402 ;步驟406-1 :判斷當(dāng)前設(shè)備地址是否與預(yù)存的原始地址一致,是則執(zhí)行下一步,否則無(wú)響應(yīng),然后返回步驟402 ;步驟406-2 :執(zhí)行所述命令;步驟406-3 :向主機(jī)返回執(zhí)行結(jié)果然后返回步驟402。本實(shí)施例同實(shí)施例2的區(qū)別在于,其一,本實(shí)施例采取的方式是主機(jī)在設(shè)備初始化過(guò)程中存儲(chǔ)原始地址,并在下發(fā)設(shè)置地址命令之前獲取并保存一個(gè)主設(shè)備地址,而不需通過(guò)下發(fā)獲取地址命令來(lái)獲取主設(shè)備地址;其二,本實(shí)施例通過(guò)判斷當(dāng)前設(shè)備地址與原始地址是否一致得出是否向主機(jī)返回響應(yīng)以及是否能夠執(zhí)行其他操作命令的結(jié)論,而不需要設(shè)置地址更新標(biāo)記。同時(shí),將區(qū)別一和/或二應(yīng)用于實(shí)施例1、2、3對(duì)本領(lǐng)域技術(shù)人員而言是顯而易見的,是采用不同組合方式實(shí)現(xiàn)的方案,本實(shí)施例是將區(qū)別一和二應(yīng)用到實(shí)施例2得出的一個(gè)完整實(shí)現(xiàn)方式。因此,上述幾種方案的組合或替換對(duì)本領(lǐng)域技術(shù)人員而言是顯而易見的,也在本發(fā)明的保護(hù)范圍之內(nèi)。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種實(shí)現(xiàn)多USB個(gè)設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法,其特征在于,包括 步驟SI:設(shè)備上電初始化; 步驟S2:接收主機(jī)下發(fā)的命令; 步驟S3 :判斷所述命令類型; 當(dāng)所述命令為設(shè)置地址命令時(shí),則從所述命令中獲取主設(shè)備地址,判斷是否執(zhí)行設(shè)置地址操作,是則執(zhí)行設(shè)置地址操作后執(zhí)行下一步,否則向主機(jī)返回設(shè)置地址響應(yīng)后執(zhí)行下一步; 當(dāng)所述命令為特殊操作命令時(shí),則設(shè)備執(zhí)行所述特殊操作,判斷是否向主機(jī)返回特殊操作響應(yīng),是則向主機(jī)返回特殊操作響應(yīng)后執(zhí)行下一步,否則直接執(zhí)行下一步; 當(dāng)所述命令為其他操作命令時(shí),則判斷是否執(zhí)行所述其他操作,是則執(zhí)行所述其他操作并向主機(jī)返回操作結(jié)果后執(zhí)行下一步,否則無(wú)響應(yīng)轉(zhuǎn)到下一步; 步驟S4 :返回執(zhí)行步驟S2。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,當(dāng)設(shè)備接收主機(jī)下發(fā)的設(shè)置地址命令之前包括,主機(jī)從與其相連的USB HUB上獲取并保存一個(gè)設(shè)備的地址為主設(shè)備地址。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于, 步驟S2中還包括,當(dāng)所述命令為獲取地址命令時(shí),則獲取當(dāng)前設(shè)備地址,并將獲取到的當(dāng)前設(shè)備地址發(fā)送給主機(jī),所述主機(jī)將接收到的當(dāng)前設(shè)備地址保存為主設(shè)備地址。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,步驟S3中當(dāng)所述命令為設(shè)置地址命令時(shí)執(zhí)行的操作具體為從所述設(shè)置地址命令中獲取主設(shè)備地址,判斷當(dāng)前設(shè)備地址是否與所述主設(shè)備地址一致,是則無(wú)需設(shè)置地址,否則將當(dāng)前設(shè)備地址緩存為原始地址,將當(dāng)前設(shè)備地址更改為主設(shè)備地址; 當(dāng)所述命令為特殊操作命令時(shí)執(zhí)行的操作具體為執(zhí)行特殊操作,判斷當(dāng)前設(shè)備地址是否與當(dāng)前設(shè)備的原始地址一致,是則向主機(jī)返回特殊操作響應(yīng),否則判斷所述特殊操作是否執(zhí)行完成,是則將當(dāng)前設(shè)備地址更改回原始地址,否則繼續(xù)執(zhí)行所述特殊操作; 當(dāng)所述命令為其他操作命令時(shí)執(zhí)行的操作具體為判斷當(dāng)前設(shè)備地址是否與當(dāng)前設(shè)備的原始地址一致,是則執(zhí)行所述命令并向主機(jī)返回執(zhí)行結(jié)果,否則無(wú)響應(yīng)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述將當(dāng)前設(shè)備地址更改為主設(shè)備地址之后還包括啟動(dòng)計(jì)時(shí)器,則當(dāng)計(jì)時(shí)器達(dá)到預(yù)設(shè)時(shí)間時(shí),當(dāng)前設(shè)備地址將自動(dòng)還原為所述原始地址。
6.根據(jù)權(quán)利要求I所述的方法,其特征在于,步驟S3還包括,當(dāng)所述命令為恢復(fù)地址命令時(shí),則判斷當(dāng)前設(shè)備地址是否與當(dāng)前設(shè)備的原始地址一致,是則返回恢復(fù)地址響應(yīng),否則將當(dāng)前設(shè)備地址更改回原始地址; 相應(yīng)的,當(dāng)所述命令為特殊操作命令時(shí)執(zhí)行的操作具體為執(zhí)行特殊操作,判斷當(dāng)前設(shè)備地址是否與當(dāng)前設(shè)備的原始地址一致,是則向主機(jī)返回特殊操作響應(yīng),否則無(wú)響應(yīng)。
7.根據(jù)權(quán)利要求I所述的方法,其特征在于,步驟S3中當(dāng)所述命令為設(shè)置地址命令時(shí)執(zhí)行的操作具體為從所述設(shè)置地址命令中獲取主設(shè)備地址,判斷當(dāng)前設(shè)備地址是否與所述主設(shè)備地址一致,是則無(wú)需設(shè)置地址,否則將當(dāng)前設(shè)備地址緩存為原始地址,將當(dāng)前設(shè)備地址更改為主設(shè)備地址,設(shè)置地址更新標(biāo)記; 當(dāng)所述命令為特殊操作命令時(shí)執(zhí)行的操作具體為執(zhí)行特殊操作,判斷是否存在地址更新標(biāo)記,若不存在則向主機(jī)返回特殊操作響應(yīng),若存在則判斷所述特殊操作是否執(zhí)行完成,是則將當(dāng)前設(shè)備地址更改回原始地址并清除地址更新標(biāo)記,否則繼續(xù)執(zhí)行所述特殊操作; 當(dāng)所述命令為其他操作命令時(shí)執(zhí)行的操作具體為判斷是否存在地址更新標(biāo)記,若存在則無(wú)響應(yīng),若不存在則執(zhí)行所述命令并向主機(jī)返回執(zhí)行結(jié)果。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,在所述將當(dāng)前設(shè)備地址更改為主設(shè)備地址之后還包括啟動(dòng)計(jì)時(shí)器,則當(dāng)計(jì)時(shí)器達(dá)到預(yù)設(shè)時(shí)間時(shí),當(dāng)前設(shè)備地址將自動(dòng)還原為所述原始地址。
9.根據(jù)權(quán)利要求I所述的方法,其特征在于,步驟S3還包括,當(dāng)所述命令為恢復(fù)地址命令時(shí),判斷是否存在地址更新標(biāo)記,若不存在則返回恢復(fù)地址響應(yīng),若存在則讀取預(yù)存的原始地址,將當(dāng)前設(shè)備地址更改回原始地址,清除地址更新標(biāo)記; 相應(yīng)的,當(dāng)所述命令為特殊操作命令時(shí)執(zhí)行的操作具體為執(zhí)行特殊操作,判斷是否存在地址更新標(biāo)記,是則無(wú)響應(yīng),否則向主機(jī)返回特殊操作響應(yīng)。
10.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述特殊操作指令為主機(jī)向設(shè)備發(fā)送的數(shù)據(jù)傳輸指令。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述數(shù)據(jù)傳輸指令為燒寫指令、加解密指令或檢索指令。
全文摘要
本發(fā)明公開了一種實(shí)現(xiàn)多個(gè)USB設(shè)備同時(shí)接收并處理數(shù)據(jù)的方法,屬于信息處理技術(shù)領(lǐng)域。本發(fā)明將與上位機(jī)相連的多個(gè)USB設(shè)備的設(shè)備地址設(shè)為一致,上位機(jī)發(fā)送一條特殊命令能夠同時(shí)被多個(gè)USB設(shè)備接收到,僅主設(shè)備返回響應(yīng),其他更改過(guò)設(shè)備地址的USB設(shè)備僅做相應(yīng)數(shù)據(jù)處理不返回響應(yīng)。本發(fā)明提供的方法可以提高下行數(shù)據(jù)效率,例如應(yīng)用于產(chǎn)品生產(chǎn)過(guò)程中提高燒寫數(shù)據(jù)的效率,或通過(guò)向多個(gè)USB設(shè)備同時(shí)下發(fā)檢索指令快速查找到數(shù)字證書。
文檔編號(hào)G06F13/38GK102722464SQ20121018180
公開日2012年10月10日 申請(qǐng)日期2012年6月4日 優(yōu)先權(quán)日2012年6月4日
發(fā)明者于華章, 陸舟 申請(qǐng)人:飛天誠(chéng)信科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1