欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種包含雙處理器的讀卡器的工作方法

文檔序號(hào):8445509閱讀:327來源:國(guó)知局
一種包含雙處理器的讀卡器的工作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種包含雙處理器的讀卡器的工作方法。
【背景技術(shù)】
[0002]讀卡器作為一種讀卡設(shè)備,廣泛應(yīng)用于各個(gè)領(lǐng)域。讀卡器的涵義覆蓋范圍較廣,種類也頗多,如接觸式讀卡器、非接觸式讀卡器、單界面讀卡器、雙界面讀卡器、多卡座接觸式讀卡器等等。通用讀卡器僅包含一個(gè)處理器,如果要增強(qiáng)讀卡器的安全性,那么對(duì)讀卡器中的處理器的要求也必然提高,如要求處理器本身帶有較高級(jí)別的高性能安全管理功能等,但高性能的處理器種類較少,可選擇性差,并且采用高性能的處理器還會(huì)提高讀卡器的成本。

【發(fā)明內(nèi)容】

[0003]本發(fā)明的目的是為了克服現(xiàn)有技術(shù)的缺陷,提供一種提高通信安全性的方法。
[0004]本發(fā)明方法是通過下述技術(shù)方案實(shí)現(xiàn)的:
[0005]本發(fā)明提供一種包含雙處理器的讀卡器的工作方法,包括第一處理器的操作流程和第二處理器的操作流程:
[0006]第一處理器的操作流程包括:
[0007]步驟S10、判斷是否已完成握手操作,若已完成握手操作則執(zhí)行步驟S11,若未完成則向第二處理器發(fā)送包含握手指令的數(shù)據(jù)包,直至接收到所述第二處理器返回的正確握手應(yīng)答后,執(zhí)彳T步驟Sll ;
[0008]步驟S11、判斷是否接收到上位機(jī)發(fā)送的數(shù)據(jù)包,是則將所述上位機(jī)發(fā)送的數(shù)據(jù)包發(fā)送給所述第二處理器,并將所述第二處理器返回的應(yīng)答發(fā)送給所述上位機(jī),返回步驟S10,否則直接返回步驟SlO ;
[0009]所述第一處理器的操作流程還包括:向所述第二處理器發(fā)送包含查詢卡槽狀態(tài)指令的數(shù)據(jù)包,根據(jù)所述第二處理器返回的應(yīng)答判斷是否需要向上位機(jī)上報(bào)卡槽狀態(tài),是則向上位機(jī)上報(bào)卡槽狀態(tài),返回步驟SlO ;否則直接返回步驟SlO ;
[0010]第二處理器的操作流程包括:
[0011]步驟S20、判斷是否接收到所述第一處理器發(fā)送的數(shù)據(jù)包,是則執(zhí)行步驟S21,否則重新執(zhí)行步驟S20 ;
[0012]步驟S21、判斷接收到的數(shù)據(jù)包中包含的指令的類型,若為握手指令則向所述第一處理器返回握手應(yīng)答,返回步驟S20 ;若為查詢卡槽狀態(tài)指令則執(zhí)行步驟S22 ;否則根據(jù)所述接收到的數(shù)據(jù)包中包含的指令執(zhí)行相應(yīng)操作,并向所述第一處理器返回相應(yīng)應(yīng)答,返回步驟S20 ;
[0013]步驟S22、查詢當(dāng)前時(shí)刻卡槽的狀態(tài),向所述第一處理器返回包含查詢到的卡槽狀態(tài)的應(yīng)答,返回步驟S20。
[0014]進(jìn)一步地,所述步驟Sll中,所述將所述上位機(jī)發(fā)送的數(shù)據(jù)包發(fā)送給所述第二處理器之后,還可以包括:判斷在預(yù)設(shè)時(shí)間內(nèi)是否接收到所述第二處理器返回的應(yīng)答,若未接收到則向所述上位機(jī)返回超時(shí)提示信息,返回步驟S10,若接收到則執(zhí)行所述將所述第二處理器返回的應(yīng)答發(fā)送給所述上位機(jī);
[0015]所述執(zhí)行所述將所述第二處理器返回的應(yīng)答發(fā)送給所述上位機(jī)之前,還可以包括判斷所述第二處理器返回的應(yīng)答是否為預(yù)設(shè)類型的應(yīng)答,若為預(yù)設(shè)類型的應(yīng)答則將所述第二處理器返回的應(yīng)答發(fā)送給所述上位機(jī),然后重新判斷在預(yù)設(shè)時(shí)間內(nèi)是否接收到所述第二處理器返回的應(yīng)答;若不為預(yù)設(shè)類型的應(yīng)答則執(zhí)行所述將所述第二處理器返回的應(yīng)答發(fā)送給所述上位機(jī);
[0016]所述判斷所述第二處理器返回的應(yīng)答是否為預(yù)設(shè)類型的應(yīng)答,可以具體包括:判斷所述第二處理器返回的應(yīng)答是否滿足第一個(gè)字節(jié)等于預(yù)設(shè)字節(jié)數(shù)據(jù),且第八個(gè)字節(jié)的最高位和次高位分別等于第一預(yù)設(shè)位數(shù)據(jù)和第二預(yù)設(shè)位數(shù)據(jù),是則所述第二處理器返回的應(yīng)答為預(yù)設(shè)類型的應(yīng)答,否則所述第二處理器返回的應(yīng)答不為預(yù)設(shè)類型的應(yīng)答;
[0017]所述步驟S21中還可以包括:若接收到的數(shù)據(jù)包中包含的指令為發(fā)送數(shù)據(jù)指令,則獲取所述發(fā)送數(shù)據(jù)指令中的APDU,將獲取到的APDU發(fā)送給智能卡,并判斷所述智能卡返回的數(shù)據(jù)是否為延時(shí)申請(qǐng),是則向所述第一處理器發(fā)送所述預(yù)設(shè)類型的應(yīng)答,返回步驟S20,否則根據(jù)所述智能卡返回的數(shù)據(jù)向所述第一處理器返回應(yīng)答,返回步驟S20 ;
[0018]所述步驟S21中還可以包括:若接收到的數(shù)據(jù)包中包含的指令為上電指令,則初始化智能卡接口,給所述智能卡上電,接收所述智能卡返回的復(fù)位應(yīng)答,根據(jù)所述復(fù)位應(yīng)答設(shè)置傳輸協(xié)議類型和所述智能卡接口,并向所述第一處理器返回應(yīng)答,返回步驟S20 ;
[0019]所述傳輸協(xié)議類型可以包括:異步半雙工字符傳輸協(xié)議和異步半雙工分組傳輸協(xié)議;
[0020]所述根據(jù)所述復(fù)位應(yīng)答設(shè)置傳輸協(xié)議類型可以具體包括:當(dāng)所述復(fù)位應(yīng)答中不包含預(yù)設(shè)參數(shù)、或者包含預(yù)設(shè)參數(shù)且預(yù)設(shè)參數(shù)的低半字節(jié)為第一預(yù)設(shè)值時(shí),設(shè)置傳輸協(xié)議類型為所述異步半雙工字符傳輸協(xié)議;當(dāng)所述復(fù)位應(yīng)答中包含預(yù)設(shè)參數(shù)且所述預(yù)設(shè)參數(shù)的低半字節(jié)等于第二預(yù)設(shè)值、或者包含預(yù)設(shè)參數(shù)且所述預(yù)設(shè)參數(shù)中包含低半字節(jié)等于第二預(yù)設(shè)值的預(yù)設(shè)參數(shù)時(shí),設(shè)置所述傳輸協(xié)議類型為所述異步半雙工分組傳輸協(xié)議;
[0021]所述將獲取到的APDU發(fā)送給智能卡之前,還可以包括判斷所述傳輸協(xié)議類型,若為所述異步半雙工分組傳輸協(xié)議,則執(zhí)行所述將獲取到的APDU發(fā)送給智能卡,若為所述異步半雙工字符傳輸協(xié)議,則執(zhí)行以下步驟:
[0022]步驟1-1、發(fā)送獲取到的APDU的數(shù)據(jù)頭給所述智能卡,判斷所述智能卡返回的數(shù)據(jù)是否為預(yù)設(shè)過程字節(jié),是則向所述第一處理器發(fā)送預(yù)設(shè)類型的應(yīng)答,返回步驟S20,否則執(zhí)行步驟1_2 ;
[0023]步驟1-2、判斷是否有APDU數(shù)據(jù)域需要發(fā)送,是則向所述智能卡發(fā)送APDU數(shù)據(jù)域,接收所述智能卡返回的數(shù)據(jù),并根據(jù)所述智能卡返回的數(shù)據(jù)向所述第一處理器返回應(yīng)答,返回步驟S20,否則根據(jù)所述智能卡返回的數(shù)據(jù)向所述第一處理器返回應(yīng)答,返回步驟S20。
[0024]所述步驟S21中,所述向所述第一處理器返回握手應(yīng)答時(shí),還可以包括置位握手成功標(biāo)志;
[0025]所述步驟S22可以具體包括:檢查所述握手成功標(biāo)志是否被置位,若被置位則查詢當(dāng)前時(shí)刻卡槽的狀態(tài),向所述第一處理器返回包含上報(bào)標(biāo)志和查詢到的卡槽狀態(tài)的應(yīng)答,并記錄查詢到的卡槽狀態(tài),返回步驟S20 ;若未被置位則查詢當(dāng)前時(shí)刻卡槽的狀態(tài),判斷查詢到的卡槽狀態(tài)與上一次記錄的卡槽狀態(tài)是否相同,若相同則向所述第一處理器返回包含查詢到的卡槽狀態(tài)的應(yīng)答,返回步驟S20,若不相同則向所述第一處理器返回包含上報(bào)標(biāo)志和查詢到的卡槽狀態(tài)的應(yīng)答,并記錄查詢到的卡槽狀態(tài),返回步驟S20 ;
[0026]所述根據(jù)所述第二處理器返回的應(yīng)答判斷是否需要向上位機(jī)上報(bào)卡槽狀態(tài),可以具體包括:判斷所述第二處理器返回的應(yīng)答中是否包含上報(bào)標(biāo)志,是則需要向上位機(jī)上報(bào)卡槽狀態(tài),否則不需要向上位機(jī)上報(bào)卡槽狀態(tài);
[0027]所述向上位機(jī)上報(bào)卡槽狀態(tài),可以具體包括:將所述第二處理器返回的應(yīng)答中包含的卡槽狀態(tài)發(fā)送給所述上位機(jī)。
[0028]所述根據(jù)所述第二處理器返回的應(yīng)答判斷是否需要向上位機(jī)上報(bào)卡槽狀態(tài),可以具體包括:判斷是否存在上一次記錄的卡槽狀態(tài),且所述上一次記錄的卡槽狀態(tài)與所述第二處理器返回的應(yīng)答中包含的卡槽狀態(tài)相同,是則不需要向上位機(jī)上報(bào)卡槽狀態(tài),否則需要向上位機(jī)上報(bào)卡槽狀態(tài);
[0029]所述向上位機(jī)上報(bào)卡槽狀態(tài),可以具體包括:將所述第二處理器返回的應(yīng)答中包含的卡槽狀態(tài)發(fā)送給所述上位機(jī),并記錄所述第二處理器返回的應(yīng)答中包含的卡槽狀態(tài)。
[0030]所述步驟SlO之前還可以包括:所述第一處理器進(jìn)行初始化,判斷USB枚舉是否成功,是則執(zhí)行所述步驟S10,否則等待USB枚舉成功。
[0031]所述步驟S20之前還可以包括:所述第二處理器進(jìn)行初始化。
[0032]或者,第一處理器的操作流程包括:
[0033]步驟A10、判斷是否已完成握手操作,若已完成握手操作則執(zhí)行步驟All,若未完成則向第二處理器發(fā)送包含握手指令的數(shù)據(jù)包,直至接收到所述第二處理器返回的正確握手應(yīng)答后,執(zhí)彳T步驟All ;
[0034]步驟All、判斷是否接收到上位機(jī)發(fā)送的數(shù)據(jù)包,是則將所述上位機(jī)發(fā)送的數(shù)據(jù)包發(fā)送給所述第二處理器,并將所述第二處理器返回的應(yīng)答發(fā)送給所述上位機(jī),執(zhí)行步驟A12,否則直接執(zhí)行步驟A12 ;
[0035]步驟A12、判斷串口接收標(biāo)志是否被置位,是則將接收緩存中的數(shù)據(jù)發(fā)送給所述上位機(jī),返回步驟All,否則直接返回步驟All ;
[0036]所述第一處理器的操作流程還包括:當(dāng)所述第一處理器接收到串口中斷時(shí),接收所述第二處理器發(fā)送的最新查詢到的卡槽狀態(tài),并將接收到的卡槽狀態(tài)存放到所述接收緩存中,置位串口接收標(biāo)志,退出串口中斷;
[0037]第二處理器的操作流程包括:
[0038]步驟A20、查詢當(dāng)前時(shí)刻卡槽的狀態(tài),記錄查詢到的卡槽狀態(tài);
[0039]步驟A21、判斷是否收到所述第一處理器發(fā)送的數(shù)據(jù)包,是則執(zhí)行步驟A22,否則重新執(zhí)行步驟A21 ;
[0040]步驟A22、判斷接收到的數(shù)據(jù)包中包含的指令的類型,若為握手指令則向所述第一處理器返回握手應(yīng)答,并發(fā)送最新查詢到的卡槽狀態(tài)給所述第一處理器,返回步驟A21,否則根據(jù)所述接收到的數(shù)據(jù)包中包含的指令執(zhí)行相應(yīng)操作,并向所述第一處理器返回相應(yīng)應(yīng)答,返回步驟A21 ;
[0041]所述第二處理器的操作流程還包括:查詢當(dāng)前時(shí)刻卡槽的狀態(tài),并判斷與上一次記錄的卡槽狀態(tài)是否相同,若相同則返回步驟A21,若不相同則記錄查詢到的卡槽狀態(tài),發(fā)送最新查詢到的卡槽狀態(tài)給所述上位機(jī),返回步驟A21。
[0042]進(jìn)一步地,所述步驟All中,所述將所述上位機(jī)發(fā)送的數(shù)據(jù)包發(fā)送給所述第二處理器之后,還可以包括:判斷在預(yù)設(shè)時(shí)間內(nèi)是否接收到所述第二處理器返回的應(yīng)答,若未接收到則向所述上位機(jī)返回超時(shí)提示信息,執(zhí)行步驟A12,若接收到則執(zhí)行所述將所述第二處理器返回的應(yīng)答發(fā)送給所述上位機(jī);
[0043]所述執(zhí)行所述將所述第二處理器返回的應(yīng)答發(fā)送給所述上位機(jī)之前,還可以包括判斷所述第二處理器返回的應(yīng)答是否為預(yù)設(shè)類型的應(yīng)答,若為預(yù)設(shè)類型的應(yīng)答則將所述第二處理器返回的應(yīng)答發(fā)送給所述上位機(jī),然后重新判斷在預(yù)設(shè)時(shí)間內(nèi)是否接收到所述第二處理器返回的應(yīng)答;若不為預(yù)設(shè)類型的應(yīng)答則執(zhí)行所述將所述第二處理器返回的應(yīng)答發(fā)送給所述上位機(jī);
[0044]所述判斷所述第二處理器返回的應(yīng)答是否為預(yù)設(shè)類型的應(yīng)答,可以具體包括:判斷所述第二處理器返回的應(yīng)答是否滿足第一個(gè)字節(jié)等于預(yù)設(shè)字節(jié)數(shù)據(jù),且第八個(gè)字節(jié)的最高位和次高位分別等于第一預(yù)設(shè)位數(shù)據(jù)和第二預(yù)設(shè)位數(shù)據(jù),是則所述第二處理器返回的應(yīng)答為預(yù)設(shè)類型的應(yīng)答,否則所述第二處理器返回的應(yīng)答不為預(yù)設(shè)類型的應(yīng)答;
[0045]所述步驟A22中還可以包括:若接收到的數(shù)據(jù)包中包含的指令為發(fā)送數(shù)據(jù)指令,則獲取所述發(fā)送數(shù)據(jù)指令中的APDU,將獲取到的APDU發(fā)送給智能卡,并判斷所述智能卡返回的數(shù)據(jù)是否為延時(shí)申請(qǐng),是則向所述第
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
饶平县| 临泽县| 玉溪市| 安乡县| 武冈市| 齐河县| 包头市| 宜城市| 皮山县| 荥阳市| 东兰县| 融水| 娱乐| 塔城市| 金沙县| 财经| 从江县| 河源市| 桓台县| 扎鲁特旗| 和平区| 伽师县| 滕州市| 雅安市| 昌吉市| 特克斯县| 东乡族自治县| 张家川| 乌拉特中旗| 达孜县| 板桥市| 东台市| 宁波市| 汉源县| 沙坪坝区| 庆阳市| 高淳县| 平江县| 商丘市| 尉犁县| 三江|