嵌入式汽车定位系统开发研究底层研究毕业设计论文.docx

上传人:b****3 文档编号:30820535 上传时间:2024-01-30 格式:DOCX 页数:63 大小:1.41MB
下载 相关 举报
嵌入式汽车定位系统开发研究底层研究毕业设计论文.docx_第1页
第1页 / 共63页
嵌入式汽车定位系统开发研究底层研究毕业设计论文.docx_第2页
第2页 / 共63页
嵌入式汽车定位系统开发研究底层研究毕业设计论文.docx_第3页
第3页 / 共63页
嵌入式汽车定位系统开发研究底层研究毕业设计论文.docx_第4页
第4页 / 共63页
嵌入式汽车定位系统开发研究底层研究毕业设计论文.docx_第5页
第5页 / 共63页
点击查看更多>>
下载资源
资源描述

嵌入式汽车定位系统开发研究底层研究毕业设计论文.docx

《嵌入式汽车定位系统开发研究底层研究毕业设计论文.docx》由会员分享,可在线阅读,更多相关《嵌入式汽车定位系统开发研究底层研究毕业设计论文.docx(63页珍藏版)》请在冰豆网上搜索。

嵌入式汽车定位系统开发研究底层研究毕业设计论文.docx

嵌入式汽车定位系统开发研究底层研究毕业设计论文

湖南科技大学

毕业设计(论文)

 

题目

嵌入式汽车定位系统开发研究

作者

学院

专业

学号

指导教师

 

摘要

Linux操作系统作为自由软件的代表,性能优良,是PC服务器和嵌入式系统应用最广泛的操作系统,近年来,显现了巨大的市场价值和广阔的应用前景。

而本文主要讲述的是在汽车行驶记录仪方面的应用。

矚慫润厲钐瘗睞枥庑赖。

本文的工作主要集中在以下方面:

首先,进行了移植环境的设计与搭建,安装和配置了交叉编译器;其次,设计并实现了系统的bootloader,主要内容是将基于S3C2410处理器的U-BOOT移植到移植到ARM9-2440EP硬件环境下;最后,将Linux内核进行编译与移植。

聞創沟燴鐺險爱氇谴净。

全文详细论述了嵌入式Linux移植的流程,给出了搭建嵌入式开发环境,基于硬件平台ARM920T的bootloader,Linux内核的移植及根文件系统的实现方案,为整个系统的后续开发打下坚实的基础。

残骛楼諍锩瀨濟溆塹籟。

关键字:

linuxfederal10系统,uboot移植,内核移植。

 

ABSTRACT

Linuxoperatingsystemastherepresentativeoffreesoftware,excellentperformance,isaPCserverandembeddedsystemsthemostwidelyusedoperatingsysteminrecentyears,revealingahugemarketvalueandbroadapplicationprospects.Thisarticleisaboutthevehiclelocationsystemintheapplication.酽锕极額閉镇桧猪訣锥。

TransplantationintheLinuxsystem,thefirsttransplantcarriedoutthedesignandbuildenvironment,installationandconfigurationofthecross-compiler.Secondly,adesignandimplementationofthesystembootloader,maincontents,includingtransplantationofopensourcesoftwareU-BOOT,sincetheprocessorS3C2410intheU-BOOTonlySMDK2410boardofstandardssupportinusemustbetransplantedtoARM9-2440EPhardwareenvironment,andfinally,inthefollowingstepstoachievethewholeprocess.彈贸摄尔霁毙攬砖卤庑。

Thisisalinuxsystemusingtheterminalcommandmodifiedbygcccross-compiler,andgeneratesatargetneeduboot,kernel,logo,andfilesystemimagefilerequired,andthewindowsXPsystemtodownloadandbyDNWandSuperTerminalwillbeprogrammedintothetargetimagefileTQ2440downloadmode,restartthedevelopmentboardNANDFlashmodeuntilyouseethesysteminterface,youcanbegintoenterthedevelopmentstage.謀荞抟箧飆鐸怼类蒋薔。

EmbeddedLinuxtextdiscussesindetailtheprocessoftransplantationisgiventobuildtheembeddeddevelopmentenvironment,hardwareplatformbasedonARM920T'sbootloader,Linuxkernelandrootfilesystemmigrationimplementations.厦礴恳蹒骈時盡继價骚。

Keywords:

linuxfederal10system,uboottransplantation,kernelporting.茕桢广鳓鯡选块网羈泪。

 

 

第1章:

绪论

嵌入式系统是热门的IT应用领域之一。

嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。

特别是随着消费家电的智能化,嵌入式更显重要。

像我们平常常见到的手机、PDA、电子字典、网络等应用的功能也进行了优化。

裊樣祕廬廂颤谚鍘羋蔺。

1.1嵌入式系统概述

1.1.1嵌入式系统的组成

嵌入式系统一般可以分成四个部分:

嵌入式处理器、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件,如图1-1所示。

仓嫗盤紲嘱珑詁鍬齊驁。

图1.1嵌入式系统的组成

(1)嵌入式处理器

嵌入式系统的核心部件是各种类型的嵌入式处理器,嵌入式处理器具有面向用户,面向产品,面向应用的特点,因此,嵌入式处理器与通用处理器最大的区别在于,嵌入式CPU大多工作在为特定用户群所专门设计的系统中。

绽萬璉轆娛閬蛏鬮绾瀧。

针对不同应用和不同半导体工艺,目前各类嵌入式处理器的变种计有1000余种,大致可分为:

①嵌入式微处理器:

ARM,PowerPC,68000,MIPS,386EX;

②嵌入式微控制器:

8051,MC68HC05,MC68HC11,68300等;

③嵌入式DSP处理器:

TMS320系列,DSP56000系列;

④嵌入式SOC(片上系统):

OMAP,M-Core;

目前嵌入式处理器有向高度集成的嵌入式片上系统〔SystemOnChip,SOC)发展的趋势。

(2)嵌入式外围设备

在嵌入系统硬件系统中,除了嵌入式处理器以外,用于完成存储、通信、调试、显示等辅助功能的其他部件,事实上都可以算作嵌入式外围设备。

目前常用的嵌入式外围设备按功能可以分为存储设备、通信设备和显示设备三类。

骁顾燁鶚巯瀆蕪領鲡赙。

①目前存在的绝大多数通信设备都可以直接在嵌入式系统中应用,包括RS-232接口(串行通信接口)、USB(通用串行总线接口),Ethernet以太网接口)、工IC(现场总线)等等。

存储设备主要用于各类数据的存储,分易失型存储和非易失型存储器两种,同步动态存储器(SynchronousDRAM)和FLASH是两者的代表。

FLASH凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。

瑣钋濺暧惲锟缟馭篩凉。

②目前存在的绝大多数通信设备都可以直接在嵌入式系统中应用,包括RS-232接口(串行通信接口)、USB(通用串行总线接口),Ethernet以太网接口)、工IC(现场总线)等等。

鎦诗涇艳损楼紲鯗餳類。

③由于嵌入式应用场合的特殊性,通常使用的是液晶显示器(LCD)和触摸板(TouchPanel)等外围显示设备。

也有很多嵌入式系统没有显示设备。

栉缏歐锄棗鈕种鵑瑶锬。

(3)嵌入式操作系统

嵌入式操作系统是专门负责管理存储器分配、中断处理、任务调度等功能的软件模块,是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动程序、系统内核、设备驱动接口、通信协议、图形用户界面(GUI)等。

辔烨棟剛殓攬瑤丽阄应。

从20世纪80年代开始,市场上出现各种各样的商用嵌入式操作系统,这些操作系统大部分都是为专用系统开发的,现在逐步演化成了多种形式的商用嵌入式操作系统百家争鸣的局面。

这些操作系统有VxWorks,Neculeus,pSOS,QNX,Linux和WindowsCE等。

峴扬斕滾澗辐滠兴渙藺。

1.1.2嵌入式系统的特点

根据前面对嵌入式系统的描述可以看出嵌入式系统的几个重要特征:

(1)嵌入式系统通常是面向特定应用的,嵌入式CPU与通用型的CPU最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋子小型化,移动能力大大增强,跟网络的祸合也越来越紧密。

詩叁撻訥烬忧毀厉鋨骜。

(2)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。

这一点就决定了官必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

则鯤愜韋瘓賈晖园栋泷。

(3)嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。

嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。

胀鏝彈奥秘孫戶孪钇賻。

(4)嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。

鳃躋峽祷紉诵帮废掃減。

1.1.3嵌入式系统的开发

由于嵌入式系统是一种根据特定用途所专门开发的系统,它只完成预期要完成的功能,所以其开发过程和开发环境同传统的软件开发相比有着显著的不同。

稟虛嬪赈维哜妝扩踴粜。

(1)开发流程

在嵌入式系统的应用开发中,整个系统的开发过程如图1-2所示。

嵌入式系统发展到今天,对应于各种微处理器的硬件平台一般都是通用的、固定的、成熟的,这就大大减少了由硬件系统引入错误的机会。

此外,由于嵌入式操作系统屏蔽了底层硬件的复杂性,使得开发者通过操作系统提供的API函数就可以完成大部分工作,因此大大简化了开发过程,提高了系统的稳定性。

嵌入式系统的开发者现在已经从反复进行硬件平台设计的过程中解脱出来,从而可以将主要精力放在满足特定的需求上。

陽簍埡鲑罷規呜旧岿錟。

图1.2嵌入式系统的开发流程

(2)开发环境

采用交叉开发环境(CrossDevelopmentEnvironment)是嵌入式应用软件开发时的一个显著特点,首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制代码格式,最后再下载到目标平台上的特定位置运行。

交叉开发环境是指编译、链接和调试嵌入式应用软件的环境.,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式,如图1-3所示。

沩氣嘮戇苌鑿鑿槠谔應。

图1.3交叉开发模式

宿主机是一台通用计算机(如PC机或者工作站),它通过串口或者以太网接口与目标机通信。

宿主机的软硬件资源比较丰富,不但包括功能强大的操作系统(如Linux),而且还有各种各样优秀的开发工具(如WindRiver的Tornado,GNU的开源软件GDB等),能够大大提高嵌入式应用软件的开发速度和效率。

目标机一般在驱动开发和应用软件开发期间使用,它可以是嵌入式应用软件的实际运行环境,也可以是能够替代实际运行环境的仿真系统,但软硬件资源通常都比较有限。

嵌入式系统的交叉开发环境一般包括交叉编译器、交叉调试器和系统仿真器,其中交叉编译器用于在宿主机上生成能在目标机上运行的代码,而交叉调试器和系统仿真器则用于在宿主机与目标机间完成嵌入式软件的调试。

在采用宿主机/目标机模式开发嵌入式应用软件时,首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件,然后通过串口或者网络将交叉编译生成的目标代码下载到目标机的存储单元上,并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试,最后目标机在特定环境下脱离宿主机运行。

钡嵐縣緱虜荣产涛團蔺。

目前常用的交叉开发环境主要有开放和商业两种类型。

开放的交叉开发环境的典型代表是GNU工具链,目前己经能够支持x86,ARM,MIPS,PowerPC等多种处理器。

商业的交叉开发环境则主要有MetrowerksCodeWarrior,ARMSoftware,DevelopmentToolkit,WindverTornado等等。

懨俠劑鈍触乐鹇烬觶騮。

1.2嵌入式系统在车载定位系统中的应用

全球定位系统(GPS)是本世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统。

其主要目的是为陆、海、空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的,是美国独霸全球战略的重要组成。

经过20余年的研究实验,耗资300亿美元,到1994年3月,全球覆盖率高达98%的24颗GPS卫星星座己布设完成。

GPS监控(以上海市连图信息科技GPS车载终端设备为例)是结合了GPS技术、无线通信技术(GSM/GPRS/CDMA)、图像处理技术及GIS技术,用于对移动的人、宠物、车及设备进行远程实时监控的一门技术。

謾饱兗争詣繚鮐癞别瀘。

全球定位系统在车辆管理上的应用,被称作车辆定位系统。

  GPS车辆管理系统功能简单描述 呙铉們欤谦鸪饺竞荡赚。

(1)实时监控:

GPS车辆管理系统应用了移动GPRS为监控数据的载体,真正的实现了对车辆的全天候实时监控(速度、方向等),监控频率可达到1秒级。

莹谐龌蕲賞组靄绉嚴减。

(2)行驶信息管理:

系统可对车辆以往的行驶数据信息进行下载、回放、保存等。

  

(3)车辆超速报警:

管理员可单独或是设定全部车辆的行驶上下限速度,当车辆行驶速度超过该限制时,系统即会提示车辆超速报警,并伴有声音和窗口弹出窗口提示。

 麸肃鹏镟轿騍镣缚縟糶。

(4)自建图层:

管理员可以通过文字和图象在地图上自行标注公司的以及工地的方位;也可以自行构建道路上没有的路线,更好的完善地图来管理车辆。

 納畴鳗吶鄖禎銣腻鰲锬。

(5)文字调度管理:

管理可通过文字方式向某一辆车或是某一群车辆发送文字调度信息。

发送的信息将保存下来,以供日后查证。

 風撵鲔貓铁频钙蓟纠庙。

(6)超速报警统计:

通过系统提供的行驶数据保存功能,在事后可将某车的在某天某日某一段时间的行车数据进行回放,并可生成报表供打应,该功能可作考核用。

 灭嗳骇諗鋅猎輛觏馊藹。

(7)行车线路跟踪:

可对单独一辆或是全部车辆进行实时记录行驶路线功能,当车辆驶过后就会在地图上划出一条黑线,管理员可直观的看到车辆的行驶路线情况。

 铹鸝饷飾镡閌赀诨癱骝。

(8)区域报警功能:

可以设定禁区,当车进入禁区监控处发出警报提醒。

定制行驶路线,当驾驶员驶离预定的驾驶路线发出报警。

  攙閿频嵘陣澇諗谴隴泸。

(9)里程油耗统计:

通过系统提供的行驶数据保存功能,可将某车的在某天某日某一段时间的行车公里数及所耗油量,可生成报表供打印,该功能可作参考。

趕輾雏纨颗锊讨跃满賺。

1.3智能导航系统功能框图

图1.4系统功能图

第2章基于ARM9微处理器的硬件和软件设计概述

2.1导航终端系统硬件设计

2.1.1导航用户终端系统硬件设计图

用户终端主要是实现了提供给监控中心的各种数据,包括地理位置,速度,耗油量等等,因此其包括了以下的几个模块。

夹覡闾辁駁档驀迁锬減。

图2.1用户终端图

2.1.2基于ARM9的嵌入式车载导航开发板底板电路原理图

图2.2

 

2.1.3ARM920T开发板核心板电路原理图

图2.3

 

2.2导航系统驱动程序的组成框图

以下是运行目标板所需要的驱动程序,在此次试验中,使用的TQ2440开发班层也是由一下图示组成。

GPS驱动程序,3G驱动程序

文件系统

logo

内核程序

bootloader

 

图2.4

2.3开发环境的设计与创建

2.3.1主机系统的硬件配置和操作系统

CPU:

Intel奔腾双核/双线程

内存容量:

2GB

硬盘容量:

320GB

显存容量:

513MB

操作系统:

WindowsFederal10

2.3.2搭建开发和移植环境

(1)开发环境配置如下:

1 本次设计开发环境:

linuxfederal10系统

2 所用的代码是使用smdk2410代码修改成u-boot

3 所用的编译和烧写工具:

GNUgcc,DNW

(2)移植环境

1 主 机:

Fedora10windowsXP

2 开发板:

Mini2440--64MBNand,Kernel:

2.6.30.4视絀镘鸸鲚鐘脑钧欖粝。

3 编译器:

arm-linux-gcc-4.3.2.tgz偽澀锟攢鴛擋緬铹鈞錠。

4 u-boot:

u-boot-2009.08.tar.bz2緦徑铫膾龋轿级镗挢廟。

2.3.3目标系统

本次实验使用的是ARM920T开发板其完型后如下图:

图2.5

 

第三章:

BOOTLOADER设计与实现

3.1Bootloader原理与作用

(1)Bootloader原理:

一般bootloader开发分两种模式:

启动加载模式和下载模式,启动加载模式只是负责加载系统信息,而下载模式则可以从指定的地方下载系统信息(这样比较有利于系统升级)。

bootloader的实现依赖于CPU的体系结构,因此大多数bootloader的开发都分为stage1和stage2两个阶段,依赖体系结构的代码都放在stage1(用汇编实现),而stage2通常用C来实现。

騅憑钶銘侥张礫阵轸蔼。

bootloader的stage1通常包括以下步骤:

1 硬件设备初始化。

其中包括屏蔽所有中断、设置CPU的速度和时钟频率、RAM初始化、初始化IED、关闭CPU内部指令/数据cache。

疠骐錾农剎貯狱颢幗騮。

2 为加载bootloader的stage2准备RAM空间。

空间可以任意安排,其中RamEnd-1MB是一种很值得推荐的方法(RamEnd-1MB指末尾的1M空间);而且必须进行范围测试,这里推荐一个叫做test_mempage的内存检测算法——测试每个memorypage开始两个字是否是可读写的。

镞锊过润启婭澗骆讕瀘。

3 拷贝bootloader的stage2到RAM空间。

这里只要注意地址范围就可以了。

4 设置好堆栈。

通常可以把sp的值设置为stage2_end(栈向低地址空间发展)

5 跳转到stage2的C入口点。

stage2的代码通常用C来实现。

第二阶段,stage2通常步骤:

1 初始化本阶段要使用的硬件设备。

至少一个串口,以便向终端用户进行I/O输出信息;初始化计时器等。

2 检测系统内存映像。

即整个空间中有哪些RAM单元。

3 将kernel影响和根文件系统映像从flash上读到RAM空间。

主要考虑基地址和映像的大小两个方面;对于内核映像,一般将其拷贝到从MEM_START+0x8000这个基地址开始的大约1MB大小的内存范围内,这里要把从MEM_START到MEM_START+0x8000这段32kb大小的内存空出来是因为要放置linux内存中的一些全局数据结构。

如,启动参数和内核页表等信息。

而对于跟文件系统映像,则一般将其拷贝到从MEM_START+0x00100000开始的地方。

榿贰轲誊壟该槛鲻垲赛。

4 为内核设置启动参数。

linux2.4.x以后的内核都期望以标记列表的形式来传递启动参数。

每个标记由标识被传递参数的tag_header结构以及随后的参数值数据结构来组成(在include/ams/setup.h中定义)。

包括:

ATAG_CORE\ATAG_MEM\ATAG_CMDLINE\ATAG_RAMDISK\ATAG_INITRD。

邁茑赚陉宾呗擷鹪讼凑。

(2)bootloader的作用:

BootLoader就是在操作系统内核运行之前运行的一段小程序。

通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。

在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。

比如在一个基于ARM7TDMIcore的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。

嵝硖贪塒廩袞悯倉華糲。

3.2U-BOOT的设计与实现

U-Boot,全称UniversalBootLoader,是遵循GPL条款的开放源码项目。

从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。

其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。

该栎谖碼戆沖巋鳧薩锭。

图1U-Boot存储器映射

3.1.1U-Boot简介

U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD,VxWorks,QNX,RTEMS,ARTOS,LynxOS嵌入式操作系统。

其目前要支持的目标操作系统是OpenBSD,NetBSD,FreeBSD,4.4BSD,Linux,SVR4,Esix,Solaris,Irix,SCO,Dell,NCR,VxWorks,LynxOS,pSOS,QNX,RTEMS,ARTOS。

这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。

这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。

就目前来看,U-Boot对PowerPC系列处理器支持最为丰富,对Linux的支持最完善。

其它系列的处理器和操作系统基本是在2002年11月PPCBOOT改名为U-Boot后逐步扩充的。

从PPCBOOT向U-Boot的顺利过渡,很大程度上归功于U-Boot的维护人德国DENX软件工程中心WolfgangDenk[以下简称W.D]本人精湛专业水平和持着不懈的努力。

当前,U-Boot项目正在他的领军之下,众多有志于开放源码BOOTLOADER移植工作的嵌入式开发人员正如火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入,以支持更多的嵌入式操作系统的装载与引导。

 劇妆诨貰攖苹埘呂仑庙。

选择U-Boot的理由:

①开放源码;  

②支持多种嵌入式操作系统内核,如Linux、NetBSD,VxWorks,QNX,RTEMS,ARTOS,LynxOS; 臠龍讹驄桠业變墊罗蘄。

③支持多个处理器系列,如PowerPC、ARM、x86、MIPS、XScale;  

④较高的可靠性和稳定性;  

⑤高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

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

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