<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

一種模擬通信插件及其工作方法

文檔序號:6516910閱讀:323來源:國知局
一種模擬通信插件及其工作方法
【專利摘要】本發明公開一種模擬通信插件及其工作方法,應用于包括芯片操作系統、特殊功能寄存器、模擬通信插件和模擬讀卡器的模擬通信系統中,其中,模擬通信插件是IDE啟動時所加載的插件,用于建立芯片操作系統與模擬讀卡器之間的通信;模擬讀卡器用于接收并處理來自芯片操作系統的數據,以及向芯片操作系統發送數據。本發明通過調用模擬通信插件的外部接口,設置數據寄存器,并通過對數據寄存器的讀寫操作,實現芯片操作系統和模擬讀卡器之間的模擬通信,提高了模擬通信的實時性和可靠性,解決了現有技術中調試資源短缺的缺陷,縮短協議棧的開發周期,節省了協議棧的開發成本,提高了開發效率。
【專利說明】一種模擬通信插件及其工作方法
【技術領域】
[0001]本發明涉及通信【技術領域】,特別是涉及一種模擬通信插件及其工作方法。
【背景技術】
[0002]目前,UICC (Universal Integrated Circuit Card,通用集成電路卡)端的 SWP(Single Wire Protocol,單線協議)/HCI (Host Controller Interface,主機控制接口)協議棧的開發,通常是在硬仿真環境下進行的。通過仿真器與開發板的調試接口相連,編寫代碼并編譯鏈接后,即可將測試代碼下載到開發板,并啟動調試以除錯,從而仿真出開發板上的模擬的芯片和資源。
[0003]發明人在實現本發明的過程中,發現現有技術至少存在以下缺陷:
[0004]現有技術中,當使用IDE( Integrated Development Environment,集成開發環境)進行協議棧的開發時,IDE與仿真器之間會產生通信的實時性限制,調試較困難;而采用芯片商提供的開發板進行調試時,由于開發板資源有限,會導致調試資源短缺的問題。

【發明內容】

[0005]本發明提供了一種模擬通信插件及其工作方法,以解決現有技術中的調試資源短缺以及通信實時性限制的缺陷。
[0006]本發明提供了一種模擬通信插件的工作方法,包括以下步驟:
[0007]S1、模擬通信插件等待被調用;
[0008]S2、當所述模擬通信插件的外部接口被調用時,執行步驟S3 ;當所述模擬通信插件的第一回調函數被調用時,執行步驟S7;當所述模擬通信插件的第二回調函數被調用時,執行步驟S9 ;當所述模擬通信插件的第三回調函數被調用時,執行步驟S12 ;
[0009]S3、所述模擬通信插件獲取操作碼和參數,對所述操作碼的取值進行判斷,如果所述操作碼的取值為第一預設值,則執行步驟S4 ;如果所述操作碼的取值為第二預設值,則執行步驟S5 ;如果所述操作碼的取值為第三預設值,則執行步驟S6 ;
[0010]S4、所述模擬通信插件根據所述參數獲取插件配置信息,根據所述插件配置信息對數據寄存器進行初始化,將所述第一回調函數的調用條件設置為:芯片操作系統對所述數據寄存器執行寫操作;將所述第二回調函數的調用條件設置為:所述芯片操作系統將通信方式設置為接收數據;將所述第三回調函數的調用條件設置為:所述芯片操作系統對所述數據寄存器執行讀操作,并返回步驟Si ;
[0011]S5、所述模擬通信插件執行復位操作,并返回步驟SI ;
[0012]S6、所述模擬通信插件執行下電操作,并返回步驟SI ;
[0013]S7、所述模擬通信插件將通信狀態設置為忙狀態,從所述數據寄存器中讀取一個字節的數據,根據第一地址將讀取到的數據保存到第一緩沖區中,更新所述第一地址;
[0014]S8、所述模擬通信插件將通信狀態設置為閑狀態,并返回步驟SI ;
[0015]S9、所述模擬通信插件將所述第一緩沖區中的數據發送給模擬讀卡器,對所述第一地址進行初始化,等待接收來自所述模擬讀卡器的數據;
[0016]S10、所述模擬通信插件接收到來自所述模擬讀卡器的數據后,將接收到的數據保存到第二緩沖區中;
[0017]S11、所述模擬通信插件根據第二地址從所述第二緩沖區中讀取一個字節的數據,將讀取到的數據寫入到所述數據寄存器中,更新所述第二地址,將通信狀態設置為有數據狀態,并返回步驟Si ;
[0018]S12、所述模擬通信插件將通信狀態設置為無數據狀態,判斷所述第二緩沖區中是否有需要發送給所述芯片操作系統的數據,如果是,則返回步驟Sll ;否則,對所述第二地址進行初始化,并返回步驟Si。
[0019]本發明還提供了一種模擬通信插件的工作方法,包括以下步驟:
[0020]S1、模擬通信插件等待被調用;
[0021]S2、當所述模擬通信插件的外部接口被調用時,執行步驟S3;當所述模擬通信插件的第一回調函數被調用時,執行步驟S7 ;當所述模擬通信插件的第二回調函數被調用時,執行步驟S9 ;當所述模擬通信插件的第三回調函數被調用時,執行步驟Sll ;
[0022]S3、所述模擬通信插件獲取操作碼和參數,對所述操作碼的取值進行判斷,如果所述操作碼的取值為第一預設值,則執行步驟S4 ;如果所述操作碼的取值為第二預設值,則執行步驟S5 ;如果所述操作碼的取值為第三預設值,則執行步驟S6 ;
[0023]S4、所述模擬通信插件根據所述參數獲取插件配置信息,根據所述插件配置信息對數據寄存器進行初始化,將所述第一回調函數的調用條件設置為:芯片操作系統對所述數據寄存器執行寫操作;將所述第二回調函數的調用條件設置為:通信方式為接收數據且所述芯片操作系統對通信狀態進行判斷;將所述第三回調函數的調用條件設置為:所述芯片操作系統對所述數據寄存器執行讀操作,并返回步驟Si ;
[0024]S5、所述模擬通信插件執行復位操作,并返回步驟SI ;
[0025]S6、所述模擬通信插件執行下電操作,并返回步驟SI ;
[0026]S7、所述模擬通信插件將通信狀態設置為忙狀態,從所述數據寄存器中讀取一個字節的數據,將讀取到的數據發送給模擬讀卡器;
[0027]S8、所述模擬通信插件將通信狀態設置為閑狀態,并返回步驟SI ;
[0028]S9、所述模擬通信插件等待接收來自所述模擬讀卡器的數據;
[0029]S10、所述模擬通信插件判斷是否在預設時間內接收到來自所述模擬讀卡器的數據,如果是,則將來自所述模擬讀卡器的一個字節的數據寫入到所述數據寄存器中,將通信狀態設置為有數據狀態,并返回步驟SI ;否則,返回步驟SI ;
[0030]S11、所述模擬通信插件將通信狀態設置為無數據狀態,并返回步驟SI。
[0031]本發明還提供了一種模擬通信插件,具有可被調用的外部接口,所述模擬通信插件包括:
[0032]第一獲取模塊,用于在所述外部接口被調用時,獲取操作碼和參數;
[0033]第一判斷模塊,用于對所述第一獲取模塊獲取的所述操作碼的取值進行判斷;
[0034]第二獲取模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第一預設值時,根據所述參數獲取插件配置信息;
[0035]第一初始化模塊,用于根據所述第二獲取模塊獲取的所述插件配置信息對數據寄存器進行初始化,將第一回調函數的調用條件設置為:芯片操作系統對所述數據寄存器執行寫操作;將第二回調函數的調用條件設置為:所述芯片操作系統將通信方式設置為接收數據;將第三回調函數的調用條件設置為:所述芯片操作系統對所述數據寄存器執行讀操作;
[0036]復位模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預設值時,執行復位操作;
[0037]下電模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第三預設值時,執行下電操作;
[0038]第一處理模塊,用于在所述第一回調函數被調用時,將通信狀態設置為忙狀態,從所述數據寄存器中讀取一個字節的數據,根據第一地址將讀取到的數據保存到第一緩沖區中,更新所述第一地址;
[0039]第一設置模塊,用于在所述第一處理模塊從所述數據寄存器中讀取一個字節的數據后,將通信狀態設置為閑狀態;
[0040]第二處理模塊,用于在所述第二回調函數被調用時,將所述第一緩沖區中的數據發送給模擬讀卡器,對所述第一地址進行初始化;
[0041]接收模塊,用于接收來自所述模擬讀卡器的數據,將接收到的數據保存到第二緩沖區中,觸發第三處理模塊;
[0042]第三處理模塊,用于根據第二地址從所述第二緩沖區中讀取一個字節的數據,將讀取到的數據寫入到所述數據寄存器中,更新所述第二地址;
[0043]第二設置模塊,用于在所述第三處理模塊將讀取到的數據寫入到所述數據寄存器中后,將通信狀態設置為有數據狀態;
[0044]第三設置模塊,用于在所述第三回調函數被調用時,將通信狀態設置為無數據狀態;
[0045]第二判斷模塊,用于在所述第三設置模塊將通信狀態設置為無數據狀態后,判斷所述第二緩沖區中是否有需要發送給所述芯片操作系統的數據,并在判斷出所述第二緩沖區中有需要發送給所述芯片操作系統的數據時,觸發所述第三處理模塊;
[0046]第二初始化模塊,用于在所述第二判斷模塊判斷出所述第二緩沖區中有需要發送給所述芯片操作系統的數據時,對所述第二地址進行初始化。
[0047]本發明還提供了 一種模擬通信插件,具有可被調用的外部接口,所述模擬通信插件包括:
[0048]第一獲取模塊,用于在所述外部接口被調用時,獲取操作碼和參數;
[0049]第一判斷模塊,用于對所述第一獲取模塊獲取的所述操作碼的取值進行判斷;
[0050]第二獲取模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第一預設值時,根據所述參數獲取插件配置信息;
[0051]初始化模塊,用于根據所述第二獲取模塊獲取的所述插件配置信息對數據寄存器進行初始化,將第一回調函數的調用條件設置為:芯片操作系統對所述數據寄存器執行寫操作;將第二回調函數的調用條件設置為:通信方式為接收數據且所述芯片操作系統對通信狀態進行判斷;將第三回調函數的調用條件設置為:所述芯片操作系統對所述數據寄存器執行讀操作;[0052]復位模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第二預設值時,執行復位操作;
[0053]下電模塊,用于在所述第一判斷模塊判斷出所述操作碼的取值為第三預設值時,執行下電操作;
[0054]第一處理模塊,用于在所述第一回調函數被調用時,將通信狀態設置為忙狀態,從所述數據寄存器中讀取一個字節的數據,將讀取到的數據發送給模擬讀卡器;
[0055]第一設置模塊,用于在所述第一處理模塊從所述數據寄存器中讀取一個字節的數據后,將通信狀態設置為閑狀態;
[0056]第二判斷模塊,用于在所述第二回調函數被調用時,判斷是否在預設時間內接收到來自所述模擬讀卡器的數據;
[0057]第二處理模塊,用于在所述第二判斷模塊判斷出在預設時間內接收到來自所述模擬讀卡器的數據時,將來自所述模擬讀卡器的一個字節的數據寫入到所述數據寄存器中,將通信狀態設置為有數據狀態;
[0058]第二設置模塊,用于在所述第三回調函數被調用時,將通信狀態設置為無數據狀態。
[0059]本發明達到的有益效果:通過調用模擬通信插件的外部接口,設置數據寄存器,并通過對數據寄存器的讀寫操作,實現芯片操作系統和模擬讀卡器之間的模擬通信,提高了模擬通信的實時性和可靠性,解決了現有技術中調試資源短缺的缺陷,縮短協議棧的開發周期,節省了協議棧的開發成本,提高了開發效率。
【專利附圖】

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