CN109240947A - 智能卡数据接收方法及装置 - Google Patents
智能卡数据接收方法及装置 Download PDFInfo
- Publication number
- CN109240947A CN109240947A CN201810918536.XA CN201810918536A CN109240947A CN 109240947 A CN109240947 A CN 109240947A CN 201810918536 A CN201810918536 A CN 201810918536A CN 109240947 A CN109240947 A CN 109240947A
- Authority
- CN
- China
- Prior art keywords
- data
- preset cache
- cache area
- smart card
- service routine
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种智能卡数据接收方法及装置,当MCU侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。该方法及装置利用中断服务程序和主程序分别处理数据的接收和判断,实现了数据接收和数据判断的相互独立,同时优先利用中断服务程序进行数据接收,从而能够确保智能卡发送的每个数据都能够被接收到,避免了数据丢失的现象,有效提高了读卡器与智能卡之间数据交互的稳定性。
Description
技术领域
本发明实施例涉及通信技术领域,更具体地,涉及智能卡数据接收方法及装置。
背景技术
随着半导体技术的发展和社会对信息安全性的要求日益提高,智能卡应运而生,智能卡里面所包含的集成电路芯片具有存储、加密及数据处理能力,被公认为世界上最小的个人计算机。与目前仍在广泛应用的磁卡相比,智能卡具有安全性高、存储容量大等许多优点,它可承载比磁卡多达100倍的信息,并能与终端结合进行复杂的计算。这种既具有智能性,又便于携带的卡片,为现代信息的处理和传递提供了一种全新手段。
目前,在智能卡的各项应用中,终端利用读卡器与智能卡进行信息交互,且对智能卡数据交互的通讯速率和稳定性要求很高。然而,现有的读卡器往往利用UART普通的轮询机制来接收智能卡传输的数据,将数据包的接收和判断都放在处理器的主程序中,主程序每接收到一个数据,都要判断数据是否接收完成,一个数据接收和判断的总时间往往可能超过了UART数据传输间隔时间,致使下一个数据传输至UART接口时,主程序还在对上一个数据进行判断,导致主程序难以接收到下一个数据,从而出现数据丢失的现象,严重影响了读卡器与智能卡之间数据交互的稳定性。
发明内容
本发明实施例为了克服现有技术中读卡器与智能卡进行数据交互时,容易出现数据丢失,导致影响了读卡器与智能卡之间数据交互的稳定性的问题,提供一种智能卡数据接收方法及装置。
根据本发明实施例的第一个方面,提供一种智能卡数据接收方法,包括:
向智能卡发送数据请求,当侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;
当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。
优选地,利用主程序判断预设缓存区中的数据是否构成完整的数据包,之后还包括:
若预设缓存区中的数据不构成完整的数据包,则判断预设超时定时器是否超时;
若预设超时定时器未超时,则进入下一次判断预设缓存区中的数据是否构成完整的数据包。
优选地,若预设缓存区中的数据不构成完整的数据包,则判断预设超时定时器是否超时,之后还包括:
若预设超时定时器超时,则清空预设缓存区中的数据。
优选地,向智能卡发送数据请求,之后还包括:
开启预设超时定时器,并根据请求数据的大小创建预设缓存区。
优选地,所述预设缓存区包含一个预设长度的字符数组和一个数据位置指针。
优选地,将接收到的数据写入预设缓存区,具体为:
在预设缓存区中,移动改变数据位置指针的位置,将接收到的数据依次存入预设缓存区的字符数组中。
优选地,读取预设缓存区中的数据包,具体为:
获取预设缓存区的起始地址和数据位置指针的位置,根据起始地址和数据位置指针的位置确定预设缓存区中的数据包大小;
将起始地址和数据包大小发送给应用层,以使得应用层根据起始地址和数据包大小读取预设缓存区中的数据包。
根据本发明实施例的第二个方面,提供一种智能卡数据接收装置,包括:
数据接收模块,用于当侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;
数据管理模块,用于当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。
根据本发明实施例的第三个方面,还提供一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的智能卡数据接收方法。
根据本发明实施例的第四个方面,还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的智能卡数据接收方法。
本发明实施例提供的智能卡数据接收方法及装置,当MCU侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。该方法及装置利用中断服务程序和主程序分别处理数据的接收和判断,由于中断服务程序和主程序的优先级不同,因此可实现数据接收和数据判断的相互独立,同时优先利用中断服务程序进行数据接收,从而能够确保智能卡发送的每个数据都能够被接收到,避免了数据丢失的现象,有效提高了读卡器与智能卡之间数据交互的稳定性。
附图说明
图1为本发明实施例提供的智能卡数据接收方法的流程示意图;
图2为本发明实施例提供的智能卡数据接收装置的功能框图;
图3为本发明实施例提供的电子设备的结构框图。
具体实施方式
下面结合附图和实施例,对本发明实施例的具体实施方式作进一步详细描述。以下实施例用于说明本发明实施例,但不用来限制本发明实施例的范围。
需要说明的是,在终端与智能卡进行数据交互的过程中,现有技术中终端利用读卡器采用UART普通的轮询机制来接收智能卡传输的数据,导致容易出现数据丢失的现象。有鉴于此,本发明实施例对读卡器中的智能卡数据接收方式进行改进,提供一种智能卡数据接收方法及装置。
需要说明的是,本发明实施例中的智能卡数据表示是智能卡向读卡器发送的数据。
现通过以下方法实施例进行具体说明,该方法实施例的执行主体为读卡器。
图1为本发明实施例提供的智能卡数据接收方法的流程示意图,如图1所示,本发明实施例提供一种智能卡数据接收方法,包括:
S1,向智能卡发送数据请求,当侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;
具体地,在终端与智能卡进行交互的过程中,终端利用读卡器MCU(微控制单元)向智能卡发送数据请求,智能卡响应MCU发送的数据请求,并将MCU所请求的数据发送至MCU的UART接口(异步串行接口),当MCU侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,即中断服务程序开启。本实施例中,中断服务程序中已经预先设置了数据接收函数。因此,在中断服务程序开启后,MCU即可利用中断服务程序接收智能卡发送的数据,每接收到一个数据,中断服务程序则把接收到的数据写入预设缓存区。其中,预设缓存区是预先创建的,预设缓存区的大小可以根据实际需求进行设置,此处不做具体限定。
S2,当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。
具体地,在利用中断服务程序接收数据的过程中,在中断服务程序接收完成若干个数据之后,若下一个数据还未传输至UART接口,则此时中断服务程序处于空闲状态,中断服务程序将自动退出。当MCU侦测到中断服务程序退出时,则自动触发主程序进行工作。本实施例中,主程序中已经预先设置了一个循环函数,该循环函数用于轮询判断预设缓存区中的数据是否构成完整的数据包,即判断智能卡数据是否接收完成。因此,在主程序被触发之后,MCU即可利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包,进而可以将所读取的数据包发送至应用层以对数据包进行应用处理。其中,在判断预设缓存区中的数据是否构成完整的数据包时,可以根据具体的通信协议进行判断,可以根据实际需求进行设置,此处不做具体限定。
可以理解的是,本实施例中,读卡器MCU在接收智能卡发送的数据时,利用中断服务程序和主程序分别处理数据的接收和判断,由于MCU中只能进行单任务处理,而中断服务程序的优先级高于主程序,因此,当侦测到智能卡发送的数据传输至UART接口时,则会优先利用中断服务程序进行数据接收,从而能够确保智能卡发送的每个数据都能够被接收到,避免了数据丢失的现象。同时,现有技术中,每接收到一个数据,主程序都要判断数据接收是否完成,而本实施例中,当且仅当中断服务程序空闲时,主程序才判断预设缓存区中的数据是否构成完整的数据包,即判断数据接收是否完成,有效节省了数据判断所消耗的时间。
本发明实施例提供的智能卡数据接收方法,当MCU侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。该方法利用中断服务程序和主程序分别处理数据的接收和判断,由于中断服务程序和主程序的优先级不同,因此可实现数据接收和数据判断的相互独立,同时优先利用中断服务程序进行数据接收,从而能够确保智能卡发送的每个数据都能够被接收到,避免了数据丢失的现象,有效提高了读卡器与智能卡之间数据交互的稳定性。
基于上述任一实施例,提供一种智能卡数据接收方法,利用主程序判断预设缓存区中的数据是否构成完整的数据包,之后还包括:若预设缓存区中的数据不构成完整的数据包,则判断预设超时定时器是否超时;若预设超时定时器未超时,则进入下一次判断预设缓存区中的数据是否构成完整的数据包。
具体地,当MCU侦测到中断服务程序退出时,则自动触发主程序进行工作,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据不构成完整的数据包,则判断预设超时定时器是否超时,若预设超时定时器未超时,则进入下一次判断预设缓存区中的数据是否构成完整的数据包。即,在同时满足中断服务程序退出和预设超时定时器未超时的条件下,循环判断预设缓存区中的数据是否构成完整的数据包。
本发明实施例提供的智能卡数据接收方法,在利用主程序判断预设缓存区中的数据是否构成完整的数据包之后,若预设缓存区中的数据不构成完整的数据包,则判断预设超时定时器是否超时,若预设超时定时器未超时,则进入下一次判断预设缓存区中的数据是否构成完整的数据包。该方法在同时满足中断服务程序退出和预设超时定时器未超时的条件下,利用主程序循环判断预设缓存区中的数据是否构成完整的数据包,在避免数据丢失的同时,实现了处理器资源的充分利用。
基于上述任一实施例,提供一种智能卡数据接收方法,若预设缓存区中的数据不构成完整的数据包,则判断预设超时定时器是否超时,之后还包括:若预设超时定时器超时,则清空预设缓存区中的数据。
具体地,当MCU侦测到中断服务程序退出时,则自动触发主程序进行工作,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据不构成完整的数据包,则判断预设超时定时器是否超时,若预设超时定时器超时,则可确定预设缓存区中的数据接收失败,即此时预设缓存区中的数据是无效的,则清空预设缓存区中的数据。
本发明实施例提供的智能卡数据接收方法,在利用主程序判断预设缓存区中的数据是否构成完整的数据包之后,若预设缓存区中的数据不构成完整的数据包,则判断预设超时定时器是否超时,若预设超时定时器超时,则清空预设缓存区中的数据。该方法利用主程序对预设缓存区中的无效数据进行清理,实现了对预设缓存区的有效管理。
基于上述任一实施例,提供一种智能卡数据接收方法,向智能卡发送数据请求,之后还包括:开启预设超时定时器,并根据请求数据的大小创建预设缓存区。
具体地,当终端需要获取智能卡数据时,终端利用读卡器MCU向智能卡发送数据请求,请求智能卡向MCU发送所请求的数据。在发送数据请求之后,MCU开启预设超时定时器,利用预设超时定时器确定等待时间,即在该等待时间等待接收智能卡发送的数据。其中,预设超时定时器设定的具体时间间隔可以根据实际需求进行设置,此处不做具体限定。同时,MCU根据数据请求所请求数据的大小创建预设缓存区,以将接收到的数据存储至预设缓存区。其中,预设缓存区的具体大小可以根据实际需求进行设置,此处不做具体限定。
本发明实施例提供的智能卡数据接收方法,MCU向智能卡发送数据请求之后,开启预设超时定时器,并根据请求数据的大小创建预设缓存区,有利于通过预设超时定时器设定数据接收的等待时间,并通过预设缓存区存储接收到的数据,进而有利于确保数据接收的稳定性。
基于上述任一实施例,提供一种智能卡数据接收方法,所述预设缓存区包含一个预设长度的字符数组和一个数据位置指针。
具体地,本实施例中,预设缓存区包含一个预设长度的字符数组和一个数据位置指针。其中,字符数组用于存储接收到的数据,字符数组的预设长度可以根据请求数据的大小进行设置,此处不做具体限定。数据位置指针用于指示当前字符数组中已存储的数据数量,在初始状态,数据位置指针指向字符数组的第一位。
本发明实施例提供的智能卡数据接收方法,在预设缓存区中设置一个预设长度的字符数组和一个数据位置指针,有利于通过字符数组将接收到的数据进行顺序存储,并通过数据位置指针确定字符数组中已存储的数据数量。
基于上述任一实施例,提供一种智能卡数据接收方法,将接收到的数据写入预设缓存区,具体为:在预设缓存区中,移动改变数据位置指针的位置,将接收到的数据依次存入预设缓存区的字符数组中。
具体地,在将接收到的数据写入预设缓存区的过程中,每当接收到一个数据,则将该数据顺序存入预设缓存区的字符数组中,并将数据位置指针的位置加1。即,移动改变数据位置指针的位置,将接收到的数据依次存入预设缓存区的字符数组中。在此基础上,对于任意一个当前时刻,数据位置指针均指向预设缓存区中最后存储的一位数据。由此,即可根据数据位置指针的位置确定当前预设缓存区中已存储的数据数量。
本发明实施例提供的智能卡数据接收方法,在预设缓存区中,移动改变数据位置指针的位置,将接收到的数据依次存入预设缓存区的字符数组中,能够将接收的数据进行有序存储,同时能够有效确定当前接收到的数据数量。
基于上述任一实施例,提供一种智能卡数据接收方法,读取预设缓存区中的数据包,具体为:获取预设缓存区的起始地址,根据起始地址和数据位置指针的位置确定预设缓存区中的数据包大小;将起始地址和数据包大小发送给应用层,以使得应用层根据起始地址和数据包大小读取预设缓存区中的数据包。
具体地,在读取预设缓存区中的数据包的过程中,首先获取预设缓存区的起始地址和数据位置指针的位置,再根据起始地址和数据位置指针的位置确定预设缓存区中的数据包大小。例如,若预设缓存区的起始地址为字符数组的第1位,数据位置指针的位置为字符数组的第10位,则可确定预设缓存区中的数据包大小为10个字节。最终,将起始地址和数据包大小发送给应用层,以使得应用层根据起始地址和数据包大小读取预设缓存区中的数据包。
可以理解的是,应用层是数据传输的最高层,数据传输的最终目的是将数据传输至应用层进行处理,在应用层中,根据传输数据的类型可利用不同的应用程序对传输的数据进行应用处理。
本发明实施例提供的智能卡数据接收方法,在读取预设缓存区中的数据包的过程中,获取预设缓存区的起始地址,根据起始地址和数据位置指针的位置确定预设缓存区中的数据包大小,将起始地址和数据包大小发送给应用层,以使得应用层根据起始地址和数据包大小读取预设缓存区中的数据包,该方法能够有效地将接收到的数据传输至应用层进行应用处理。
图2为本发明实施例提供的智能卡数据接收装置的功能框图,如图2所示,基于上述任一实施例,提供一种智能卡数据接收装置,包括:
数据接收模块201,用于当侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;
数据管理模块202,用于当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。
本发明实施例提供的智能卡数据接收装置,包括数据接收模块201和数据管理模块202,通过各模块之间的配合实现上述任一方法实施例中的方法,具体实现过程可以参见上述任一方法实施例,此处不再赘述。
本发明实施例提供的智能卡数据接收装置,当MCU侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。该装置利用中断服务程序和主程序分别处理数据的接收和判断,由于中断服务程序和主程序的优先级不同,因此可实现数据接收和数据判断的相互独立,同时优先利用中断服务程序进行数据接收,从而能够确保智能卡发送的每个数据都能够被接收到,避免了数据丢失的现象,有效提高了读卡器与智能卡之间数据交互的稳定性。
图3示出本发明实施例提供的电子设备的结构框图。参照图3,所述电子设备,包括:处理器(processor)31、存储器(memory)32和总线33;其中,所述处理器31和存储器32通过所述总线33完成相互间的通信;所述处理器31用于调用所述存储器32中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:向智能卡发送数据请求,当侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:向智能卡发送数据请求,当侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:向智能卡发送数据请求,当侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明实施例的保护范围。凡在本发明实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种智能卡数据接收方法,其特征在于,包括:
向智能卡发送数据请求,当侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;
当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。
2.根据权利要求1所述的方法,其特征在于,利用主程序判断预设缓存区中的数据是否构成完整的数据包,之后还包括:
若预设缓存区中的数据不构成完整的数据包,则判断预设超时定时器是否超时;
若预设超时定时器未超时,则进入下一次判断预设缓存区中的数据是否构成完整的数据包。
3.根据权利要求2所述的方法,其特征在于,若预设缓存区中的数据不构成完整的数据包,则判断预设超时定时器是否超时,之后还包括:
若预设超时定时器超时,则清空预设缓存区中的数据。
4.根据权利要求1所述的方法,其特征在于,向智能卡发送数据请求,之后还包括:
开启预设超时定时器,并根据请求数据的大小创建预设缓存区。
5.根据权利要求1所述的方法,其特征在于,所述预设缓存区包含一个预设长度的字符数组和一个数据位置指针。
6.根据权利要求5所述的方法,其特征在于,将接收到的数据写入预设缓存区,具体为:
在预设缓存区中,移动改变数据位置指针的位置,将接收到的数据依次存入预设缓存区的字符数组中。
7.根据权利要求6所述的方法,其特征在于,读取预设缓存区中的数据包,具体为:
获取预设缓存区的起始地址和数据位置指针的位置,根据起始地址和数据位置指针的位置确定预设缓存区中的数据包大小;
将起始地址和数据包大小发送给应用层,以使得应用层根据起始地址和数据包大小读取预设缓存区中的数据包。
8.一种智能卡数据接收装置,其特征在于,包括:
数据接收模块,用于当侦测到智能卡发送的数据传输至UART接口时,自动触发中断服务程序,利用中断服务程序接收智能卡发送的数据,并将接收到的数据写入预设缓存区;
数据管理模块,用于当侦测到中断服务程序退出时,利用主程序判断预设缓存区中的数据是否构成完整的数据包,若预设缓存区中的数据构成完整的数据包,则读取预设缓存区中的数据包。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810918536.XA CN109240947A (zh) | 2018-08-13 | 2018-08-13 | 智能卡数据接收方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810918536.XA CN109240947A (zh) | 2018-08-13 | 2018-08-13 | 智能卡数据接收方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109240947A true CN109240947A (zh) | 2019-01-18 |
Family
ID=65070439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810918536.XA Pending CN109240947A (zh) | 2018-08-13 | 2018-08-13 | 智能卡数据接收方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240947A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148444A (zh) * | 2020-09-04 | 2020-12-29 | 珠海格力电器股份有限公司 | 一种数据处理方法、装置、系统及存储介质 |
CN112383414A (zh) * | 2020-10-28 | 2021-02-19 | 北京中科网威信息技术有限公司 | 双机热备份快速切换方法及装置 |
CN112437025A (zh) * | 2020-11-18 | 2021-03-02 | 盛科网络(苏州)有限公司 | 缓存区快照的实现方法和装置 |
CN113126883A (zh) * | 2019-12-30 | 2021-07-16 | 深圳Tcl新技术有限公司 | 一种数据处理方法、系统及存储介质 |
CN113821246A (zh) * | 2021-09-22 | 2021-12-21 | 四川虹美智能科技有限公司 | 软件无感增量式更新方法、装置、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441566A (zh) * | 2002-02-26 | 2003-09-10 | Lg产电株式会社 | 使用三步通信缓存的通信设备 |
CN101136735A (zh) * | 2006-09-12 | 2008-03-05 | 中兴通讯股份有限公司 | 使用通用异步收发报机的半双工串口通信系统及通信方法 |
CN103235533A (zh) * | 2013-03-26 | 2013-08-07 | 上海维宏电子科技股份有限公司 | 运动控制卡与端子板间实现数据通信的电路结构及方法 |
CN105446925A (zh) * | 2015-06-16 | 2016-03-30 | 北京天诚盛业科技有限公司 | 提高串口数据接收正确性的方法和装置 |
CN105590075A (zh) * | 2015-12-17 | 2016-05-18 | 惠州Tcl移动通信有限公司 | 快速访问sd卡的方法以及智能终端 |
-
2018
- 2018-08-13 CN CN201810918536.XA patent/CN109240947A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441566A (zh) * | 2002-02-26 | 2003-09-10 | Lg产电株式会社 | 使用三步通信缓存的通信设备 |
CN101136735A (zh) * | 2006-09-12 | 2008-03-05 | 中兴通讯股份有限公司 | 使用通用异步收发报机的半双工串口通信系统及通信方法 |
CN103235533A (zh) * | 2013-03-26 | 2013-08-07 | 上海维宏电子科技股份有限公司 | 运动控制卡与端子板间实现数据通信的电路结构及方法 |
CN105446925A (zh) * | 2015-06-16 | 2016-03-30 | 北京天诚盛业科技有限公司 | 提高串口数据接收正确性的方法和装置 |
CN105590075A (zh) * | 2015-12-17 | 2016-05-18 | 惠州Tcl移动通信有限公司 | 快速访问sd卡的方法以及智能终端 |
Non-Patent Citations (1)
Title |
---|
杨艳,傅强: "《从零开启大学生电子设计之路》", 31 December 2014 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113126883A (zh) * | 2019-12-30 | 2021-07-16 | 深圳Tcl新技术有限公司 | 一种数据处理方法、系统及存储介质 |
CN112148444A (zh) * | 2020-09-04 | 2020-12-29 | 珠海格力电器股份有限公司 | 一种数据处理方法、装置、系统及存储介质 |
CN112383414A (zh) * | 2020-10-28 | 2021-02-19 | 北京中科网威信息技术有限公司 | 双机热备份快速切换方法及装置 |
CN112383414B (zh) * | 2020-10-28 | 2023-09-29 | 北京中科网威信息技术有限公司 | 双机热备份快速切换方法及装置 |
CN112437025A (zh) * | 2020-11-18 | 2021-03-02 | 盛科网络(苏州)有限公司 | 缓存区快照的实现方法和装置 |
CN112437025B (zh) * | 2020-11-18 | 2022-08-26 | 苏州盛科通信股份有限公司 | 缓存区快照的实现方法和装置 |
CN113821246A (zh) * | 2021-09-22 | 2021-12-21 | 四川虹美智能科技有限公司 | 软件无感增量式更新方法、装置、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240947A (zh) | 智能卡数据接收方法及装置 | |
CN104506379B (zh) | 网络数据捕获方法和系统 | |
US4322793A (en) | Communication controller transparently integrated into a host CPU | |
CN111078436B (zh) | 数据处理的方法、装置、设备及存储介质 | |
CN103778017B (zh) | 改进虚拟处理器调度的亲和性 | |
CN103336708B (zh) | 聚合网卡资源的方法和相关设备及计算机系统 | |
CN103218313A (zh) | 用于实现缓存描述符交互的方法和电子设备 | |
CN106201670B (zh) | 一种基于Labview的CAN总线数据处理方法 | |
CN114564435A (zh) | 异构多核芯片的核间通信方法、装置及介质 | |
CN110401697A (zh) | 一种并发处理http请求的方法、系统及设备 | |
CN109242454A (zh) | 电子红包的发放方法、装置、服务器及可读存储介质 | |
CN101052031B (zh) | 苹果计算机与无线通讯终端进行数据交互的方法 | |
CN109240831A (zh) | 一种操作请求处理方法、装置、设备及可读存储介质 | |
CN109840725A (zh) | 货物拣选方法、装置、电子装置及计算机可读存储介质 | |
CN104683460B (zh) | 一种物联网的通信方法、装置及服务器 | |
CN109189598A (zh) | 一种中断定位的方法、处理器及终端设备 | |
CN104022963A (zh) | 多种通信方式并存的通信方法及装置 | |
CN113364857A (zh) | 业务数据的处理方法、装置和服务器 | |
CN109284074A (zh) | 一种基于多核系统的打印驱动方法、多核系统及终端设备 | |
CN109726605A (zh) | 一种eSIM智能卡及其工作方法 | |
US6901459B2 (en) | Protocol for transmitting a plurality of multiple exchange logic flow of command/response pairs on a single physical exchange channel between master and slave and corresponding system for controlling and monitoring execution of applets | |
CN107391361A (zh) | 一种pos终端自动测试方法及装置 | |
CN107634978A (zh) | 一种资源调度方法及装置 | |
CN103268264B (zh) | 一种低耦合的多事件同步rfid中间件系统及其实现方法 | |
CN108415779A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190118 |
|
RJ01 | Rejection of invention patent application after publication |