《毕业设计(论文)基于ucos2的触摸屏软件的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于ucos2的触摸屏软件的设计.doc(38页珍藏版)》请在三一办公上搜索。
1、目 录摘 要IABSTRACTII第1章 绪论11.1 课题背景11.2触摸屏技术现状11.3技术前景与展望31.4 vc+6.0特点与简介3第2章 触摸屏简介52.1 触摸屏概述52.2 触摸屏得基本技术特性52.2.1透明性能52.2.2绝对坐标系统52.2.3检测与定位52.3触摸屏原理62.3.1触摸显示模块原理62.3.2 逻辑控制与通讯模块原理82.4触摸屏使用及维护要点82.5触摸屏技术的实际应用9第3章 ucos2系统简介103.1 ucos II 简介103.2 ucos II工作原理103.2.1 ucos II任务管理103.2.2 ucos II时间管理113.2.3
2、ucos II内存管理113.2.4 ucos II任务间通信与同步113.2.5 ucos II任务调度113.3 ucos II的组成部分123.4嵌入式系统133.4.1 嵌入式系统的概念133.4.2 嵌入式系统的特点133.5嵌入式操作系统143.5.1嵌入式操作系统的特点143.5.2嵌入式操作系统的基本功能143.5.3实时操作系统和分时操作系统14第4章 电子点菜单的设计154.1 总体设计154.2系统交互功能的设计164.2.1系统构架164.2.2 操作系统对触摸屏的支持174.2.3触摸屏电路174.2.4 触摸屏的控制电路184.3 硬件设计194.4 软件设计214
3、.3.1 ucos2 操作系统的移植214.3.2触摸屏与显示器的配合算法224.3.3 触摸屏的坐标的确认234.5 VC模拟软件设计25第5章 总结31致 谢32参 考 文 献33毕 业 设 计 小 结34摘 要触摸屏的应用随着信息社会的发展越来越普遍,目前触摸屏产品在中国已开始形成了产业,本文专题介绍有关触摸屏的相关基础技术知识。随着多媒体信息查询的与日俱增,人们越来越多地谈到触摸屏,因为触摸屏作为一种最新的电脑输入设备,它是目前最简单、方便、自然的而且又适用于中国多媒体信息查询国情的输入设备,触摸屏具有坚固耐用、反应速度快、节省空间、易于交流等许多优点。利用这种技术,我们用户只要用手指
4、轻轻地指碰计算机显示屏上的图符或文字就能实现对主机操作,从而使人机交互更为直截了当,这种技术极大方便了那些不懂电脑操作的用户。这种人机交互方式。它赋予了多媒体以崭新的面貌,是极富吸引力的全新多媒体交互设备。随着城市向信息化方向发展和电脑网络在日常生活中的渗透,信息查询都会以触摸屏显示内容可触摸的形式出现。所以对于触摸屏软件的设计是非常具有实际意义和发展前景的一项课题。本论文研究基于ucos2的触摸屏软件的设计,首先了解触摸屏的现状和发展前景,研究触摸屏的特点为触摸屏的软件设计打下基础。其次进行对ucos2平台的学习,了解他的特点、性能、技术指标、支持软件。再次,全面学习嵌入式平台的特点、性能支
5、持以及注意事项。最后利用VC模拟在ucos2平台下的软件界面设计。关键词:触摸屏ucos2;vc6.0;软件设计。ABSTRACT Application of touch screen the development of information society more and more common, the current touch-screen products in China has started to form the industry, this presentation based on the touch screen of the relevant technica
6、l knowledge.With the ever-increasing multimedia information search, more and more people spoke touchscreen, as the latest touch-screen as a computer input device, which is the most simple, convenient, natural, and they apply to Chinas national conditions of multimedia information query inputequipmen
7、t, touch screen with a durable, fast response, space-saving, easy to communicate and many other advantages.With this technology, our users pointed a finger gently touching icons on a computer screen or text on the host OS can be achieved, thus making the machine interaction more straightforward, thi
8、s technique greatly facilitate those who do not knowcomputer users.The human-computer interaction.It gives the media a new look, a very attractive new multimedia interactive devices. With the city to develop in the direction of information and computer network penetration in their daily lives, infor
9、mation inquiry will be the touch screen - display the form of touch.Therefore, the design of software for the touch screen is of practical significance and prospects for development of a subject. In this study, the touch-screen based ucos2 software design, the touch screen to first understand the cu
10、rrent situation and development prospects of the touch screen features of the software for the touch-screen basis.Secondly, the study carried out on ucos2 platform, and understand the characteristics, performance, technical indicators, support software.Again, a comprehensive study of the characteris
11、tics of embedded platforms, performance support, and considerations.Finally, VC simulation ucos2 platform software interface design.Keywords: touch screen; ucos2; vc6.0; software design.第1章 绪论1.1 课题背景无论你是在商场购物,还是在银行存取款,触摸式的自动服务器为你提供了方便快捷的服务,这就是我们所说的触摸屏。可在几年前,这一新东西还非常少见,在业内也没有触摸行业的说法。经过多年来的发展,触摸屏的功能已
12、从原先简单的查询导览发展成为集业务查询上网于为一体的触摸查询一体机,应用领域也从最初的邮电、商场到遍布各个行业众多领域。犹如 PC 从286、386 发展到奔腾机一样,触摸屏经历了从低档向高档发展的历程。从红外屏、四线电阻屏到电容屏,现在又发展到声波触摸屏、五线电阻触摸屏,性能越来越可靠,技术越来越先进。触摸屏在我国的应用范围非常广阔,主要有公共信息的查询,如电信局、税务局、银行、电力等部门的业务查询;城市街头的信息查询;此外还可广泛应用于领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等,将来,触摸屏还要走入家庭。1.2触摸屏技术现状随着各行业应用特点的不同,以前被忽
13、视了的红外屏电容屏,经过工艺改造,重又获得了新生。LCD 平板显示技术的发展使得红外屏的优势凸显出来,金融、证券等行业用户对此青睐有嘉。由于各种技术的触摸屏各具优缺点,而且设计的难度不同,各种屏的使用有了一定的时间先后。以国内应用来说,最先投入使用的是日本公司红外屏,其后是电阻屏、电容屏和声波屏。日本的MINATO 公司改进红外屏的光干扰问题,将分辨率提高到977X737,国内生产的红外屏存在的问题是分辨率低,只有64X48。另外前面也提到了,LCD 应用的扩大,LCD 技术和红外屏技术结合,完全满足了红外屏对平面的要求,使得红外屏重获生机。电阻屏的缺点是透光率差,表面易损。早期台湾PONIC
14、S 公司等的四线电阻屏易损问题经改进用镀膜来解决,但分辨率低,只有1024X768,使用范围受一定影响。美国ELO 公司推出的五线电阻屏在材质上有了大改进,完全采用钢化玻璃为基体,摈弃了四线电阻屏的多层结构,使透光率大大提高,表层防暴性能也有所增强,分辨率达4096X4096,完全适合作IE 浏览器等高清晰度的要求。电容屏考虑失真的问题,也采用镀膜技术,一定程度上克服了怕刮易损的缺点。声波屏的优点是明显的,但水滴灰尘的影响问题不解决,使用大受影响,改进的方法是加防尘条,或者在软件方面增加对污物的监控,准确识别出有效的操作和污物之间的区别。目前国内在触摸技术发展方面主要是应用在整机技术上。199
15、6 年,太古公司推出了拥有自主产权的触摸查询一体机KIOSK,成为国内第一家、全球第13 家KIOSK 制造商。随后触摸产品厂商也纷纷推出了各自的触摸查询一体机,各自拥有造型工艺。技术的发展也包括应用软件技术的成熟。触摸查询离不开触摸查询软件,太古公司开发出国内第一个触摸浏览软件TouchWeb,这使得国内的触摸行业不再仅仅停留在搬箱子的角色上。而且随着应用软件方面的进步,相继推出了公共信息查询系统和金融、邮政、城市信息港摸信息终端KIOSK 应用系统等,也使得触摸产品的应用范围从简单的查询扩大到集查询业务上网于一体,行业范围从公共事业、政府到事业单位、一般企业,甚至个人的掌上电脑,都是触摸产
16、品的天地。综观 IT 信息产品的发展,离不开两个基本要素:市场容量和价格。价格降低会产生一定的量的提升,但如果没有实实在在的市场基础,产品的普及、技术和行业的发展都无从谈起。触摸产品由于早期给人的印象仅是信息的查询,对行业用户来说只是可有可无的形象工程,必然影响市场容量。目前各触摸厂商们都在改进其产品的功能,加大了业务系统的份量。譬如,银行的KIOSK 一体机已经加入了微型打印机、读卡器等设备,功能上吸收了银行的补登存折、转帐等业务,使得系统不在仅仅停留于业务介绍和形象宣传。这一改动显然是有效的,银行系统对这类一体机需求旺盛,连专注于银行业务设备的南天公司都开发出了类似的一体机产品。目前一体机
17、已出现自助售票系统,应用到铁路公路的售票业务,这一进展是否预示着一体机会走上ATM 机或者自动售卖机的路子还不明确。由于触摸产品对开放式环境的适应性,商业系统对销售网络及形象宣传的考虑,ATM 和自动售卖机暂时无法替代KIOSK 一体机,不过业务型的一体机确定无疑是一种方向。在价格方面的进步主要来自于触摸屏技术和触摸软件的发展。由于目前各类屏各具优缺点,应用范围、应用规模俱受制约,用户可能只考虑使用的方便及寿命,生产商们却必须不断推陈出新,将更高性能更低价格的产品供应给用户。新的技术产生需要大量的积累,改造原有技术是目前的主流。就象红外屏的新生一样,声波屏的改进已经有了一个可喜景象,由于声波屏
18、能产生对压力的感受,无形中增加了控制手段,对屏功能的扩展十分有利,应用范围因此大大拓展。成熟的软件会使用户享受到两种优点:功能完善和低廉价格。随着产品在各行业应用市场的推进,对行业应用的理解不断强化,系统将越来越合体,而价格由于投入的递减将下降。触摸屏行业标准的制订不容忽视,这将有利于规模发展和合理竞争,对价格的优化有帮助。而各行业用户也需在目前条件下,缩减不必要的特殊要求,降低生产商的研发成本,加强在软件应用体系上的投入力度,使硬件产品化和规模化程度提高,应用系统水平提升,真正达到方便所有人,也方便行业用户的目标。1.3技术前景与展望触摸屏有着良好的抗干扰特性与应用稳定性,在工业生产线乃至日
19、常生活的不同应用环境下都有着广阔的应用前景,是目前电脑微型化应用的替代品。相信在不久的将来触摸屏一定会在工业控制领域发挥更为重要的作用,在生活领域变得更加人性化,使得我们的生活工作生产变得更加稳定、简洁、舒适。所以我们对于触摸屏的深入研究与应用推广也就显得格外的重要。1.4 vc+6.0特点与简介 VC+是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c+的一个开发平台.有些软件就是这个编出来的.另外还有VB,VF.只是使用不同语言.但是,vc+是Windows平台上的C+编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。
20、Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC+不是门语言,虽然它和C+之间有密切的关系,如果形象点比喻的话,可以把C+看作为一种“工业标准”,而VC+则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。VC+应用程序的开发主要
21、有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WIN API的相关内容为主线。要想学习好VC必须具备良好的C/C+的基础,必要的英语阅读能力也是必不可少的,因为大量的技术文档多以英文形式发布。VC基于C,C+语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 Windows平台无所不能。 最大缺点是开发效
22、率不高。 VC适用范围 1、 VC主要是针对Windows系统,适合一些系统级的开发,可以方便实现一些底 层的调用。在VC里边嵌入汇编语言很简单。2、 VC主要用在驱动程序开发3、 VC执行效率高,当对系统性能要求很高的时候,可用VC开发。4、 VC主要适用于游戏开发5、 VC多用于单片机,工业控制等软件开发,如直接对I/O地址操作,就要用C+。6、 VC适用开发高效,短小,轻量级的COM组件,DLL。比如WEB上的控件。7、 VC可以开发优秀的基于通信的程序。8、 VC可以开发高效灵活的文件操作程序。9、 VC可以开发灵活高效的数据库操作程序。10、 VC是编CAD软件的唯一选择!包括AUT
23、OCAD,UG的二次开发。11、VC在多线程、网络通信、分布应用方面,VC+有不可比拟的优势。第2章 触摸屏简介2.1 触摸屏概述触摸屏,是通过触摸式工业显示器把人和机器连为一体的智能化界面。它是替代传统控制按钮和指示灯的智能化操作显示终端。它可以用来设置参数,显示数据,监控设备状态,以曲线/动画等形式描绘自动化控制过程。更方便、快捷、表现力更强,并可简化为PLC的控制程序,功能强大的触摸屏创造了友好的人机界面。触摸屏作为一种特殊的计算机外设,它是目前最简单、方便、自然的一种人机交互方式。它赋予了多媒体以崭新的面貌,是极富吸引力的全新多媒体交互设备。2.2 触摸屏得基本技术特性2.2.1透明性
24、能 触摸屏是由多层的复合薄膜构成,透明性能的好坏直接影响到触摸屏的视觉效果。衡量触摸屏透明性能不仅要从它的视觉效果来衡量,还应该包括透明度、色彩失真度、反光性和清晰度这四个特性。 2.2.2绝对坐标系统 我们传统的鼠标是一种相对定位系统,只和前一次鼠标的位置坐标有关。而触摸屏则是一种绝对坐标系统,要选哪就直接点哪,与相对定位系统有着本质的区别。绝对坐标系统的特点是每一次定位坐标与上一次定位坐标没有关系,每次触摸的数据通过校准转为屏幕上的坐标,不管在什么情况下,触摸屏这套坐标在同一点的输出数据是稳定的。不过由于技术原理的原因,并不能保证同一点触摸每一次采样数据相同的,不能保证绝对坐标定位,点不准
25、,这就是触摸屏最怕的问题:漂移。对于性能质量好的触摸屏来说,漂移的情况出现的并不是很严重。 2.2.3检测与定位 各种触摸屏技术都是依靠传感器来工作的,甚至有的触摸屏本身就是一套传感器。各自的定位原理和各自所用的传感器决定了触摸屏的反应速度、可靠性、稳定性和寿命。2.3触摸屏原理2.3.1触摸显示模块原理 触摸屏系统一般包括触摸屏控制器(卡)和触摸检测装置两个部分。其中,触摸屏控制器(卡)的主要作用是从触摸点检测装置上接收触摸信息CONTROL ENGINEERING China版权所有,并将它转换成触点坐标,再送给CPU,它同时能接收CPU发来的命令并加以执行:触摸检测装置一般安装在显示器的
26、前端,主要作用是检测用户的触摸位置,并传送给触摸屏控制卡。 工业触摸屏具有很强的灵活性,可以按照设计要求更换或增加功能模块,扩展性强,可以满足复杂的工艺控制过程,甚至可以直接通过网络系统和PLC通讯,大大方便了控制数据的处理与传输,减少了维护量。下图为ROCKWELL Panel View Plus型工业触摸屏典型结构:图1 ROCKWELL Panel View Plus型工业触摸屏典型结构 电阻型触摸屏的屏体部分是一块与显示器表面相匹配的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层透明导电层,在两
27、层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。 当手指触摸屏幕时,平常相互绝缘的两层导电层就在触摸点位置有了一个接触,因其中一面导电层接通Y轴方向的5V均匀电压场,使得侦测层的电压由零变为非零,这种接通状态被控制器侦测到后,进行A/D转换,并将得到的电压值与5V相比即可得到触摸点的Y轴坐标,同理得出X轴的坐标,这就是所有电阻技术触摸屏共同的最基本原理。电阻类触摸屏的关键在于材料科技。电阻屏根据引出线数多少,分为四线、五线、六线等多线电阻触摸屏。电阻式触摸屏在强化玻璃表面分别涂上两层OTI透明氧化金属导电层,最外面的一层OTI涂层作为导电体,第二层OTI则经过精密的网络附
28、上横竖两个方向的+5V至0V的电压场,两层OTI之间以细小的透明隔离点隔开。当手指接触屏幕时,两层OTI导电层就会出现一个接触点,电脑同时检测电压及电流,计算出触摸的位置,反应速度为10-20 ms。 五线电阻触摸屏的外层导电层使用的是延展性好的镍金涂层材料,外导电层由于频繁触摸,使用延展性好的镍金材料目的是为了延长使用寿命,但是工艺成本较为高昂。镍金导电层虽然延展性好,但是只能作透明导体,不适合作为电阻触摸屏的工作面,因为它导电率高,而且金属不易做到厚度非常均匀,不宜作电压分布层,只能作为探层。 电阻型触摸屏是一种对外界完全隔离的工作环境,不怕灰尘和水汽,它可以用任何物体来触摸,可以用来写字
29、画画,比较适合工业控制领域及办公室内使用。电阻型触摸屏共同的缺点是因为复合薄膜的外层采用塑胶材料,不知道的人太用力或使用锐器触摸可能划伤整个触摸屏而导致报废。不过,在限度之内,划伤只会伤及外导电层,外导电层的划伤对于五线电阻触摸屏来说没有关系,而对四线电阻触摸屏来说是致命的。2.3.2 逻辑控制与通讯模块原理逻辑控制模块包含24V直流输入(18-32)电源,SDRAM内存及CF闪存卡、10/100BaseT以太网端口、可用于文件传送,打印及与可编程控制器通讯的232串行端口、可用于连接鼠标,键盘或打印计的USB端口。内部电路板上内嵌了CPU处理芯片,负责显示屏的输入、输出以及通讯数据的处理工作
30、。通讯模块负责特定的网络传输,以提高数据传输速率。2.4触摸屏使用及维护要点由于技术上的局限性和设备环境不同,屏幕上会由于水滴、灰尘等污染而无法正常使用,所以触摸屏幕也同普通机器一样需要定期保养维护。并且由于触摸屏是多种电器设备高度集成的触控一体机,所以在使用和维护时应注意以下的一些问题:1)在开机之前,用软干布擦拭屏幕;2)水滴或饮料落在屏幕上,会使软件停止反应,这是由于水滴和手指具有相似的特性,需把水滴擦去;3)触摸屏控制器能自动判断灰尘,但积尘太多会降低触摸屏的敏感性,只需用干布把屏幕擦拭干净;4)应用玻璃清洁剂清洗触摸屏上的脏指印和油污;5)严格按规程开、关电源,关闭电源则以相反的顺序
31、进行;6)硬盘上产生大量临时文件,如果经常断点或者不退出Windows就直接关机,很快就会导致硬盘错误。因此,需要定期运行Scandisk扫描硬盘错误,应用程序中最好能设置密码方式退出应用程序和Windows再断电;7)纯净的触摸屏程序是不需要鼠标光标的,光标只会使用户注意力不集中;8)应选择足够应用程序使用的最简单的防鼠标模式,因为复杂的模式需要牺牲延时和系统资源;9)视环境恶劣情况,定期打开机头清洁触摸屏的反射条纹和内表面。具体的方法是:在机内两侧打开盖板,可以找到松开扣住机头前部锁舌的机关,打开机关即可松开锁舌。抬起机头前部,可以看到触摸屏控制卡,拔下触摸屏电缆,向后退机头可卸下机头和触
32、摸屏。仔细看清楚固定触摸屏的方法后,卸下触摸屏清洗,注意不要使 用硬纸或硬布,不要划伤反射条纹。最后,按相反顺序和原结构将机头复原;10)触摸屏属于人机界面一体机,发热量比较大,必需采取对触摸屏本体及周边环境进行降温措施。2.5触摸屏技术的实际应用 触摸屏是通过外部物体接触面板上的按钮开关或参数设置来完成工艺流程的控制,面板上的操作内容可以人为的通过编程软件来进行编辑,同时可以把完成的工艺状态显示在触摸屏上,所以它既是一个输入设备,也是一个输出设备,其操作灵活,功能强大。PLC系统只需通过DP网络即可和触摸屏连接起来,减少了外部信号传输线路,实现了资源的有机整合。 随着这几年的大规模结构调整,
33、工厂的设备也进行了整体性改造,优化了工艺,减少了劳动强度,美化了操作环境,特别是一改以前的操作模式,全部启用新型的触摸系统代替老式的按钮或者指示灯,并优化了工艺流程,大大减少了设备故障率,保障了设备的稳定工作。稳定性非常强,操作人员操作也集中而且简单。第3章 ucos2系统简介3.1 ucos II 简介ucos II 是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。ucos II 的前身是 ucos ,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在嵌入式系统编程杂志的5 月和6 月刊上刊登的文章连载,并把ucos 的源码发布在该杂志的B B S
34、上。ucos 和ucos II 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将ucos II嵌人到开发的产品中。ucos II具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB 。ucos II 已经移植到了几乎所有知名的CPU 上。严格地说ucos II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务
35、间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于ucos II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。3.2 ucos II工作原理3.2.1 ucos II任务管理ucos II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。ucos II 中最多可以支持64 个任务,分别对应优先级063,其中0 为最高优先级。63为最低级,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可以使用的任务数有56个。ucos II提供了任务
36、管理的各种函数调用,包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等。系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,改任务仅给一个整形变量做累加运算;另一个是系统任务,它的优先级为次低,改任务负责统计当前cpu的利用率。3.2.2 ucos II时间管理ucos II的时间管理是通过定时中断来实现的,该定时中断一般为10毫秒或100毫秒发生一次,时间频率取决于用户对硬件系统的定时器编程来实现。中断发生的时间间隔是固定不变的,该中断也成为一个时钟节拍。ucos II要求用户在定时中断的服务程序中,调用系统提供的与时钟节拍相关的系统函数,例如中断级的任务切换函数,系统时
37、间函数。3.2.3 ucos II内存管理 在ANSI C中是使用malloc和free两个函数来动态分配和释放内存。但在嵌入式实时系统中,多次这样的错作会导致内存碎片,且由于内存管理算法的原因,malloc和free的执行时间也是不确定。ucos II中把连续的大快内存按分区管理。每个分区中包含整数个大小相同的内存块,但不同分区之间的内存快大小可以不同。用户需要动态分配内存时,系统选择一个适当的分区,按块来分配内存。释放内存时将该块放回它以前所属的分区,这样能有效解决碎片问题,同时执行时间也是固定的。3.2.4 ucos II任务间通信与同步对一个多任务的操作系统来说,任务间的通信和同步是必
38、不可少的。ucos II中提供了4中同步对象,分别是信号量,邮箱,消息队列和事件。所有这些同步对象都有创建,等待,发送,查询的接口用于实现进程间的通信和同步。3.2.5 ucos II任务调度ucos II 采用的是可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。 ucos II的任务调度是完全基于任务优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了简化系统设计,ucos II规定所有任务的优先级不同,因为任务的优先级也同时唯一标志了该任务本身。任务调度将在以下情况下发生:1) 高优先级的任务因为
39、需要某种临界资源,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度也称为任务级的上下文切换。2) 高优先级的任务因为时钟节拍到来,在时钟中断的处理程序中,内核发现高优先级任务获得了执行条件(如休眠的时钟到时),则在中断态直接切换到高优先级任务执行。这种调度也称为中断级的上下文切换。这两种调度方式在ucos II的执行过程中非常普遍,一般来说前者发生在系统服务中,后者发生在时钟中断的服务程序中。调度工作的内容可以分为两部分:最高优先级任务的寻找和任务切换。其最高优先级任务的寻找是通过建立就绪任务表来实现的。ucos II 中的每一个任务都有独立的堆栈空间,并有一个称为
40、任务控制块TCB(Task Control Block)的数据结构,其中第一个成员变量就是保存的任务堆栈指针。任务调度模块首先用变量OSTCBHighRdy 记录当前最高级就绪任务的TCB 地址,然后调用OS_TASK_SW()函数来进行任务切换。3.3 ucos II的组成部分ucos II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。1) 核心部分(OSCore.c)是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里。2) 任务处理部分(OSTask.c)任务处理部
41、分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为ucos II是以任务为基本单位调度的,所以这部分内容也相当重要。3) 时钟部分(OSTime.c)ucos II中的最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。4) 任务同步和通信部分为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。5) 与CPU的接口部分是指ucos II针对所使用的CPU的移植部分。由于ucos II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内
42、容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。3.4嵌入式系统3.4.1 嵌入式系统的概念嵌入式系统的定义分为2个方面。首先,从技术的角度定义以应用为中心、以计算机操作为基础、软件硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。另一方面,从系统的角度定义,嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共存多个系统。3.4.2 嵌入
43、式系统的特点(1)专用性:为特定应用定制的计算机系统。(2)裁剪性:软、硬件小而精,够用即可。(3)实时性:程序和数据都在存储器中,既满足逻辑正确性,也要满足时间正确性。(4)可靠性:无人值守,自动化设备的使用要求。(5)低功耗:便携式应用的要求。(6)高性价:家用的应用要求。3.5嵌入式操作系统3.5.1嵌入式操作系统的特点 (1)必要性:嵌入式系统软硬件愈加庞大复杂。 (2)微型化:软、硬件小而精,够用即可。 (3)实时性:抢占式管理策略,满足时间正确性。 (4)可靠性:无人值守,自动化设备的使用要求。 (5)易移植:便于应用到多种的硬件平台。 (6)微内核:完成OS主要功能的代码很小。3
44、.5.2嵌入式操作系统的基本功能(1)多任务管理:丰富的多任务管理函数供目标系统设计者容易完成多任务应用 设计。 (2)内存管理:动态内存管理充分利用硬件资源。 (3)外设管理:例如I2C、UART、TIMER、SPI等设备的驱动。3.5.3实时操作系统和分时操作系统 (1)实时性:能够在要求的时间内处理完系统事件。 (2)实时系统的正确性:既要逻辑正确还要事件正确。 (3)RTOS:多采用抢占式管理策略,满足时间正确性。(4)分时OS:多采用时间片轮换调度策略。第4章 电子点菜单的设计4.1 总体设计通常的嵌入式系统都由硬件层、操作系统层和应用软件层等组成,从上到下如下图所示。硬件层,顾名思
45、义,就是为系统提供硬件上的支持,从而为其上的软件打下一个物质基础。它包括嵌入式的处理器和各种外围芯片等。其中,嵌入式的处理器又分为几大类,分别是:嵌入式微控制器MCU(包含各种类型的单片机)、嵌入式微控制器MPU(通常指的就是ARM)、嵌入式DSP 处理器(主要指的是美国TI 公司生产的各类DSP 芯片了,通常用于各种算法的实现以及图像音视频等大数据量的处理)和嵌入式片上系统SOC 等。而外围芯片则种类繁多,品种型号不断翻新,千变万化,令人目不暇接了,而这也给产品的丰富多彩提供了物质基础。比如:LED、数码管、蜂鸣器、键盘、AD、DA、触摸屏、显示器,甚至还有更加复杂的红外、GPS、GPRS、
46、DMA、USB 等等。它们和嵌入式的处理器完美地组合在一起,就能够实现各种强大的功能,从而能够开发出各种各样丰富多彩的产品出来了。操作系统层指的是嵌入式的操作系统,它向下管理硬件资源,对硬件进行各种读写操作,向上为应用层提供各种接口,为应用程序能够操纵硬件提供各种便利。当然,并不是每一个嵌入式的系统都必须要有嵌入式的操作系统。一个系统用不用操作系统,完全是根据具体的情况来判断的。其中成本、开发周期、开发难度、一个企业的人才储备等等各种因素都决定了一个系统用不用操作系统。比如:一个ARM 芯片100 元人民币左右,而一个单片机芯片才几块钱,如果可以同时选择的话,很多企业绝不会选择ARM 的,另外
47、,有操作系统能大大降低产品的开发难度和开发周期以及企业是否有人能够胜任开发任务也是企业考虑用不用嵌入式操作系统的决定因素。嵌入式的操作系统有很多,其中非常有名又使用得最多的有:linux、WINCE、Vxworks、ucos2 等等。应用层,也就是通常说的应用软件层,由开发人员编制应用程序,来实现对硬件的各种操作,从而实现用户想要的各种功能。根据这个大的框架,可以大致确定基于ARM9 和ucos2 的电子点菜系统的设计中,由于点菜系统是必须要有良好的用户交互界面,因而我们这里大致上确定应该要有一个嵌入式的操作系统来支持良好的用户界面。至于硬件层,也应该选择一款能够支持嵌入式操作系统的嵌入式处理器,应用层的软件则基于操作系统进行友好的界面开发,从而完成这个系统的总体设计。4.2系统交互功能的设计4.2.1系统构架通常嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件部分。由于多数嵌入式设备的