卡在場檢測裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于近場通信領(lǐng)域,尤其涉及一種卡在場檢測裝置及方法。
【背景技術(shù)】
[0002]在IS0-14443所規(guī)范的近場通信中,沒有對檢測非接觸卡是否在讀卡器的有效場內(nèi)進(jìn)行定義,而實(shí)際使用時上層軟件需要檢測卡片是否處于讀卡器的有效場內(nèi),并依此進(jìn)行后續(xù)的交互流程?,F(xiàn)有技術(shù)中采用的方法是讀卡器始終或間歇性地打開通信場,并進(jìn)行尋卡動作,以確認(rèn)是否有卡片已置于讀卡器的有效場內(nèi)。現(xiàn)有技術(shù)中采用的這種尋卡的方式是通過與場內(nèi)的卡進(jìn)行通信的方式來進(jìn)行有卡判斷的,這就不可避免地造成讀卡器的功耗的增加。然而對于通過電池供電的近場通信裝置來講,這樣的額外功耗是難以接受的。
【發(fā)明內(nèi)容】
[0003]為解決現(xiàn)有技術(shù)的缺陷,本發(fā)明提出了一種卡在場檢測裝置及方法,通過對裝置的外部環(huán)境的電容值進(jìn)行測量,并結(jié)合讀寫器尋卡操作流程,來進(jìn)行卡在場的有效檢測。
[0004]本發(fā)明采用的技術(shù)方案包括一種卡在場檢測裝置及方法,具體如下:
[0005]一種卡在場檢測方法,包括:
[0006]步驟1:主控芯片將預(yù)先設(shè)定的基準(zhǔn)值設(shè)置為當(dāng)前基準(zhǔn)值;
[0007]步驟2:所述主控芯片檢測電容傳感器輸出的電容值;
[0008]步驟3:所述主控芯片根據(jù)檢測的電容值、當(dāng)前基準(zhǔn)值和閾值確定卡檢測結(jié)果,若卡檢測結(jié)果是無卡則返回執(zhí)行步驟2,若卡檢測結(jié)果是尋卡則執(zhí)行步驟4 ;
[0009]步驟4:所述主控芯片打開非接場,進(jìn)行尋卡操作;
[0010]步驟5:所述主控芯片判斷尋卡是否成功,是則確定場內(nèi)有卡,結(jié)束;否則關(guān)閉非接場,并根據(jù)檢測的電容值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟2。
[0011]所述打開非接場具體為將非接觸芯片上的第一寄存器的值寫為第二預(yù)設(shè)值,所述關(guān)閉非接場具體為將非接觸芯片上的第一寄存器的值寫為第一預(yù)設(shè)值。
[0012]進(jìn)一步的,所述步驟I之前還包括,主控芯片關(guān)閉非接場,校準(zhǔn)電容傳感器;
[0013]所述步驟2之前還包括,所述主控芯片將非接觸芯片上的第三寄存器的值寫為第三預(yù)設(shè)值使能非接觸芯片的喚醒功能。
[0014]所述進(jìn)行尋卡操作具體包括:主控芯片發(fā)送卡檢測指令,并判斷是否收到卡片應(yīng)答,是則執(zhí)行步驟5,否則用所述檢測的電容值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟2。
[0015]一種卡在場檢測裝置,包括主控芯片和電容傳感器,所述主控芯片包括控制模塊、檢測模塊、判斷模塊和設(shè)置模塊;
[0016]所述控制模塊,用于當(dāng)設(shè)置模塊確定卡檢測結(jié)果為尋卡時打開非接場,以及當(dāng)判斷模塊判斷尋卡失敗時,關(guān)閉非接場并根據(jù)檢測模塊檢測的電容值更新當(dāng)前基準(zhǔn)值;
[0017]所述檢測模塊,用于檢測電容傳感器輸出的電容值;
[0018]所述判斷模塊,用于判斷判斷尋卡操作是否成功;
[0019]所述設(shè)置模塊,用于將預(yù)先設(shè)定的基準(zhǔn)值設(shè)置為當(dāng)前基準(zhǔn)值,用于根據(jù)檢測模塊檢測的電容值、當(dāng)前基準(zhǔn)值和閾值確定卡檢測結(jié)果;
[0020]所述電容傳感器,用于根據(jù)檢測到的外部環(huán)境輸出電容值。
[0021]上述裝置還可以包括非接觸芯片,所述非接觸芯片包括第一寄存器;所述控制模塊具體用于當(dāng)設(shè)置模塊確定卡檢測結(jié)果為尋卡時,將非接觸芯片上的第一寄存器的值寫為第二預(yù)設(shè)值,用于當(dāng)判斷模塊判斷尋卡失敗時,將非接觸芯片上的第一寄存器的值寫為第一預(yù)設(shè)值。
[0022]所述非接觸芯片還包括第二寄存器;所述控制模塊還用于校準(zhǔn)電容傳感器,具體用于將非接觸芯片上的第二寄存器的值寫為第四預(yù)設(shè)值,并向非接觸芯片發(fā)送校準(zhǔn)傳感器命令。
[0023]所述非接觸芯片還包括第三寄存器;所述控制模塊還用于將非接觸芯片上的第三寄存器的值寫為第三預(yù)設(shè)值使能非接觸芯片的喚醒功能。
[0024]進(jìn)一步的,所述主控芯片還包括收發(fā)模塊,所述收發(fā)模塊用于發(fā)送卡檢測指令給卡片,以及接收卡片應(yīng)答;
[0025]所述判斷模塊,還用于判斷所述收發(fā)模塊是否收到卡片應(yīng)答;
[0026]所述控制模塊,還用于控制收發(fā)模塊向卡片發(fā)送卡檢測指令,用于當(dāng)判斷模塊判斷未收到卡片應(yīng)答時,根據(jù)檢測模塊檢測的電容值更新當(dāng)前基準(zhǔn)值。
[0027]采用上述技術(shù)方案達(dá)到的有益效果:通過本發(fā)明提供的卡在場檢測裝置及方法,在沒有卡片靠近時不需要打開通信場,從而降低了設(shè)備的整體功耗;在有卡片靠近時,裝置可以迅速切換到正常的工作方式,完成與卡片之間數(shù)據(jù)的近場交互。同時使用此發(fā)明還可以降低尋卡操作時的功耗,使得依靠電池(特別是小容量電池)供電的近場通信裝置可以有更長的待機(jī)時間。
【附圖說明】
[0028]圖1是本發(fā)明實(shí)施例2提供的一種卡在場檢測方法的流程圖;
[0029]圖2是本發(fā)明實(shí)施例3提供的一種卡在場檢測裝置的組成框圖;
[0030]圖3是本發(fā)明實(shí)施例4提供的一種卡在場檢測方法的流程圖;
[0031]圖4是本發(fā)明圖3中步驟104和步驟105的細(xì)化圖;
[0032]圖5是本發(fā)明實(shí)施例5提供的卡在場檢測方法在讀卡器與卡片交互中的具體應(yīng)用流程圖;
[0033]圖6是本發(fā)明實(shí)施例6提供的卡在場檢測方法在讀卡器與卡片交互中的具體應(yīng)用流程圖;
[0034]圖7是本發(fā)明實(shí)施例6提供的讀卡器與卡片交互中的定時器中斷處理流程圖;
[0035]圖8是本發(fā)明實(shí)施例7提供的卡在場檢測方法在讀卡器與卡片交互中的具體應(yīng)用流程圖。
【具體實(shí)施方式】
[0036]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式做進(jìn)一步地詳細(xì)描述。本發(fā)明提供的方法針對的卡片類型是非接觸卡,例如TypeA卡、TypeB 卡和 Felica 卡。
[0037]實(shí)施例1
[0038]本實(shí)施例1提供的一種卡在場檢測裝置,包括主控芯片和電容傳感器;
[0039]所述主控芯片,用于控制非接場的打開和關(guān)閉,用于檢測電容傳感器輸出的電容值,根據(jù)檢測的電容值保存一個新基準(zhǔn)值;用于根據(jù)檢測的電容值、當(dāng)前基準(zhǔn)值和閾值確定卡檢測結(jié)果;用于當(dāng)卡檢測結(jié)果為尋卡時打開非接場進(jìn)行尋卡操作;用于判斷尋卡操作是否成功,并在尋卡操作成功時標(biāo)識當(dāng)前卡狀態(tài)為有卡,在尋卡操作失敗時關(guān)閉非接場,并用新基準(zhǔn)值更新當(dāng)前基準(zhǔn)值。
[0040]所述電容傳感器,用于根據(jù)檢測到的外部環(huán)境輸出電容值。
[0041]具體的,上述主控芯片包括控制模塊、檢測模塊、判斷模塊和設(shè)置模塊;
[0042]所述控制模塊,用于當(dāng)設(shè)置模塊確定卡檢測結(jié)果為尋卡時打開非接場,以及當(dāng)判斷模塊判斷尋卡失敗時,關(guān)閉非接場并根據(jù)檢測模塊檢測并保存的新基準(zhǔn)值更新當(dāng)前基準(zhǔn)值;還可以用于校準(zhǔn)電容傳感器;
[0043]所述檢測模塊,用于檢測電容傳感器輸出的電容值,以及根據(jù)檢測的電容值保存一個新基準(zhǔn)值;
[0044]所述判斷模塊,用于判斷尋卡操作是否成功;
[0045]所述設(shè)置模塊,用于將預(yù)先設(shè)定的基準(zhǔn)值設(shè)置為當(dāng)前基準(zhǔn)值,用于根據(jù)檢測模塊檢測的電容值、當(dāng)前基準(zhǔn)值和閾值確定卡檢測結(jié)果。
[0046]由上可知,本實(shí)施例提供的裝置通過檢測外部電容值來判斷卡片是否在場,當(dāng)卡片在場時打開通信場進(jìn)行尋卡操作,若尋卡成功則確定場內(nèi)存在可以進(jìn)行通信的卡片,與卡片進(jìn)行通信,待通信結(jié)束后關(guān)閉通信場,相比現(xiàn)有的讀卡裝置始終打開通信場進(jìn)行尋卡操作,本發(fā)明提供的裝置可以有效降低設(shè)備功耗。
[0047]實(shí)施例2
[0048]本發(fā)明實(shí)施例2提供了一種卡在場檢測方法,本實(shí)施例提供的方法是基于實(shí)施例1提供的裝置實(shí)現(xiàn)的,如圖1所示,該方法包括:
[0049]步驟1:主控芯片將預(yù)先設(shè)定的基準(zhǔn)值作為當(dāng)前基準(zhǔn)值;
[0050]進(jìn)一步的,本步驟還可以包括主控芯片關(guān)閉非接場,校準(zhǔn)電容傳感器。
[0051]步驟2:主控芯片檢測所述電容傳感器輸出的電容值,根據(jù)檢測的電容值保存一個新基準(zhǔn)值;
[0052]步驟3:主控芯片根據(jù)檢測的電容值、當(dāng)前基準(zhǔn)值和閾值確定卡檢測結(jié)果,若卡檢測結(jié)果是無卡則返回執(zhí)行步驟2,若卡檢測結(jié)果是尋卡則執(zhí)行步驟4,若卡檢測結(jié)果是更新基準(zhǔn)則用新基準(zhǔn)值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟2,若卡檢測結(jié)果是移卡則結(jié)束;
[0053]步驟4:主控芯片打開非接場,進(jìn)行尋卡操作;
[0054]具體的,主控芯片通過向卡片發(fā)送指令進(jìn)行尋卡操作。
[0055]步驟5:主控芯片判斷尋卡是否成功,是則執(zhí)行步驟6,否則關(guān)閉非接場,用新基準(zhǔn)值更新當(dāng)前基準(zhǔn)值后返回執(zhí)行步驟2 ;
[0056]具體的,通過判斷卡片是否返回卡片應(yīng)答(ATS)來判斷尋卡是否成功,若收到卡片返回的ATS則表示尋卡成功,否則表示尋卡失敗。
[0057]步驟6:主控芯片標(biāo)識當(dāng)前卡狀態(tài)為有卡。
[0058]本實(shí)施例提供的卡在場檢測方法,在步驟I即一開始是關(guān)閉非接場的,僅在檢測到外部環(huán)境電容值的變化量超過閾值時,才打開非接場進(jìn)行尋卡操作,相比現(xiàn)有技術(shù)中的讀卡器一直處于開場狀態(tài)且通過不斷尋卡的方式來檢測卡片是否存在,本發(fā)明可以有效降低裝置的整體功耗和提高裝置的響應(yīng)速度。
[0059]實(shí)施例3
[0060]本發(fā)明的實(shí)施例3提供了一種卡在場檢測裝置,如圖3所示,該裝置包括主控芯片I和非接觸芯片2。
[0061]其中,所述主控芯片I包括控制模塊101、檢測模塊102、判斷模塊103、設(shè)置模塊104和收發(fā)模塊105。
[0062]所述控制模塊101,用于控制非接觸芯片2打開