μC/OS-II显示控制系统设计

发布者:technology1最新更新时间:2011-11-22 关键字:μCOS-II  显示控制系统 手机看文章 扫描二维码
随时随地手机看文章

引 言
   
随着性能的提高和价格的降低,越来越多的嵌入式应用采用了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为经过确认的按键中断。如果判断错误,则清除键值。最后,打开按键中断,重新等待新的按键中断。[page]

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多级菜单显示方法进行了研究,并提出了一种简单、可靠性高、维护方便的实现方案。该方法已经应用于某产品的开发设计中,效果较好,运行稳定可靠。

 

关键字:μCOS-II  显示控制系统 引用地址:μC/OS-II显示控制系统设计

上一篇:基于嵌入式系统的虚拟仪器设计
下一篇:爱特梅尔发布首个带有LF-RFID阅读器的单一封装微控制器

推荐阅读最新更新时间:2024-05-02 21:43

双RAM技术的LED显示控制系统设计
引言 长条的LED显示屏在生活中应用得很多,这种显示屏的控制电路简单,扫描线有限,显示信息量也不是很大。当显示信息量比较大时,若采用一般的长屏显示屏,显示信息过慢,即使采用超长屏的显示屏,其数据输出速率也很低,而且显示屏的刷新频率也不一定能满足显示需求。矩形显示屏显示的信息量大,并且可以按需要扩展显示屏的高度,不存在频率上的限制,能够弥补长条显示屏显示信息时存在的不足。本设计使用双RAM技术来组织用于控制矩形显示屏的控制系统数据,提高了信息垂直循环显示时的存储器效率,大幅度降低了对数据存储器的占用率,并且对刷新频率的要求也不是很高。 1 显示数据组织 需要显示的区域小于或等于实际显示区域时,采用静态显示即可。但大多时候需
[工业控制]
双RAM技术的LED<font color='red'>显示</font>屏<font color='red'>控制系统</font>设计
基于AVR单片机的LED显示控制系统的研究
  1 引言   LED 显示屏是八十年代后期在全球迅速发展起来的新型信息传播媒体,是集微电子技术、光电子技术、计算机技术、信息处理技术于一体的大型显示系统。它以其色彩鲜艳、动态范围广、亮度高、寿命长、工作性能稳定而日渐成为显示媒体中的佼佼者,广泛应用于广告、证券、信息传播、新闻发布等方面, 是目前国际上较为先进的宣传显示媒体 .本文提出了一种主从式单片机的LED 显示屏解决方案, 该设计方案利用AVR 单片机自身的FLASH ROM 和RAM,外部无需任何存储电路,电路结构简单。   2 系统的工作原理及总体方案设计   2. 1 AVR 单片机   AVR 单片机是增强型内置FLASH 的RISC(ReducedIns
[电源管理]
基于AVR单片机的LED<font color='red'>显示</font>屏<font color='red'>控制系统</font>的研究
μC/OS-II显示控制系统设计
引 言     随着性能的提高和价格的降低,越来越多的嵌入式应用采用了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的应用非常广泛,如
[嵌入式]
单片机C8051F020在液晶显示控制系统中的应用
  在单片机系统设计中,LCM(液晶显示模块)人机交互界面的设计往往是很重要的一个环节。LCM可以用于智能仪器上的显示设定参数、状态提示符、检测结果和待输入参数等功能。本文结合电解质分析仪的设计要求,采用液晶显示模块YXD-12864A2LCM,研究并实现了以单片机C8051F020为基础的液晶显示的接口电路和程序设计,添加了按键系统,从而达到方便用户使用的目的。   1 电解质分析仪简介   本系统所设计的电解质分析仪(Electrolyte Analyzer)是一种具有高分辨率和高精度的仪器,可以与多种离子选择电极配套使用,可用自动方法测定样品中钾、钠、氯、钙离子的浓度和pH值。其结构方框图如图1所示。仪器采用单片机C80
[单片机]
单片机C8051F020在液晶<font color='red'>显示</font><font color='red'>控制系统</font>中的应用
基于μCOS-II的USB主机系统设计
μC/OS-II 是美国学者Lacrosse 设计的一个优秀的嵌入式实时操作系统,其代码绝大部分用ANSIC 语言编写,可用于8 位、16 位、32 位、甚至64 位微处理器、微控制器、数字信号处理器等,具有操作系统最基本最核心的功能,非常适于在小型系统和片上系统(SOC)中使用。USB 为个人电脑与嵌入式设备之间的连接提供了一种标准化、单一化的接口,其高效性和可靠性使得它已经成为嵌入式系统的首选接口。此LPC2378 读卡器具有卡票检测、消费扣钱、系统升级、下发黑名单、在线充值、余额查询等功能,但这些功能的实现都依赖于上位机的请求,业务应用模块只有在获得相应的请求后才能进行相应的处理并将处理结果返回给上位机。而USB 主机系统就
[单片机]
基于μ<font color='red'>COS-II</font>的USB主机系统设计
μC/OS-II的实时系统加速模块设计
随着科技的进步,嵌入式系统的功能逐渐由简单向复杂发展,开发难度也随之提高。嵌入式操作系统的使用,屏蔽了部分硬件信息,提供给开发者统一的平台,降低了开发难度,提高了代码的重复利用率。在一些特殊的领域(医疗、汽车、航空航天),对嵌入式系统的实时性要求非常高。在这些场合,任务必须在给定的时间内响应并正确完成。而实时操作系统RTOS(Real Time OperatiON System)本身的运行,必然会引起性能的下降,在任务数量增加时,这种下降更加明显。例如,使用uC/OS-II实时操作系统在PowerPC处理器上运行,在TimeTick(时钟节拍)周期为10 ?滋s、运行64个任务的情况下,TimeTick中断函数占用的CPU时间已达到
[单片机]
μC/OS-II的实时系统加速模块设计
基于LPC2131嵌入式系统μCOS-II实现CAN通讯
随着信息技术技术的飞速发展,ARM技术方案架构作为一种具备低功耗、高性能、以及小体积等特性的32位嵌入式微处理器,得到了众多的知识产权授权用户,其中包括世界顶级的半导体和系统公司。目前已被广泛的用于各类电子产品,汽车、消费娱乐、影像、工业控制、海量存储、网络、安保和无线等领域。被业界人士认为,基于ARM的技术方案是最具市场前景和市场优势的解决方案。 现场总线CAN是为解决现代汽车中众多的电控模块之间的数据交换而开发的一种串行通信协议。由于其具有多主站依据优先权进行总线访问,采用非破坏性总线仲裁,可完成对通信数据的错误检验和优先级判别,数据长度最多为8个字节,传输时间短,受干扰的概率低,抗干扰能力较强,通信速率最高可达1Mbit/
[单片机]
基于LPC2131嵌入式系统μ<font color='red'>COS-II</font>实现CAN通讯
嵌入式实时操作系统μC/OS-II在S12单片机上的移植
1 引言 在采用前后台系统软件设计模式的嵌入式系统中,主程序是一个无限循环,单任务顺序执行,通过设置一个或多个中断来处理异步事件。这种系统对于简单的应用是可以的,但对于实时性要求比较高的、处理任务较多的应用,就会暴露出实时性差、系统可靠性低、稳定性差等缺点。μC/OS-II 是一个源代码公开、可移植、可裁剪的实时多任务操作系统,具有低成本、稳定可靠、实时性好等优点,是专门针对微处理器和微控制器设计的实时内核,它的内核可以做到很小,很适合在单片机系统上移植。移植了μC/OS-II 的嵌入式系统可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。本文选用飞思
[单片机]
嵌入式实时操作系统μC/OS-II在S12单片机上的移植
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved