嵌入式系统第七章嵌入式应用开发.ppt
第6章 嵌入式系统应用开发,6.1 嵌入式软件工程,嵌入式系统开发的一般过程可以描述为:系统定义阶段:主要确定设计任务和设计目标,定义系统的边界,设计编制规格说明书作为正式设计指导和验收的标准。系统的需求一般分为功能性需求和非功能性需求两方面。功能性需求是系统的基本功能,如输入/输出信号、操作方式等;非功能需求包括系统性能、成本、功耗、体积、重量等因素。,6.1 嵌入式软件工程,系统总体设计阶段:主要描述“怎么做”的问题,即系统如何实现由系统定义规定的那些功能。它需要解决嵌入式系统的总体框架,从功能实现上对软/硬件进行划分;在此基础上,选定处理器和基本接口器件;根据系统的复杂程度确定是否使用操作系统,以及选择哪种操作系统;此外,还需要选择系统的开发环境。,6.1 嵌入式软件工程,构件设计阶段:构件通常包括硬件和软件两部分。构件设计使得构件、体系结构和规格说明相一致。构件一般有标准构件和定制构件两种方式。标准构件可以直接使用,如CPU、存储器以及相关的软件构件。使用这些标准构件不仅节约设计时间,而且有可能较快地实现系统完成的部分功能,同时可以提高系统的可靠性和质量。,6.1 嵌入式软件工程,编码阶段:这一阶段可以看做是构件设计的实现阶段,即设计算法并编写相关代码。产出物是模块开发卷宗。成测试阶段:将测试完成的软件系统装入制作好的硬件系统中,进行系统集成并综合测试,验证系统功能是否能够准确无误地实现,各方面指标是否符合设计要求,最后将正确无误的软件固化在目标硬件中。,6.1 嵌入式软件工程,软件工程(Software Engineering,SE)是“以系统的、学科的、定量的途径,把工程应用于软件的开发、运营与维护;同时,开展对上述过程中各种方法和途径的研究”。软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、模式等方面。,6.1 嵌入式软件工程,软件工程研究的主要内容有4个方面:方法与技术 工具与环境 管理技术 标准与规范 涉及有关的基本概念、工具、方法、方法学等。,6.1 嵌入式软件工程,软件过程模型也称为软件生存周期模型或软件开发模型,是描述软件过程中如何执行的模型。到目前为止已经提出了多种模型 瀑布模型 增量模型 螺旋模型 快速开发模型 喷泉模型 智能模型,6.1 嵌入式软件工程,6.1 嵌入式软件工程,目前,软件开发方法总体分为两大类:面向过程的开发方法 面向对象的开发方法,6.1 嵌入式软件工程,面向过程的软件开发方法把问题进行了分解,按照高内聚性和低耦合性划分功能,各功能模块相互调用,软件维护成本大;核心是从应用功能角度来划分功能模块,定义每个模块完成的功能及接口,再进行系统模块的集成。面向对象开发方法是找出问题域对象,各对象进行消息传递,从而完成具体的功能,软件复用性高,维护性好;核心是找出系统的对象,定义对象的状态、功能以及对象之间的消息通信。,6.1 嵌入式软件工程,嵌入式系统需求,根据电气与电子工程师协会标准(IEEE),“需求(requirement)”一词在软件工程专业术语词典中的定义如下:用户为解决一个问题或是达到某个目标(object)所需的某种条件或能力;系统或系统的原件必须满足的条件,或是必须具有的能力,以满足合同规定、标准、规范或其他正式发布的文件;对上述定义的条件或能力的文件形式(documented)的表达。,6.1 嵌入式软件工程,面向对象技术主要包括对象、类、消息、继承、多态性等核心概念。对象是对客观事物或概念的抽象表述。UML是第一代统一的可视化的建模语言,已成为国际软件界广泛承认的标准。UML定义了5类图,包括用例图、静态图、行为图、交互图和实现图。,6.1 嵌入式软件工程,UML的静态建模机制包括用例图、类图、对象图和包图。动态模型主要用于描述系统的动态行为和控制结构,包括4类图:状态图、活动图、序列图和协作图。,6.1 嵌入式软件工程,一个简化的ATM自动取款机系统应用实例,6.1 嵌入式软件工程,创建类图,6.1 嵌入式软件工程,取100元人民币的序列图,6.2基于ECX平台的旅游服务管理系统,系统采用C/S及B/S结构相结合,由前台车载端和后台管理中心构成 管理中心采用SQL Server 2000来建数据库服务器,用J2EE开发界面,MapX控件制作地图,实现了数据库管理、信息服务、电子地图、车辆监控等功能。,6.2基于ECX平台的旅游服务管理系统,车载端采用VC编写图形界面,添加了红外计数装置、USB摄像头、车载定位等设备,具有红外计数、拍照摄像、多媒体播放、GPS定位等功能。信息传递通过CDMA无线通信、FTP传输及IE 3种方式完成,满足不同大小的文件和图片的传输。,6.2基于ECX平台的旅游服务管理系统,旅游公司所有的旅游车都装备有车载导游服务终端,公司总部安装有管理和监控中心。如图6-12所示,该系统采用GPS卫星定位、CDMA无线通信技术、电子地图、红外计数、拍照摄像和互联网技术,来达到管理、服务和监控的功能。,6.2基于ECX平台的旅游服务管理系统,6.2基于ECX平台的旅游服务管理系统,管理中心实现的功能地图、GPS定位功能:后台中心根据车载端反馈回来的GPS信息将旅行车的位置在地图上显示出来,起到对旅行车监控的作用。人员管理功能:包括导游、司机、游客等所有有关人员的管理,与车载端数据库信息保持同步,保存旅游有关人员的相关信息,并随人员变动更新。,6.2基于ECX平台的旅游服务管理系统,合同管理功能:保存和管理与游客签定的合同。景点和旅游计划管理:收集景点信息,编制旅游计划和行程安排。市场服务管理:统计市场需求、分析市场反馈。前台通信功能:收到前台需求信息,如天气信息,后台中心就会发送相关信息。,6.2基于ECX平台的旅游服务管理系统,车载设备实现的功能地图、GPS定位功能:可以实时监控旅游车所在的位置,并且当到达一定的景点范围时,可以触发多媒体播放。计划行程管理功能:显示本次旅游预定计划功能,包括旅游路线、预定宾馆、预定饭店等所有与行程有关的信息。,6.2基于ECX平台的旅游服务管理系统,人员核对功能:系统弹出已上车游客人数和所有游客人数的对话框,方便司机或导游核对人数(若人数相符则可以开车启程,防止丢失游客)。游客上车自动拍照功能:记录游客上、下车照片资料,保存在数据库中,由于处理旅游途中的纠纷或作为特殊旅客的查询。游客自动添加记录功能:当系统检测到游客数量增加时自动弹出要求添加乘客信息的对话框,导游必须即时录入新游客的必要信息(导游也可手动添加新游客信息);,6.2基于ECX平台的旅游服务管理系统,景点自动播放的功能:到达每个景点时,系统自动播放相关景点的视频、图片或者音频资料(帮助导游更好地完成导游工作)。信息查询功能:可以通过和管理中心通信获得最新的信息,如气象信息、交通信息(防止堵车现象的发生),管理中心也可以主动发送这些信息给旅游车辆,使旅游车收到消息后可以及时做相关的处理。Web访问功能:在旅行车上也可以通过IE方式访问旅行社或公共信息的网页。,6.2基于ECX平台的旅游服务管理系统,前台车载设备的总体设计,6.2基于ECX平台的旅游服务管理系统,前台车载设备的硬件,6.2基于ECX平台的旅游服务管理系统,红外设备硬件框图,6.2基于ECX平台的旅游服务管理系统,集成GPS/CDMA模块框图,6.2基于ECX平台的旅游服务管理系统,后台管理和监控中心硬件设计,6.3基于Android操作系统平台的点餐系统,Android一词的本义指“机器人”,2003年美国有一家以Android为名的小公司成立,开发手机平台。Google收购Android之后,于2007年11月5日发布了开源的Android平台:一款包括操作系统(基于Linux内核)、中间件和关键应用的手机平台,并组建了开放手机联盟(Open Handset Alliance),包括Google、中国移动、T-Mobile、宏达电、高通、摩托罗拉等领军企业。,6.3基于Android操作系统平台的点餐系统,采用了软件堆层(software stack,又名软件叠层)的架构,主要分为3部分:底层以Linux核心为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C+开发;最上层是各种应用软件,包括通话程序、短信程序等,应用软件则由各公司自行开发,以Java编写。,6.3基于Android操作系统平台的点餐系统,Android系统架构,6.3基于Android操作系统平台的点餐系统,每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。,6.3基于Android操作系统平台的点餐系统,Dalvik虚拟机依赖于Linux的一些功能,如线程机制和底层内存管理机制。Linux内核Android的核心系统服务依赖于Linux 2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件堆栈之间的硬件抽象层。,6.3基于Android操作系统平台的点餐系统,搭建Android开发环境下载安装jdk下载解压eclipse下载解压android sdk,6.3基于Android操作系统平台的点餐系统,Eclipse配置 安装android开发插件。打开Eclipse,在菜单栏上选择 helpInstall New SoftWare命令,单击Add按钮,输入网址:。,6.3基于Android操作系统平台的点餐系统,Eclipse配置 配置android sdk。单击菜单windowpreferencesandroid菜单命令,选择android SDK解压后的目录;选择菜单windowAndroid sdk and avd manager,新建AVD(android vitural device),选中Vitural Devices再单击New进行参数设置,完成后就可以建立android工程开始编码。,6.3基于Android操作系统平台的点餐系统,系统由前台移动点餐客户终端和后台管理中心构成。移动点餐客户终端是一个嵌入式系统,在基于ARM的处理器上移植Android操作系统平台,在移动点餐客户终端上实现功能包括点餐、查找菜谱、查看订单、调整确认订单、上菜确认等。,6.3基于Android操作系统平台的点餐系统,用户在餐厅包间通过该点餐客户终端实现自动点餐,信息通过餐厅无线网络传输到后台,整个过程实现无人值守,从而提高工作效率,提升餐厅的服务质量。,6.3基于Android操作系统平台的点餐系统,点餐系统主要文件AndroidManifest.xml全局配置文件,定义application及activity。DcmsApp.java用来设置全局变量,这里用来保存已选菜肴信息及价格。Dishes.java点菜功能实现类。dishes.xml点菜界面定义文件,妈妈新开了个淘宝店,欢迎前来捧场 妈妈的淘宝点开了快半年了,主要卖的是毛绒玩具、坐垫、抱枕之类的,但生意一直不是很好,感觉妈妈还是很用心的,花了不少功夫,但是就是没有人气,所以我也来出自己的一份力,帮忙宣传一下。并且妈妈总是去五亭龙挑最好的玩具整理、发货,质量绝对有保证。另外我家就在扬州五亭龙玩具城旁边,货源丰富,质量可靠,价格便宜。欢迎大家来逛逛【扬州五亭龙玩具总动员】,个人小广告:,