CN108064037A - 一种基于近场通信的命令解析方法及装置 - Google Patents
一种基于近场通信的命令解析方法及装置 Download PDFInfo
- Publication number
- CN108064037A CN108064037A CN201711340732.5A CN201711340732A CN108064037A CN 108064037 A CN108064037 A CN 108064037A CN 201711340732 A CN201711340732 A CN 201711340732A CN 108064037 A CN108064037 A CN 108064037A
- Authority
- CN
- China
- Prior art keywords
- data
- communication
- protocol command
- class
- under
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种基于近场通信的命令解析方法及装置,在获取以第一数据类的实例表示的通信数据后,从通信数据中提取与协议命令解析相关的解析信息,然后基于解析信息确定通信数据对应的协议命令,由于在确定协议命令时采用的是与协议命令解析相关的解析信息,从而可以提高协议命令的类型的准确度。并且在基于解析信息确定通信数据对应一种协议命令,且基于该协议命令的结构获取到该协议命令下的所有通信数据的情况下,基于该协议命令下的所有通信数据得到该协议命令的命令数据,即得到近场通信过程中某个协议命令的命令数据,使得解析出的数据全面详细,进而可以根据命令数据准确评估近场通信过程的通信性能。
Description
技术领域
本发明属于近场通信技术领域,更具体的说,尤其涉及一种基于近场通信的命令解析方法及装置。
背景技术
近场通信(Near Field Communication,NFC)又称近距离无线通信,是一种短距离的高频无线通信技术,其允许电子设备之间进行非接触式点对点的数据交换。近年来随着移动互联网发展迅猛,电子设备对近距离互联技术的需求使得NFC技术迅速在电子设备上得到广泛应用。
在电子设备采用NFC技术进行数据交换过程中,可以获取电子设备之间的通信数据,通过对通信数据的解析得到数据交换过程中采用的协议命令。但是目前对通信数据的解析仅能够确定该通信数据属于哪种类型的协议命令,导致解析出的数据不全面,且确定的协议命令的类型不准确。
发明内容
有鉴于此,本发明的目的在于提供一种基于近场通信的命令解析方法及装置,用于得到近场通信中协议命令的命令数据以及提高协议命令的类型的准确度。技术方案如下:
本发明提供一种基于近场通信的命令解析方法,所述方法包括:
获取近场通信过程中的一帧通信数据,其中近场通信过程中的每帧通信数据以第一数据类的实例表示;
从所述通信数据中提取与协议命令解析相关的解析信息;
基于所述解析信息确定所述通信数据对应的协议命令;
在基于所述解析信息确定所述通信数据对应一种协议命令,且基于该协议命令的结构获取到该协议命令下的所有通信数据的情况下,基于该协议命令下的所有通信数据得到该协议命令的命令数据。
优选地,所述获取近场通信过程中的一帧通信数据包括:从原始数据链表中获取近场通信过程中的至少一个第二数据类的实例,所述第二数据类的实例对应一帧通信数据中的数据单元;
从所述至少一个第二数据类的实例中确定隶属于一帧通信数据的第二数据类的实例;
基于隶属于一帧通信数据的第二数据类的实例,得到表示一帧通信数据的第一数据类的实例。
优选地,所述从所述至少一个第二数据类的实例中确定隶属于一帧通信数据的第二数据类的实例包括:从所述每个第二数据类的实例中提取数据意义;
基于所述数据意义,确定隶属于一帧通信数据的第二数据类的实例。
优选地,所述基于隶属于一帧通信数据的第二数据类的实例,得到表示一帧通信数据的第一数据类的实例包括:基于隶属于一帧通信数据的第二数据类的实例的传输方向,得到所述第一数据类的实例的传输方向;
基于隶属于一帧通信数据的第二数据类的实例的传输速率,得到所述第一数据类的实例的传输速率;
基于隶属于一帧通信数据的第二数据类的实例的数据意义、传输起始时间和传输结束时间,得到所述第一数据类的实例的传输起始时间和传输结束时间;
基于隶属于一帧通信数据的第二数据类的实例的数据内容,得到所述第一数据类的实例的数据内容;
基于隶属于一帧通信数据的第二数据类的实例的数据字节数,得到第一数据类的实例的数据字节数;
基于所述第一数据类的实例的传输起始时间和上一个第一数据类的实例的传输结束时间,得到所述第一数据类的实例的传输时间间隔。
优选地,所述基于该协议命令下的所有通信数据得到该协议命令的命令数据包括:获得该协议命令的命令序号和命令名称;
基于该协议命令下的所有通信数据中的传输方向,得到该协议命令的命令传输方向;
基于该协议命令下的所有通信数据中的数据内容,得到该协议命令的命令数据内容;
基于该协议命令下的所有通信数据中的第一帧通信数据的传输起始时间与上一协议命令下的所有通信数据中的最后一帧通信数据的传输结束时间,得到该协议命令的命令间隔时间;
基于该协议命令下的所有通信数据中的预设字节的取值,得到该协议命令的命令详细意义。
本发明还提供一种基于近场通信的命令解析装置,所述装置包括:
获取单元,用于获取近场通信过程中的一帧通信数据,其中近场通信过程中的每帧通信数据以第一数据类的实例表示;
提取单元,用于从所述通信数据中提取与协议命令解析相关的解析信息;
确定单元,用于基于所述解析信息确定所述通信数据对应的协议命令;
获得单元,用于在基于所述解析信息确定所述通信数据对应一种协议命令,且基于该协议命令的结构获取到该协议命令下的所有通信数据的情况下,基于该协议命令下的所有通信数据得到该协议命令的命令数据。
优选地,所述获取单元包括:获取子单元,用于从原始数据链表中获取近场通信过程中的至少一个第二数据类的实例,所述第二数据类的实例对应一帧通信数据中的数据单元;
确定子单元,用于从所述至少一个第二数据类的实例中确定隶属于一帧通信数据的第二数据类的实例;
获得子单元,用于基于隶属于一帧通信数据的第二数据类的实例,得到表示一帧通信数据的第一数据类的实例。
优选地,所述确定子单元,具体用于从所述每个第二数据类的实例中提取数据意义;基于所述数据意义,确定隶属于一帧通信数据的第二数据类的实例。
优选地,所述获得子单元,具体用于基于隶属于一帧通信数据的第二数据类的实例的传输方向,得到所述第一数据类的实例的传输方向;基于隶属于一帧通信数据的第二数据类的实例的传输速率,得到所述第一数据类的实例的传输速率;基于隶属于一帧通信数据的第二数据类的实例的数据意义、传输起始时间和传输结束时间,得到所述第一数据类的实例的传输起始时间和传输结束时间;基于隶属于一帧通信数据的第二数据类的实例的数据内容,得到所述第一数据类的实例的数据内容;基于隶属于一帧通信数据的第二数据类的实例的数据字节数,得到第一数据类的实例的数据字节数;基于所述第一数据类的实例的传输起始时间和上一个第一数据类的实例的传输结束时间,得到所述第一数据类的实例的传输时间间隔。
优选地,所述获得单元,具体用于获得该协议命令的命令序号和命令名称;基于该协议命令下的所有通信数据中的传输方向,得到该协议命令的命令传输方向;基于该协议命令下的所有通信数据中的数据内容,得到该协议命令的命令数据内容;基于该协议命令下的所有通信数据中的第一帧通信数据的传输起始时间与上一协议命令下的所有通信数据中的最后一帧通信数据的传输结束时间,得到该协议命令的命令间隔时间;基于该协议命令下的所有通信数据中的预设字节的取值,得到该协议命令的命令详细意义。
本发明还提供一种存储介质,所述存储介质上存储有程序,所述程序执行时实现上述基于近场通信的命令解析方法。
本发明还提供一种处理器,所述处理器用于运行程序,其中所述程序运行时执行上述基于近场通信的命令解析方法。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
借由上述技术方案,在获取以第一数据类的实例表示的通信数据后,从通信数据中提取与协议命令解析相关的解析信息,然后基于解析信息确定通信数据对应的协议命令,由于在确定协议命令时采用的是与协议命令解析相关的解析信息,从而可以提高协议命令的类型的准确度。并且在基于解析信息确定通信数据对应一种协议命令,且基于该协议命令的结构获取到该协议命令下的所有通信数据的情况下,基于该协议命令下的所有通信数据得到该协议命令的命令数据,即得到近场通信过程中某个协议命令的命令数据,使得解析出的数据全面详细,进而可以根据命令数据准确评估近场通信过程的通信性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于近场通信的命令解析方法的流程图;
图2是本发明实施例提供的获取以第一数据类的实例表示的通信数据的流程图;
图3是本发明实施例提供的得到命令数据的流程图;
图4是本发明实施例提供的基于近场通信的命令解析装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的基于近场通信的命令解析方法的流程图,通过图1所示基于近场通信的命令解析方法可以得到近场通信中协议命令的命令数据,并提高协议命令的类型的准确度。其中所述基于近场通信的命令解析方法可以包括以下步骤:
101:获取近场通信过程中的一帧通信数据,其中近场通信过程中的每帧通信数据以第一数据类的实例表示,这样通过第一数据类的实例可以记录一帧通信数据的完整信息,提高数据完整性,并且便于在客户端的显示界面进行展示。
在近场通信过程中抓取的原始数据中存在噪声数据等影响命令解析的杂质数据,因此需要对原始数据进行预处理以去除杂质数据,得到通信数据,而这些通信数据会分别被划分成一个个独立的数据单元存储在原始链路表中。
数据单元在原始链路表中可以以第二数据类的实例表示,每个第二数据类的实例包括:数据意义、数据内容、数据比特长度、传输方向、传输起始时间、传输结束时间、传输速率、数据字节数、与上一数据单元的传输时间间隔等属性。其中数据意义用于判断数据单元表示通信数据的传输开始、传输中或者传输结束等,因此基于数据意义可以确定数据单元位于通信数据的哪部分,数据比特长度用于表示数据单元中数据内容的长度;数据字节数用于表示第二数据类的实例的个数,每一个第二数据类的实例的数据内容都为1个字节。
在对近场通信进行命令解析时,需要获取一帧完整的通信数据,因此可以基于原始链路表中表示数据单元的第二数据类的实例来获取通信数据,其可行方式如下:
从原始链路表中获取近场通信过程中的至少一个第二数据类的实例,从至少一个第二数据类的实例中确定隶属于一帧通信数据的第二数据类的实例,基于隶属于一帧通信数据的第二数据类的实例,得到表示一帧通信数据的第一数据类的实例。
其中确定隶属于一帧通信数据的第二数据类的实例的一种可行方式是:从每个第二数据类的实例中提取数据意义,基于数据意义,确定隶属于一帧通信数据的第二数据类的实例。之所以可以基于数据意义来确定是因为:数据意义用于判断数据单元表示通信数据的传输开始、传输中或者传输结束等,所以基于数据意义可以确定数据单元位于通信数据的哪部分,这样就可以基于数据意义得到隶属于一帧通信数据的第二数据类的实例。并且第二数据类的实例的数据内容是经过预处理后与近场通信相关的内容,因此在基于这些数据内容得到的通信数据进行命令解析时可以提高解析速率。
相对应的,表示一帧通信数据的第一数据类的实例包括:传输方向、传输起始时间、传输结束时间、数据内容、传输速率、数据字节数、与上一帧通信数据的传输时间间隔等属性,这些属性对应的属性值均是从组成一帧通信数据的数个第二数据类的实例中提取,在本发明实施例中得到第一数据类的实例的过程请参阅图2所示,可以包括以下步骤:
1011:基于隶属于一帧通信数据的第二数据类的实例的传输方向,得到第一数据类的实例的传输方向。可以理解的是:隶属于一帧通信数据的每个第二数据类的实例的传输方向相同,因此可以直接从隶属于一帧通信数据中的一个第二数据类的实例中提取出该实例中的传输方向,将提取出的传输方向作为第一数据类的实例的传输方向。
1012:基于隶属于一帧通信数据的第二数据类的实例的传输速率,得到第一数据类的实例的传输速率。同样的,隶属于一帧通信数据的每个第二数据类的实例的传输速率相同,因此可以直接从隶属于一帧通信数据中的一个第二数据类的实例中提取出该实例中的传输速率,将提取出的传输速率作为第一数据类的实例的传输速率。
1013:基于隶属于一帧通信数据的第二数据类的实例的数据意义、传输起始时间和传输结束时间,得到第一数据类的实例的传输起始时间和传输结束时间。其中数据意义用于判断数据单元表示通信数据的传输开始、传输中或者传输结束等,因此基于数据意义从隶属于一帧通信数据的第二数据类的实例中得到隶属于一帧通信数据的第一个第二数据类的实例和最后一个第二数据类的实例,将第一个第二数据类的实例的传输起始时间作为第一数据类的实例的传输起始时间,将最后一个第二数据类的实例的传输结束时间作为第一数据类的实例的传输结束时间。
1014:基于隶属于一帧通信数据的第二数据类的实例的数据内容,得到第一数据类的实例的数据内容。在数据意义用于判断数据单元表示通信数据的传输开始、传输中或者传输结束等的情况下,可以基于数据意义确定出隶属于一帧通信数据的每个第二数据类的实例的数据内容属于该帧通信数据哪部分,即在该帧通信数据中的数据顺序,因此可以基于第二数据类的实例的数据内容在该帧通信数据中的数据顺序组合出第一数据类的实例的数据内容。
1015:基于隶属于一帧通信数据的第二数据类的实例的数据字节数,得到第一数据类的实例的数据字节数。例如在数据意义用于判断数据单元表示通信数据的传输开始、传输中或者传输结束等的情况下,可以基于数据意义确定出隶属于一帧通信数据的每个第二数据类的实例,然后从隶属于一帧通信数据的每个第二数据类的实例中获取到数据意义为传输中的第二数据类的实例,将隶属于一帧通信数据且数据意义为传输中的第二数据类的实例的数据字节数相加得到第一数据类的实例的数据字节数。
1016:基于第一数据类的实例的传输起始时间和上一个第一数据类的实例的传输结束时间,得到第一数据类的实例的传输时间间隔。其中传输时间间隔是该帧通信数据与上一个第一数据类的实例(即上一帧通信数据)的传输间隔,因此可以基于第一数据类的实例的传输起始时间和上一帧通信数据的传输结束时间,得到第一数据类的实例的传输时间间隔,即可以对第一数据类的实例的传输起始时间和上一帧通信数据的传输结束时间进行差值计算得到第一数据类的实例的传输时间间隔。
102:从通信数据中提取与协议命令解析相关的解析信息。也就是说解析信息是用于进行协议命令解析的,在本发明实施例中提取的解析信息包括但不限于数据内容、传输方向、数据比特长度等信息,具体视协议规定而定。
103:基于解析信息确定通信数据对应的协议命令。例如可以将解析信息与协议规定的数据内容、传输方向、数据字节数和数据比特长度等信息进行比对来确定通信数据对应的协议命令。
若经过比对判断出解析信息与协议规定的数据内容、传输方向、数据字节数和数据比特长度等信息不匹配,则判定该通信数据对应一个未知命令,即不是协议规定中的协议命令。若经过比对判断出解析信息与协议规定的数据内容、传输方向、数据字节数和数据比特长度等信息匹配,则判定该通信数据对应一个协议命令。
以NFC通信制式Type A为例,14443-3协议层中与Type A相关的协议命令包括:REQA(Request Command,Type A),WUPA(Wake-UP Command,Type A),ATQA(Answer ToRequest,Type A),HLTA(Halt Command,Type A),Anticollision(AnticollisionCommand,防冲突命令),SELECT(Select Command,Type A)和SAK(Select Acknowledge,Type A);14443-4协议层中与Type A相关的协议命令包括:RATS(Request For Answer ToSelect),ATS(Answer To Select),PPS Request(Protocol and Parameter SelectionRequest),PPS Response(Protocol and Parameter Selection Response),APDU(Application Protocol Data Unit)和DESELECT(Deselect Command)。
对于上述协议命令来说,在从通信数据中提取出诸如传输方向、数据内容、数据字节数和数据比特长度等解析信息后,通过对传输方向是从PCD(Proximity CouplingDevice)到PICC(Proximity Card Or Object)还是从PICC到PCD,以及数据内容、数据字节数、数据比特长度等的判断,可以确定通信数据对应的协议命令为REQA,WUPA,ATQA,HLTA,SELECT,RATS,PPS Request和PPS Response中的一种,这些协议命令均只包含一帧通信数据,因此在确定通信数据对应这些协议命令中的一种的情况下,也获取到该协议命令下的所有通信数据。
对于Anticollision来说,其包括一帧PCD发到PICC的通信数据和一帧PICC回复给PCD的通信数据,通过数据内容、数据字节数以及传输方向,确定通信数据为Anticollision的第一帧通信数据后,继续获取下一帧通信数据,若传输方向为PICC到PCD,且数据字节数符合Anticollision协议要求,则确定通信数据对应的协议命令为Anticollision,且获取到该Anticollision的所有通信数据,并且根据第一帧通信数据的第一个字节内容可以判断出处于防冲突的层数,即处于防冲突第几层,若第一个字节内容为“0x93”则处于防冲突的第一层,若第一个字节内容为“0x95”则处于防冲突的第二层,若第一个字节内容为“0x97”则处于防冲突的第三层。
在解析出SELECT命令后,继续获取下一帧通信数据,若传输方向为PICC到PCD,且数据字节数和数据内容符合协议要求,则确定通信数据对应的协议命令为SAK(SAK是PICC发送给PCD的对SELECT命令的回复)。在解析出RATS命令后,继续获取下一帧通信数据,若传输方向为PICC到PCD,且数据字节数和数据内容符合协议要求,则确定通信数据对应的协议命令为ATS(ATS是PICC发送给PCD的对RATS命令的回复)。
在14443-4协议层中APDU由数帧通信数据组成,每一帧通信数据称为一个Block(数据块),在14443-4协议层中为APDU设置三种类型的Block,分别为I Block,R Block和SBlock,且一个APDU的结构为以PCD发往PICC的I Block开始,以PICC发往PCD的非Chaining(级联,可以通过I Block第一个字节数据的内容可以判断该Block是否级联)I Block结束,中间可能穿插R Block数据和代表WTX的S Block。当获取一帧通信数据后,依据协议中Block数据的规范,根据该帧通信数据第一个字节的内容,可以判断该帧通信数据是否为Block数据。在识别出一条APDU的第一个Block后,继续获取其他通信数据,记录Block的类型并计数以得到Block的数量,直到获取到整个APDU的通信数据为止,然后根据记录的Block的类型和Block的数量判断当前获取的整个APDU的通信数据中是否包括非Block,若是则确定通信数据对应Block Sequence(数据块序列),若否则确定通信数据对应的协议命令为APDU。
在14443-4协议层中的DESELECT由两帧S Block数据组成,S Block数据有两种类型,一种为S-WTX(Waiting Time Extension,等待时间超时),另一种为S-DESELECT(Deselect,非选择),这两种S Block数据可通过通信数据的第一个字节数据内容区分。并且协议规定DESELECE的第一帧通信数据为PCD发到PICC的S-DESELECT,第二帧通信数据为PICC发到PCD的S-DESELECT。当获取到一帧PCD发到PICC的S-DESELECT通信数据时,继续获取下一帧通信数据,若为PICC发到PCD的S-DESELECT,则确定这两帧通信数据对应的协议命令为DESELECT,否则解析为未知命令。
104:在基于解析信息确定通信数据对应一种协议命令,且基于该协议命令的结构获取到该协议命令下的所有通信数据的情况下,基于该协议命令下的所有通信数据得到该协议命令的命令数据。
也就是说,得到协议命令的命令数据需要满足两个前提条件:一是基于解析信息确定出通信数据对应一种协议命令;二是基于该协议命令的结构获取到该协议命令下的所有通信数据。在这里需要说明的一点是:一次近场通信过程中可能涉及多个协议命令,而本实施例中该协议命令下的所有通信数据是一次协议命令下符合协议命令的结构要求的所有通信数据,如协议规定Anticollision包括两帧通信数据:分别是传输方向为PCD到PICC的通信数据和传输方向为PICC到PCD的通信数据,则该协议命令下的所有通信数据是一次Anticollision下的传输方向为PCD到PICC的通信数据和传输方向为PICC到PCD的通信数据。
在本发明实施例中,基于该协议命令下的所有通信数据得到该协议命令的命令数据的过程请参阅图3所示,可以包括以下步骤:
1041:获得该协议命令的命令序号和命令名称,其中命令名称由协议规定,在确定通信数据对应的协议命令后就可以从协议规定中获得到该协议命令的命令名称,而命令序号由用户自己定义,以对通信数据进行计数,从而通过命令序号表示其对应的协议命令下的通信数据为通信过程中的第几条命令。
1042:基于该协议命令下的所有通信数据中的传输方向,得到该协议命令的命令传输方向。可以理解的是:该协议命令下的所有通信数据中的传输方向,因此可以直接从该协议命令下的所有通信数据中提取出传输方向,将提取出的传输方向作为该协议命令的命令传输方向。
以Anticollision为例,Anticollision命令下包含两帧通信数据:一帧通信数据的传输方向是PCD到PICC,另一帧通信数据的传输方向是PICC到PCD,这两帧通信数据会按顺序分两行展示,因此可以从这两帧通信数据中提取出传输方向分别是:PCD到PICC,PICC到PCD。
1043:基于该协议命令下的所有通信数据中的数据内容,得到该协议命令的命令数据内容。在本发明实施例中,表示一帧通信数据的第一数据类的实例中包括有传输起始时间,因此基于第一数据类的实例的传输起始时间,可以确定该协议命令下的每帧通信数据在所有通信数据中的位置,基于该位置对通信数据中的数据内容进行组合,得到该协议命令的命令数据内容。
1044:基于该协议命令下的所有通信数据中的第一帧通信数据的传输起始时间与上一协议命令下的所有通信数据中的最后一帧通信数据的传输结束时间,得到该协议命令的命令间隔时间。
其中该协议命令下的所有通信数据中的第一帧通信数据可以基于该协议命令下的所有通信数据的传输起始时间(即表示通信数据的第一数据类的实例的传输起始时间)确定,将第一帧通信数据和上一协议命令下的所有通信数据中的最后一帧通信数据的传输结束时间进行差值计算就可以得到该协议命令的命令间隔时间。而上一协议命令可以是:与该协议命令的类型相同的协议命令,也可以是与该协议命令的类型不同的协议命令。
1045:基于该协议命令下的所有通信数据中的预设字节的取值,得到该协议命令的命令详细意义。可以理解的是,预设字节是协议中规定的字节取值不同具有不同意义的字节,在本发明实施例中,获取到预设字节的取值后,从协议中查找到该取值所对应的意义,并将所有预设字节对应的意义作为协议命令的命令详细意义。
从上述技术方案可知,在获取以第一数据类的实例表示的通信数据后,从通信数据中提取与协议命令解析相关的解析信息,然后基于解析信息确定通信数据对应的协议命令,由于在确定协议命令时采用的是与协议命令解析相关的解析信息,从而可以提高协议命令的类型的准确度。并且在基于解析信息确定通信数据对应一种协议命令,且基于该协议命令的结构获取到该协议命令下的所有通信数据的情况下,基于该协议命令下的所有通信数据得到该协议命令的命令数据,即得到近场通信过程中某个协议命令的命令数据,使得解析出的数据全面详细,进而可以根据命令数据准确评估近场通信过程的通信性能。
与上述方法实施例相对应,本发明实施例还提供一种基于近场通信的命令解析装置,其结构示意图如图4所示,可以包括:获取单元11、提取单元12、确定单元13和获得单元14。
获取单元11,用于获取近场通信过程中的一帧通信数据,其中近场通信过程中的每帧通信数据以第一数据类的实例表示,这样通过第一数据类的实例可以记录一帧通信数据的完整信息,提高数据完整性,并且便于在客户端的显示界面进行展示。
在本实施例中,获取单元11的一种可行结构为:获取单元11包括获取子单元、确定子单元和获得子单元。其中获取子单元,用于从原始数据链表中获取近场通信过程中的至少一个第二数据类的实例,第二数据类的实例对应一帧通信数据中的数据单元,每个第二数据类的实例包括:数据意义、数据内容、数据比特长度、传输方向、传输起始时间、传输结束时间、传输速率、数据字节数、与上一数据单元的传输时间间隔等属性,具体每个属性的意义请参阅方法实施例中的相关说明。
确定子单元,用于从至少一个第二数据类的实例中确定隶属于一帧通信数据的第二数据类的实例,其中确定子单元确定隶属于一帧通信数据的第二数据类的实例的可行方式为:从每个第二数据类的实例中提取数据意义,并基于数据意义,确定隶属于一帧通信数据的第二数据类的实例。
之所以可以基于数据意义来确定是因为:数据意义用于判断数据单元表示通信数据的传输开始、传输中或者传输结束等,所以基于数据意义可以确定数据单元位于通信数据的哪部分,这样就可以基于数据意义得到隶属于一帧通信数据的第二数据类的实例。并且第二数据类的实例的数据内容是经过预处理后与近场通信相关的内容,因此在基于这些数据内容得到的通信数据进行命令解析时可以提高解析速率。
获得子单元,用于基于隶属于一帧通信数据的第二数据类的实例,得到表示一帧通信数据的第一数据类的实例。其中表示一帧通信数据的第一数据类的实例包括:传输方向、传输起始时间、传输结束时间、数据内容、传输速率、数据字节数、与上一帧通信数据的传输时间间隔等属性,这些属性对应的属性值均是从组成一帧通信数据的数个第二数据类的实例中提取,为此本实施例中获得子单元得到表示一帧通信数据的第一数据类的实例的过程可以是:
基于隶属于一帧通信数据的第二数据类的实例的传输方向,得到第一数据类的实例的传输方向;基于隶属于一帧通信数据的第二数据类的实例的传输速率,得到第一数据类的实例的传输速率;基于隶属于一帧通信数据的第二数据类的实例的数据意义、传输起始时间和传输结束时间,得到第一数据类的实例的传输起始时间和传输结束时间;基于隶属于一帧通信数据的第二数据类的实例的数据内容,得到第一数据类的实例的数据内容;基于隶属于一帧通信数据的第二数据类的实例的数据字节数,得到第一数据类的实例的数据字节数;基于第一数据类的实例的传输起始时间和上一个第一数据类的实例的传输结束时间,得到第一数据类的实例的传输时间间隔,具体说明请参阅方法实施例中的相关说明,对此本实施例不再阐述。
提取单元12,用于从通信数据中提取与协议命令解析相关的解析信息。也就是说解析信息是用于进行协议命令解析的,在本发明实施例中提取的解析信息包括但不限于数据内容、传输方向、数据比特长度等信息,具体视协议规定而定。
确定单元13,用于基于解析信息确定通信数据对应的协议命令。例如可以将解析信息与协议规定的数据内容、传输方向、数据字节数和数据比特长度等信息进行比对来确定通信数据对应的协议命令。
若经过比对判断出解析信息与协议规定的数据内容、传输方向、数据字节数和数据比特长度等信息不匹配,则判定该通信数据对应一个未知命令,即不是协议规定中的协议命令。若经过比对判断出解析信息与协议规定的数据内容、传输方向、数据字节数和数据比特长度等信息匹配,则判定该通信数据对应一个协议命令,具体可参阅方法实施例中的举例说明。
获得单元14,用于在基于解析信息确定通信数据对应一种协议命令,且基于该协议命令的结构获取到该协议命令下的所有通信数据的情况下,基于该协议命令下的所有通信数据得到该协议命令的命令数据。
也就是说,得到协议命令的命令数据需要满足两个前提条件:一是基于解析信息确定出通信数据对应一种协议命令;二是基于该协议命令的结构获取到该协议命令下的所有通信数据。在这里需要说明的一点是:一次近场通信过程中可能涉及多个协议命令,而本实施例中该协议命令下的所有通信数据是一次协议命令下符合协议命令的结构要求的所有通信数据,如协议规定Anticollision包括两帧通信数据:分别是传输方向为PCD到PICC的通信数据和传输方向为PICC到PCD的通信数据,则该协议命令下的所有通信数据是一次Anticollision下的传输方向为PCD到PICC的通信数据和传输方向为PICC到PCD的通信数据。
在本实施例中,获得单元14,具体用于获得该协议命令的命令序号和命令名称;基于该协议命令下的所有通信数据中的传输方向,得到该协议命令的命令传输方向;基于该协议命令下的所有通信数据中的数据内容,得到该协议命令的命令数据内容;基于该协议命令下的所有通信数据中的第一帧通信数据的传输起始时间与上一协议命令下的所有通信数据中的最后一帧通信数据的传输结束时间,得到该协议命令的命令间隔时间;基于该协议命令下的所有通信数据中的预设字节的取值,得到该协议命令的命令详细意义,具体说明请参阅方法实施例中的相关说明,对此本实施例不再阐述。
从上述技术方案可知,在获取以第一数据类的实例表示的通信数据后,从通信数据中提取与协议命令解析相关的解析信息,然后基于解析信息确定通信数据对应的协议命令,由于在确定协议命令时采用的是与协议命令解析相关的解析信息,从而可以提高协议命令的类型的准确度。并且在基于解析信息确定通信数据对应一种协议命令,且基于该协议命令的结构获取到该协议命令下的所有通信数据的情况下,基于该协议命令下的所有通信数据得到该协议命令的命令数据,即得到近场通信过程中某个协议命令的命令数据,使得解析出的数据全面详细,进而可以根据命令数据准确评估近场通信过程的通信性能。
本发明实施例还提供一种存储介质,存储介质上存储有程序,程序执行时实现上述基于近场通信的命令解析方法。
本发明实施例还提供一种处理器,处理器用于运行程序,其中程序运行时执行上述基于近场通信的命令解析方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于其他实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于近场通信的命令解析方法,其特征在于,所述方法包括:
获取近场通信过程中的一帧通信数据,其中近场通信过程中的每帧通信数据以第一数据类的实例表示;
从所述通信数据中提取与协议命令解析相关的解析信息;
基于所述解析信息确定所述通信数据对应的协议命令;
在基于所述解析信息确定所述通信数据对应一种协议命令,且基于该协议命令的结构获取到该协议命令下的所有通信数据的情况下,基于该协议命令下的所有通信数据得到该协议命令的命令数据。
2.根据权利要求1所述的方法,其特征在于,所述获取近场通信过程中的一帧通信数据包括:从原始数据链表中获取近场通信过程中的至少一个第二数据类的实例,所述第二数据类的实例对应一帧通信数据中的数据单元;
从所述至少一个第二数据类的实例中确定隶属于一帧通信数据的第二数据类的实例;
基于隶属于一帧通信数据的第二数据类的实例,得到表示一帧通信数据的第一数据类的实例。
3.根据权利要求2所述的方法,其特征在于,所述从所述至少一个第二数据类的实例中确定隶属于一帧通信数据的第二数据类的实例包括:从所述每个第二数据类的实例中提取数据意义;
基于所述数据意义,确定隶属于一帧通信数据的第二数据类的实例。
4.根据权利要求2所述的方法,其特征在于,所述基于隶属于一帧通信数据的第二数据类的实例,得到表示一帧通信数据的第一数据类的实例包括:基于隶属于一帧通信数据的第二数据类的实例的传输方向,得到所述第一数据类的实例的传输方向;
基于隶属于一帧通信数据的第二数据类的实例的传输速率,得到所述第一数据类的实例的传输速率;
基于隶属于一帧通信数据的第二数据类的实例的数据意义、传输起始时间和传输结束时间,得到所述第一数据类的实例的传输起始时间和传输结束时间;
基于隶属于一帧通信数据的第二数据类的实例的数据内容,得到所述第一数据类的实例的数据内容;
基于隶属于一帧通信数据的第二数据类的实例的数据字节数,得到第一数据类的实例的数据字节数;
基于所述第一数据类的实例的传输起始时间和上一个第一数据类的实例的传输结束时间,得到所述第一数据类的实例的传输时间间隔。
5.根据权利要求1所述的方法,其特征在于,所述基于该协议命令下的所有通信数据得到该协议命令的命令数据包括:获得该协议命令的命令序号和命令名称;
基于该协议命令下的所有通信数据中的传输方向,得到该协议命令的命令传输方向;
基于该协议命令下的所有通信数据中的数据内容,得到该协议命令的命令数据内容;
基于该协议命令下的所有通信数据中的第一帧通信数据的传输起始时间与上一协议命令下的所有通信数据中的最后一帧通信数据的传输结束时间,得到该协议命令的命令间隔时间;
基于该协议命令下的所有通信数据中的预设字节的取值,得到该协议命令的命令详细意义。
6.一种基于近场通信的命令解析装置,其特征在于,所述装置包括:
获取单元,用于获取近场通信过程中的一帧通信数据,其中近场通信过程中的每帧通信数据以第一数据类的实例表示;
提取单元,用于从所述通信数据中提取与协议命令解析相关的解析信息;
确定单元,用于基于所述解析信息确定所述通信数据对应的协议命令;
获得单元,用于在基于所述解析信息确定所述通信数据对应一种协议命令,且基于该协议命令的结构获取到该协议命令下的所有通信数据的情况下,基于该协议命令下的所有通信数据得到该协议命令的命令数据。
7.根据权利要求6所述的装置,其特征在于,所述获取单元包括:获取子单元,用于从原始数据链表中获取近场通信过程中的至少一个第二数据类的实例,所述第二数据类的实例对应一帧通信数据中的数据单元;
确定子单元,用于从所述至少一个第二数据类的实例中确定隶属于一帧通信数据的第二数据类的实例;
获得子单元,用于基于隶属于一帧通信数据的第二数据类的实例,得到表示一帧通信数据的第一数据类的实例;
其中所述获得子单元具体用于基于隶属于一帧通信数据的第二数据类的实例的传输方向,得到所述第一数据类的实例的传输方向;基于隶属于一帧通信数据的第二数据类的实例的传输速率,得到所述第一数据类的实例的传输速率;基于隶属于一帧通信数据的第二数据类的实例的数据意义、传输起始时间和传输结束时间,得到所述第一数据类的实例的传输起始时间和传输结束时间;基于隶属于一帧通信数据的第二数据类的实例的数据内容,得到所述第一数据类的实例的数据内容;基于隶属于一帧通信数据的第二数据类的实例的数据字节数,得到第一数据类的实例的数据字节数;基于所述第一数据类的实例的传输起始时间和上一个第一数据类的实例的传输结束时间,得到所述第一数据类的实例的传输时间间隔。
8.根据权利要求6所述的装置,其特征在于,所述获得单元,具体用于获得该协议命令的命令序号和命令名称;基于该协议命令下的所有通信数据中的传输方向,得到该协议命令的命令传输方向;基于该协议命令下的所有通信数据中的数据内容,得到该协议命令的命令数据内容;基于该协议命令下的所有通信数据中的第一帧通信数据的传输起始时间与上一协议命令下的所有通信数据中的最后一帧通信数据的传输结束时间,得到该协议命令的命令间隔时间;基于该协议命令下的所有通信数据中的预设字节的取值,得到该协议命令的命令详细意义。
9.一种存储介质,其特征在于,所述存储介质上存储有程序,所述程序执行时实现权利要求1至5任意一项所述的基于近场通信的命令解析方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中所述程序运行时执行权利要求1至5任意一项所述的基于近场通信的命令解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711340732.5A CN108064037B (zh) | 2017-12-14 | 2017-12-14 | 一种基于近场通信的命令解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711340732.5A CN108064037B (zh) | 2017-12-14 | 2017-12-14 | 一种基于近场通信的命令解析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108064037A true CN108064037A (zh) | 2018-05-22 |
CN108064037B CN108064037B (zh) | 2020-09-11 |
Family
ID=62138735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711340732.5A Active CN108064037B (zh) | 2017-12-14 | 2017-12-14 | 一种基于近场通信的命令解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108064037B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112185093A (zh) * | 2020-09-29 | 2021-01-05 | 广东艾科技术股份有限公司 | 自动组帧的抄表方法、设备和装置 |
WO2023004702A1 (zh) * | 2021-07-29 | 2023-02-02 | 华为技术有限公司 | 传输速率确定方法及通信装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105809231A (zh) * | 2014-12-31 | 2016-07-27 | 上海励识电子科技有限公司 | 多频多用途电子标签及其使用方法 |
US20160307290A1 (en) * | 2015-04-14 | 2016-10-20 | Intel Corporation | Supporting multi-level nesting of command buffers in graphics command streams at computing devices |
CN107294976A (zh) * | 2017-06-28 | 2017-10-24 | 济南浪潮高新科技投资发展有限公司 | 基于串口的通信方法及系统、接收端 |
-
2017
- 2017-12-14 CN CN201711340732.5A patent/CN108064037B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105809231A (zh) * | 2014-12-31 | 2016-07-27 | 上海励识电子科技有限公司 | 多频多用途电子标签及其使用方法 |
US20160307290A1 (en) * | 2015-04-14 | 2016-10-20 | Intel Corporation | Supporting multi-level nesting of command buffers in graphics command streams at computing devices |
CN107294976A (zh) * | 2017-06-28 | 2017-10-24 | 济南浪潮高新科技投资发展有限公司 | 基于串口的通信方法及系统、接收端 |
Non-Patent Citations (3)
Title |
---|
ANDY001847: "ISO 14443 Type A类型卡的防碰撞过程以及命令解析", 《CSDN》 * |
ANDY001847: "ISO 14443 Type B类型卡的防碰撞过程以及命令解析", 《CSDN》 * |
TEXAS INSTRUMENTS: "NFC/RFID Training Module #1 S2 MCU NFC/RFID Applications Team", 《ISO/NFC STANDARDS AND SPECIFICATIONS OVERVIEW》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112185093A (zh) * | 2020-09-29 | 2021-01-05 | 广东艾科技术股份有限公司 | 自动组帧的抄表方法、设备和装置 |
CN112185093B (zh) * | 2020-09-29 | 2024-03-22 | 广东艾科技术股份有限公司 | 自动组帧的抄表方法、设备和装置 |
WO2023004702A1 (zh) * | 2021-07-29 | 2023-02-02 | 华为技术有限公司 | 传输速率确定方法及通信装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108064037B (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104185141B (zh) | 基于蓝牙信标设备的用户区域停留时间的检测系统和方法 | |
CN103916436B (zh) | 信息推送方法、装置、终端及服务器 | |
CN105260782A (zh) | 挂号预约信息处理方法及装置 | |
CN105225563B (zh) | 一种学习数据推荐方法、装置及穿戴式学习设备 | |
CN109684803A (zh) | 基于手势滑动的人机验证方法 | |
CN108064037A (zh) | 一种基于近场通信的命令解析方法及装置 | |
CN107223257A (zh) | 测试方法、测试服务器及系统 | |
CN106488539A (zh) | 终端中WiFi资源的处理方法和系统 | |
CN106250518A (zh) | 智能搜题方法及装置 | |
US20220052976A1 (en) | Answer text processing methods and apparatuses, and key text determination methods | |
CN103001934B (zh) | 终端应用登录的方法和系统 | |
CN105741161A (zh) | 基于司机信用的识别打车业务中刷单用户的方法和系统 | |
CN111563176A (zh) | 一种基于惯性大数据的漫画管理系统 | |
CN110020005A (zh) | 一种病历中主诉和现病史中症状匹配方法 | |
CN109766855A (zh) | 一种移动智能设备传感器指纹识别方法 | |
CN114328566A (zh) | 关系图谱的更新方法、装置、介质、设备及生成方法 | |
CN110209780A (zh) | 一种问题模板生成方法、装置、服务器及存储介质 | |
CN104715040A (zh) | 一种数据分类的方法及装置 | |
CN205318553U (zh) | 数据处理装置和系统以及打印机 | |
CN110516120A (zh) | 信息处理方法及装置、存储介质、电子装置 | |
CN107273112A (zh) | 一种礼物榜单信息显示方法及装置 | |
CN106790130B (zh) | 一种报文匹配方法及装置 | |
WO2020248506A1 (zh) | 应用程序测试的评价方法、装置、服务器及存储介质 | |
CN105094810B (zh) | 基于通用网关接口插件的数据处理方法和装置 | |
CN108845995A (zh) | 数据处理方法、装置、存储介质和电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |