嵌入式软键盘的设计与实现设计.docx
- 文档编号:11625436
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:59
- 大小:2.12MB
嵌入式软键盘的设计与实现设计.docx
《嵌入式软键盘的设计与实现设计.docx》由会员分享,可在线阅读,更多相关《嵌入式软键盘的设计与实现设计.docx(59页珍藏版)》请在冰豆网上搜索。
嵌入式软键盘的设计与实现设计
嵌入式软键盘的设计与实现
摘要
随着对嵌入式系统体积小型化和操作人性化的要求以及大尺寸触摸式显示屏的广泛应用,在嵌入式系统中采用软键盘实现字符的输入已经成为目前的发展主流。
软键盘是应用于触摸屏上的重要信息输入工具,它代替传统的物理键盘,可以通过点击显示在触摸屏上的按键完成字母、数字、符号等的输入以及其他操作。
本文首先介绍了嵌入式系统以及Linux的基本概念,并且指出了嵌入式系统下的图形用户具有轻型、占用资源少、高性能、高可靠性、可配置等特点。
其次详细阐述了技术上所涉及的问题,比如选择合适的图形用户界面开发软件平台,并且进行环境搭建,介绍了在Linux系统下基于Qt的软键盘的设计与实现方法,最终得到一个简单的软键盘输入法程序,该键盘功能全面、界面友好、操作简单、在各种基于Linux的智能电子产品中具有很好的应用前景。
关键词:
软键盘嵌入式LinuxQt
DESIGNANDIMPLEMENTATIONOFEMBEDDEDSOFT-KEYBOARD
Abstract
Withthewide applicationof the embeddedsystem miniaturization and humanizedoperation requirementsandthe largesize touchscreen,intheembeddedsystemusingsoft keyboard characterinput hasbecomethemainstreamof developmentatpresent.Softkeyboard is usedintouchscreeninputimportant information tool,thephysicalkeyboard insteadofthetraditional, canclick display letters, numbers,symbols, tocomplete the input andotheroperations onthetouchscreen keys.
Thispaperfirstintroducesthebasicconcepts ofembeddedsystemand Linux, andpointsoutthat the embeddedsystem graphicaluser hasthecharacteristicsoflight, smallfootprint, highperformance, highreliability, easyconfiguration.Secondlyintroducethe related technicalproblems, suchaschoiceof graphicaluserinterface softwaredevelopmentplatform suitable, and environment,introducesdesignandrealizationmethodsof soft keyboardbasedonQt inLinuxsystem, finallya simplesoft keyboard inputmethod, thekeyboardis fullyfunctional, friendlyinterface, simpleoperation, invarious basedonhasthe verygoodapplicationprospect ofintelligentelectronic productsintheLinux.
Keywords:
Soft-keyboardEmbeddedLinuxQt
摘要i
Abstractii
1绪论1
1.1课题背景1
1.2课题研究的目的与意义1
1.3软键盘技术的发展现状2
1.4课题研究及实现的可行性2
1.4.1技术可行性2
1.4.2管理可行性3
1.4.3社会可行性3
2相关技术介绍4
2.1嵌入式系统综述4
2.1.1概念及历史发展4
2.1.2嵌入式系统的特点5
2.1.3嵌入式系统的组成6
2.1.4嵌入式系统的发展现状7
2.2Linux平台开发的理论基础8
2.2.1Linux概述8
2.2.2Linux的特点9
2.2.3Linux的发展前景10
2.3Qt概述11
2.3.1Qt简介11
2.3.2Qt的特性11
2.3.3Qt的应用12
2.4集成开发环境搭建12
3系统需求分析14
3.1需求分析的目的14
3.2需求分析的地位与作用14
3.3嵌入式软键盘的特点14
3.4系统应该满足的功能15
3.5软键盘需要解决的主要问题15
3.6运行环境16
4软键盘的设计与实现17
4.1软键盘设计理论17
4.1.1软键盘输入的原理17
4.1.2软键盘输入流程图17
4.2界面的设计18
4.2.1英文界面的设计19
4.2.2中文界面的设计20
4.2.3数字界面的设计24
4.2.4符号界面的设计24
4.3.5程序总体界面的设计24
5运行效果及软键盘测试29
总结32
致谢33
参考文献34
外文原文35
中文翻译49
1绪论
本文旨在通过一个应用实例——嵌入式软键盘来详细叙述嵌入式系统应用层软件开发的设计思想与技术应用。
嵌入式系统属技术与知识密集型产业,其应用范围广泛、发展前景广阔。
近几年,嵌入式系统及产品日益丰富,结构日臻完善,市场呈现块数增长趋势,尤其在电子、通信、金融、交通、网络、监控、自动化等领域应用广泛,使得嵌入式系统产品迅速渗透到社会各个层面,发展嵌入式系统产品成为了我国信息产业增长方式由粗放型向集约型转变,实现可持续发展的重要途径。
嵌入式软件开发同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系统里,有许多可供使用的图形界面库,本课题选择使用QtCreator5设计一个小巧的程序,能够满足基本的输入法的实现。
即在技术方面是满足本课题的设计开发。
1.4.2管理可行性
本课题是基于Qt的图形用户界面的开发,鉴于Linux系统的开源性、以及Qt的可移植性和易用性,本课题无需多余的管理。
1.4.3社会可行性
本课题设计完成后仅作毕业设计和私人使用,且设计内容健康,不会违反法律,不会对社会造成不良影响。
2相关技术介绍
2.1嵌入式系统综述
嵌入式系统以应用为中心、以计算机技术为基础、软硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。
2.1.1概念及历史发展
嵌入式系统(Embeddedsystem),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会(U.K.InstitutionofElectricalEngineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。
与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。
由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。
嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。
嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。
与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。
国内普遍认同的嵌入式系统定义为:
以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。
因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。
嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
所以,介入嵌入式系统行业,必须有一个正确的定位。
例如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年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。
确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。
其中比较著名的有ReadySystem公司的VRTX、IntegratedSystemIncorporation(ISI)的PSOS和IMG的VxWorks、QNX公司的QNX等。
这些嵌入式操作系统都具有嵌入式的典型特点:
它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪,可扩充和可移植性,可以移植到各种处理器上;较强的实时和可靠性,适合嵌入式应用。
这些嵌入式实时多任务操作系统的出现,使得应用开发人员得以从小范围的开发解放出来,同时也促使嵌入式有了更为广阔的应用空间。
90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。
这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。
除了上面的几家老牌公司以外,还出现了PalmOS,WinCE,嵌入式Linux,Lynx,Nucleux,以及国内的Hopen,DeltaOs等嵌入式操作系统。
随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。
2.1.2嵌入式系统的特点
这些年来掀起了嵌入式系统应用热潮的原因主要有几个方面:
一是芯片技术的发展,使得单个芯片具有更强的处理能力,而且使集成多种接口已经成为可能,众多芯片生产厂商已经将注意力集中在这方面。
另一方面的原因就是应用的需要,由于对产品可靠性、成本、更新换代要求的提高,使得嵌入式系统逐渐从纯硬件实现和使用通用计算机实现的应用中脱颖而出,成为近年来令人关注的焦点。
从上面的定义,我们可以看出嵌入式系统的几个重要特征:
1.系统内核小。
由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。
比如Enea公司的OSE分布式系统,内核只有5K,而Windows的内核?
简直没有可比性。
2.专用性强。
嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。
同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全两个概念。
3.系统精简。
嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。
4.高实时性的系统软件(OS)是嵌入式软件的基本要求。
而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。
5.嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。
嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(Real-TimeOperatingSystem)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
6.嵌入式系统开发需要开发工具和环境。
由于其本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。
开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
7.嵌入式系统与具体应用有机结合在一起,升级换代也是同步进行。
因此,嵌入式系统产品一旦进入市场,具有较长的生命周期。
8.为了提高运行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中。
2.1.3嵌入式系统的组成
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。
执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。
执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。
在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。
其中操作系统和应用程序都可以固化在ROM中。
硬件层与软件层之间为中间层,也称为硬件抽象层(HardwareAbstractLayer,HAL)或板级支持包(BoardSupportPackage,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。
该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。
BSP具有以下两个特点。
硬件相关性:
因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。
操作系统相关性:
不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。
实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。
设计一个完整的BSP需要完成两部分工作:
嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。
系统软件层由实时多任务操作系统(Real-timeOperationSystem,RTOS)、文件系统、图形用户接口(GraphicUserInterface,GUI)、网络系统及通用组件模块组成。
RTOS是嵌入式应用软件的基础和开发平台。
2.1.4嵌入式系统的发展现状
随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。
美国著名未来学家尼葛洛庞帝99年1月访华时预言,4~5年后嵌入式智能(电脑)工具将是PC和因特网之后最伟大的发明。
我国著名嵌入式系统专家沈绪榜院士98年11月在武汉全国第11次微机学术交流会上发表的《计算机的发展与技术》一文中,对未来10年以嵌入式芯片为基础的计算机工业进行了科学的阐述和展望。
1999年世界电子产品产值已超过12000亿美元,2000年达到13000亿美元,预计2005年,销售额将达18000亿美元。
进入20世纪90年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。
在通信领域,数字技术正在全面取代模拟技术。
在广播电视领域,美国已开始由模拟电视向数字电视转变,欧洲的DVB(数字电视广播)技术已在全球大多数国家推广。
数字音频广播(DAB)也已进入商品化试播阶段。
而软件、集成电路和新型元器件在产业发展中的作用日益重要。
所有上述产品中,都离不开嵌入式系统技术。
象前途无可计量的维纳斯计划生产机顶盒,核心技术就是采用32位以上芯片级的嵌
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 软键 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)