CN103559074A - 一种模拟通信插件及其工作方法 - Google Patents

一种模拟通信插件及其工作方法 Download PDF

Info

Publication number
CN103559074A
CN103559074A CN201310520342.1A CN201310520342A CN103559074A CN 103559074 A CN103559074 A CN 103559074A CN 201310520342 A CN201310520342 A CN 201310520342A CN 103559074 A CN103559074 A CN 103559074A
Authority
CN
China
Prior art keywords
data
unit
communication plug
analogue communication
plug
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310520342.1A
Other languages
English (en)
Other versions
CN103559074B (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201310520342.1A priority Critical patent/CN103559074B/zh
Publication of CN103559074A publication Critical patent/CN103559074A/zh
Application granted granted Critical
Publication of CN103559074B publication Critical patent/CN103559074B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种模拟通信插件及其工作方法,应用于包括芯片操作系统、特殊功能寄存器、模拟通信插件和模拟读卡器的模拟通信系统中,其中,模拟通信插件是IDE启动时所加载的插件,用于建立芯片操作系统与模拟读卡器之间的通信;模拟读卡器用于接收并处理来自芯片操作系统的数据,以及向芯片操作系统发送数据。本发明通过调用模拟通信插件的外部接口,设置数据寄存器,并通过对数据寄存器的读写操作,实现芯片操作系统和模拟读卡器之间的模拟通信,提高了模拟通信的实时性和可靠性,解决了现有技术中调试资源短缺的缺陷,缩短协议栈的开发周期,节省了协议栈的开发成本,提高了开发效率。

Description

一种模拟通信插件及其工作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种模拟通信插件及其工作方法。
背景技术
目前,UICC(Universal Integrated Circuit Card,通用集成电路卡)端的SWP(Single Wire Protocol,单线协议)/HCI(Host Controller Interface,主机控制接口)协议栈的开发,通常是在硬仿真环境下进行的。通过仿真器与开发板的调试接口相连,编写代码并编译链接后,即可将测试代码下载到开发板,并启动调试以除错,从而仿真出开发板上的模拟的芯片和资源。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
现有技术中,当使用IDE(Integrated Development Environment,集成开发环境)进行协议栈的开发时,IDE与仿真器之间会产生通信的实时性限制,调试较困难;而采用芯片商提供的开发板进行调试时,由于开发板资源有限,会导致调试资源短缺的问题。
发明内容
本发明提供了一种模拟通信插件及其工作方法,以解决现有技术中的调试资源短缺以及通信实时性限制的缺陷。
本发明提供了一种模拟通信插件的工作方法,包括以下步骤:
S1、模拟通信插件等待被调用;
S2、当所述模拟通信插件的外部接口被调用时,执行步骤S3;当所述模拟通信插件的第一回调函数被调用时,执行步骤S7;当所述模拟通信插件的第二回调函数被调用时,执行步骤S9;当所述模拟通信插件的第三回调函数被调用时,执行步骤S12;
S3、所述模拟通信插件获取操作码和参数,对所述操作码的取值进行判断,如果所述操作码的取值为第一预设值,则执行步骤S4;如果所述操作码的取值为第二预设值,则执行步骤S5;如果所述操作码的取值为第三预设值,则执行步骤S6;
S4、所述模拟通信插件根据所述参数获取插件配置信息,根据所述插件配置信息对数据寄存器进行初始化,将所述第一回调函数的调用条件设置为:芯片操作系统对所述数据寄存器执行写操作;将所述第二回调函数的调用条件设置为:所述芯片操作系统将通信方式设置为接收数据;将所述第三回调函数的调用条件设置为:所述芯片操作系统对所述数据寄存器执行读操作,并返回步骤S1;
S5、所述模拟通信插件执行复位操作,并返回步骤S1;
S6、所述模拟通信插件执行下电操作,并返回步骤S1;
S7、所述模拟通信插件将通信状态设置为忙状态,从所述数据寄存器中读取一个字节的数据,根据第一地址将读取到的数据保存到第一缓冲区中,更新所述第一地址;
S8、所述模拟通信插件将通信状态设置为闲状态,并返回步骤S1;
S9、所述模拟通信插件将所述第一缓冲区中的数据发送给模拟读卡器,对所述第一地址进行初始化,等待接收来自所述模拟读卡器的数据;
S10、所述模拟通信插件接收到来自所述模拟读卡器的数据后,将接收到的数据保存到第二缓冲区中;
S11、所述模拟通信插件根据第二地址从所述第二缓冲区中读取一个字节的数据,将读取到的数据写入到所述数据寄存器中,更新所述第二地址,将通信状态设置为有数据状态,并返回步骤S1;
S12、所述模拟通信插件将通信状态设置为无数据状态,判断所述第二缓冲区中是否有需要发送给所述芯片操作系统的数据,如果是,则返回步骤S11;否则,对所述第二地址进行初始化,并返回步骤S1。
本发明还提供了一种模拟通信插件的工作方法,包括以下步骤:
S1、模拟通信插件等待被调用;
S2、当所述模拟通信插件的外部接口被调用时,执行步骤S3;当所述模拟通信插件的第一回调函数被调用时,执行步骤S7;当所述模拟通信插件的第二回调函数被调用时,执行步骤S9;当所述模拟通信插件的第三回调函数被调用时,执行步骤S11;
S3、所述模拟通信插件获取操作码和参数,对所述操作码的取值进行判断,如果所述操作码的取值为第一预设值,则执行步骤S4;如果所述操作码的取值为第二预设值,则执行步骤S5;如果所述操作码的取值为第三预设值,则执行步骤S6;
S4、所述模拟通信插件根据所述参数获取插件配置信息,根据所述插件配置信息对数据寄存器进行初始化,将所述第一回调函数的调用条件设置为:芯片操作系统对所述数据寄存器执行写操作;将所述第二回调函数的调用条件设置为:通信方式为接收数据且所述芯片操作系统对通信状态进行判断;将所述第三回调函数的调用条件设置为:所述芯片操作系统对所述数据寄存器执行读操作,并返回步骤S1;
S5、所述模拟通信插件执行复位操作,并返回步骤S1;
S6、所述模拟通信插件执行下电操作,并返回步骤S1;
S7、所述模拟通信插件将通信状态设置为忙状态,从所述数据寄存器中读取一个字节的数据,将读取到的数据发送给模拟读卡器;
S8、所述模拟通信插件将通信状态设置为闲状态,并返回步骤S1;
S9、所述模拟通信插件等待接收来自所述模拟读卡器的数据;
S10、所述模拟通信插件判断是否在预设时间内接收到来自所述模拟读卡器的数据,如果是,则将来自所述模拟读卡器的一个字节的数据写入到所述数据寄存器中,将通信状态设置为有数据状态,并返回步骤S1;否则,返回步骤S1;
S11、所述模拟通信插件将通信状态设置为无数据状态,并返回步骤S1。
本发明还提供了一种模拟通信插件,具有可被调用的外部接口,所述模拟通信插件包括:
第一获取模块,用于在所述外部接口被调用时,获取操作码和参数;
第一判断模块,用于对所述第一获取模块获取的所述操作码的取值进行判断;
第二获取模块,用于在所述第一判断模块判断出所述操作码的取值为第一预设值时,根据所述参数获取插件配置信息;
第一初始化模块,用于根据所述第二获取模块获取的所述插件配置信息对数据寄存器进行初始化,将第一回调函数的调用条件设置为:芯片操作系统对所述数据寄存器执行写操作;将第二回调函数的调用条件设置为:所述芯片操作系统将通信方式设置为接收数据;将第三回调函数的调用条件设置为:所述芯片操作系统对所述数据寄存器执行读操作;
复位模块,用于在所述第一判断模块判断出所述操作码的取值为第二预设值时,执行复位操作;
下电模块,用于在所述第一判断模块判断出所述操作码的取值为第三预设值时,执行下电操作;
第一处理模块,用于在所述第一回调函数被调用时,将通信状态设置为忙状态,从所述数据寄存器中读取一个字节的数据,根据第一地址将读取到的数据保存到第一缓冲区中,更新所述第一地址;
第一设置模块,用于在所述第一处理模块从所述数据寄存器中读取一个字节的数据后,将通信状态设置为闲状态;
第二处理模块,用于在所述第二回调函数被调用时,将所述第一缓冲区中的数据发送给模拟读卡器,对所述第一地址进行初始化;
接收模块,用于接收来自所述模拟读卡器的数据,将接收到的数据保存到第二缓冲区中,触发第三处理模块;
第三处理模块,用于根据第二地址从所述第二缓冲区中读取一个字节的数据,将读取到的数据写入到所述数据寄存器中,更新所述第二地址;
第二设置模块,用于在所述第三处理模块将读取到的数据写入到所述数据寄存器中后,将通信状态设置为有数据状态;
第三设置模块,用于在所述第三回调函数被调用时,将通信状态设置为无数据状态;
第二判断模块,用于在所述第三设置模块将通信状态设置为无数据状态后,判断所述第二缓冲区中是否有需要发送给所述芯片操作系统的数据,并在判断出所述第二缓冲区中有需要发送给所述芯片操作系统的数据时,触发所述第三处理模块;
第二初始化模块,用于在所述第二判断模块判断出所述第二缓冲区中有需要发送给所述芯片操作系统的数据时,对所述第二地址进行初始化。
本发明还提供了一种模拟通信插件,具有可被调用的外部接口,所述模拟通信插件包括:
第一获取模块,用于在所述外部接口被调用时,获取操作码和参数;
第一判断模块,用于对所述第一获取模块获取的所述操作码的取值进行判断;
第二获取模块,用于在所述第一判断模块判断出所述操作码的取值为第一预设值时,根据所述参数获取插件配置信息;
初始化模块,用于根据所述第二获取模块获取的所述插件配置信息对数据寄存器进行初始化,将第一回调函数的调用条件设置为:芯片操作系统对所述数据寄存器执行写操作;将第二回调函数的调用条件设置为:通信方式为接收数据且所述芯片操作系统对通信状态进行判断;将第三回调函数的调用条件设置为:所述芯片操作系统对所述数据寄存器执行读操作;
复位模块,用于在所述第一判断模块判断出所述操作码的取值为第二预设值时,执行复位操作;
下电模块,用于在所述第一判断模块判断出所述操作码的取值为第三预设值时,执行下电操作;
第一处理模块,用于在所述第一回调函数被调用时,将通信状态设置为忙状态,从所述数据寄存器中读取一个字节的数据,将读取到的数据发送给模拟读卡器;
第一设置模块,用于在所述第一处理模块从所述数据寄存器中读取一个字节的数据后,将通信状态设置为闲状态;
第二判断模块,用于在所述第二回调函数被调用时,判断是否在预设时间内接收到来自所述模拟读卡器的数据;
第二处理模块,用于在所述第二判断模块判断出在预设时间内接收到来自所述模拟读卡器的数据时,将来自所述模拟读卡器的一个字节的数据写入到所述数据寄存器中,将通信状态设置为有数据状态;
第二设置模块,用于在所述第三回调函数被调用时,将通信状态设置为无数据状态。
本发明达到的有益效果:通过调用模拟通信插件的外部接口,设置数据寄存器,并通过对数据寄存器的读写操作,实现芯片操作系统和模拟读卡器之间的模拟通信,提高了模拟通信的实时性和可靠性,解决了现有技术中调试资源短缺的缺陷,缩短协议栈的开发周期,节省了协议栈的开发成本,提高了开发效率。
附图说明
图1为本发明实施例中的模拟通信系统的结构示意图;
图2为本发明实施例中的模拟通信插件的工作方法流程图;
图3为本发明实施例中的一种第一回调函数被调用时,模拟通信插件的处理流程图;
图4为本发明实施例中的一种第二回调函数被调用时,模拟通信插件的处理流程图;
图5为本发明实施例中的一种第三回调函数被调用时,模拟通信插件的处理流程图;
图6为本发明实施例中的芯片操作系统的工作方法流程图;
图7为本发明实施例中的另一种第一回调函数被调用时,模拟通信插件的处理流程图;
图8为本发明实施例中的另一种第二回调函数被调用时,模拟通信插件的处理流程图;
图9为本发明实施例中的一种模拟通信插件的结构示意图;
图10为本发明实施例中的另一种模拟通信插件的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种模拟通信插件的工作方法,应用于包括芯片操作系统、特殊功能寄存器、模拟通信插件和模拟读卡器的模拟通信系统中,如图1所示,其中,模拟通信插件是IDE启动时所加载的插件,用于建立芯片操作系统与模拟读卡器之间的通信;模拟读卡器用于接收并处理来自芯片操作系统的数据,以及向芯片操作系统发送数据,可通过软件实现,也可通过硬件实现。具体地,芯片操作系统将需要发送给模拟读卡器的数据写入到特殊功能寄存器中,触发模拟通信插件从特殊功能寄存器中读取数据,模拟通信插件将读取到的数据发送给模拟读卡器,模拟读卡器对接收到的数据进行处理,并向模拟通信插件返回数据;相应地,模拟通信插件接收来自模拟读卡器的数据,将接收到的数据写入到特殊功能寄存器中,并触发芯片操作系统从特殊功能寄存器中读取数据。
如图2所示,为本发明实施例中的模拟通信插件的工作方法流程图,包括以下步骤:
步骤201,模拟通信插件等待被调用。
步骤202,当模拟通信插件的外部接口被调用时,模拟通信插件获取操作码和参数。
例如,模拟通信插件的外部接口AgsiEntry被调用时,传入到外部接口AgsiEntry的信息包括操作码nCode和参数vp。
步骤203,模拟通信插件对获取到的操作码的取值进行判断,如果是第一预设值,则执行步骤208;如果是第二预设值,则执行步骤210;如果是第三预设值,则执行步骤211;如果是第四预设值,则执行步骤204。
例如,获取到的操作码为“nCode”,第一预设值为“AGSI_INIT”,第二预设值为“AGSI_RESET”,第三预设值为“AGSI_TERMINATE”,第四预设值为“AGSI_CHECK”。
步骤204,模拟通信插件根据获取到的参数,获取宿主配置信息。
具体地,模拟通信插件可以将获取到的参数的取值作为地址,从对应的存储区域读取宿主配置信息;也可以将获取到的参数的取值作为宿主配置信息。其中,宿主配置信息可以包括IDE所提供的CPU类型,还可以进一步包括IDE的版本号。
例如,当模拟通信插件获取到的操作码“nCode”的取值为第四预设值“AGSI_CHECK”,参数“vp”的取值为“8051”时,模拟通信插件可以将“8051”作为宿主配置信息,即,IDE所提供的CPU类型。
步骤205,模拟通信插件根据宿主配置信息,判断自身是否与IDE匹配,如果匹配,则执行步骤206;否则,执行步骤207。
具体地,模拟通信插件可以判断自身所支持的配置信息中是否包含通过步骤204获取的宿主配置信息,如果包含,则确定自身与IDE匹配;否则,确定自身与IDE不匹配。
本实施例中,模拟通信插件可以判断自身所支持的CPU类型中是否包含IDE所提供的CPU类型,如果不包含,则确定自身与IDE不匹配;如果包含,可进一步判断自身所支持的版本号中是否包含IDE的版本号,如果不包含,则确定自身与IDE不匹配;如果包含,则确定自身与IDE匹配。
例如,当模拟通信插件所支持的CPU类型为“8051”和“80166”,模拟通信插件获取到的、IDE所提供的CPU类型为“8051”时,模拟通信插件确定自身与IDE匹配。
步骤206,模拟通信插件向IDE发送匹配成功信息,并返回步骤201。
例如,模拟通信插件向IDE返回匹配成功信息“1”。
步骤207,模拟通信插件向IDE发送匹配失败信息,结束流程。
例如,模拟通信插件向IDE返回匹配失败信息“0”。
步骤208,模拟通信插件根据获取到的参数,从对应的配置文件中读取插件配置信息。
具体地,模拟通信插件可以将获取到的参数的取值作为地址,读取存储在该地址的配置数据结构,从该配置数据结构中获取配置文件路径,根据该配置文件路径,从对应的配置文件中读取插件配置信息。
其中,插件配置信息包括特殊功能寄存器的地址、菜单数据结构的地址和网络端口号。特殊功能寄存器包括数据寄存器、状态寄存器和控制寄存器,数据寄存器用于存放通过模拟通信插件传输的数据,状态寄存器用于标识通信状态,控制寄存器用于标识通信方式。
例如,当模拟通信插件获取到的操作码“nCode”的取值为第一预设值“AGSI_INIT”时,模拟通信插件将参数“vp”的取值作为地址,读取配置数据结构“AGSICONFIG”,并从配置数据结构“AGSICONFIG”中获取配置文件路径“m_pszProjectPath”,从该配置文件路径指定的配置文件中读取控制寄存器的地址“HWIOCON1”、状态寄存器的地址“HWIOSTAT”、数据寄存器的地址“IOBUF1”、菜单数据结构的地址和网络端口号。
步骤209,模拟通信插件根据读取到的插件配置信息,进行初始化,并返回步骤201。
具体地,模拟通信插件可以根据特殊功能寄存器的地址,对特殊功能寄存器进行初始化;根据菜单数据结构的地址,读取菜单数据结构,并根据菜单数据结构对菜单项进行初始化;将从配置文件中读取的网络端口号对应的网络端口,绑定为模拟通信插件与模拟读卡器之间的交互端口;将第一回调函数的调用条件设置为:芯片操作系统对数据寄存器执行写操作;将第二回调函数的调用条件设置为:芯片操作系统将通信方式设置为接收数据;将第三回调函数的调用条件设置为:芯片操作系统对数据寄存器执行读操作。
本实施例中,模拟通信插件可以将数据寄存器中的数据设置为第五预设值,例如,“00”;将状态寄存器中的数据设置为第六预设值,用以标识通信状态为闲状态;将控制寄存器中的数据设置为第七预设值,用以标识通信方式为发送数据。芯片操作系统将通信方式设置为发送数据,具体为:芯片操作系统将所述控制寄存器中的数据设置为第七预设值;芯片操作系统将通信方式设置为接收数据,具体为:芯片操作系统将控制寄存器中的数据设置为第八预设值。
例如,模拟通信插件使用状态寄存器的地址“HWIOSTAT”作为参数,调用IDE的AgsiDefineSFR接口,将状态寄存器中的数据设置为第六预设值“00”;使用控制寄存器的地址“HWIOCON1”作为参数,调用IDE的AgsiDefineSFR接口,将控制寄存器中的数据设置为第七预设值“00”,并调用IDE的AgsiSetWatchOnSFR接口,将控制寄存器与预设的回调函数tmr_mon_hwio1和tmr_mon_hwio2建立关联;使用数据寄存器的地址“IOBUF1”作为参数,调用IDE的AgsiDefineSFR接口,将数据寄存器中的数据设置为第五预设值“00”,并调用IDE的AgsiSetWatchOnSFR接口。
模拟通信插件根据菜单数据结构的地址,读取菜单数据结构“AGSIMENU”,并根据菜单数据结构“AGSIMENU”,调用IDE的AgsiDefineMenuItem接口,定义所使用的菜单项。模拟通信插件将从配置文件中读取的网络端口号作为参数,调用NetworkInit函数,进而将该网络端口号对应的网络端口绑定为模拟通信插件和模拟读卡器之间的交互端口。
步骤210,模拟通信插件执行复位操作,并返回步骤201。
具体地,模拟通信插件可以向特殊功能寄存器中写入预设数据,对菜单项进行复位,将配置文件中的网络端口号对应的网络端口与步骤209中的交互端口之间的绑定关系取消。其中,交互端口为步骤209中设置的模拟通信插件和模拟读卡器之间的交互端口。
本实施例中,模拟通信插件可以将数据寄存器中的数据设置为第五预设值,例如,“00”;将状态寄存器中的数据设置为第六预设值,用以标识通信状态为闲状态;将控制寄存器中的数据设置为第七预设值,用以标识通信方式为发送数据。
例如,当模拟通信插件获取到的操作码“nCode”的取值为第二预设值“AGSI_RESET”,模拟通信插件将特殊功能寄存器的地址和预设数据作为参数,调用IDE的AgsiWriteSFR接口,将第七预设值“00”写入到控制寄存器,将第六预设值“00”写入到状态寄存器中,将第五预设值“00”写入到数据寄存器中。模拟通信插件调用NetworkReset函数,将配置文件中的网络端口号对应的端口与交互端口之间的绑定关系取消。
步骤211,模拟通信插件执行下电操作,并返回步骤201。
具体地,模拟通信插件释放已分配的资源,关闭与配置文件中的网络端口号对应的网络端口。
例如,当模拟通信插件获取到的操作码“nCode”的取值为第三预设值“AGSI_TERMINATE”,模拟通信插件调用NetworkTerm函数,关闭与配置文件中的网络端口号对应的网络端口。
本发明实施例中,模拟通信插件的初始化过程中,模拟通信插件分别设置第一回调函数、第二回调函数和第三回调函数的调用条件。具体地,当芯片操作系统对数据寄存器执行写操作时,第一回调函数被调用;当芯片操作系统通过写控制寄存器的方式,将通信方式设置为接收数据时,第二回调函数被调用。当芯片操作系统对数据寄存器执行读操作时,第三回调函数被调用。
本实施例中,通信方式为发送数据,表示芯片操作系统向模拟读卡器发送数据;通信方式为接收数据,表示芯片操作系统接收来自模拟读卡器的数据。芯片操作系统可以通过将控制寄存器中的数据设置为第七预设值的方式,将通信方式设置为发送数据;通过将控制寄存器中的数据设置为第八预设值的方式,将通信方式设置为接收数据。
当第一回调函数被调用时,模拟通信插件执行的操作如图3所示,包括以下步骤:
步骤301,模拟通信插件将通信状态设置为忙状态。
具体地,模拟通信插件可以通过将状态寄存器中的数据设置为第九预设值的方式,将通信状态设置为忙状态。
例如,模拟通信插件将状态寄存器中的数据设置为第九预设值“01”。
步骤302,模拟通信插件从数据寄存器中读取一个字节的数据,根据第一地址将读取到的数据写入到第一缓冲区中,更新第一地址,将通信状态设置为闲状态,并返回步骤201。
具体地,模拟通信插件可以通过将状态寄存器中的数据设置为第六预设值的方式,将通信状态设置为闲状态,可以将第一地址加一个字节作为更新后的第一地址,或者将第一地址减一个字节作为更新后的第一地址。
例如,第一地址为“0x01”,模拟通信插件从数据寄存器中读取一个字节的数据“3B”,将“3B”写入到第一缓冲区中地址为“0x01”的空间,将第一地址更新为“0x02”,将状态寄存器中的数据设置为第六预设值“00”。
当第二回调函数被调用时,模拟通信插件执行的操作如图4所示,包括以下步骤:
步骤401,模拟通信插件通过与模拟读卡器之间的交互端口,将第一缓冲区中的数据发送给模拟读卡器,对第一地址进行初始化,等待接收来自模拟读卡器的数据。
例如,模拟通信插件可以将第一缓冲区中的数据“3B”发送给模拟读卡器,将第一地址初始化为“0x00”。
步骤402,模拟通信插件接收到来自模拟读卡器的数据后,将接收到的数据存储到第二缓冲区中。
其中,第二缓冲区和第一缓冲区可以为同一缓冲区。
例如,模拟通信插件接收模拟读卡器返回的数据“84E0020053”,将该数据存储到第二缓冲区中。
步骤403,模拟通信插件根据第二地址从第二缓冲区中读取一个字节的数据,将读取到的数据写入到数据寄存器中,更新第二地址,将通信状态设置为有数据状态,并返回步骤201。
具体地,模拟通信插件可以通过将状态寄存器中的数据设置为第十预设值的方式,将通信状态设置为有数据状态,可以将第二地址加一个字节作为更新后的第二地址,或者将第二地址减一个字节作为更新后的第二地址。
例如,第二地址为“0x51”,模拟通信插件从第二缓冲区中读取一个字节的数据“84”,将“84”写入到数据寄存器中地址为“0x51”的空间,将第二地址更新为“0x52”,将状态寄存器中的数据设置为第十预设值“03”。
当第三回调函数被调用时,模拟通信插件执行的操作如图5所示,包括以下步骤:
步骤501,模拟通信插件将通信状态设置为无数据状态。
具体地,模拟通信插件可以通过将状态寄存器中的数据设置为第十一预设值的方式,将通信状态设置为无数据状态。
例如,模拟通信插件将状态寄存器中的数据设置为第十一预设值“04”。
步骤502,模拟通信插件判断第二缓冲区中是否还有需要发送给芯片操作系统的数据,如果有,则执行步骤503;否则,对第二地址进行初始化,并返回步骤201。
具体地,模拟通信插件可以判断第二缓冲区中的数据是否已全部发送完毕,如果是,则确定第二缓冲区中的没有需要发送给芯片操作系统的数据;否则,确定第二缓冲区中有需要发送给芯片操作系统的数据。
例如,当模拟通信插件从模拟读卡器接收并存储到第二缓冲区中的数据为“84E0020053”时,模拟通信插件将“84”写入到数据寄存器后,可以判断第二缓冲区中还有未被发送的数据“E0020053”。
步骤503,模拟通信插件根据第二地址从第二缓冲区中读取一个字节的数据,将读取到的数据写入到数据寄存器中,更新第二地址,将通信状态设置为有数据状态,并返回步骤201。
具体地,模拟通信插件可以通过将状态寄存器中的数据设置为第十预设值的方式,将通信状态设置为有数据状态,可以将第二地址加一个字节作为更新后的第二地址,或者将第二地址减一个字节作为更新后的第二地址。
例如,第二地址为“0x52”,模拟通信插件从第二缓冲区中读取一个字节的数据“E0”,将“E0”写入到数据寄存器中地址为“0x52”的空间,将第二地址更新为“0x53”,将状态寄存器中的数据设置为“03”。
基于上述模拟通信插件的工作方法,本发明实施例中的芯片操作系统可以通过对控制寄存器的写操作,设置通信方式;并根据通信方式和模拟通信插件设置的通信状态,与模拟通信插件进行数据交互,进而通过模拟通信插件与模拟读卡器进行通信。本实施例中的芯片操作系统的工作方法,如图6所示,包括以下步骤:
步骤601,芯片操作系统将通信方式设置为发送数据。
具体地,芯片操作系统可以通过将控制寄存器中的数据设置为第七预设值的方式,将通信方式设置为发送数据。
例如,芯片操作系统将控制寄存器中的数据设置为第七预设值“00”。
需要说明的是,在本步骤之后,模拟通信插件可以通过将状态寄存器中的数据设置为第九预设值的方式,将通信状态设置为忙状态。例如,模拟通信插件将状态寄存器中的数据设置为第九预设值“01”。
步骤602,芯片操作系统从第三缓冲区中读取一个字节的数据,将该数据写入到数据寄存器中。
例如,芯片操作系统从第三缓冲区中读取一个字节的数据“3B”,将“3B”写入到数据寄存器中。
需要说明的是,在本步骤之后,模拟通信插件可以从数据寄存器中读取一个字节的数据,并通过将状态寄存器中的数据设置为第六预设值的方式,将通信状态设置为闲状态。例如,模拟通信插件从数据寄存器中读取一个字节的数据“3B”,将“3B”写入到第三缓冲区中,将状态寄存器中的数据设置为第六预设值“00”。
步骤603,芯片操作系统判断第三缓冲区中是否还有需要发送给模拟读卡器的数据,如果有,则执行步骤604,否则,执行步骤605。
步骤604,芯片操作系统判断通信状态是否为闲状态,如果是,则返回步骤602;否则,返回步骤604。
具体地,芯片操作系统可以判断状态寄存器中的数据是否为第六预设值,如果是,则确定通信状态为闲状态;否则,确定通信状态不是闲状态。
步骤605,芯片操作系统将通信方式设置为接收数据。
具体地,芯片操作系统可以通过将控制寄存器中的数据设置为第八预设值的方式,将通信方式设置为接收数据。
例如,芯片操作系统将控制寄存器中的数据设置为第八预设值“01”。
需要说明的是,在本步骤之后,模拟通信插件通过与模拟读卡器之间的交互端口,将第一缓冲区中的数据发送给模拟读卡器,接收模拟读卡器返回的数据,将该数据存储到第二缓冲区中,从第二缓冲区中读取一个字节的数据,将读取到的数据写入到数据寄存器中,将通信状态设置为有数据状态。例如,模拟通信插件将第一缓冲区中的数据“3B”发送给模拟读卡器,接收模拟读卡器返回的数据“84E0020053”,将该数据存储到第二缓冲区中,从第二缓冲区中读取一个字节的数据“84”,将“84”写入到数据寄存器中,将状态寄存器中的数据设置为第十预设值“03”。
步骤606,芯片操作系统判断通信状态是否为有数据状态,如果是,则执行步骤607;否则,返回步骤606。
具体地,芯片操作系统可以判断状态寄存器中的数据是否为第十预设值,如果是,则确定通信状态为有数据状态;否则,确定通信状态不是有数据状态。
步骤607,芯片操作系统从数据寄存器中读取一个字节的数据,将读取到的数据存储到第四缓冲区中。
其中,第四缓冲区和第三缓冲区可以为同一缓冲区。
例如,芯片操作系统从数据寄存器中读取一个字节的数据“84”,将“84”存储到第四缓冲区中。
需要说明的是,在本步骤之后,模拟通信插件可以通过将状态寄存器中的数据设置为第十一预设值的方式,将通信状态设置为无数据状态,判断第二缓冲区中是否还有需要发送给芯片操作系统的数据,如果有,则从第二缓冲区中读取一个字节的数据,将读取到的数据写入到数据寄存器中,并通过将状态寄存器中的数据设置为第十预设值的方式,将通信状态设置为有数据状态。例如,模拟通信插件将状态寄存器中的数据设置为第十一预设值“04”,如果确定第二缓冲区中还有需要发送给芯片操作系统的数据,则从第二缓冲区中读取一个字节的数据“E0”,将“E0”写入到数据寄存器中,将状态寄存器中的数据设置为第十预设值“03”。
步骤608,芯片操作系统根据第四缓冲区中的数据,判断是否还需要接收数据,如果是,则返回步骤606;否则,执行步骤609。
具体地,芯片操作系统可以判断第四缓冲区中的数据是否为完整的APDU报文,如果是,则确定不需要继续接收数据;否则,确定需要继续接收数据。
例如,第四缓冲区中的数据为“84”时,芯片操作系统可以判断第四缓冲区中的数据不是完整的APDU报文,确定需要继续接收数据。
步骤609,芯片操作系统对第四缓冲区中的数据进行处理,得到处理结果。
例如,当第四缓冲区中的数据为“84E0020053”时,芯片操作系统可以判断第四缓冲区中的数据是完整的APDU报文,确定不需要继续接收数据,并对第四缓冲区中的数据“84E0020053”进行处理,得到处理结果“9000”。
步骤610,芯片操作系统判断是否需要将处理结果发送给模拟读卡器,如果是,则执行步骤611;否则,结束流程。
步骤611,芯片操作系统将处理结果存储到第三缓冲区中,并返回步骤601。
例如,芯片操作系统将处理结果“9000”存储到第三缓冲区中。
本发明实施例中,通过调用模拟通信插件的外部接口,设置数据寄存器,并通过对数据寄存器的读写操作,实现芯片操作系统和模拟读卡器之间的模拟通信,提高了模拟通信的实时性和可靠性,解决了现有技术中调试资源短缺的缺陷,缩短协议栈的开发周期,节省了协议栈的开发成本,提高了开发效率。
需要说明的是,在本发明的另一种实施方式中,在模拟通信插件的初始化过程中,模拟通信插件可以将第一回调函数的调用条件设置为:芯片操作系统对数据寄存器执行写操作;将第二回调函数的调用条件设置为:通信方式为接收数据且芯片操作系统对通信状态进行判断;将第三回调函数的调用条件设置为:芯片操作系统对数据寄存器执行读操作。
当第一回调函数被调用时,模拟通信插件执行的操作如图7所示,包括以下步骤:
步骤701,模拟通信插件将通信状态设置为忙状态。
具体地,模拟通信插件可以通过将状态寄存器中的数据设置为第九预设值的方式,将通信状态设置为忙状态。
例如,模拟通信插件将状态寄存器中的数据设置为第九预设值“01”。
步骤702,模拟通信插件从数据寄存器中读取一个字节的数据,将读取到的数据发送给模拟读卡器。
步骤703,模拟通信插件将通信状态设置为闲状态,并返回步骤201。
具体地,模拟通信插件可以通过将状态寄存器中的数据设置为第六预设值的方式,将通信状态设置为闲状态。
例如,模拟通信插件将状态寄存器中的数据设置为第六预设值“00”。
当第二回调函数被调用时,模拟通信插件执行的操作如图8所示,包括以下步骤:
步骤801,模拟通信插件等待接收来自模拟读卡器的数据。
步骤802,模拟通信插件判断是否在预设时间内接收到来自模拟读卡器的数据,如果是,则执行步骤803;否则,返回步骤201。
步骤803,模拟通信插件将来自模拟读卡器的一个字节的数据写入到数据寄存器中,将通信状态设置为有数据状态,并返回步骤201。
具体地,模拟通信插件可以通过将状态寄存器中的数据设置为第十预设值的方式,将通信状态设置为有数据状态。
例如,模拟通信插件将来自模拟读卡器的一个字节的数据写入到数据寄存器中,将状态寄存器中的数据设置为第十预设值“03”。
此外,当第三回调函数被调用时,模拟通信插件将通信状态设置为无数据状态,并返回步骤201。
上述实施方式同样能够实现本发明的发明目的。
本发明实施例还提供了一种模拟通信插件,如图9所示,该模拟通信插件具有可被调用的外部接口,该模拟通信插件包括:
第一获取模块901,用于在外部接口被调用时,获取操作码和参数;
第一判断模块902,用于对第一获取模块901获取的操作码的取值进行判断;
第二获取模块903,用于在第一判断模块902判断出操作码的取值为第一预设值时,根据参数获取插件配置信息;
具体地,上述第二获取模块903,具体用于在第一判断模块902判断出操作码的取值为第一预设值时,将参数的取值作为地址,读取存储在地址的配置数据结构,从配置数据结构中获取配置文件路径,根据配置文件路径,从对应的配置文件中读取插件配置信息。
第一初始化模块904,用于根据第二获取模块903获取的插件配置信息对数据寄存器进行初始化,将第一回调函数的调用条件设置为:芯片操作系统对数据寄存器执行写操作;将第二回调函数的调用条件设置为:芯片操作系统将通信方式设置为接收数据;将第三回调函数的调用条件设置为:芯片操作系统对数据寄存器执行读操作;
复位模块905,用于在第一判断模块902判断出操作码的取值为第二预设值时,执行复位操作;
下电模块906,用于在第一判断模块902判断出操作码的取值为第三预设值时,执行下电操作;
第一处理模块907,用于在第一回调函数被调用时,将通信状态设置为忙状态,从数据寄存器中读取一个字节的数据,根据第一地址将读取到的数据保存到第一缓冲区中,更新第一地址;
第一设置模块908,用于在第一处理模块907从数据寄存器中读取一个字节的数据后,将通信状态设置为闲状态;
第二处理模块909,用于在第二回调函数被调用时,将第一缓冲区中的数据发送给模拟读卡器,对第一地址进行初始化;
接收模块910,用于接收来自模拟读卡器的数据,将接收到的数据保存到第二缓冲区中,触发第三处理模块911;
第三处理模块911,用于根据第二地址从第二缓冲区中读取一个字节的数据,将读取到的数据写入到数据寄存器中,更新第二地址;
第二设置模块912,用于在第三处理模块911将读取到的数据写入到数据寄存器中后,将通信状态设置为有数据状态;
第三设置模块913,用于在第三回调函数被调用时,将通信状态设置为无数据状态;
第二判断模块914,用于在第三设置模块913将通信状态设置为无数据状态后,判断第二缓冲区中是否有需要发送给芯片操作系统的数据,并在判断出第二缓冲区中有需要发送给芯片操作系统的数据时,触发第三处理模块911;
第二初始化模块915,用于在第二判断模块914判断出第二缓冲区中没有需要发送给芯片操作系统的数据时,对第二地址进行初始化。
其中,上述插件配置信息可以包括数据寄存器、状态寄存器和控制寄存器的地址;
相应地,第一初始化模块904,具体用于根据第二获取模块903获取的数据寄存器的地址,将数据寄存器中的数据设置为第五预设值;根据第二获取模块903获取的状态寄存器的地址,将状态寄存器中的数据设置为第六预设值;根据第二获取模块903获取的控制寄存器的地址,将控制寄存器中的数据设置为第七预设值;将第一回调函数的调用条件设置为:芯片操作系统对数据寄存器执行写操作;将第二回调函数的调用条件设置为:芯片操作系统将通信方式设置为接收数据;将第三回调函数的调用条件设置为:芯片操作系统对数据寄存器执行读操作;
第一设置模块908,具体用于在第一处理模块907从数据寄存器中读取一个字节的数据后,将状态寄存器中的数据设置为第六预设值;
第一处理模块907,具体用于在第一回调函数被调用时,将状态寄存器中的数据设置为第九预设值,从数据寄存器中读取一个字节的数据,根据第一地址将读取到的数据保存到第一缓冲区中,更新第一地址;
第二设置模块912,具体用于在第三处理模块911将读取到的数据写入到数据寄存器中后,将状态寄存器中的数据设置为第十预设值;
第三设置模块913,具体用于在第三回调函数被调用时,将状态寄存器中的数据设置为第十一预设值;
复位模块905,具体用于在第一判断模块902判断出操作码的取值为第二预设值时,向数据寄存器、状态寄存器和控制寄存器写入预设数据。
其中,上述插件配置信息可以包括菜单数据结构的地址;
相应地,上述第一初始化模块904,还用于根据第二获取模块903获取的插件配置信息中的菜单数据结构的地址,读取菜单数据结构,并根据菜单数据结构对菜单项进行初始化;
复位模块905,具体用于在第一判断模块902判断出操作码的取值为第二预设值时,对菜单项进行复位。
上述插件配置信息还可以包括网络端口号;
相应地,上述第一初始化模块904,还用于将与第二获取模块903获取的插件配置信息中的网络端口号对应的网络端口,绑定为模拟通信插件与模拟读卡器之间的交互端口;
复位模块905,具体用于在第一判断模块902判断出操作码的取值为第二预设值时,将与网络端口号对应的网络端口与交互端口之间的绑定关系取消;
下电模块906,具体用于在第一判断模块902判断出操作码的取值为第三预设值时,将与网络端口号对应的网络端口关闭。
进一步地,上述模拟通信插件,还包括:
第三获取模块916,用于在第一判断模块902判断出操作码的取值为第四预设值时,根据参数获取宿主配置信息;
具体地,上述第三获取模块916,具体用于在第一判断模块902判断出操作码的取值为第四预设值时,将参数的取值作为地址,从对应的存储区域读取宿主配置信息;
或者,将参数作为宿主配置信息。
第三判断模块917,用于根据第三获取模块916获取的宿主配置信息,判断模拟通信插件是否与集成开发环境匹配;
具体地,上述第三判断模块917,具体用于判断模拟通信插件所支持的配置信息中是否包含第三获取模块916获取的宿主配置信息,如果包含,则确定模拟通信插件与集成开发环境匹配;否则,确定模拟通信插件与集成开发环境不匹配。
其中,宿主配置信息可以为集成开发环境所提供的CPU类型;
相应地,上述第三判断模块917,具体用于判断模拟通信插件所支持的CPU类型中是否包含集成开发环境所提供的CPU类型,如果包含,则确定模拟通信插件与集成开发环境匹配;如果不包含,则确定模拟通信插件与集成开发环境不匹配。
上述宿主配置信息还可以为集成开发环境所提供的CPU类型和集成开发环境的版本号;
相应地,上述第三判断模块917,具体用于判断模拟通信插件所支持的CPU类型中是否包含集成开发环境所提供的CPU类型,如果不包含,则确定模拟通信插件与集成开发环境不匹配;如果包含,判断模拟通信插件所支持的版本号中是否包含集成开发环境的版本号,如果不包含,则确定模拟通信插件与集成开发环境不匹配;如果包含,则确定模拟通信插件与集成开发环境匹配。
发送模块918,用于在第三判断模块917判断出模拟通信插件与集成开发环境匹配时,向集成开发环境发送匹配成功信息;在第三判断模块917判断出模拟通信插件与集成开发环境不匹配时,向集成开发环境发送匹配失败信息。
本发明实施例通过调用模拟通信插件的外部接口,设置数据寄存器,并通过对数据寄存器的读写操作,实现芯片操作系统和模拟读卡器之间的模拟通信,提高了模拟通信的实时性和可靠性,解决了现有技术中调试资源短缺的缺陷,缩短协议栈的开发周期,节省了协议栈的开发成本,提高了开发效率。
本发明实施例还提供了另一种模拟通信插件,如图10所示,该模拟通信插件具有可被调用的外部接口,该模拟通信插件包括:
第一获取模块1001,用于在外部接口被调用时,获取操作码和参数;
第一判断模块1002,用于对第一获取模块1001获取的操作码的取值进行判断;
第二获取模块1003,用于在第一判断模块1002判断出操作码的取值为第一预设值时,根据参数获取插件配置信息;
具体地,上述第二获取模块1003,具体用于在第一判断模块1002判断出操作码的取值为第一预设值时,将参数的取值作为地址,读取存储在地址的配置数据结构,从配置数据结构中获取配置文件路径,根据配置文件路径,从对应的配置文件中读取插件配置信息。
初始化模块1004,用于根据第二获取模块1003获取的插件配置信息对数据寄存器进行初始化,将第一回调函数的调用条件设置为:芯片操作系统对数据寄存器执行写操作;将第二回调函数的调用条件设置为:通信方式为接收数据且芯片操作系统对通信状态进行判断;将第三回调函数的调用条件设置为:芯片操作系统对数据寄存器执行读操作;
复位模块1005,用于在第一判断模块1002判断出操作码的取值为第二预设值时,执行复位操作;
下电模块1006,用于在第一判断模块1002判断出操作码的取值为第三预设值时,执行下电操作;
第一处理模块1007,用于在第一回调函数被调用时,将通信状态设置为忙状态,从数据寄存器中读取一个字节的数据,将读取到的数据发送给模拟读卡器;
第一设置模块1008,用于在第一处理模块1007从数据寄存器中读取一个字节的数据后,将通信状态设置为闲状态;
第二判断模块1009,用于在第二回调函数被调用时,判断是否在预设时间内接收到来自模拟读卡器的数据;
第二处理模块1010,用于在第二判断模块1009判断出在预设时间内接收到来自模拟读卡器的数据时,将来自模拟读卡器的一个字节的数据写入到数据寄存器中,将通信状态设置为有数据状态;
第二设置模块1011,用于在第三回调函数被调用时,将通信状态设置为无数据状态。
其中,上述插件配置信息可以包括数据寄存器、状态寄存器和控制寄存器的地址;
相应地,上述初始化模块1004,具体用于根据第二获取模块1003获取的数据寄存器的地址,将数据寄存器中的数据设置为第五预设值;根据第二获取模块1003获取的状态寄存器的地址,将状态寄存器中的数据设置为第六预设值;根据第二获取模块1003获取的控制寄存器的地址,将控制寄存器中的数据设置为第七预设值;将第一回调函数的调用条件设置为:芯片操作系统对数据寄存器执行写操作;将第二回调函数的调用条件设置为:通信方式为接收数据且芯片操作系统对通信状态进行判断;将第三回调函数的调用条件设置为:芯片操作系统对数据寄存器执行读操作;
上述第一设置模块1008,具体用于在第一处理模块1007从数据寄存器中读取一个字节的数据后,将状态寄存器中的数据设置为第六预设值;
上述第一处理模块1007,具体用于在第一回调函数被调用时,将状态寄存器中的数据设置为第九预设值,从数据寄存器中读取一个字节的数据,将读取到的数据发送给模拟读卡器;
上述第二处理模块1010,具体用于在第二判断模块1009判断出在预设时间内接收到来自模拟读卡器的数据时,将来自模拟读卡器的一个字节的数据写入到数据寄存器中,将状态寄存器中的数据设置为第十预设值;
上述第二设置模块1011,具体用于在第三回调函数被调用时,将状态寄存器中的数据设置为第十一预设值;
上述复位模块1005,具体用于在第一判断模块1002判断出操作码的取值为第二预设值时,向数据寄存器、状态寄存器和控制寄存器写入预设数据。
上述插件配置信息还可以包括菜单数据结构的地址;
相应地,上述初始化模块1004,还用于根据第二获取模块1003获取的插件配置信息中的菜单数据结构的地址,读取菜单数据结构,并根据菜单数据结构对菜单项进行初始化;
上述复位模块1005,具体用于在第一判断模块1002判断出操作码的取值为第二预设值时,对菜单项进行复位。
上述插件配置信息还可以包括网络端口号;
相应地,上述初始化模块1004,还用于将与第二获取模块1003获取的插件配置信息中的网络端口号对应的网络端口,绑定为模拟通信插件与模拟读卡器之间的交互端口;
上述复位模块1005,具体用于在第一判断模块1002判断出操作码的取值为第二预设值时,将与网络端口号对应的网络端口与交互端口之间的绑定关系取消;
上述下电模块1006,具体用于在第一判断模块1002判断出操作码的取值为第三预设值时,将与网络端口号对应的网络端口关闭。
进一步地,上述模拟通信插件,还包括:
第三获取模块1012,用于在第一判断模块1002判断出操作码的取值为第四预设值时,根据参数获取宿主配置信息;
具体地,上述第三获取模块1012,具体用于在第一判断模块1002判断出操作码的取值为第四预设值时,将参数的取值作为地址,从对应的存储区域读取宿主配置信息;
或者,将参数作为宿主配置信息。
第三判断模块1013,用于根据第三获取模块1012获取的宿主配置信息,判断模拟通信插件是否与集成开发环境匹配;
具体地,上述第三判断模块1013,具体用于判断模拟通信插件所支持的配置信息中是否包含第三获取模块1012获取的宿主配置信息,如果包含,则确定模拟通信插件与集成开发环境匹配;否则,确定模拟通信插件与集成开发环境不匹配。
其中,上述宿主配置信息可以为集成开发环境所提供的CPU类型;
相应地,上述第三判断模块1013,具体用于判断模拟通信插件所支持的CPU类型中是否包含集成开发环境所提供的CPU类型,如果包含,则确定模拟通信插件与集成开发环境匹配;如果不包含,则确定模拟通信插件与集成开发环境不匹配。
上述宿主配置信息还可以为集成开发环境所提供的CPU类型和集成开发环境的版本号;
相应地,上述第三判断模块1013,具体用于判断模拟通信插件所支持的CPU类型中是否包含集成开发环境所提供的CPU类型,如果不包含,则确定模拟通信插件与集成开发环境不匹配;如果包含,判断模拟通信插件所支持的版本号中是否包含集成开发环境的版本号,如果不包含,则确定模拟通信插件与集成开发环境不匹配;如果包含,则确定模拟通信插件与集成开发环境匹配。
发送模块1014,用于在第三判断模块1013判断出模拟通信插件与集成开发环境匹配时,向集成开发环境发送匹配成功信息;在第三判断模块1013判断出模拟通信插件与集成开发环境不匹配时,向集成开发环境发送匹配失败信息。
本发明实施例通过调用模拟通信插件的外部接口,设置数据寄存器,并通过对数据寄存器的读写操作,实现芯片操作系统和模拟读卡器之间的模拟通信,提高了模拟通信的实时性和可靠性,解决了现有技术中调试资源短缺的缺陷,缩短协议栈的开发周期,节省了协议栈的开发成本,提高了开发效率。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (42)

1.一种模拟通信插件的工作方法,其特征在于,包括以下步骤:
S1、模拟通信插件等待被调用;
S2、当所述模拟通信插件的外部接口被调用时,执行步骤S3;当所述模拟通信插件的第一回调函数被调用时,执行步骤S7;当所述模拟通信插件的第二回调函数被调用时,执行步骤S9;当所述模拟通信插件的第三回调函数被调用时,执行步骤S12;
S3、所述模拟通信插件获取操作码和参数,对所述操作码的取值进行判断,如果所述操作码的取值为第一预设值,则执行步骤S4;如果所述操作码的取值为第二预设值,则执行步骤S5;如果所述操作码的取值为第三预设值,则执行步骤S6;
S4、所述模拟通信插件根据所述参数获取插件配置信息,根据所述插件配置信息对数据寄存器进行初始化,将所述第一回调函数的调用条件设置为:芯片操作系统对所述数据寄存器执行写操作;将所述第二回调函数的调用条件设置为:所述芯片操作系统将通信方式设置为接收数据;将所述第三回调函数的调用条件设置为:所述芯片操作系统对所述数据寄存器执行读操作,并返回步骤S1;
S5、所述模拟通信插件执行复位操作,并返回步骤S1;
S6、所述模拟通信插件执行下电操作,并返回步骤S1;
S7、所述模拟通信插件将通信状态设置为忙状态,从所述数据寄存器中读取一个字节的数据,根据第一地址将读取到的数据保存到第一缓冲区中,更新所述第一地址;
S8、所述模拟通信插件将通信状态设置为闲状态,并返回步骤S1;
S9、所述模拟通信插件将所述第一缓冲区中的数据发送给模拟读卡器,对所述第一地址进行初始化,等待接收来自所述模拟读卡器的数据;
S10、所述模拟通信插件接收到来自所述模拟读卡器的数据后,将接收到的数据保存到第二缓冲区中;
S11、所述模拟通信插件根据第二地址从所述第二缓冲区中读取一个字节的数据,将读取到的数据写入到所述数据寄存器中,更新所述第二地址,将通信状态设置为有数据状态,并返回步骤S1;
S12、所述模拟通信插件将通信状态设置为无数据状态,判断所述第二缓冲区中是否有需要发送给所述芯片操作系统的数据,如果是,则返回步骤S11;否则,对所述第二地址进行初始化,并返回步骤S1。
2.如权利要求1所述的方法,其特征在于,所述模拟通信插件对所述操作码的取值进行判断之后,还包括:
S13、如果所述操作码的取值为第四预设值,所述模拟通信插件根据所述参数获取宿主配置信息;
S14、所述模拟通信插件根据所述宿主配置信息,判断自身是否与集成开发环境匹配,如果匹配,则执行步骤S15;否则,执行步骤S16;
S15、所述模拟通信插件向所述集成开发环境发送匹配成功信息,并返回步骤S1;
S16、所述模拟通信插件向所述集成开发环境发送匹配失败信息,结束流程。
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所述的方法,其特征在于,还包括:
A1、所述芯片操作系统将通信方式设置为发送数据,从第三缓冲区中读取一个字节的数据,将读取到的数据写入到所述数据寄存器中;
A2、所述芯片操作系统判断所述第三缓冲区中是否还有需要发送给所述模拟读卡器的数据,如果有,则执行步骤A3;否则,执行步骤A4;
A3、所述芯片操作系统判断通信状态是否为闲状态,如果是,则从所述第三缓冲区中读取一个字节的数据,将读取到的数据写入到所述数据寄存器中,并返回步骤A2;否则,返回步骤A3;
A4、所述芯片操作系统将通信方式设置为接收数据;
A5、所述芯片操作系统判断通信状态是否为有数据状态,如果是,则执行步骤A6;否则,返回步骤A5;
A6、所述芯片操作系统从所述数据寄存器中读取一个字节的数据,将读取到的数据存储到第四缓冲区中;
A7、所述芯片操作系统根据所述第四缓冲区中的数据,判断是否还需要接收数据,如果是,则返回步骤A5;否则,执行步骤A8;
A8、所述芯片操作系统对所述第四缓冲区中的数据进行处理,得到处理结果;
A9、所述芯片操作系统判断是否需要将所述处理结果发送给所述模拟读卡器,如果是,则执行步骤A10;否则,结束流程;
A10、所述芯片操作系统将所述处理结果存储到所述第三缓冲区中,并返回步骤A1。
12.一种模拟通信插件的工作方法,其特征在于,包括以下步骤:
S1、模拟通信插件等待被调用;
S2、当所述模拟通信插件的外部接口被调用时,执行步骤S3;当所述模拟通信插件的第一回调函数被调用时,执行步骤S7;当所述模拟通信插件的第二回调函数被调用时,执行步骤S9;当所述模拟通信插件的第三回调函数被调用时,执行步骤S11;
S3、所述模拟通信插件获取操作码和参数,对所述操作码的取值进行判断,如果所述操作码的取值为第一预设值,则执行步骤S4;如果所述操作码的取值为第二预设值,则执行步骤S5;如果所述操作码的取值为第三预设值,则执行步骤S6;
S4、所述模拟通信插件根据所述参数获取插件配置信息,根据所述插件配置信息对数据寄存器进行初始化,将所述第一回调函数的调用条件设置为:芯片操作系统对所述数据寄存器执行写操作;将所述第二回调函数的调用条件设置为:通信方式为接收数据且所述芯片操作系统对通信状态进行判断;将所述第三回调函数的调用条件设置为:所述芯片操作系统对所述数据寄存器执行读操作,并返回步骤S1;
S5、所述模拟通信插件执行复位操作,并返回步骤S1;
S6、所述模拟通信插件执行下电操作,并返回步骤S1;
S7、所述模拟通信插件将通信状态设置为忙状态,从所述数据寄存器中读取一个字节的数据,将读取到的数据发送给模拟读卡器;
S8、所述模拟通信插件将通信状态设置为闲状态,并返回步骤S1;
S9、所述模拟通信插件等待接收来自所述模拟读卡器的数据;
S10、所述模拟通信插件判断是否在预设时间内接收到来自所述模拟读卡器的数据,如果是,则将来自所述模拟读卡器的一个字节的数据写入到所述数据寄存器中,将通信状态设置为有数据状态,并返回步骤S1;否则,返回步骤S1;
S11、所述模拟通信插件将通信状态设置为无数据状态,并返回步骤S1。
13.如权利要求12所述的方法,其特征在于,所述模拟通信插件对所述操作码的取值进行判断之后,还包括:
S13、如果所述操作码的取值为第四预设值,所述模拟通信插件根据所述参数获取宿主配置信息;
S14、所述模拟通信插件根据所述宿主配置信息,判断自身是否与集成开发环境匹配,如果匹配,则执行步骤S15;否则,执行步骤S16;
S15、所述模拟通信插件向所述集成开发环境发送匹配成功信息,并返回步骤S1;
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所述的方法,其特征在于,还包括:
A1、所述芯片操作系统将通信方式设置为发送数据,从第三缓冲区中读取一个字节的数据,将读取到的数据写入到所述数据寄存器中;
A2、所述芯片操作系统判断所述第三缓冲区中是否还有需要发送给所述模拟读卡器的数据,如果有,则执行步骤A3;否则,执行步骤A4;
A3、所述芯片操作系统判断通信状态是否为闲状态,如果是,则从所述第三缓冲区中读取一个字节的数据,将读取到的数据写入到所述数据寄存器中,并返回步骤A2;否则,返回步骤A3;
A4、所述芯片操作系统将通信方式设置为接收数据;
A5、所述芯片操作系统判断通信状态是否为有数据状态,如果是,则执行步骤A6;否则,返回步骤A5;
A6、所述芯片操作系统从所述数据寄存器中读取一个字节的数据,将读取到的数据存储到第四缓冲区中;
A7、所述芯片操作系统根据所述第四缓冲区中的数据,判断是否还需要接收数据,如果是,则返回步骤A5;否则,执行步骤A8;
A8、所述芯片操作系统对所述第四缓冲区中的数据进行处理,得到处理结果;
A9、所述芯片操作系统判断是否需要将所述处理结果发送给所述模拟读卡器,如果是,则执行步骤A10;否则,结束流程;
A10、所述芯片操作系统将所述处理结果存储到所述第三缓冲区中,并返回步骤A1。
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所述的模拟通信插件,其特征在于,所述插件配置信息包括网络端口号;
所述初始化模块,还用于将与所述第二获取模块获取的所述插件配置信息中的所述网络端口号对应的网络端口,绑定为所述模拟通信插件与所述模拟读卡器之间的交互端口;
所述复位模块,具体用于在所述第一判断模块判断出所述操作码的取值为第二预设值时,将与所述网络端口号对应的网络端口与所述交互端口之间的绑定关系取消;
所述下电模块,具体用于在所述第一判断模块判断出所述操作码的取值为第三预设值时,将与所述网络端口号对应的网络端口关闭。
CN201310520342.1A 2013-10-29 2013-10-29 一种模拟通信插件及其工作方法 Expired - Fee Related CN103559074B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310520342.1A CN103559074B (zh) 2013-10-29 2013-10-29 一种模拟通信插件及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310520342.1A CN103559074B (zh) 2013-10-29 2013-10-29 一种模拟通信插件及其工作方法

Publications (2)

Publication Number Publication Date
CN103559074A true CN103559074A (zh) 2014-02-05
CN103559074B CN103559074B (zh) 2016-08-24

Family

ID=50013327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310520342.1A Expired - Fee Related CN103559074B (zh) 2013-10-29 2013-10-29 一种模拟通信插件及其工作方法

Country Status (1)

Country Link
CN (1) CN103559074B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108037965A (zh) * 2017-12-29 2018-05-15 飞天诚信科技股份有限公司 一种读写目标芯片的方法及装置
CN114020359A (zh) * 2021-11-08 2022-02-08 中国电子科技集团公司第二十八研究所 一种基于插件的分布式平台集成方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7448045B1 (en) * 2002-04-30 2008-11-04 Extreme Networks Method and apparatus to extend a program
WO2009105459A2 (en) * 2008-02-18 2009-08-27 Ita Software, Inc. Methods and systems to test airline information systems
CN103136097A (zh) * 2011-11-29 2013-06-05 神州数码信息系统有限公司 一种软件测试模拟器框架构建的方法
CN103365701A (zh) * 2013-07-10 2013-10-23 飞天诚信科技股份有限公司 一种模拟读卡器的工作方法和模拟通信系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7448045B1 (en) * 2002-04-30 2008-11-04 Extreme Networks Method and apparatus to extend a program
WO2009105459A2 (en) * 2008-02-18 2009-08-27 Ita Software, Inc. Methods and systems to test airline information systems
WO2009105459A3 (en) * 2008-02-18 2010-01-07 Ita Software, Inc. Methods and systems to test airline information systems
CN103136097A (zh) * 2011-11-29 2013-06-05 神州数码信息系统有限公司 一种软件测试模拟器框架构建的方法
CN103365701A (zh) * 2013-07-10 2013-10-23 飞天诚信科技股份有限公司 一种模拟读卡器的工作方法和模拟通信系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108037965A (zh) * 2017-12-29 2018-05-15 飞天诚信科技股份有限公司 一种读写目标芯片的方法及装置
CN114020359A (zh) * 2021-11-08 2022-02-08 中国电子科技集团公司第二十八研究所 一种基于插件的分布式平台集成方法
CN114020359B (zh) * 2021-11-08 2024-04-16 中国电子科技集团公司第二十八研究所 一种基于插件的分布式平台集成方法

Also Published As

Publication number Publication date
CN103559074B (zh) 2016-08-24

Similar Documents

Publication Publication Date Title
CN100565472C (zh) 一种适用于多处理器核系统芯片的调试方法
CN105511911B (zh) 系统固件升级包的生成方法及装置
CN103365701B (zh) 一种模拟读卡器的工作方法和模拟通信系统
CN102736938A (zh) Fpga配置程序的烧写方法
CN103677872B (zh) 一种信息处理方法、装置和电子设备
CN106126423A (zh) 游戏应用程序的测试方法、装置及系统
CN110851163B (zh) 一种基于can通信的兼容多设备平台的软件更新方法
US7469359B2 (en) Method and apparatus for testing communication software
CN111262753B (zh) 一种numa节点个数自动配置方法方法、系统、终端及存储介质
CN103559074A (zh) 一种模拟通信插件及其工作方法
CN109857553A (zh) 内存管理方法及装置
CN109510740A (zh) 一种自动监控网卡mtu值的方法、装置、终端及存储介质
CN109254787A (zh) 业务逻辑变更方法、装置、存储介质及电子设备
CN109426511A (zh) 软核更新方法和系统
CN111782474A (zh) 日志处理方法、装置、电子设备和介质
US20090302119A1 (en) Chip Card, and Method for the Software-Based Modification of a Chip Card
CN111158987A (zh) 微服务架构的健康检查方法及装置
CN111443994B (zh) 一种包含模拟智能卡驱动程序的装置、系统及方法
CN106330595A (zh) 分布式平台的心跳检测方法和装置
CN103678751B (zh) 处理器芯片仿真调试系统
CN112885403B (zh) 一种Flash控制器的功能测试方法、装置及设备
CN109039765A (zh) 网络配置方法及装置
CN108595192A (zh) 一种应用程序的安装方法及终端设备
CN104793964B (zh) java卡及其应用更新方法、应用于java卡的终端、智能卡系统
CN111752680B (zh) 基于kvm的ipc模拟方法、装置、存储介质及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160824

CF01 Termination of patent right due to non-payment of annual fee