




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业论文题目: 基于cortex-A8 行车记录仪设计 学 生 姓 名: 学 号: 系 别: 专 业 班 级: 指导教师姓名及职称: 起 止 时 间: 年 月 年 月摘 要行车记录仪即记录车辆行驶途中的影像及声音等相关资讯的仪器。安装行车记录仪后,能够记录汽车行驶全过程的视频图像,可为交通事故提供证据。喜欢自驾游的人,还可以用它来记录征服艰难险阻的过程。开车时边走边录像,同时把时间都记录在录像里,相当“黑匣子”。也可在家用作DV拍摄生活乐趣,或者作为家用监控使用。平时还可以做停车监控,也可以防止一些不可避免的碰瓷行为。随着汽车的快速普及,现代传感器技术,过程控制技术、通讯技术及计算机技术的迅猛
2、发展,智能化的车载辅助终端的需求己被高度关注,并成为一个具有深远前景的研究方向。本课题的研究具有:行车记录仪通过图像传感器采集行车的实时数据,并进行图像编码压缩存储,实现将图片合成多媒体保存技术;采用Cortex A8作为系统的主机主控芯片以满足日益提高的用户需求。关键词: 行车记录仪、 Cortex A8、 图像编码、 压缩、 存储AbstractThat tachograph recording equipment vehicle on the way video and audio, and other related information. After you install the
3、 traffic recorder capable of recording the whole process of car driving video images could provide evidence for the traffic accident. Like people traveling by car, you can also use it to record conquer difficulties and obstacles in the process.When walking, driving record, and the time are recorded
4、in the video, the very "black box." It can also be used as a home DV shooting fun of life, or use as a home monitoring. You can also do the usual parking monitor, it can also prevent some of the inevitable Pengci behavior. With the rapid proliferation of the car, modern sensor technology,
5、the rapid development of process control technology, communication technology and computer technology, the demand for intelligent vehicle auxiliary terminal has been highly concerned about and become a research has far-reaching prospects.Research on this subject: a tachograph collected by the image
6、sensor data in real-time driving, and image compression coding storage for image synthesis will save multimedia technology; uses Cortex A8 chip as the main control system to meet the increasing demand of users . Keywords: Tachograph、 Cortex A8、Image coding、Compressed、Storage目录1绪论11.1研究背景和意义11.2嵌入式系统
7、简介21.3嵌入式处理器与嵌入式系统21.4嵌入式系统的发展现状与发展趋势31.5本文研究内容42 系统方案设计52.1系统功能需求分析52.2系统总体结构52.3 系统设计方案63 系统硬件环境133.1 GEC210开发板133.2 核心板简介133.3 GEC 210底板接口说明134 系统方案的软件设计174.1 PC端Liunx系统开发环境搭建174.2 Cortex-A8开发板Linux系统194.3系统程序驱动设计245 系统调试395.1测试摄像头395.2录视频405.3 PC端播放41总结与展望41致 谢45参考文献46附录471绪论1.1研究背景和意义行车记录仪可说是汽车
8、使用的黑匣子,是对车辆行驶速度、时间、里程以及有关车辆行驶的其它状态信息进行记录、存储并可通过接口实现数据输出的数字式电子记录设置。它将微机应用的先进性、实用性与车辆运行状态统一起来,借由发动引擎随即可以录像录影的功能,透过高清镜头摄影记录车辆行驶途中的影像及声音,能全程同步记录、监视车辆运行状态,并将汽车行驶轨迹通过专用软件在电脑上完整、准确的再现,客观地记录机动车发送车祸前的驾驶员的操作过程。如果使用记录仪的话,当意外发生时,就可以有效保留当时现场的图像,碰到专业碰瓷的和拦路抢劫的,保障驾驶人自我权利,有效地提供驾驶员在事故发送前作出的种种反映情况,行车记录仪还将可以提供破案的决定性的证据
9、:事故发生现场和案犯的外貌特征等,在查询交通违章、量刑和赔偿上将更加准确和有据可依,也给保险公司的理赔提供了证据。对遏止疲劳驾驶和车辆超速等交通违章、约束驾驶人员的不良驾驶行为保障车辆行驶安全以及进行道路交通事故的分析鉴定具有重要作用。近年来随着我国科技的发展以及国民经济的快速提高,道路交通事故逐年呈现出上升趋势,尤其是长途客运车辆的重、特大道路群死群伤交通事故频频发生,导致给人民生命财产带来了巨大损失,也在一定程度上制约了国民经济的进一步发展。如何改变这种状况,成为了我国交通管理部门最优先考虑的问题。当前,特别是应充分借鉴国外成功经验、做法,大力推进行车记录仪在国内的应用,并充分发挥行车记录
10、仪在道路交通事故预防工作中的作用。行车记录仪的应用和管理是采用先进的科技管理手段,加强道路交通安全管理的重要举措之一。记录仪的使用,除了可以为记录仪的使用为道路运输企业管理和交通管理部门执法提供了直接可靠的依据,高效地对车辆进行合理的跳读,从而降低其运营成本;还可以监督员工的绩效考核,建立高效竞争机制,提高公司经济效益。从目前我国汽车行车记录仪的应用情况分析,车辆安装行车记录仪能有以下使用效果:一是记录相关的监控数据;二是车辆超速行驶时能发出报警声警告减速,督促司机安全行车,起到防止和减少交通事故的作用;三是安装行车记录仪后司机能保持中速行驶,对延长车辆使用寿命、节约燃料、减轻轮胎损耗都起到重
11、要的作用,可减少企业经营管理成本;四是行车记录仪记录的数据,对交通事故的原因和责任分析都有一定的作用。目前,我国的汽车生产在汽车出厂时没有安装行车记录仪。随着我国立法规定营运车辆必须安装行车记录仪,以及伴随着我国巨大的、超快速增长的汽车市场,行车记录仪也将出现一个巨大的市场,市场年均增长率将伴随我国汽车产业保持高速增长。凭借其自身优势,行车记录仪将会在市场上牢牢占据一席之地。1.2嵌入式系统简介随着数字信息技术和网络技术的高速发展,我们已经进入数码时代。建立在其基础上的嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术、商业文化艺术、娱乐业以及人们的日常生活等方方面面。随着国内外嵌入式产品
12、(如车载电脑、机顶盒等)的进一步开发和推广,嵌入式技术越来越和人们的生活紧密相关。我们能够想象有人可能从来没有接触过计算机,但不能相信他从来没有接触过嵌入式系统。因为嵌入式系统无处不在,从家庭的洗衣机、电冰箱、小汽车,到办公室里的远程会议系统等,这些都属于可以使用嵌入式技术进行开发和改造的产品。本文对行车记录仪实现的研究就结合了对基于ARM 与Linux 的嵌入式技术的研究。1.3嵌入式处理器与嵌入式系统所谓嵌入式系统1(Embedded System),实际上是“嵌入式计算机系统”的简称,它是相对于通用计算机系统而言的。国际电气与电子工程师协议(IEEE)对嵌入式系统的定义为:“嵌入式系统是
13、用来控制或监视机器、装置或工厂等大规模系统的设备”。国内对嵌入式系统的一般定义为:“嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”。嵌入式系统是技术密集,投资强度大,高度分散,不断创新的知识密集型系统。嵌入式系统和一般的PC机上的应用系统不用。针对不同的具体应用而设计的嵌入式系统之间差别也很大。一般而已功能单一,对兼容性方面要求较低,但在体积、成本等方面限制较多。嵌入式系统是知识密集,投资规模大,产品更新换代快,且具有不断创新特征不断发展的系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统已经用户的
14、应用程序等四个部分组成,用于实现对其它设备的控制、监视或管理等功能。嵌入式系统的核心是嵌入式微处理器。ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的同城,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工程控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。1.4
15、嵌入式系统的发展现状与发展趋势1.4.1嵌入式系统发展现状进入20世纪90年代后,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。在通信领域,数字技术正在全面取代模拟技术。在广播电视领域,美国已开始由模拟电视向数字电视转变,欧洲DVB(数字电视广播)技术已在全球大多数国家推广。而软件、集成电路和新型元器件在产业发展中的作用日益重要,如维纳斯计划生产机顶盒,其核心技术就是采用32位以上芯片级的嵌入式技术。在个人领域中,嵌入式产品将主要是个人商用,作为个人移动的数据处理和通讯软件。 在硬件方面,不仅有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。目前低层系统和
16、硬件平台经过多年来的研究,已经相当成熟,能够实现各种功能。而软件方面,也有一些成熟的软件系统,如国外的嵌入式实时操作系统有WindRiver、Microsoft、QNX和Nuclear等,我国的嵌入式系统软件如科银公司的嵌入式软件开发平台DeltaSystem,中科院的Hopen嵌入式操作系统。 当前中国嵌入式系统市场上的热点应用有:消费电子、安全防务、电子商务、物流管理、自动控制、汽车智能化、电力系统管理等。1.4.2嵌入式系统发展趋势信息时代、数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,未来嵌入式系统的发展趋势有
17、: (1)系统工程化 嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。目前很多厂商已经充分考虑到这一点,在主推系统的同时,将开发环境也作为重点推广。比如三星在推广ARM7,ARM9芯片的同时还提供开发板和板级支持包(BSP),而WindowCE在主推系统时也提供Embedded VC作为开发工具,还有Vxworks的Tonado开发环境,DeltaOS的Limda编译环境等等。 (2)功能多样化 随着因特网技术的成熟、带宽日益提高,使以往的设备功能不再单一
18、,结构更加复杂,如电话、手机等。同时要求芯片设计厂商在芯片上集成更多的功能,满足应用功能的升级,一方面采用更强大的嵌入式处理器,如32位、64位RISC芯片或信号处理器DSP增强处理能力,同时增加功能接口,如USB,扩展总线类型,如CAN BUS,加强对多媒体、图形等的处理,逐步实施片上系统(SOC)的概念。软件方面采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。 (3) 精简系统内核、降低功耗和软硬
19、件成本未来的嵌入式产品是软硬件紧密结合的设备,为了降低功耗和成本,需要尽量精简系统内核,只保留和系统功能紧密相关的软硬件,利用最少的资源实现最适当的功能,选用最佳的编程模型和不断改进算法,优化编译器性能。(4)交互友好化 嵌入式设备能与用户亲密接触,最重要的因素就是它能提供友好的用户界面、图像界面、灵活的控制方式、对专业知识要求低,甚至不需要嵌入式的知识就能让人们很快、很容易掌握嵌入式产品的使用方法,因此未来嵌入式系统需要更高的可交互性和高度抽象化。1.5本文研究内容本文基于cortex-A82的开发板,利用Linux 系统开发环境进行行车记录仪主机控制程序的设计,程序通过触摸屏开启
20、行车记录仪的摄像头实时采集图像处理及编码压缩,并将进行采集到的图象数据显示于开发板和转换成视频保存于外部储存设备SD卡。2 系统方案设计2.1系统功能需求分析道路交通的飞速发展给人们的出行带来便捷的同时,也带来了诸如“碰瓷”、“套牌”类的交通违法行为。为加大道路监督力度,应到安全畅通的交通环境,行车记录仪越来越受到人们的重视。本文探索开发的行车记录仪在保障维护司机的合法权益方面起着重要作用,其主要功能特点如下:(1)在行车过程中,行车记录仪记录前摄像头具有全程记录功能,可记录车外状况。当车辆速度发生突变时,行车记录仪能够马上记录下速度突变前后若干面的行驶照片流,使得事件发生前后的车外情况得以完
21、整记录,从而为交通事故及“碰瓷”等提供有利依据;(2)行车记录仪后置摄像头具有实时动态显示的功能,在私家车上可以做为车内动态监控使用,也可将该摄像头安装于车尾,跟倒车雷达配合,辅助倒车;(3)在行驶中,车头过多的电子产品很容易对驾驶员造成行驶盲区,从而产生新的驾驶隐患,本系统功能全,体积小,便于隐藏式安装设计,消除驾驶隐患等;基于以上功能热点,本课题研究设计了一款新型行车记录仪,主要具有高性价比、低成本、体积小、多功能的特点。在硬件框架上,系统主要包括摄像头模块,SD卡储存单元以及触摸屏显示模块。通过嵌入式Linux系统实现系统功能。2.2系统总体结构本系统设计的行车记录仪系统数据存数采用SD
22、卡,小巧方便。显示屏采用的是800*480的触摸电容屏,画面清晰。摄像头采用低成本的数字输出CMOS摄像头,该摄像头包含30W像素的CMOS图像感光芯片,用于实现行车过程中的图像采集。系统嵌入了可视化的界面,加载详细的目录与菜单,可触屏操作,具有良好的人机交互窗口与易操作性。在硬件上,采用了cortex-A8的开发板,其预留诸多数据接口,提高系统的可拓展性及二次升级的能力。根据本论文所设计的系统程序的主要功能如图2-1所示。系统以ARM微处理器Cortex-A8为核心,拓展多个功能模块,共同搭建出系统的硬件结构。图像界面/应用程序Linux操作系统设备驱动Cortex - A8LCD电源开关信
23、号SD卡NAND触摸屏SDRAMUSB HOST图2.1行车记录仪系统功能结构图2.3 系统设计方案2.3.1处理器的选择在系统设计方面,目前行车记录仪的微处理器一般采用的是8位MCS51单片机,此类单片机应用广泛,价格相对较低,发展也较成熟。但是单片机虽然能够实现系统的基本功能,但是对于真正的图像采集,却不能保证系统对实时性、大量数据的处理能力等方面的要求,即便是32位的MCU,也不能直接用IO口采集图像数据。故考虑采用cortex-A8 处理器,其性能,功率,效率对于单片机都比较占优势的处理器。ARM架构复杂,适用于系统复杂度较高的产品;单片机架构相对简单,硬件资源相对较少,实用于一般的应
24、用。行车记录仪对性能要求较高,需要接受大量数据并进行处理,流程复杂,ARM处理器内部寄存器很多,可以于存放中间数据和优化对操作数的访问,这对于提高处理器的性能以及进行实时控制都极为有利,同时,ARM处理器的编译器具有优化功能,可以生成高效率执行的机器代码,可以很方便地解决这些问题。ARM处理器具有以下特点:(1) 体积小、低功耗、低成本、高性能。 (2) 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件。(3) 大量使用寄存器,指令执行速度更快。(4) 大多数数据操作都在寄存器中完成。(5) 寻址方式灵活简单,执行效率高。(6) 指令长度固定。由于ARM芯片体积
25、小,引脚多,焊接难度大,系统构建复杂,本文最终选择使用RAM嵌入式开发板进行设计。2.3.2嵌入式操作系统的选择 嵌入式操作系统定义嵌入式操作系统3(Embedded Operating System,简称:EOS)是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前在嵌入式领域广泛使用的操作系统有:嵌入式Lin
26、ux、Windows CE、VxWorks等,以及应用在智能手机和平板电脑的Android、iOS等。其特点有以下四点:(1)强稳定性,弱交互性:嵌入式系统一旦开始运行就不需要用户过多的干预,这就要求负责系统管理的EOS具有很强的稳定性;(2)较强的实时性:高实时性的系统软件(OS)是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。(3)可伸缩性:开放、可伸缩性的体系结构;(4)外设接口的统一性:提供各种设备驱动接口; 目前主流三种嵌入式操作系统1 VxWorksVxWorks4操作系统是美国WindRiver公司于1983年设计开发的一种嵌
27、入式实时操作系统,依据其良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。VxWorks的特点有:(1)高实时性实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。实时性的强弱是以完成规定功能和作出响应时间的长短来衡量的。VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。VxWorks的任务调度策略
28、以可抢占式调度(PreemptivePriorityScheduling)为基础,辅以时间轮转调度算法(Round-RobinScheduling)机制。这一调度算法使得VxWorks能够及时响应高优先级的任务。而同级任务间则可选择时间片轮转法使多个同优先级的任务并发执行。1) 可裁剪性VxWorks的可裁剪性,可以使开发者根据自己应用程序的需要来选择操作系统中部件,用户没用到的功能模块都可以去掉。VxWorks由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。VxWorks内核最小为8kB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。由于它的高度灵活
29、性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。2) 友好的开发调试环境VxWorks的开发环境Tornado是一个友好的开发环境,它可以运行在多种主机上,包括Sun、HP、Dec、Mips等,主机的操作系统则支持Unix、WindowsNT等。系统使用的流行图形界面方便使用者较快地理解和掌握。VxWorks支持应用程序的动态链接和动态下载,使开发者省去了每次调试都将应用程序与操作系统内核进行链接和下载的步骤,缩短了编辑调试的周期。而VxWorks具有的可视化图形界面的调试工具,也很大程度地方便了开发者的调试工作。2 LinuxLinux5是Unix操作系统的
30、克隆,可以免费使用,遵循GPL声明,可以自由修改和传播,是一个自由的操作系统。Linux起源于芬兰一个名为LinusTorvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。从1991年问世到现在,Linux已发展成为一个功能强大、设计完善的操作系统,不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,这与 Linux具有的良好特性是分不开的。简单的说, 嵌入式Linux操作系统具有以下主要特性:(1)内核可裁剪,多任务支持、多用户支持,性能高、稳定性好。 (2)开放的源代码,丰富的软件资源,广泛软件开发者的支持,价格低廉。 (3)良好的可移植性。可移植性是指将操作系统从一
31、个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。 Linux是一种可移植的操作系统, 为运行Linux的不同计算机平台与其他任何机器进行准确有效的通信提供了手段,不需要另外增加特殊的通信接口。 (4)可以运行在许多硬件平台上。目前Linux已经可以在数十种32位和64位芯片中运行,他们包括IntelX86、IntelXS cale、ARM、PowerPC、MIPS、ALPHA、SPARC等。 而且能支持对称多处理器(SMP)的机器。 (5)不仅可以运行许多自由发布的应用软件,还可以运行许多商品化的应用软件。目前有越来越多的应用程序厂商支持 Linux,而且通过各种仿真软件,Linux
32、系统还可以运行许多其他操作系统的应用软件,如Windows等。(6)可靠的系统安全。Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。 (7)强大的网络功能。Linux诞生、成长于网络,自身的网络功能相当强大,具有内置的TCP/IP协议栈,可以提供FTP、PPP、 Telnet、WWW等服务; 同时还可以通过应用程序向其他系统提供服务,例如向其他Windows用户提供类似于网络邻居的Samba文件服务。 (8)常用嵌入式芯片的驱动集,支持大量的周边硬件设备,驱动丰富。 (9)针对嵌入式的存储方案,提
33、供实时版本如RTLinux和完善的嵌入式解决方案。 完善的中文支持,强大的技术支持,完整的文档。 3 WindowsCEWindowsCE6(简称Wince)是微软开发的一个源码开放的、紧凑的、高效和可扩展的操作系统,适用于各种嵌入式系统和产品。它拥有多线程、多任务、确定性的实时、完全抢先式优先级的操作系统环境,专门面向只有有限资源的硬件环境。同时,它的模块化设计方式使得系统开发人员和应用开发人员能够为多种多样的产品来定制它,例如手持电脑、专用的工业控制器以及消费用电子产品等。Wince除了具有Windows系统的许多共性外,又具有嵌入式系统所要求的实时性、内存小等特性。同时EmbeddedV
34、isualC+给嵌入式系统应用程序的开发提供了极大的方便。因此,利用Wince开发嵌入式系统或装置不仅可以获得最好的性能,而且可以缩短开发周期和降低技术风险。Wince的特点有:(1)实时性支持Wince的实时性支持包括以下内容:支持嵌套的中断,这可以让高优先级的中断立即被响应;更好的线程响应,高优先级的中断服务线程调度延迟的上限更加紧了,这可以让开发人员知道线程调度转换发生的时间,通过提高监视和控制硬件的能力开发新的嵌入式应用程序;更多的优先级别,256个优先级别给予开发人员更大的灵活性来控制嵌入式系统的调度;以及更好的控制,对线程时间片级的控制可以支持对调度机制更大的控制。(2)内核大小W
35、inCE的内核可以很小,最小内核可以不足350kB,因为系统的大部分功能都在各自的功能模块中实现。不过,它是WinCE操作系统真正的核心,主要完成6类功能,即处理器调度、内存管理、异常处理、系统内的通信机制、为其他部分提供核心调用例程、为系统范围内的调试提供支持。(3)拥有良好的通信能力Wince对通信的支持是十分灵活的,可完成的通信任务包括:从网络或台式机下载文件;基于Wince的设备之间的信息交换;发送和接收电子邮件;向服务器发送数据;浏览Internet;阅读条形码等。为了实现这些不同的通信要求,Wince能支持多种通信硬件,如串行电缆、红外线收发器,无线收发器、调制解调器和条形码阅读器
36、等。Wince支持两种基本的通信技术:串行通信和网络通信。(4)支持超过1400个Win32API有了这些API,开发者就能利用大量其他的编程资源、工具、软件例子以及文档来进行开发工作,降低了培训成本,缩短了进入市场的时间。(5)模块化设计方法Wince的模块化设计使得它能够在大量的平台上定制使用,开发者可以使用满足平台系统需求的最小软件模块和组件集合来设计嵌入式系统平台,从而使内存用量最小并最大可能地提供操作系统的性能。三种嵌入式系统对比表2.1 嵌入式系统的对比表Palm OS Windows CE 3.0 嵌入式Linux 大小核心几十KB,整个嵌入式环境也不大核心占500
37、KB的ROM和250KB的RAM。整个Windows CE操作系统,包括硬件抽象层、Window CE Kernel、Uuesr、GDI、文件系统和数据库,大约共1.5MB核心从几十KB到500KB。整个嵌入式环境最小才100KB左右,并且以后还将越来越小可开发性可以方便地开发定制用户开发定制不方便,受微软公司限制比较多用户可以方便地开发定制,可以自由卸装用户模块,不受任何限制互操作性互操作性强互操作性比较强,Windows可通过OEM的许可协议使用于其它设备互操作性很强实用性比较好比较好 很好通用性适用于多种CPU和多种硬件平台适用于多种CPU和多种硬件平台适用于多种CPU和多种硬件平台适用
38、的应用领域应用的领域较广,特别适用于掌上电脑的开发应用领域较广,windowC是为了新一代非传统的PC设备而设计的,这些设备包括掌上电脑、手持电脑以及用于车载电脑等由于Linux内核结构及功能等原因,嵌入式Linux应用领域非常广泛,特别适于进行信息家电的开发通过以上三个操作系统的优缺点对比,本论文选择了非常适合行车记录仪题目的Linux系统。Linux系统内核小、效率高,开放源代码的,不在存黑箱技术,遍布全球的众多Linux爱好者都是Linux开发者的强大技术支持者,Linux的源代码随处可得,注释丰富,文档齐全,易于解决各种问题;Linux不仅支持x86芯片,还是一个跨平台的系统。到目前为
39、止,它可以支持2030种CPU;Linux在内核结构的设计中考虑适应系统的可裁减性的要求;Linux内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网络,还有无线网络、Tokenring(令牌环)和光纤甚至卫星的支持。3 系统硬件环境3.1 GEC210开发板GEC210是一款高性能的Cortext-A8 核心板。如下图它采用三星S5PV210作为主处理器,运行主频可高达1GHz。S5PV210内部集成了PowerVRSGX540高性能图形引擎,支持3D图形流畅运行,并可流畅播放1080P大尺寸视频。3.2 核心板简介表3-1核心板描述表核心板各个设备描述如下表It
40、em描述CPU处理器1.Samsung S5PV210,基于Cortex -A8,运行主频1GHz2.内置Power VR SGX540高性能图形引擎3.支持2D/3D图形加速,支持1080P30fps视频解码DDR2 RAM内存1. 最高支持1080p30fps视频输入2. Size: 512MB3. 32bit 数据总线,单通道4.运行频率: 200MHZFLASH存储接口资源1. SLC NAND Flash : 256M/1GB2. 2*60 Pin 2.0mm space DIP connector3.1*30 Pin 2.0mm space DIP connector板载资源1.1
41、*51 Pin 1.0mm space SMD connector2.4 x User Leds (Green)3.HDMI 接口电源供电Supply Voltage from 2V to 6V3.3 GEC 210底板接口说明1) 电源接口本开发板采用5V直流电源供电,提供了1个电源入口,J8为附带的5V电源适配器底座。图3.1 电源接口电路图2) 串口接口S5PV210本身总共有4个串口,其中UART1为四线的功能串口,UART0、2、3为两线串口。在本开发板上,UART0已经经过RS232电平转换,它对应于J19,你可以通过附带的交叉串口线和PC互换通讯。J18,J20,J22。图3.2
42、 串口接口电路图3) USB模块原理图图3.3 USB模块电路图4) 触摸屏模块原理图图3.4 触摸屏原理图5) LCD显示模块原理图本论文使用了开发板LCD -J24接口座:0.5mm间距的41pin贴片座,LCD接口座中包含了常见的LCD所用的大部分控制信号(行场扫描、时钟和使能等),和完整的RGB数据信号(RGB输出为8:8:8,即最高可支持1600万色的LCD);图3.5 LCD显示原理图6) SD卡原理图GEC210 引出2路 SDIO接口,在本开发底板中,SDIO 0 用作普通SD 卡接口使用,该接口可以支持SDHC,也就是高速大容量卡。图3.6 SD卡原理图图3.7 SD卡接口原
43、理图4 系统方案的软件设计4.1 PC端Liunx系统开发环境搭建4.1.1 嵌入式交叉编译嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,所以需要一个交叉环境来实现:(1)首先在通用计算机上编写程序; (2) 然后通本地编译或者交叉编译生成目标浃台上可以运行的二进制代码格式; (3)最后再下载到目标平台上的特定的位置上去运行。在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序,在PC平台(X86CPU)上编译出能在arm平台上的程序,编译后的程序在X86上是不能运行的,必须放到arm上才能运行,用来编译这种程序的编译器叫做交做编译器。嵌入式软件
44、开发需要交叉开发环境,这是其开发的一显著特点,交叉编译器只是交叉开发环境的一部分,我们说的交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,常采用宿主机-目标机模式。 关于交叉工具链: 它是交叉编译环境所需工具的集合体,是所需软件的安装载体,主要包括:交叉编译器(arm-linux-gcc)、交叉汇编器(arm-linux-as)、交叉链接器(arm-linux-ld)、各种操作所依赖的库及用于处理可执行程序和库的一些基本工具。 交叉环境如图所示:宿主机系统目标机系统宿主机系统目标机系统编译器编译器编译目标通信通道目标机系统编译目标交叉编译本地编译图4
45、.1交叉环境图 安装编译器(交叉工具链)软件:eabi-4.1.2.tar.bz2 安装准备: #mkdir /usr/local/arm #cp eabi-4.1.2.tar.bz2 -C /usr/local/arm #mv eabi 4.1.2 添加环境变量: #vi /etc/bashrc 在文件结尾添加 export PATH= /usr/local/arm/4.1.2/bin:$PATH 使配置生效: #source /etc/bashrc4.1.2 NFS挂载 使用NFS服务,将宿主机的一个目录通过网络可以挂载到其他计算机上,并作为它的一个目录,在嵌入式开发中通过NFS可以很方便
46、的将修改的文件通过NFS传输到开发板中去,不用以复的烧写镜像文件。 图4.2 NFS挂载图配置内容为 /root/rootfs 192.168.1.* (rw.sync,no_root_squash) 共享的目录主机名或IP参数1 参数2 共享的目录IP1(参数1,参数2)IP2(参数3,参数4) rw 对共享文件夹可读可写。 sync 所有
47、数据在请求时写入共享。 no_root_squash 使远程用户具备本地root用户所具有的读写权限。 /root/rootfs :是宿主机上共享的文件夹。 192.168.1.* :是所支持的目标板的IP地址,用的*表示该网段的地址都可以访问。 备注:NFS的使有分服务器端和客户端: 服务器端提供要共享的文件,客户端通挂载(mount)实现对共享文件平的访问。例如: mount :/home/nfs/tmp/test
48、0;本地NFS服务器端通过读取配置文件/etc/exprots决定对外所共享的文件目录,在客户端的终端中通过NFS方式挂载宿主机目录,例如: mount -o nolock :/home/nfs/tmp/test 客户端卸载所挂载的NFS文件系统,umount命令不能在挂载目录执行,需要离开执行。 umount /tmp/test 宿主机:#ifconfig eth0 32 ping (
49、ping网关) #service nfs restart #showmount e localhost(查看当前对外共享目录) #mount 32:/root/rootfs/ /tmp(本地测试) 客户端:ifconfig eth0 32.xxx(与服务器在同一网段): ping 32 c 5(与服务器联网测试) mount -
50、o nolock 32:/root/rootfs /tmp4.2 Cortex-A8开发板Linux系统4.2.1开发板Linux系统流程一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader),Linux 内核,文件系统,应用程序。Bootloader是系统启动或复位以后执行的第一段代码,它主要用来初始化处理器及外设,然后调用 Linux 内核。Linux 内核在完成系统的初始化之后需要挂载某个文件系统做为根文件系统(Root Filesystem)。根文件系统是 Linux 系统的核心组成
51、部分,它可以做为Linux 系统中文件和数据的存储区域,通常它还包括系统配置文件和运行应用软件所需要的库。应用程序可以说是嵌入式系统的“灵魂”,它所实现的功能通常就是设计该嵌入式系统所要达到的目标。如果没有应用程序的支持,任何硬件上设计精良的嵌入式系统都没有实用意义。Bootloader在运行过程中虽然具有初始化系统和执行用户输入的命令等作用,但它最根本的功能就是为了启动 Linux 内核。4.2.2 Bootloader (u-boot)(1) Bootloader的概念和作用Bootloader8是嵌入式系统的引导加载程序,它是系统上电后运行的第一段程序,其作用类似于 PC 机上的 BIO
52、S。在完成对系统的初始化任务之后,它会将非易失性存储器(通常是Flash或DOC等)中的Linux 内核拷贝到 RAM 中去,然后跳转到内核的第一条指令处继续执行,从而启动 Linux 内核。由此可见,Bootloader 和Linux 内核有着密不可分的联系,要想清楚的了解 Linux内核的启动过程,我们必须先得认识 Bootloader的执行过程,这样才能对嵌入式系统的整个启动过程有清晰的掌握。(2)Bootloader的执行过程不同的处理器上电或复位后执行的第一条指令地址并不相同,对于 ARM 处理器来说,该地址为 0x00000000。对于一般的嵌入式系统,通常把 Flash 等非易失
53、性存储器映射到这个地址处,而 Bootloader就位于该存储器的最前端,所以系统上电或复位后执行的第一段程序便是Bootloader。而因为存储 Bootloader的存储器不同,Bootloader的执行过程也并不相同,下面将具体分析。嵌入式系统中广泛采用的非易失性存储器通常是 Flash,而 Flash 又分为 Nor Flash 和Nand Flash 两种。它们之间的不同在于:Nor Flash 支持芯片内执行,这样代码可以在Flash上直接执行而不必拷贝到RAM中去执行。而Nand Flash并不支持XIP,所以要想执行 Nand Flash 上的代码,必须先将其拷贝到 RAM中去
54、,然后跳到 RAM 中去执行。(3)Bootloader的功能实际应用中的 Bootloader根据所需功能的不同可以设计得很复杂,除完成基本的初始化系统和调用 Linux 内核等基本任务外,还可以执行很多用户输入的命令,比如设置 Linux 启动参数,给 Flash 分区等;也可以设计得很简单,只完成最基本的功能。但为了能达到启动Linux 内核的目的,所有的 Bootloader都必须具备以下功能:1 初始化 RAM因为 Linux 内核一般都会在 RAM 中运行,所以在调用 Linux 内核之前 bootloader 必须设置和初始化 RAM,为调用 Linux内核做好准备。初始化 RA
55、M 的任务包括设置CPU 的控制寄存器参数,以便能正常使用 RAM 以及检测RAM 大小等。2 初始化串口串口在 Linux 的启动过程中有着非常重要的作用,它是 Linux内核和用户交互的方式之一。Linux 在启动过程中可以将信息通过串口输出,这样便可清楚的了解 Linux 的启动过程。虽然它并不是 Bootloader 必须要完成的工作,但是通过串口输出信息是调试Bootloader 和Linux 内核的强有力的工具,所以一般的 Bootloader 都会在执行过程中初始化一个串口做为调试端口。3 检测处理器类型Bootloader在调用 Linux内核前必须检测系统的处理器类型,并将其
56、保存到某个常量中提供给 Linux 内核。Linux 内核在启动过程中会根据该处理器类型调用相应的初始化程序。4 设置 Linux启动参数Bootloader在执行过程中必须设置和初始化 Linux 的内核启动参数。目前传递启动参数主要采用两种方式:即通过 struct param_struct 和struct tag(标记列表,tagged list)两种结构传递。struct param_struct 是一种比较老的参数传递方式,在 2.4 版本以前的内核中使用较多。从 2.4 版本以后 Linux 内核基本上采用标记列表的方式。但为了保持和以前版本的兼容性,它仍支持 struct par
57、am_struct 参数传递方式,只不过在内核启动过程中它将被转换成标记列表方式。标记列表方式是种比较新的参数传递方式,它必须以 ATAG_CORE 开始,并以ATAG_NONE 结尾。中间可以根据需要加入其他列表。Linux内核在启动过程中会根据该启动参数进行相应的初始化工作。5 调用 Linux内核映像Bootloader完成的最后一项工作便是调用 Linux内核。如果 Linux 内核存放在 Flash 中,并且可直接在上面运行(这里的 Flash 指 Nor Flash),那么可直接跳转到内核中去执行。但由于在 Flash 中执行代码会有种种限制,而且速度也远不及 RAM 快,所以一般的嵌入式系统都是将 Linux内核拷贝到 RAM 中,然后跳转到 RAM 中去执行。不论哪种情况,在跳到 Linux 内核执行之前 CPU的寄存器必须满足以下条件:r00,r1处理器类型,r2标记列表在 RAM中的地址。(4) Bootloader移植步骤1 Bootloader的移植方法BDI2000先将U-Boot 镜像文件烧写到FL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论