嵌入式linux在经济社会中的应用实例GPS系统.docx

上传人:b****3 文档编号:12637501 上传时间:2023-04-21 格式:DOCX 页数:26 大小:661.37KB
下载 相关 举报
嵌入式linux在经济社会中的应用实例GPS系统.docx_第1页
第1页 / 共26页
嵌入式linux在经济社会中的应用实例GPS系统.docx_第2页
第2页 / 共26页
嵌入式linux在经济社会中的应用实例GPS系统.docx_第3页
第3页 / 共26页
嵌入式linux在经济社会中的应用实例GPS系统.docx_第4页
第4页 / 共26页
嵌入式linux在经济社会中的应用实例GPS系统.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

嵌入式linux在经济社会中的应用实例GPS系统.docx

《嵌入式linux在经济社会中的应用实例GPS系统.docx》由会员分享,可在线阅读,更多相关《嵌入式linux在经济社会中的应用实例GPS系统.docx(26页珍藏版)》请在冰豆网上搜索。

嵌入式linux在经济社会中的应用实例GPS系统.docx

嵌入式linux在经济社会中的应用实例GPS系统

华东交通大学理工学院

InstituteofTechnology.

EastChinaJiaotongUniversity

课程论文

CourseThesis

 

题目嵌入式linux在经济社会中的应用实例—GPS系统

分院:

电信分院

专业:

通信工程

班级:

2008-2

学号:

20080210420224

学生姓名:

骆玉春

指导教师:

徐涢基

 

摘要

本文以S3C2410处理器的GPS手持设备开发过程为例,介绍了嵌入式Linux系统软硬件的设计与开发。

通过本文的实例,可以加深对嵌入式Linux开发流程的概念的理解,了解嵌入式Linux系统开发的基本过程。

随着全球定位系统(GPS,GlobePositioningSystem)的广泛应用,GPS手持终端设备的市场需求越来越大。

首先,分析系统工作原理,再选择合适的参考硬件平台,然后选择合适的操作系统和软件。

Linux对S3C2410处理器支持得相当好,操作系统内核和应用程序都是开放源码的。

因此,Linux可以完全按照自己的需要裁减配置系统,使得尺寸更小,而且Linux操作系统性能比Windows操作系统性能更优越。

关键词:

GPS系统;linux;系统硬件;系统软件;设计;

 

目录

摘要1

目录2

第一章需求分析3

1.1系统工作原理3

1.2选择参考硬件平台3

1.3选择操作系统和软件4

第二章系统硬件设计5

2.1电源电路设计5

2.2复位电路设计7

2.3时钟电路设计7

2.4SDRAM接口电路设计8

2.5Flash接口电路设计9

2.6JTAG接口电路设计12

2.7USB接口电路设计12

2.8键盘输入接口电路设计13

2.9LCD(触摸屏)接口电路设计13

2.10GPS接口电路设计13

2.11PCB设计制作14

第三章系统软件设计15

3.1U-Boot的移植15

3.2linux内核的移植16

3.3应用程序的开发移植17

第四章系统集成与部署17

参考文献21

 

第一章需求分析

随着全球定位系统(GPS,GlobePositioningSystem)的广泛应用,GPS手持终端设备的市场需求越来越大。

本项目要设计开发一款手持GPS工程样机。

首先,分析系统工作原理,再选择合适的参考硬件平台,然后选择合适的操作系统和软件。

1.1系统工作原理

系统首先通过GPS模块获得绝对位置数据,并将数据通过UART通信方式传给处理器,经处理器处理后得到当前地图的相对位置,并实时显示到LCD上,使用户随时知道自己的方位;键盘和触摸屏作为人机接口,进行进一步的查询工作;USB用于同微机通信,是可选功能;存储器单元用于存储数据,包括操作系统和应用程序。

1.2选择参考硬件平台

目前半导体供应商提供各种ARM/XSCAE体系结构的处理器,有些ARM926和XSCALE核的处理器都已经用来设计手机等高端移动通信设备,有些则可以用来设计中低端的PDA设备。

考虑价格因素,采用Samsung的S3C2410ARM920T处理器。

S3C2410属于中低端的处理器,适合手持设备并且国内外参考硬件平台很多,系统大部分模块在硬件平台上可以直接测试。

系统包括CPU、GPS模块、存储器单元、LCD模块、触摸屏、键盘、USB接口

等部分组成,功能框图如图1-1所示。

图1-1系统功能框图

根据项目的需求,可以适当调整硬件配置。

例如:

总共需要多少存储空间,使用什么型号的Flash等。

同时也要考虑软件支持的程度,驱动程序能否支持新的接口芯片等。

本项目的硬件参考配置如下:

1、CPU单元(S3C2410X16/32-bitARM920T内核)。

2、存储器单元(2MBNORFlash和32MBNANDFlash,64MBSDRAM)。

3、复位电路(包括上电复位和手段复位,至少保持4个时钟周期的有效低电平,保证系统的可靠复位)。

4、电源电路。

5、时钟电路(外部12MHz时钟输入,经内部PLL倍频至200MHz及32.768KHz的RTC时钟输入)。

6、实时时钟(内部RTC带日历功能)。

7、LCD接口。

8、触摸屏接口。

9、键盘接口。

10、GPS模块。

11、USB接口。

1.3选择操作系统和软件

SamsungS3C2410是最开放的开发设计平台。

它的软件和硬件设计资料可以免费从互联网上获取,并且WindowsCE和Linux两种操作系统都能支持。

在参考板上一般可以直接对WindowsCE和Linux进行测试。

Linux对S3C2410处理器支持得相当好,操作系统内核和应用程序都是开放源码的。

因此,Linux可以完全按照自己的需要裁减配置系统,使得尺寸更小,而且Linux操作系统性能比Windows操作系统性能更优越。

另外,可以避免支付Windows产品的版税。

S3C2410在Linux社区有庞大的用户群,可以获取丰富的开发调试信息。

我们选择Linux作为工程样机的操作系统。

由于图形界面要求并不复杂,可以选择QT/Embedded图形系统。

 

第二章系统硬件设计

2.1电源电路设计

电源电路的设计是非常重要的,特别是对于手持设备来说,如何减少系统的功耗往往成为工程师最为头疼的问题。

不过本节不会深入研究如何降低功耗,只是用一个最普通的方案实现。

电源框图如图2-1所示。

图2-1电源管理系统功能框图

电源由电池提供的2.4V电压输入,经DC/DC开关电源变换器升压至5V输出,3.3V由低压差线性电压源LDO通过+5V调整输出得到,1.8V则由LDO通过3.3V调整输出得到,这样完成了系统供电。

我们知道电源分开关电源和线性电源,那么在嵌入式系统中我们该如何选择呢?

每种方式都有自己的优点和弱点,表2-1总结了这两种电源的优缺点。

表2-1开关电源和线性电源的优缺点

线性电源通常由一只工作在电网频率的变压器、一个桥式整流器和一只电容器组成。

变压器能够升压也能够降压,同时还与电网隔离。

交流正弦波经过桥式整流器整流后的信号,再用电容器平滑为直流电压,这是未经调节的直流电压。

为了在输出端得到调节性能较好的电压,增加了一只线性电压调节器。

这样,电压的调节性能较好,但是电源的元件数量增多了,成本也提高了,效率通常低于50%。

开关电源输出电压的调节性能很好,频率较高,可以在输入端加上通用范围的电压,而且发热少、尺寸小、重量轻。

开关电源的主要元件有脉冲宽度调制驱动器、MOSFET功率晶体管、一只变压器以及反馈电路。

效率通常高于50%,既省电,元器件的寿命也更长。

根据以上的分析,在输入输出压降幅度大、功耗高,或是要求升压的场合,往往采用开关电源方案;在压降小、功率要求不是很大的时候,使用线性电源为宜。

电源是整个系统中最重要的环节,大多数不稳定的因素或故障都是由于电源方面的设计造成的,因此必须加以重视,否则后患无穷。

本例中使用的DC/DC变换器是ST(意法半导体)公司的L6920,该产品广泛用于手持系统、移动电话、数模照相机等应用领域,原理图如图2-2所示。

L6920管脚说明如表2-2所示。

图2-2L6920电路原理图

表2-2L6920管脚说明

此外,电感电容的选取很重要,直接影响DC/DC的效率和输出波形,电感如COILCRAFTS、COILTRONICS、MURATA等公司的产品性能非常好,不过价格比较贵。

一些我国台湾产的性价比也不错,电容的选取要容易一些。

目前大陆生产的钽电容质量都还可以,如果要求不苛刻的话,完全满足要求。

线性电源LDO的电路就简单得多,这里只列出输出3.3V的电路图,如图2-3所示。

图2-3线性电源LDO的电路原理图

当今有很多优秀的电源管理系统设计厂商,如Linear、TI、ADI、ON-SEMI、ST、Semtech,Intersil、Maxim等,有很大的选择余地。

2.2复位电路设计

复位对于一个系统来说很重要,由于各个单元要进入正常工作状态,都需要可靠的复位。

正常情况下,一般有上电复位和手动复位。

如果电源电压出现波动,系统会非正常复位,这时候会发生复位时间不够从而造成一些错误甚至死机,所以复位监控电路也是必要的复位。

电路原理如图2-4所示。

图2-4复位电路原理图

我们的复位电路使用的芯片是MAX811,管脚说明如表2-3所示。

表2-3MAX811管脚说明

根据其型号的后缀,MAX811的复位电平门限有5种规格(表2-4),例如表中用的是MAX811-T,就表示电压低于3.08V时,产生复位信号。

表2-4MAX811的规格

如系统需要中有与CPU逻辑相反的复位信号,则在nRESET信号后加入非门反相输出。

2.3时钟电路设计

CPU部分需要两路时钟输入,一路是CPU工作时钟输入,另一路提供给RTC电路。

CPU工作时钟是一个有源晶振,无需外部电容,直接输出12MHz时钟信号到CPU,由CPU内部PLL倍频到200MHz,两路时钟输入如图2-5所示。

这两种是最普遍的时钟电路,在后面的CS8900A接口电路中也有时钟电路,做法是一样的。

图2-5时钟电路原理图

2.4SDRAM接口电路设计

SDRAM具有容量大、存取速度快、成本低的特点,因而广泛应用到微机处理系统中。

SDRAM主要用来存放执行代码和变量,是系统启动之后主要进行存取操作的存储器。

由于SDRAM需要定时刷新以保持存储的数据,因而要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。

S3C2410X及其他一些ARM芯片在片内具有独立的SDRAM刷新控制逻辑,可方便的与SDRAM接口。

但某些ARM芯片则没有SDRAM刷新控制逻辑,就不能直接与SDRAM接口,在进行系统设计时应注意这一点。

目前常用的SDRAM为8位/16位的数据宽度,我们可根据系统需求,构建16位或32位的SDRAM存储器系统。

本例中使用的是两片三星K4S561632C-TC75芯片构建32位的SDRAM存储器系统。

每片K4S561632C的存储容量为16组×16M位(32MB),工作电压为3.3V,常见封装为54脚TSOP,兼容LVTTL接口,支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh),16位数据宽度。

其管脚说明如表2-5所示。

表2-5K4S561632C-TC75管脚说明

SDRAM连接原理图如图2-6所示。

图2-6SDRAM电路原理图

2.5Flash接口电路设计

Flash存储器是一种在系统上(In-System)进行电擦写,掉电后信息不丢失的存储器。

它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。

作为一种非易失性存储器,Flash在系统中通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等。

现在市场上两种主要的非易失闪存技术是NOR和NAND。

Intel于1988年首先开发出NORFlash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。

1989年东芝公司发表了NANDFlash结构,强调降低每比特的成本,更高的性能,并且像磁盘一样可以通过接口轻松升级。

NOR的特点是芯片内执行,这样应用程序可以直接在Flash内运行,不必再把代码读到系统RAM中。

NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。

NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。

应用NAND的困难在于Flash的管理和需要特殊的系统接口。

Flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。

任何Flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。

NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。

两者的速度差异如下:

1、NOR的读速度比NAND稍快一些。

2、NAND的写入速度比NOR快很多。

3、NAND的4ms擦除速度远比NOR的5s快。

4、大多数写入操作需要先进行擦除操作。

5、NAND的擦除单元更小,相应的擦除电路更少。

基于以上分析,我们用NORFlash存储Boot代码,NANDFlash存储操作系统和应用程序代码。

前者我们选用ST公司的M29W160(1MB×16),后者用三星的K9F5608B(32MB×8)。

M29W160的单片存储容量为16M位(2MB),工作电压为2.7V~3.6V,采用48脚TSOP封装或48脚FBGA封装,16位数据宽度,可以以8位(字节模式)或16位(字模式)数据宽度的方式工作。

M29W160仅需单3V电压即可完成在系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命令序列,可对Flash进行编程(烧写)、整片擦除、按扇区擦除以及其他操作。

此外,它还支持任意地址的块写保护,十分方便用户。

M29W160的管脚说明如表2-6所示。

表2-6M29W160的管脚说明

 

M29W160的实际应用原理图如图2-7所示。

图2-7M29W160电路原理图

三星公司的K9F系列NANDFlash存储器有着容量大、功耗低、成本低、电气性能好等特点是大容量Flash市场的有力竞争者。

K9F5608B的单片存储容量为256Mbit,工作电压为2.7V~3.6V,采用48脚TSOP封装或63脚TBGA封装,8位数据宽度,带有硬件数据保护功能,支持上电自动引导功能,块擦写时间为

2ms,数据存储有效时间达10年以上。

K9F5608B的管脚说明如表2-7所示。

表2-7K9F5608B的管脚说明

K9F5608B的实际应用原理图如图2-8所示。

图2-8K9F5608B的电路原理图

随着嵌入式技术的高速发展,Flash被广泛应用到各个领域,功能越来越强大,电路也日趋复杂。

不过各大存储器生产厂商采用统一的标准进行设计生产,所以常用的型号往往是完全兼容的,可以直接替代。

我们在应用Flash时,只要注意遵循数据手册的指导,按说明进行设计即可,一般不会出现问题。

2.6JTAG接口电路设计

JTAG接口对于开发调试非常重要。

对于产品来说也可以通过JTAG修复或者更新软件,所以最好预留这个接口,至少引出JTAG接口线。

JTAG接口电路原理图如图2-9所示。

图2-9JTAG电路原理图

2.7USB接口电路设计

S3C2410X提供了方便的USB1.1接口,片内包括2个USB控制器,可设置为两个主机或1主机1设备。

USB接口原理图如图2-10所示。

图2-10USB电路原理图

接口说明:

CON14工作在A-TYPE(主机)状态,跳线J35、J36的2、3脚接通时CON16有效,工作在A-TYPE(主机模式)状态,跳线J35、J36的1、2脚接通时,CON17有效,工作在B-TYPE(设备模式)状态。

2.8键盘输入接口电路设计

键盘采用中断方式连接,共6个功能键,占用6个中断源。

当有按键被按下时,会实时产生中断请求信号,通知CPU处理。

电路比较简单,如图2-11所示。

图2-11键盘输入电路原理图

2.9LCD(触摸屏)接口电路设计

S3C2410X支持TFT/STN型的LCD及触摸屏,但是不能直接与LCD相连,需要接口板驱动LCD。

S3C2410X通过50pin的插座作为LCD与触摸屏接口,至于接口板,市场上可以买到,管脚定义都是标准的。

原理图如图2-11所示。

图2-12LCD电路原理图

2.10GPS接口电路设计

本设计选用的GPS模块是HIMARK的AR2010-GM,该产品体积小、功耗低,具备标准GPS功能,技术参数如下:

定位精度5~25mCEPw/oS/A;

速率0.1m/sw/oS/A;

时间±1μsec(卫星时间);

海拔高度max.18000m;

速度max.500m/s;

加速度max.±4g;

端口RS232串口x1,TTLx1;

速率4.8、9.6、19.2和38.4kbit/s(可选择升级至115.2kbit/s);

输出协议NMEA0183:

GGA、GLL、GSV、GSA、RMC、VTG;

电源3VDC~9VDC;

消耗电流小于27mA;

卫星信道12-channel;

工作温度−40℃~85℃;

储存温度−55℃~100℃;

工作适度5%~95%;

AR2010-GM模块通信端口定义如表2-8所示。

表2-8AR2010-GM模块通信端口定义

虽然AR2010-GM模块的功能强大,内部结构复杂,但是与CPU的通信非常简单,采用标准UART方式,只需4根信号线即可,无需任何附加元件就能和S3C2410X连接。

2.11PCB设计制作

随着处理器频率的不断加快,对PCB的布局和走线要求越来越高,早已不是仅仅布通就可以的时代了。

当今的PCB板制造技术向高密度、高精度、细孔径、细导线、细间距、高可靠、多层化、高速传输、轻量、薄型方向发展,在生产上同时向提高生产率、降低成本、减少污染、适应多品种、小批量生产的方向发展。

对于主频高达200MHz的S3C2410X处理器来说,它的PCB设计是硬件工作中的难点,前面所有工作都集中体现在电路板上,因而PCB的设计直接影响整个系统的性能。

掌握好PCB设计的步骤和要点,不仅能加快开发进度,更会增加系统的稳定性,也为软件开发创造更好的条件。

在PCB布板之前,一定要保证原理图的正确性,PCB的电气关系是由原理图的网表生成的,错误的原理图会直接导致错误的PCB板,还要重新返工,这一点相信所有的硬件工程师都有切身体会。

第三章系统软件设计

在样机硬件设计阶段,就可以在参考硬件平台上进行软件开发。

软件开发是一个反复修改编译的过程,交叉开发环境的软件开发流程如图3-1所示。

图3-1程序开发流

当样机电路板做好以后,还需要移植到新的平台上。

因为样机是参照参考板设计的,所以大部分接口(特别是片上的设备接口)都相同。

但是可能增减个别的接口或者替换外围芯片,例如:

Flash由AMD公司的Am29LV800B替换成ST公司的M29W160(1Mbit×16),容量增加了,擦写Flash的指令也要相应修改。

软件移植包括Linux系统的3个组成部分:

U-Boot移植、内核移植和应用程序移植。

样机开发板名称假设为GPS2410,程序移植时将引用这个名称。

3.1U-Boot的移植

S3C2410的参考平台上一般使用vivi作为Linux引导程序。

如果不习惯vivi或者觉得U-Boot好用,那就把U-Boot移植到硬件板上吧。

(1)在顶层Makefile中为开发板添加新的配置选项,添加下面两行:

gps2410_config:

unconfig主机端编辑程序

@./mkconfig$(@:

_config=)armarm920tgps2410NULLs3c24x0

(2)创建一个新目录存放开发板相关的代码,并且添加文件:

board/gps2410/config.mk

board/gps2410/flash.c

board/gps2410/gps2410.c

board/gps2410/Makefile

board/gps2410/memsetup.S

board/gps2410/u-boot.lds

(3)为开发板添加新的配置文件。

可以先复制参考开发板的配置文件,再修改。

例如:

$cpinclude/configs/smdk2410.hinclude/configs/gps2410.h

(4)配置开发板。

$makegps2410_config

(5)编译U-Boot。

执行make命令,编译成功可以得到U-Boot映像。

有些错误是跟配置选项是有关系的,通常打开某些功能选项会带来一些错误。

一开始可以尽量跟参考板配置相同。

(6)添加驱动或者功能选项。

GPS2410开发板的以太网驱动仍然采用常见的CS8900以太网接口芯片。

可能变化的是以太网控制寄存器基地址,只要在include/config/gps2410.h文件中修改即可。

非常幸运,只要改一下基地址,gps2410的以太网接口就能够正常工作了。

因为Flash换成了ST公司的M29W160,所以必须修改Flash的擦写函数。

阅读Flash芯片手册或者擦写例程,确定Flash的扇区大小、块大小、块数和芯片大小,明确Flash的擦写操作指令。

然后在源程序board/gps2410/flash.c中修改。

(7)调试U-Boot源代码,直到U-Boot在开发板上能够正常启动。

这最好借助硬件仿真器来调试,至少需要烧写Flash的工具。

3.2Linux内核的移植

S3C2410属于片上系统,处理器芯片具备串口、显示等外围接口的控制器。

参考板上的设备驱动程序多数可以直接使用。

但是有些驱动程序也需要移植或者重新开发。

Linux-2.6.14的内核可以对S3C2410有基本的支持。

第1个驱动是串口控制台。

2.6内核的串口设备名称有了改变,由“ttyS”变成了“ttySAC”。

所以只要内核命令行参数相应的修改成为:

console=ttySAC0,115200。

第2个驱动是以太网接口。

GPS2410开发板的网络接口使用CS8900A芯片,但是Linux2.6内核中并没有支持S3C2410平台的驱动。

幸运的是从Linux社区搜到了针对CS8900接口的补丁,这可省了不少力气。

不然,还要认真分析一下网络驱动程序了。

第3个驱动是LCD驱动。

这个驱动程序是s3c2410的FrameBuffer驱动:

s3c2410fb,源文件是drivers/video/s3c2410fb.c。

问题是参考板和样机的LCD不是同一品牌的,有些显示参数的设置需要修改。

其他的驱动跟硬件参考平台很接近,只需要小修小改,就可以跑通了。

最后还要考虑一下MTD驱动。

MTD可以对Flash建立分区表,以便分别存储U-Boot、内核和文件系统。

3.3应用程序的开发移植

应用程序的功能包含两个方面:

一方面是实现图形用户界面,另一方面是GPS数据处理。

图形用户界面可以基于QT/Embedded实现。

使用QT/E空间可以开发一些简单便捷的图形应用程序,可以支持触摸屏和按键接口。

GPS数据是通过串口通信的,所以这部分程序主要是Linux串口编程。

另外程序还需要具体分析处理接收和发送的数据。

当然也离不开Linux基本的系统工具,使用Busybox工具集就可以了。

第四章系统集成与部署

各部分软件开发完成以后,就可以对样机进行彻底测试了。

可以先通过NFS方式测试,再部署到Flash中测试。

当然,这很可能是反复测试的过程。

对于GPS2410样机,只对功能方面做了测试,没有测试性能方面的问题。

本项目采用了RAMDISK文件系统,因为它是简单实用的。

为了尽量使文件系统最小,按照下列步骤定制

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

当前位置:首页 > 高中教育 > 语文

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

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