首页> 中国专利> 一种兼容不同格式类型的指令解析方法

一种兼容不同格式类型的指令解析方法

摘要

本发明提供一种兼容不同格式类型的指令解析方法,所述方法包括指令添加流程和指令解析流程;所述指令添加流程为:定义一设定格式的可拓展的指令集,在指令集中添加指令;所述指令解析流程在无需修改和添加指令解析代码的前提下,正确解析这种设定格式的指令集中的任意指令,并且返回解析结果。本发明通过指令添加流程和指令解析流程的配合,适配新的指令只需对明文指令集进行增删,无需修改指令解析代码,提高了程序健壮性及稳定性。

著录项

  • 公开/公告号CN106843808A

    专利类型发明专利

  • 公开/公告日2017-06-13

    原文格式PDF

  • 申请/专利权人 福建升腾资讯有限公司;

    申请/专利号CN201710009783.3

  • 发明设计人 赵鹏洋;王鹏;庄毅民;张登峰;

    申请日2017-01-06

  • 分类号G06F9/30;G06F9/38;

  • 代理机构福州市鼓楼区京华专利事务所(普通合伙);

  • 代理人王美花

  • 地址 350000 福建省福州市仓山区金山工业区金山大道618号21#、22#、55#

  • 入库时间 2023-06-19 02:35:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-21

    授权

    授权

  • 2017-07-07

    实质审查的生效 IPC(主分类):G06F9/30 申请日:20170106

    实质审查的生效

  • 2017-06-13

    公开

    公开

说明书

技术领域

本发明涉及通信设备技术领域,尤其涉及一种兼容不同格式类型的指令解析方法。

背景技术

目前国内各个银行、保险等机构在处理金融相关业务时,普遍采用各自业务系统向终端设备发送指令的方式,使终端设备和金融卡片(磁条卡、IC卡、射频卡等)进行交互,然后获取终端返回的数据。出于安全性和不同业务需求的考虑,各个机构使用的指令都不相同;由于终端设备厂商间的竞争较为激烈,各个终端设备生产厂家也都推出了自家的指令集,使得当前行业金融模块的指令种类繁多、格式杂乱。任何终端设备厂商不可能做到完全兼容所有的业务系统指令,所以经常需要根据需求去适配各个机构的业务系统指令。原有的指令解析方案是在已知一种指令格式后,需要在程序源代码中添加能够判断这种格式指令的指令解析代码。这种方案存在以下缺点:对每种格式的指令需要开发相应的指令解析代码,代码不能复用,兼容性和可扩展性较差;频繁的修改源代码,使得开发效率变得很低;不断增加指令解析过程代码会使得产品代码体积不断变大,很容易造成意想不到的问题,稳定性差,风险较大。

现有技术中公开了“一种支持多指令集的指令解析装置及其指令解析方法”,见公开号为:CN101706744A,公开日为:2010-05-12的中国专利,一种支持多指令集的指令解析方法,包括被动命令的处理过程和主动命令的处理过程,被动命令的处理过程包括:按照应用软件待发送的指令参数生成统一的XML命令数据,再使用XSL将该XML命令数据合成后发送至通信终端;主动命令的处理过程包括:在接收到通信终端上报的指令数据后,使用XML匹配该指令数据,再使用XSL将其合成后上报至应用软件。该发明使用XML及XSL技术,通过配置的方式即可实现对多指令集的解析,具有良好的兼容性及扩展性。但是其方案针对的各种指令集具有在同一种功能上命令参数基本一致的特点,而且其主要处理是在上位机通信接口处将指令数据按照统一格式进行处理,该方法不能解决上面存在的技术问题。

发明内容

本发明要解决的技术问题,在于提供一种兼容不同格式类型的指令解析方法,通过指令添加流程和指令解析流程的配合,适配新的指令只需对明文指令集进行增删,无需修改指令解析代码,提高了程序健壮性及稳定性;且本发明中的明文指令集支持多种格式的指令集,兼容性、可扩展性强,具有清晰易懂、修改简单的特点,减少了开发人员的工作量,提高了产品开发的效率和指令适配效率。

本发明是这样实现的:一种兼容不同格式类型的指令解析方法,所述方法包括指令添加流程和指令解析流程,且指令添加流程和指令解析流程为分离操作;所述指令添加流程为:定义一设定格式的可拓展的指令集,在指令集中添加指令;所述指令解析流程在无需修改和添加指令解析代码的前提下,正确解析这种设定格式的指令集中的任意指令,并且返回解析结果。

进一步的,所述指令添加流程具体为:步骤10、定义一明文指令集,明文指令集中每个字段描述了一条指令,每个字段中至少包含两个键:一个键表示这条指令,其值由指令字节组成,指令字节的编写都有设定的格式;另一个键表示这条指令的操作码,其值为一个数字;

步骤11、通过一指令集制作工具将明文指令集中的指令按首字节的大小顺序排列,根据首字节的值制作出方便查找的索引,将明文指令集中的每一条明文指令转换为二进制指令单元,按首字节大小排序,组成指令部分。所述二进制指令集是二进制文件,由索引部分和指令部分组成;

步骤12、使用一烧写工具将二进制指令集写入MCU存储器的设定位置。

进一步的,所述明文指令集以.ini格式的文件存在。

进一步的,所述指令字节的格式描述了每个指令字节的详细信息,该详细信息包括:指令字节的属性、指令字节的值、参数的长度、以及字节的拆分方式。

进一步的,所述步骤11具体实现方式为:通过一指令集制作工具读取明文指令集,将明文指令集中每个字段转换为一个指令单元,每个指令单元都是定长的,包含指令和操作码;指令每个字节用一个指令字表示,指令字由两个字节组成,第一个字节为数据字节,表示指令字节的具体值,第二个字节为描述字节,是对数据字节的功能描述;指令单元的最后两个字节存储指令的操作码;在指令单元的指令和操作码之间存储指令字段中的指令单元的参数取值范围;所述制作的索引记录了指令首部相同的指令集的位置。

进一步的,从设备通信口接收来自业务系统的指令数据,存入缓存;

提取缓存中指令数据的首字节,利用索引找到与指令首字节相同的指令单元所在位置范围;

在此位置范围内,从第一个指令单元开始,逐个单元进行匹配,根据指令单元中的描述字节,检查指令数据的每个字节是否符合该指令单元对该字节的描述;不符合,则匹配失败,返回解析失败标志;符合,则提取指令单元中存储的操作码,并返回成功标志。

进一步的,所述方法还包括一指令执行模块,所述指令执行模块在接收到指令解析的结果后,通过查看指令的操作码,根据事先约定好的操作内容进行相应处理,并将操作结果数据处理为相应的格式返回给业务系统,完成指令操作。

本发明具有如下优点:本发明通过指令添加流程和指令解析流程的配合,适配新的指令只需对明文指令集进行增删,无需修改指令解析代码,提高了程序健壮性及稳定性。本发明中的明文指令集支持多种格式的指令集,兼容性、可扩展性强,具有清晰易懂、修改简单的特点,减少了开发人员的工作量,提高了产品开发的效率和指令适配效率;本发明中的指令解析流程具有很强的通用性,提高了代码复用效率,降低了错误风险。这种指令集和指令解析分离的思想可以快速的移植到其他类似工作模式的产品上,通用性较高的指令解析代码可以明显提升代码的稳定性和健壮性,使得后续工作变得简单高效,达到“一劳永逸”的效果;此外,指令解析和指令处理高度隔离的方法也增强了指令处理的可拓展性,当程序出现异常时可以迅速定位问题位置;由于明文指令集的格式中包含了大量指令信息,在应用程序的指令处模块中,可以快速的分离出指令的各个部分数据,使得指令处理程序变得简单。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明指令添加流程的示意图。

图2为本发明指令解析流程的示意图。

具体实施方式

请参阅图1和图2所示,一种兼容不同格式类型的指令解析方法,所述方法包括指令添加流程和指令解析流程,且指令添加流程和指令解析流程为分离操作;所述指令添加流程为:定义一设定格式的可拓展的指令集,在指令集中添加指令;使这种指令集可以适用于目前的绝大多数业务系统的指令格式;所述指令解析流程在无需修改和添加指令解析代码的前提下,正确解析这种设定格式的指令集中的任意指令,并且返回解析结果。那么指令的适配工作将变得非常简单。在适配新指令时,只需要按照一定的格式在这个指令集中添加指令,无需修改和添加指令解析代码,就可以正确完成整个指令解析过程。后面的指令处理模块只需根据解析的结果去做相应的处理即可,达到底层和应用层的高度分离,降低风险。

所述指令添加流程具体为:步骤10、定义一明文指令集,明文指令集以.ini格式的文件存在,ini文件的明文指令集中每个字段描述了一条指令,每个字段中至少包含两个键:一个键表示这条指令,其值由指令字节组成,指令字节的编写都有设定的格式;所述指令字节的格式描述了每个指令字节的详细信息,该详细信息包括:指令字节的属性、指令字节的值、参数的长度、以及字节的拆分方式。这种指令格式可以适用于目前国内绝大多数业务系统指令;另一个键表示这条指令的操作码,其值为一个数字;取值由开发人员决定。明文指令集以人容易理解的格式编写,方便人工添加、修改和删除操作。

步骤11、通过一指令集制作工具将明文指令集中的指令按首字节的大小顺序排列,根据首字节的值制作出方便查找的索引,将明文指令集中的每一条明文指令转换为二进制指令单元,按首字节大小排序,组成指令部分。所述二进制指令集是二进制文件,由索引部分和指令部分组成;

步骤12、使用一烧写工具将二进制指令集写入MCU存储器的设定位置。

其中,所述步骤11具体实现方式为:通过一指令集制作工具读取明文指令集,将明文指令集中每个字段转换为一个指令单元,每个指令单元都是定长的,包含指令和操作码;指令每个字节用一个指令字表示,指令字由两个字节组成,第一个字节为数据字节,表示指令字节的具体值,第二个字节为描述字节,是对数据字节的功能描述;指令单元的最后两个字节存储指令的操作码;在指令单元的指令和操作码之间存储指令字段中的指令单元的参数取值范围;所述制作的索引记录了指令首部相同的指令集的位置,将明文指令集中的每一条明文指令转换为二进制指令单元,按首字节大小排序,组成指令部分。

如图2所示,本发明的指令解析方法是一种支持多格式、可变指令集的通用指令解析方法,只要新添加的指令按照明文指令集中规定的指令格式进行编写,这种解析方法都可以从存储器的二进制指令集区域匹配并解析出此条指令及其各个参数。当设备的各个通信口(串口、USB口等)收到来自业务系统的指令时,开始进入指令解析过程,从设备通信口接收来自业务系统的指令数据,存入缓存;

提取缓存中指令数据的首字节,利用索引找到与指令首字节相同的指令单元所在位置范围;

在此位置范围内,从第一个指令单元开始,逐个单元进行匹配,根据指令单元中的描述字节,检查指令数据的每个字节是否符合该指令单元对该字节的描述;不符合,则匹配失败,返回解析失败标志;符合,则提取指令单元中存储的操作码,并返回成功标志。

另外,所述方法还包括一指令执行模块,所述指令执行模块在接收到指令解析的结果后,通过查看指令的操作码,根据事先约定好的操作内容进行相应处理,并将操作结果数据处理为相应的格式返回给业务系统,完成指令操作。

总之,本发明通过指令添加流程和指令解析流程的配合,适配新的指令只需对明文指令集进行增删,无需修改指令解析代码,提高了程序健壮性及稳定性。本发明中的明文指令集支持多种格式的指令集,兼容性、可扩展性强,具有清晰易懂、修改简单的特点,减少了开发人员的工作量,提高了产品开发的效率和指令适配效率;本发明中的指令解析流程具有很强的通用性,提高了代码复用效率,降低了错误风险。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献