CN108509277A - 电子锁串口异步接收处理系统及方法 - Google Patents
电子锁串口异步接收处理系统及方法 Download PDFInfo
- Publication number
- CN108509277A CN108509277A CN201810292101.9A CN201810292101A CN108509277A CN 108509277 A CN108509277 A CN 108509277A CN 201810292101 A CN201810292101 A CN 201810292101A CN 108509277 A CN108509277 A CN 108509277A
- Authority
- CN
- China
- Prior art keywords
- data
- serial ports
- task
- electronic lock
- serial
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种电子锁串口异步接收处理系统及方法。其中,所述系统包括:串口,用于接收数据;两个并联的串口数据缓存模块,与串口连接,用于循环存储串口接收到的数据;判断模块,与串口连接,用于判断数据是否接收结束,并获得判断结果;执行模块,分别与判断模块和两个串口数据缓存模块连接,用于当判断结果为是时,将数据挂到工作队列中;数据处理模块,用于对工作队列中的数据进行处理。本系统和方法,通过开设两个串口数据缓存模块,两个串口数据缓存模块循环存储串口接收的数据包,能够避免一个数据包还没处理就被下一个数据包冲掉,提高接收的正确性和稳定能;加入工作队列来执行数据处理,便于系统任务的统筹管理,保障系统流畅度。
Description
技术领域
本发明属于电子锁技术领域,具体涉及一种电子锁串口异步接收处理系统及方法。
背景技术
电子锁是一种通过电子通信技术来控制锁内部的电路或芯片工作,进而控制锁内部机械开关的开合,以完成开锁和闭锁的智能化产品。电子锁相对于传统的机械锁更加安全和方便,在安防、智能家居等领域得到了广泛的应用。
目前电子锁由于受成本等多方面的因素考虑,通常会在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来对任务进行处理。作为优选的,本发明实施例中执行模块40在将所述任务挂到工作队列50中之前,还包括:设定所述任务的优先级。通过对所述任务设定优先级,能够避免数据处理模块60在处理工作队列50中的任务时阻塞优先级更高的任务执行。
在具体的实施过程中,本发明实施例中数据处理模块10对工作队列50中的任务进行处理的过程为:获取工作队列50中最高优先级的工作子队列,从所述工作子队列中获取等待时间最长的任务并进行处理。
对应本发明实施例中提供的一种电子锁串口异步接收处理系统,本发明实施例中还提供了一种电子锁串口异步接收处理方法,如图2所示,所述方法应用于电子锁中,其中,所述电子锁的串口连接有两个并联的串口数据缓存模块,所述方法包括如下步骤:
步骤S1:所述串口接收数据,并将所述数据存放于未被占用的一个所述串口数据缓存模块中;
步骤S2:判断所述数据是否接收结束,并获得判断结果;
步骤S3:当所述判断结果为是时,将所述数据以及所述数据指定的执行操作捆绑成一个任务,并挂到工作队列中;
步骤S4:对所述工作队列中的任务进行处理。
在具体的实施过程中,作为优选的,本发明实施例的步骤S2中判断判断所述数据是否接收结束的方法具体为:判断所述串口接收数据时中断的时长,当所述串口接收数据时中断的时长达到预设时长时,则判定所述数据接收结束。
进一步的,考虑到串口数据传输速率固定的特性,一定时间内没有再接收到数据就可以判定当前数据传输结束。作为优选的,本发明实施例中的所述预设时长设置为3ms,即所述串口在数据接收中断后3ms没有再接收到任何数据就判定为所述数据接收结束。
在具体的实施过程中,作为优选的,本发明实施例的步骤S3中,在将所述任务挂到工作队列中之前,所述方法还包括:设定所述任务的优先级。通过对所述数据设定优先级,能够避免在处理所述工作队列中给的数据时阻塞优先级更高的任务执行。
在具体的实施过程中,作为优选的,本发明实施例的步骤S4中对所述工作队列中的任务进行处理的具体过程为:获取所述工作队列中最高优先级的工作子队列,从所述工作子队列中获取等待时间最长的任务并进行处理。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种电子锁串口异步接收处理系统,其特征在于,包括:
串口,用于接收数据;
两个并联的串口数据缓存模块,与所述串口连接,用于存储所述串口接收到的所述数据;
判断模块,与所述串口连接,用于判断所述数据是否接收结束,并获得判断结果;
执行模块,分别与所述判断模块和两个所述串口数据缓存模块连接,用于当所述判断结果为是时,将所述数据以及所述数据指定的执行操作捆绑成一个任务,并挂到工作队列中;
数据处理模块,用于对所述工作队列中的任务进行处理。
2.根据权利要求1所述的电子锁串口异步接收处理系统,其特征在于,所述判断模块为时长判断模块,用于判断所述串口接收数据时中断的时长,当所述串口接收数据时中断的时长达到预设时长时,则判定所述数据接收结束。
3.根据权利要求2所述的电子锁串口异步接收处理系统,其特征在于,所述预设时长为3ms。
4.根据权利要求1所述的电子锁串口异步接收处理系统,其特征在于,所述执行模块在将所述任务挂到所述工作队列中之前,还包括:设定所述任务的优先级。
5.根据权利要求4所述的电子锁串口异步接收处理系统,其特征在于,所述数据处理模块对所述工作队列中的任务进行处理的过程为:获取所述工作队列中最高优先级的工作子队列,从所述工作子队列中获取等待时间最长的任务并进行处理。
6.一种电子锁串口异步接收处理方法,其特征在于,所述电子锁的串口连接有两个并联的串口数据缓存模块,所述方法包括以下步骤:
所述串口接收数据,并将所述数据存放于未被占用的一个所述串口数据缓存模块中;
判断所述数据是否接收结束,并获得判断结果;
当所述判断结果为是时,将所述数据以及所述数据指定的执行操作捆绑成一个任务,并挂到工作队列中;
对所述工作队列中的任务进行处理。
7.根据权利要求6所述的电子锁串口异步接收处理方法,其特征在于,所述判断所述数据是否接收结束的方法为:判断所述串口接收数据时中断的时长,当所述串口接收数据时中断的时长达到预设时长时,则判定所述数据接收结束。
8.根据权利要求7所述的电子锁串口异步接收处理方法,其特征在于,所述预设时长为3ms。
9.根据权利要求6所述的电子锁串口异步接收处理方法,其特征在于,在将所述任务挂到工作队列中之前,所述方法还包括:设定所述任务的优先级。
10.根据权利要求9所述的电子锁串口异步接收处理方法,其特征在于,所述对所述工作队列中的任务进行处理的方法为:获取所述工作队列中最高优先级的工作子队列,从所述工作子队列中获取等待时间最长的任务并进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810292101.9A CN108509277A (zh) | 2018-04-03 | 2018-04-03 | 电子锁串口异步接收处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810292101.9A CN108509277A (zh) | 2018-04-03 | 2018-04-03 | 电子锁串口异步接收处理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108509277A true CN108509277A (zh) | 2018-09-07 |
Family
ID=63380185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810292101.9A Pending CN108509277A (zh) | 2018-04-03 | 2018-04-03 | 电子锁串口异步接收处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108509277A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5721891A (en) * | 1995-12-15 | 1998-02-24 | International Business Machines Corporation | Detection of N length bit serial communication stream |
CN1677340A (zh) * | 2004-03-29 | 2005-10-05 | 联想(北京)有限公司 | 用于机群监控系统控制台的消息服务装置及其方法 |
CN101262352A (zh) * | 2008-03-04 | 2008-09-10 | 浙江大学 | 一体化安全管理中数据统一加速处理方法 |
CN101369142A (zh) * | 2008-10-10 | 2009-02-18 | 上海电力学院 | 基于嵌入式平台的远程i/o数据采集系统及方法 |
CN102831091A (zh) * | 2012-07-31 | 2012-12-19 | 宁波成电泰克电子信息技术发展有限公司 | 一种基于串口的船用雷达回波数据的采集方法 |
CN103856364A (zh) * | 2012-12-04 | 2014-06-11 | 鸿富锦精密工业(深圳)有限公司 | 总线信号监测装置及方法 |
CN104216768A (zh) * | 2014-09-22 | 2014-12-17 | 北京金山安全软件有限公司 | 一种数据处理方法及装置 |
CN105893126A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN106445854A (zh) * | 2016-08-31 | 2017-02-22 | 航宇救生装备有限公司 | 支持串行接口透明传输的方法及系统 |
-
2018
- 2018-04-03 CN CN201810292101.9A patent/CN108509277A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5721891A (en) * | 1995-12-15 | 1998-02-24 | International Business Machines Corporation | Detection of N length bit serial communication stream |
CN1677340A (zh) * | 2004-03-29 | 2005-10-05 | 联想(北京)有限公司 | 用于机群监控系统控制台的消息服务装置及其方法 |
CN101262352A (zh) * | 2008-03-04 | 2008-09-10 | 浙江大学 | 一体化安全管理中数据统一加速处理方法 |
CN101369142A (zh) * | 2008-10-10 | 2009-02-18 | 上海电力学院 | 基于嵌入式平台的远程i/o数据采集系统及方法 |
CN102831091A (zh) * | 2012-07-31 | 2012-12-19 | 宁波成电泰克电子信息技术发展有限公司 | 一种基于串口的船用雷达回波数据的采集方法 |
CN103856364A (zh) * | 2012-12-04 | 2014-06-11 | 鸿富锦精密工业(深圳)有限公司 | 总线信号监测装置及方法 |
CN104216768A (zh) * | 2014-09-22 | 2014-12-17 | 北京金山安全软件有限公司 | 一种数据处理方法及装置 |
CN105893126A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN106445854A (zh) * | 2016-08-31 | 2017-02-22 | 航宇救生装备有限公司 | 支持串行接口透明传输的方法及系统 |
Non-Patent Citations (2)
Title |
---|
李金、于秀萍: "《软件技术及应用》", 31 January 1999, 哈尔滨工程大学出版社 * |
王志刚,胡玉平: "《计算机操作系统》", 31 August 2005, 武汉大学出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8549204B2 (en) | Method and apparatus for scheduling transactions in a multi-speed bus environment | |
CN104461707B (zh) | 一种锁请求处理方法及装置 | |
CN102648455B (zh) | 服务器和流控制程序 | |
CN101867511B (zh) | 流控帧发送方法、相关设备及系统 | |
CN102724035B (zh) | 一种加密卡的加解密方法 | |
CN105511954A (zh) | 一种报文处理方法及装置 | |
CN109902053A (zh) | 一种基于双控制器的spi通信方法、终端设备及存储介质 | |
US9069485B2 (en) | Doorbell backpressure avoidance mechanism on a host channel adapter | |
WO2008092773A1 (en) | System and method for multicore communication processing | |
US20190042339A1 (en) | Techniques for invocation of a function or a service | |
CN102185740A (zh) | 心跳检测方法及网络设备 | |
CN102893566A (zh) | 用于实现非阻塞式基于优先级流控的方法和装置 | |
CN106055504B (zh) | 控制数据传输的方法、装置及计算机设备 | |
WO2017218700A1 (en) | Systems and methods for non-uniform memory access aligned i/o for virtual machines | |
CN116150051A (zh) | 命令处理方法、装置、系统 | |
CN101052031B (zh) | 苹果计算机与无线通讯终端进行数据交互的方法 | |
CN108509277A (zh) | 电子锁串口异步接收处理系统及方法 | |
CN107797870A (zh) | 一种云计算数据资源调度方法 | |
CN107239419A (zh) | 一种在PowerPC DPAA模式下实现网络接口自适应的方法 | |
US10338921B2 (en) | Asynchronous instruction execution apparatus with execution modules invoking external calculation resources | |
CN107463829A (zh) | 一种密码卡中dma请求的处理方法、系统及相关装置 | |
CN104765710B (zh) | 一种包含双处理器的读卡器的工作方法 | |
US7577157B2 (en) | Facilitating transmission of a packet in accordance with a number of transmit buffers to be associated with the packet | |
US9921891B1 (en) | Low latency interconnect integrated event handling | |
CN111585741A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190321 Address after: 510000 First Floor of R&D and Testing Complex Building No. 381 Xingang Middle Road, Haizhu District, Guangzhou City, Guangdong Province (Office Only) Applicant after: GUANGZHOU JIXIANG TECHNOLOGY Co.,Ltd. Address before: 510000 No. 381 Xingang Middle Road, Guangzhou, Guangdong Province Applicant before: The 7th Research Institute of China Electronics Technology Group Corp. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180907 |
|
RJ01 | Rejection of invention patent application after publication |