嵌入式软键盘的设计与实现毕业论文设计.doc
嵌入式软键盘的设计与实现摘要随着对嵌入式系统体积小型化和操作人性化的要求以及大尺寸触摸式显示屏的广泛应用,在嵌入式系统中采用软键盘实现字符的输入已经成为目前的发展主流。软键盘是应用于触摸屏上的重要信息输入工具,它代替传统的物理键盘,可以通过点击显示在触摸屏上的按键完成字母、数字、符号等的输入以及其他操作。本文首先介绍了嵌入式系统以及Linux的基本概念,并且指出了嵌入式系统下的图形用户具有轻型、占用资源少、高性能、高可靠性、可配置等特点。其次详细阐述了技术上所涉及的问题,比如选择合适的图形用户界面开发软件平台,并且进行环境搭建,介绍了在Linux系统下基于Qt的软键盘的设计与实现方法,最终得到一个简单的软键盘输入法程序,该键盘功能全面、界面友好、操作简单、在各种基于Linux的智能电子产品中具有很好的应用前景。关键词:软键盘 嵌入式 Linux QtDESIGN AND IMPLEMENTATION OF EMBEDDED SOFT-KEYBOARDAbstractWith the wide application of the embedded system miniaturization and humanized operation requirements and the large size touch screen, in the embedded system using soft keyboard character input has become the mainstream of development at present. Soft keyboard is used in touch screen input important information tool, the physical keyboard instead of the traditional, can click display letters, numbers, symbols, to complete the input and other operations on the touch screen keys.This paper first introduces the basic concepts of embedded system and Linux, and points out that the embedded system graphical user has the characteristics of light, small footprint, high performance, high reliability, easy configuration. Secondly introduce the related technical problems, such as choice of graphical user interface software development platform suitable, and environment, introduces design and realization methods of soft keyboard based on Qt in Linux system, finally a simple soft keyboard input method, the keyboard is fully functional, friendly interface, simple operation, in various based on has the very good application prospect of intelligent electronic products in the Linux.Key words: Soft-keyboard Embedded Linux Qt目录摘要iAbstractii1 绪论11.1 课题背景11.2 课题研究的目的与意义11.3 软键盘技术的发展现状21.4 课题研究及实现的可行性21.4.1 技术可行性21.4.2 管理可行性31.4.3 社会可行性32 相关技术介绍42.1 嵌入式系统综述42.1.1 概念及历史发展42.1.2 嵌入式系统的特点52.1.3 嵌入式系统的组成62.1.4 嵌入式系统的发展现状72.2 Linux平台开发的理论基础82.2.1 Linux概述82.2.2 Linux的特点92.2.3 Linux的发展前景102.3 Qt概述112.3.1 Qt简介112.3.2 Qt的特性112.3.3 Qt的应用122.4 集成开发环境搭建123 系统需求分析143.1 需求分析的目的143.2 需求分析的地位与作用143.3 嵌入式软键盘的特点143.4 系统应该满足的功能153.5 软键盘需要解决的主要问题153.6 运行环境164 软键盘的设计与实现174.1 软键盘设计理论174.1.1 软键盘输入的原理174.1.2 软键盘输入流程图174.2 界面的设计184.2.1 英文界面的设计194.2.2 中文界面的设计204.2.3 数字界面的设计244.2.4 符号界面的设计244.3.5 程序总体界面的设计245 运行效果及软键盘测试29总结32致谢33参考文献34外文原文35中文翻译491 绪论本文旨在通过一个应用实例嵌入式软键盘来详细叙述嵌入式系统应用层软件开发的设计思想与技术应用。嵌入式系统属技术与知识密集型产业,其应用范围广泛、发展前景广阔。近几年,嵌入式系统及产品日益丰富,结构日臻完善,市场呈现块数增长趋势,尤其在电子、通信、金融、交通、网络、监控、自动化等领域应用广泛,使得嵌入式系统产品迅速渗透到社会各个层面,发展嵌入式系统产品成为了我国信息产业增长方式由粗放型向集约型转变,实现可持续发展的重要途径。嵌入式软件开发同PC平台软件开发有很大的不同,具有目标多样性、跨平台作业、启动方式独特和调试手段独特的特点。因此本文通过设计一个嵌入式动态链接库,来叙述嵌入式应用程序的开发流程、开发方法和开发技巧,说明主要的设计思想和步骤。1.1 课题背景经过几十年的发展,嵌入式系统已经在很大程度上改变了人们的生活、工作以及娱乐方式,最近几年随着电脑的普及、计算机技术和通信技术的快速发展,嵌入式系统的应用越来越广泛,嵌入式计算机的应用数量远远超过了各种通用型的计算机。将嵌入式应用于工业控制类产品中,并开发出优秀的人机交互界面,是嵌入式发展的趋势,拥有广阔的市场前景。近年来的市场需求显示越来越多的嵌入式系统均要求提供一个简洁的可视化操作界面,而这些都要求有一个高性能稳定可靠的图形用户界面来提供支持。国内用户对软键盘的需求也越来越迫切。所谓的软键盘并不是在键盘上的,而是在“屏幕”上,软键盘是通过软件模拟键盘通过鼠标点击输入字符,是为了防止木马记录键盘输入的密码,一般在一些银行的网站上要求输入帐号和密码的地方容易看到。Qt作为面向嵌入式系统的集成环境,正益成为嵌入式GUI开发的主流,被越来越多的国内外厂商用于便携式电子设备的开发。而软键盘是应用于触摸屏上的重要信息输入工具,它代替传统的物理键盘,可以通过点击显示在触摸屏上的按键完成字母、数字、符号等的输入以及其他操作。因此进行此课题。1.2 课题研究的目的与意义随着计算机技术的迅猛发展,人们的生活已经与网络变得息息相关。网络在给我们带来了方便的同时也给心怀不轨之徒带来了可趁之机。用户使用网络游戏、网上通讯和网上购物等互联网服务之前必须通过键盘输入用户身份的凭证,如用户名和口令以实现用户身份的认证、后台服务的访问授权。这些凭证信息往往成为攻击者的攻击目标。旁路攻击可以间接获取身份凭证,如利用键盘输入录像、按键声音、按键振动、按键手姿等获得键盘输入内容,这需要攻击者离键盘距离比较近且获取的凭证不准确键盘记录器,也称按键嗅探器,间谍木马程序是具有击键记录功能的恶意代码一般通过消息截获或者对特定位置进行轮询等信息流攻击来实现键盘记录器具有远程信息获取能力且捕获的精度较高目前键盘记录器发展迅速已成为最常用的信息窃取技术形成了完整的产业链,是互联网用户面临的一个主要安全威胁。用户的交易密码被盗不仅破坏了网络的安全性而且直接给用户带来了不可挽回的经济损失,因此各种密码保护技术随之越来越多得出现了。从最早的密码排序技术到最新的“数字证书”和“生物密码”技术,防窃密技术的更新速度越来越快,成本越来越高,破解也越来越复杂,“软键盘”密码输入技术是目前最流行最便捷的防窃密技术手段之一。软键盘输入技术使用方便成本较低,受到广大网上交易用户的普遍欢迎。针对类似于“屏幕快照”网银木马的攻击原理,可对软键盘输入技术进行适当改进,使其克服不足之处防范。“屏幕快照”网银木马的攻击软键盘技术改进方案的基本思想是将原始的“静态”软键盘模型改进成“动态”的软键盘模型,每当用户利用软键盘点击输入一个数据的同时,键盘上所有按键的显示内容自动隐藏,随后出现的软键盘上所有的按键是随机出现的新的顺序,这种变换过程本身完全随机,无规律可寻这就可以有效防止密码的失窃。1.3 软键盘技术的发展现状随着网上转账、网上购物、网上缴费等网上银行业务的普及,一些不法分子开发了各种恶意程序。为了防范它们引起的安全风险,许多网上服务商采取了软键盘的输入方法。软键盘又称为虚拟键盘、屏幕键盘,是一种通过软件模拟键盘输入的技术。使用者通过鼠标点击屏幕的按钮输入信息。使用软键盘输入信息时,用户所输入的是鼠标信息,物理层和内核层的供给即使接货鼠标信息也往往难以猜测其语义。与物理键盘相比,软键盘增强了安全性,得到了广泛的应用。中国金融认证中心(CFCA)发布的2007 年中国网上银行调查报告报告显示:网银作为新兴的在线支付工具,有着快捷、方便等诸多有利因素,使得我国网上银行交易量大幅增加。2007 年,在受调查的10 个经济发达的城市中,个人和企业使用网银的比例均持续增长,已有37.8%的个人使用网银,企业网银使用率已达31.7%。但在网银交易大幅增加的同时,网银成为除网游之外木马泛滥的另一重灾区,网银的安全性也已成为个人和企业消费者最为关心的问题,超过七成老百姓因担心网银的安全性而没选择网上交易。4因此,网银安全性成了制约其发展的瓶颈,如何安全使用网上银行,除了要树立风险防范意识、培养良好操作习惯以外,借助专业的安全工具软件来保护是必不可少的。软键盘输入技术只是众多网上交易安全技术中的一种,这种防窃密技术具有其它防窃密技术难以比拟的优点,正因如此,才使该技术得以流行至今。当然其本身也有一定的缺陷,通过对它的改进可以提高网上交易的安全性。1.4 课题研究及实现的可行性可行性分析也成为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、社会等的方面进行分子和研究,以避免出现失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。1.4.1 技术可行性在Ubuntu12.04系统里,有许多可供使用的图形界面库,本课题选择使用Qt Creator 5设计一个小巧的程序,能够满足基本的输入法的实现。即在技术方面是满足本课题的设计开发。1.4.2 管理可行性本课题是基于Qt的图形用户界面的开发,鉴于Linux系统的开源性、以及Qt的可移植性和易用性,本课题无需多余的管理。1.4.3 社会可行性本课题设计完成后仅作毕业设计和私人使用,且设计内容健康,不会违反法律,不会对社会造成不良影响。2 相关技术介绍2.1 嵌入式系统综述嵌入式系统以应用为中心、以计算机技术为基础、软硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。2.1.1 概念及历史发展嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会(U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。所以,介入嵌入式系统行业,必须有一个正确的定位。例如Palm之所以在PDA领域占有70%以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多任务管理;而风河的Vxworks之所以在火星车上得以应用,则是因为其高实时性和高可靠性。嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几K到几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。实际上,嵌入式系统本身是一个外延极广的名词,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以叫嵌入式系统,而且有时很难以给它下一个准确的定义。现在人们讲嵌入式系统时,某种程度上指近些年比较热的具有操作系统的嵌入式系统,本文在进行分析和展望时,也沿用这一观点。一般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件(由于多数嵌入式设备的应用软件和操作系统都是紧密结合的,在这里我们对其不加区分,这也是嵌入式系统和一般的PC操作系统的最大区别)。从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。嵌入式系统的出现最初是基于单片机的。70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。最早的单片机是Intel公司的 8048,它出现在1976年。Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有256字节的RAM、4K的ROM、4 个8位并口、1个全双工串行口、两个16位定 时 器。之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在单片机的历史上是值得纪念的一页,迄今为止,51系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。其中比较著名的有Ready System 公司的VRTX、Integrated System Incorporation (ISI)的PSOS和IMG的VxWorks、QNX公司的QNX 等。这些嵌入式操作系统都具有嵌入式的典型特点:它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪,可扩充和可移植性,可以移植到各种处理器上;较强的实时和可靠性,适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员得以从小范围的开发解放出来,同时也促使嵌入式有了更为广阔的应用空间。90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。除了上面的几家老牌公司以外,还出现了Palm OS,WinCE,嵌入式Linux,Lynx,Nucleux,以及国内的Hopen,Delta Os等嵌入式操作系统。随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。2.1.2 嵌入式系统的特点这些年来掀起了嵌入式系统应用热潮的原因主要有几个方面:一是芯片技术的发展,使得单个芯片具有更强的处理能力,而且使集成多种接口已经成为可能,众多芯片生产厂商已经将注意力集中在这方面。另一方面的原因就是应用的需要,由于对产品可靠性、成本、更新换代要求的提高,使得嵌入式系统逐渐从纯硬件实现和使用通用计算机实现的应用中脱颖而出,成为近年来令人关注的焦点。从上面的定义,我们可以看出嵌入式系统的几个重要特征:1系统内核小。由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如Enea公司的OSE分布式系统,内核只有5K,而Windows的内核?简直没有可比性。2专用性强。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全两个概念。3系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。4高实时性的系统软件(OS)是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。5嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(RealTime Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。6嵌入式系统开发需要开发工具和环境。由于其本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。7.嵌入式系统与具体应用有机结合在一起,升级换代也是同步进行。因此,嵌入式系统产品一旦进入市场,具有较长的生命周期。8.为了提高运行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中。2.1.3 嵌入式系统的组成一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP具有以下两个特点。硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软 件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。2.1.4 嵌入式系统的发展现状随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。美国著名未来学家尼葛洛庞帝99年1月访华时预言,45年后嵌入式智能(电脑) 工具将是PC和因特网之后最伟大的发明。我国著名嵌入式系统专家沈绪榜院士98年11月在武汉全国第11次微机学术交流会上发表的计算机的发展与技术一文中,对未来10年以嵌入式芯片为基础的计算机工业进行了科学的阐述和展望。1999年世界电子产品产值已超过12000亿美元,2000年达到13000亿美元,预计2005年,销售额将达18000亿美元。进入20世纪90年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。在通信领域,数字技术正在全面取代模拟技术。在广播电视领域,美国已开始由模拟电视向数字电视转变,欧洲的DVB(数字电视广播)技术已在全球大多数国家推广。数字音频广播(DAB)也已进入商品化试播阶段。而软件、集成电路和新型元器件在产业发展中的作用日益重要。所有上述产品中,都离不开嵌入式系统技术。象前途无可计量的维纳斯计划生产机顶盒,核心技术就是采用32位以上芯片级的嵌入式技术。在个人领域中,嵌入式产品将主要是个人商用,作为个人移动的数据处理和通讯软件。由于嵌入式设备具有自然的人机交互界面,GUI屏幕为中心的多媒体界面给人很大的亲和力。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像已取得初步成效。一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,日用范围也将日益广阔。对于企业专用解决方案,如物流管理、条码扫描、移动信息采集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于ATM机,自动售货机,工业控制等专用设备,和移动通讯设备结合、GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。近期长虹推出的ADSL产品,结合网络,控制,信息,这种智能化,网络化将是家电发展的新趋势。硬件方面,不仅有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。目前低层系统和硬件平台经过若干年的研究,已经相对比较成熟,实现各种功能的芯片应有尽有。而且巨大的市场需求给我们提供了学习研发的资金和技术力量。从软件方面讲,也有相当部分的成熟软件系统。国外商品化的嵌入式实时操作系统,已进入我国市场的有WindRiver、Microsoft、QNX和Nuclear等产品。我国自主开发的嵌入式系统软件产品如科银(CoreTek)公司的嵌入式软件开发平台DeltaSystem,中科院推出的Hopen嵌入式操作系统(虽然还不够完善)。同时由于是研究热点,所以我们可以在网上找到各种各样的免费资源,从各大厂商的开发文档,到各种驱动,程序源代码,甚至很多厂商还提供微处理器的样片。这对于我们从事这方面的研发,无疑是个资源宝库。对于软件设计来说,不管是上手还是进一步开发,都相对来说比较容易。这就使得很多生手能够比较快的进入研究状态,利于发挥大家的积极创造性。今天嵌入式系统带来的工业年产值已超过了1万亿美元,1997年来自美国嵌入式系统大会(Embedded System Conference)的报告指出,未来5年仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1500亿美元的新市场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的计算能力已超过了IBM”,由此可以想见嵌入式计算机工业的规模和广度。1998年11月在美国加州举行的嵌入式系统大会上,基于RTOS的Embedded Internet成为一个技术新热点。在国内,“维纳斯计划”和“女锅计划”一度闹得沸沸扬扬,机顶盒、信息j家电这两年更成了IT热点,而实际上这些都是嵌入式系统在特定环境下的一个特定应用。据调查,目前国际上已有两百多种嵌入式操作系统,而各种各样的开发工具、应用于嵌入式开发的仪器设备更是不可胜数。在国内,虽然嵌入式应用、开发很广,但该领域却几乎还是空白,只有三两家公司和极少数人员在从事这方面工作。由此可见,嵌入式系统技术发展的空间真是无比广大。信息时代,数字时代使得嵌入式产品获得了巨大的发 展契机,为嵌入式市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,从中我们可以看出未来嵌入式系统的几大发展趋势:(1)嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。 目前很多厂商已经充分考虑到这一点,在主推系统的同时,将开发环境也作为重点推广。比如三星在推广Arm7,Arm9芯片的同时还提供开发板和版及支持包(BSP),而WindowCE在主推系统时也提供EmbeddedVC+作为开发工具,还有Vxworks的Tonado开发环境,DeltaOS的Limda编译环境等等都是这一趋势的典型体现。当然,这也是市场竞争的结果。(2)网络化、信息化的要求随着因特网技术的成熟、带宽的提高日益提高,使得以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。 这就要求芯片设计厂商在芯片上集成更多的功能,为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或信号处理器DSP增强处理能力,同时增加功能接口,如USB,扩展总线类型,如CANBUS,加强对多媒体、图形等的处理,逐步实施片上系统(SOC)的概念。软件方面采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期,如HP。 (3)网络互联成为必然趋势。未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络接口,除了支持TCP/IP协议,还有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和物理层驱动软件。软件方面系统系统内核支持网络模块,甚至可以在设备上嵌入Web浏览器,真正实现随时随地用各种设备上网。 (4)精简系统内核、算法,降低功耗和软硬件成本。未来的嵌入式产品是软硬件紧密结合的设备,为了减低功耗和成本,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型和不断改进算法,优化编译器性能。因此,既要软件人员有丰富的硬件知识,又需要发展先进嵌入式软件技术,如Java、Web和WAP等。2.2 Linux平台开发的理论基础2.2.1 Linux概述Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。2.2.2 Linux的特点1. 是自由软件首先,Linux可以说是作为开放源码的自由软件的代表,作为自由软件,它有如下两个特点:一是它开放源码并对外免费提供,二是爱好者可以按照自己的需要自由修改、复制和发布程序的源码,并公布在Internet上,因此Linux操作系统可以从互联网上很方便地免费下载得到,这样你还可以省下购买Windows操作系统的一笔不小的资金。且由于可以得到Linux的源码,所以操作系统的内部逻辑可见,这样就可以准确地查明故障原因,及时采取相应对策。在必要的情况下,用户可以及时地为Linux打“补丁”,这是其它操作系统所没有的优势。同时,这也使得用户容易根据操作系统的特点构建安全保障系统,不用担心来自那些不公开源码的 “黑盒子”式的系统预留的什么 “后门”的意外的打击。而且,Linux上跑的绝大多数应用程序也是免费可得的,用了Linux就再也不用担心背上“使用盗版软件”的黑锅了。2. 极强的平台可伸缩性 Linux可以运行在386以上及各种RISC体系结构机器上 。Linux最早诞生于微机环境,一系列版本都充分利用了X86CPU的任务切换能力,使X86CPU的效能发挥得淋淋尽致,而这一点连Windows都没有做到。Linux能运行在笔记本电脑、PC、工作站,直至巨型机上,而且几乎能在所有主要CPU芯片搭建的体系结构上运行(包括Intel/AMD及HP-PA、MIPS、PowerPC、UltraSPARC、ALPHA等RISC芯片),其伸缩性远远超过了NT操作系统目前所能达到的水平。3. 是UNIX的完整实现 从发展的背景看,Linux与其他操作系统的区别是,Linux是从一个比较成熟的操作系统UNIX发展而来的,UNIX上的绝大多数命令都可以在Linux里找到并有所加强。我们可以认为它是Unix系统的一个变种,因而UNIX的优良特点如可靠性、稳定性以及强大的网络功能,强大的数据库支持能力以及良好的开放性等都在Linux上一一体现出来。且在Linux的发展过程中,Linux的用户能大大地从Unix团体贡献中获利,它能直接获得Unix相关的相应支持和帮助。4. 真正的多任务多用户 只有很少的操作系统能提供真正的多任务能力,尽管许多操作系统声明支持多任务,但并不完全准确,如Windows。而Linux则充分利用了X86CPU的任务切换机制,实现了真正多任务、多用户环境,允许多个用户同时执行不同的程序,并且可以给紧急任务以较高的优先级。5. 完全符合POSIX标准 POSIX是基于UNIX的第一个操作系统簇国际标准,Linux遵循这一标准这使UNIX下许多应用程序可以很容易地移植到Linux下,相反也是这样。 6. 具有丰富的图形用户界面 Linux的图形用户界面是Xwindow系统。Xwindow可以做MSWindows下的所有事情,而且更有趣、更丰富,用户甚至可以在几种不同风格的窗口之间来回切换。7. 具有强大的网络功能 实际上,Linux就是依靠互联网才迅速发展了起来,Linux具有强大的网络功能也是自然而然的事情。它可以轻松地与TCP/IP、LANManager、Windows for Workgroups、Novell Netware或Windows NT网络集成在一起,还可以通过以太网或调制解调器连接到Internet上。 Linux不仅能够作为网络工作站使用,更可以胜任各类服务器,如X应用服务器、文件服务器、打印服务器、邮件服务器、新闻服务器等等。8. 开发功能强Linux支持一系列的UNIX开发,它是一个完整的UNIX开发平台,几乎所有的主流程序设计语言都已移植到Linux上并可免费得到,如C、C+、Fortran77、ADA、PASCAL、Modual2和3、Tcl/TkScheme、SmallTalk/X等。2.2.3 Linux的发展前景作为桌面Linux系统它是在Linux服务器的基础上展开研发的。Linux服务器技术上已经成熟,这对桌面Linux系统的开发提供的良好的条件,Linux是一个从公开源代码发展来的操作系统,因此奠定了Linux较其他诸如Windows、以及各商业版本UNIX操作系统的先天优势,由于全世界无数的技术人员都可以帮助Linux修改系统错误,提升性能,因此到目前Linux已经迅速成为一个相对健壮的操作系统,并且也越来越多的跻身各种的企业关键业务之中。现在电脑已经普及,作为电脑操作系统一直是以Windows为主体,但Windows操作系统的源代码是其商业机密,而Linux则完全是开源的而且获得了包括美国在内的各国政府的全力支持。英国、法国、德国、比利时、巴西等国家已通过议案,要求政府在采购之前要比较商用软件和开放源代码软件,优先考虑开放源代码的软件。而中国、欧盟、韩国、泰国、澳大利亚、菲律宾、马来西亚等政府正在大力支持Linux美国国防部和战略防御计划都宣布Linux正式成为官方标准和采购选择。由此可见Linux操作系统已经越来越受到世人的关注,而操作系统最大的应用群体就是个人电脑,所以Linux操作系统的桌面端也必将是各大操作系统厂商研发的重点,所以Linux操作系统必将在不久的将来取得更长足的进步。作为桌面的操作系统,Linux必将受到更多的挑战和考验。首先,微软不会甘心让出市场让Linux来壮大,所以Linu