西安科技大学硕士学位论文
实现网页访问功能。另外,由于烧写操作系统和应用程序时,如果通过串口进行烧写,烧写速度比较慢,而通过网口方式烧写速度比较快;
(9) 调试模块:考虑到产品发布之后还要不断对产品进行维护和升级。产品在使用过程中会发现一些在产品的设计阶段没有考虑到的问题,对这些问题的解决就是产品的维护。此外,在产品应用一段时间后,用户会对产品提出更多的需求,通过对产品的升级可以满足用户不断增加的需求。因此,本系统平台设计一个调试接口。
收款保险箱硬件总体框图如图2.3所示:
显示模块收钞模块打印模块IC卡模块微处理器电源模块存储模块网口模块调试模块
图2.3 收款保险箱硬件总体框图
2.3 软件整体架构及设计方案
明确了收款保险箱的需求,完成了硬件方案设计之后就要对软件进行设计。作为一个典型的嵌入式系统,收款保险箱系统的整体结构图如图2.4所示:
8
2 收款保险箱总体设计方案 应用软件GUI&嵌入式数据库glibcLinux&设备驱动硬件平台
图2.4 收款保险箱系统整体结构图
2.3.1 GUI界面的设计方案
图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的用户界面。图形用户界面是当今计算机技术的重大成就之一,它极大地方便了非专业用户的使用,人们不再需要死记硬背大量的命令,而可以通过窗口、菜单方便地操作[8]。收款保险箱界面是面向用户的,界面美观与否直接影响到用户对它的感受,在设计中采用图形用户界面(嵌入式GUI)来实现。嵌入式GUI是在嵌入式系统中为特定硬件平台而设计的图形用户界面系统,它要求简单、直观、可靠、占用资源小且反应快速,以适应硬件资源有限的条件。此外,由于嵌入式系统硬件本身的特殊性,嵌入式GUI应具备高度可移植性与可裁减性,以适应不同的硬件条件和使用要求[9]。
总体来讲,嵌入式GUI具备以下特点: ● 体积小;
● 运行时耗用系统资源小;
● 上层接口与硬件无关,高度可移植; ● 高可靠性;
● 在某些应用场合应具备实时性。
在嵌入式产品开发过程中,通常采取以下几种方案来解决产品的图形需求[10]: (1) 编写针对特定图形输出设备的接口,自行开发图形相关的功能函数。比如一些
9
西安科技大学硕士学位论文
图形功能简单的低端嵌入式产品经常使用这种方案解决图形问题。而利用这种方案编写的程序,无法将显示逻辑和数据处理逻辑划分开来,从而导致程序结构不好,不便于调试,并导致大量的代码重复。这种方案的缺点很明显,即可移植性差,维护成本高。
(2) 购买针对特定嵌入式操作系统的图形中间件软件包。一些嵌入式操作系统厂商,也为自己的操作系统专门开发了对应的图形用户界面(GUI)中间件产品。比如?C/OS-II、Nucleus上的GRAFIX包,VxWorks上的WindML包等等。这种方案为嵌入式产品开发提供了直接可用的方案,并且能够和原有操作系统良好配合;但是缺点就是这类软件包的功能通常比较简单,且价格昂贵。另外,基于这些软件包开发的GUI应用软件不具备跨操作系统的可移植性。
(3) 采用开发源码的嵌入式GUI支持系统。随着嵌入式Linux操作系统的应用,开源社区也在不断为嵌入式系统提供不同的开放源码嵌入式图形解决方案,比如MicroWindows,OpenGUI等开源软件。这些软件一般存在较多的软件缺陷且性能较差,加上缺乏有担保的技术支持,因此,存在着很大的开发风险。
(4) 使用独立软件开发商提供的嵌入式GUI产品,比如由北京飞漫软件技术有限公司开发的MiniGUI等。这种产品是开源(遵循GNU的GPL条款发布)的嵌入式GUI软件产品,但均采用双授权模式,即针对商业应用收取软件的许可费。Qt/Embedded属于高端产品,只支持嵌入式Linux操作系统,需要16MB以上的静态存储空间及64MB以上的动态存储空间。MiniGUI则可支持从中低端到高端的大多数嵌入式产品,其跨操作系统特性,以及适合嵌入式产品的小巧、高效的特点,使它受到了更多嵌入式产品开发商的青睐。
分析以上四种方案,第四种方案成本比较低,而且非常适合嵌入式系统的应用。因此,本系统设计的GUI界面采用第四种方案。
2.3.2 嵌入式数据库的设计方案
在嵌入式领域,早期的数据存储常常采用系统自定义的数据结构和文件格式来进行存取和查询,但近年来随着各种嵌入式应用的迅速发展,嵌入式软件中对数据存取和查询功能的要求也越来越高,而传统的用于个人计算机中的大型关系数据库对于硬件受限,且对响应时间要求相对较高的嵌入式系统来说,并不是非常的适合,只有简单小巧而又高效性能的小型嵌入式数据库才比较适用[11]。通常,我们所指的嵌入式数据库并不是说特定用于嵌入式系统的数据库,而是指,与操作系统和具体应用集成在一起,无需独立运行,而由程序直接调用相应的API(Application Programming Interface) 应用程序编程接口实现对数据的存取操作的数据库引擎。可以说,嵌入式数据库是一种具备了基
10
2 收款保险箱总体设计方案 本数据库特性的数据文件。与通常的数据库产品相比,嵌入式数据库是程序驱动式,而普通数据库是引擎响应式的,而且它们的体积通常非常小,编译后的产品仅仅几十KB,这是比较适于嵌入式系统的。
本文设计的收款保险箱的数据存储,根据功能需求需要处理员工存款信息、财务报表信息和保全取出钞箱信息。这些功能仅仅需要用到数据库的一些基本特性,需要的只是一个简单的基于磁盘文件的数据库系统,这样只要通过调用简单的API函数去创建数据库、添加记录、删除记录、索引、查询等即可,而不必安装庞大的数据库服务器。本系统使用比较流行的嵌入式数据库—Berkeley DB[12]。作为一个简单高效的嵌入式数据库系统,Berkeley DB被设计为简单、快捷、小型并且可靠的系统,能够为应用程序提供高性能的数据管理服务。Berkeley DB可以支持流行的现代操作系统,如Linux、UNIX、Windows等,同时为许多编程语言提供了实用的API接口,支持C、C++、JAVA、PHP等。Berkeley DB函数库本身只有300KB左右,但却可以用来管理多达256TB的数据,而且可以提供与传统关系数据库系统同样强健的数据存储特性[13]。
2.3.3 应用软件的设计方案
应用软件的设计是以一定的方法为基础的,对于收款保险箱这个相对复杂的软件开发任务,设计中根据软件设计模型,从用户需求和系统要实现的任务功能出发,主要遵循了以下几个原则[14]:
(1) 易用性。提供的应用编程接口要尽可能简洁而又满足需要,函数要有良好的容错性,便于将来系统升级开发;
(2) 高性能。在保证终端设备能够正常运行的情况下,考虑对存储器(包括SDRAM和FLASH)的严格要求,尽量减少可执行代码所需的空间,提高程序的运行速度;
(3) 模块化。把整个软件划分为多个小模块。为了减少模块之间的关联性,设计中各个模块之间的逻辑结构相对独立,无函数的交叉调用,数据传递由全局变量完成。这种模块化设计方法使得各个子系统之间相对独立,便于系统的调试,提高了系统的稳定性,也为软件升级提供了方便;
(4) 协同开发。软件和硬件之间采用同步进行的开发模式;
(5) 可移植性。嵌入式操作系统和应用程序要具有良好跨平台性,要能支持主流的微处理器硬件平台,以便于将来的升级和优化;
本系统的整个应用软件可以分两大部分,前台部分和后台部分。其应用软件模块图如图2.5所示。前台部分包括IC卡处理模块、收钞模块、打印模块、故障处理模块和人机交互界面模块;后台部分主要通过网页访问的方式浏览前台相关数据,包括员工存款
11
西安科技大学硕士学位论文
数据界面、财务报表数据界面、保全取出钞箱数据界面、数据导出界面、添加修改管理员密码界面和修改主板IP和机器号码界面。通过嵌入式数据库把前台和后台的信息关联起来。整个应用软件的设计采用模块化的方式,分别调用不用的API接口,结构非常清晰,为后续代码的跨平台移植奠定了基础。
员工卡财务卡维护卡故障处理模块保全卡员工存款信息打印财务报表信息打印保全取出钞箱信息打印收钞模块打印模块人机交互界面Berkeley DB数据库前 台后 台员工存款数据界面IC卡处理模块财务报表数据界面保全取出钞箱数据界面数据导出界面添加修改管理员密码界面修改主板IP和机器号码界面 图2.5 收款保险箱应用软件模块图
2.4 本章小结
本章从一个全局的角度考虑了收款保险箱的总体设计方案。从功能需求分析引出整个系统的硬件整体框架及设计方案和软件整体架构及设计方案两大部分。经过本章的介绍,本课题所要研究的内容和重点其实已经一目了然。本章内容着重从系统的软硬件架构设计进行分析,为3、4、5、6章的后续介绍做了很好的准备,起到一个提纲挈领的作用。
12