嵌入式系统延迟响应解决方法及装置的制作方法

文档序号:6587529阅读:256来源:国知局
专利名称:嵌入式系统延迟响应解决方法及装置的制作方法
技术领域
本发明涉及一种嵌入式系统延迟响应的解决方法及装置,尤其是涉及一种嵌入式系统按 键延迟响应的解决方法,属于嵌入式系统应用技术领域。
背景技术
目前,嵌入式系统在机顶盒、数字电视机、家庭网络设备等消费类电子领域得到广泛的 应用。与通用计算机系统相比,嵌入式系统具有专业性强、实时性好、功耗低等优点。由于 消费类电子占用的资源通常较多,需要实现的功能较为强大,而嵌入式系统内存资源有限、 CPU响应速度较慢,因此,具有嵌入式系统的消费类电子产品的按键响应速度总是跟不上用 户的按键速度,尤其是在用户重复多次按同一键时,造成极大的延迟响应问题,导致系统当 前响应与用户最新要求不一致,严重影响用户的体验效果。为解决嵌入式系统的延迟响应问 题,现有很多产品采用了丢弃按键的方法。该方法虽然能够在一定程度上解决按键延迟响应 的问题,但又造成多次按键"不知所踪"、实现不了用户实际按键功能要求,同样影响用户 的体验效果。

发明内容
本发明的目的在于提供一种嵌入式系统延迟响应解决方法,以解决嵌入式系统按键响应 程序相对于用户按键的迟滞问题,提高嵌入式系统应用产品的性能,提升用户体验效果。 为解决上述技术问题,本发明采用以下技术方案予以实现
一种嵌入式系统延迟响应解决方法,其特征在于,所述嵌入式系统包括按键获取线程和 按键处理线程;
所述按键获取线程用于接收和保存按键信号,并在所述按键处理线程空闲时将所保存的 按键信号传输至所述按键处理线程;
所述按键处理线程用于处理所述按键获取线程传输的按键信号,并在处理完当前按键信 号、且无新的按键信号时进入空闲状态。
4根据本发明,所述按键获取线程在保存有按键信号后,发出读取数据请求,所述按键处 理线程在获得所述读取数据请求后,读取所述按键获取线程保存的按键信号,以实现线程的 同步及数据的安全访问。
根据本发明,所述按键获取线程保存的按键信号包括按键的键值及按键次数。
根据本发明,所述按键获取线程接收和保存按键信号的过程为
在判断有按键按下时,获取当前按下的按键的键值,并判断是否为第一次按键;
若为第一次按键,则保存所述当前按键的键值,并置按键次数为l;若不是第一次按键 ,则判断所述当前按键的键值是否与前次按键的键值相同;
在所述当前按键的键值与前次按键的键值相同时,将按键次数加l;在所述当前按键的 键值与前次按键的键值不相同时,保存当前按键的键值,并置按键次数为l。
根据本发明,所述按键获取线程接收和保存按键信号的过程还包括在判断没有按键按 下时,延时一定时间后,再继续扫描按键,判断是否有按键按下。
根据本发明,所述按键获取线程优选采用信号量实现线程同步,具体为在所述按键获 取线程保存有按键信号后,所述按键获取线程挂起所述信号量,发出读取数据请求;所述按 键处理线程获得所述按键获取线程有信号量挂起,则读取所述按键获取线程所保存的按键信 号。
优选的,所述信号量的值与所述按键获取线程保存的按键次数相对应。 根据本发明,所述按键处理线程在获得所述按键获取线程有信号量挂起时,先将所述信 号量复位,然后再读取所述按键获取线程所保存的按键信号。
本发明还提供了一种嵌入式系统延迟响应解决装置,所述装置包括按键获取单元和按键 处理单元;所述按键获取单元用于接收和保存按键信号,并将所保存的按键信号传输至所述 按键处理单元,包括顺序连接的按键扫描模块、按键类型判断模块及按键缓冲模块;所述按 键处理单元用于处理所述按键获取单元传输的按键信号,包括顺序连接的按键信号获取模块 和按键处理模块。
根据本发明,所述装置还包括用于所述按键获取单元和所述按键处理单元同步的线程同 步模块,所述线程同步模块一端连接所述按键缓冲模块,另一端连接所述按键信号获取模块
与现有技术相比,本发明的优点和积极效果是通过在嵌入式系统中设置按键获取线程 和按键处理线程两个线程,在按键处理线程处理按键时,由按键获取线程接收并保存用户按 键信号,并在按键处理线程处理完毕当前按键后,将所保存的用户按键信号一次性提交至按键处理线程进行处理,能保证按键响应的相对及时,使得嵌入式系统按键响应速度与用户按 键要求保持高度一致, 一定程度上解决了按键响应延迟于用户按键的问题。


图l是本发明嵌入式系统延迟响应解决方法一个实施例中按键获取线程的工作流程图2是与图1实施例的按键获取线程相对应的按键处理线程的工作流程图3是本发明嵌入式系统延迟响应解决装置一个实施例的结构框图。
具体实施例方式
下面结合附图对本发明作进一步详细的说明。
本发明为解决嵌入式系统延迟响应的问题,针对嵌入式系统的特点,提出了两线程的解 决方法,具体为包括按键获取线程和按键处理线程,其中,所述按键获取线程用于接收和
保存按键信号,所述按键处理线程用于处理所述按键获取线程传输的按键信号。在按键处理 线程处理按键过程中,由按键获取线程接收、保存在这段时间内接收的按键信号,并在所述 按键处理线程空闲时将所保存的按键信号一次性全部传输至所述按键处理线程进行处理,减 少了按键等待处理的时间,且不易丢弃按键, 一定程度上解决了按键延迟响应的问题。而按 键处理线程在处理完当前按键信号、且无新的按键信号输入时进入空闲状态,等待新的按键
信号的到来,并出让CPU资源。
此外,为保证两线程的同步及数据访问的安全性,采用同步及数据安全访问处理机制,
所述按键获取线程在保存有新的按键信号后,向所述按键处理线程发出读取数据的请求;所 述按键处理线程在获得所述读取数据请求后,再读取所述按键获取线程保存的按键信号。同 步及数据安全访问处理机制可以根据嵌入式系统的性能及其所应用产品的特点采取不同的方 式,如信号量方式、变量査询方式等。
图l示出了本发明嵌入式系统延迟响应解决方法一个实施例中按键获取线程的工作流程 图,图2则示出了所述实施例中按键处理线程的工作流程图,所述实施例采用信号量方式实 现线程同步与数据安全访问。下面结合流程图1和流程图2对该实施例的延迟响应解决方法进 行详细的阐述。
所述实施例中的按键获取线程流程包括下述各步骤
步骤S101:按键获取线程流程开始。步骤S102:按键获取线程扫描按键。
步骤S103:根据扫描结果判断是否有键按下。若有键按下,执行步骤S105;若没有键按
下,执行步骤S104。
步骤S104:在没有按键按下时,延时10ms后,转至步骤S102继续扫描按键。延时时间可 以根据实际情况来设定。
步骤S105:在有键按下时,获取按键的键值。
步骤S106:判断当前按键是否为第一次按键。若是第一次按键,执行步骤S107,否则转 至步骤S108。
步骤S107:保存新的按键的键值,也即当前按键的键值,并置按键次数值为l,将保存 的按键键值及按键次数保存在缓冲区内,然后执行步骤SllO。
步骤S108:在判断当前按键不是第一次按键时,判断当前按键键值是否与前次按键键值 相同。若相同,执行步骤S109;如不相同,转至步骤S107,保存新的按键的键值,并置与所 述键值对应的按键次数为l 。
步骤S109:在当前按键键值与前次按键键值相同时,不改变所保存的按键的键值,而只 将与所保存的按键键值相对应的按键次数加1 ,然后执行步骤S 110。
步骤S110:在按键获取线程保存有包括按键键值及按键次数的按键信号后,所述按键获
取线程将挂起信号量,向按键处理线程发出读取数据的请求。所述信号量的初始值为零,其 值根据按键获取线程保存的按键次数而变化,例如,信号量的值等于按键次数值,按键次数 值改变,信号量的值相应地变化。
上述流程是按键获取线程在按键处理线程处理按键的时间段内所执行的操作的概括。一 般而言,如果按键处理线程处于等待状态,在按键获取线程获得一次按键后,即可挂起信号 量,通知按键处理线程读取按键信号进行处理,不会存在按键次数累加的过程。而只有在按 键处理线程处理按键的过程中,用户执行了同一个按键的多次操作,则按键获取线程将保存 在按键处理线程处理按键的时间内最后接收的按键键值及按键次数,并挂起信号量等待按键 处理线程读取按键信号。考虑到用户在操作不同按键时,本身存在一定的操作时间,这段操 作时间足够按键处理线程来响应,也就是说,按键处理线程对用户不同按键的操作基本没有 响应延迟。而用户如果对同一个按键连续操作多次,操作时间较短,容易造成延迟响应。因 此,针对该现状,所述实施例的按键获取线程采取了在按键类型发生变化时,只保留最新的 按键及其次数,处理过程简单,占用系统资源较少,且能够解决系统对按键延迟响应的问题
7所述实施例中的按键处理线程流程包括下述各步骤 步骤S201:按键处理线程流程开始。 步骤S202:等待按键获取线程的信号量挂起。
步骤S203:判断是否有信号量挂起。如果有信号量挂起,执行步骤S204;若没有信号量 挂起,转至步骤S202继续等待。在该实施例中,是判断所述信号量的值是否大于等于l,只
有在信号量的值大于等于l时,才会进行按键处理过程。
步骤S204:在有信号量挂起时,首先将挂起的信号量复位,以表明已经处理该次按键事
件。在该实施例中,由于定义了信号量的初始值是零,所以是执行将信号量清零的操作。
步骤S205:从所述按键获取线程读取按键键值及按键次数。 步骤S206:调用相应的按键处理程序一次性处理按键。 步骤S207:按键处理线程流程结束。
需要说明的是,上述按键处理线程是以一次处理过程为例作了介绍,实际处理过程中, 在按键处理线程处理执行完一次按键处理过程后,会继续等待信号量挂起,即等待信号量的
值大于等于l,在等待的时间内,将出让嵌入式系统CPU资源。
图3示出了本发明嵌入式系统延迟响应解决装置一个实施例的结构框图,该实施例延迟 响应解决装置与图1和图2所示实施例的嵌入式系统延迟响应解决方法相对应。
所述实施例的延迟响应解决装置包括用于接收和保存按键信号的按键获取单元及用于处 理所述按键获取单元传输的按键信号的按键处理单元。
所述按键处理单元包括顺序连接的按键扫描模块、按键类型判断模块及按键缓冲模块。 按键扫描模块用于扫描按键,判断是否有按键按下。在按键扫描模块判断有按键按下时,按 键类型判断模块将判断按键的类型,获取按键键值及与所述按键键值对应的按键次数,然后 将按键键值及按键次数传至按键缓冲模块中保存。
所述按键处理单元包括顺序连接的按键信号获取模块和按键处理模块,所述按键信号获 取模块从所述按键缓冲模块中读取保存的按键键值及按键次数,按键处理模块根据按键获取 模块所获取的按键信号对按键进行处理,实现相应的按键功能。
所述实施例为保证按键获取单元与按键处理单元之间的同步及两者之间数据访问的安全 性,还设置了线程同步模块,所述线程同步模块一端连接所述按键缓冲模块,另一端连接所 述按键信号获取模块。所述线程同步模块根据所述按键缓冲模块保存的按键信号,设置相应 的线程同步信号,如信号量,控制所述按键信号获取模块从所述按键缓冲模块中读取按键信 号。当然,以上所述仅是本发明的一种优选实施方式而已,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和 润饰也应视为本发明的保护范围。
权利要求
1.一种嵌入式系统延迟响应解决方法,其特征在于,所述嵌入式系统包括按键获取线程和按键处理线程;所述按键获取线程用于接收和保存按键信号,并在所述按键处理线程空闲时将所保存的按键信号传输至所述按键处理线程;所述按键处理线程用于处理所述按键获取线程传输的按键信号,并在处理完当前按键信号、且无新的按键信号时进入空闲状态。
2.根据权利要求l所述的嵌入式系统延迟响应解决方法,其特征在于 ,所述按键获取线程在保存有按键信号后,发出读取数据请求,所述按键处理线程在获得所 述读取数据请求后,读取所述按键获取线程保存的按键信号,以实现线程的同步。
3.根据权利要求2所述的嵌入式系统延迟响应解决方法,其特征在于 ,所述按键获取线程保存的按键信号包括按键的键值及按键次数。
4.根据权利要求3所述的嵌入式系统延迟响应解决方法,其特征在于 ,所述按键获取线程接收和保存按键信号的过程为在判断有按键按下时,获取当前按下的按键的键值,并判断是否为第一次按键; 若为第一次按键,则保存所述当前按键的键值,并置按键次数为l;若不是第一次按键 ,则判断所述当前按键的键值是否与前次按键的键值相同;在所述当前按键的键值与前次按键的键值相同时,将按键次数加l;在所述当前按键的 键值与前次按键的键值不相同时,保存当前按键的键值,并置按键次数为l。
5.根据权利要求4所述的嵌入式系统延迟响应解决方法,其特征在于 ,所述按键获取线程接收和保存按键信号的过程还包括在判断没有按键按下时,延时一定 时间后,再继续扫描按键,判断是否有按键按下。
6.根据权利要求3至5中任一项所述的嵌入式系统延迟响应解决方法 ,其特征在于,所述按键获取线程采用信号量实现线程同步;在所述按键获取线程保存有按 键信号后,所述按键获取线程挂起所述信号量,发出读取数据请求;所述按键处理线程获得所述按键获取线程有信号量挂起,则读取所述按键获取线程所保存的按键信号。
7.根据权利要求6所述的嵌入式系统延迟响应解决方法,其特征在于 ,所述信号量的值与所述按键获取线程保存的按键次数相对应。
8.根据权利要求6所述的嵌入式系统延迟响应解决方法,其特征在于 ,所述按键处理线程在获得所述按键获取线程有信号量挂起时,先将所述信号量复位,然后 再读取所述按键获取线程所保存的按键信号。
9. 一种嵌入式系统延迟响应解决装置,其特征在于,所述装置包括 按键获取单元和按键处理单元;所述按键获取单元用于接收和保存按键信号,并将所保存的 按键信号传输至所述按键处理单元,包括顺序连接的按键扫描模块、按键类型判断模块及按 键缓冲模块;所述按键处理单元用于处理所述按键获取单元传输的按键信号,包括顺序连接 的按键信号获取模块和按键处理模块。
10.根据权利要求9所述的嵌入式系统延迟响应解决装置,其特征在 于,所述装置还包括用于所述按键获取单元和所述按键处理单元同步的线程同步模块,所述 线程同步模块一端连接所述按键缓冲模块,另一端连接所述按键信号获取模块。
全文摘要
本发明公开了一种嵌入式系统延迟响应解决方法及装置,所述嵌入式系统包括按键获取线程和按键处理线程,所述按键获取线程用于接收和保存按键信号,并在所述按键处理线程空闲时将所保存的按键信号传输至所述按键处理线程;所述按键处理线程用于处理所述按键获取线程传输的按键信号,并在处理完当前按键信号、且无新的按键信号时进入空闲状态。应用本发明所述的方法,可以解决嵌入式系统按键响应程序相对于用户按键的迟滞问题,提高嵌入式系统应用产品的性能,提升用户体验效果。
文档编号G06F9/46GK101645023SQ20091030695
公开日2010年2月10日 申请日期2009年9月14日 优先权日2009年9月14日
发明者宋敬彬, 李晓兰 申请人:青岛海信宽带多媒体技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1