ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:115.37KB ,
资源ID:10245003      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10245003.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Android车载虚拟仪表人机界面设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于Android车载虚拟仪表人机界面设计.docx

1、基于Android车载虚拟仪表人机界面设计摘 要车载虚拟仪表人机界面,是驾驶员获取汽车工况数据的主要界面,便于驾驶员实时全面地掌握汽车工作状态,有效地与汽车进行人机交互,对保障汽车安全稳定的行驶有着重要意义,目前普遍使用的是Windows CE和Linux操作系统。Windows CE操作系统功能稳定,有完善的技术支持,但价格昂贵、源代码封闭、网络可利用资源较少;Linux操作系统的最大优势在于免费和开源,是车载信息显示系统的主流操作系统,但其并不是基于移动设备开发的,不能完全满足移动设备的需求。Android是Google开发的一款基于开源操作系统Linux的开放、开源移动平台,对于目前主流

2、的嵌入式平台支持良好,Android系统的优越性能己在多款移动设备上得到验证。它包括操作系统用户界面和应用程序而且不存在任何以往阻碍移动产业创新的专有权障碍。文中提出利用Android作为车载虚拟仪表软件开发平台,在Android提供的应用程序框架上来实现虚拟仪表的人机界面。关键词:虚拟仪表 操作系统 人机界面 AndroidAbstractVehicle virtual instrument interface, is the main interface driver gets condition data of automobile, it is convenient for the d

3、river to real-time to grasp the working conditions of automotive, effective human-computer interaction and the automobile, has the vital significance to guarantee safe and stable running of the car, at present the widespread use of Windows CE and the Linux operating system. Function of Windows CE op

4、erating system stability, a sound technical support, but the price is expensive, the source code, can use fewer resources closed network; maximum advantage of Linux operating system is free and open source, is a vehicle information display system of mainstream operating system, but it is not based o

5、n the mobile device development, cannot meet the demands of mobile equipment demand.Android is the development of a Google based on open source mobile platform, open source operating system Linux, for the current mainstream embedded platform support, superior performance of the Android system has be

6、en validated in a variety of mobile devices. It includes the operating system user interface and application program and there is no past hinder the mobile industry innovation proprietary obstacles. In this paper using Android as the virtual instrument software development platform,application frame

7、work provided by Android to realize virtual instrument interface.KEY WORD:Virtual instrument operating system interface Android目录第一章 绪言 1第一节 系统硬件体系 1第二章 Android软件系统的定制 4第一节 Android系统架构 4第二节 程序重新开发 5第三章 应用程序的设计与实现 8第一节 模块的分类 8第四章 结束语 10结 论 11致 谢 12参考文献 13第一章 绪言第一节 系统硬件体系虽然Android是作为一款手机软件平台进行开发的应用程序框

8、架和应用程序但其本质是一个嵌入式软件开发平台。若将Android用于车载虚拟仪表系统的开发,需要对仪表系统应用的特点进行调整,系统采用的硬件平台是REAL210,CPU处理速度600 MHz1 GHz,基于CortexA8架构。系统中主要的硬件模块有音频模块、CAN模块、液晶显示模块、串口和以太网通信模块,如图1.1所示。图1.1 硬件系统架构以嵌入式系统的硬件为背景,对主要部件给予客观的分类和评价。硬件是软件的基石,固然它硬件是有多么的重要。嵌入式系统开发与软件开发有巨大的差别!只有充分了解硬件,软件才能更大限度的挖掘硬件的能力。所谓硬件系统,是指构成计算机的物理设备,即由机械、光、电、磁器

9、件构成的具有计算、控制、存储、输入和输出功能的实体部件。如CPU、存储器、软盘驱动器、硬盘驱动器、光盘驱动器、主机板、各种卡及整机中的主机、显示器、打印机、绘图仪、调制解调器等等,整机硬件也称“硬设备”。 随着电子系统的复杂化,系统设计已经成为一门重要的学科,传统的反复试验法已经越来越不适应时代的发展。发展迅速的软硬件协同设计技术越来越受到人们的重视。它是在系统目标要求的指导下,通过综合分析系统软硬件功能及现有资源,最大限度地挖掘系统软硬件之间的并发性,协调设计软硬件体系结构,以使系统工作在最佳工作状态。硬件系统分为三种典型结构一、单总线结构即用一组系统总线将计算机系统的各部分连接起来,各部分

10、之间可以通过总线交换信息。这种结构的优点是易于扩充新的I/O设备,并且各种I/O设备的寄存器和主存器的存储单元可以统一编址,使CPU访问I/O设备更方便灵活;其缺点是同一时刻只能允许挂在总线上的一对设置之间互相传送信息,也即分时使用总线,这就限制了信息传送的吞吐量,这种结构一般用在微型计算机和小型计算机中。二、双总线结构为了消除信息传送的瓶颈,常设置多组总线,最常见的是在主存和CPU之间设置一组专用的高速存储总线。这种结构的优点是控制线路简单,对IO总线的传送速率要求低;其缺点是CPU的工作效率较低,因为I/O设备与主存之间的信息交换要经过CPU进行。以存储器为中心的双总线结构中,主存储器可通

11、过存储总线与CPU交换信息,同时还可以通过系统总线与I/O设备交换信息,这种结构的优点是信息传送速率高;其缺定是需要增加硬件的投资。三、采用通道的大型系统结构为了扩大系统的功能和提高系统的效率,在大、中型计算机系统中采用通道结构,在这种结构中,一台主机可以连接多个通道,一个通道可以连接一台或多台I/O控制器,一台I/O控制器又可以连接一台或者多台I/O设备,所以它具有较大的扩展余地,另外由通道来管理和控制I/O设备,减轻了CPU负担,提高了整个系统的效率。最小硬件系统嵌入式系统的硬件设计与其应用场合和应用系统的不同而有所差别。一般情况下,用户可以根据自己的要求,选用合适的微处理器类型,根据相应

12、的接口电路搭配不同类型外设,构成不同用途、不同不同规模的应用系统。这些系统,无论其规模多大,从硬件上看,都可以分为由核心电路构成的最小系统以及各种各样外部设备所需的外围接口电路。通常最小硬件系统指的是,由处理器以及SDRAM和FLASH构成的存储电路,再加上一些必要的辅助电路构成的核心系统。最小硬件系统不仅是整个硬件系统的核心部分,它的构成对软件系统也有重要的影响,其构成决定了处于软件系统最底层的Bootloder的设计,同时它也是嵌入式操作系统正常运行的基础。换而言之,最小硬件系统及其之上的最底层的最小软件系统构成了嵌入式系统最基本最核心的部分第二章 Android软件系统的定制第一节 An

13、droid系统架构由于Android最初是基于手机软件开发平台进行设计的,而且其中大部分模块都是为手机通信所设计,为节约开发板资源,需要将Android系统中不必要的组件剪裁掉,保留必要的最小系统。因此必须对框架进行修改,将与电话、短信等相关的模块移除。仅留下必需的Android的核心模块,包括Package Manager、System Service、Input Service、Hardware SerVice和System Server等。通过修改System Server的加载过程可以去掉不需要的服务和模块,另外还要实现底层硬件的驱动程序,重新交叉编译Linux 26内核,并在驱动程序

14、实现的基础上封装函数库,以便Android的应用程序通过JNI的方式访问底层驱动。经过定制和修改过的Android系统架构如图2所示。图2.1 定制的Android系统架构车载虚拟仪表人机界面的应用程序需要进行重新开发,主要是界面模块、CAN模块、数据访问模块和告警模块。其中CAN模块设计成Service的方式。数据访问模块设计为Content Provider。告警模块采用的通知方式为Broadcast Receiver和Notifica。系统通电后,在Android的System Server中首先启动CAN模块,然后启动主界面的程序第二节 程序重新开发应用程序的设计与实现应用程序的系统架

15、构。通过PackageManager提供的各个APK的信息以菜单方式对各个功能模块进行调用。51CTO为大家介绍过Android SNK初探,Android开发必须要了解构造块,Android应用程序是由四个重要组成部分组成的,这四种构造块如下:ActivityIntent ReceiverServiceContent Provider51CTO推荐专题:Android开发应用详解但是,并不是每一个Android应用程序都需要这四种构造块,这不是必须的,某些时候,我们只需要这四种中的几种组合成我们的应用。当我们明确了我们的应用需要哪些构造块后,我们就需要在AndroidManifest.xml

16、中登记这些构造块的清单。这是一个XML配置文件,这个配置文件用于定义我们的应用程序的组件、组件的功能及必要条件等。这个配置文件是每个Android应用必需的。对于AndroidMainfest.xml的Schema,参考SDK包附带的文档。以下,我们对四种构造块做一些说明:一、ActivityActivity是Android构造块中最基本的一种,在应用中,一个activity通常就是一个单独的屏幕。每一个activity都被实现为一个独立的类,并且继承于Activity这个基类。这个activity类将会显示由几个Views控件组成的用户接口,并对事件做出响应。大部份的应用都会包含多个的屏幕。

17、例如,一个短消息应用程序将会有一个屏幕用于显示联系人列表,第二个屏幕用于写短消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。每一个这样的屏幕,就是一个activity。从一个屏幕导航到另一个屏幕是很简单的。在一些应用中,一个屏幕甚至会返回值给前一个屏幕。当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,还可以从历史堆栈中删除。默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕。Android使用了Intent这个特殊类,实现在屏幕与屏幕之间移动。Intent类用于描述一个应用将会做什么事。在Intent的描

18、述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:MAIN(activity的门户)、VIEW、PICK、EDIT等。而动作对应的数据则以URI的形式进行表示。例如:要查看一个人的联系方式,你需要创建一个动作类型为VIEW的intent,以及一个表示这个人的URI。与之有关系的一个类叫IntentFilter。相对于intent是一个有效的做某事的请求,一个intent filter则用于描述一个activity(或者Intent Receiver)能够操作哪些intent。一个activity如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个Inte

19、ntFilter要知道怎么去处理VIEW动作和表示一个人的URI。IntentFilter需要在AndroidManifest.xml中定义。通过解析各种intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity将会调用startActivity(Intent myIntent)方法。然后,系统会在所有安装的应用程序中定义的IntentFilter中查找,找到最匹配myIntent的Intent对应的activity。新的activity接收到myIntent的通知后,开始运行。当startActivity方法被调用将触发解析myIntent的动作,这个机制提供了两个关

20、键好处:A、Activities能够重复利用从其它组件中以Intent的形式产生的一个请求;B、Activities可以在任何时候被一个具有相同IntentFilter的新的Activity取代。二、Intent Receiver当你希望你的应用能够对一个外部的事件(如当电话呼入时,或者数据网络可用时,或者到了晚上时)做出响应,你可以使用一个Intent Receiver。虽然Intent Receiver在感兴趣的事件发生时,会使用NotificationManager通知用户,但它并不能生成一个UI。Intent Receiver在AndroidManifest.xml中注册,但也可以在代

21、码中使用Context.registerReceiver()进行注册。当一个intent receiver被触发时,你的应用不必对请求调用intent receiver,系统会在需要的时候启动你的应用。各种应用还可以通过使用Context.broadcastIntent()将它们自己的intent receiver广播给其它应用程序。三、Service一个Service是一段长生命周期的,没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的ac

22、tivity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service一直执行,直到这个service运行结束。另外,我们还可以通过使用Context.bindService()方法,连接到一个service上(如果这个service还没有运行将启动它)。当连接到一个service之后,我们还可以service提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作。四、Content

23、 Provider应用程序能够将它们的数据保存到文件中、SQL数据库中,甚至是任何有效的设备中。当你想将你的应用数据与其它的应用共享时,Content Provider将会很有用。一个Content Provider类实现了一组标准的方法,从而能够让其它的应用保存或读取此Content Provider处理的各种数据类型。第三章 应用程序的设计与实现第一节 模块的分类模块可以分为四大类,CAN模块、数据访问模块、功能模块和告警模块。CAN模块CAN模块用于数据的采集和处理,CAN模块接到数据后,要对数据进行解析,判断出接收到的数据类型。最终得到所需要的值。计算方法为根据参数所在数据域的字节位置

24、提取其对应的原始数,再根据该参数对应的分辨率和偏移量得到参数值,其参数值的计算方法为:参数值=参数原始数分辨率+偏移量。通过编程计算出数据代表的实际发动机状态值,即可准确地在车辆实时功能模块中显示当前的车辆状态。数据访问模块程序的数据访问模块,采用Android系统内置的SQLite数据库,对一些重要车况信息自动记忆存储,便于分析和维修,起到汽车“黑匣子”的作用。存储的车况信息可以通过点击回放按钮直接在仪表界面上回放,真实再现汽车行进过程中的状况。首先调用openOrCreateDatabase()创建vehicle_databasedb数据库,然后配置SQLite数据库属性通过。创建一个数据

25、表分别定义:行驶日期、出厂信息、车速、转速信号、启动、停止时刻、行使里程、报警信息等。将黑匣子接收到的数据对应数据表定义的格式通过insert()向数据表中插入数据,通过delete()指定日期来删除过期的数据。显示历史数据需要先通过DatePicker获取用户输入的年、月、日,并将具体日期数值提取出来,将条件放入SQL查询语句query()中来查询,定义一个Cursor返回结果,然后创建一个数据适配器将Cursor的结果直接映射到ListView中的对应的TextView上。功能模块功能模块用于测控车辆的速度、发动机转速、水温和燃油、告警事件的显示。系统设计的功能模块界面显示如图3所示。 如

26、图3 功能模块界面显示告警模块告警模块本身是一个Broadcast Receiver,它负责接收其他模块的告警事件,超速、油量、水温、油压等,并将这些信息写入数据库,同时调用告警显示界面显示对应的信息或以Notification的方式在状态栏进行提示。在Android系统中,所有的应用程序之间都通过Binder进行通信,这种IPC机制是基于Linux底层驱动实现的,与传统的进程间通信机制相比,它的执行具有更高的效率和更好的扩展性。第四章 结束语利用Android作为人机界面所开发的框架通过对各个功能模块的细化,可以使系统设计更合理,模块结构更独立,容易进行软件维护和代码二次开发,基于Andro

27、id应用程序框架设计的各个模块,可以进行自由修改和替换,提高了系统的可定制性,虽然Android是手机软件开发平台,但凭借其优秀的系统架构设计和理念,会有越来越多的车载虚拟仪表采用Android作为开发平台。结 论本系统是基于Android车载虚拟仪表人机界面设计,该系统具备一个可以商用的几乎所有的条件,实现了用户的管理,致 谢从这篇文论选题到论文撰写结束的这段时间里,我要感谢我的指导老师,在整个设计过程中,她给予了我耐心的指导和帮组,当然我还要感谢帮组过我的同学,我们在相互学习和交流中,解决问题共同进步,最后还要感谢信息系的老师们,感谢你们为我们的学习与成才创造各种条件和付出的辛勤劳动。感谢所有关心和帮组我成长的老师们,有你们的支持和帮组,才使我顺利完成了毕业设计。在这道一句:您们辛苦了,感谢您们!最后,衷心感谢在百忙之中评阅论文和参加各位答辩的老师们。参考文献【1】 岳传真,Android系统移植和应用程序开发【D】上海:复旦大学,2010.【2】 普措才仁,冯旭.基于Linux的ARM9嵌入式车载系统的设计与实现【J】.自动化于仪器仪表,2010(4);3942,.【3】 陈璟,陈平华,李文亮,Android 内核分析【J】.现代计算,2009(11):112115.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1