一種模擬通信插件及其工作方法
【專利摘要】本發(fā)明公開一種模擬通信插件及其工作方法,應(yīng)用于包括芯片操作系統(tǒng)、特殊功能寄存器、模擬通信插件和模擬讀卡器的模擬通信系統(tǒng)中,其中,模擬通信插件是IDE啟動時所加載的插件,用于建立芯片操作系統(tǒng)與模擬讀卡器之間的通信;模擬讀卡器用于接收并處理來自芯片操作系統(tǒng)的數(shù)據(jù),以及向芯片操作系統(tǒng)發(fā)送數(shù)據(jù)。本發(fā)明通過調(diào)用模擬通信插件的外部接口,設(shè)置數(shù)據(jù)寄存器,并通過對數(shù)據(jù)寄存器的讀寫操作,實現(xiàn)芯片操作系統(tǒng)和模擬讀卡器之間的模擬通信,提高了模擬通信的實時性和可靠性,解決了現(xiàn)有技術(shù)中調(diào)試資源短缺的缺陷,縮短協(xié)議棧的開發(fā)周期,節(jié)省了協(xié)議棧的開發(fā)成本,提高了開發(fā)效率。
【專利說明】一種模擬通信插件及其工作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別是涉及一種模擬通信插件及其工作方法。
【背景技術(shù)】
[0002]目前,UICC (Universal Integrated Circuit Card,通用集成電路卡)端的 SWP(Single Wire Protocol,單線協(xié)議)/HCI (Host Controller Interface,主機控制接口)協(xié)議棧的開發(fā),通常是在硬仿真環(huán)境下進行的。通過仿真器與開發(fā)板的調(diào)試接口相連,編寫代碼并編譯鏈接后,即可將測試代碼下載到開發(fā)板,并啟動調(diào)試以除錯,從而仿真出開發(fā)板上的模擬的芯片和資源。
[0003]發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺陷:
[0004]現(xiàn)有技術(shù)中,當(dāng)使用IDE( Integrated Development Environment,集成開發(fā)環(huán)境)進行協(xié)議棧的開發(fā)時,IDE與仿真器之間會產(chǎn)生通信的實時性限制,調(diào)試較困難;而采用芯片商提供的開發(fā)板進行調(diào)試時,由于開發(fā)板資源有限,會導(dǎo)致調(diào)試資源短缺的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供了一種模擬通信插件及其工作方法,以解決現(xiàn)有技術(shù)中的調(diào)試資源短缺以及通信實時性限制的缺陷。
[0006]本發(fā)明提供了一種模擬通信插件的工作方法,包括以下步驟:
[0007]S1、模擬通信插件等待被調(diào)用;
[0008]S2、當(dāng)所述模擬通信插件的外部接口被調(diào)用時,執(zhí)行步驟S3 ;當(dāng)所述模擬通信插件的第一回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟S7;當(dāng)所述模擬通信插件的第二回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟S9 ;當(dāng)所述模擬通信插件的第三回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟S12 ;
[0009]S3、所述模擬通信插件獲取操作碼和參數(shù),對所述操作碼的取值進行判斷,如果所述操作碼的取值為第一預(yù)設(shè)值,則執(zhí)行步驟S4 ;如果所述操作碼的取值為第二預(yù)設(shè)值,則執(zhí)行步驟S5 ;如果所述操作碼的取值為第三預(yù)設(shè)值,則執(zhí)行步驟S6 ;
[0010]S4、所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息,根據(jù)所述插件配置信息對數(shù)據(jù)寄存器進行初始化,將所述第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行寫操作;將所述第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù);將所述第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行讀操作,并返回步驟Si ;
[0011]S5、所述模擬通信插件執(zhí)行復(fù)位操作,并返回步驟SI ;
[0012]S6、所述模擬通信插件執(zhí)行下電操作,并返回步驟SI ;
[0013]S7、所述模擬通信插件將通信狀態(tài)設(shè)置為忙狀態(tài),從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),根據(jù)第一地址將讀取到的數(shù)據(jù)保存到第一緩沖區(qū)中,更新所述第一地址;
[0014]S8、所述模擬通信插件將通信狀態(tài)設(shè)置為閑狀態(tài),并返回步驟SI ;
[0015]S9、所述模擬通信插件將所述第一緩沖區(qū)中的數(shù)據(jù)發(fā)送給模擬讀卡器,對所述第一地址進行初始化,等待接收來自所述模擬讀卡器的數(shù)據(jù);
[0016]S10、所述模擬通信插件接收到來自所述模擬讀卡器的數(shù)據(jù)后,將接收到的數(shù)據(jù)保存到第二緩沖區(qū)中;
[0017]S11、所述模擬通信插件根據(jù)第二地址從所述第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,更新所述第二地址,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),并返回步驟Si ;
[0018]S12、所述模擬通信插件將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài),判斷所述第二緩沖區(qū)中是否有需要發(fā)送給所述芯片操作系統(tǒng)的數(shù)據(jù),如果是,則返回步驟Sll ;否則,對所述第二地址進行初始化,并返回步驟Si。
[0019]本發(fā)明還提供了一種模擬通信插件的工作方法,包括以下步驟:
[0020]S1、模擬通信插件等待被調(diào)用;
[0021]S2、當(dāng)所述模擬通信插件的外部接口被調(diào)用時,執(zhí)行步驟S3;當(dāng)所述模擬通信插件的第一回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟S7 ;當(dāng)所述模擬通信插件的第二回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟S9 ;當(dāng)所述模擬通信插件的第三回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟Sll ;
[0022]S3、所述模擬通信插件獲取操作碼和參數(shù),對所述操作碼的取值進行判斷,如果所述操作碼的取值為第一預(yù)設(shè)值,則執(zhí)行步驟S4 ;如果所述操作碼的取值為第二預(yù)設(shè)值,則執(zhí)行步驟S5 ;如果所述操作碼的取值為第三預(yù)設(shè)值,則執(zhí)行步驟S6 ;
[0023]S4、所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息,根據(jù)所述插件配置信息對數(shù)據(jù)寄存器進行初始化,將所述第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行寫操作;將所述第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:通信方式為接收數(shù)據(jù)且所述芯片操作系統(tǒng)對通信狀態(tài)進行判斷;將所述第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行讀操作,并返回步驟Si ;
[0024]S5、所述模擬通信插件執(zhí)行復(fù)位操作,并返回步驟SI ;
[0025]S6、所述模擬通信插件執(zhí)行下電操作,并返回步驟SI ;
[0026]S7、所述模擬通信插件將通信狀態(tài)設(shè)置為忙狀態(tài),從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)發(fā)送給模擬讀卡器;
[0027]S8、所述模擬通信插件將通信狀態(tài)設(shè)置為閑狀態(tài),并返回步驟SI ;
[0028]S9、所述模擬通信插件等待接收來自所述模擬讀卡器的數(shù)據(jù);
[0029]S10、所述模擬通信插件判斷是否在預(yù)設(shè)時間內(nèi)接收到來自所述模擬讀卡器的數(shù)據(jù),如果是,則將來自所述模擬讀卡器的一個字節(jié)的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),并返回步驟SI ;否則,返回步驟SI ;
[0030]S11、所述模擬通信插件將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài),并返回步驟SI。
[0031]本發(fā)明還提供了一種模擬通信插件,具有可被調(diào)用的外部接口,所述模擬通信插件包括:
[0032]第一獲取模塊,用于在所述外部接口被調(diào)用時,獲取操作碼和參數(shù);
[0033]第一判斷模塊,用于對所述第一獲取模塊獲取的所述操作碼的取值進行判斷;
[0034]第二獲取模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第一預(yù)設(shè)值時,根據(jù)所述參數(shù)獲取插件配置信息;
[0035]第一初始化模塊,用于根據(jù)所述第二獲取模塊獲取的所述插件配置信息對數(shù)據(jù)寄存器進行初始化,將第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行寫操作;將第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù);將第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行讀操作;
[0036]復(fù)位模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預(yù)設(shè)值時,執(zhí)行復(fù)位操作;
[0037]下電模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第三預(yù)設(shè)值時,執(zhí)行下電操作;
[0038]第一處理模塊,用于在所述第一回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為忙狀態(tài),從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),根據(jù)第一地址將讀取到的數(shù)據(jù)保存到第一緩沖區(qū)中,更新所述第一地址;
[0039]第一設(shè)置模塊,用于在所述第一處理模塊從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)后,將通信狀態(tài)設(shè)置為閑狀態(tài);
[0040]第二處理模塊,用于在所述第二回調(diào)函數(shù)被調(diào)用時,將所述第一緩沖區(qū)中的數(shù)據(jù)發(fā)送給模擬讀卡器,對所述第一地址進行初始化;
[0041]接收模塊,用于接收來自所述模擬讀卡器的數(shù)據(jù),將接收到的數(shù)據(jù)保存到第二緩沖區(qū)中,觸發(fā)第三處理模塊;
[0042]第三處理模塊,用于根據(jù)第二地址從所述第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,更新所述第二地址;
[0043]第二設(shè)置模塊,用于在所述第三處理模塊將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中后,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài);
[0044]第三設(shè)置模塊,用于在所述第三回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài);
[0045]第二判斷模塊,用于在所述第三設(shè)置模塊將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài)后,判斷所述第二緩沖區(qū)中是否有需要發(fā)送給所述芯片操作系統(tǒng)的數(shù)據(jù),并在判斷出所述第二緩沖區(qū)中有需要發(fā)送給所述芯片操作系統(tǒng)的數(shù)據(jù)時,觸發(fā)所述第三處理模塊;
[0046]第二初始化模塊,用于在所述第二判斷模塊判斷出所述第二緩沖區(qū)中有需要發(fā)送給所述芯片操作系統(tǒng)的數(shù)據(jù)時,對所述第二地址進行初始化。
[0047]本發(fā)明還提供了 一種模擬通信插件,具有可被調(diào)用的外部接口,所述模擬通信插件包括:
[0048]第一獲取模塊,用于在所述外部接口被調(diào)用時,獲取操作碼和參數(shù);
[0049]第一判斷模塊,用于對所述第一獲取模塊獲取的所述操作碼的取值進行判斷;
[0050]第二獲取模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第一預(yù)設(shè)值時,根據(jù)所述參數(shù)獲取插件配置信息;
[0051]初始化模塊,用于根據(jù)所述第二獲取模塊獲取的所述插件配置信息對數(shù)據(jù)寄存器進行初始化,將第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行寫操作;將第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:通信方式為接收數(shù)據(jù)且所述芯片操作系統(tǒng)對通信狀態(tài)進行判斷;將第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行讀操作;[0052]復(fù)位模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預(yù)設(shè)值時,執(zhí)行復(fù)位操作;
[0053]下電模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第三預(yù)設(shè)值時,執(zhí)行下電操作;
[0054]第一處理模塊,用于在所述第一回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為忙狀態(tài),從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)發(fā)送給模擬讀卡器;
[0055]第一設(shè)置模塊,用于在所述第一處理模塊從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)后,將通信狀態(tài)設(shè)置為閑狀態(tài);
[0056]第二判斷模塊,用于在所述第二回調(diào)函數(shù)被調(diào)用時,判斷是否在預(yù)設(shè)時間內(nèi)接收到來自所述模擬讀卡器的數(shù)據(jù);
[0057]第二處理模塊,用于在所述第二判斷模塊判斷出在預(yù)設(shè)時間內(nèi)接收到來自所述模擬讀卡器的數(shù)據(jù)時,將來自所述模擬讀卡器的一個字節(jié)的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài);
[0058]第二設(shè)置模塊,用于在所述第三回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài)。
[0059]本發(fā)明達到的有益效果:通過調(diào)用模擬通信插件的外部接口,設(shè)置數(shù)據(jù)寄存器,并通過對數(shù)據(jù)寄存器的讀寫操作,實現(xiàn)芯片操作系統(tǒng)和模擬讀卡器之間的模擬通信,提高了模擬通信的實時性和可靠性,解決了現(xiàn)有技術(shù)中調(diào)試資源短缺的缺陷,縮短協(xié)議棧的開發(fā)周期,節(jié)省了協(xié)議棧的開發(fā)成本,提高了開發(fā)效率。
【專利附圖】
【附圖說明】
[0060]圖1為本發(fā)明實施例中的模擬通信系統(tǒng)的結(jié)構(gòu)示意圖;
[0061]圖2為本發(fā)明實施例中的模擬通信插件的工作方法流程圖;
[0062]圖3為本發(fā)明實施例中的一種第一回調(diào)函數(shù)被調(diào)用時,模擬通信插件的處理流程圖;
[0063]圖4為本發(fā)明實施例中的一種第二回調(diào)函數(shù)被調(diào)用時,模擬通信插件的處理流程圖;
[0064]圖5為本發(fā)明實施例中的一種第三回調(diào)函數(shù)被調(diào)用時,模擬通信插件的處理流程圖;
[0065]圖6為本發(fā)明實施例中的芯片操作系統(tǒng)的工作方法流程圖;
[0066]圖7為本發(fā)明實施例中的另一種第一回調(diào)函數(shù)被調(diào)用時,模擬通信插件的處理流程圖;
[0067]圖8為本發(fā)明實施例中的另一種第二回調(diào)函數(shù)被調(diào)用時,模擬通信插件的處理流程圖;
[0068]圖9為本發(fā)明實施例中的一種模擬通信插件的結(jié)構(gòu)示意圖;
[0069]圖10為本發(fā)明實施例中的另一種模擬通信插件的結(jié)構(gòu)示意圖。
【具體實施方式】
[0070]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0071]本發(fā)明實施例提供了一種模擬通信插件的工作方法,應(yīng)用于包括芯片操作系統(tǒng)、特殊功能寄存器、模擬通信插件和模擬讀卡器的模擬通信系統(tǒng)中,如圖1所示,其中,模擬通信插件是IDE啟動時所加載的插件,用于建立芯片操作系統(tǒng)與模擬讀卡器之間的通信;模擬讀卡器用于接收并處理來自芯片操作系統(tǒng)的數(shù)據(jù),以及向芯片操作系統(tǒng)發(fā)送數(shù)據(jù),可通過軟件實現(xiàn),也可通過硬件實現(xiàn)。具體地,芯片操作系統(tǒng)將需要發(fā)送給模擬讀卡器的數(shù)據(jù)寫入到特殊功能寄存器中,觸發(fā)模擬通信插件從特殊功能寄存器中讀取數(shù)據(jù),模擬通信插件將讀取到的數(shù)據(jù)發(fā)送給模擬讀卡器,模擬讀卡器對接收到的數(shù)據(jù)進行處理,并向模擬通信插件返回數(shù)據(jù);相應(yīng)地,模擬通信插件接收來自模擬讀卡器的數(shù)據(jù),將接收到的數(shù)據(jù)寫入到特殊功能寄存器中,并觸發(fā)芯片操作系統(tǒng)從特殊功能寄存器中讀取數(shù)據(jù)。
[0072]如圖2所示,為本發(fā)明實施例中的模擬通信插件的工作方法流程圖,包括以下步驟:
[0073]步驟201,模擬通信插件等待被調(diào)用。
[0074]步驟202,當(dāng)模擬通信插件的外部接口被調(diào)用時,模擬通信插件獲取操作碼和參數(shù)。
[0075]例如,模擬通信插件的外部接口 AgsiEntry被調(diào)用時,傳入到外部接口 AgsiEntry的信息包括操作碼nCode和參數(shù)vp。
[0076]步驟203,模擬通信插件對獲取到的操作碼的取值進行判斷,如果是第一預(yù)設(shè)值,則執(zhí)行步驟208 ;如果是第二預(yù)`設(shè)值,則執(zhí)行步驟210 ;如果是第三預(yù)設(shè)值,則執(zhí)行步驟211 ;如果是第四預(yù)設(shè)值,則執(zhí)行步驟204。
[0077]例如,獲取到的操作碼為“1^0如”,第一預(yù)設(shè)值為“4631_1犯1'”,第二預(yù)設(shè)值為“AGSI_RESET”,第三預(yù)設(shè)值為 “AGSI_TERMINATE”,第四預(yù)設(shè)值為 “AGSI_CHECK”。
[0078]步驟204,模擬通信插件根據(jù)獲取到的參數(shù),獲取宿主配置信息。
[0079]具體地,模擬通信插件可以將獲取到的參數(shù)的取值作為地址,從對應(yīng)的存儲區(qū)域讀取宿主配置信息;也可以將獲取到的參數(shù)的取值作為宿主配置信息。其中,宿主配置信息可以包括IDE所提供的CPU類型,還可以進一步包括IDE的版本號。
[0080]例如,當(dāng)模擬通信插件獲取到的操作碼“nCode”的取值為第四預(yù)設(shè)值“AGSI_CHECK”,參數(shù)“vp”的取值為“8051”時,模擬通信插件可以將“8051”作為宿主配置信息,SP,IDE所提供的CPU類型。
[0081]步驟205,模擬通信插件根據(jù)宿主配置信息,判斷自身是否與IDE匹配,如果匹配,則執(zhí)行步驟206 ;否則,執(zhí)行步驟207。
[0082]具體地,模擬通信插件可以判斷自身所支持的配置信息中是否包含通過步驟204獲取的宿主配置信息,如果包含,則確定自身與IDE匹配;否則,確定自身與IDE不匹配。
[0083]本實施例中,模擬通信插件可以判斷自身所支持的CPU類型中是否包含IDE所提供的CPU類型,如果不包含,則確定自身與IDE不匹配;如果包含,可進一步判斷自身所支持的版本號中是否包含IDE的版本號,如果不包含,則確定自身與IDE不匹配;如果包含,則確定自身與IDE匹配。[0084]例如,當(dāng)模擬通信插件所支持的CPU類型為“8051”和“80166”,模擬通信插件獲取到的、IDE所提供的CPU類型為“8051”時,模擬通信插件確定自身與IDE匹配。
[0085]步驟206,模擬通信插件向IDE發(fā)送匹配成功信息,并返回步驟201。
[0086]例如,模擬通信插件向IDE返回匹配成功信息“I”。
[0087]步驟207,模擬通信插件向IDE發(fā)送匹配失敗信息,結(jié)束流程。
[0088]例如,模擬通信插件向IDE返回匹配失敗信息“O”。
[0089]步驟208,模擬通信插件根據(jù)獲取到的參數(shù),從對應(yīng)的配置文件中讀取插件配置信
肩、O
[0090]具體地,模擬通信插件可以將獲取到的參數(shù)的取值作為地址,讀取存儲在該地址的配置數(shù)據(jù)結(jié)構(gòu),從該配置數(shù)據(jù)結(jié)構(gòu)中獲取配置文件路徑,根據(jù)該配置文件路徑,從對應(yīng)的配置文件中讀取插件配置信息。
[0091]其中,插件配置信息包括特殊功能寄存器的地址、菜單數(shù)據(jù)結(jié)構(gòu)的地址和網(wǎng)絡(luò)端口號。特殊功能寄存器包括數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器,數(shù)據(jù)寄存器用于存放通過模擬通信插件傳輸?shù)臄?shù)據(jù),狀態(tài)寄存器用于標(biāo)識通信狀態(tài),控制寄存器用于標(biāo)識通信方式。
[0092]例如,當(dāng)模擬通信插件獲取到的操作碼“nCode”的取值為第一預(yù)設(shè)值“AGSI_INIT”時,模擬通信插件將參數(shù)“vp”的取值作為地址,讀取配置數(shù)據(jù)結(jié)構(gòu)“AGSIC0NFIG”,并從配置數(shù)據(jù)結(jié)構(gòu)“AGSIC0NFIG”中獲取配置文件路徑“m_pszPro jectPath”,從該配置文件路徑指定的配置文件中讀取控制寄存器的地址“HW10C0N1”、狀態(tài)寄存器的地址“HW10STAT”、數(shù)據(jù)寄存器的地址“ IOBUF I”、菜單數(shù)據(jù)結(jié)構(gòu)的地址和網(wǎng)絡(luò)端口號。
[0093]步驟209,模擬通信插件根據(jù)讀取到的插件配置信息,進行初始化,并返回步驟201。
[0094]具體地,模擬通信插件可以根據(jù)特殊功能寄存器的地址,對特殊功能寄存器進行初始化;根據(jù)菜單數(shù)據(jù)結(jié)構(gòu)的地址,讀取菜單數(shù)據(jù)結(jié)構(gòu),并根據(jù)菜單數(shù)據(jù)結(jié)構(gòu)對菜單項進行初始化;將從配置文件中讀取的網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口,綁定為模擬通信插件與模擬讀卡器之間的交互端口 ;將第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行寫操作;將第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù);將第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行讀操作。
[0095]本實施例中,模擬通信插件可以將數(shù)據(jù)寄存器中的數(shù)據(jù)設(shè)置為第五預(yù)設(shè)值,例如,“00”;將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值,用以標(biāo)識通信狀態(tài)為閑狀態(tài);將控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值,用以標(biāo)識通信方式為發(fā)送數(shù)據(jù)。芯片操作系統(tǒng)將通信方式設(shè)置為發(fā)送數(shù)據(jù),具體為:芯片操作系統(tǒng)將所述控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值;芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù),具體為:芯片操作系統(tǒng)將控制寄存器中的數(shù)據(jù)設(shè)置為第八預(yù)設(shè)值。
[0096]例如,模擬通信插件使用狀態(tài)寄存器的地址“HW10STAT”作為參數(shù),調(diào)用IDE的AgsiDefineSFR接口,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值“00”;使用控制寄存器的地址“HW10C0N1”作為參數(shù),調(diào)用IDE的AgsiDef ineSFR接口,將控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值“00”,并調(diào)用IDE的AgsiSetWatchOnSFR接口,將控制寄存器與預(yù)設(shè)的回調(diào)函數(shù)tmr_mon_hwiol和tmr_mon_hwio2建立關(guān)聯(lián);使用數(shù)據(jù)寄存器的地址“ IOBUFl ”作為參數(shù),調(diào)用IDE的AgsiDefineSFR接口,將數(shù)據(jù)寄存器中的數(shù)據(jù)設(shè)置為第五預(yù)設(shè)值“00”,并調(diào)用IDE的 AgsiSetWatchOnSFR 接 口。
[0097]模擬通信插件根據(jù)菜單數(shù)據(jù)結(jié)構(gòu)的地址,讀取菜單數(shù)據(jù)結(jié)構(gòu)“AGSMENU”,并根據(jù)菜單數(shù)據(jù)結(jié)構(gòu)“AGSMENU”,調(diào)用IDE的AgsiDefineMenuItem接口,定義所使用的菜單項。模擬通信插件將從配置文件中讀取的網(wǎng)絡(luò)端口號作為參數(shù),調(diào)用NetworkInit函數(shù),進而將該網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口綁定為模擬通信插件和模擬讀卡器之間的交互端口。
[0098]步驟210,模擬通信插件執(zhí)行復(fù)位操作,并返回步驟201。
[0099]具體地,模擬通信插件可以向特殊功能寄存器中寫入預(yù)設(shè)數(shù)據(jù),對菜單項進行復(fù)位,將配置文件中的網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口與步驟209中的交互端口之間的綁定關(guān)系取消。其中,交互端口為步驟209中設(shè)置的模擬通信插件和模擬讀卡器之間的交互端口。
[0100]本實施例中,模擬通信插件可以將數(shù)據(jù)寄存器中的數(shù)據(jù)設(shè)置為第五預(yù)設(shè)值,例如,“00” ;將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值,用以標(biāo)識通信狀態(tài)為閑狀態(tài);將控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值,用以標(biāo)識通信方式為發(fā)送數(shù)據(jù)。
[0101]例如,當(dāng)模擬通信插件獲取到的操作碼“nCode”的取值為第二預(yù)設(shè)值“AGSI_RESET”,模擬通信插件將特殊功能寄存器的地址和預(yù)設(shè)數(shù)據(jù)作為參數(shù),調(diào)用IDE的AgsiffriteSFR接口,將第七預(yù)設(shè)值“00”寫入到控制寄存器,將第六預(yù)設(shè)值“00”寫入到狀態(tài)寄存器中,將第五預(yù)設(shè)值“00”寫入到數(shù)據(jù)寄存器中。模擬通信插件調(diào)用NetworkReset函數(shù),將配置文件中的網(wǎng)絡(luò)端口號對應(yīng)的端口與交互端口之間的綁定關(guān)系取消。
[0102]步驟211,模擬通信插件執(zhí)行下電操作,并返回步驟201。
[0103]具體地,模擬通信插件釋放已分配的資源,關(guān)閉與配置文件中的網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口。
[0104]例如,當(dāng)模擬通信插件獲取到的操作碼“nCode”的取值為第三預(yù)設(shè)值“AGSI_TERMINATE”,模擬通信插件調(diào)用NetworkTerm函數(shù),關(guān)閉與配置文件中的網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口。
[0105]本發(fā)明實施例中,模擬通信插件的初始化過程中,模擬通信插件分別設(shè)置第一回調(diào)函數(shù)、第二回調(diào)函數(shù)和第三回調(diào)函數(shù)的調(diào)用條件。具體地,當(dāng)芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行寫操作時,第一回調(diào)函數(shù)被調(diào)用;當(dāng)芯片操作系統(tǒng)通過寫控制寄存器的方式,將通信方式設(shè)置為接收數(shù)據(jù)時,第二回調(diào)函數(shù)被調(diào)用。當(dāng)芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行讀操作時,第三回調(diào)函數(shù)被調(diào)用。
[0106]本實施例中,通信方式為發(fā)送數(shù)據(jù),表示芯片操作系統(tǒng)向模擬讀卡器發(fā)送數(shù)據(jù);通信方式為接收數(shù)據(jù),表示芯片操作系統(tǒng)接收來自模擬讀卡器的數(shù)據(jù)。芯片操作系統(tǒng)可以通過將控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值的方式,將通信方式設(shè)置為發(fā)送數(shù)據(jù);通過將控制寄存器中的數(shù)據(jù)設(shè)置為第八預(yù)設(shè)值的方式,將通信方式設(shè)置為接收數(shù)據(jù)。
[0107]當(dāng)?shù)谝换卣{(diào)函數(shù)被調(diào)用時,模擬通信插件執(zhí)行的操作如圖3所示,包括以下步驟:
[0108]步驟301,模擬通信插件將通信狀態(tài)設(shè)置為忙狀態(tài)。
[0109]具體地,模擬通信插件可以通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為忙狀態(tài)。
[0110]例如,模擬通信插件將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值“01”。
[0111]步驟302,模擬通信插件從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),根據(jù)第一地址將讀取到的數(shù)據(jù)寫入到第一緩沖區(qū)中,更新第一地址,將通信狀態(tài)設(shè)置為閑狀態(tài),并返回步驟201。
[0112]具體地,模擬通信插件可以通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為閑狀態(tài),可以將第一地址加一個字節(jié)作為更新后的第一地址,或者將第一地址減一個字節(jié)作為更新后的第一地址。
[0113]例如,第一地址為“0x01”,模擬通信插件從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)“3B”,將“3B”寫入到第一緩沖區(qū)中地址為“0x01”的空間,將第一地址更新為“0x02”,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值“00”。
[0114]當(dāng)?shù)诙卣{(diào)函數(shù)被調(diào)用時,模擬通信插件執(zhí)行的操作如圖4所示,包括以下步驟:
[0115]步驟401,模擬通信插件通過與模擬讀卡器之間的交互端口,將第一緩沖區(qū)中的數(shù)據(jù)發(fā)送給模擬讀卡器,對第一地址進行初始化,等待接收來自模擬讀卡器的數(shù)據(jù)。
[0116]例如,模擬通信插件可以將第一緩沖區(qū)中的數(shù)據(jù)“3B”發(fā)送給模擬讀卡器,將第一地址初始化為“0x00”。
[0117]步驟402,模擬通信插件接收到來自模擬讀卡器的數(shù)據(jù)后,將接收到的數(shù)據(jù)存儲到第二緩沖區(qū)中。
[0118]其中,第二緩沖區(qū)和第一緩沖區(qū)可以為同一緩沖區(qū)。
[0119]例如,模擬通信插件接收模擬讀卡器返回的數(shù)據(jù)“84E0020053”,將該數(shù)據(jù)存儲到
第二緩沖區(qū)中。
[0120]步驟403,模擬通信插件根據(jù)第二地址從第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中,更新第二地址,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),并返回步驟 201。
[0121]具體地,模擬通信插件可以通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),可以將第二地址加一個字節(jié)作為更新后的第二地址,或者將第二地址減一個字節(jié)作為更新后的第二地址。
[0122]例如,第二地址為“0x51”,模擬通信插件從第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù)“84”,將“84”寫入到數(shù)據(jù)寄存器中地址為“0x51”的空間,將第二地址更新為“0x52”,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值“03”。
[0123]當(dāng)?shù)谌卣{(diào)函數(shù)被調(diào)用時,模擬通信插件執(zhí)行的操作如圖5所示,包括以下步驟:
[0124]步驟501,模擬通信插件將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài)。
[0125]具體地,模擬通信插件可以通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十一預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài)。
[0126]例如,模擬通信插件將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十一預(yù)設(shè)值“04”。
[0127]步驟502,模擬通信插件判斷第二緩沖區(qū)中是否還有需要發(fā)送給芯片操作系統(tǒng)的數(shù)據(jù),如果有,則執(zhí)行步驟503 ;否則,對第二地址進行初始化,并返回步驟201。
[0128]具體地,模擬通信插件可以判斷第二緩沖區(qū)中的數(shù)據(jù)是否已全部發(fā)送完畢,如果是,則確定第二緩沖區(qū)中的沒有需要發(fā)送給芯片操作系統(tǒng)的數(shù)據(jù);否則,確定第二緩沖區(qū)中有需要發(fā)送給芯片操作系統(tǒng)的數(shù)據(jù)。
[0129]例如,當(dāng)模擬通信插件從模擬讀卡器接收并存儲到第二緩沖區(qū)中的數(shù)據(jù)為“84E0020053”時,模擬通信插件將“84”寫入到數(shù)據(jù)寄存器后,可以判斷第二緩沖區(qū)中還有未被發(fā)送的數(shù)據(jù)“E0020053”。
[0130]步驟503,模擬通信插件根據(jù)第二地址從第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中,更新第二地址,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),并返回步驟 201。
[0131]具體地,模擬通信插件可以通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),可以將第二地址加一個字節(jié)作為更新后的第二地址,或者將第二地址減一個字節(jié)作為更新后的第二地址。
[0132]例如,第二地址為“0x52”,模擬通信插件從第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù)“E0”,將“E0”寫入到數(shù)據(jù)寄存器中地址為“0x52”的空間,將第二地址更新為“0x53”,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為“03”。
[0133]基于上述模擬通信插件的工作方法,本發(fā)明實施例中的芯片操作系統(tǒng)可以通過對控制寄存器的寫操作,設(shè)置通信方式;并根據(jù)通信方式和模擬通信插件設(shè)置的通信狀態(tài),與模擬通信插件進行數(shù)據(jù)交互,進而通過模擬通信插件與模擬讀卡器進行通信。本實施例中的芯片操作系統(tǒng)的工作方法,如圖6所示,包括以下步驟:
[0134]步驟601,芯片操作系統(tǒng)將通信方式設(shè)置為發(fā)送數(shù)據(jù)。
[0135]具體地,芯片操作系統(tǒng)可以通過將控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值的方式,將通信方式設(shè)置為發(fā)送數(shù)據(jù)。
[0136]例如,芯片操作系統(tǒng)將控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值“00”。
[0137]需要說明的是,在本步驟之后,模擬通信插件可以通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為忙狀態(tài)。例如,模擬通信插件將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值“01”。
[0138]步驟602,芯片操作系統(tǒng)從第三緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將該數(shù)據(jù)寫入到數(shù)據(jù)寄存器中。
[0139]例如,芯片操作系統(tǒng)從第三緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù)“3B”,將“3B”寫入到數(shù)
據(jù)寄存器中。
[0140]需要說明的是,在本步驟之后,模擬通信插件可以從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),并通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為閑狀態(tài)。例如,模擬通信插件從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)“3B”,將“3B”寫入到第三緩沖區(qū)中,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值“00”。
[0141]步驟603,芯片操作系統(tǒng)判斷第三緩沖區(qū)中是否還有需要發(fā)送給模擬讀卡器的數(shù)據(jù),如果有,則執(zhí)行步驟604,否則,執(zhí)行步驟605。
[0142]步驟604,芯片操作系統(tǒng)判斷通信狀態(tài)是否為閑狀態(tài),如果是,則返回步驟602 ;否貝U,返回步驟604。
[0143]具體地,芯片操作系統(tǒng)可以判斷狀態(tài)寄存器中的數(shù)據(jù)是否為第六預(yù)設(shè)值,如果是,則確定通信狀態(tài)為閑狀態(tài);否則,確定通信狀態(tài)不是閑狀態(tài)。
[0144]步驟605,芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù)。
[0145]具體地,芯片操作系統(tǒng)可以通過將控制寄存器中的數(shù)據(jù)設(shè)置為第八預(yù)設(shè)值的方式,將通信方式設(shè)置為接收數(shù)據(jù)。
[0146]例如,芯片操作系統(tǒng)將控制寄存器中的數(shù)據(jù)設(shè)置為第八預(yù)設(shè)值“01”。[0147]需要說明的是,在本步驟之后,模擬通信插件通過與模擬讀卡器之間的交互端口,將第一緩沖區(qū)中的數(shù)據(jù)發(fā)送給模擬讀卡器,接收模擬讀卡器返回的數(shù)據(jù),將該數(shù)據(jù)存儲到第二緩沖區(qū)中,從第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài)。例如,模擬通信插件將第一緩沖區(qū)中的數(shù)據(jù)“3B”發(fā)送給模擬讀卡器,接收模擬讀卡器返回的數(shù)據(jù)“84E0020053”,將該數(shù)據(jù)存儲到第二緩沖區(qū)中,從第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù)“84”,將“84”寫入到數(shù)據(jù)寄存器中,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值“03”。
[0148]步驟606,芯片操作系統(tǒng)判斷通信狀態(tài)是否為有數(shù)據(jù)狀態(tài),如果是,則執(zhí)行步驟607 ;否則,返回步驟606。
[0149]具體地,芯片操作系統(tǒng)可以判斷狀態(tài)寄存器中的數(shù)據(jù)是否為第十預(yù)設(shè)值,如果是,則確定通信狀態(tài)為有數(shù)據(jù)狀態(tài);否則,確定通信狀態(tài)不是有數(shù)據(jù)狀態(tài)。
[0150]步驟607,芯片操作系統(tǒng)從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)存儲到第四緩沖區(qū)中。
[0151]其中,第四緩沖區(qū)和第三緩沖區(qū)可以為同一緩沖區(qū)。
[0152]例如,芯片操作系統(tǒng)從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)“84”,將“84”存儲到第四緩沖區(qū)中。
[0153]需要說明的是,在本步驟之后,模擬通信插件可以通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十一預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài),判斷第二緩沖區(qū)中是否還有需要發(fā)送給芯片操作系統(tǒng)的數(shù)據(jù),如果有,則從第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中,并通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài)。例如,模擬通信插件將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十一預(yù)設(shè)值“04”,如果確定第二緩沖區(qū)中還有需要發(fā)送給芯片操作系統(tǒng)的數(shù)據(jù),則從第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù)“E0”,將“K)”寫入到數(shù)據(jù)寄存器中,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值“03”。
[0154]步驟608,芯片操作系統(tǒng)根據(jù)第四緩沖區(qū)中的數(shù)據(jù),判斷是否還需要接收數(shù)據(jù),如果是,則返回步驟606 ;否則,執(zhí)行步驟609。
[0155]具體地,芯片操作系統(tǒng)可以判斷第四緩沖區(qū)中的數(shù)據(jù)是否為完整的APDU報文,如果是,則確定不需要繼續(xù)接收數(shù)據(jù);否則,確定需要繼續(xù)接收數(shù)據(jù)。
[0156]例如,第四緩沖區(qū)中的數(shù)據(jù)為“84”時,芯片操作系統(tǒng)可以判斷第四緩沖區(qū)中的數(shù)據(jù)不是完整的APDU報文,確定需要繼續(xù)接收數(shù)據(jù)。
[0157]步驟609,芯片操作系統(tǒng)對第四緩沖區(qū)中的數(shù)據(jù)進行處理,得到處理結(jié)果。
[0158]例如,當(dāng)?shù)谒木彌_區(qū)中的數(shù)據(jù)為“84E0020053”時,芯片操作系統(tǒng)可以判斷第四緩沖區(qū)中的數(shù)據(jù)是完整的APDU報文,確定不需要繼續(xù)接收數(shù)據(jù),并對第四緩沖區(qū)中的數(shù)據(jù)“84E0020053”進行處理,得到處理結(jié)果“9000”。
[0159]步驟610,芯片操作系統(tǒng)判斷是否需要將處理結(jié)果發(fā)送給模擬讀卡器,如果是,則執(zhí)行步驟611 ;否則,結(jié)束流程。
[0160]步驟611,芯片操作系統(tǒng)將處理結(jié)果存儲到第三緩沖區(qū)中,并返回步驟601。
[0161]例如,芯片操作系統(tǒng)將處理結(jié)果“9000”存儲到第三緩沖區(qū)中。
[0162]本發(fā)明實施例中,通過調(diào)用模擬通信插件的外部接口,設(shè)置數(shù)據(jù)寄存器,并通過對數(shù)據(jù)寄存器的讀寫操作,實現(xiàn)芯片操作系統(tǒng)和模擬讀卡器之間的模擬通信,提高了模擬通信的實時性和可靠性,解決了現(xiàn)有技術(shù)中調(diào)試資源短缺的缺陷,縮短協(xié)議棧的開發(fā)周期,節(jié)省了協(xié)議棧的開發(fā)成本,提高了開發(fā)效率。
[0163]需要說明的是,在本發(fā)明的另一種實施方式中,在模擬通信插件的初始化過程中,模擬通信插件可以將第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行寫操作;將第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:通信方式為接收數(shù)據(jù)且芯片操作系統(tǒng)對通信狀態(tài)進行判斷;將第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行讀操作。
[0164]當(dāng)?shù)谝换卣{(diào)函數(shù)被調(diào)用時,模擬通信插件執(zhí)行的操作如圖7所示,包括以下步驟:
[0165]步驟701,模擬通信插件將通信狀態(tài)設(shè)置為忙狀態(tài)。
[0166]具體地,模擬通信插件可以通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為忙狀態(tài)。
[0167]例如,模擬通信插件將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值“01”。
[0168]步驟702,模擬通信插件從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)發(fā)送給模擬讀卡器。
[0169]步驟703,模擬通信插件將通信狀態(tài)設(shè)置為閑狀態(tài),并返回步驟201。
[0170]具體地,模擬通信插件可以通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為閑狀態(tài)。
[0171]例如,模擬通信插件將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值“00”。
[0172]當(dāng)?shù)诙卣{(diào)函數(shù)被調(diào)用時,模擬通信插件執(zhí)行的操作如圖8所示,包括以下步驟:
[0173]步驟801,模擬通信插件等待接收來自模擬讀卡器的數(shù)據(jù)。
[0174]步驟802,模擬通信插件判斷是否在預(yù)設(shè)時間內(nèi)接收到來自模擬讀卡器的數(shù)據(jù),如果是,則執(zhí)行步驟803 ;否則,返回步驟201。
[0175]步驟803,模擬通信插件將來自模擬讀卡器的一個字節(jié)的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),并返回步驟201。
[0176]具體地,模擬通信插件可以通過將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值的方式,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài)。
[0177]例如,模擬通信插件將來自模擬讀卡器的一個字節(jié)的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值“03”。
[0178]此外,當(dāng)?shù)谌卣{(diào)函數(shù)被調(diào)用時,模擬通信插件將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài),并返回步驟201。
[0179]上述實施方式同樣能夠?qū)崿F(xiàn)本發(fā)明的發(fā)明目的。
[0180]本發(fā)明實施例還提供了 一種模擬通信插件,如圖9所示,該模擬通信插件具有可被調(diào)用的外部接口,該模擬通信插件包括:
[0181]第一獲取模塊901,用于在外部接口被調(diào)用時,獲取操作碼和參數(shù);
[0182]第一判斷模塊902,用于對第一獲取模塊901獲取的操作碼的取值進行判斷;
[0183]第二獲取模塊903,用于在第一判斷模塊902判斷出操作碼的取值為第一預(yù)設(shè)值時,根據(jù)參數(shù)獲取插件配置信息;
[0184]具體地,上述第二獲取模塊903,具體用于在第一判斷模塊902判斷出操作碼的取值為第一預(yù)設(shè)值時,將參數(shù)的取值作為地址,讀取存儲在地址的配置數(shù)據(jù)結(jié)構(gòu),從配置數(shù)據(jù)結(jié)構(gòu)中獲取配置文件路徑,根據(jù)配置文件路徑,從對應(yīng)的配置文件中讀取插件配置信息。
[0185]第一初始化模塊904,用于根據(jù)第二獲取模塊903獲取的插件配置信息對數(shù)據(jù)寄存器進行初始化,將第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行寫操作;將第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù);將第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行讀操作;
[0186]復(fù)位模塊905,用于在第一判斷模塊902判斷出操作碼的取值為第二預(yù)設(shè)值時,執(zhí)行復(fù)位操作;
[0187]下電模塊906,用于在第一判斷模塊902判斷出操作碼的取值為第三預(yù)設(shè)值時,執(zhí)行下電操作;
[0188]第一處理模塊907,用于在第一回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為忙狀態(tài),從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),根據(jù)第一地址將讀取到的數(shù)據(jù)保存到第一緩沖區(qū)中,更新第一地址;
[0189]第一設(shè)置模塊908,用于在第一處理模塊907從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)后,將通信狀態(tài)設(shè)置為閑狀態(tài);
[0190]第二處理模塊909,用于在第二回調(diào)函數(shù)被調(diào)用時,將第一緩沖區(qū)中的數(shù)據(jù)發(fā)送給模擬讀卡器,對第一地址進行初始化;
[0191]接收模塊910,用于接收來自模擬讀卡器的數(shù)據(jù),將接收到的數(shù)據(jù)保存到第二緩沖區(qū)中,觸發(fā)第三處理模塊911 ;
[0192]第三處理模塊911,用于根據(jù)第二地址從第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中,更新第二地址;
[0193]第二設(shè)置模塊912,用于在第三處理模塊911將讀取到的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中后,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài);
[0194]第三設(shè)置模塊913,用于在第三回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài);
[0195]第二判斷模塊914,用于在第三設(shè)置模塊913將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài)后,判斷第二緩沖區(qū)中是否有需要發(fā)送給芯片操作系統(tǒng)的數(shù)據(jù),并在判斷出第二緩沖區(qū)中有需要發(fā)送給芯片操作系統(tǒng)的數(shù)據(jù)時,觸發(fā)第三處理模塊911 ;
[0196]第二初始化模塊915,用于在第二判斷模塊914判斷出第二緩沖區(qū)中沒有需要發(fā)送給芯片操作系統(tǒng)的數(shù)據(jù)時,對第二地址進行初始化。
[0197]其中,上述插件配置信息可以包括數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器的地址;
[0198]相應(yīng)地,第一初始化模塊904,具體用于根據(jù)第二獲取模塊903獲取的數(shù)據(jù)寄存器的地址,將數(shù)據(jù)寄存器中的數(shù)據(jù)設(shè)置為第五預(yù)設(shè)值;根據(jù)第二獲取模塊903獲取的狀態(tài)寄存器的地址,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;根據(jù)第二獲取模塊903獲取的控制寄存器的地址,將控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值;將第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行寫操作;將第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù);將第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行讀操作;[0199]第一設(shè)置模塊908,具體用于在第一處理模塊907從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)后,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;
[0200]第一處理模塊907,具體用于在第一回調(diào)函數(shù)被調(diào)用時,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值,從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),根據(jù)第一地址將讀取到的數(shù)據(jù)保存到第一緩沖區(qū)中,更新第一地址;
[0201]第二設(shè)置模塊912,具體用于在第三處理模塊911將讀取到的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中后,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值;
[0202]第三設(shè)置模塊913,具體用于在第三回調(diào)函數(shù)被調(diào)用時,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十一預(yù)設(shè)值;
[0203]復(fù)位模塊905,具體用于在第一判斷模塊902判斷出操作碼的取值為第二預(yù)設(shè)值時,向數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器寫入預(yù)設(shè)數(shù)據(jù)。
[0204]其中,上述插件配置信息可以包括菜單數(shù)據(jù)結(jié)構(gòu)的地址;
[0205]相應(yīng)地,上述第一初始化模塊904,還用于根據(jù)第二獲取模塊903獲取的插件配置信息中的菜單數(shù)據(jù)結(jié)構(gòu)的地址,讀取菜單數(shù)據(jù)結(jié)構(gòu),并根據(jù)菜單數(shù)據(jù)結(jié)構(gòu)對菜單項進行初始化;
[0206]復(fù)位模塊905,具體用于在第一判斷模塊902判斷出操作碼的取值為第二預(yù)設(shè)值時,對菜單項進行復(fù)位。
[0207]上述插件配置信息還可以包括網(wǎng)絡(luò)端口號;
[0208]相應(yīng)地,上述第一初始化模塊904,還用于將與第二獲取模塊903獲取的插件配置信息中的網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口,綁定為模擬通信插件與模擬讀卡器之間的交互端Π ;
[0209]復(fù)位模塊905,具體用于在第一判斷模塊902判斷出操作碼的取值為第二預(yù)設(shè)值時,將與網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口與交互端口之間的綁定關(guān)系取消;
[0210]下電模塊906,具體用于在第一判斷模塊902判斷出操作碼的取值為第三預(yù)設(shè)值時,將與網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口關(guān)閉。
[0211]進一步地,上述模擬通信插件,還包括:
[0212]第三獲取模塊916,用于在第一判斷模塊902判斷出操作碼的取值為第四預(yù)設(shè)值時,根據(jù)參數(shù)獲取宿主配置信息;
[0213]具體地,上述第三獲取模塊916,具體用于在第一判斷模塊902判斷出操作碼的取值為第四預(yù)設(shè)值時,將參數(shù)的取值作為地址,從對應(yīng)的存儲區(qū)域讀取宿主配置信息;
[0214]或者,將參數(shù)作為宿主配置信息。
[0215]第三判斷模塊917,用于根據(jù)第三獲取模塊916獲取的宿主配置信息,判斷模擬通信插件是否與集成開發(fā)環(huán)境匹配;
[0216]具體地,上述第三判斷模塊917,具體用于判斷模擬通信插件所支持的配置信息中是否包含第三獲取模塊916獲取的宿主配置信息,如果包含,則確定模擬通信插件與集成開發(fā)環(huán)境匹配;否則,確定模擬通信插件與集成開發(fā)環(huán)境不匹配。
[0217]其中,宿主配置信息可以為集成開發(fā)環(huán)境所提供的CPU類型;
[0218]相應(yīng)地,上述第三判斷模塊917,具體用于判斷模擬通信插件所支持的CPU類型中是否包含集成開發(fā)環(huán)境所提供的CPU類型,如果包含,則確定模擬通信插件與集成開發(fā)環(huán)境匹配;如果不包含,則確定模擬通信插件與集成開發(fā)環(huán)境不匹配。
[0219]上述宿主配置信息還可以為集成開發(fā)環(huán)境所提供的CPU類型和集成開發(fā)環(huán)境的版本號;
[0220]相應(yīng)地,上述第三判斷模塊917,具體用于判斷模擬通信插件所支持的CPU類型中是否包含集成開發(fā)環(huán)境所提供的CPU類型,如果不包含,則確定模擬通信插件與集成開發(fā)環(huán)境不匹配;如果包含,判斷模擬通信插件所支持的版本號中是否包含集成開發(fā)環(huán)境的版本號,如果不包含,則確定模擬通信插件與集成開發(fā)環(huán)境不匹配;如果包含,則確定模擬通信插件與集成開發(fā)環(huán)境匹配。
[0221]發(fā)送模塊918,用于在第三判斷模塊917判斷出模擬通信插件與集成開發(fā)環(huán)境匹配時,向集成開發(fā)環(huán)境發(fā)送匹配成功信息;在第三判斷模塊917判斷出模擬通信插件與集成開發(fā)環(huán)境不匹配時,向集成開發(fā)環(huán)境發(fā)送匹配失敗信息。
[0222]本發(fā)明實施例通過調(diào)用模擬通信插件的外部接口,設(shè)置數(shù)據(jù)寄存器,并通過對數(shù)據(jù)寄存器的讀寫操作,實現(xiàn)芯片操作系統(tǒng)和模擬讀卡器之間的模擬通信,提高了模擬通信的實時性和可靠性,解決了現(xiàn)有技術(shù)中調(diào)試資源短缺的缺陷,縮短協(xié)議棧的開發(fā)周期,節(jié)省了協(xié)議棧的開發(fā)成本,提高了開發(fā)效率。
[0223]本發(fā)明實施例還提供了另一種模擬通信插件,如圖10所示,該模擬通信插件具有可被調(diào)用的外部接口,該模擬通信插件包括:
[0224]第一獲取模塊1001,用于在外部接口被調(diào)用時,獲取操作碼和參數(shù);
[0225]第一判斷模塊1002,用于對第一獲取模塊1001獲取的操作碼的取值進行判斷;
[0226]第二獲取模塊1003,用于在第一判斷模塊1002判斷出操作碼的取值為第一預(yù)設(shè)值時,根據(jù)參數(shù)獲取插件配置信息;
[0227]具體地,上述第二獲取模塊1003,具體用于在第一判斷模塊1002判斷出操作碼的取值為第一預(yù)設(shè)值時,將參數(shù)的取值作為地址,讀取存儲在地址的配置數(shù)據(jù)結(jié)構(gòu),從配置數(shù)據(jù)結(jié)構(gòu)中獲取配置文件路徑,根據(jù)配置文件路徑,從對應(yīng)的配置文件中讀取插件配置信息。
[0228]初始化模塊1004,用于根據(jù)第二獲取模塊1003獲取的插件配置信息對數(shù)據(jù)寄存器進行初始化,將第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行寫操作;將第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:通信方式為接收數(shù)據(jù)且芯片操作系統(tǒng)對通信狀態(tài)進行判斷;將第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行讀操作;
[0229]復(fù)位模塊1005,用于在第一判斷模塊1002判斷出操作碼的取值為第二預(yù)設(shè)值時,執(zhí)行復(fù)位操作;
[0230]下電模塊1006,用于在第一判斷模塊1002判斷出操作碼的取值為第三預(yù)設(shè)值時,執(zhí)行下電操作;
[0231]第一處理模塊1007,用于在第一回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為忙狀態(tài),從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)發(fā)送給模擬讀卡器;
[0232]第一設(shè)置模塊1008,用于在第一處理模塊1007從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)后,將通信狀態(tài)設(shè)置為閑狀態(tài);
[0233]第二判斷模塊1009,用于在第二回調(diào)函數(shù)被調(diào)用時,判斷是否在預(yù)設(shè)時間內(nèi)接收到來自模擬讀卡器的數(shù)據(jù);
[0234]第二處理模塊1010,用于在第二判斷模塊1009判斷出在預(yù)設(shè)時間內(nèi)接收到來自模擬讀卡器的數(shù)據(jù)時,將來自模擬讀卡器的一個字節(jié)的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài);
[0235]第二設(shè)置模塊1011,用于在第三回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài)。
[0236]其中,上述插件配置信息可以包括數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器的地址;
[0237]相應(yīng)地,上述初始化模塊1004,具體用于根據(jù)第二獲取模塊1003獲取的數(shù)據(jù)寄存器的地址,將數(shù)據(jù)寄存器中的數(shù)據(jù)設(shè)置為第五預(yù)設(shè)值;根據(jù)第二獲取模塊1003獲取的狀態(tài)寄存器的地址,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;根據(jù)第二獲取模塊1003獲取的控制寄存器的地址,將控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值;將第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行寫操作;將第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:通信方式為接收數(shù)據(jù)且芯片操作系統(tǒng)對通信狀態(tài)進行判斷;將第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對數(shù)據(jù)寄存器執(zhí)行讀操作;
[0238]上述第一設(shè)置模塊1008,具體用于在第一處理模塊1007從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)后,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;
[0239]上述第一處理模塊1007,具體用于在第一回調(diào)函數(shù)被調(diào)用時,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值,從數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)發(fā)送給模擬讀卡器;
[0240]上述第二處理模塊1010,具體用于在第二判斷模塊1009判斷出在預(yù)設(shè)時間內(nèi)接收到來自模擬讀卡器的數(shù)據(jù)時,將來自模擬讀卡器的一個字節(jié)的數(shù)據(jù)寫入到數(shù)據(jù)寄存器中,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值;
[0241]上述第二設(shè)置模塊1011,具體用于在第三回調(diào)函數(shù)被調(diào)用時,將狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十一預(yù)設(shè)值;
[0242]上述復(fù)位模塊1005,具體用于在第一判斷模塊1002判斷出操作碼的取值為第二預(yù)設(shè)值時,向數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器寫入預(yù)設(shè)數(shù)據(jù)。
[0243]上述插件配置信息還可以包括菜單數(shù)據(jù)結(jié)構(gòu)的地址;
[0244]相應(yīng)地,上述初始化模塊1004,還用于根據(jù)第二獲取模塊1003獲取的插件配置信息中的菜單數(shù)據(jù)結(jié)構(gòu)的地址,讀取菜單數(shù)據(jù)結(jié)構(gòu),并根據(jù)菜單數(shù)據(jù)結(jié)構(gòu)對菜單項進行初始化;
[0245]上述復(fù)位模塊1005,具體用于在第一判斷模塊1002判斷出操作碼的取值為第二預(yù)設(shè)值時,對菜單項進行復(fù)位。
[0246]上述插件配置信息還可以包括網(wǎng)絡(luò)端口號;
[0247]相應(yīng)地,上述初始化模塊1004,還用于將與第二獲取模塊1003獲取的插件配置信息中的網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口,綁定為模擬通信插件與模擬讀卡器之間的交互端口 ;
[0248]上述復(fù)位模塊1005,具體用于在第一判斷模塊1002判斷出操作碼的取值為第二預(yù)設(shè)值時,將與網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口與交互端口之間的綁定關(guān)系取消;
[0249]上述下電模塊1006,具體用于在第一判斷模塊1002判斷出操作碼的取值為第三預(yù)設(shè)值時,將與網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口關(guān)閉。
[0250]進一步地,上述模擬通信插件,還包括:[0251]第三獲取模塊1012,用于在第一判斷模塊1002判斷出操作碼的取值為第四預(yù)設(shè)值時,根據(jù)參數(shù)獲取宿主配置信息;
[0252]具體地,上述第三獲取模塊1012,具體用于在第一判斷模塊1002判斷出操作碼的取值為第四預(yù)設(shè)值時,將參數(shù)的取值作為地址,從對應(yīng)的存儲區(qū)域讀取宿主配置信息;
[0253]或者,將參數(shù)作為宿主配置信息。
[0254]第三判斷模塊1013,用于根據(jù)第三獲取模塊1012獲取的宿主配置信息,判斷模擬通信插件是否與集成開發(fā)環(huán)境匹配;
[0255]具體地,上述第三判斷模塊1013,具體用于判斷模擬通信插件所支持的配置信息中是否包含第三獲取模塊1012獲取的宿主配置信息,如果包含,則確定模擬通信插件與集成開發(fā)環(huán)境匹配;否則,確定模擬通信插件與集成開發(fā)環(huán)境不匹配。
[0256]其中,上述宿主配置信息可以為集成開發(fā)環(huán)境所提供的CPU類型;
[0257]相應(yīng)地,上述第三判斷模塊1013,具體用于判斷模擬通信插件所支持的CPU類型中是否包含集成開發(fā)環(huán)境所提供的CPU類型,如果包含,則確定模擬通信插件與集成開發(fā)環(huán)境匹配;如果不包含,則確定模擬通信插件與集成開發(fā)環(huán)境不匹配。
[0258]上述宿主配置信息還可以為集成開發(fā)環(huán)境所提供的CPU類型和集成開發(fā)環(huán)境的版本號;
[0259]相應(yīng)地,上述第三判斷模塊1013,具體用于判斷模擬通信插件所支持的CPU類型中是否包含集成開發(fā)環(huán)境所提供的CPU類型,如果不包含,則確定模擬通信插件與集成開發(fā)環(huán)境不匹配;如果包含,判斷模擬通信插件所支持的版本號中是否包含集成開發(fā)環(huán)境的版本號,如果不包含,則確定模擬通信插件與集成開發(fā)環(huán)境不匹配;如果包含,則確定模擬通信插件與集成開發(fā)環(huán)境匹配。
[0260]發(fā)送模塊1014,用于在第三判斷模塊1013判斷出模擬通信插件與集成開發(fā)環(huán)境匹配時,向集成開發(fā)環(huán)境發(fā)送匹配成功信息;在第三判斷模塊1013判斷出模擬通信插件與集成開發(fā)環(huán)境不匹配時,向集成開發(fā)環(huán)境發(fā)送匹配失敗信息。
[0261]本發(fā)明實施例通過調(diào)用模擬通信插件的外部接口,設(shè)置數(shù)據(jù)寄存器,并通過對數(shù)據(jù)寄存器的讀寫操作,實現(xiàn)芯片操作系統(tǒng)和模擬讀卡器之間的模擬通信,提高了模擬通信的實時性和可靠性,解決了現(xiàn)有技術(shù)中調(diào)試資源短缺的缺陷,縮短協(xié)議棧的開發(fā)周期,節(jié)省了協(xié)議棧的開發(fā)成本,提高了開發(fā)效率。
[0262]結(jié)合本文中所公開的實施例描述的方法中的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或【技術(shù)領(lǐng)域】內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
[0263]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準(zhǔn)。
【權(quán)利要求】
1.一種模擬通信插件的工作方法,其特征在于,包括以下步驟:51、模擬通信插件等待被調(diào)用;52、當(dāng)所述模擬通信插件的外部接口被調(diào)用時,執(zhí)行步驟S3;當(dāng)所述模擬通信插件的第一回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟S7;當(dāng)所述模擬通信插件的第二回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟S9 ;當(dāng)所述模擬通信插件的第三回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟S12 ;53、所述模擬通信插件獲取操作碼和參數(shù),對所述操作碼的取值進行判斷,如果所述操作碼的取值為第一預(yù)設(shè)值,則執(zhí)行步驟S4 ;如果所述操作碼的取值為第二預(yù)設(shè)值,則執(zhí)行步驟S5 ;如果所述操作碼的取值為第三預(yù)設(shè)值,則執(zhí)行步驟S6 ;54、所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息,根據(jù)所述插件配置信息對數(shù)據(jù)寄存器進行初始化,將所述第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行寫操作;將所述第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù);將所述第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行讀操作,并返回步驟SI ;55、所述模擬通信插件執(zhí)行復(fù)位操作,并返回步驟SI;56、所述模擬通信插件執(zhí)行下電操作,并返回步驟SI;57、所述模擬通信插件將通信狀態(tài)設(shè)置為忙狀態(tài),從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),根據(jù)第一地址將讀取到的數(shù)據(jù)保存到第一緩沖區(qū)中,更新所述第一地址;58、所述模擬通信插件將通信狀態(tài)設(shè)置為閑狀態(tài),并返回步驟SI;59、所述模擬通信插件將所`述第一緩沖區(qū)中的數(shù)據(jù)發(fā)送給模擬讀卡器,對所述第一地址進行初始化,等待接收來自所述模擬讀卡器的數(shù)據(jù);510、所述模擬通信插件接收到來自所述模擬讀卡器的數(shù)據(jù)后,將接收到的數(shù)據(jù)保存到第二緩沖區(qū)中;511、所述模擬通信插件根據(jù)第二地址從所述第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,更新所述第二地址,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),并返回步驟SI ;512、所述模擬通信插件將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài),判斷所述第二緩沖區(qū)中是否有需要發(fā)送給所述芯片操作系統(tǒng)的數(shù)據(jù),如果是,則返回步驟Sll ;否則,對所述第二地址進行初始化,并返回步驟SI。
2.如權(quán)利要求1所述的方法,其特征在于,所述模擬通信插件對所述操作碼的取值進行判斷之后,還包括:513、如果所述操作碼的取值為第四預(yù)設(shè)值,所述模擬通信插件根據(jù)所述參數(shù)獲取宿主配置信息;514、所述模擬通信插件根據(jù)所述宿主配置信息,判斷自身是否與集成開發(fā)環(huán)境匹配,如果匹配,則執(zhí)行步驟S15 ;否則,執(zhí)行步驟S16 ;515、所述模擬通信插件向所述集成開發(fā)環(huán)境發(fā)送匹配成功信息,并返回步驟SI;516、所述模擬通信插件向所述集成開發(fā)環(huán)境發(fā)送匹配失敗信息,結(jié)束流程。
3.如權(quán)利要求2所述的方法,其特征在于,所述模擬通信插件根據(jù)所述參數(shù)獲取宿主配置信息,具體為:所述模擬通信插件將所述參數(shù)的取值作為地址,從對應(yīng)的存儲區(qū)域讀取所述宿主配置信息;或者,將所述參數(shù)作為所述宿主配置信息。
4.如權(quán)利要求2所述的方法,其特征在于,步驟S14,具體為:所述模擬通信插件判斷自身所支持的配置信息中是否包含所述宿主配置信息,如果包含,則確定自身與所述集成開發(fā)環(huán)境匹配;否則,確定自身與所述集成開發(fā)環(huán)境不匹配。
5.如權(quán)利要求4所述的方法,其特征在于,所述宿主配置信息為所述集成開發(fā)環(huán)境所提供的CPU類型;所述步驟S14,具體為:所述模擬通信插件判斷自身所支持的CPU類型中是否包含所述集成開發(fā)環(huán)境所提供的CPU類型,如果包含,則確定自身與所述集成開發(fā)環(huán)境匹配;如果不包含,則確定自身與所述集成開發(fā)環(huán)境不匹配。
6.如權(quán)利要求4所述的方法,其特征在于,所述宿主配置信息為所述集成開發(fā)環(huán)境所提供的CPU類型和所述集成開發(fā)環(huán)境的版本號;所述步驟S14,具體為:所述模擬通信插件判斷自身所支持的CPU類型中是否包含所述集成開發(fā)環(huán)境所提供的CPU類型,如果不包含,則確定自身與所述集成開發(fā)環(huán)境不匹配;如果包含,判斷自身所支持的版本號中是否包含所述集成開發(fā)環(huán)境的版本號,如果不包含,則確定自身與所述集成開發(fā)環(huán)境不匹配;如果包含,則確定自身與所述集成開發(fā)環(huán)境匹配。
7.如權(quán)利要求1所述的方法,其特征在于,所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息,具體為:`所述模擬通信插件將所述參數(shù)的取值作為地址,讀取存儲在所述地址的配置數(shù)據(jù)結(jié)構(gòu),從所述配置數(shù)據(jù)結(jié)構(gòu)中獲取配置文件路徑,根據(jù)所述配置文件路徑,從對應(yīng)的配置文件中讀取所述插件配置信息。
8.如權(quán)利要求1所述的方法,其特征在于,所述插件配置信息包括所述數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器的地址;所述模擬通信插件根據(jù)所述插件配置信息對所述數(shù)據(jù)寄存器進行初始化,具體為:所述模擬通信插件根據(jù)所述數(shù)據(jù)寄存器的地址,將所述數(shù)據(jù)寄存器中的數(shù)據(jù)設(shè)置為第五預(yù)設(shè)值;所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息之后,還包括:所述模擬通信插件根據(jù)所述狀態(tài)寄存器的地址,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;根據(jù)所述控制寄存器的地址,將所述控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值;所述芯片操作系統(tǒng)將通信方式設(shè)置為發(fā)送數(shù)據(jù),具體為:所述芯片操作系統(tǒng)將所述控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值;所述芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù),具體為:所述芯片操作系統(tǒng)將所述控制寄存器中的數(shù)據(jù)設(shè)置為第八預(yù)設(shè)值;所述模擬通信插件將通信狀態(tài)設(shè)置為閑狀態(tài),具體為:所述模擬通信插件將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;所述模擬通信插件將通信狀態(tài)設(shè)置為忙狀態(tài),具體為:所述模擬通信插件將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值;所述模擬通信插件將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),具體為:所述模擬通信插件將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值;所述模擬通信插件將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài),具體為:所述模擬通信插件將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十一預(yù)設(shè)值;所述模擬通信插件執(zhí)行復(fù)位操作,具體為:所述模擬通信插件向所述數(shù)據(jù)寄存器、所述狀態(tài)寄存器和所述控制寄存器寫入預(yù)設(shè)數(shù)據(jù)。
9.如權(quán)利要求1所述的方法,其特征在于,所述插件配置信息包括菜單數(shù)據(jù)結(jié)構(gòu)的地址;所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息之后,還包括:所述模擬通信插件根據(jù)所述菜單數(shù)據(jù)結(jié)構(gòu)的地址,讀取所述菜單數(shù)據(jù)結(jié)構(gòu),并根據(jù)所述菜單數(shù)據(jù)結(jié)構(gòu)對菜單項進行初始化;所述模擬通信插件執(zhí)行復(fù)位操作,具體為:所述模擬通信插件對所述菜單項進行復(fù)位。
10.如權(quán)利要求1所述的方法,其特征在于,所述插件配置信息包括網(wǎng)絡(luò)端口號;所述模擬通信插件根據(jù)所述參`數(shù)獲取插件配置信息之后,還包括:所述模擬通信插件將與所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口,綁定為所述模擬通信插件與所述模擬讀卡器之間的交互端口;所述模擬通信插件執(zhí)行復(fù)位操作,具體為:所述模擬通信插件將與所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口與所述交互端口之間的綁定關(guān)系取消;所述模擬通信插件執(zhí)行下電操作,具體為:所述模擬通信插件將與所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口關(guān)閉。
11.如權(quán)利要求1所述的方法,其特征在于,還包括:Al、所述芯片操作系統(tǒng)將通信方式設(shè)置為發(fā)送數(shù)據(jù),從第三緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中;A2、所述芯片操作系統(tǒng)判斷所述第三緩沖區(qū)中是否還有需要發(fā)送給所述模擬讀卡器的數(shù)據(jù),如果有,則執(zhí)行步驟A3 ;否則,執(zhí)行步驟A4 ;A3、所述芯片操作系統(tǒng)判斷通信狀態(tài)是否為閑狀態(tài),如果是,則從所述第三緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,并返回步驟A2 ;否則,返回步驟A3 ;A4、所述芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù);A5、所述芯片操作系統(tǒng)判斷通信狀態(tài)是否為有數(shù)據(jù)狀態(tài),如果是,則執(zhí)行步驟A6 ;否則,返回步驟A5 ;A6、所述芯片操作系統(tǒng)從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)存儲到第四緩沖區(qū)中;A7、所述芯片操作系統(tǒng)根據(jù)所述第四緩沖區(qū)中的數(shù)據(jù),判斷是否還需要接收數(shù)據(jù),如果是,則返回步驟A5 ;否則,執(zhí)行步驟AS ;AS、所述芯片操作系統(tǒng)對所述第四緩沖區(qū)中的數(shù)據(jù)進行處理,得到處理結(jié)果;A9、所述芯片操作系統(tǒng)判斷是否需要將所述處理結(jié)果發(fā)送給所述模擬讀卡器,如果是,則執(zhí)行步驟AlO ;否則,結(jié)束流程;A10、所述芯片操作系統(tǒng)將所述處理結(jié)果存儲到所述第三緩沖區(qū)中,并返回步驟Al。
12.—種模擬通信插件的工作方法,其特征在于,包括以下步驟:S1、模擬通信插件等待被調(diào)用;S2、當(dāng)所述模擬通信插件的外部接口被調(diào)用時,執(zhí)行步驟S3;當(dāng)所述模擬通信插件的第一回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟S7;當(dāng)所述模擬通信插件的第二回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟S9 ;當(dāng)所述模擬通信插件的第三回調(diào)函數(shù)被調(diào)用時,執(zhí)行步驟Sll ;S3、所述模擬通信插件獲取操作碼和參數(shù),對所述操作碼的取值進行判斷,如果所述操作碼的取值為第一預(yù)設(shè)值,則執(zhí)行步驟S4 ;如果所述操作碼的取值為第二預(yù)設(shè)值,則執(zhí)行步驟S5 ;如果所述操作碼的取值為第三預(yù)設(shè)值,則執(zhí)行步驟S6 ;S4、所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息,根據(jù)所述插件配置信息對數(shù)據(jù)寄存器進行初始化,將所述第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行寫操作;將所述第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:通信方式為接收數(shù)據(jù)且所述芯片操作系統(tǒng)對通信狀態(tài)進行判斷;將所述第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行讀操作,并返回步驟SI ;S5、所述模擬通信插件執(zhí)行復(fù)位操作,并返回步驟SI;S6、所述模擬通信插件執(zhí)行下電操作,并返回步驟SI;S7、所述模擬通信插件將通信狀態(tài)設(shè)置為忙狀態(tài),從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)發(fā)送給模擬讀卡器;S8、所述模擬通信插件將通信狀態(tài)設(shè)置為閑狀態(tài),并返回步驟SI;S9、所述模擬通信插件等待接收來自所述模擬讀卡器的數(shù)據(jù);S10、所述模擬通信插件判斷是否在預(yù)設(shè)時間內(nèi)接收到來自所述模擬讀卡器的數(shù)據(jù),如果是,則將來自所述模擬讀卡器的一個字節(jié)的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),并返回步驟SI ;否則,返回步驟SI ;S11、所述模擬通信插件將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài),并返回步驟SI。
13.如權(quán)利要求12所述的方法,其特征在于,所述模擬通信插件對所述操作碼的取值進行判斷之后,還包括:S13、如果所述操作碼的取值為第四預(yù)設(shè)值,所述模擬通信插件根據(jù)所述參數(shù)獲取宿主配置信息;S14、所述模擬通信插件根據(jù)所述宿主配置信息,判斷自身是否與集成開發(fā)環(huán)境匹配,如果匹配,則執(zhí)行步驟S15 ;否則,執(zhí)行步驟S16 ;S15、所述模擬通信插件向所述集成開發(fā)環(huán)境發(fā)送匹配成功信息,并返回步驟SI;S16、所述模擬通信插件向所述集成開發(fā)環(huán)境發(fā)送匹配失敗信息,結(jié)束流程。
14.如權(quán)利要求13所述的方法,其特征在于,所述模擬通信插件根據(jù)所述參數(shù)獲取宿主配置信息,具體為:所述模擬通信插件將所述參數(shù)的取值作為地址,從對應(yīng)的存儲區(qū)域讀取所述宿主配置信息;或者,將所述參數(shù)作為所述宿主配置信息。
15.如權(quán)利要求13所述的方法,其特征在于,步驟S14,具體為:所述模擬通信插件判斷自身所支持的配置信息中是否包含所述宿主配置信息,如果包含,則確定自身與所述集成開發(fā)環(huán)境匹配;否則,確定自身與所述集成開發(fā)環(huán)境不匹配。
16.如權(quán)利要求15所述的方法,其特征在于,所述宿主配置信息為所述集成開發(fā)環(huán)境所提供的CPU類型;所述步驟S14,具體為:所述模擬通信插件判斷自身所支持的CPU類型中是否包含所述集成開發(fā)環(huán)境所提供的CPU類型,如果包含,則確定自身與所述集成開發(fā)環(huán)境匹配;如果不包含,則確定自身與所述集成開發(fā)環(huán)境不匹配。
17.如權(quán)利要求15所述的方法,其特征在于,所述宿主配置信息為所述集成開發(fā)環(huán)境所提供的CPU類型和所述集成開發(fā)環(huán)境的版本號;所述步驟S14,具體為:所述模擬通信插件判斷自身所支持的CPU類型中是否包含所述集成開發(fā)環(huán)境所提供的CPU類型,如果不包含,則確定自身與所述集成開發(fā)環(huán)境不匹配;如果包含,判斷自身所支持的版本號中是否包含所述集成開發(fā)環(huán)境的版本號,如果不包含,則確定自身與所述集成開發(fā)環(huán)境不匹配;如果包含,則確定自身與所述集成開發(fā)環(huán)境匹配。
18.如權(quán)利要求12所述的方法,其特征在于,所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息,具體為:所述模擬通信插件將所述參數(shù)的取值作為地址,讀取存儲在所述地址的配置數(shù)據(jù)結(jié)構(gòu),從所述配置數(shù)據(jù)結(jié)構(gòu)中獲取配置文件路徑,根據(jù)所述配置文件路徑,從對應(yīng)的配置文件中讀取所述插件配置信息。
19.如權(quán)利要求12所述的方法,其特征在于,所述插件配置信息包括所述數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器的地址;所述模擬通信插件根據(jù)所述插件配置信息對所述數(shù)據(jù)寄存器進行初始化,具體為:所述模擬通信插件根據(jù)所述數(shù)據(jù)寄存器的地址,將所述數(shù)據(jù)寄存器中的數(shù)據(jù)設(shè)置為第五預(yù)設(shè)值;所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息之后,還包括:所述模擬通信插件根據(jù)所述狀態(tài)寄存器的地址,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;根據(jù)所述控制寄存器的地址,將所述控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值;所述芯片操作系統(tǒng)將通信方式設(shè)置為發(fā)送數(shù)據(jù),具體為:所述芯片操作系統(tǒng)將所述控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值;所述芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù),具體為:所述芯片操作系統(tǒng)將所述控制寄存器中的數(shù)據(jù)設(shè)置為第八預(yù)設(shè)值;所述模擬通信插件將通信狀態(tài)設(shè)置為閑狀態(tài),具體為:所述模擬通信插件將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;所述模擬通信插件將通信狀態(tài)設(shè)置為忙狀態(tài),具體為:所述模擬通信插件將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值;所述模擬通信插件將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài),具體為:所述模擬通信插件將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值;所述模擬通信插件將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài),具體為:所述模擬通信插件將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十一預(yù)設(shè)值;所述模擬通信插件執(zhí)行復(fù)位操作,具體為:所述模擬通信插件向所述數(shù)據(jù)寄存器、所述狀態(tài)寄存器和所述控制寄存器寫入預(yù)設(shè)數(shù)據(jù)。
20.如權(quán)利要求12所述的方法,其特征在于,所述插件配置信息包括菜單數(shù)據(jù)結(jié)構(gòu)的地址;所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息之后,還包括:所述模擬通信插件根據(jù)所述菜單數(shù)據(jù)結(jié)構(gòu)的地址,讀取所述菜單數(shù)據(jù)結(jié)構(gòu),并根據(jù)所述菜單數(shù)據(jù)結(jié)構(gòu)對菜單項進行初始化;所述模擬通信插件執(zhí)行復(fù)位操作,具體為:所述模擬通信插件對所述菜單項進行復(fù)位。
21.如權(quán)利要求12所述的方法,其特征在于,所述插件配置信息包括網(wǎng)絡(luò)端口號;所述模擬通信插件根據(jù)所述參數(shù)獲取插件配置信息之后,還包括:所述模擬通信插件將與所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口,綁定為所述模擬通信插件與所述模擬讀卡器之間的交互端口;所述模擬通信插件執(zhí)行復(fù)位操作,具體為:`所述模擬通信插件將與所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口與所述交互端口之間的綁定關(guān)系取消;所述模擬通信插件執(zhí)行下電操作,具體為:所述模擬通信插件將與所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口關(guān)閉。
22.如權(quán)利要求12所述的方法,其特征在于,還包括:Al、所述芯片操作系統(tǒng)將通信方式設(shè)置為發(fā)送數(shù)據(jù),從第三緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中;A2、所述芯片操作系統(tǒng)判斷所述第三緩沖區(qū)中是否還有需要發(fā)送給所述模擬讀卡器的數(shù)據(jù),如果有,則執(zhí)行步驟A3 ;否則,執(zhí)行步驟A4 ;A3、所述芯片操作系統(tǒng)判斷通信狀態(tài)是否為閑狀態(tài),如果是,則從所述第三緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,并返回步驟A2 ;否則,返回步驟A3 ;A4、所述芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù);A5、所述芯片操作系統(tǒng)判斷通信狀態(tài)是否為有數(shù)據(jù)狀態(tài),如果是,則執(zhí)行步驟A6 ;否則,返回步驟A5 ;A6、所述芯片操作系統(tǒng)從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)存儲到第四緩沖區(qū)中;A7、所述芯片操作系統(tǒng)根據(jù)所述第四緩沖區(qū)中的數(shù)據(jù),判斷是否還需要接收數(shù)據(jù),如果是,則返回步驟A5 ;否則,執(zhí)行步驟AS ;AS、所述芯片操作系統(tǒng)對所述第四緩沖區(qū)中的數(shù)據(jù)進行處理,得到處理結(jié)果;A9、所述芯片操作系統(tǒng)判斷是否需要將所述處理結(jié)果發(fā)送給所述模擬讀卡器,如果是,則執(zhí)行步驟AlO ;否則,結(jié)束流程;A10、所述芯片操作系統(tǒng)將所述處理結(jié)果存儲到所述第三緩沖區(qū)中,并返回步驟Al。
23.一種模擬通信插件,其特征在于,具有可被調(diào)用的外部接口,所述模擬通信插件包括:第一獲取模塊,用于在所述外部接口被調(diào)用時,獲取操作碼和參數(shù);第一判斷模塊,用于對所述第一獲取模塊獲取的所述操作碼的取值進行判斷;第二獲取模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第一預(yù)設(shè)值時,根據(jù)所述參數(shù)獲取插件配置信息;第一初始化模塊,用于根據(jù)所述第二獲取模塊獲取的所述插件配置信息對數(shù)據(jù)寄存器進行初始化,將第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行寫操作;將第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù);將第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行讀操作;復(fù)位模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預(yù)設(shè)值時,執(zhí)行復(fù)位操作;下電模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第三預(yù)設(shè)值時,執(zhí)行下電操作;第一處理模塊,用于在所述第一回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為忙狀態(tài),從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),根據(jù)第一地址將讀取到的數(shù)據(jù)保存到第一緩沖區(qū)中,更新所述第一地址;第一設(shè)置模塊,用于在所述第`一處理模塊從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)后,將通信狀態(tài)設(shè)置為閑狀態(tài);第二處理模塊,用于在所述第二回調(diào)函數(shù)被調(diào)用時,將所述第一緩沖區(qū)中的數(shù)據(jù)發(fā)送給模擬讀卡器,對所述第一地址進行初始化;接收模塊,用于接收來自所述模擬讀卡器的數(shù)據(jù),將接收到的數(shù)據(jù)保存到第二緩沖區(qū)中,觸發(fā)第三處理模塊;第三處理模塊,用于根據(jù)第二地址從所述第二緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,更新所述第二地址;第二設(shè)置模塊,用于在所述第三處理模塊將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中后,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài);第三設(shè)置模塊,用于在所述第三回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài);第二判斷模塊,用于在所述第三設(shè)置模塊將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài)后,判斷所述第二緩沖區(qū)中是否有需要發(fā)送給所述芯片操作系統(tǒng)的數(shù)據(jù),并在判斷出所述第二緩沖區(qū)中有需要發(fā)送給所述芯片操作系統(tǒng)的數(shù)據(jù)時,觸發(fā)所述第三處理模塊;第二初始化模塊,用于在所述第二判斷模塊判斷出所述第二緩沖區(qū)中沒有需要發(fā)送給所述芯片操作系統(tǒng)的數(shù)據(jù)時,對所述第二地址進行初始化。
24.如權(quán)利要求23所述的模擬通信插件,其特征在于,還包括:第三獲取模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第四預(yù)設(shè)值時,根據(jù)所述參數(shù)獲取宿主配置信息;第三判斷模塊,用于根據(jù)所述第三獲取模塊獲取的所述宿主配置信息,判斷所述模擬通信插件是否與集成開發(fā)環(huán)境匹配;發(fā)送模塊,用于在所述第三 判斷模塊判斷出所述模擬通信插件與所述集成開發(fā)環(huán)境匹配時,向所述集成開發(fā)環(huán)境發(fā)送匹配成功信息;在所述第三判斷模塊判斷出所述模擬通信插件與所述集成開發(fā)環(huán)境不匹配時,向所述集成開發(fā)環(huán)境發(fā)送匹配失敗信息。
25.如權(quán)利要求24所述的模擬通信插件,其特征在于,所述第三獲取模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第四預(yù)設(shè)值時,將所述參數(shù)的取值作為地址,從對應(yīng)的存儲區(qū)域讀取所述宿主配置信息;或者,將所述參數(shù)作為所述宿主配置信息。
26.如權(quán)利要求24所述的模擬通信插件,其特征在于,所述第三判斷模塊,具體用于判斷所述模擬通信插件所支持的配置信息中是否包含所述第三獲取模塊獲取的所述宿主配置信息,如果包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境匹配;否則,確定所述模擬通信插件與所述集成開發(fā)環(huán)境不匹配。
27.如權(quán)利要求26所述的模擬通信插件,其特征在于,所述宿主配置信息為所述集成開發(fā)環(huán)境所提供的CPU類型;所述第三判斷模塊,具體用于判斷所述模擬通信插件所支持的CPU類型中是否包含所述集成開發(fā)環(huán)境所提供的CPU類型,如果包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境匹配;如果不包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境不匹配。
28.如權(quán)利要求26所述的模擬通信插件,其特征在于,所述宿主配置信息為所述集成開發(fā)環(huán)境所提供的CPU類型和所述集成開發(fā)環(huán)境的版本號;所述第三判斷模塊,具體用于判斷所述模擬通信插件所支持的CPU類型中是否包含所述集成開發(fā)環(huán)境所提供的CPU類型,如果不包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境不匹配;如果包含,判斷所述模擬通信插件所支持的版本號中是否包含所述集成開發(fā)環(huán)境的版本號,如果不包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境不匹配;如果包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境匹配。
29.如權(quán)利要求23所述的模擬通信插件,其特征在于,所述第二獲取模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第一預(yù)設(shè)值時,將所述參數(shù)的取值作為地址,讀取存儲在所述地址的配置數(shù)據(jù)結(jié)構(gòu),從所述配置數(shù)據(jù)結(jié)構(gòu)中獲取配置文件路徑,根據(jù)所述配置文件路徑,從對應(yīng)的配置文件中讀取所述插件配置信息。
30.如權(quán)利要求23所述的模擬通信插件,其特征在于,所述插件配置信息包括所述數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器的地址;所述第一初始化模塊,具體用于根據(jù)所述第二獲取模塊獲取的所述數(shù)據(jù)寄存器的地址,將所述數(shù)據(jù)寄存器中的數(shù)據(jù)設(shè)置為第五預(yù)設(shè)值;根據(jù)所述第二獲取模塊獲取的所述狀態(tài)寄存器的地址,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;根據(jù)所述第二獲取模塊獲取的所述控制寄存器的地址,將所述控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值;將所述第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行寫操作;將所述第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)將通信方式設(shè)置為接收數(shù)據(jù);將所述第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行讀操作;所述第一設(shè)置模塊,具體用于在所述第一處理模塊從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)后,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;所述第一處理模塊,具體用于在所述第一回調(diào)函數(shù)被調(diào)用時,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值,從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),根據(jù)第一地址將讀取到的數(shù)據(jù)保存到第一緩沖區(qū)中,更新所述第一地址;所述第二設(shè)置模塊,具體用于在所述第三處理模塊將讀取到的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中后,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十預(yù)設(shè)值;所述第三設(shè)置模塊,具體用于在所述第三回調(diào)函數(shù)被調(diào)用時,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十一預(yù)設(shè)值;所述復(fù)位模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預(yù)設(shè)值時,向所述數(shù)據(jù)寄存器、所述狀態(tài)寄存器和所述控制寄存器寫入預(yù)設(shè)數(shù)據(jù)。
31.如權(quán)利要求23所述的模擬通信插件,其特征在于,所述插件配置信息包括菜單數(shù)據(jù)結(jié)構(gòu)的地址;所述第一初始化模塊,還用于根據(jù)所述第二獲取模塊獲取的所述插件配置信息中的所述菜單數(shù)據(jù)結(jié)構(gòu)的地址,讀取所述菜單數(shù)據(jù)結(jié)構(gòu),并根據(jù)所述菜單數(shù)據(jù)結(jié)構(gòu)對菜單項進行初始化;所述復(fù)位模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預(yù)設(shè)值時,對所述菜單項進行復(fù)位。
32.如權(quán)利要求23所述的模擬通信插件,其特征在于,所述插件配置信息包括網(wǎng)絡(luò)端□號;所述第一初始化模塊,還用于將與所述第二獲取模塊獲取的所述插件配置信息中的所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口,綁定為所述模擬通信插件與所述模擬讀卡器之間的交互端Π ;`所述復(fù)位模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預(yù)設(shè)值時,將與所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口與所述交互端口之間的綁定關(guān)系取消;所述下電模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第三預(yù)設(shè)值時,將與所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口關(guān)閉。
33.一種模擬通信插件,其特征在于,具有可被調(diào)用的外部接口,所述模擬通信插件包括:第一獲取模塊,用于在所述外部接口被調(diào)用時,獲取操作碼和參數(shù);第一判斷模塊,用于對所述第一獲取模塊獲取的所述操作碼的取值進行判斷;第二獲取模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第一預(yù)設(shè)值時,根據(jù)所述參數(shù)獲取插件配置信息;初始化模塊,用于根據(jù)所述第二獲取模塊獲取的所述插件配置信息對數(shù)據(jù)寄存器進行初始化,將第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行寫操作;將第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:通信方式為接收數(shù)據(jù)且所述芯片操作系統(tǒng)對通信狀態(tài)進行判斷;將第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行讀操作;復(fù)位模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預(yù)設(shè)值時,執(zhí)行復(fù)位操作;下電模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第三預(yù)設(shè)值時,執(zhí)行下電操作;第一處理模塊,用于在所述第一回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為忙狀態(tài),從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)發(fā)送給模擬讀卡器;第一設(shè)置模塊,用于在所述第一處理模塊從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)后,將通信狀態(tài)設(shè)置為閑狀態(tài);第二判斷模塊,用于在所述第二回調(diào)函數(shù)被調(diào)用時,判斷是否在預(yù)設(shè)時間內(nèi)接收到來自所述模擬讀卡器的數(shù)據(jù);第二處理模塊,用于在所述第二判斷模塊判斷出在預(yù)設(shè)時間內(nèi)接收到來自所述模擬讀卡器的數(shù)據(jù)時,將來自所述模擬讀卡器的一個字節(jié)的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,將通信狀態(tài)設(shè)置為有數(shù)據(jù)狀態(tài);第二設(shè)置模塊,用于在所述第三回調(diào)函數(shù)被調(diào)用時,將通信狀態(tài)設(shè)置為無數(shù)據(jù)狀態(tài)。
34.如權(quán)利要求33所述的模擬通信插件,其特征在于,還包括:第三獲取模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第四預(yù)設(shè)值時,根據(jù)所述參數(shù)獲取宿主配置信息;第三判斷模塊,用于根據(jù)所述第三獲取模塊獲取的所述宿主配置信息,判斷所述模擬通信插件是否與集成開發(fā)環(huán)境匹配;發(fā)送模塊,用于在所述第三判斷模塊判斷出所述模擬通信插件與所述集成開發(fā)環(huán)境匹配時,向所述集成開發(fā)環(huán)境發(fā)送匹配成功信息;在所述第三判斷模塊判斷出所述模擬通信插件與所述集成開發(fā)環(huán)境不匹配時,向所述集成開發(fā)環(huán)境發(fā)送匹配失敗信息。`
35.如權(quán)利要求34所述的模擬通信插件,其特征在于,所述第三獲取模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第四預(yù)設(shè)值時,將所述參數(shù)的取值作為地址,從對應(yīng)的存儲區(qū)域讀取所述宿主配置信息;或者,將所述參數(shù)作為所述宿主配置信息。
36.如權(quán)利要求34所述的模擬通信插件,其特征在于,所述第三判斷模塊,具體用于判斷所述模擬通信插件所支持的配置信息中是否包含所述第三獲取模塊獲取的所述宿主配置信息,如果包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境匹配;否則,確定所述模擬通信插件與所述集成開發(fā)環(huán)境不匹配。
37.如權(quán)利要求36所述的模擬通信插件,其特征在于,所述宿主配置信息為所述集成開發(fā)環(huán)境所提供的CPU類型;所述第三判斷模塊,具體用于判斷所述模擬通信插件所支持的CPU類型中是否包含所述集成開發(fā)環(huán)境所提供的CPU類型,如果包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境匹配;如果不包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境不匹配。
38.如權(quán)利要求36所述的模擬通信插件,其特征在于,所述宿主配置信息為所述集成開發(fā)環(huán)境所提供的CPU類型和所述集成開發(fā)環(huán)境的版本號;所述第三判斷模塊,具體用于判斷所述模擬通信插件所支持的CPU類型中是否包含所述集成開發(fā)環(huán)境所提供的CPU類型,如果不包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境不匹配;如果包含,判斷所述模擬通信插件所支持的版本號中是否包含所述集成開發(fā)環(huán)境的版本號,如果不包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境不匹配;如果包含,則確定所述模擬通信插件與所述集成開發(fā)環(huán)境匹配。
39.如權(quán)利要求33所述的模擬通信插件,其特征在于,所述第二獲取模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第一預(yù)設(shè)值時,將所述參數(shù)的取值作為地址,讀取存儲在所述地址的配置數(shù)據(jù)結(jié)構(gòu),從所述配置數(shù)據(jù)結(jié)構(gòu)中獲取配置文件路徑,根據(jù)所述配置文件路徑,從對應(yīng)的配置文件中讀取所述插件配置信息。
40.如權(quán)利要求33所述的模擬通信插件,其特征在于,所述插件配置信息包括所述數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器的地址;所述初始化模塊,具體用于根據(jù)所述第二獲取模塊獲取的所述數(shù)據(jù)寄存器的地址,將所述數(shù)據(jù)寄存器中的數(shù)據(jù)設(shè)置為第五預(yù)設(shè)值;根據(jù)所述第二獲取模塊獲取的所述狀態(tài)寄存器的地址,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;根據(jù)所述第二獲取模塊獲取的所述控制寄存器的地址,將所述控制寄存器中的數(shù)據(jù)設(shè)置為第七預(yù)設(shè)值;將所述第一回調(diào)函數(shù)的調(diào)用條件設(shè)置為:芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行寫操作;將所述第二回調(diào)函數(shù)的調(diào)用條件設(shè)置為:通信方式為接收數(shù)據(jù)且所述芯片操作系統(tǒng)對通信狀態(tài)進行判斷;將所述第三回調(diào)函數(shù)的調(diào)用條件設(shè)置為:所述芯片操作系統(tǒng)對所述數(shù)據(jù)寄存器執(zhí)行讀操作;所述第一設(shè)置模塊,具體用于在所述第一處理模塊從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù)后,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第六預(yù)設(shè)值;所述第一處理模塊,具體用于在所述第一回調(diào)函數(shù)被調(diào)用時,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第九預(yù)設(shè)值,從所述數(shù)據(jù)寄存器中讀取一個字節(jié)的數(shù)據(jù),將讀取到的數(shù)據(jù)發(fā)送給模擬讀卡器;所述第二處理模塊,具體用于在所述第二判斷模塊判斷出在預(yù)設(shè)時間內(nèi)接收到來自所述模擬讀卡器的數(shù)據(jù)時,將來自所述模擬讀卡器的一個字節(jié)的數(shù)據(jù)寫入到所述數(shù)據(jù)寄存器中,將所述狀態(tài)寄存器中的數(shù)據(jù)`設(shè)置為第十預(yù)設(shè)值;所述第二設(shè)置模塊,具體用于在所述第三回調(diào)函數(shù)被調(diào)用時,將所述狀態(tài)寄存器中的數(shù)據(jù)設(shè)置為第十一預(yù)設(shè)值;所述復(fù)位模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預(yù)設(shè)值時,向所述數(shù)據(jù)寄存器、所述狀態(tài)寄存器和所述控制寄存器寫入預(yù)設(shè)數(shù)據(jù)。
41.如權(quán)利要求33所述的模擬通信插件,其特征在于,所述插件配置信息包括菜單數(shù)據(jù)結(jié)構(gòu)的地址;所述初始化模塊,還用于根據(jù)所述第二獲取模塊獲取的所述插件配置信息中的所述菜單數(shù)據(jù)結(jié)構(gòu)的地址,讀取所述菜單數(shù)據(jù)結(jié)構(gòu),并根據(jù)所述菜單數(shù)據(jù)結(jié)構(gòu)對菜單項進行初始化;所述復(fù)位模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預(yù)設(shè)值時,對所述菜單項進行復(fù)位。
42.如權(quán)利要求33所述的模擬通信插件,其特征在于,所述插件配置信息包括網(wǎng)絡(luò)端□號;所述初始化模塊,還用于將與所述第二獲取模塊獲取的所述插件配置信息中的所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口,綁定為所述模擬通信插件與所述模擬讀卡器之間的交互端口 ;所述復(fù)位模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預(yù)設(shè)值時,將與所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口與所述交互端口之間的綁定關(guān)系取消; 所述下電模塊,具體用于在所述第一判斷模塊判斷出所述操作碼的取值為第三預(yù)設(shè)值時,將與所述網(wǎng)絡(luò)端口號對應(yīng)的網(wǎng)絡(luò)端口關(guān)閉。
【文檔編號】G06F12/08GK103559074SQ201310520342
【公開日】2014年2月5日 申請日期:2013年10月29日 優(yōu)先權(quán)日:2013年10月29日
【發(fā)明者】陸舟, 于華章 申請人:飛天誠信科技股份有限公司