当前位置:首页 > 工业控制 > 工业控制
[导读]引 言 随着性能的提高和价格的降低,越来越多的嵌入式应用采用了ARM处理器。在强大功能及丰富外设的支持下,嵌入式实时操作系统凭借较高的开发效率、可维护性和可靠性成为开发设计的理想选择。 μC/OS-

引 言
   
随着性能的提高和价格的降低,越来越多的嵌入式应用采用了ARM处理器。在强大功能及丰富外设的支持下,嵌入式实时操作系统凭借较高的开发效率、可维护性和可靠性成为开发设计的理想选择。
    μC/OS-II是一个完整的、可移植、可裁减的占先式实时多任务内核。它是用ANSI C语言编写的,包含一小部分汇编语言代码,可以供不同架构的微处理器使用。μC/OS由美国人Jean J.Labrosse于1992年完成,1998年发展到μC/OS-II,目前的版本为μC/OS-II v2.83。2000年,μC/OS得到美国航空管理局(FAA)的认证,可以用于飞行器中。作为一个典型的嵌入式操作系统,μC/OS-II的应用非常广泛,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等等。
    本文主要讨论了μC/OS-II环境下中断按键消抖处理及LCD多级菜单显示的实现问题,并通过一款产品的实例设计阐述了中断按键的处理流程以及多级菜单显示的程序框架。
 

1 显示控制系统硬件设计
    本设计采用基于Cortex-M3架构的ARM处理器LM3S1960和液晶显示器HS240128A作为显示控制系统的核心,按键采用中断的方式。显示控制系统电路原理图如图1所示。

    LM3S1960是Luminary公司推出的高性价比微处理器。它具有256 KBFlash,64 KB RAM,4个32位定时器,6个运动控制PWM,3个UART,2个I2C,2个SSI以及60个用户可用I/O。LM3S1960最高运行频率为50 MHz,其所有GPIO输入可触发中断,支持IRDA的UART,非常适合嵌入式控制系统。
    HS240128A是240×128图形点阵液晶显示模块,采用T6963C作为内置控制器,内置字符发生器和32 KB显示缓冲区,具有接口简单、控制指令集功能齐全的特点。
 

2 中断按键消抖处理
   
在按键数目较多的情况下,一般采用扫描查询的方式。本设计中按键全部采用中断的方式,主要是考虑到按键数目不多,且处理器的每一个引脚都具有中断功能,实现简单,响应速度快。
    在按键的过程中容易产生抖动,没有按键按下有时也可能会有干扰脉冲,如果不加以处理,容易引起误操作。所以,消除抖动是按键处理的必要过程。在一般的处理器中,消抖处理多采用延时判断的方法,这种方法不适合在操作系统中实现。因为在中断中加入大的时延,会大大降低系统的实时性和响应速度,所以本设计采用图2所示的处理方法。

    图2(a)为按键中断处理程序流程。为了提高中断的实时性,在中断处理过程中尽可能进行少的操作。本设计中只进行了保存键值和发送按键中断信号量的操作,大大提高了中断响应的实时性。
    图2(b)为按键处理任务流程。在完成初始化后,任务开始等待中断发过来需要判断的原始按键值的信号量()SSemPend(C)SKeyRawSem,O,&err)。其中的参数OSKeyRawSem是原始按键中断信号量。如果没有信号量发过来,那么任务会在这里被挂起。接收到后首先关闭按键中断,进行系统延时OSTimeDlyHMSM(0,0,0,JitterTime),JitterTime是延时时间。在这个延时的过程中,会进行任务的调度,本任务也会被挂起,直到延时结束,重新被加入等待任务列表。在延时结束任务重新获得CPU后,进行按键的再次判断,判断是否真的发生了按键中断。如果判断正确,则需要等待按键的松开。在判断是否松开的过程中,同样加入了系统延时判断OSTimeDly-HMSM(0,0,0,CheckTime),CheckTime是每次检测延时的时间。按键松开后,任务发送按键信号量给其他任务使用OSSemPost(OSKeySem),其中OSKeySem为经过确认的按键中断。如果判断错误,则清除键值。最后,打开按键中断,重新等待新的按键中断。

3 LCD多级菜单显示
    对于多级菜单的编写,控制关系比较复杂,特别是对于不同的界面,人机交互的内容一般都不相同。所以在操作系统实现时,一般把每一级菜单的实现都作为一个任务分别设计。这样思路清晰,不容易出现问题,而且方便删减和增加菜单项,也便于程序的维护和更新。主菜单任务循环体内程序如下:


    程序说明如下:
    ①在任务开始时判断系统模式SystemMode是否为主菜单模式SysMode_MainMenu。如果不是,那么就需要把主菜单显示任务挂起,直到从其他任务返回。
    ②等待按键信号量OSKeySem,根据用户的按键执行相应的操作,RfreshTime是菜单的刷新时间。信号量等待函数在RfreshTime时间内等待,如果等待时间到了按键还没有操作,那么它继续执行下面的程序,err变量会返回错误的数值。
    ③如果②中的err返回没有错误,说明在刷新时间内发生了按键中断,那么进入按键的操作处理程序。
    ④根据键值变量KeyNumber进行相应的操作,例如确定按键的处理、返回按键的处理等。
    ⑤假如是确定键KEY_OK按下,那么首先把系统子菜单的编号SubMenuNumber赋给SystemMode变量,并进行相应的初始化操作。
    ⑥例如是XXXX子菜单,那么在初始化完成后发送信号量OSSemPost(OSDisXXXXSem)。其中,OSDisXXXXSem是子菜单XXXX的显示信号量。
    ⑦目的是调用主菜单显示函数。之所以再次进行判断,是因为在⑥中发送信号量要进行系统调度。如果子系统任务优先级比主菜单高,主菜单就会被挂起而去执行子菜单,在子菜单执行间隙会重新调度回来进行主菜单显示,那么就造成显示错误。
    子菜单显示的任务流程和主菜单类似。在按返回键时发送启动主菜单的信号量OSSemPost(OSDisMain-MenuSem),系统就会重新返回到主菜单。
 

结 语
    本文对μC/OS-II操作系统下的中断按键消抖处理及LCD多级菜单显示方法进行了研究,并提出了一种简单、可靠性高、维护方便的实现方案。该方法已经应用于某产品的开发设计中,效果较好,运行稳定可靠。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能

武汉2024年5月15日 /美通社/ -- 北京时间4月26日-5月4日,2024 VEX 机器人世界锦标赛于美国得克萨斯州达拉斯市举办。本届 VEX 世锦赛为期九天,设有 VIQRC 小学组/初中组、V5RC 初中组/...

关键字: 机器人 BSP RC POWERED

上海2024年5月15日 /美通社/ -- 由生成式人工智能(AI)驱动的临床阶段生物医药科技公司英矽智能宣布,与复星医药(600196.SH;02196.HK)合作开发的潜在"全球首创"候选药物IS...

关键字: ISM BSP PC 人工智能

上海2024年5月13日 /美通社/ -- 5月8日,浦东新区国资委组织陆家嘴集团等9家区属企业与立邦中国召开合作交流会,旨在贯彻落实浦东新区区委、区政府工作要求,进一步放大进博会溢出带动效应,持续扩大区属企业与进博会重...

关键字: BSP 数字化 自动化立体仓库 智慧园区

上海2024年5月13日 /美通社/ -- 在数字化时代,高效的税务管理和ERP系统成为企业发展的关键。为了满足这一需求商应信息科技与Exact Software 易科软件就金四全电票税系统与ERP系统集成及商务合作建立...

关键字: AC 软件 BSP 数字化

北京2024年5月13日 /美通社/ -- 5月11日,鲲鹏昇腾开发者大会2024期间,华为举办"昇思AI框架及大模型技术论坛",软通动力数字基础设施与集成事业部总经理谢睿受邀出席、软通动力...

关键字: AI 模型 BSP 精度
关闭
关闭