电子锁串口异步接收处理系统及方法技术方案

技术编号:18894245 阅读:38 留言:0更新日期:2018-09-08 10:50
本发明专利技术公开了一种电子锁串口异步接收处理系统及方法。其中,所述系统包括:串口,用于接收数据;两个并联的串口数据缓存模块,与串口连接,用于循环存储串口接收到的数据;判断模块,与串口连接,用于判断数据是否接收结束,并获得判断结果;执行模块,分别与判断模块和两个串口数据缓存模块连接,用于当判断结果为是时,将数据挂到工作队列中;数据处理模块,用于对工作队列中的数据进行处理。本系统和方法,通过开设两个串口数据缓存模块,两个串口数据缓存模块循环存储串口接收的数据包,能够避免一个数据包还没处理就被下一个数据包冲掉,提高接收的正确性和稳定能;加入工作队列来执行数据处理,便于系统任务的统筹管理,保障系统流畅度。

Asynchronous receiving processing system and method for electronic lock serial port

The invention discloses an asynchronous receiving processing system and method for an electronic lock serial port. Among them, the system includes: serial port for receiving data; two parallel serial port data buffer modules, connected with serial port for cyclic storage of data received by serial port; judgment module, connected with serial port for judging whether the data is received and getting judgment results; execution module, respectively, and judgment module Connecting with two serial data caching modules to hang the data to the work queue when the result is true, and the data processing module to process the data in the work queue. By setting up two serial data caching modules and two serial data caching modules to store the packets received by the serial port, the system and method can avoid one packet being washed out by the next packet before it is processed, improve the correctness and stability of the reception, and join the work queue to carry out data processing to facilitate the system. The overall management of unified tasks ensures the system's fluency.

【技术实现步骤摘要】
电子锁串口异步接收处理系统及方法
本专利技术属于电子锁
,具体涉及一种电子锁串口异步接收处理系统及方法。
技术介绍
电子锁是一种通过电子通信技术来控制锁内部的电路或芯片工作,进而控制锁内部机械开关的开合,以完成开锁和闭锁的智能化产品。电子锁相对于传统的机械锁更加安全和方便,在安防、智能家居等领域得到了广泛的应用。目前电子锁由于受成本等多方面的因素考虑,通常会在MCU选型上会选用价格更有竞争力的小型MCU,这种MCU资源有限,通常使用单线程嵌入式系统。单线程的优点是可以使用极少的资源实现所需要的功能,缺点是难以实现异步操作。在单线程系统中,目前对串口数据的接收通常是在接收中断里接收完数据马上执行处理函数,处理完后返回中断切入点继续执行;或者接收中断里接收完数据后,在主循环里轮询是否收到数据并做处理。以上两种做法存在的缺陷是:一、在中断里直接判断数据并执行处理函数,会阻塞其它任务的执行,影响其它功能;二、在主循环里轮询并等待数据完成,占用CPU资源并增加了模块间的耦合性,也不利于多任务时的优先级统筹管理。
技术实现思路
为了解决现有技术存在的上述问题,本专利技术提供了一种电子锁串口异步接收处理系统及方法。一方面,本专利技术提供了一种电子锁串口异步接收处理系统,该系统包括:串口,用于接收数据;两个并联的串口数据缓存模块,与所述串口连接,用于存储所述串口接收到的所述数据;判断模块,与所述串口连接,用于判断所述数据是否接收结束,并获得判断结果;执行模块,分别与所述判断模块和两个所述串口数据缓存模块连接,用于当所述判断结果为是时,将所述数据以及所述数据指定的执行操作捆绑成一个任务,并挂到工作队列中;数据处理模块,用于对所述工作队列中的任务进行处理。优选的,所述判断模块为时长判断模块,用于判断所述串口接收数据时中断的时长,当所述串口接收数据时中断的时长达到预设时长时,则判定所述数据接收结束。进一步优选的,所述预设时长为3ms。优选的,所述执行模块在将所述数据挂到所述工作队列中之前,还包括:设定所述任务的优先级。进一步优选的,所述数据处理模块对所述工作队列中的任务进行处理的过程为:获取所述工作队列中最高优先级的工作子队列,从所述工作子队列中获取等待时间最长的任务并进行处理。另一方面,本专利技术还提供了一种电子锁串口异步接收处理方法,应用于电子锁中,其中,所述电子锁的串口连接有两个并联的串口数据缓存模块,所述方法包括以下步骤:所述串口接收数据,并将所述数据存放于未被占用的一个所述串口数据缓存模块中;判断所述数据是否接收结束,并获得判断结果;当所述判断结果为是时,将所述数据以及所述数据指定的执行操作捆绑成一个任务,并挂到工作队列中;对所述工作队列中的任务进行处理。优选的,所述判断所述数据是否接收结束的方法为:判断所述串口接收数据时中断的时长,当所述串口接收数据时中断的时长达到预设时长时,则判定所述数据接收结束。进一步优选的,所述预设时长为3ms。优选的,在将所述任务挂到工作队列中之前,所述方法还包括:设定所述任务的优先级。进一步优选的,所述对所述工作队列中的任务进行处理的方法为:获取所述工作队列中最高优先级的工作子队列,从所述工作子队列中获取等待时间最长的任务并进行处理。与现有技术相比,本专利技术具有如下有益效果:本专利技术提供的电子锁串口异步接收处理系统及方法,通过开设两个串口数据缓存模块存储串口接收的数据包,能够避免一个数据包还没处理就被下一个数据包冲掉,提高接收的正确性和稳定能;加入工作队列来执行任务处理,便于系统任务的统筹管理,保障系统流畅度。附图说明图1是本专利技术实施例提供的电子锁串口异步接收处理系统的结构示意图;图2为本专利技术实施例提供的电子锁串口异步接收处理方法的方法流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,本专利技术实施例提供了一种电子锁串口异步接收处理系统,该系统包括:串口10,用于接收数据;两个并联的第一串口数据缓存模块201和第二串口数据缓存模块202,与所述串口连接,用于存储所述串口接收到的所述数据;判断模块30,与串口10连接,用于判断所述数据是否接收完成,并获得判断结果;执行模块40,分别与所述判断模块和两个所述串口数据缓存模块连接,用于当所述判断结果为是时,将所述数据以及所述数据指定的执行操作捆绑成一个任务,并挂到工作队列50中;数据处理模块60,用于对工作队列50中的任务进行处理。本专利技术实施例提供的电子锁串口异步接收处理系统应用于电子锁中,电子锁中设置有微控制单元(MCU),本专利技术实施例中的串口10就是MCU上的常见的串行接口。串口10接收外来数据,然后存储至第一串口数据缓存模块201或第二串口数据缓存模块202中。在具体的实施过程中,本专利技术实施例采用两个并联的第一串口数据缓存模块201和第二串口数据缓存模块202来存储串口10接收的数据,当第一串口数据缓存模块201和第二串口数据缓存模块202都没有被占用时,串口10可以将接收的第一帧数据存储到了第一串口数据缓存模块201中,然后,如果接收到第二帧数据时,所述第一帧数据还没有被处理,那么所述第二帧数据就存储到第二串口数据缓存模块202中,当然,如果接收到所述第二帧数据时,第一帧数据已经被处理了,那么所述第二帧数据则即可以存贮至第一串口数据缓存模块201,又可以存储至第二串口数据缓存模块202,也就是说,本专利技术实施例提供的该系统中,串口10接收到一帧数据后,会根据第一串口数据缓存模块201和第二串口数据缓存模块202的被占用情况而确定将该数据存储至未被占用的一个串口数据缓存模块中。本专利技术实施例通过设置两个并联的串口数据缓存模块实现数据的缓冲接收,能够避免一帧数据还没处理就被下一帧数据冲掉,提高接收的正确性和稳定能。在具体的实施过程中,由于串口10接收的数据是分别存储于第一串口数据缓存模块201和第二串口数据缓存模块202中的,那么,必须保障每个串口数据缓存模块存储的数据都是一个完整的数据,因此,本专利技术实施例设置了一个判断模块30,其与串口10连接,用于判断串口10接收数据时是否接收完成。作为优选的,本专利技术实施例中判断模块30采用时长判断模块,用于判断串口10接收数据时中断的时长,当串口10接收数据时中断的时长达到预设时长时,则判定所述数据接收结束。进一步的,在具体的实施过程中,考虑到串口数据传输速率固定的特性,一定时间内没有再接收到数据就可以判定当前数据传输结束。如:4800bps->600Bps->0.6Byte/ms,即串口以4800bps的速率传输时,每ms可以传输0.6个字节。因此,作为优选的,本专利技术实施例中的所述预设时长设置为3ms,即串口10在数据接收中断后3ms没有再接收到任何数据就判定为所述数据结束。在具体的实施过程中,为了便于系统任务的统筹管理,本专利技术实施例加入了工作队列50来对任务进行处理。作为优选的,本专利技术实施例中执行本文档来自技高网...

【技术保护点】
1.一种电子锁串口异步接收处理系统,其特征在于,包括:串口,用于接收数据;两个并联的串口数据缓存模块,与所述串口连接,用于存储所述串口接收到的所述数据;判断模块,与所述串口连接,用于判断所述数据是否接收结束,并获得判断结果;执行模块,分别与所述判断模块和两个所述串口数据缓存模块连接,用于当所述判断结果为是时,将所述数据以及所述数据指定的执行操作捆绑成一个任务,并挂到工作队列中;数据处理模块,用于对所述工作队列中的任务进行处理。

【技术特征摘要】
1.一种电子锁串口异步接收处理系统,其特征在于,包括:串口,用于接收数据;两个并联的串口数据缓存模块,与所述串口连接,用于存储所述串口接收到的所述数据;判断模块,与所述串口连接,用于判断所述数据是否接收结束,并获得判断结果;执行模块,分别与所述判断模块和两个所述串口数据缓存模块连接,用于当所述判断结果为是时,将所述数据以及所述数据指定的执行操作捆绑成一个任务,并挂到工作队列中;数据处理模块,用于对所述工作队列中的任务进行处理。2.根据权利要求1所述的电子锁串口异步接收处理系统,其特征在于,所述判断模块为时长判断模块,用于判断所述串口接收数据时中断的时长,当所述串口接收数据时中断的时长达到预设时长时,则判定所述数据接收结束。3.根据权利要求2所述的电子锁串口异步接收处理系统,其特征在于,所述预设时长为3ms。4.根据权利要求1所述的电子锁串口异步接收处理系统,其特征在于,所述执行模块在将所述任务挂到所述工作队列中之前,还包括:设定所述任务的优先级。5.根据权利要求4所述的电子锁串口异步接收处理系统,其特征在于,所述数据处理模块对所述工作队列中的任务进行处理的过程为:获取所述工作队列中最高优先级的工作子队列,从所述工作...

【专利技术属性】
技术研发人员:徐新陈名锋
申请(专利权)人:中国电子科技集团公司第七研究所
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1