1]步驟503:讀卡器解析接收到的指令,若是擴展指令則執(zhí)行步驟504,若是尋卡指令則執(zhí)行步驟505,若是標(biāo)準(zhǔn)APDU指令則執(zhí)行步驟514 ;
[0172]步驟504:讀卡器關(guān)閉非接場,置位移卡標(biāo)志,然后執(zhí)行步驟506 ;
[0173]步驟505:讀卡器關(guān)閉非接場,給電容傳感器設(shè)置增益值并校準(zhǔn)電容傳感器;
[0174]步驟506:讀卡器檢測所述電容傳感器輸出的電容值,根據(jù)檢測的電容值保存一個新基準(zhǔn)值;
[0175]步驟507:讀卡器根據(jù)檢測的電容值、當(dāng)前基準(zhǔn)值和閾值確定卡檢測結(jié)果,若卡檢測結(jié)果為尋卡則執(zhí)行步驟510,若卡檢測結(jié)果為無卡則執(zhí)行步驟508,若卡檢測結(jié)果為移卡則執(zhí)行步驟509,若卡檢測結(jié)果為更新基準(zhǔn)則用新基準(zhǔn)值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟506 ;
[0176]步驟508:讀卡器向上位機返回包含無卡信息的指令響應(yīng),然后返回步驟502 ;
[0177]步驟509:讀卡器復(fù)位移卡標(biāo)志,向上位機返回包含卡被移走信息的指令響應(yīng),然后返回步驟502 ;
[0178]步驟510:讀卡器判斷移卡標(biāo)志是否置位,是則返回執(zhí)行步驟506,否則執(zhí)行步驟511 ;
[0179]步驟511:讀卡器打開非接場,執(zhí)行尋卡操作;
[0180]步驟512:讀卡器判斷尋卡是否成功,是則執(zhí)行步驟513,否則關(guān)閉非接場,用新基準(zhǔn)值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟506 ;
[0181]步驟513:讀卡器標(biāo)識當(dāng)前卡狀態(tài)為有卡,向上位機返回包含有卡信息的指令響應(yīng),然后返回步驟502。
[0182]步驟514:讀卡器判斷當(dāng)前卡狀態(tài)是否為有卡,是則執(zhí)行步驟515,否則執(zhí)行步驟517 ;
[0183]步驟515:讀卡器將接收到的指令發(fā)送給卡片,并接收卡片返回的指令響應(yīng);
[0184]步驟516:讀卡器將卡片返回的指令響應(yīng)返回給上位機,然后返回步驟502 ;
[0185]步驟517:讀卡器向上位機返回包含無卡信息的指令響應(yīng),然后返回步驟502。
[0186]以上所述的實施例只是本發(fā)明較優(yōu)選的【具體實施方式】,本領(lǐng)域的技術(shù)人員在本發(fā)明技術(shù)方案范圍內(nèi)進(jìn)行的通常變化和替換都應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項】
1.一種卡在場檢測方法,其特征是,所述方法包括: 步驟1:主控芯片將預(yù)先設(shè)定的基準(zhǔn)值設(shè)置為當(dāng)前基準(zhǔn)值; 步驟2:所述主控芯片檢測電容傳感器輸出的電容值; 步驟3:所述主控芯片根據(jù)檢測的電容值、當(dāng)前基準(zhǔn)值和閾值確定卡檢測結(jié)果,若卡檢測結(jié)果是無卡則返回執(zhí)行步驟2,若卡檢測結(jié)果是尋卡則執(zhí)行步驟4 ; 步驟4:所述主控芯片打開非接場,進(jìn)行尋卡操作; 步驟5:所述主控芯片判斷尋卡是否成功,是則確定場內(nèi)有卡,結(jié)束;否則關(guān)閉非接場,并根據(jù)檢測的電容值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟2。
2.根據(jù)權(quán)利要求1所述的一種卡在場檢測方法,其特征是,所述打開非接場具體為將非接觸芯片上的第一寄存器的值寫為第二預(yù)設(shè)值,所述關(guān)閉非接場具體為將非接觸芯片上的第一寄存器的值寫為第一預(yù)設(shè)值。
3.根據(jù)權(quán)利要求1所述的一種卡在場檢測方法,其特征是,所述步驟I之前還包括,主控芯片關(guān)閉非接場,校準(zhǔn)電容傳感器; 所述校準(zhǔn)傳感器具體為:將非接觸芯片上的第二寄存器的值寫為第四預(yù)設(shè)值,向非接觸芯片發(fā)送校準(zhǔn)傳感器命令。
4.根據(jù)權(quán)利要求1所述的一種卡在場檢測方法,其特征是,所述步驟2之前還包括,所述主控芯片將非接觸芯片上的第三寄存器的值寫為第三預(yù)設(shè)值使能非接觸芯片的喚醒功會K。
5.根據(jù)權(quán)利要求1所述的一種卡在場檢測方法,其特征是,所述進(jìn)行尋卡操作具體包括:主控芯片發(fā)送卡檢測指令,并判斷是否收到卡片應(yīng)答,是則執(zhí)行步驟5,否則用所述檢測的電容值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟2。
6.根據(jù)權(quán)利要求1所述的一種卡在場檢測方法,其特征是,所述步驟2和步驟3具體包括: 步驟al:檢測電容傳感器的輸出并獲取一個電容值,將檢測獲取的電容值與當(dāng)前基準(zhǔn)值比較,若大于當(dāng)前基準(zhǔn)值則執(zhí)行步驟a2,若小于當(dāng)前基準(zhǔn)值則執(zhí)行步驟a2’,若等于當(dāng)前基準(zhǔn)值則確定卡檢測結(jié)果為無卡; 步驟a2:判斷用所述電容值減去當(dāng)前基準(zhǔn)值得到的差值是否大于閾值,是則確定卡檢測結(jié)果為尋卡,否則確定卡檢測結(jié)果為無卡; 步驟a2’:判斷用當(dāng)前基準(zhǔn)值減去所述電容值得到的差值是否大于閾值,是則確定卡檢測結(jié)果為更新基準(zhǔn),否則確定卡檢測結(jié)果為無卡; 所述步驟3還包括,若卡檢測結(jié)果是更新基準(zhǔn)則用檢測獲取的電容值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟2。
7.根據(jù)權(quán)利要求1所述的一種卡在場檢測方法,其特征是,所述步驟2和步驟3具體包括: 步驟al:檢測電容傳感器的輸出,根據(jù)采樣個數(shù)采樣獲取多個電容值數(shù)據(jù),對獲取的多個電容值數(shù)據(jù)計算獲得一個平均值,將所述平均值與當(dāng)前基準(zhǔn)值比較,若大于當(dāng)前基準(zhǔn)值則執(zhí)行步驟a2,若小于當(dāng)前基準(zhǔn)值則執(zhí)行步驟a2’,若等于當(dāng)前基準(zhǔn)值則確定卡檢測結(jié)果為無卡; 步驟a2:判斷用所述平均值減去當(dāng)前基準(zhǔn)值得到的差值是否大于閾值,是則確定卡檢測結(jié)果為尋卡,否則確定卡檢測結(jié)果為無卡; 步驟a2’:判斷用當(dāng)前基準(zhǔn)值減去所述平均值得到的差值是否大于閾值,是則確定卡檢測結(jié)果為更新基準(zhǔn),否則確定卡檢測結(jié)果為無卡; 所述步驟3還包括,若卡檢測結(jié)果是更新基準(zhǔn)則用所述平均值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟2。
8.根據(jù)權(quán)利要求1所述的一種卡在場檢測方法,其特征是,所述步驟2和步驟3具體包括: 步驟al:檢測電容傳感器的輸出,根據(jù)預(yù)設(shè)采樣個數(shù)采樣獲取多個電容值數(shù)據(jù),對獲取的多個電容值數(shù)據(jù)計算獲得一個平均值,將計算得到的平均值存入預(yù)設(shè)數(shù)組; 步驟a2:判斷預(yù)設(shè)數(shù)組中的平均值的個數(shù)是否達(dá)到預(yù)先設(shè)定的個數(shù),是則將預(yù)設(shè)數(shù)組中最后一個存入的平均值保存為新基準(zhǔn)值,執(zhí)行步驟a3,否則返回執(zhí)行步驟al ; 步驟a3:將預(yù)設(shè)數(shù)組中的各個平均值分別與當(dāng)前基準(zhǔn)值比較,若各個平均值均大于當(dāng)前基準(zhǔn)值則執(zhí)行步驟a4,若各個平均值均小于基準(zhǔn)值則執(zhí)行步驟a4’,否則確定卡檢測結(jié)果為無卡; 步驟a4:用各個平均值減去基準(zhǔn)值,判斷得到的各個差值與閾值的大小,若各個差值均小于閾值則確定卡檢測結(jié)果為無卡,若各個差值均大于閾值則確定卡檢測結(jié)果為尋卡;否則判斷各個差值是否依次減小且最大差值大于閾值、最小差值小于閾值,是則確定卡檢測結(jié)果為移卡,否則確定卡檢測結(jié)果為無卡; 步驟a4’:用基準(zhǔn)值分別減去各個平均值,判斷得到的各個差值與閾值的大小,若各個差值均大于閾值則確定卡檢測結(jié)果為更新基準(zhǔn),否則確定卡檢測結(jié)果為無卡; 所述步驟3還包括,若卡檢測結(jié)果是更新基準(zhǔn)則用所述新基準(zhǔn)值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟2 ;若卡檢測結(jié)果為移卡,則結(jié)束。
9.一種適用權(quán)利要求1所述卡在場檢測方法的讀卡器的工作方法,其特征是包括: 步驟Al:讀卡器上電,初始化當(dāng)前卡狀態(tài)為無卡,將預(yù)先設(shè)定的基準(zhǔn)值設(shè)置為當(dāng)前基準(zhǔn)值; 步驟A2:讀卡器判斷當(dāng)前卡狀態(tài)是否為有卡,是則執(zhí)行步驟A10,否則執(zhí)行步驟A3 ; 步驟A3:讀卡器關(guān)閉非接場,給電容傳感器設(shè)置增益值并校準(zhǔn)電容傳感器; 步驟A4:讀卡器檢測所述電容傳感器輸出的電容值,根據(jù)檢測的電容值保存一個新基準(zhǔn)值; 步驟A 5:讀卡器根據(jù)檢測的電容值、當(dāng)前基準(zhǔn)值和閾值確定卡檢測結(jié)果,若卡檢測結(jié)果為尋卡則執(zhí)行步驟A6,若卡檢測結(jié)果為無卡則返回執(zhí)行步驟A4,若卡檢測結(jié)果為移卡則復(fù)位移卡標(biāo)志,返回執(zhí)行步驟A2,若卡檢測結(jié)果為更新基準(zhǔn)則用所述新基準(zhǔn)值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟A4; 步驟A6:讀卡器判斷移卡標(biāo)志是否置位,是則返回執(zhí)行步驟A4,否則執(zhí)行步驟A7 ; 步驟A7:讀卡器打開非接場,執(zhí)行尋卡操作; 步驟AS:讀卡器判斷尋卡是否成功,是則執(zhí)行步驟A9,否則關(guān)閉非接場,用所述新基準(zhǔn)值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟A4 ; 步驟A9:讀卡器標(biāo)識當(dāng)前卡狀態(tài)為有卡,并向上位機返回當(dāng)前卡狀態(tài),然后返回執(zhí)行步驟A2 ; 步驟AlO:讀卡器等待接收上位機發(fā)送的指令,當(dāng)接收到指令時執(zhí)行步驟All ; 步驟All:讀卡器解析接收到的指令,若是標(biāo)準(zhǔn)APDU指令,則執(zhí)行步驟A12,若是擴展指令則執(zhí)行步驟A14; 步驟A12:讀卡器將接收到的指令發(fā)送給卡片,并接收卡片返回的指令響應(yīng); 步驟A13:讀卡器將卡片返回的指令響應(yīng)返回給上位機,然后返回執(zhí)行步驟AlO ; 步驟A14:讀卡器關(guān)閉非接場,置位移卡標(biāo)志,返回執(zhí)行步驟A4。
10.一種適用權(quán)利要求1所述卡在場檢測方法的讀卡器的工作方法,其特征是包括: 步驟B1:讀卡器上電,初始化當(dāng)前卡狀態(tài)為無卡,將預(yù)先設(shè)定的基準(zhǔn)值設(shè)置為當(dāng)前基準(zhǔn)值,打開定時器中斷; 步驟B2:讀卡器判斷當(dāng)前卡狀態(tài)是否為有卡,是則執(zhí)行步驟B10,否則執(zhí)行步驟B3 ; 步驟B3:讀卡器關(guān)閉非接場; 步驟B4:讀卡器清除卡檢測標(biāo)識; 當(dāng)所述定時器中斷被觸發(fā)時,進(jìn)入定時器中斷,執(zhí)行步驟4-1至步驟4-3: 步驟4-1:讀卡器給電容傳感器設(shè)置增益值并校準(zhǔn)電容傳感器; 步驟4-2:讀卡器檢測所述電容傳感器輸出的電容值,并根據(jù)檢測結(jié)果保存一個新基準(zhǔn)值; 步驟4-3:讀卡器判斷檢測的電容值、預(yù)先設(shè)定的基準(zhǔn)值和閾值所滿足的預(yù)設(shè)條件,若滿足第一預(yù)設(shè)條件則設(shè)置卡檢測標(biāo)識為無卡,若滿足第二預(yù)設(shè)條件則設(shè)置卡檢測標(biāo)識為尋卡,若滿足第三預(yù)設(shè)條件則設(shè)置卡檢測標(biāo)識為移卡,若滿足第四預(yù)設(shè)條件則設(shè)置卡檢測標(biāo)識為更新基準(zhǔn);退出定時器中斷; 步驟B5:讀卡器判斷卡檢測標(biāo)識,若為尋卡則執(zhí)行步驟B6,若為無卡則返回執(zhí)行步驟B4,若為移卡則復(fù)位移卡標(biāo)志,返回執(zhí)行步驟B2,若為更新基準(zhǔn)則用新基準(zhǔn)值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟B4; 步驟B6:讀卡器判斷移卡標(biāo)志是否置位,是則返