亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

對(duì)ccid設(shè)備固件程序進(jìn)行二次開發(fā)的方法及裝置的制作方法

文檔序號(hào):6472217閱讀:355來源:國知局
專利名稱:對(duì)ccid設(shè)備固件程序進(jìn)行二次開發(fā)的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及固件開發(fā)領(lǐng)域,尤其涉及一種對(duì)CCID設(shè)備固件程序進(jìn)行二次開 發(fā)的方法及裝置。
背景技術(shù)
幾個(gè)國際級(jí)IT企業(yè)針對(duì)智能卡應(yīng)用方面的問題共同制定了 CCID (Chip/Smart Card Interface Devices,芯片/智能卡接口設(shè)備)接口標(biāo)準(zhǔn)。CCID 接口標(biāo)準(zhǔn)規(guī)定的CCID設(shè)備通過USB (Universal Serial Bus,通用串行總線)接 口收發(fā)符合CCID接口標(biāo)準(zhǔn)的數(shù)據(jù),從而使得設(shè)備與主機(jī)及其它嵌入式主機(jī)連接 通訊,同時(shí)設(shè)備通過符合IS07816標(biāo)準(zhǔn)協(xié)議的接口與智能卡通訊。由于CCID 接口標(biāo)準(zhǔn)的出現(xiàn),設(shè)備廠商可以輕松地開發(fā)使用符合CCID接口標(biāo)準(zhǔn)的設(shè)備。同 時(shí),CCID接口標(biāo)準(zhǔn)支持PC/SC (Personal Computer/Smart Card)接口調(diào)用,使 得廣大開發(fā)者可以方便的對(duì)智能卡或仿智能卡設(shè)備進(jìn)行開發(fā)操作。
上位機(jī)是指人可以直接發(fā)出操控命令的計(jì)算機(jī), 一般是PC,其屏幕上可以 顯示各種信號(hào)變化(比如液壓,水位,溫度等);下位機(jī)是指直接控制設(shè)備并獲 取設(shè)備狀態(tài)的計(jì)算機(jī), 一般是PLC (Programmable Logic Controller,可編程邏輯 控制器)/單片機(jī)之類的。上位機(jī)首先發(fā)出命令給下位機(jī),下位機(jī)再將此命令解 釋成相應(yīng)的時(shí)序信號(hào),進(jìn)而直接控制相應(yīng)設(shè)備;下位機(jī)不時(shí)地讀取設(shè)備的狀態(tài) 數(shù)據(jù)( 一般為模擬量)并將其轉(zhuǎn)化成數(shù)字信號(hào)反饋給上位機(jī)。 一般來說,下位 機(jī)具有更可靠的獨(dú)有通訊協(xié)議。
就目前的CCID設(shè)備來說,當(dāng)CCID設(shè)備出廠時(shí),其功能就已經(jīng)固定了,也 就是說,CCID設(shè)備本身具備什么樣的功能,用戶就只能使用這種功能。這樣, 在某些特殊場合,用戶希望執(zhí)行某些特殊功能基本上是不能實(shí)現(xiàn)的。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法及裝 置,以達(dá)到對(duì)CCID設(shè)備進(jìn)行功能擴(kuò)展的目的。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案
一種對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,包括 向上位機(jī)發(fā)送一標(biāo)識(shí)符,該標(biāo)識(shí)符表示本機(jī)為CCID i殳備; 接收上位機(jī)下發(fā)的數(shù)據(jù)包; 分析所述數(shù)據(jù)包的包頭是否為6BH;
如果所述數(shù)據(jù)包的包頭為6BH,則所述數(shù)據(jù)包為用于二次開發(fā)的數(shù)據(jù)包, 執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的操作;否則,所述數(shù)據(jù)包不是用于二 次開發(fā)的數(shù)據(jù)包,執(zhí)行標(biāo)準(zhǔn)CCID設(shè)備的操作。
一種對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置,包括
發(fā)送沖莫塊,用于向上位機(jī)發(fā)送一標(biāo)識(shí)符,該標(biāo)識(shí)符表示本才幾為CCID設(shè)備;
接收模塊,用于接收上位機(jī)下發(fā)的數(shù)據(jù)包;
分析模塊,用于分析所述數(shù)據(jù)包的包頭是否為6BH;
開發(fā)模塊,用于在所述數(shù)據(jù)包的包頭為6BH時(shí),執(zhí)行對(duì)CCID設(shè)備固件程 序進(jìn)行二次開發(fā)的操作。
本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法及裝置,接 收上位機(jī)下發(fā)的用于CCID設(shè)備固件程序二次開發(fā)的數(shù)據(jù)包,并根據(jù)所述二次開 發(fā)的數(shù)據(jù)包中攜帶的功能數(shù)據(jù)對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā);與現(xiàn)有技術(shù) 相比,本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法及裝置, 可以實(shí)現(xiàn)對(duì)CCID設(shè)備的功能進(jìn)一步擴(kuò)展,使得用戶對(duì)CCID設(shè)備的使用也不再 局限于其出廠時(shí)設(shè)定的基本功能。


圖1為本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法流程
圖2為本發(fā)明實(shí)施例一中的方法流程圖3為本發(fā)明實(shí)施例一中判斷二次開發(fā)的相關(guān)參數(shù)是否合法的方法流程圖; 圖4為本發(fā)明實(shí)施例一中對(duì)CCID設(shè)備進(jìn)行寫入操作的流程圖; 圖5為本發(fā)明實(shí)施例二中對(duì)CCID設(shè)備進(jìn)行寫入操作的流程圖;圖6為本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置示意
圖7為本發(fā)明實(shí)施例三中的裝置示意圖; 圖8為本發(fā)明實(shí)施例四中的裝置示意圖。
具體實(shí)施例方式
本發(fā)明的實(shí)施例提供一種對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法及裝 置。下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的 方法及裝置進(jìn)4于詳細(xì)描述。
如圖1所示,本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方 法,包括以下步驟
步驟ll、向上位機(jī)發(fā)送一標(biāo)識(shí)符,該標(biāo)識(shí)符表示本機(jī)為CCID設(shè)備; 步驟12、通過BulkOut端點(diǎn)接收上位機(jī)下發(fā)的數(shù)據(jù)包;
其中,該BulkOut端點(diǎn)為批量傳輸型端點(diǎn)。
步驟13、分析所述數(shù)據(jù)包的包頭是否為6BH;
步驟14、當(dāng)接收到的數(shù)據(jù)包的包頭(即第一個(gè)字節(jié))是6BH時(shí),則該數(shù)據(jù) 包是用于二次開發(fā)的數(shù)據(jù)包,執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的操作; 當(dāng)接收到的數(shù)據(jù)包的包頭是其它時(shí),則該數(shù)據(jù)包用于其它的標(biāo)準(zhǔn)CCID設(shè)備的操 作。
本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,CCID設(shè) 備通過BulkOut端點(diǎn)接收上位機(jī)下發(fā)數(shù)據(jù)包,使CCID設(shè)備可以接收到用于對(duì) CCID設(shè)備固件程序進(jìn)行二次開發(fā)的數(shù)據(jù)包,并根據(jù)所述二次開發(fā)的數(shù)據(jù)包中攜 帶的功能數(shù)據(jù)對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā),可以實(shí)現(xiàn)對(duì)CCID設(shè)備的功 能進(jìn)一步擴(kuò)展,使得用戶對(duì)CCID設(shè)備的使用也不再局限于其出廠時(shí)設(shè)定的基本 功能。
實(shí)施例一
如圖2所示,為本發(fā)明提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法的 一個(gè)優(yōu)選實(shí)施例。在進(jìn)行具體步驟之前,將用于對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的私有協(xié)
議集成到CCID設(shè)備固件程序中。
本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,具體包括 以下步驟
步驟21、在CCID設(shè)備上電的時(shí)候,向上位機(jī)發(fā)送一標(biāo)識(shí)符,該標(biāo)識(shí)符表 示本機(jī)為CCID設(shè)備,同時(shí),CCID設(shè)備對(duì)存儲(chǔ)區(qū)進(jìn)行劃分;
步驟22、 CCID設(shè)備通過BulkOut端點(diǎn)接收上位機(jī)下發(fā)的數(shù)據(jù)包,并將下發(fā) 的數(shù)據(jù)包存儲(chǔ)在CCID設(shè)備的存儲(chǔ)區(qū)中;
本實(shí)施例中,CCID設(shè)備接收到的數(shù)據(jù)包內(nèi)容是6BH OAH OOH OOH OOH OOH OIH OOH OOH OOH OIH 20H OOH OOH 05H OIH 02H 03H 04H 05H。其中,6BH 是數(shù)據(jù)包中的第 一數(shù)據(jù),也是該數(shù)據(jù)包的包頭;OAH OOH OOH OOH OOH 01H OOH OOH OOH為該數(shù)據(jù)包攜帶的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的相關(guān)參數(shù); OIH 20H OOH OOH 05H OIH 02H 03H 04H 05H為該數(shù)據(jù)包攜帶的用于CCID設(shè)備 二次開發(fā)的功能數(shù)據(jù)。
步驟23、讀取數(shù)據(jù)包中的數(shù)據(jù),并分析該凄t據(jù)包的包頭是否為6BH;如果 數(shù)據(jù)包中的包頭為6BH,則該數(shù)據(jù)包就是用于對(duì)CCID設(shè)備固件程序進(jìn)行二次 開發(fā)的數(shù)據(jù)包,此時(shí)進(jìn)行步驟24;否則,執(zhí)行標(biāo)準(zhǔn)CCID設(shè)備的操作;
步驟24、判斷上述數(shù)據(jù)包中攜帶的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的 相關(guān)參數(shù)是否合法;如果上述數(shù)據(jù)包中攜帶的對(duì)CCID設(shè)備固件程序進(jìn)行二次開 發(fā)的相關(guān)參數(shù)合法,則進(jìn)行步驟25,否則,返回才艮錯(cuò)信息;
其中,判斷上述對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的相關(guān)參數(shù)是否合法的 具體過程如圖3所示,包括
241 、判斷上述相關(guān)參數(shù)中攜帶的功能數(shù)據(jù)長度與上述數(shù)據(jù)包實(shí)際包含的功 能數(shù)據(jù)的長度是否一致;
在本發(fā)明實(shí)施例中,上述相關(guān)參數(shù)中攜帶的功能數(shù)據(jù)長度為OAH OOH OOH OOH,其中第一字節(jié)為最低有效位,而該數(shù)據(jù)包實(shí)際包含的功能數(shù)據(jù)是01H20H 00H00H05H01HO2H03H04H05H,長度為OAH,此時(shí)所述相關(guān)參數(shù)中攜帶的 功能數(shù)據(jù)長度與所述數(shù)據(jù)包實(shí)際包含的功能數(shù)據(jù)的長度一致,進(jìn)行步驟242;否則,返回報(bào)錯(cuò)信息;
242、 判斷上述相關(guān)參數(shù)中攜帶的接收上述數(shù)據(jù)包的卡槽編號(hào)是否在CCID 設(shè)備中可接收上述數(shù)據(jù)包的卡槽編號(hào)范圍內(nèi);
比如,CCID設(shè)備中可接收上述數(shù)據(jù)包的卡槽編號(hào)范圍為00H 03H,而本發(fā) 明實(shí)施例中,上述相關(guān)參數(shù)中攜帶的接收上述數(shù)據(jù)包的卡槽編號(hào)為00H,在CCID 設(shè)備中可接收上述數(shù)據(jù)包的卡槽編號(hào)范圍之內(nèi),此時(shí),進(jìn)行步驟243;否則,返 回報(bào)錯(cuò)信息。
243、 判斷上述相關(guān)參數(shù)中攜帶的命令序列號(hào)與CCID設(shè)備固件程序中定義 的命令序列號(hào)是否一致;
本發(fā)明實(shí)施例中,上述相關(guān)參數(shù)中攜帶的命令序列號(hào)為01H,而CCID設(shè)備 固件程序中記錄的本次需要接收的數(shù)據(jù)包是第2個(gè)數(shù)據(jù)包,即記錄的本次需要 接收的數(shù)據(jù)包的命令序列號(hào)為OIH,此時(shí)上述相關(guān)參數(shù)中攜帶的命令序列號(hào)與 CCID設(shè)備固件程序中定義的命令序列號(hào)一致,進(jìn)行步驟244;否則,返回報(bào)錯(cuò) 信息。
244、 判斷上述相關(guān)參數(shù)中攜帶的預(yù)設(shè)數(shù)據(jù)與CCID設(shè)備中存儲(chǔ)的預(yù)設(shè)數(shù)據(jù) 是否一致;
本發(fā)明實(shí)施例中,上述相關(guān)參數(shù)中攜帶的預(yù)設(shè)數(shù)據(jù)為00H 00H 00H,而CCID 設(shè)備中存儲(chǔ)的預(yù)設(shè)數(shù)據(jù)也為00H 00H 00H,上述相關(guān)參數(shù)中攜帶的預(yù)設(shè)數(shù)據(jù)與 CCID設(shè)備中存儲(chǔ)的預(yù)設(shè)數(shù)據(jù)一致;此時(shí)可以確定上述用于對(duì)CCID設(shè)備固件程 序進(jìn)行二次開發(fā)的相關(guān)參數(shù)合法,進(jìn)行步驟25;否則,返回報(bào)錯(cuò)信息。
步驟25、根據(jù)上述二次開發(fā)的數(shù)據(jù)包中的功能數(shù)據(jù)對(duì)CCID設(shè)備固件程序 進(jìn)行二次開發(fā)。
首先讀耳又上述數(shù)據(jù)包中的功能數(shù)據(jù)中的指定數(shù)椐(即功能數(shù)據(jù)中的第一數(shù) 據(jù)),該指定數(shù)據(jù)是用戶指定的對(duì)CCID設(shè)備固件程序進(jìn)行操作的動(dòng)作代碼;在 本發(fā)明實(shí)施例中,上述私有協(xié)議規(guī)定的動(dòng)作代碼范圍為01H 03H,如果上述指 定數(shù)據(jù)在所述動(dòng)作代碼范圍內(nèi),則認(rèn)為上述數(shù)據(jù)包中的功能數(shù)據(jù)是符合上述私 有協(xié)議規(guī)定的。
在CCID設(shè)備已預(yù)先對(duì)存儲(chǔ)區(qū)進(jìn)行劃分的情況下,如果所述指定數(shù)據(jù)為01H,代表寫數(shù)據(jù)到指定存儲(chǔ)區(qū),如圖4所示,需要進(jìn)行以下操作
S101 、判斷上述數(shù)據(jù)包中的功能數(shù)據(jù)中攜帶的指定存儲(chǔ)區(qū)的起始地址跟
CCID設(shè)備預(yù)設(shè)的存儲(chǔ)區(qū)起始地址是否一致;
本發(fā)明實(shí)施例中,上述功能數(shù)據(jù)中攜帶的指定存儲(chǔ)區(qū)的起始地址為20H
OOH,如果CCID設(shè)備預(yù)設(shè)的存儲(chǔ)區(qū)起始地址中有地址20H OOH,則進(jìn)行步驟
S102;否則,返回報(bào)錯(cuò)信息。
5102、 判斷上述數(shù)據(jù)包中的功能數(shù)據(jù)中攜帶的指定存儲(chǔ)區(qū)的長度是否小于 等于CCID設(shè)備預(yù)設(shè)的存儲(chǔ)區(qū)的長度;
本發(fā)明實(shí)施例中,上述功能數(shù)據(jù)中攜帶的指定存儲(chǔ)區(qū)的長度為00H 05H, 其中第一字節(jié)為最低有效位,如果CCID設(shè)備中與步驟SIOI中的起始地址相對(duì) 應(yīng)的存儲(chǔ)區(qū)的長度不小于00H 05H,則說明上述二次開發(fā)的數(shù)據(jù)包中的功能數(shù) 據(jù)中的指定存儲(chǔ)區(qū)屬于CCID設(shè)備預(yù)先劃分出的存儲(chǔ)區(qū),則進(jìn)行步驟S103;否 則,返回4艮4普信息。
5103、 將所述功能數(shù)據(jù)中的功能函數(shù)代碼寫入所述指定存儲(chǔ)區(qū),并置寫新 內(nèi)容標(biāo)志4立。
在本發(fā)明實(shí)施例中,上述功能數(shù)據(jù)中的功能函數(shù)代碼為01H 02H 03H 04H 05H,將其寫入到所述功能數(shù)據(jù)指定的起始地址為20H00H、長度為不小于OOH 05H的存4諸區(qū)中。
5104、 當(dāng)需要執(zhí)行新寫入的功能函數(shù)時(shí),調(diào)用上述新寫入指定存儲(chǔ)區(qū)的功 能函數(shù)代碼對(duì)應(yīng)的功能函數(shù),即執(zhí)行新寫入指定存儲(chǔ)區(qū)的功能函數(shù)代碼對(duì)應(yīng)的 功能。
如果所述指定數(shù)據(jù)為02H,代表執(zhí)行CCID設(shè)備中指定的功能函數(shù),則需要 進(jìn)行以下操作
5201、 判斷上述數(shù)據(jù)包中的功能數(shù)據(jù)中的指定存儲(chǔ)區(qū)是否為空;如果不為 空,則進(jìn)行步驟S202;否則,向上位機(jī)反饋一用于報(bào)錯(cuò)的信令。
5202、 執(zhí)行所述指定存儲(chǔ)區(qū)中存儲(chǔ)的功能函數(shù)代碼對(duì)應(yīng)的功能。 如果所述指定數(shù)據(jù)為03H,代表擦除指定存儲(chǔ)區(qū)內(nèi)的數(shù)據(jù)內(nèi)容,則需要進(jìn)
行以下操作S301、將上述數(shù)據(jù)包中的功能數(shù)據(jù)中的指定存儲(chǔ)區(qū)中的內(nèi)容置為全0或者 全F。
如果所述指定數(shù)據(jù)不是01H、 02H或者03H中的任一個(gè),則返回報(bào)錯(cuò)信息。 本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,CCID設(shè) 備通過Bulkout端點(diǎn)接收上位機(jī)下發(fā)的用于對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā) 的數(shù)據(jù)包,并根據(jù)所述二次開發(fā)的數(shù)據(jù)包中攜帶的功能數(shù)據(jù)對(duì)CCID設(shè)備固件程 序進(jìn)行二次開發(fā),將新功能函數(shù)代碼寫入所述新功能函數(shù)代碼預(yù)設(shè)的存儲(chǔ)空間 或者執(zhí)行新寫入的功能函數(shù)代碼的功能,從而實(shí)現(xiàn)對(duì)CCID設(shè)備的功能進(jìn)一步擴(kuò) 展,不僅充分利用了 CCID設(shè)備CPU中的剩余空間,而且使得用戶對(duì)CCID設(shè) 備的使用也不再局限于其出廠時(shí)設(shè)定的基本功能。 實(shí)施例二
所述功能函數(shù)代碼劃分存儲(chǔ)區(qū)的方法除了實(shí)施例一中描述的實(shí)現(xiàn)方式由 CCID設(shè)備在上電的時(shí)候?qū)Υ鎯?chǔ)區(qū)進(jìn)行劃分,還有另外一種實(shí)現(xiàn)方式在需要將 所述功能函數(shù)代碼寫入CCID設(shè)備的CPU剩余空間之前,根據(jù)接收到的數(shù)據(jù)包 中的功能數(shù)據(jù)中攜帶的存儲(chǔ)區(qū)起始地址以及需要寫入的功能函數(shù)代碼的長度來 劃分實(shí)際的存儲(chǔ)區(qū),這種劃分存儲(chǔ)區(qū)的方式稱為動(dòng)態(tài)劃分。
與實(shí)施例一相比,在動(dòng)態(tài)劃分存儲(chǔ)區(qū)的情況下,進(jìn)行步驟21時(shí),CCID設(shè) 備不再需要在上電的時(shí)候預(yù)先對(duì)存儲(chǔ)區(qū)進(jìn)行劃分;
而且上述根據(jù)二次開發(fā)的數(shù)據(jù)包中的功能數(shù)據(jù)對(duì)CCID設(shè)備固件程序進(jìn)行 二次開發(fā)的步驟(實(shí)施例一中步驟25)中,當(dāng)所述指定數(shù)據(jù)為OIH時(shí),如圖5 所示,需要進(jìn)行以下操作
S'lOl、根據(jù)所述二次開發(fā)的數(shù)據(jù)包中功能數(shù)據(jù)中攜帶的存儲(chǔ)區(qū)起始地址和 所述功能函數(shù)代碼的實(shí)際長度劃分出指定存儲(chǔ)區(qū);
S'102、將所述功能數(shù)據(jù)中的功能函數(shù)代碼寫入所述指定存儲(chǔ)區(qū)中,并置寫 新內(nèi)容標(biāo)志位;
S' 103 、向上位機(jī)上報(bào)所述指定存儲(chǔ)區(qū)的起始地址和結(jié)束地址; S'104、當(dāng)需要執(zhí)行新寫入的功能函數(shù)時(shí),調(diào)用上述新寫入指定存儲(chǔ)區(qū)的功 能函數(shù)代碼對(duì)應(yīng)的功能函數(shù),即執(zhí)行新寫入指定存儲(chǔ)區(qū)的功能函數(shù)代碼對(duì)應(yīng)的功能。
在動(dòng)態(tài)劃分存儲(chǔ)區(qū)的情況下,在實(shí)現(xiàn)對(duì)CCID設(shè)備進(jìn)行二次開發(fā)的方法的過 程中,其他步驟均與實(shí)施例一中相同,此處不再贅述。
本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,CCID設(shè) 備接收上位機(jī)下發(fā)的用于對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的數(shù)據(jù)包,并根據(jù) 所述二次開發(fā)的數(shù)據(jù)包中攜帶的功能數(shù)據(jù)對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā), 可以將新功能函數(shù)代碼寫入動(dòng)態(tài)地為所述新功能函數(shù)代碼劃分的存儲(chǔ)空間中或 者執(zhí)行新寫入的功能函數(shù)代碼的功能,從而實(shí)現(xiàn)對(duì)CCID設(shè)備的功能進(jìn)一步擴(kuò) 展,不僅充分利用了 CCID設(shè)備CPU中的剩余空間,而且使得用戶對(duì)CCID設(shè) 備的使用也不再局限于其出廠時(shí)設(shè)定的基本功能。
為了更好地實(shí)現(xiàn)上述對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,本發(fā)明還 提供了 一種對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置。
如圖6所示,本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝 置,包括發(fā)送模塊61、接收模塊62、分析模塊63以及開發(fā)模塊64;其中,
發(fā)送模塊61向上位機(jī)發(fā)送一標(biāo)識(shí)符,該標(biāo)識(shí)符表示本機(jī)為CCID設(shè)備;然 后,接收模塊62接收上位機(jī)下發(fā)的數(shù)據(jù)包,然后分析模塊63分析所述數(shù)據(jù)包 的包頭是否為6BH;在所述數(shù)據(jù)包的包頭為6BH時(shí),開發(fā)模塊64執(zhí)行對(duì)CCID 設(shè)備固件程序進(jìn)行二次開發(fā)的操作。
本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置,CCID設(shè) 備通過Bulkout端點(diǎn)接收上位機(jī)下發(fā)的用于對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā) 的數(shù)據(jù)包,并根據(jù)所述二次開發(fā)的數(shù)據(jù)包中攜帶的功能數(shù)據(jù)對(duì)CCID設(shè)備固件程 序進(jìn)行二次開發(fā),可以實(shí)現(xiàn)對(duì)CCID設(shè)備的功能進(jìn)一步擴(kuò)展,使得用戶對(duì)CCID 設(shè)備固件程序的使用也不再局限于其出廠時(shí)設(shè)定的基本功能。
實(shí)施例三
如圖7所示,為本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的 裝置的一個(gè)優(yōu)選實(shí)施例,其具體包括發(fā)送模塊71、接收模塊72、分析模塊73、 開發(fā)模塊74、第一判斷模塊75以及第二判斷模塊76;其中,
在CCID設(shè)備上電時(shí),發(fā)送模塊71向上位機(jī)發(fā)送一標(biāo)識(shí)符,該標(biāo)識(shí)符表示本機(jī)為CCID設(shè)備;接收模塊72接收到上位機(jī)下發(fā)的數(shù)據(jù)包(6BH OAH OOH OOH OOH OOH 01H OOH OOH OOH 01H 20H OOH OOH 05H 01H 02H 03H 04H 05H ),然后 分析模塊73分析所述數(shù)據(jù)包的包頭是否為6BH;在所述數(shù)據(jù)包的包頭為6BH 時(shí),第二判斷模塊76對(duì)所述二次開發(fā)的數(shù)據(jù)包是否合法進(jìn)行判斷;如果所述二 次開發(fā)的數(shù)據(jù)包合法,則第一判斷模塊75判斷該二次開發(fā)的數(shù)據(jù)包中的功能數(shù) 據(jù)中的動(dòng)作代碼是否在用于對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的私有協(xié)議規(guī) 定的范圍內(nèi);在所述二次開發(fā)的數(shù)據(jù)包中的功能數(shù)據(jù)中的動(dòng)作代碼是在所述私 有協(xié)議規(guī)定的范圍內(nèi)時(shí),開發(fā)模塊74根據(jù)該二次開發(fā)的數(shù)據(jù)包中的功能數(shù)據(jù)對(duì) CCID設(shè)備固件程序進(jìn)行二次開發(fā)。
其中,所述第二判斷模塊76進(jìn)一步包括
第一判斷單元,用于判斷所述數(shù)據(jù)包的第二數(shù)據(jù)與數(shù)據(jù)包中功能數(shù)據(jù)的長 度是否一致;
第二判斷單元,用于在所述第一判斷單元結(jié)果為是時(shí),判斷所述數(shù)據(jù)包的 第三數(shù)據(jù)與CCID設(shè)備中接收所述數(shù)據(jù)包的卡槽編號(hào)是否一致;
第三判斷單元,用于在所述第二判斷單元結(jié)果為是時(shí),判斷所述數(shù)據(jù)包的 第四數(shù)據(jù)與CCID設(shè)備固件程序中定義的命令序列號(hào)是否一致;
第四判斷單元,用于在所述第三判斷單元結(jié)果為是時(shí),判斷所迷數(shù)據(jù)包的 第五數(shù)據(jù)跟預(yù)設(shè)數(shù)據(jù)是否 一致
如果所述第四判斷單元結(jié)果為是,則所述二次開發(fā)的數(shù)據(jù)包是合法的。
其中,所述第二數(shù)據(jù)為表示數(shù)據(jù)包中的功能數(shù)據(jù)長度的數(shù)據(jù);
所述第三數(shù)據(jù)為表示接收所述數(shù)據(jù)包的卡槽編號(hào)的數(shù)據(jù);
所述第四數(shù)據(jù)為表示所述數(shù)據(jù)包的命令序列號(hào)的數(shù)據(jù);
所述第五數(shù)據(jù)為表示所述數(shù)據(jù)包中預(yù)設(shè)數(shù)據(jù)。
在CCID設(shè)備在上電的時(shí)候預(yù)先對(duì)存儲(chǔ)區(qū)進(jìn)行劃分的情況下,如果所述數(shù)據(jù) 包中攜帶的動(dòng)作代碼為01H,即所述數(shù)據(jù)包中攜帶的功能數(shù)據(jù)表示的操作為在 CCID設(shè)備寫入功能函數(shù)代碼,則所述開發(fā)模塊74進(jìn)一步包括
第五判斷單元741,用于判斷所述二次開發(fā)的數(shù)據(jù)包中的功能數(shù)據(jù)中的指定 存儲(chǔ)區(qū)是否屬于CCID設(shè)備預(yù)先劃分出的存儲(chǔ)區(qū);寫入單元742,用于在所述存儲(chǔ)區(qū)屬于CCID設(shè)備預(yù)先劃分出的存儲(chǔ)區(qū)時(shí), 將所述功能數(shù)據(jù)中的功能函數(shù)代碼寫入所述指定存儲(chǔ)區(qū),并置寫新內(nèi)容標(biāo)志位。
如果所述數(shù)據(jù)包中攜帶的動(dòng)作代碼為02H,即所述數(shù)椐包中攜帶的功能數(shù) 據(jù)表示的操作為執(zhí)行CCID設(shè)備中指定的功能,則所述開發(fā)模塊74進(jìn)一步包括
第六判斷單元743,用于判斷所述二次開發(fā)的數(shù)據(jù)包中的功能數(shù)據(jù)中的指定 存儲(chǔ)區(qū)是否為空
執(zhí)行單元744,用于在所述指定存儲(chǔ)區(qū)不為空時(shí),執(zhí)行所述指定存儲(chǔ)區(qū)中存 儲(chǔ)的功能函IW氣碼對(duì)應(yīng)的功能;
報(bào)錯(cuò)單元745,用于在所述指定存儲(chǔ)區(qū)為空時(shí),向上位機(jī)反饋一用于報(bào)^l普的 信令。
如果所述數(shù)據(jù)包中攜帶的動(dòng)作代碼為03H,即所述數(shù)據(jù)包中攜帶的功能數(shù) 據(jù)表示的操作為擦除CCID設(shè)備中指定存儲(chǔ)區(qū)的內(nèi)容,則所述開發(fā)模塊74進(jìn)一 步包括
擦除單元746,用于將所述二次開發(fā)的數(shù)據(jù)包中的功能數(shù)據(jù)中的指定存儲(chǔ)區(qū) 中的內(nèi)容置為全O或者全F。
由于上述在CCID設(shè)備寫入功能函數(shù)代碼、執(zhí)行CCID設(shè)備中指定的功能、 擦除CCID設(shè)備中指定存儲(chǔ)區(qū)的內(nèi)容這三種動(dòng)作中的兩種或者三種可以連貫進(jìn) 行,因此所述開發(fā)模塊74還可以同時(shí)包括上述三種動(dòng)作中的兩種或者三種對(duì)應(yīng) 的功能單元;如圖7所示,即為所述開發(fā)模塊74同時(shí)包含上述三種動(dòng)作對(duì)應(yīng)的 功能單元情況下,對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置示意圖。
本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置上位機(jī)下 發(fā)的用于對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的數(shù)據(jù)包,并根據(jù)所述二次開發(fā)的 數(shù)據(jù)包中攜帶的功能數(shù)據(jù)對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā),將新功能函數(shù)代 碼寫入所述新功能函數(shù)代碼預(yù)設(shè)的存儲(chǔ)空間或者執(zhí)行新寫入的功能函數(shù)代碼的 功能,從而實(shí)現(xiàn)對(duì)CCID設(shè)備的功能進(jìn)一步擴(kuò)展,不僅充分利用了 CCID設(shè)備 CPU中的剩余空間,而且使得用戶對(duì)CCID設(shè)備的使用也不再局限于其出廠時(shí) 設(shè)定的基本功能。
實(shí)施例四CCID設(shè)備在需要將所述功能函數(shù)代碼寫入CCID設(shè)備的CPU剩余空間之
前,根據(jù)所述二次開發(fā)的數(shù)據(jù)包中功能數(shù)據(jù)中攜帶的存儲(chǔ)區(qū)起始地址以及需要 寫入的功能函數(shù)代碼的長度來劃分實(shí)際的存儲(chǔ)區(qū),即動(dòng)態(tài)地為需要寫入的功能 函數(shù)代碼劃分存儲(chǔ)區(qū)的情況下,如果所述數(shù)據(jù)包中攜帶的動(dòng)作代碼為om,即
所述數(shù)據(jù)包中攜帶的功能數(shù)據(jù)表示的操作為在CCID設(shè)備寫入功能函數(shù)代碼,則 所述開發(fā)模塊74進(jìn)一步包括
劃分單元747,用于根據(jù)所述二次開發(fā)的數(shù)據(jù)包中功能數(shù)據(jù)中攜帶的存儲(chǔ)區(qū) 起始地址和所述功能函數(shù)代碼的實(shí)際長度劃分出指定存儲(chǔ)區(qū);
寫入單元748,用于將所述功能數(shù)據(jù)中的功能函數(shù)代碼寫入所述指定存儲(chǔ)區(qū) 中,并置寫新內(nèi)容標(biāo)志位;
上報(bào)單元749,用于向上位機(jī)上報(bào)所述指定存儲(chǔ)區(qū)的起始地址和結(jié)束地址。
如果所述凄t據(jù)包中攜帶的動(dòng)作代碼為02H或者03H,即所述數(shù)據(jù)包中攜帶 的功能數(shù)據(jù)表示的操作為執(zhí)行CCID設(shè)備中指定的功能或者擦除CCID設(shè)備中指 定存儲(chǔ)區(qū)的內(nèi)容時(shí),所述開發(fā);f莫塊74的配置與實(shí)施例三中相同,此處不再贅述。
由于上述在CCID設(shè)備寫入功能函數(shù)代碼、執(zhí)行CCID設(shè)備中指定的功能、 擦除CCID設(shè)備中指定存儲(chǔ)區(qū)的內(nèi)容這三種動(dòng)作中的兩種或者三種可以連貫進(jìn) 行,因此所述開發(fā)^^莫塊74還可以同時(shí)包括上述三種動(dòng)作中的兩種或者三種對(duì)應(yīng) 的功能單元。
如圖8所示,即為所述開發(fā)模塊74同時(shí)包含上述三種動(dòng)作對(duì)應(yīng)的功能單元 情況下,對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置示意圖;圖中所示的其他功 能模塊均與實(shí)施例三保持一致,此處不再贅述。
本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備進(jìn)行二次開發(fā)的裝置,上位機(jī)下發(fā)的用于 CCID設(shè)備固件程序二次開發(fā)的數(shù)據(jù)包,并根據(jù)所述二次開發(fā)的數(shù)據(jù)包中攜帶的 功能數(shù)據(jù)對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā),可以將新功能函數(shù)代碼寫入動(dòng)態(tài) 地為所述新功能函數(shù)代碼劃分的存儲(chǔ)空間中或者執(zhí)行新寫入的功能函數(shù)代碼的 功能,從而實(shí)現(xiàn)對(duì)CCID設(shè)備的功能進(jìn)一步擴(kuò)展,不僅充分利用了 CCID設(shè)備 CPU中的剩余空間,而且使得用戶對(duì)CCID設(shè)備的使用也不再局限于其出廠時(shí) 設(shè)定的基本功能。以上所述,僅為本發(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、一種對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其特征在于,包括向上位機(jī)發(fā)送一標(biāo)識(shí)符,該標(biāo)識(shí)符表示本機(jī)為CCID設(shè)備;接收上位機(jī)下發(fā)的數(shù)據(jù)包;分析所述數(shù)據(jù)包的包頭是否為6BH;如果所述數(shù)據(jù)包的包頭為6BH,則所述數(shù)據(jù)包為用于二次開發(fā)的數(shù)據(jù)包,執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的操作;否則,所述數(shù)據(jù)包不是用于二次開發(fā)的數(shù)據(jù)包,執(zhí)行標(biāo)準(zhǔn)CCID設(shè)備的操作。
2、 根據(jù)權(quán)利要求1所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其發(fā)的數(shù)據(jù)包。
3、 根據(jù)權(quán)利要求1所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其 特征在于,在所述執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的操作之前,還包括判斷所述數(shù)據(jù)包中的功能數(shù)據(jù)中的動(dòng)作代碼是否在用于對(duì)CCID設(shè)備固件 程序進(jìn)行二次開發(fā)的私有協(xié)議規(guī)定的范圍內(nèi);所述執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的操作為如果所述數(shù)據(jù)包中 的功能數(shù)據(jù)中的動(dòng)作代碼在用于對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的私有協(xié) 議規(guī)定的范圍內(nèi),則根據(jù)該數(shù)據(jù)包中的功能數(shù)據(jù)執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行 二次開發(fā)的操作;否則,返回報(bào)錯(cuò)信息。
4、 根據(jù)權(quán)利要求3所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其 特征在于,所述用于對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的私有協(xié)議是預(yù)先集成 到所述CCID設(shè)備固件程序中的。
5、 根據(jù)權(quán)利要求3所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其 特征在于,在判斷所述數(shù)據(jù)包中的功能數(shù)據(jù)中的動(dòng)作代碼是否在用于對(duì)CCID設(shè) 備固件程序進(jìn)行二次開發(fā)的私有協(xié)議規(guī)定的范圍內(nèi)之前,該方法還包括判斷所述數(shù)據(jù)包是否合法;所述判斷所述數(shù)據(jù)包中的功能數(shù)據(jù)中的動(dòng)作代碼是否在用于對(duì)CCID設(shè)備 固件程序進(jìn)行二次開發(fā)的私有協(xié)議規(guī)定的范圍內(nèi)為在所述數(shù)據(jù)包合法時(shí),判斷所述數(shù)據(jù)包中的功能數(shù)據(jù)中的動(dòng)作代碼是否在用于對(duì)CCID設(shè)備固件程序進(jìn) 行二次開發(fā)的私有協(xié)議規(guī)定的范圍內(nèi)。
6、 根據(jù)權(quán)利要求5所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其 特征在于,所述判斷所述lt據(jù)包是否合法,具體為判斷所述數(shù)據(jù)包中的第二數(shù)據(jù)與數(shù)據(jù)包中的功能數(shù)據(jù)的長度是否一致;如果所述數(shù)據(jù)包中的第二數(shù)據(jù)與數(shù)據(jù)包中的功能數(shù)據(jù)的長度一致,則判斷 所述數(shù)據(jù)包中的第三數(shù)據(jù)與CCID設(shè)備中接收所述數(shù)據(jù)包的卡槽編號(hào)是否一致; 否則,返回報(bào)錯(cuò)信息;如果所述數(shù)據(jù)包中的第三數(shù)據(jù)與CCID設(shè)備中接收所述數(shù)據(jù)包的卡槽編號(hào) 一致,則判斷所述數(shù)據(jù)包中的第四數(shù)據(jù)與CCID設(shè)備固件程序中定義的命令序列 號(hào)是否一致;否則,返回報(bào)錯(cuò)信息;如果所述數(shù)據(jù)包中的第四數(shù)據(jù)與CCID設(shè)備固件程序中定義的命令序列號(hào) 一致,則判斷所述數(shù)據(jù)包中的第五數(shù)據(jù)跟預(yù)設(shè)數(shù)據(jù)是否一致;否則,返回報(bào)錯(cuò) 信息;如果所述數(shù)據(jù)包中的第五數(shù)據(jù)與所述預(yù)設(shè)數(shù)據(jù)一致,則所述數(shù)據(jù)包是合法 的;否則,返回報(bào)錯(cuò)信息。
7、 根據(jù)權(quán)利要求6所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其 特征在于,所述第二數(shù)據(jù)為表示數(shù)據(jù)包中的功能數(shù)據(jù)長度的數(shù)據(jù); 所述第三數(shù)據(jù)為表示接收所述數(shù)據(jù)包的卡槽編號(hào)的數(shù)據(jù); 所述第四數(shù)據(jù)為表示所述數(shù)據(jù)包的命令序列號(hào)的數(shù)據(jù); 所述第五數(shù)據(jù)為表示所述數(shù)據(jù)包中的預(yù)設(shè)數(shù)據(jù)。
8、 根據(jù)權(quán)利要求3所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其 特征在于,若所述動(dòng)作代碼表示的操作為在CCID設(shè)備寫入功能函數(shù)代碼,則所 述執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的操作包括判斷所述數(shù)據(jù)包中的功能數(shù)據(jù)中的指定存儲(chǔ)區(qū)是否屬于CCID設(shè)備預(yù)先劃 分出的存儲(chǔ)區(qū);如果所述存儲(chǔ)區(qū)屬于CCID設(shè)備預(yù)先劃分出的存儲(chǔ)區(qū),則將所述功能數(shù)據(jù)中的功能函數(shù)代碼寫入所述指定存儲(chǔ)區(qū),并置寫新內(nèi)容標(biāo)志位;否則,返回報(bào)錯(cuò) 信息。
9、 根據(jù)權(quán)利要求3所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其 特征在于,若所述動(dòng)作代碼表示的操作為在CCID設(shè)備寫入功能函數(shù)代碼,則所 述執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的操作包括根據(jù)所述數(shù)據(jù)包中的功能數(shù)據(jù)中的存儲(chǔ)區(qū)起始地址和所述功能函數(shù)代碼的 實(shí)際長度劃分出指定存儲(chǔ)區(qū);將所述功能數(shù)據(jù)中的功能函數(shù)代碼寫入所述指定存儲(chǔ)區(qū)中,并置寫新內(nèi)容 標(biāo)志位。
10、 根據(jù)權(quán)利要求9所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其 特征在于,該方法還包括在將所述功能數(shù)據(jù)中的功能函數(shù)代碼寫入所述指定存儲(chǔ)區(qū)后,向上位機(jī)上 報(bào)所述指定存儲(chǔ)區(qū)的起始地址和結(jié)束地址。
11、 根據(jù)權(quán)利要求3所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其 特征在于,若所述動(dòng)作代碼表示的操作為執(zhí)行CCID設(shè)備中指定的功能函數(shù),則 所述執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的操作包括判斷所述數(shù)據(jù)包中的功能數(shù)據(jù)中的指定存儲(chǔ)區(qū)是否為空 如果所述指定存儲(chǔ)區(qū)不為空,則執(zhí)行所述指定存儲(chǔ)區(qū)中存儲(chǔ)的功能函數(shù)代碼對(duì)應(yīng)的功能函數(shù);如果所述指定存儲(chǔ)區(qū)為空,則向上位機(jī)反饋一用于報(bào)錯(cuò)的信令。
12、 根據(jù)權(quán)利要求3所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,其 特征在于,若所述動(dòng)作代碼表示的操作為擦除CCID設(shè)備中指定存儲(chǔ)區(qū)的內(nèi)容, 則所述執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的操作包括將所述數(shù)據(jù)包中的功能數(shù)據(jù)中的指定存儲(chǔ)區(qū)中的內(nèi)容置為全0或者全F。
13、 一種對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置,其特征在于,包括 發(fā)送模塊,用于向上位機(jī)發(fā)送一標(biāo)識(shí)符,該標(biāo)識(shí)符表示本機(jī)為CCID設(shè)備; 接收模塊,用于接收上位機(jī)下發(fā)的數(shù)據(jù)包;分析模塊,用于分析所述數(shù)據(jù)包的包頭是否為6BH;開發(fā)模塊,用于在所述數(shù)據(jù)包的包頭為6BH時(shí),執(zhí)行對(duì)CCID設(shè)備固件程 序進(jìn)行二次開發(fā)的操作。
14、 根據(jù)權(quán)利要求13所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置, 其特征在于,所述接收模塊用于通過Bulkout端點(diǎn)接收所述上位機(jī)下發(fā)的數(shù)據(jù)包。
15、 根據(jù)權(quán)利要求13所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置, 其特征在于,還包括第一判斷模塊,用于在所述分析模塊的結(jié)果為是時(shí),判斷所述數(shù)據(jù)包中的 功能數(shù)據(jù)中的動(dòng)作代碼是否在用于對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的私有 協(xié)議規(guī)定的范圍內(nèi);所述開發(fā)模塊在當(dāng)所述第 一判斷模塊判斷的結(jié)果為是時(shí),執(zhí)行對(duì)CCID設(shè)備 固件程序進(jìn)行二次開發(fā)的操作。
16、 根據(jù)權(quán)利要求15所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置, 其特征在于,還包括第二判斷模塊,用于在所述分析模塊的結(jié)果為是時(shí),判斷所述數(shù)據(jù)包是否 合法;且,所述第一判斷模塊,在所述第二判斷模塊判斷所述數(shù)據(jù)包合法時(shí),判斷該 數(shù)據(jù)包中的功能數(shù)據(jù)中的動(dòng)作代碼是否在用于對(duì)CCID設(shè)備固件程序進(jìn)行二次 開發(fā)的私有協(xié)議規(guī)定的范圍內(nèi)。
17、 根據(jù)權(quán)利要求16所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置, 其特征在于,所述第二判斷模塊進(jìn)一步包括第一判斷單元,用于判斷所述數(shù)據(jù)包中的第二數(shù)據(jù)與數(shù)據(jù)包中的功能數(shù)據(jù) 的長度是否一致;第二判斷單元,用于在所述第一判斷單元結(jié)果為是時(shí),判斷所述數(shù)據(jù)包中 的第三數(shù)據(jù)與CCID設(shè)備中接收所述數(shù)據(jù)包的卡槽編號(hào)是否一致;第三判斷單元,用于在所述第二判斷單元結(jié)果為是時(shí),判斷所述數(shù)據(jù)包中 的第四數(shù)據(jù)與CCID設(shè)備固件程序中定義的命令序列號(hào)是否一致;第四判斷單元,用于在所述第三判斷單元結(jié)果為是時(shí),判斷所述數(shù)據(jù)包中的第五數(shù)據(jù)是否為預(yù)設(shè)數(shù)據(jù);如果所述第四判斷單元結(jié)果為是,則所述數(shù)據(jù)包是合法的。
18、 根據(jù)權(quán)利要求17所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置, 其特征在于,所述第二數(shù)據(jù)為表示數(shù)據(jù)包中的功能數(shù)據(jù)長度的數(shù)據(jù); 所述第三數(shù)據(jù)為表示接收所述數(shù)據(jù)包的卡槽編號(hào)的數(shù)據(jù); 所述第四數(shù)據(jù)為表示所述數(shù)據(jù)包的命令序列號(hào)的數(shù)據(jù); 所述第五數(shù)據(jù)為表示所述數(shù)據(jù)包中的預(yù)設(shè)數(shù)據(jù)。
19、 根據(jù)權(quán)利要求15所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置, 其特征在于,若所述動(dòng)作代碼表示的操作為在CCID設(shè)備寫入功能函數(shù)代碼,則 所述開發(fā)模塊包括判斷單元,用于判斷所述數(shù)據(jù)包中的功能數(shù)據(jù)中的指定存儲(chǔ)區(qū)是否屬于 CCID設(shè)備預(yù)先劃分出的存儲(chǔ)區(qū);寫入單元,用于在所述存儲(chǔ)區(qū)屬于CCID設(shè)備預(yù)先劃分出的存儲(chǔ)區(qū)時(shí),將所 述功能數(shù)據(jù)中的功能函數(shù)代碼寫入所述指定存儲(chǔ)區(qū),并置寫新內(nèi)容標(biāo)志位。
20、 根據(jù)權(quán)利要求15所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置, 其特征在于,若所述動(dòng)作代碼表示的操作為在CCID設(shè)備寫入功能函數(shù)代碼,則 所述開發(fā)模塊包括劃分單元,用于根據(jù)所述數(shù)據(jù)包中的功能數(shù)據(jù)中的存儲(chǔ)區(qū)起始地址和所述 功能函數(shù)代碼的實(shí)際長度劃分出指定存儲(chǔ)區(qū);寫入單元,用于將所述功能數(shù)據(jù)中的功能函數(shù)代碼寫入所述指定存儲(chǔ)區(qū)中, 并置寫新內(nèi)容標(biāo)志位。
21、 根據(jù)權(quán)利要求20所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置, 其特征在于,所述開發(fā)模塊還包括上報(bào)單元,用于在所述寫入單元將所述功能數(shù)據(jù)中的功能函數(shù)代碼寫入所 述指定存儲(chǔ)區(qū)后,向上位機(jī)上報(bào)所述指定存儲(chǔ)區(qū)的起始地址和結(jié)束地址。
22、 根據(jù)權(quán)利要求15所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置, 其特征在于,若所述動(dòng)作代碼表示的操作為執(zhí)行CCID設(shè)備中指定的功能函數(shù),則所述開發(fā)模塊包括判斷單元,用于判斷所述數(shù)據(jù)包中的功能數(shù)據(jù)中的指定存儲(chǔ)區(qū)是否為空 執(zhí)行單元,用于在所述指定存儲(chǔ)區(qū)不為空時(shí),執(zhí)行所述指定存儲(chǔ)區(qū)中存儲(chǔ)的功能函數(shù)代碼對(duì)應(yīng)的功能函#:;報(bào)錯(cuò)單元,用于在所述指定存儲(chǔ)區(qū)為空時(shí),向上位機(jī)反饋一用于報(bào)錯(cuò)的信令。
23、根據(jù)權(quán)利要求15所述的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的裝置, 其特征在于,若所述動(dòng)作代碼表示的操作為擦除CCID設(shè)備中指定存儲(chǔ)區(qū)的內(nèi) 容,則所述開發(fā)模塊包括擦除單元,用于將所述數(shù)據(jù)包中的功能數(shù)據(jù)中的指定存儲(chǔ)區(qū)中的內(nèi)容置為 全0或者全F。
全文摘要
本發(fā)明實(shí)施例公開了一種對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法及裝置,涉及固件開發(fā)領(lǐng)域,用于對(duì)CCID設(shè)備進(jìn)行功能擴(kuò)展。本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法,包括向上位機(jī)發(fā)送一標(biāo)識(shí)符,該標(biāo)識(shí)符表示本機(jī)為CCID設(shè)備;接收上位機(jī)下發(fā)的數(shù)據(jù)包;分析所述數(shù)據(jù)包的包頭是否為6BH;如果所述數(shù)據(jù)包的包頭為6BH,則所述數(shù)據(jù)包為用于二次開發(fā)的數(shù)據(jù)包,執(zhí)行對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的操作;否則,執(zhí)行標(biāo)準(zhǔn)CCID設(shè)備的操作。本發(fā)明實(shí)施例提供的對(duì)CCID設(shè)備固件程序進(jìn)行二次開發(fā)的方法及裝置適用于對(duì)CCID設(shè)備進(jìn)行功能擴(kuò)展。
文檔編號(hào)G06K7/00GK101447015SQ20081024754
公開日2009年6月3日 申請日期2008年12月30日 優(yōu)先權(quán)日2008年12月30日
發(fā)明者于華章, 舟 陸 申請人:北京飛天誠信科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1