单片机及其同步异步控制方法技术

技术编号:23084761 阅读:30 留言:0更新日期:2020-01-11 01:02
本申请涉及单片机及其同步异步控制方法,该同步异步控制方法包括步骤:将需要处理的事件归入事件队列,且将事件的索引映射到优先级队列;从优先级队列中确定当前最高优先级的事件作为待办事件,根据待办事件的索引映射到事件队列;从事件队列取出待办事件且处理待办事件。上述单片机的同步异步控制方法,避免了单片机在自身循环中检测到某些状态变化后会对硬件进行操作而产生竞态且导致操作硬件处于混乱状态,将发生的事件全部压入优先级队列和事件队列中,由于处理事件的先后顺序,因此可以延迟一小段时间,然后对硬件进行操作,这样保证了程序对硬件操作的一致性,有利于保持系统的健壮性,也有利于单片机快速响应外部事件。

Single chip microcomputer and its synchronous and asynchronous control method

【技术实现步骤摘要】
单片机及其同步异步控制方法
本申请涉及单片机控制领域,特别是涉及单片机及其同步异步控制方法。
技术介绍
传统单片机如果检测到硬件状态变化,会立刻对硬件进行操作,亦即,传统单片机会在程序中直接控制硬件,立刻对硬件直接操作。而且指令执行不需要等待时间,即时生效。特别是如果操作硬件需要几条指令,每条指令都需要相应的等待时间,而且这些指令需要按顺序执行不能被打断。那么在循环检测硬件和中断通知两种情况共存的情况下,传统单片机的对硬件进行执行操作的方法便不可行。比如循环检测到硬件后,便对硬件进行A指令集处理,此时如果来了中断,就会中止A指令集的处理,开始执行指令集的B的处理,直到指令集B处理完成后,重新回复到指令集A的处理,由于违反了上面指令集顺序执行不能打断的规则,导致被操作的硬件处于混乱状态,导致硬件死机,程序崩溃。另外传统的单片机做等待,基本都是用while循环不停询问ticks数值来控制时间,但是这样就会导致程序一直卡在该while循环等待函数中,导致响应变得缓慢,以至于无法快速响应外部事件。亦即,单片机在自身循环中检测到某些状态变化后会对硬件进行操作,且由于有中断事件对同一硬件进行操作,因此产生了竞态,导致操作硬件处于混乱状态,极有可能导致硬件死机。
技术实现思路
基于此,有必要提供一种单片机及其同步异步控制方法。一种单片机的同步异步控制方法,其包括以下步骤:将需要处理的事件归入事件队列,且将所述事件的索引映射到优先级队列;从所述优先级队列中确定当前最高优先级的事件作为待办事件,根据所述待办事件的索引映射到所述事件队列;从所述事件队列取出所述待办事件且处理所述待办事件。上述单片机的同步异步控制方法,避免了单片机在自身循环中检测到某些状态变化后会对硬件进行操作而产生竞态且导致操作硬件处于混乱状态,将发生的事件全部压入优先级队列和事件队列中,由于处理事件的先后顺序,因此可以延迟一小段时间,然后在循环的特定位置从事件队列中取出事件,并对硬件进行操作,这样保证了程序对硬件操作的一致性,有利于保持系统的健壮性,也有利于单片机快速响应外部事件。在其中一个实施例中,采用事件闭包处理方式处理所述待办事件;其中,所述事件闭包处理方式包括:根据所述待办事件,确定执行所述待办事件所需的所有步骤,在处理过程中保证所有步骤处理等待时间和顺序执行。在其中一个实施例中,所述处理等待时间采用ticks自增方式,在每次循环到当前位置时判断ticks计数器是否大于等待事件或者操作时间。在其中一个实施例中,将需要处理的事件归入事件队列,包括:在检测到某硬件状态发生变化时将需要处理的事件归入事件队列,及/或,在发生中断时将需要处理的事件归入事件队列。在其中一个实施例中,从所述优先级队列中确定当前最高优先级的事件作为待办事件,包括:采用循环遍历所述优先级队列确定当前最高优先级的事件作为待办事件。在其中一个实施例中,在所述优先级队列中没有事件或者所述待办事件正在处理中,则直接跳过该次遍历操作。在其中一个实施例中,所述同步异步控制方法还包括步骤:预设置事件队列,所述事件队列存储需要处理的事件;预设置优先级队列,所述优先级队列存储需要处理的事件的优先级,且通过索引建立与所述事件队列中的各事件的映射关系。在其中一个实施例中,从所述事件队列取出所述待办事件,包括:从所述事件队列取出所述待办事件,将所述待办事件拆分到一个指令集,所述指令集包含具有指定顺序的多个指令,而且每个指令具有一定操作时间和等待时间。在其中一个实施例中,处理所述待办事件,包括:采用所述指令集顺序处理所述待办事件的各个步骤。一种单片机,其采用任一项所述同步异步控制方法实现。附图说明图1为本申请一实施例的流程示意图。图2为本申请另一实施例的流程示意图。具体实施方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似改进,因此本申请不受下面公开的具体实施例的限制。需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的,并不表示是唯一的实施方式。除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本申请。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。在其中一个实施例中,一种单片机的同步异步控制方法,如图1所示,其包括以下步骤:将需要处理的事件归入事件队列,且将所述事件的索引映射到优先级队列;从所述优先级队列中确定当前最高优先级的事件作为待办事件,根据所述待办事件的索引映射到所述事件队列;从所述事件队列取出所述待办事件且处理所述待办事件。上述单片机的同步异步控制方法,避免了单片机在自身循环中检测到某些状态变化后会对硬件进行操作而产生竞态且导致操作硬件处于混乱状态,将发生的事件全部压入优先级队列和事件队列中,由于处理事件的先后顺序,因此可以延迟一小段时间,然后在循环的特定位置从事件队列中取出事件,并对硬件进行操作,这样保证了程序对硬件操作的一致性,有利于保持系统的健壮性,也有利于单片机快速响应外部事件。在其中一个实施例中,一种单片机的同步异步控制方法,其包括以下实施例的部分步骤或全部步骤;即,所述同步异步控制方法包括以下的部分技术特征或全部技术特征。在其中一个实施例中,所述同步异步控制方法包括优先级队列,保存要处理事件的优先级的队列,保证和事件队列的映射关系;在其中一个实施例中,所述同步异步控制方法包括事件队列,保存要处理事件的队列;在其中一个实施例中,所述同步异步控制方法还包括步骤:预设置事件队列,所述事件队列存储需要处理的事件;预设置优先级队列,所述优先级队列存储需要处理的事件的优先级,且通过索引建立与所述事件队列中的各事件的映射关系。即,所述同步异步控制方法包括步骤:预设置事件队列,所述事件队列存储需要处理的事件;预设置优先级队列,所述优先级队列存储需要处理的事件的优先级,且通过索引建立与所述事件队列中的各事件的映射关系;将需要处理的事件归入事件队列,且将所述事件的索引映射到优先级队列;从所述优先级队列中确定当前最高优先级的事件作为待办事件,根据所述待办事件的索引映射到所述事件队列;从所述事件队列取出所述待办事件且处理所述待办事件。其余实施例以此类推。进一步地,在其中一个实施例中,所述优先级队列按发生顺序存本文档来自技高网
...

【技术保护点】
1.一种单片机的同步异步控制方法,其特征在于,包括以下步骤:/n将需要处理的事件归入事件队列,且将所述事件的索引映射到优先级队列;/n从所述优先级队列中确定当前最高优先级的事件作为待办事件,根据所述待办事件的索引映射到所述事件队列;/n从所述事件队列取出所述待办事件且处理所述待办事件。/n

【技术特征摘要】
1.一种单片机的同步异步控制方法,其特征在于,包括以下步骤:
将需要处理的事件归入事件队列,且将所述事件的索引映射到优先级队列;
从所述优先级队列中确定当前最高优先级的事件作为待办事件,根据所述待办事件的索引映射到所述事件队列;
从所述事件队列取出所述待办事件且处理所述待办事件。


2.根据权利要求1所述同步异步控制方法,其特征在于,采用事件闭包处理方式处理所述待办事件;
其中,所述事件闭包处理方式包括:根据所述待办事件,确定执行所述待办事件所需的所有步骤,在处理过程中保证所有步骤处理等待时间和顺序执行。


3.根据权利要求2所述同步异步控制方法,其特征在于,所述处理等待时间采用ticks自增方式,在每次循环到当前位置时判断ticks计数器是否大于等待事件或者操作时间。


4.根据权利要求1所述同步异步控制方法,其特征在于,将需要处理的事件归入事件队列,包括:在检测到某硬件状态发生变化时将需要处理的事件归入事件队列,及/或,在发生中断时将需要处理的事件归入事件队列。


5.根据权利要求1所述同步异步控制方法,其特征在于,从所述优先级...

【专利技术属性】
技术研发人员:龚仕哲
申请(专利权)人:惠州志顺电子实业有限公司
类型:发明
国别省市:广东;44

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

1