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

一種檢測非接觸式cpu卡片離開射頻場的方法

文檔序號:6370524閱讀:386來源:國知局
專利名稱:一種檢測非接觸式cpu卡片離開射頻場的方法
技術(shù)領(lǐng)域
本發(fā)明涉及智能卡領(lǐng)域,涉及到一種檢測非接觸式CPU卡片離開射頻場的方法。
背景技術(shù)
非接觸式卡又稱射頻卡,由IC芯片、感應(yīng)天線組成,封裝在一個標準的PVC卡片內(nèi),芯片及天線無任何外露部分。是世界上最近幾年發(fā)展起來的一項新技木,它成功的將射頻識別技術(shù)和IC卡讀寫器技術(shù)結(jié)合起來,結(jié)束了無源(卡中無電源)和免接觸這ー難題,是電子器件領(lǐng)域的一大突破。卡片在一定距離范圍(通常為5 — IOmm)靠近讀寫器表面,通過無線電波的傳遞來完成數(shù)據(jù)的讀寫操作。
射頻識別利用無線射頻方式在讀卡器和非接觸式CPU卡片之間進行非接觸雙向傳輸數(shù)據(jù),以達到目標識別和數(shù)據(jù)交換的目的。射頻識別按應(yīng)用頻率的不同分為低頻(LF)、 高頻(HF)、超高頻(UHF),相對應(yīng)的代表性頻率分別為低頻135KHz以下、高頻13. 56MHz、超高頻860Μ 960ΜΗζ ;非接觸式CPU卡片內(nèi)集成電路中包括中央處理器(CPU)、只讀存儲器(ROM)、隨機存取存儲器(RAM)、電可擦除可編程只讀存儲器(EEPROM)以及片內(nèi)操作系統(tǒng)COS等主要部分,猶如一臺超小型電腦。
檢測非接觸式CPU卡片的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題尋卡激活以后,在卡片與上位機之間進行數(shù)據(jù)交互的間隙,無法實時地對卡片是否在射頻場進行檢測。通常的方法是重新進行尋卡操作,但是這樣會干擾到卡片原來的操作狀態(tài)。

發(fā)明內(nèi)容
為解決現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供了ー種在不影響非接觸式CPU卡片原先操作狀態(tài)的條件下,實時檢測非接觸式CPU卡片是否離開射頻場的方法。
一種檢測非接觸式CPU卡片離開射頻場的方法,包括
步驟A :讀卡器獲取指令,并判斷所述指令是否為有效指令,是則執(zhí)行步驟B,否則執(zhí)行步驟C ;
步驟B :所述讀卡器判斷所述有效指令的類型,
如是通知尋卡指令,則執(zhí)行步驟D ;
如是APDU指令,則將所述APDU指令發(fā)送給卡片,并將卡片返回的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ;
如是擴展指令,則根據(jù)所述擴展指令進行操作,并將操作結(jié)果以USB中斷管道方式發(fā)送給上位機,返回步驟A ;
步驟C :所述讀卡器判斷卡片在射頻場的標志是否置位,是則執(zhí)行步驟E,否則執(zhí)行步驟D;
步驟D :所述讀卡器向卡片發(fā)送尋卡指令,并判斷是否接收到卡片返回的尋卡響應(yīng),是則將卡片在射頻場的標志置位,并將卡片在射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A;
步驟E :所述讀卡器向卡片發(fā)送檢測指令,并判斷是否成功接收卡片返回的檢測響應(yīng),是則保存所述檢測響應(yīng),執(zhí)行步驟F,否則執(zhí)行步驟G ;
步驟F :所述讀卡器將卡片在射頻場的標志置位,并將卡片在射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ;
步驟G :所述讀卡器將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A。
其中,所述將卡片在射頻場的響應(yīng)以USB中斷管道方式通知上位機,具體包括
判斷記錄的卡片狀態(tài)是否為卡片在射頻場,是則返回步驟A,否則用所述卡片在射頻場更新所述記錄的卡片狀態(tài),返回步驟A ;
所述將卡片離開射頻場的響應(yīng)以USB中斷管道方式通知上位機,具體包括
判斷記錄的卡片狀態(tài)是否為卡片離開射頻場,是則返回步驟A,否則用所述卡片離開射頻場更新所述記錄的卡片狀態(tài),返回步驟A。
其中,所述判斷所述指令是否為有效指令,具體包括
所述讀卡器接收從緩沖區(qū)中以中斷方式發(fā)送的指令,如所述指令的第一字節(jié)與預設(shè)字符相符,則接收到有效指令,否則未接收到有效指令。
其中,所述步驟A之前包括所述讀卡器上電進行初始化,打開通信中斷使能;
所述方法還包括當所述讀卡器檢測到通信中斷時進入通信中斷處理,包括
步驟SI :所述讀卡器關(guān)閉通信中斷使能,清除通信中斷標志;
步驟S2 :所述讀卡器接收上位機下發(fā)的指令,并判斷是否為有效指令,是則將所述指令的標志置位,打開所述通信中斷使能并退出通信中斷處理;否則打開所述通信中斷使能并退出通信中斷處理;
所述步驟A具體包括所述讀卡器判斷所述指令的標志是否置位,如置位則將所述指令的標志復位,順序執(zhí)行步驟B,如未置位則執(zhí)行步驟C。
其中,所述步驟S2中判斷是否為有效指令,具體包括
判斷所述指令的第一字節(jié)是否與預設(shè)字符相符,是則接收到有效指令,否則未接收到有效指令。
其中,所述步驟E中所述讀卡器向卡片發(fā)送檢測指令,具體包括
如果所述讀卡器是第一次發(fā)送檢測指令,則所述讀卡器向卡片發(fā)送第一預設(shè)字符串;如果所述讀卡器不是第一次發(fā)送檢測指令,則所述讀卡器根據(jù)所述檢測響應(yīng)確定將要發(fā)送的檢測指令,如所述檢測響應(yīng)最后一個比特位的值為O,則所述讀卡器向卡片發(fā)送所述第一預設(shè)字符串;如所述檢測響應(yīng)最后一個比特位的值為1,則所述讀卡器向卡片發(fā)送第 ニ預設(shè)字符串。
其中,所述步驟E中判斷是否成功接收卡片返回的檢測響應(yīng),具體包括
如檢測指令為所述第一預設(shè)字符串,所述讀卡器判斷接收到所述卡片返回的響應(yīng)是否為第一檢測響應(yīng),是則成功接收卡片返回的檢測響應(yīng)并進行保存,否則未成功接收卡片返回的檢測響應(yīng);如檢測指令為所述第二預設(shè)字符串,所述讀卡器判斷接收到所述卡片返回的響應(yīng)是否為第二檢測響應(yīng),是則成功接收卡片返回的檢測響應(yīng)并進行保存,否則未成功接收卡片返回的檢測響應(yīng)。
其中,所述步驟B具體包括
步驟Bll :所述讀卡器判斷所述有效指令的類型,如是通知尋卡指令則執(zhí)行步驟D,如是APDU指令則執(zhí)行步驟B12,如是擴展指令則執(zhí)行步驟B13 ;
步驟B12 :所述讀卡器將所述APDU指令發(fā)送給卡片,判斷是否接收到所述卡片返回的響應(yīng),是則將所述卡片在射頻場的標志置位,并將所述接收到的響應(yīng)以USB中斷管道方式返回給上位機,返回步驟A ;否則將所述卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ;
步驟B13 :所述讀卡器根據(jù)擴展指令進行操作,并將操作結(jié)果以USB中斷管道方式返回給上位機,返回步驟A。
其中,所述步驟D具體包括
步驟Dll :所述讀卡器向卡片發(fā)送第一請求指令,并判斷是否接收到所述卡片返回的第一響應(yīng),是則執(zhí)行步驟D12,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ;
步驟D12 :所述讀卡器向所述卡片發(fā)送包含0x93和0x20的第二請求指令,并獲取所述卡片返回的第一確認信息;
步驟D13 :所述讀卡器根據(jù)所述第一確認信息與固定數(shù)據(jù)計算得到第一數(shù)據(jù),并判斷所述第一數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為1,將卡號信息放在緩沖區(qū)中,順序執(zhí)行步驟D18,否則執(zhí)行步驟D14 ;
步驟D14 :所述讀卡器向所述卡片發(fā)送包含0x95和0x20的第三請求指令,并獲取所述卡片返回的第二確認信息;
步驟D15 :所述讀卡器根據(jù)所述第二確認信息與所述固定數(shù)據(jù)計算得到第二數(shù)據(jù),并判斷所述第二數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為2,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行步驟D18,否則執(zhí)行步驟D16 ;
步驟D16 :所述讀卡器向所述卡片發(fā)送包含0x97和0x20的第四請求指令,并獲取第三確認信息;
步驟D17 :所述讀卡器根據(jù)所述第三確認信息與所述固定數(shù)據(jù)計算得到第三數(shù)據(jù),并判斷所述第三數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為3,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行D18,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ;
步驟D18 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟D19,否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ;
步驟D19 :所述讀卡器將卡片在射頻場的標志置位,并將所述選擇應(yīng)答響應(yīng)和卡片在射頻場的響應(yīng)分別以USB中斷管道方式發(fā)送給所述上位機,返回步驟A。
其中,所述步驟D具體包括
步驟D21 :所述讀卡器向所述卡片發(fā)送第五請求指令,并判斷是否接收到所述卡片返回的第五響應(yīng),是則執(zhí)行步驟D22,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ;
步驟D22 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟D23,否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以US B中斷管道方式發(fā)送給上位機,返回步驟A ;
步驟D23 :所述讀卡器將卡片在射頻場的標志置位,并將所述選擇應(yīng)答響應(yīng)和卡片在射頻場的響應(yīng)分別以USB中斷管道方式發(fā)送給所述上位機,返回步驟A。
一種檢測非接觸式CPU卡片離開射頻場的方法,包括
步驟a :讀卡器打開定時中斷使能;
步驟b :所述讀卡器等待接收上位機發(fā)送的指令,并判斷是否接收到有效指令,是則判斷所述有效指令的類型,如是通知尋卡指令,則執(zhí)行步驟c ;如是APDU指令,則執(zhí)行步驟d ;如是擴展指令,則執(zhí)行步驟e ;否則執(zhí)行步驟f ;
步驟c :所述讀卡器關(guān)閉定時中斷使能,向卡片發(fā)送尋卡指令,并判斷是否接收到卡片返回的尋卡響應(yīng),是則將卡片在射頻場的標志置位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f;否則將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ;
步驟d:所述讀卡器關(guān)閉定時中斷使能,將所述APDU指令發(fā)送給卡片,并判斷是否接收到卡片返回的響應(yīng),是則將卡片在射頻場的標志置位,并將接收到的響應(yīng)以USB中斷管道方式發(fā)送給上位機,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ;否則將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ;
步驟e :所述讀卡器關(guān)閉定時中斷使能,根據(jù)所述擴展指令進行操作,并將操作結(jié)果以USB中斷管道方式發(fā)送給上位機,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ;
步驟f :所述讀卡器判斷所述卡片在射頻場的標志是否置位,是則將卡片在射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ;否則卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ;
當所述讀卡器接收到定時中斷觸發(fā)時進入定時中斷處理,包括
步驟g :所述讀卡器關(guān)閉定時中斷使能,清除定時中斷標志;
步驟h :所述讀卡器判斷卡片在射頻場的標志是否置位,是則執(zhí)行步驟i,否則向卡片發(fā)送尋卡指令,并判斷是否接收到卡片返回的尋卡響應(yīng),是則執(zhí)行步驟1,否則執(zhí)行步驟m ;
步驟i :所述讀卡器向卡片發(fā)送檢測指令,并判斷是否成功接收卡片返回的檢測響應(yīng),是則保存所述檢測響應(yīng),執(zhí)行步驟1,否則執(zhí)行步驟m ;
步驟I :所述讀卡器打開定時中斷使能,退出定時中斷處理;
步驟m:所述讀卡器將所述卡片在射頻場的標志復位,打開定時中斷使能,退出定時中斷處理。
其中,所述步驟c具體包括
步驟cll :所述讀卡器關(guān)閉定時中斷使能,向卡片發(fā)送第一請求指令,并判斷是否接收到所述卡片返回的第一響應(yīng),是則執(zhí)行步驟cl2,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ;
步驟cl2 :所述讀卡器向所述卡片發(fā)送包含0x93和0x20的第二請求指令,并獲取所述卡片返回的第一確認信息;
步驟cl3 :所述讀卡器根據(jù)所述第一確認信息與固定數(shù)據(jù)計算得到第一數(shù)據(jù),并判斷所述第一數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為1,將卡號信息放在緩沖區(qū)中,順序執(zhí)行步驟cl8,否則執(zhí)行步驟cl4 ;
步驟cl4 :所述讀卡器向所述卡片發(fā)送包含0x95和0x20的第三請求指令,并獲取所述卡片返回的第二確認信息;
步驟cl5 :所述讀卡器根據(jù)所述第二確認信息與所述固定數(shù)據(jù)計算得到第二數(shù)據(jù),并判斷所述第二數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為2,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行步驟cl8,否則執(zhí)行步驟cl6 ;
步驟cl6 :所述讀卡器向所述卡片發(fā)送包含0x97和0x20的第四請求指令,并獲取第三確認信息;
步驟cl7 :所述讀卡器根據(jù)所述第三確認信息與所述固定數(shù)據(jù)計算得到第三數(shù)據(jù),并判斷所述第三數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為3,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行cl8,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ;
步驟cl8 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟cl9,否則將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f;
步驟cl9 :所述讀卡器將卡片在射頻場的標志置位,并將所述選擇應(yīng)答響應(yīng)以USB中斷管道方式發(fā)送給所述上位機,打開定時中斷使能,繼續(xù)執(zhí)行步驟f。
其中,所述步驟c具體包括
步驟c21 :所述讀卡器關(guān)閉定時中斷使能,向所述卡片發(fā)送第五請求指令,并判斷是否接收到所述卡片返回的第五響應(yīng),是則執(zhí)行步驟c22,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ;
步驟c22 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟c23,否則將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f;
步驟c23 :所述讀卡器將卡片在射頻場的標志置位,并將所述選擇應(yīng)答響應(yīng)以USB中斷管道方式發(fā)送給所述上位機,打開定時中斷使能,繼續(xù)執(zhí)行步驟f。
其中,所述步驟b中如未接收到有效指令時,繼續(xù)等待接收指令;
所述步驟C-步驟f、步驟I-步驟m分別替換為步驟c’ -步驟e’、步驟I’ -步驟m’ ;步驟c’ 所述讀卡器關(guān)閉定時中斷使能,向卡片發(fā)送尋卡指令,并判斷是否接收到卡片返回的尋卡響應(yīng),是則將卡片在射頻場的標志置位,并以USB中斷管道方式給上位機發(fā)送卡片在射頻場的響應(yīng),返回步驟a ;否則將卡片在射頻場的標志復位,并以USB中斷管道方式給上位機發(fā)送卡片離開射頻場的響應(yīng),返回步驟a ;
步驟d’ 所述讀卡器關(guān)閉定時中斷使能,將所述APDU指令發(fā)送給卡片,并判斷是否接收到卡片返回的響應(yīng),是則將卡片在射頻場的標志置位,并將接收到的響應(yīng)和卡片在射頻場的響應(yīng)分別以USB中斷管道方式發(fā)送給上位機,返回步驟a;否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ;步驟e’ 所述讀卡器關(guān)閉定時中斷使能,則根據(jù)所述擴展指令進行操作,并將操作結(jié)果以USB中斷管道方式發(fā)送給上位機,返回步驟a ;
步驟I’:所述讀卡器將所述卡片在射頻場的標志置位,并將卡片在射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,打開定時中斷使能,退出定時中斷處理;
步驟m’ 所述讀卡器將所述卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,打開定時中斷使能,退出定時中斷處理。
其中,所述步驟c ’具體包括
步驟c,11 :所述讀卡器關(guān)閉定時中斷使能,向卡片發(fā)送第一請求指令,并判斷是否接收到所述卡片返回的第一響應(yīng),是則執(zhí)行步驟c’12,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方 式發(fā)送給上位機,返回步驟a;
步驟c’ 12 :所述讀卡器向所述卡片發(fā)送包含0x93和0x20的第二請求指令,并獲取所述卡片返回的第一確認信息;
步驟c’ 13 :所述讀卡器根據(jù)所述第一確認信息與固定數(shù)據(jù)計算得到第一數(shù)據(jù),并判斷所述第一數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為1,將卡號信息放在緩沖區(qū)中,順序執(zhí)行步驟c’ 18,否則執(zhí)行步驟c’ 14 ;
步驟c’ 14 :所述讀卡器向所述卡片發(fā)送包含0x95和0x20的第三請求指令,并獲取所述卡片返回的第二確認信息;
步驟c’ 15 :所述讀卡器根據(jù)所述第二確認信息與所述固定數(shù)據(jù)計算得到第二數(shù)據(jù),并判斷所述第二數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為2,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行步驟c’ 18,否則執(zhí)行步驟c’ 16;
步驟c’ 16 :所述讀卡器向所述卡片發(fā)送包含0x97和0x20的第四請求指令,并獲取第ニ確認信息;
步驟c’ 17 :所述讀卡器根據(jù)所述第三確認信息與所述固定數(shù)據(jù)計算得到第三數(shù)據(jù),并判斷所述第三數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為3,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行c’ 18,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ;
步驟c’ 18 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟c’19,否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ;
步驟c’ 19 :所述讀卡器將卡片在射頻場的標志置位,并將所述選擇應(yīng)答響應(yīng)和卡片在射頻場的響應(yīng)分別以USB中斷管道方式發(fā)送給所述上位機,返回步驟a。
其中,所述步驟c ’具體包括
步驟C,21 :所述讀卡器關(guān)閉定時中斷使能,向所述卡片發(fā)送第五請求指令,并判斷是否接收到所述卡片返回的第五響應(yīng),是則執(zhí)行步驟c’22,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ;
步驟c’ 22 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟c’23,否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a。
其中,所述將卡片在射頻場的響應(yīng)以USB中斷管道方式通知上位機,具體包括
判斷記錄的卡片狀態(tài)是否為卡片在射頻場,是則返回步驟a,否則用所述卡片在射頻場更新所述記錄的卡片狀態(tài),返回步驟a ;
所述將卡片離開在射頻場的響應(yīng)以USB中斷管道方式通知上位機,具體包括
判斷記錄的卡片狀態(tài)是否為卡片離開射頻場,是則返回步驟a,否則用所述卡片離開射頻場更新所述記錄的卡片狀態(tài),返回步驟a。
其中,所述判斷所述指令是否為有效指令,具體包括
所述讀卡器接收從緩沖區(qū)中以中斷方式發(fā)送的指令,如所述指令的第一字節(jié)與預設(shè)字 符相符,則接收到有效指令,否則未接收到有效指令。
其中,所述讀卡器向卡片發(fā)送檢測指令,具體包括
如果所述讀卡器是第一次發(fā)送檢測指令,則所述讀卡器向卡片發(fā)送第一預設(shè)字符串;如果所述讀卡器不是第一次發(fā)送檢測指令,則所述讀卡器根據(jù)所述檢測響應(yīng)確定將要發(fā)送的檢測指令,如所述檢測響應(yīng)最后一個比特位的值為O,則所述讀卡器向卡片發(fā)送所述第一預設(shè)字符串;如所述檢測響應(yīng)最后一個比特位的值為1,則所述讀卡器向卡片發(fā)送第
ニ預設(shè)字符串。
其中,所述判斷是否成功接收卡片返回的檢測響應(yīng),具體包括
如檢測指令為所述第一預設(shè)字符串,所述讀卡器判斷接收到所述卡片返回的響應(yīng)是否為第一檢測響應(yīng),是則成功接收卡片返回的檢測響應(yīng)并進行保存,否則未成功接收卡片返回的檢測響應(yīng);
如檢測指令為所述第二預設(shè)字符串,所述讀卡器判斷接收到所述卡片返回的響應(yīng)是否為第二檢測響應(yīng),是則成功接收卡片返回的檢測響應(yīng)并進行保存,否則未成功接收卡片返回的檢測響應(yīng)。
本發(fā)明技術(shù)方案的有益效果為讀卡器在空閑的時間里,讀卡器會定時的向卡片發(fā)送檢測指令,實現(xiàn)對卡片是否在射頻場的實時檢測。


圖I是本發(fā)明實施例I提供的一種檢測非接觸式CPU卡片離開射頻場的方法流程 圖2 (I)和圖2 (2)是本發(fā)明實施例2提供的一種細化的檢測非接觸式CPU卡片離開射頻場的方法流程 圖2’(I)和圖2’(2)是本發(fā)明實施例2提供的另ー種細化的檢測非接觸式CPU卡片離開射頻場的方法流程 圖3 (I)和圖3 (2)是本發(fā)明實施例3提供的一種細化的檢測非接觸式CPU卡片離開射頻場的方法流程圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式做進ー步地詳細描述。本發(fā)明實施例中,提到的讀卡器以非接觸式讀卡器為例,卡片為非接觸式CPU卡片。
實施例I
參見圖1,實施例I提供了ー種檢測卡片離開射頻場的方法,具體包括
步驟101 :讀卡器上電初始化;
本實施例中,卡片在射頻場標志初始為O。
步驟102 :接收指令,并判斷是否收到有效指令;
是,執(zhí)行步驟110 ;否,執(zhí)行步驟103。
本實施例中,讀卡器接收從緩沖區(qū)中以USB中斷管道方式發(fā)送的指令。如果指令的第一字節(jié)在預設(shè)范圍內(nèi)(0x01——0x03),則為收到了有效指令。例如接收到的指令的第一字 節(jié)為0x01,則接收到了有效指令。如果讀卡器未收到或收到的指令的第一字節(jié)不滿足預設(shè)值,則收到的指令不是有效指令。
步驟103 :判斷卡片在射頻場標志是否為I ;
是,執(zhí)行步驟104 ;否,執(zhí)行步驟111。
步驟104 :執(zhí)行檢測卡片操作;
本實施例中,如果讀卡器執(zhí)行檢測卡片操作是第一次執(zhí)行時,則下發(fā)的檢測指令為0xB2;
如果讀卡器執(zhí)行檢測卡片操作不是第一次,則根據(jù)上次接收卡片返回的檢測指令響應(yīng)的第一個字節(jié)的最后ー個bit位的值來確定下發(fā)的檢測指令。例如最后ー個bit位值為I時,則讀卡器向卡片下發(fā)的檢測指令為0xB2 ;最后ー個bit位值為O時,則下發(fā)的檢測指令為 0xB3。
讀卡器定時向卡片發(fā)送檢測指令過程中,如有指令被中斷時,讀卡器發(fā)送下一條檢測指令時,指令會發(fā)生改變,例如
讀卡器向卡片發(fā)送檢測指令0xB2,卡片成功做出相應(yīng)的響應(yīng)0xA3后被中斷指令中斷,讀卡器則執(zhí)行一條中斷指令,中斷指令執(zhí)行完成后讀卡器再發(fā)送的檢測指令為0xB3。
所述執(zhí)行檢測卡片操作具體包括以下步驟
步驟A :讀卡器定時向卡片發(fā)送檢測指令;
本實施例中,讀卡器每隔預設(shè)時間向卡片發(fā)送檢測指令,優(yōu)選的預設(shè)時間為5ms。
步驟B :接收卡片做出的檢測指令響應(yīng),然后執(zhí)行步驟105 ;
本實施例中,接收到的響應(yīng)為0xA3或0xA2或其他數(shù)據(jù)。
步驟105 :判斷是否成功接收卡片檢測指令響應(yīng);
是,執(zhí)行步驟107 ;否,執(zhí)行步驟106。
具體判斷方法為
如果讀卡器向卡片發(fā)送的檢測指令是0xB2,則當讀卡器接收到卡片返回0xA3時為成功接收卡片檢測指令響應(yīng);
如果讀卡器向卡片發(fā)送的檢測指令是0xB3,則當讀卡器接收到卡片返回0xA2時為成功接收卡片檢測指令響應(yīng)。
當讀卡器接收到其他響應(yīng)或收到與其發(fā)送的檢測指令不匹配的響應(yīng)時,認為未成功接收卡片檢測指令響應(yīng)。
步驟106 :將卡片離開射頻場響應(yīng)以USB中斷管道方式通知上位機,卡片在射頻場標志清O,然后執(zhí)行步驟109,也可執(zhí)行步驟102 ;
本實施例中,具體的卡片離開射頻場響應(yīng)為0x50、0x02。
步驟107 :將卡片在射頻場響應(yīng)以USB中斷管道方式通知上位機,卡片在射頻場標志置1,然后執(zhí)行步驟108,也可執(zhí)行步驟102 ;
本實施例中,具體的卡片在射頻場響應(yīng)為0x50、0x03。
步驟108 :接收指令,并判斷是否收到有效指令;
是,執(zhí)行步驟110 ;否,返回步驟104。
本實施例中步驟108的判斷方法可參照步驟102,在此不再贅述。
步驟109 :接收指令,并判斷是否收到有效指令;
是,執(zhí)行步驟110 ;否,執(zhí)行步驟111。
本實施例中步驟110的判斷方法可參照步驟102,在此不再贅述。
步驟110 :判斷指令類型;
本實施例中,如果讀卡器接收的數(shù)據(jù)第一字節(jié)為0x01,是通知尋卡指令,則執(zhí)行步驟
111。
接收的數(shù)據(jù)第一字節(jié)為0x02,是APDU指令,則執(zhí)行步驟115 ;
接收的數(shù)據(jù)第一字節(jié)為0x03,是擴展指令,則執(zhí)行步驟118 ;
本實施例中,擴展指令可以為開、關(guān)射頻場指令,開、關(guān)燈指令,蜂鳴指令等。
步驟111 :執(zhí)行尋卡操作,并判斷操作是否成功;
本實施例中,對于A型卡片,尋卡操作具體包括
步驟A-I :向卡片發(fā)送第一請求指令;
本實施例中,第一請求指令具體為0x52。
步驟A-2 :判斷是否接收到卡片做出的第一響應(yīng);
本實施例中,第一響應(yīng)為預設(shè)的數(shù)據(jù),與第一請求指令相對應(yīng),優(yōu)選為兩個字節(jié)的數(shù)據(jù),如 0x02、0x00。
是,執(zhí)行步驟B-I ;
否,關(guān)閉射頻場,讀卡器等待預設(shè)時間后自動打開射頻場,然后執(zhí)行步驟106,優(yōu)選的預設(shè)時間為10ms。
步驟B-I :向卡片發(fā)送2字節(jié)數(shù)據(jù)包0x93、0x20 ;
步驟B-2 :獲取卡片返回的第一確認信息;
本實施例中,獲取卡片返回的第一確認信息的過程包括
步驟B-21 :向卡片發(fā)送2字節(jié)數(shù)據(jù)包0x93和0x20 ;
步驟B-22 :判斷是否收到第二響應(yīng)數(shù)據(jù);
本實施例中,第二響應(yīng)數(shù)據(jù)包括WDl和BCCl,UIDl為4字節(jié)卡號段的ー組固定數(shù)據(jù)或由卡片動態(tài)產(chǎn)生的隨機數(shù),BCCl為WDl的校驗字節(jié);
是,執(zhí)行步驟B-23 ;
否,關(guān)閉射頻場,讀卡器等待預設(shè)時間后自動打開射頻場,然后執(zhí)行步驟106,優(yōu)選的預設(shè)時間為10ms。
步驟B-23 :向卡片發(fā)送0x93、0x70、UIDU BCCl和CRCl組成的數(shù)據(jù)包;CRC1為校驗檢測碼;步驟B-24 :判斷是否接收到卡片返回的第一確認信息;
是,獲取第一確認イ目息,執(zhí)行步驟C-I。
否,關(guān)閉射頻場,讀卡器等待預設(shè)時間后自動打開射頻場,執(zhí)行步驟106,優(yōu)選的預設(shè)時間為IOms ;
本實施例中,該第一確認信息由SI和CRCl組成,SI表示通信開始。
步驟C-I :獲取第一確認信息與固定數(shù)據(jù)做與運算得到的第一數(shù)據(jù);
本實施例中,固定數(shù)據(jù)為0x40。
步驟C-2 :判斷第一數(shù)據(jù)是否為0x00 ;
是,該卡片的串聯(lián)級別為1,將卡號信息放在緩沖區(qū)中,并執(zhí)行步驟112 ;
否,執(zhí)行步驟D-I。
步驟D-I 向卡片發(fā)送2字節(jié)數(shù)據(jù)包0x95和0x20 ;
步驟D-2 :獲取卡片返回的第二確認信息;
本實施例中,獲取第二確認信息的過程包括
步驟D-21 向卡片發(fā)送2字節(jié)數(shù)據(jù)包0x95和0x20 ;
步驟D-22 :判斷是否接收到卡片返回的第三響應(yīng)數(shù)據(jù);
本實施例中,第三響應(yīng)數(shù)據(jù)包括WD2和BCC2,UID2為4字節(jié)卡號段,BCC2為WD2的校驗字節(jié)。
是,執(zhí)行步驟D-23 ;
否,關(guān)閉射頻場,讀卡器等待預設(shè)時間后自動打開射頻場,然后執(zhí)行步驟106,優(yōu)選的預設(shè)時間設(shè)置為IOms ;
步驟D-23 向卡片發(fā)送0x95、0x70、UID2, BCC2和CRC2組成的數(shù)據(jù)包;
步驟D-24 :判斷是否接收到卡片返回的第二確認信息;
是,獲取卡片返回的第二確認信息,執(zhí)行步驟E-1。
否,關(guān)閉射頻場,讀卡器等待預設(shè)時間后自動打開射頻場,然后執(zhí)行步驟106,優(yōu)選的預設(shè)時間設(shè)置IOms ;
本實施例中,第二確認信息由S2和CRC2組成,S2表示通信開始。
步驟E-I :獲取第二確認信息與固定數(shù)據(jù)做與運算得到的第二數(shù)據(jù);
本實施例中,固定數(shù)據(jù)為0x40。
步驟E-2 :判斷第二數(shù)據(jù)是否為0x00 ;
是,該卡片的串聯(lián)級別為2,將卡號信息放在緩沖區(qū)中,并執(zhí)行步驟112 ;
否,執(zhí)行步驟F-I。
步驟F-I 向卡片發(fā)送2字節(jié)數(shù)據(jù)包0x97和0x20 ;
步驟F-2 :獲取第二確認信息;
本實施例中,獲取第二確認信息的過程包括
步驟F-21 向卡片發(fā)送2字節(jié)數(shù)據(jù)包0x97和0x20 ;
步驟F-22 :判斷是否接收到卡片返回的第四響應(yīng)數(shù)據(jù);
本實施例中,第四響應(yīng)數(shù)據(jù)包括WD3和BCC3,WD3為4字節(jié)卡號段,BCC3為WD3的校驗字節(jié);
是,執(zhí)行步驟F-23 ;否,關(guān)閉射頻場,讀卡器等待預設(shè)時間后自動打開射頻場,然后執(zhí)行步驟106,優(yōu)選時間設(shè)置為IOms ;
步驟F-23 向卡片發(fā)送0x97、0x70、UID3, BCC3和CRC3組成的數(shù)據(jù)包;
步驟F-24 :判斷是否接收到卡片返回的第三確認信息;
本實施例中,第三確認信息由S3和CRC3組成,S3表示通信開始。
是,獲取第二確認信息,執(zhí)行步驟G-I ;
否,關(guān)閉射頻場,讀卡器等待預設(shè)時間后自動打開射頻場,然后執(zhí)行步驟106,優(yōu)選的預設(shè)時間設(shè)置為IOms ;
步驟G-I :獲取第三確認信息與固定數(shù)據(jù)做與運算得到的第三數(shù)據(jù);
本實施例中,固定數(shù)據(jù)為0x40。
步驟G-2 :判斷第三數(shù)據(jù)是否為0x00 ;
是,該卡片的串聯(lián)級別為3,將卡號信息放在緩沖區(qū)中,并執(zhí)行步驟112 ;
否,關(guān)閉射頻場,讀卡器等待預設(shè)時間后自動打開射頻場,然后執(zhí)行步驟106,優(yōu)選的預設(shè)時間設(shè)置為IOms ;
本實施例中,串聯(lián)級別I對應(yīng)UIDl,nDl中4個字節(jié)為全部卡號;
串聯(lián)級別2對應(yīng)WDl和WD2的串聯(lián),其中WDl中第一個字節(jié)無效,只取后3個字節(jié),UID2取全部4字節(jié),串聯(lián)級別2共7字節(jié)數(shù)據(jù);
串聯(lián)級別3對應(yīng)UIDl、UID2和WD3的串聯(lián),其中WDl和UID2的第一個字節(jié)無效,只取各自后3個字節(jié),UID3取全部4字節(jié),串聯(lián)級別3共10字節(jié)的數(shù)據(jù)。
對于B型卡,其實現(xiàn)方式如下
步驟 ー讀卡器向卡片發(fā)送B型請求指令;
本實施例中,具體的B型請求指令為5字節(jié)的數(shù)據(jù)0x05、0x00、0x08、CRC(2byte)。
步驟ニ 判斷是否接收到卡片返回的B型請求響應(yīng);
是,執(zhí)行步驟112 ;否,執(zhí)行步驟106。
本實施例中,B型請求響應(yīng)具體為
0xld、PUPI(4bytes)、0x00、0x08、0x01、0x00、CRC(2bytes);其中 PUPI 表示:卡號信息。
步驟112 :向卡片發(fā)送請求選擇應(yīng)答指令;
本實施例中,具體的請求選擇應(yīng)答指令為E0、80、CRC。
步驟113 :判斷是否接收到選擇應(yīng)答響應(yīng);
是,執(zhí)行步驟114 ;否,執(zhí)行步驟106。
步驟114 :將選擇應(yīng)答響應(yīng)以USB中斷管道方式發(fā)送給上位機;
然后執(zhí)行步驟107。
步驟115 :按指定格式向卡片發(fā)送A數(shù)據(jù);
本實施例中,指定格式具體為PCB、NAD/CID、A數(shù)據(jù)、CRC,此處PCB表示協(xié)議控制字節(jié);NAD表示結(jié)點地址;CID表示卡標識符;CRC表示校驗檢測碼。
步驟116 :判斷是否接收到卡片返回的B數(shù)據(jù);
是,執(zhí)行步驟117 ;否,執(zhí)行步驟106。
步驟117 :將B數(shù)據(jù)以USB中斷管道方式發(fā)送給上位機;
然后執(zhí)行步驟107。步驟118 :執(zhí)行相應(yīng)指令,并將處理結(jié)果以USB中斷管道方式發(fā)送給上位機;本實施例以請求亮燈指令為例,讀卡器接收到上位機發(fā)送的請求亮燈指令后,進行亮燈操作,并將操作成功或操作失敗信息以USB中斷管道方式發(fā)送給上位機。操作成功信息為0x00,操作失敗信息為0x01。
本發(fā)明實施例中涉及到的卡片在射頻場和不在射頻場的響應(yīng)均以USB中斷管道方式通知上位機,并將已通知的卡片在射頻場響應(yīng)保存;下次準備通知前,判斷保存的響應(yīng)和將要發(fā)送的響應(yīng)是否一致,一致則不需要上傳通知,否則通知上位機卡片在射頻場,并保存響應(yīng)。
實施例2
參見圖2 (1)、2 (2),實施例2提供了ー種檢測卡片離開射頻場的方法,具體包括 步驟201 :讀卡器上電初始化;
打開定時中斷。
本實施例中,卡片在射頻場標志初始為O。
步驟202 :接收指令;
本實施例中,讀卡器接收的指令,可以為上位機發(fā)送的通知尋卡指令、APDU指令、擴展指令。
步驟203 :判斷是否接收到有效指令;
是,執(zhí)行步驟204 ;否,執(zhí)行步驟213。
判斷方法同實施例I中的步驟102。
步驟204 :判斷指令類型;
本實施例中,如果讀卡器接收到的指令第一字節(jié)為0x01,是通知尋卡指令,則執(zhí)行步驟
205 ;
接收到的指令第一字節(jié)為0x02,是APDU指令,則執(zhí)行步驟217 ;
接收到的指令第一字節(jié)為0x03,是擴展指令,則執(zhí)行步驟223 ;
本實施例中,擴展指令可以為開、關(guān)射頻場指令,開、關(guān)燈指令,蜂鳴指令等。
步驟205 :關(guān)閉定時中斷;
步驟206 :將卡片在射頻場標志清O ;
步驟207 :執(zhí)行尋卡操作,并判斷操作是否成功;
是,執(zhí)行步驟208 ;否,執(zhí)行步驟216。
本實施例中,具體尋卡操作同實施例I中步驟111。
步驟208 :向卡片發(fā)送請求選擇應(yīng)答指令;
本實施例中,具體的請求選擇應(yīng)答指令為E0、80、CRC。
步驟209 :接收并判斷是否接收到選擇應(yīng)答響應(yīng);
是,執(zhí)行步驟210 ;否,執(zhí)行步驟216。
步驟210 :以USB中斷管道方式向上位機發(fā)送選擇應(yīng)答響應(yīng);
步驟211 :將卡片在射頻場標志置I ;
步驟212 :打開定時中斷;
步驟213 :判斷卡片在射頻場標志是否為I ;
是,執(zhí)行步驟214 ;否,執(zhí)行步驟215。步驟214 :以USB中斷管道方式向上位機發(fā)送卡片在射頻場響應(yīng);
然后執(zhí)行步驟202。
本實施例中,具體在射頻場響應(yīng)為0x50、0x03。
步驟215 :以USB中斷管道方式向上位機發(fā)送卡片離開射頻場響應(yīng);
然后執(zhí)行步驟202。
本實施例中,具體的離開射頻場響應(yīng)為0χ50、0χ02。
步驟216 :將卡片在射頻場標志清0,然后執(zhí)行步驟212 ;
步驟217 :關(guān)閉定時中斷;
步驟218 :按指定格式向卡片發(fā)送A數(shù)據(jù);
本實施例中,指定格式具體為PCB、NAD/CID、A數(shù)據(jù)、CRC,此處PCB表示協(xié)議控制字節(jié);NAD表示結(jié)點地址;CID表示卡標識符;CRC表示校驗檢測碼。
步驟219 :判斷是否接收到卡片返回的B數(shù)據(jù);
是,執(zhí)行步驟220 ;否,執(zhí)行步驟222。
步驟220 以USB中斷管道方式向上位機發(fā)送B數(shù)據(jù);
步驟221 :將卡片在射頻場標志置I,然后執(zhí)行步驟212 ;
步驟222 :將卡片在射頻場標志清0,然后執(zhí)行步驟212 ;
步驟223 :關(guān)閉定時中斷;
步驟224 :執(zhí)行相應(yīng)指令,并將處理結(jié)果以USB中斷管道方式發(fā)送給上位機,然后執(zhí)行步驟212 ;
具體操作方法同實施例I中步驟118。
如圖2 (2)所示,定時中斷操作具體為
步驟2-1 :進入定時中斷;
本實施例中,執(zhí)行中斷周期為預設(shè)時間,優(yōu)選為每5ms進行一次中斷。
步驟2-2 :關(guān)閉中斷;
步驟2-3:清中斷;
步驟2-4 :判斷卡片在射頻場標志是否為I ;
是,執(zhí)行步驟2-5 ;否,執(zhí)行步驟2-9。
步驟2-5 :執(zhí)行檢測卡片操作;
本實施例中,具體檢測卡片操作同實施例I中步驟104。
步驟2-6 :判斷是否成功接收卡片檢測指令響應(yīng);
是,執(zhí)行步驟2-7 ;否,執(zhí)行步驟2-8。
本實施例中,具體判斷操作同實施例I中步驟105。
步驟2-7 :打開中斷,退出;
步驟2-8 :將卡片在射頻場標志清0,然后執(zhí)行步驟2-7 ;
步驟2-9 :執(zhí)行尋卡操作并判斷操作是否成功;
本實施例中,具體的操作同實施例I中步驟111。
是,執(zhí)行步驟2-10 ;否,執(zhí)行步驟2-7。
步驟2-10 :向卡片發(fā)送請求選擇應(yīng)答指令;
本實施例中,具體請求選擇應(yīng)答指令為EO、80、CRC。步驟2-11 :判斷是否接收到卡片的選擇應(yīng)答響應(yīng);
是,執(zhí)行步驟2-12 ;否,執(zhí)行步驟2-7。
步驟2-12 :以USB中斷管道方式向上位機發(fā)送選擇應(yīng)答響應(yīng),然后執(zhí)行步驟2-13 ; 步驟2-13 :將卡片在射頻場標志置1,然后執(zhí)行步驟2-7 ;
本發(fā)明實施例中涉及到的卡片在射頻場和離開射頻場的響應(yīng)均以USB中斷管道方式通知上位機,并將已通知的卡片在射頻場響應(yīng)保存;下次準備通知前,判斷保存的響應(yīng)和將要發(fā)送的響應(yīng)是否 一致,一致則不需要上傳通知,否則通知上位機卡片在射頻場,并保存響應(yīng)。
本實施例也可以為另ー種方法如下
參見圖2’ (I)所示
步驟201’ 讀卡器上電初始化;
打開定時中斷。
本實施例中,卡片在射頻場標志初始為O。
步驟202’ 接收指令;
本實施例中,讀卡器接收的指令,可以為上位機發(fā)送的通知尋卡指令、APDU指令、擴展指令。
步驟203’ 判斷是否接收到有效指令;
是,執(zhí)行步驟204’ ;否,執(zhí)行步驟202’。
判斷方法同實施例I中的步驟102。
步驟204’ 判斷指令類型;
本實施例中,如果讀卡器接收到的指令第一字節(jié)為0x01,是通知尋卡指令,則執(zhí)行步驟205,;
接收到的指令第一字節(jié)為0x02,是APDU指令,則執(zhí)行步驟214’ ;
接收到的指令第一字節(jié)為0x03,是擴展指令,則執(zhí)行步驟218’ ;
本實施例中,擴展指令可以為開、關(guān)射頻場指令,開、關(guān)燈指令,蜂鳴指令等。
步驟205’ 關(guān)閉定時中斷;
步驟206’ 將卡片在射頻場標志清O ;
步驟207’ 執(zhí)行尋卡操作,并判斷操作是否成功;
是,執(zhí)行步驟208’ ;否,執(zhí)行步驟212’。
本實施例中,具體尋卡操作同實施例I中步驟111。
步驟208’ 向卡片發(fā)送請求選擇應(yīng)答指令;
本實施例中,具體的請求選擇應(yīng)答指令為E0、80、CRC。
步驟209’ 接收并判斷是否接收到選擇應(yīng)答響應(yīng);
是,執(zhí)行步驟210’ ;否,執(zhí)行步驟212’。
步驟210’ 以USB中斷管道方式向上位機發(fā)送選擇應(yīng)答響應(yīng);
步驟211’ 以USB中斷管道方式向上位機發(fā)送卡片在射頻場響應(yīng),卡片在射頻場標志置1,然后執(zhí)行步驟213’ ;
本實施例中,具體在射頻場響應(yīng)為0x50、0x03。
步驟212’ 以USB中斷管道方式向上位機發(fā)送卡片離開射頻場響應(yīng),卡片在射頻場標志清O ;
本實施例中,具體的離開射頻場響應(yīng)為0χ50、0χ02。
步驟213’ 打開定時中斷,然后執(zhí)行步驟202’ ;
步驟214’ 關(guān)閉定時中斷;
步驟215’ 按指定格式向卡片發(fā)送A數(shù)據(jù);
本實施例中,指定格式具體為PCB、NAD/CID、A數(shù)據(jù)、CRC,此處PCB表示協(xié)議控制字節(jié);NAD表示結(jié)點地址;CID表示卡標識符;CRC表示校驗檢測碼。
步驟216’判斷是否接收到卡片返回的B數(shù)據(jù);
是,執(zhí)行步驟217’ ;否,執(zhí)行步驟212’。
步驟217’ 以USB中斷管道方式向上位機發(fā)送B數(shù)據(jù),然后執(zhí)行步驟211’。
步驟218’ 關(guān)閉定時中斷;
步驟219’ 執(zhí)行相應(yīng)指令,并將處理結(jié)果以USB中斷管道方式發(fā)送給上位機,然后執(zhí)行步驟213’。
具體操作方法同實施例I中步驟118。
如圖2’(2)所示,定時中斷操作具體為
步驟2-1’ 進入定時中斷;
本實施例中,執(zhí)行中斷周期為預設(shè)時間,優(yōu)選為每5ms進行一次中斷。
步驟2-2’ 關(guān)閉中斷;
步驟2-3’ 清中斷;
步驟2-4’ 判斷卡片在射頻場標志是否為I ;
是,執(zhí)行步驟2-5’ ;否,執(zhí)行步驟2-10’。
步驟2-5’ 執(zhí)行檢測卡片操作;
本實施例中,具體檢測卡片操作同實施例I中步驟104。
步驟2-6’ 判斷是否成功接收卡片檢測指令響應(yīng);
是,執(zhí)行步驟2-7’ ;否,執(zhí)行步驟2-8’。
本實施例中,具體判斷操作同實施例I中步驟105。
步驟2-7’ 將卡片在射頻場響應(yīng)以USB中斷管道方式通知上位機,卡片在射頻場標志置1,然后執(zhí)行步驟2-9’ ;
步驟2-8’ 將卡片離開射頻場響應(yīng)以USB中斷管道方式通知上位機,卡片在射頻場標志清O ;
步驟2-9’ 打開中斷,退出;
步驟2-10’ 執(zhí)行尋卡操作并判斷操作是否成功;
是,執(zhí)行步驟2-11’ ;否,執(zhí)行步驟2-8’。
本實施例中,具體的操作同實施例I中步驟111。
步驟2-11’ 向卡片發(fā)送請求選擇應(yīng)答指令;
本實施例中,具體請求選擇應(yīng)答指令為EO、80、CRC。
步驟2-12’ 判斷是否接收到卡片的選擇應(yīng)答響應(yīng);
是,執(zhí)行步驟2-13’ ;否,執(zhí)行步驟2-8’。
步驟2-13’ -MUSB中斷管道方式向上位機發(fā)送選擇應(yīng)答響應(yīng),然后執(zhí)行步驟2-7’ ;本發(fā)明實施例中涉及到的卡片在射頻場和離開射頻場的響應(yīng)均以USB中斷管道方式通知上位機,并將已通知的卡片在射頻場響應(yīng)保存;下次準備通知前,判斷保存的響應(yīng)和將要發(fā)送的響應(yīng)是否一致,一致則不需要上傳通知,否則通知上位機卡片在射頻場,并保存響應(yīng)。
實施例3
參見圖3 (1)、3 (2),實施例3提供了ー種檢測卡片離開射頻場的方法,具體包括 步驟301 :讀卡器上電初始化;
打開通信中斷。
本實施例中,指令標志初始為O,卡片在射頻場標志初始為O。
步驟302 :判斷指令標志是否為I ;
是,執(zhí)行步驟311 ;否,執(zhí)行步驟303。
步驟303 :判斷卡片在射頻場標志是否為I ;
是,執(zhí)行步驟304 ;否,執(zhí)行步驟311。
步驟304 :執(zhí)行檢測卡片操作;
本實施例中,具體檢測卡片操作同實施例I中步驟104。
步驟305 :判斷是否成功接收卡片檢測指令響應(yīng);
是,執(zhí)行步驟306 ;否,執(zhí)行步驟308。
本實施例中,具體判斷操作同實施例I中步驟105。
步驟306 :將卡片在射頻場響應(yīng)以USB中斷管道方式通知上位機,卡片在射頻場標志置I,然后執(zhí)行步驟307,也可以執(zhí)行步驟302 ;
本實施例中,具體的卡片在射頻場響應(yīng)為0x50、0x03。
步驟307 :判斷指令標志是否為I ;
是,執(zhí)行步驟310 ;否,返回步驟304。
步驟308 :將卡片離開射頻場響應(yīng)以USB中斷管道方式通知上位機,卡片在射頻場標志清0,然后執(zhí)行步驟309,也可以執(zhí)行步驟302 ;
步驟309 :判斷指令標志是否為I ;
是,執(zhí)行步驟310 ;否,執(zhí)行步驟311。
步驟310 :指令標志清0,判斷指令類型;
本實施例中,如果讀卡器接收的數(shù)據(jù)第一字節(jié)為0x01時,是通知尋卡指令,則執(zhí)行步驟 311 ;
為0x02時,是APDU指令,則執(zhí)行步驟315 ;
為0x03吋,是擴展指令,則執(zhí)行步驟318 ;
本實施例中,擴展指令可以為開、關(guān)射頻場指令,開、關(guān)燈指令,蜂鳴指令等。
步驟311 :執(zhí)行尋卡操作并判斷操作是否成功;
是,執(zhí)行步驟312 ;否,執(zhí)行步驟308。
本實施例中,具體尋卡操作同實施例I中步驟111。
步驟312 :向卡片發(fā)送請求選擇應(yīng)答指令;
本實施例中,具體請求選擇應(yīng)答指令為EO、80、CRC。
步驟313 :判斷是否接收到卡片的選擇應(yīng)答響應(yīng);是,執(zhí)行步驟314 ;否,執(zhí)行步驟308。
步驟314 :將選擇應(yīng)答響應(yīng)以USB中斷管道方式發(fā)送給上位機;
然后執(zhí)行步驟306。
步驟315 :按指定格式向卡片發(fā)送A數(shù)據(jù);
本實施例中,指定格式具體為PCB、NAD/CID、A數(shù)據(jù)、CRC,此處PCB表示協(xié)議控制字節(jié);NAD表示結(jié)點地址;CID表示卡標識符;CRC表示校驗檢測碼。
步驟316 :判斷是否接收到卡片返回的B數(shù)據(jù);
是,執(zhí)行步驟317 ;否,執(zhí)行步驟308。
步驟317 :將B數(shù)據(jù)以USB中斷管道方式發(fā)送給上位機;
然后執(zhí)行步驟306。
步驟318 :執(zhí)行相應(yīng)指令,并將處理結(jié)果以USB中斷管道方式發(fā)送給上位機,然后執(zhí)行步驟302。
具體操作方法同實施例I中步驟118。
本實施例中,如果發(fā)生通信中斷,則進入中斷處理,如圖3 (2)所示,具體步驟如下 步驟3-1 :進入通信中斷;
步驟3-2 :關(guān)閉中斷;
步驟3-3:清中斷;
步驟3-4 :接收指令,并判斷是否收到有效指令;
是,執(zhí)行步驟3-5 ;否,執(zhí)行步驟3-6。
本實施例中,具體的判斷方法同步驟307。
步驟3-5 :指令標志置I ;
步驟3-6 :打開中斷,退出;
本發(fā)明實施例中涉及到的卡片在射頻場和離開射頻場的響應(yīng)均以USB中斷管道方式通知上位機,并將已通知的卡片在射頻場響應(yīng)保存;下次準備通知前,判斷保存的響應(yīng)和將要發(fā)送的響應(yīng)是否一致,一致則不需要上傳通知,否則通知上位機卡片在射頻場,并保存響應(yīng)。
權(quán)利要求
1.一種檢測非接觸式CPU卡片離開射頻場的方法,其特征在于,包括 步驟A :讀卡器獲取指令,并判斷所述指令是否為有效指令,是則執(zhí)行步驟B,否則執(zhí)行步驟C ; 步驟B :所述讀卡器判斷所述有效指令的類型, 如是通知尋卡指令,則執(zhí)行步驟D ; 如是APDU指令,則將所述APDU指令發(fā)送給卡片,并將卡片返回的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ; 如是擴展指令,則根據(jù)所述擴展指令進行操作,并將操作結(jié)果以USB中斷管道方式發(fā)送給上位機,返回步驟A ; 步驟C :所述讀卡器判斷卡片在射頻場的標志是否置位,是則執(zhí)行步驟E,否則執(zhí)行步驟D; 步驟D :所述讀卡器向卡片發(fā)送尋卡指令,并判斷是否接收到卡片返回的尋卡響應(yīng),是則將卡片在射頻場的標志置位,并將卡片在射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ; 步驟E :所述讀卡器向卡片發(fā)送檢測指令,并判斷是否成功接收卡片返回的檢測響應(yīng),是則保存所述檢測響應(yīng),執(zhí)行步驟F,否則執(zhí)行步驟G ; 步驟F :所述讀卡器將卡片在射頻場的標志置位,并將卡片在射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ; 步驟G :所述讀卡器將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A。
2.如權(quán)利要求I所述的方法,其特征在于,所述將卡片在射頻場的響應(yīng)以USB中斷管道方式通知上位機,具體包括 判斷記錄的卡片狀態(tài)是否為卡片在射頻場,是則返回步驟A,否則用所述卡片在射頻場更新所述記錄的卡片狀態(tài),返回步驟A ; 所述將卡片離開射頻場的響應(yīng)以USB中斷管道方式通知上位機,具體包括 判斷記錄的卡片狀態(tài)是否為卡片離開射頻場,是則返回步驟A,否則用所述卡片離開射頻場更新所述記錄的卡片狀態(tài),返回步驟A。
3.如權(quán)利要求I所述的方法,其特征在于,所述判斷所述指令是否為有效指令,具體包括 所述讀卡器接收從緩沖區(qū)中以中斷方式發(fā)送的指令,如所述指令的第一字節(jié)與預設(shè)字符相符,則接收到有效指令,否則未接收到有效指令。
4.如權(quán)利要求I所述的方法,其特征在于,所述步驟A之前包括 所述讀卡器上電進行初始化,打開通信中斷使能; 所述方法還包括當所述讀卡器檢測到通信中斷時進入通信中斷處理,包括 步驟SI :所述讀卡器關(guān)閉通信中斷使能,清除通信中斷標志; 步驟S2 :所述讀卡器接收上位機下發(fā)的指令,并判斷是否為有效指令,是則將所述指令的標志置位,打開所述通信中斷使能并退出通信中斷處理;否則打開所述通信中斷使能并退出通信中斷處理;所述步驟A具體包括所述讀卡器判斷所述指令的標志是否置位,如置位則將所述指令的標志復位,順序執(zhí)行步驟B,如未置位則執(zhí)行步驟C。
5.如權(quán)利要求4所述的方法,其特征在于,所述步驟S2中判斷是否為有效指令,具體包括 判斷所述指令的第一字節(jié)是否與預設(shè)字符相符,是則接收到有效指令,否則未接收到有效指令。
6.如權(quán)利要求I所述的方法,其特征在于,所述步驟E中所述讀卡器向卡片發(fā)送檢測指令,具體包括如果所述讀卡器是第一次發(fā)送檢測指令,則所述讀卡器向卡片發(fā)送第一預設(shè)字符串;如果所述讀卡器不是第一次發(fā)送檢測指令,則所述讀卡器根據(jù)所述檢測響應(yīng)確定將要發(fā)送的檢測指令,如所述檢測響應(yīng)最后一個比特位的值為O,則所述讀卡器向卡片發(fā)送所述第一預設(shè)字符串;如所述檢測響應(yīng)最后一個比特位的值為1,則所述讀卡器向卡片發(fā)送第ニ預設(shè)字符串。
7.如權(quán)利要求6所述的方法,其特征在于,所述步驟E中判斷是否成功接收卡片返回的檢測響應(yīng),具體包括 如檢測指令為所述第一預設(shè)字符串,所述讀卡器判斷接收到所述卡片返回的響應(yīng)是否為第一檢測響應(yīng),是則成功接收卡片返回的檢測響應(yīng)并進行保存,否則未成功接收卡片返回的檢測響應(yīng); 如檢測指令為所述第二預設(shè)字符串,所述讀卡器判斷接收到所述卡片返回的響應(yīng)是否為第二檢測響應(yīng),是則成功接收卡片返回的檢測響應(yīng)并進行保存,否則未成功接收卡片返回的檢測響應(yīng)。
8.如權(quán)利要求7所述的方法,其特征在于,所述步驟B具體包括 步驟Bll :所述讀卡器判斷所述有效指令的類型,如是通知尋卡指令則執(zhí)行步驟D,如是APDU指令則執(zhí)行步驟B12,如是擴展指令則執(zhí)行步驟B13 ; 步驟B12 :所述讀卡器將所述APDU指令發(fā)送給卡片,判斷是否接收到所述卡片返回的響應(yīng),是則將所述卡片在射頻場的標志置位,并將所述接收到的響應(yīng)以USB中斷管道方式返回給上位機,返回步驟A ;否則將所述卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ; 步驟B13 :所述讀卡器根據(jù)擴展指令進行操作,并將操作結(jié)果以USB中斷管道方式返回給上位機,返回步驟A。
9.如權(quán)利要求8所述的方法,其特征在于,所述步驟D具體包括 步驟Dll :所述讀卡器向卡片發(fā)送第一請求指令,并判斷是否接收到所述卡片返回的第一響應(yīng),是則執(zhí)行步驟D12,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ; 步驟D12 :所述讀卡器向所述卡片發(fā)送包含0x93和0x20的第二請求指令,并獲取所述卡片返回的第一確認信息; 步驟D13 :所述讀卡器根據(jù)所述第一確認信息與固定數(shù)據(jù)計算得到第一數(shù)據(jù),并判斷所述第一數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為1,將卡號信息放在緩沖區(qū)中,順序執(zhí)行步驟D18,否則執(zhí)行步驟D14 ; 步驟D14 :所述讀卡器向所述卡片發(fā)送包含0x95和0x20的第三請求指令,并獲取所述卡片返回的第二確認信息; 步驟D15 :所述讀卡器根據(jù)所述第二確認信息與所述固定數(shù)據(jù)計算得到第二數(shù)據(jù),并判斷所述第二數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為2,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行步驟D18,否則執(zhí)行步驟D16 ; 步驟D16 :所述讀卡器向所述卡片發(fā)送包含0x97和0x20的第四請求指令,并獲取第三確認信息; 步驟D17 :所述讀卡器根據(jù)所述第三確認信息與所述固定數(shù)據(jù)計算得到第三數(shù)據(jù),并判斷所述第三數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為3,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行D18,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ; 步驟D18 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟D19,否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ; 步驟D19 :所述讀卡器將卡片在射頻場的標志置位,并將所述選擇應(yīng)答響應(yīng)和卡片在射頻場的響應(yīng)分別以USB中斷管道方式發(fā)送給所述上位機,返回步驟A。
10.如權(quán)利要求8所述的方法,其特征在于,所述步驟D具體包括 步驟D21 :所述讀卡器向所述卡片發(fā)送第五請求指令,并判斷是否接收到所述卡片返回的第五響應(yīng),是則執(zhí)行步驟D22,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ; 步驟D22 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟D23,否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟A ; 步驟D23 :所述讀卡器將卡片在射頻場的標志置位,并將所述選擇應(yīng)答響應(yīng)和卡片在射頻場的響應(yīng)分別以USB中斷管道方式發(fā)送給所述上位機,返回步驟A。
11.一種檢測非接觸式CPU卡片離開射頻場的方法,其特征在于,包括 步驟a :讀卡器打開定時中斷使能; 步驟b :所述讀卡器等待接收上位機發(fā)送的指令,并判斷是否接收到有效指令,是則判斷所述有效指令的類型,如是通知尋卡指令,則執(zhí)行步驟c ;如是APDU指令,則執(zhí)行步驟d ;如是擴展指令,則執(zhí)行步驟e ;否則執(zhí)行步驟f ; 步驟c :所述讀卡器關(guān)閉定時中斷使能,向卡片發(fā)送尋卡指令,并判斷是否接收到卡片返回的尋卡響應(yīng),是則將卡片在射頻場的標志置位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f;否則將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ; 步驟d:所述讀卡器關(guān)閉定時中斷使能,將所述APDU指令發(fā)送給卡片,并判斷是否接收到卡片返回的響應(yīng),是則將卡片在射頻場的標志置位,并將接收到的響應(yīng)以USB中斷管道方式發(fā)送給上位機,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ;否則將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ;步驟e :所述讀卡器關(guān)閉定時中斷使能,根據(jù)所述擴展指令進行操作,并將操作結(jié)果以USB中斷管道方式發(fā)送給上位機,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ; 步驟f :所述讀卡器判斷所述卡片在射頻場的標志是否置位,是則將卡片在射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ;否則卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ; 當所述讀卡器接收到定時中斷觸發(fā)時進入定時中斷處理,包括 步驟g :所述讀卡器關(guān)閉定時中斷使能,清除定時中斷標志; 步驟h :所述讀卡器判斷卡片在射頻場的標志是否置位,是則執(zhí)行步驟i,否則向卡片發(fā)送尋卡指令,并判斷是否接收到卡片返回的尋卡響應(yīng),是則執(zhí)行步驟1,否則執(zhí)行步驟m ; 步驟i :所述讀卡器向卡片發(fā)送檢測指令,并判斷是否成功接收卡片返回的檢測響應(yīng),是則保存所述檢測響應(yīng),執(zhí)行步驟1,否則執(zhí)行步驟m ; 步驟I :所述讀卡器打開定時中斷使能,退出定時中斷處理; 步驟m:所述讀卡器將所述卡片在射頻場的標志復位,打開定時中斷使能,退出定時中斷處理。
12.如權(quán)利要求11所述的方法,其特征在于,所述步驟c具體包括 步驟cll :所述讀卡器關(guān)閉定時中斷使能,向卡片發(fā)送第一請求指令,并判斷是否接收到所述卡片返回的第一響應(yīng),是則執(zhí)行步驟cl2,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ; 步驟cl2 :所述讀卡器向所述卡片發(fā)送包含0x93和0x20的第二請求指令,并獲取所述卡片返回的第一確認信息; 步驟cl3 :所述讀卡器根據(jù)所述第一確認信息與固定數(shù)據(jù)計算得到第一數(shù)據(jù),并判斷所述第一數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為1,將卡號信息放在緩沖區(qū)中,順序執(zhí)行步驟cl8,否則執(zhí)行步驟cl4 ; 步驟cl4 :所述讀卡器向所述卡片發(fā)送包含0x95和0x20的第三請求指令,并獲取所述卡片返回的第二確認信息; 步驟cl5 :所述讀卡器根據(jù)所述第二確認信息與所述固定數(shù)據(jù)計算得到第二數(shù)據(jù),并判斷所述第二數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為2,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行步驟cl8,否則執(zhí)行步驟cl6 ; 步驟cl6 :所述讀卡器向所述卡片發(fā)送包含0x97和0x20的第四請求指令,并獲取第三確認信息; 步驟cl7 :所述讀卡器根據(jù)所述第三確認信息與所述固定數(shù)據(jù)計算得到第三數(shù)據(jù),并判斷所述第三數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為3,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行cl8,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ; 步驟cl8 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟cl9,否則將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f; 步驟cl9 :所述讀卡器將卡片在射頻場的標志置位,并將所述選擇應(yīng)答響應(yīng)以USB中斷管道方式發(fā)送給所述上位機,打開定時中斷使能,繼續(xù)執(zhí)行步驟f。
13.如權(quán)利要求11所述的方法,其特征在于,所述步驟c具體包括 步驟c21 :所述讀卡器關(guān)閉定時中斷使能,向所述卡片發(fā)送第五請求指令,并判斷是否接收到所述卡片返回的第五響應(yīng),是則執(zhí)行步驟c22,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f ; 步驟c22 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟c23,否則將卡片在射頻場的標志復位,打開定時中斷使能,繼續(xù)執(zhí)行步驟f; 步驟c23 :所述讀卡器將卡片在射頻場的標志置位,并將所述選擇應(yīng)答響應(yīng)以USB中斷管道方式發(fā)送給所述上位機,打開定時中斷使能,繼續(xù)執(zhí)行步驟f。
14.如權(quán)利要求11所述的方法,其特征在于,所述步驟b中如未接收到有效指令吋,繼續(xù)等待接收指令; 所述步驟C-步驟f、步驟I-步驟m分別替換為步驟c’ -步驟e’、步驟I’ -步驟m’ ; 步驟c’ 所述讀卡器關(guān)閉定時中斷使能,向卡片發(fā)送尋卡指令,并判斷是否接收到卡片返回的尋卡響應(yīng),是則將卡片在射頻場的標志置位,并以USB中斷管道方式給上位機發(fā)送卡片在射頻場的響應(yīng),返回步驟a ;否則將卡片在射頻場的標志復位,并以USB中斷管道方式給上位機發(fā)送卡片離開射頻場的響應(yīng),返回步驟a ; 步驟d’ 所述讀卡器關(guān)閉定時中斷使能,將所述APDU指令發(fā)送給卡片,并判斷是否接收到卡片返回的響應(yīng),是則將卡片在射頻場的標志置位,并將接收到的響應(yīng)和卡片在射頻場的響應(yīng)分別以USB中斷管道方式發(fā)送給上位機,返回步驟a ;否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ; 步驟e’所述讀卡器關(guān)閉定時中斷使能,則根據(jù)所述擴展指令進行操作,并將操作結(jié)果以USB中斷管道方式發(fā)送給上位機,返回步驟a ; 步驟I’:所述讀卡器將所述卡片在射頻場的標志置位,并將卡片在射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,打開定時中斷使能,退出定時中斷處理; 步驟m’ 所述讀卡器將所述卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,打開定時中斷使能,退出定時中斷處理。
15.如權(quán)利要求14所述的方法,其特征在于,所述步驟c’具體包括 步驟c,11 :所述讀卡器關(guān)閉定時中斷使能,向卡片發(fā)送第一請求指令,并判斷是否接收到所述卡片返回的第一響應(yīng),是則執(zhí)行步驟c’12,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a; 步驟c’ 12 :所述讀卡器向所述卡片發(fā)送包含0x93和0x20的第二請求指令,并獲取所述卡片返回的第一確認信息; 步驟c’ 13 :所述讀卡器根據(jù)所述第一確認信息與固定數(shù)據(jù)計算得到第一數(shù)據(jù),并判斷所述第一數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為1,將卡號信息放在緩沖區(qū)中,順序執(zhí)行步驟c’ 18,否則執(zhí)行步驟c’ 14; 步驟c’ 14 :所述讀卡器向所述卡片發(fā)送包含0x95和0x20的第三請求指令,并獲取所述卡片返回的第二確認信息; 步驟c’ 15 :所述讀卡器根據(jù)所述第二確認信息與所述固定數(shù)據(jù)計算得到第二數(shù)據(jù),并判斷所述第二數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為2,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行步驟c’ 18,否則執(zhí)行步驟c’ 16; 步驟c’ 16 :所述讀卡器向所述卡片發(fā)送包含0x97和0x20的第四請求指令,并獲取第ニ確認信息; 步驟c’ 17 :所述讀卡器根據(jù)所述第三確認信息與所述固定數(shù)據(jù)計算得到第三數(shù)據(jù),并判斷所述第三數(shù)據(jù)是否為0x00,是則所述卡片的串聯(lián)級別為3,將卡號信息放在所述緩沖區(qū)中,順序執(zhí)行c’ 18,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ; 步驟c’ 18 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟c’19,否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ; 步驟c’ 19 :所述讀卡器將卡片在射頻場的標志置位,并將所述選擇應(yīng)答響應(yīng)和卡片在射頻場的響應(yīng)分別以USB中斷管道方式發(fā)送給所述上位機,返回步驟a。
16.如權(quán)利要求14所述的方法,其特征在于,所述步驟c’具體包括 步驟C,21 :所述讀卡器關(guān)閉定時中斷使能,向所述卡片發(fā)送第五請求指令,并判斷是否接收到所述卡片返回的第五響應(yīng),是則執(zhí)行步驟c’22,否則關(guān)閉射頻場,等待預設(shè)時間后自動打開射頻場,將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a ; 步驟c’ 22 :所述讀卡器向所述卡片發(fā)送請求選擇應(yīng)答指令,并判斷是否接收到卡片返回的選擇應(yīng)答響應(yīng),是則執(zhí)行步驟c’23,否則將卡片在射頻場的標志復位,并將卡片離開射頻場的響應(yīng)以USB中斷管道方式發(fā)送給上位機,返回步驟a。
17.如權(quán)利要求11至16任意一項所述的方法,其特征在干, 所述將卡片在射頻場的響應(yīng)以USB中斷管道方式通知上位機,具體包括 判斷記錄的卡片狀態(tài)是否為卡片在射頻場,是則返回步驟a,否則用所述卡片在射頻場更新所述記錄的卡片狀態(tài),返回步驟a ; 所述將卡片離開在射頻場的響應(yīng)以USB中斷管道方式通知上位機,具體包括 判斷記錄的卡片狀態(tài)是否為卡片離開射頻場,是則返回步驟a,否則用所述卡片離開射頻場更新所述記錄的卡片狀態(tài),返回步驟a。
18.如權(quán)利要求11所述的方法,其特征在于,所述判斷所述指令是否為有效指令,具體包括 所述讀卡器接收從緩沖區(qū)中以中斷方式發(fā)送的指令,如所述指令的第一字節(jié)與預設(shè)字符相符,則接收到有效指令,否則未接收到有效指令。
19.如權(quán)利要求11所述的方法,其特征在于,所述讀卡器向卡片發(fā)送檢測指令,具體包括 如果所述讀卡器是第一次發(fā)送檢測指令,則所述讀卡器向卡片發(fā)送第一預設(shè)字符串;如果所述讀卡器不是第一次發(fā)送檢測指令,則所述讀卡器根據(jù)所述檢測響應(yīng)確定將要發(fā)送的檢測指令,如所述檢測響應(yīng)最后一個比特位的值為0,則所述讀卡器向卡片發(fā)送所述第一預設(shè)字符串;如所述檢測響應(yīng)最后一個比特位的值為1,則所述讀卡器向卡片發(fā)送第ニ預設(shè)字符串。
20.如權(quán)利要求19所述的方法,其特征在于,所述判斷是否成功接收卡片返回的檢測響應(yīng),具體包括 如檢測指令為所述第一預設(shè)字符串,所述讀卡器判斷接收到所述卡片返回的響應(yīng)是否為第一檢測響應(yīng),是則成功接收卡片返回的檢測響應(yīng)并進行保存,否則未成功接收卡片返回的檢測響應(yīng); 如檢測指令為所述第二預設(shè)字符串,所述讀卡器判斷接收到所述卡片返回的響應(yīng)是否為第二檢測響應(yīng),是則成功接收卡片返回的檢測響應(yīng)并進行保存,否則未成功接收卡片返回的檢測響應(yīng)。
全文摘要
本發(fā)明公開一種檢測非接觸CPU卡離開射頻場的方法,涉及智能卡領(lǐng)域。為解決不能進行實時檢測CPU卡片離開射頻場的問題而發(fā)明。該方法包括接收并判斷是否接收到上位機發(fā)送的有效指令,根據(jù)接收到的指令進行相應(yīng)的操作。為通知尋卡指令時,進行尋卡操作,判斷是否收到返回的信息;根據(jù)返回的信息獲取非接觸式卡的卡號信息;為APDU指令時,按指定格式向卡片發(fā)送A數(shù)據(jù),判斷是否收到響應(yīng),將操作結(jié)果發(fā)送給上位機;為擴展指令時,執(zhí)行相應(yīng)操作,并將操作結(jié)果發(fā)送給上位機。當未接收到有效指令時,則判斷卡片在射頻場標志,如果,卡片在射頻場,則進行檢測卡片操作,并將操作結(jié)果發(fā)送給上位機。如果,卡片不在射頻場,則進行尋卡操作。
文檔編號G06K7/00GK102722687SQ20121017413
公開日2012年10月10日 申請日期2012年5月30日 優(yōu)先權(quán)日2012年5月30日
發(fā)明者于華章, 陸舟 申請人:飛天誠信科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1