基于GPRS远程无线数据采集系统设计 - 图文

更新时间:2024-04-11 10:06:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

河北农业大学毕业论文

摘要

远程数据采集技术的出现,是计算机网络技术与通信信息技术相结合的必然结果。早期的远程数据采集技术是非在线、非实时的采集方式,而现代的远程采集技术则是实时的、在线的采集方式,借助于现代的计算机技术、互联网技术和通信技术,采集者可以依靠安装在现场的各种各样的传感器设备,可以远隔千里就可以获得现场的实时数据,对现场的情况进行监督和分析。

GPRS(GeneralPacketRadioservice)是基于移动GSM网络的一种新型的数据理技术,它的出现为无线数据采集系统提供了一种高效的、全新的数据传输方式,可以提供跨地域、高速、大容量、高实时性的数据传输业务,改变过去采用有线传输方式传输距离近、数据传送量小、实时性差等缺点,大大地提高了数据采集的实时性和可靠性。

本文中设计了一种基于GPRS的远程无线数据采集系统。该系统是以移动公司的GPRS网络作为远程数据的传输平台。文中首先对GPRS网络的体系结构和工作原理作了详细的介绍。其次,分别论述了本数据采集系统的硬件设计和软件设计。硬件设计部分采用三星公司的ARM9s3C2440处理器,设计了相关的外围电路,GPRS部分采用成都无线龙公司的GPRS模块来作为无线网络的数据接入平台。软件部分采用嵌入式Linux作为它的操作系统,移植了PPP协议作为数据链路层协议,并在此基础上进行驱动程序和应用软件的开发,编写了用于数据通讯的软件程序,实现了数据的远程采集和传输功能。

目前这种技术被广泛的应用于无线数据采集领域、远程数据监控领域等,相信随着移动通信技术的发展以及3G技术的实现,移动通信网的实时性和确定性都将得到极大的改善,本文所设计的基于ARM和GPRS网络的数据采集系统必将会有着更为广阔的发展空间。

关键词:嵌入式系统,GPRS,ARM9s3C2440,Linux

1

河北农业大学毕业论文

Abstract

Remote data acquisition technologies,is a inevitable result with the development of computer network technology,communication and inI/Ormation. In the early time,the remote data acquisition is non-onlion,non-real-time mode.Nowdays,the remote acquisition technology is real-time,online method.And with the the development

of

modern

computer

technology,Internet

technology

and

communications technology,thecollectors can obtain the real-time data from the remote site,relying on the variety of sensor devices installed on the site,so can do some monitoring and analysis about the situation of the site through the real-time data.

GPRS(General Packet Radio Service) is a new data processing technology,based on mobile GSM network.It provide a highly efficient,new data transmission mode I/Or the wireless data acquisition system. It

canprovide

long-distance,high

speed,large capacity,high real-time data transmission services,greatly improving the reliability and accuracy of the data.

This paper has presented a wireless Remote Data acquisition system based on GPRS.In this system GPRS network is a medium I/Or transmitting the remote data.Firstly,itpresents detailed explanation of GPRS network?s system struture and communication principle.Secondly,it introduces the design of hardwware and software in the embedded system.The projet uses ARM9 embedded

processor

and

GPRS as the hardware platI/Orm.The Linux Operation System runs on the hardware platI/Orm.On

this

basis,develop

application

software

I/Or

data

communications,realizing the funcitions of remota data acquisition and transmission.

Curretly this technology is widely used in the field of wireless data acquisition,remote data monitoring and other areas. We development

of

mobile

communication

believe

that

with

the

technology and 3Gtechnology

implementation,the reliability and accuracy of mobile communications will be greatly improved.The design of data acquisition system based on ARM9 and GPRS will certainly have a broader space I/Or development.

Key word:Embedded System,GPRS,ARM9S3C2440,Linux

2

河北农业大学毕业论文

目录

摘要 ABSTRACT

1 无线数据采集系统的发展现状及其前景 2 GPRS介绍 2.1 GPRS概述 2.2 GPRS的特点 2.3 GPRS的工作原理 2.4 GPRS的应用领域 2.5 小结 3 嵌入式系统介绍 3.1 嵌入式系统的定义 3.2 嵌入式系统的特点 3.3 嵌入式系统的层次结构 3.4 嵌入式处理器的介绍 3.5 嵌入式操作系统的介绍 3.6 嵌入式系统的开发流程 3.7 嵌入式系统的应用领域 3.8 嵌入式系统的发展方向 3.9 小结

4 远程数据采集系统的硬件设计 4.1 整体结构

4.1.1 系统结构框图 4.1.2 S3C2440处理器介绍 4.2主要模块的设计 4.2.1电源模块 4.2.2 SDRAM的设计 4.2.3 FLASH的设计 4.2.4 UARI的设计 4.2.5网络模块的设计 4.2.6 GPRS模块的设计

3

河北农业大学毕业论文

4.2.7 JTAG口的设计 4.3 小结

5远程数据采集系统的软件设计 5.1嵌入式Linux内核的移植 5.1.1 Linux系统的开发环境的搭建 5.1.2 配置编译Linux内核 5.1.3制作cramfe文件系统 5.2 GPRS应用程序的设计 5.2.1 GPRS无线通信的流程 5.2.2 串口程序的设计 5.2.3 GPRS拨号的实现 5.2.4 数据的通信过程 5.2.5 测试结果与分析 6 结论和展望 参考文献 致谢

4

河北农业大学毕业论文

1 无线数据采集系统的发展现状及其前景

远程数据采集技术的出现,是计算机网络技术与通信信息技术相结合的必然结果。早期的远程数据采集技术是非在线,非实时的采集方式,而现代的远程采集技术则是实时的在线的采集方式,借助于现代的计算机技术、互联网技术和通信技术,采集者可以依靠安装在现场的各种各样的传感器设备,可以远隔千里就可以获得现场的实时数据,对现场的情况进行监督和分析。伴随着通信技术的发展,出现了以下三种的远程数据采集的模式。

1)、人工远程采集的方式

这种方式是通过人工采集的方式对现场参数及情况进行记录,然后带回总控室由工程师来进行分析。这就包含了太多的人为方面的因素,无法实现实时的数据采集,存在很多的弊端,这是比较原始的数据采集方式。

2)、有线网络远程采集的方式

有线网络远程采集是现代远程采集的模式,是将现场各个采样点通过通信线连成网络,根据通信方式的不同,可以有光纤网、以太网等,这种方式也是现在使用的较多的一种方式。其显著特点是用现场的采样设备将各种传感器获取的信息转变为数字号,然后通过网络传送给远程的监控中心。远程监控工程师再利用计算机和数字信号处理技术对收到的信息进行分析和处理。由于数字信号远程传输的准确性高,不受时间和空间影响,因而可以实现真正意义上的实时在线远程数据的采集和监控。但是这种方式也存在着很多弊端,比如,网络铺设投资大,易受距离限制等。

3)、无线网络远程采集的方式

无线网络远程数据采集又分为两种:一种是单独构建的无线网,另一种是利用移动公司的GSM。第一种方式由于自己要进行网络构建,其工作量是相当的大的,包括传输设备,中继站,传输协议制定。第二种利用GSM网络来实现,这类采集系统的通信方式是依托移动公司的GSM网,它的最大特点是打破了距离的限制,可以实现全国乃至全球漫游的数据采集。这类方式主要是利用GPRS数据业务通过hitemct进行通信,CPRS技术传输速度快,永远在线,用GPRS技术实现的采集系统,实时性强,安全可靠,既避免了开发新的频率资源,又开辟了远程监控的新领域。该系统具有网络覆盖范围广,系统抗干扰能力强,通信速度快,通信误码率低等优点。随着GPRS网络技术的不断发展,构筑在GPRS网上的远程无线采集系统必将与移动通信技术的发展同步,有非常广阔的前景。

5

河北农业大学毕业论文

2 GPRS介绍

2.1 GPRS概述

GPRS是 GeneralPaeketRadioServiee的英文简称,即通用无线分组交换业务,是一种基于GSM网络之上无线分组交换技术,提供端到端的、广域的无线IP连接。通俗地讲,GPRS是一项高速数据处理的技术,方法是以分组的形式传送数据资料。GPRS是作为现有的GSM网络向3G的过渡技术,也被称为2.5G。

GPRS采用与GSM同样的无线调制标准、同样的频带、同样的突发结构、同样的跳频规则,以及同样的TDMA帧结构。这种新的分组数据信道与当前的电路交换的语音业务信道及其相似,因此现有的基站子系统从一开始就可以提供全面的GPRS覆盖。GPRS允许用户在端到端分组转移模式下发送和接收数据,而不需要利用电路交换模式的网络资源。从而提供了一种高效、低成本的无线分组数据业务。

2.2 GPRS的特点

与原有的GSM网络相比较,GPRS在数据业务的承载和支持上具有非常明显的优势,主要具有以下几点:

(l)接入范围比较广。GPRs是在现有的GsM网上的升级,可充分利用全国范围的电信网络,可以方便、快速、低成本的为用户数据终端提供远程接入网络的部署。

(2)高速传输。GPRs的数据传输速率高,最高的数据传输速度可达到171.2kbPs,是有线Modem传输速率的两倍,是GsM网络中电路数据交换业务速度的十余倍,在数据传输速率上具有明显的优势。

(3)快捷登陆。GPRs的拨号上网,接入时间短,可以快速连接网络,平均耗时为两秒左右。

(4)永远在线。用户可以随时与网络保持联系,即使网络中没有数据的传输,终端还会一直与网络保持联系,这将使访问服务变得非常简单快捷。

(5)按流量计费。用户只有在发送或者接收数据期间才占用无线网络资源,用户可以一直在线,计费时按照用户发送或者接收的数据流量来收费的,没有数据流量传递时,即便用户挂在网上也是不计任何费用的。

(6)切换自如。用户在进行数据传送时,不影响语音信号的接收,数据业务和语音业务的切换方便自如。

6

河北农业大学毕业论文

2.3 GPRS的工作原理

GPRS网络是基于现有的GSM网络来实现的,在现有的GSM网络中需增加了节点 GGsN(GatewayGpRsSupportingNode,GPRS网关支持节点)和SGSN(ServingGSN,GPRS服务支持节点),GSN是OPRS网络中最重要的网络节点。GSN具有移动路由管理的功能,它可以连接各种类型的数据网络,并可以连到GPRS寄存器。GSN可以完成移动终端和各种数据网络之间的数据传送和格式转换,GSN可以是一种类似于路由器的独立设备,也可以与GSM中的MSC集成在一起。GSN有两种类型:一种为 SGSN(Serving GSN,服务GSN),另一种为 GGSN(Gateway GSN,网关GSN)。SGSN的主要作用是记录移动终端的当前位置信息,并且在移动终端和GGSN之间完成移动分组数据的发送和接收。GGSN主要是起网关作用,它可以和多种不同的数据网络连接,如ISDN,PSPDN和LAN等。

GPRS工作时,通过路由管理来进行寻址和建立数据连接,而GPRS的路由管理表现在以下3个方面:

一是移动终端发送数据的路由建立; 二是移动终端接收数据的路由建立; 三是移动终端处于漫游时数据路由的建立。

对于第一种情况,当移动终端产生了一个PDu分组数据单元,这个PDU经过SNDC层处理,称为SNDC数据单元,然后经过LLC层处理为LLC帧,并通过空中接口送到GSM网络中移动终端所处的SGSN,SGSN再把数据送到GGSN。GGSN把收到的消息进行解装处理,转换为可在公用数据网中传送的格式(如PDU),最终送给公用数据网的用户。为了提高传输效率,并保证数据传输的安全,可以对空中接口上的数据做压缩处理和加密处理。在第二种情况中,一个公用数据网用户传送数据到移动终端时,首先通过数据网的标准协议建立数据网和GGSN之间的路由。数据网用户发出的数据单元(如PDU),通过已经建立好的路由把PDU数据送给GGSN。而GGSN再把PDU数据送给移动终端所在的SGSN上面,GSN再把PDU封装成SNDC数据单元,再经过LLC层处理为LLC帧的单元,最终通过空中接口传送给移动终端。第三种情况是一个数据网用户传送数据给一个正在漫游的移动用户。这种情况下的数据传送必须要经过归属地的GGSN,然后送到用户端。

7

河北农业大学毕业论文

2.4 GPRS的应用领域

GPRS作为一个开放的业务平台,有着很广泛的行业应用,利用GPRS的数据传输特性,主要应用于下面一些领域。

(l)数据采集领域。如:电力、水利、石油、燃气、环保等行业的数据采集和传输,仅以电力抄表系统为例,新型的基于GPRS的远程智能抄表系统,相比于原先的人工抄表系统,具有更大的智能性,节省了大量的人力成本,也降低了企业的成本,提高了整个系统的可靠性和实时性。

(2)智能交通领域。目前我国的交通管理智能化程度较低,管理不方便等问题,如果能够采用GPRS网络进行交通信息的监控和管理,这将大大提高交通系统的智能性,优化交通网络,改善交通服务。

(3)实时信息查询。GPRS应用于税务、公安、教育、银行等部门,便于及时的查询信息,提高办公效率。

(4)智能家居领域。当GPRS走入家庭的时候,人们可以用手机或者是电脑进行家用电器设备的远程控制,给人们的生活带来极大的方便。

2.5 小结

本章为您简要介绍了GPRS的概念、特点、工作原理、及其应用领域,基于GPRS自身的特点和优势,GPRS应用于远程数据采集,无线监控领域的前景是非常广阔的。

8

河北农业大学毕业论文

3 嵌入式系统介绍

3.1 嵌入式系统的定义

嵌入式系统是一个具有特殊目的的计算机系统,旨在完成一个或几个专门的功能。通常来说,嵌入式系统需要具有实时计算的要求,它一般嵌入在一个包括了硬件和机械部件的完整设备中。相对普通用途的计算机,嵌入式系统可以定制软硬件,而完成不同的任务。由于嵌入式系统是专用于特定的任务,设计工程师可以对其进行优化,减少尺寸和成本,提高可靠性和稳定性。嵌入式系统的大规模生产,可以节省很大的成本。在应用领域上,嵌入式系统可以应用于便携式设备,如数字手表和MP4播放器,也可以用于大型固定设施,像交通灯,工厂控制器,或系统控制核电厂。由于应用的范围不同,嵌入式系统复杂性也有所不同,它可以小到一个微小的控制器芯片,也可以大到成千上万的处理器、外设和网络的集合。

由于应用领域的不断扩大,使得嵌入式系统难于明确定义。目前,业界有多种不同的关于嵌入式系统 (Embeddedsystem)的定义:

A.IEEE定义:

嵌入式系统是“控制,监视或者辅助装置,机器和车间运行的设备”原文为devieesusedtoeontrol,monitor,orassisttheoPerationofequipment,machine理orPlants).

B.国内定义:

不过,IEEE的定义并不能反应出嵌入式系统最本质的特征。目前,国内普遍采用下列描述来定义嵌入式系统:嵌入式系统以应用为中心,以计算机技术为基础,软,硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。

这个定义明确指出了嵌入式系统包括硬件和软件两部分,同时是一个软硬件可裁剪的专用的计算机系统,这也是嵌入式系统与普通计算机的最大差别。更详细的说,嵌入式系统一般指非PC系统,它的硬件部分包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(05)(要求实时和多任务操作)和应用程序编程。主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统,以及相应的应用程序等四部分组成,用于实现对其他设备的控制、监视或管理等功能。

9

河北农业大学毕业论文

3.2 嵌入式系统的特点

通过嵌入式系统的定义可以看出,嵌入式系统具有以下几个非常明显的特征:

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

2、嵌入式系统是将先进的计算机技术、半导体技术和电子技术与其它行业的具体应用相结合的产物,因此,嵌入式系统必然是一个技术密集、资金密集的集成系统,具有很大的创新性和高度的分散性。

3、嵌入式系统由软件与硬件两大部分组成

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

4、较长的生命周期

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

5、具有特定的开发工具

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

3.3 嵌入式系统的层次结构

嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等,软件部分包括操作系统软件和应用程序编程,有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为,而操作系统控制着应用程序编程与硬件的交互作用。嵌入式系统包括功能层、软件层、中间层、硬件层4大部分,如图3.1所示:

10

河北农业大学毕业论文

图3.1嵌入式系统结构图

在嵌入式系统结构中,嵌入式处理器和嵌入式操作系统是在做嵌入式设计前,首先要作选择考虑的问题。

3.4 嵌入式处理器的介绍

嵌入式微处理器有许多种流行的处理器核,芯片生产厂家一般都基于这些处理器核生产不同型号的芯片,比如: 1.ARM

ARM是一个由ARM公司开发的犯位精简指令集计算机(RISC)指令集架构 (IsA),它的全称为高级精简指令集机器 (AdvaneedRlseMachine)。ARM架构是目前使用最广泛的犯位ISA,它是许多嵌入式系统中使用的微处理器和微控制器的内核。由于ARM处理器消耗功率小,而在移动电子中,低功耗是一个关键的设计目标,因此,ARM在移动电子产品市场上占主导地位。截至2009年,ARM处理器大约占嵌入式犯位RISC处理器90%的市场份额。ARM处理器目前广泛使用于消费电子产品,包括PDA,移动电话,iPod和其他数字媒体和音乐播放器,手持游戏机,计算机和计算机外围设备,如硬盘驱动器和路由器等。 2.MIPS

MIPs(MieroproeessorwithouthiterloekedpipelineStages)是由MlpS公司开发的 一种精简指令集计算(RISC)的指令集架构(ISA)。早期的MIPS架构是32位,而 更高版本是64位。MIPS目前应用用于在许多嵌入式系统中,如 WindowsCE设备,思科路由器,住宅网关,以及任天堂64和索尼Playstation视频游戏机等。到2006年底,它还在许多的SGI的计算机产品中使用。在1990年代中期至后

11

河北农业大学毕业论文

期,据估计,三分之一的RlsC微处理器使用了MIPS内核。

3.PowerPC

PowerPC架构的特点是可伸缩性好,方便灵活。PowerPC处理器品种很多既有通用的处理器,又有嵌入式控制器和内核,应用范围非常广泛,从高端的工作站、服务器到桌面计算机系统,从消费类电子产品到大型通信设备等各个方面。目前PowerPC独立微处理器与嵌入式微处理器的主频从25MHz一700MHz不等,它们的能量消耗、大小、整合程度、价格差异悬殊二主要产品模块有主频350MHz一700MHzPowerPC750CX一750CXE以及l三频400MHz的PowerpC4一40GP等。嵌入式的powerPC4os(主频最高为266MHz)和 powerPc440(主频最高为550MHz)处理器内核可以用于各种集成的系统芯片 (System一on一chip,soC)设备上,在电信、余融和其他许多行业具有广泛的应用。

4.X86

X86系列处理器是应用最广泛的微处理器,它起源于hitel架构的8080,再发展出286、386、486,直到现在的Pentium4、Athlon和AMD的64位处理器Hammer。从嵌入式市场来看,486Dx是当时和ARM、68K、MIPs和suPerH齐名的五大嵌入式处理器之一,8080是第一款主流的处理器。今天的Pentium和当初的8080使用相同的指令集,这有利也有弊,利是可以保持兼容性,至少ro年前写的程序在现在的机器上还能运行,弊是限制了CPU性能的提高。

3.5嵌入式操作系统的介绍

1.Vx Vdrks

vxWOrks操作系统是美国WindRiver公司于 1983年设计开发的一种实时操作系统。vxwbrks拥有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在实时操作系统领域内占据了一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、导弹制导、飞机导航等。在美国的F一16、FA一18战斗机,B一2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用了vxwbrks。它是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x86,1960, SunSpare, MotorolaMC68000, MIPsRX000, PowerPe,StrongARM,Xseale等。大多数的vxwo坎 5API是专用的。

2.PSOS

12

河北农业大学毕业论文

pSOS是151公司研发的产品。该公司成立于1980年,其产品在其成立后不久即被推出,是世界上最早的实时系统之一,也是最早进入中国市场的实时操作系统。该公司于2000年2月16日与WindRiver公司合并。

PSOS是一个模块化、高性能、完全可扩展的实时操作系统,专为嵌入式微处理器设计,提供了一个完全多任务环境,在定制的或是商业的硬件上可以提供高性能和高可靠性。它包含单处理器支持模块(pSOS+)、多处理器支持模块(psos+m)、文件管理器模块(pHILE)、TCP/IP通信包(pNA)、流式通信模块(oPEN)、图形界面、Java和HTTP等。开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。

3.Palm05

3COM公司的 Palm05在掌上电脑和PDA市场上占有很大的市场份额。它有开放的操作系统应用程序接口,开发商可以根据需要自行开发所需的应用程序。目前共有3500多个应用程序可以运行在 PalmPilot上,其中大部分应用程序均为其他厂商和个人所开发,使 PalmPilot的功能不断增多。在开发环境方面,可以在Windows和Maeintosh下安装 palmpilotDesktop。 palmPilot可以与流行的Pe平台上的应用程序进行数据交换。

4.、 Vind0WSCE

MicrosoftWindowsCE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核至少需要ZooKB的ROM。

5.嵌入式Linux

随着Linux的迅速发展,嵌入式Linux现在已经有许多的版本,包括强实时的嵌入式Linux(如新墨西哥工学院的Rl’ -Linux和堪萨斯大学的KUR’1飞Llnux等)和一般的嵌入式Linux版本(如uCLinux和PoeketLinux等)。其中,RT-Linux通过把通常的Limix任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的Limix任务又保证强实时性能的目的。另一种常用的嵌入式Linux是uCLimix,它是针对没有MMU的处理器而设计的。它不能使用处理器的虚拟内存管理技术,对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。它专为嵌入式系统做了许多小型化的工作。

13

河北农业大学毕业论文

3.6 嵌入式系统的开发流程

典型的嵌入式系统开发通常采用软硬件协同设计,将软件设计和硬件设计作为一个整体并行设计,找到软硬件的最佳结合点,从而使系统高效工作。这样的设计方法,可以充分利用现有的软硬件资源,缩短系统开发周期、降低开发成本、提高系统性能,避免由于独立设计软硬件体系结构而带来的弊端。嵌入式系统开发一般由4个阶段构成,如图3.2所示,包括系统描述、系统设计、仿真验证与综合实现。系统描述是用一种或多种系统级描述语言对所要设计的嵌入式系统的功能和性能进行全面的描述,建立系统的软硬件模型的过程。

系统设计又可以分为软硬件功能分配和系统映射两个子过程。软硬件功能分配就是要确定哪些系统功能由硬件模块来实现,哪些系统功能由软件模块来实现。硬件一般能够提供更好的性能,而软件更容易开发和修改,成本相对较低。系统映射是根据系统描述和软硬件任务划分的结果,选择系统的软硬件模块以及其接口的具体实现方法,并将其集成,最终确定系统的体系结构。这一过程要确定系统将采用哪些硬件模块(如存储器、Io片、MCU、FPGA、I/O接口部件等)、软件模块(嵌入式操作系统、驱动程序、功能模块等)和软硬件模块之间的通讯方法(数据总线、共享存储器、数据通道等)以及这些模块的具体实现方法。

仿真验证是检验系统设计正确性的过程。由它对设计结果的正确性进行评估,以达到避免在系统实现过程中发现问题时再进行反复修改的目的。在系统仿真验证的过程中,模拟的工作环境和实际使用时差异很大,软硬件之间的相互作用方式及作用效果也就不同,这也使得难以保证系统在真实环境下工作的可靠性。因此,系统模拟的有效性是有限的。但是选择好的仿真验证环境对于系统的开发验证往往能起到事半功倍的效果。

软硬件综合实现就是软件、硬件系统的具体制作。设计结果经过仿真验证后,可按系统设计的要求进行系统制作,即按照前述工作的要求设计硬件软件,并使它们能够协调一致地工作,制作完成后即可进行现场实验。

14

河北农业大学毕业论文

3.7 嵌入式系统的应用领域

嵌入式系统具有非常广阔的应用领域,是现代计算机技术改造传统产业、提升许多领域技术水平的有力工具。目前大量的8、16、32位嵌入式微处理器应用在工业过程控制、数控机床、电网安全、电网设备检测、石油化工和消费电子等领域,显著提高了这些技术领域的自动化和智能化程度。航空航天、交通管理、家庭智能管理系统、POS网络及电子商务、环境检测等领域技术进步与智能化水平的提高,其中的嵌入式系统功不可没。

1.航天领域

嵌入式系统在航天领域得到了广泛的应用,比如在美国宇航局的“基地登陆

15

河北农业大学毕业论文

21

河北农业大学毕业论文

4.2.2 SDRAM的设计

SDRAM具有高速、大容量等优点,是一种具有同步接口的高速动态随机存储器,它的同步接口和内部流水线结构允许存储外部高速数据,数据传输速度可以和ARM的时钟频率同步,主要用作程序的运行空间、数据及堆栈区。ARM内部有一个可编程的16位或者是32位宽的SDRAM接口,允许连接两组SDRAM容量 512Mblt。本系统设计中选择了Hynix公司的HY57v561620FTP一H,它的容量是16MB,单片数据宽度是16位,为了增加数据吞吐能力,所以选取了两片SDRAM构成犯位地址宽度。

SDRAM模块的原理图如图4.3所示。其中,SDRAM的存储单元可理解为一个电容,总是倾向于放电,为了避免数据丢失,必须定时刷新。因此,要在系统中使用SDRAM,就要求微处理器具有刷新控制逻辑,或者是在系统中另外加入刷新控制逻辑电路。ARM芯片在片内具有独立的SDRAM刷新控制逻辑,可以方便地与SDRAM接口,但有的ARM芯片则没有SDRAM刷新控制逻辑,就不能直接与SDRAM接口。

SDRAM内存芯片的主要信号有数据信号、控制信号、地址信号,均为工作时钟同步输入,输出信号。控制信号主要有:CS(片选信号),SCKE(时钟使能信号),CAS、RAS、WE(读写控制命令字),DQM(输入、输出使能信号),通过CAS、RAS、WE的各种逻辑组合,可以产生各种控制字。在Cs,SCKE,DQM,RAS、CAS、WE这些控制信号中,CS片选信号由MCU芯片上的通用片选信号发出,需要从8个通用片选端nGCS[7:0]中的选择一个,作为两片sDRAM共用的片选信号。

22

河北农业大学毕业论文

4.2.3FLASH的设计

闪存 (FLASHRoM)属于半导体存储器的一种,属于非易失性存储器。FLASH存储器具有速度快、成本低、结构简单、编程可靠等优点。因此在嵌入式系统中的应用也越来越多。

本设计中采用 KgF120864MshitNandFlash闪存芯片。该器件存储容量为 16Mxs位,除此之外,还有slZKxs位的空闲存储区。该器件采用TSOP48封装,工作电压为2.7v至3.6v。8位I/O端口采用地址、数据和命令复用的方式,这样既减少了引脚数,也可以使得接口电路简捷。

该器件均用于提供启动代码和操作系统运行时的永久性设置。NandFlash上定义有作为整个系统的启动引导的区块,属于8个地址空间中的BANKO,物理起始地址为0X0000000o。 NandFlashRoM虽然采用了TsoP4s封装,但是其实需要有效连接的管脚并不多,这是和NandFlash的特殊I/O接口有关的,因此芯片48根线中,只须引出8根数据I/O线,6根控制线,2根高电平参考电压引脚,接3.3V,2根地电平参考电压引脚,接地;由于是电路板上的应用,因此将写保护引脚接地永久取消写保护;其余的引脚全部空接。硬件电路设计如图4.4所示

23

河北农业大学毕业论文

4.2.4 UART的设计

S3C2440共支持有三个UART接口,UARTO、UARTI、UARTZ,均支持中断方式和DMA方式。其中用UARTI与PC的串行通信接口连接,默认情况下将系统运行时的109信息传输到PC,用于系统启动代码的调试,另两个口亦可设定成与外设连接的功能或者与单片机通信的功能。因为53C2440的TTL输出电平为+3.3V,因而需要用MAX3232芯片将输出电平转至供PC机COMI口的RS232电平(1:+5~+15、0:-5~-15)。MAX3232芯片的使用非常广泛,但基本都是严格遵循着手册里规定的器件应用选型进行。由于提高电压需用电容充当电荷泵,所以需要使用四个0.1μF的电容与MAX3232的对应管脚相接,具体接法如图4.5所示。

24

河北农业大学毕业论文

4.2.5 网络模块的设计

本设计中采用DMg000芯片,它是一块全集成和高效率的芯片,其上带有以太网MAC控制器和通用处理接口,支持标准 10M/looM自适应,可在低功耗和高性能运行两种方式下工作,工作电压为3.3V。DM9000也能提供Mn接口连接HPNA设备或者其他支持Mn接口的收发器,并支持8位、16位、32位的接口来适应不同的微处理器对内部存储器的访问。由于数据有时候是以触发形式收到的,因此,DM9000还集成有接收缓冲区,以便在接收到数据时能把数据放到这个缓冲区中,然后由数据链路层直接从该数据缓冲区中取走数据。

设计中使DM9000处于I/O空间模式工作状态,I/O空间模式下,DM9000的内部packagepage存储器可通过8个16位I/O端口访问,而这8个I/O口被映射到主机的16个8位的I/O空间,偏移地址从0000H到000FH。DM9000芯片的十六位数据总线与MCU数据总线的低十六位相连,地址线方面将DMgO00的SAS、SAg置高电平使得DM9000的基址被置于0300H,用低四位地址线与MCU的低四位相连,与读写I/O口的偏移地址位数相匹配。网络模块的电路原理图如下图4.6所示。

25

河北农业大学毕业论文

4.2.6 GPRS模块的设计

GPRS模块采用的是成都无线龙Q24PL002,内嵌TCP/IP,协议栈,具有丰富的AT指令集,功能强大,操作简单。该模块具有体积小、重量轻、性能优等特点,可实现与Iniement的无缝连接。硬件上有电源接口、RS232接口、SIM卡接口等,使之更加适用于嵌入式系统环境。简单的硬件连线图,如下图4.7所示。

4.2.7 JTAG口的设计

53C2440的JTAG测试逻辑端口共有5根线,TMS、TCK、nTRST、TDI和TDO,通过他们与MCU内部的TAP测试访问端口连接。TAP控制器的状态机通过TCK和TMS进行状态的改变,实现数据和指令的输入,而且通过TAP可以访问芯片提供的所有数据寄存器和指令寄存器。JTAG接口的主要信号就包括上述五个,其中

TCK:测试为TAP提供的一个独立的基本的时钟输入,TAP所有的操作都是通过这个时钟信号的上升沿来驱动的,一般频率都较低;

TMS:测试模式选择,控制工AP状态机的转换,设置JTAG口处于某种特定的测试模式。TMS信号在TCK的上升沿有效;

TDI:测试数据输入,信号类型为串行,数据进入MCU的JTAG口,进而可

26

河北农业大学毕业论文

以送到指定的寄存器,由TCK驱动;

TDO:测试数据输出,所有从寄存器中取出的数据从MCU的JTAG口传疏导TDO口,串行送出,供调试器接收,TDO同样由TCK驱动;

nTRST:测试复位,低电平有效。

JTAG的编程方式是在线编程,传统的生产流程是将ROM置于编程器中进行预编程,然后再装配到电路板上,而现在通过在线编程可以将流程简化为先装配完成再编程,ROM不再需要借助烧写器进行预编程,从而减少了加工的复杂度。

根据三星2440手册的要求,为输入端nTRST、TMS、TCK、TDI分别接 10K的上拉电阻。电路连接如下图4.8所示。

4.3小结

本章节主要介绍了远程数据采集系统的硬件设计部分,先表述了系统的整体方案,以及 ARM9S3C2440芯片的简单介绍,下来分别对系统各个部分的模块设计做了详细的论述,主要包括有电源模块的设计、SDRAM模块的设计、FLASH模块的设计、UART通信模块的设计、JTAG接口的设计、网络接口的设计,GPRS模块的电路设计等等,本设计的硬件实物如下图4.9所示。

27

河北农业大学毕业论文

28

河北农业大学毕业论文

5远程数据采集系统的软件设计

本章将系统介绍远程数据采集系统软件的设计,主要包括有:嵌入式Linux系统的移植,GPRS应用程序的软件设计等。

5.1 嵌入式Unux内核的移植

所谓的移植就是把程序代码从一种运行环境转移到另外一种运行环境,对于内核移植来说,主要就是从一种硬件平台转移到另外一种硬件平台上运行。内核移植工作主要是修改硬件平台相关的代码,一般不涉及Li~通用的程序,移植的难度也取决于两种硬件平台之间的差异。 5.1.1 Linux系统的开发环境的搭建

嵌入式Linux系统的开发是在交叉编译环境下进行的,因此搭建Linux系统的开发环境是系统开发的第一步工作,也是必备的一步。嵌入式设备由于其资源有限,不能像PC机一样建立开发和编译的环境。它只能执行编译好的程序。整个的开发过程都是在主机上完成,通过交叉编译之后编译成目标机上能够执行的二进制文件。然后想办法下载到目标板的RAM上让其运行。

本设计所采用的主机端是WindowsXP,选择的虚拟机是VMware,在虚拟机上安装Linux系统,建立交叉编译环境,搭建交叉编译环境的方法有很多,不同的体系结构、不同的操作内容甚至是不同版本的内核,都会用到不同的交叉编译器,因此,选择合适的交叉编译器对系统开发是非常重要的。

交叉编译器完整的安装一般设计多个软件的安装,包括binutils、gee、glibc等软件。其中,binutils主要用于生成一些辅助的工具,如objdump、as、ld等;gce用来生成交叉编译器的,主要生成arm-linux-gcc交叉编译工具,应该说生成此工具之后就已经搭建起了交叉编译环境,可以编译Limix内核了,但是由于没有提供标准用户函数,用户程序还是无法编译;glibc主要是提供用户程序所使用的一些基本的函数库。这样,交叉编译环境就算是完全搭建起来了。本章所用的整个的开发环境如下图5,l所示:

29

河北农业大学毕业论文

详细的步骤如下:

(l)下载Linux内核源代码,可以到以下网址下载:

httP://~{kemel.沉的ub几Inux瓜emel/v2.6几inux一2.6.24,4.tar.bzZ (2)到以下网址下载交叉编译工具包:

http://www.handhelds.o呵 download/Projeets/toolchai可ann一Linux一gee一3.4.l.tar.bzZ

(3)在Linux环境下安装交叉编译工具,执行下列命令: tar-jxvf arm-Linux-gcc- 3.4.1.tar.bz2-C/

命令解释:tar命令是Linux下一个压缩和打包的工具,执行之后会将工具安装在/us叭ocal/an对3.4.1/中,后面在执行编译内核的时候需要将Makefile中的交叉编译器路径指向这里,否则将找不到编译器或者使用的默认的X86的GCC将会出现找不到lib库的问题。

(4)解压源码:

tar一 xvfLimix一2.6.24.4.tar.bz2

命令解释:执行这句之后将完整的内核代码解压缩到当前目录下。 进入解压缩后的内核代码目录中,内核代码结构如下: Linux内核源代码包括多个目录,各目录所含代码或文件如下: arch:包括硬件特定的内核代码,如ann、mips、1386等: drivers:包含硬件驱动代码,如ehar、usb、。drom、Sesi、mtd等:

include:通用头文件及针对不同平台特定的头文件,如asm-1386、asm-ann等: init:内核初始化代码: ipc:进程间通信代码; kernel:内核核心代码; mm:内存管理代码;

net:与网络协议栈相关的代码,如ipv4、ipv6、ethemet等: fs:文件系统相关代码,如nfs、vfat等; lib:库文件,与平台无关的strlen、strcPy等 DocUmentation:文档

经过以上的步骤,交叉编译环境就算是基本搭建起来了。 5.1.2 配置编译Linux内核

移植内核之前首先要配置内核,配置内核的命令包括:

30

河北农业大学毕业论文

1. make config

这种方法将配置选项以命令行的形式列出,用户可以对选项逐个进行配置。配置完成后,将配置结果保存在.config文件中。如果己经存在有.config的配置文件,那么就会以该文件中的配置选项作为默认配置设置。 2. make oldconfig

对已有的.config文件进行更改,但只能对以前没有配置过的选项进行设置而makecon雌可以对所有的配置选项在重新进行设置。 3. make menuconfig

与makeconfig类似,不过这种方法的显示方式是以菜单模式进行显示的。 4. make xconfig

只用于XWindow下的配置,将配置选项以图形菜单的形式显示出来。在进行相应的配置的时候,有三种方式选择:

Y:将该功能编译进内核; N:不将该功能编译进内核;

M:将该功能编译成可译载需要时动态插入到内核的模块。

makexconfig使用鼠标选择对应的选项, makemenuconfig使用空格选择相应的选项。空格表示不将该功能编译进内核,*表示将该功能编译进内核,M表示将该功能编译成模块,在需要时将其动态插入到内核。

本文选用了第三种也是最常见一个种方式。其配置主界面如图5.2所示。 键入 make menuconfig之后,出现图这个配置的主界面。

31

河北农业大学毕业论文

在每一个选项前都有一个括号,有的是中括号,有的是尖括号,还有的是圆括号。用空格键选择时发现,中括号要么是空,要模式“*”,而尖括号里可以是空、“*”和“M”。这表示前面对应的项要么不要,要么编译进内核里;后者则多一项选择,即可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。

配置内核是很麻烦的一步工作,在实际的配置过程中,大部分的选项可以使用其缺省值,只有少部分是根据用户的需要进行选择。选择的原则是将与内核其他部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减少内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响;不需要的功能就不用选;与内核关系紧密且经常使用的部分功能代码就直接编译到内核中。

主要配置选项的说明如下: ①选择 Generalsetup---> 出现常规设置

在这项里面主要设置项有:

Automatically append version information to the version string

自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持 Support for paging of anonymous memory(swap) 使用交换分区或者交换文件来做为虚拟内存 System V IPC

SystemV进程间通信(IPC)支持,许多程序需要这个功能,必选 ②Enable loadable module support---> 可加载模块支持

32

河北农业大学毕业论文

打开可加载模块支持,如果打开它则必须通过” make modules_install”把内核模块安装在 /lib/modules/中 Module unloading 允许卸载已经加载的模块 Module versioning support

允许使用其他内核版本的模块,可能会引起其他不必要的麻烦,所以这里去掉。

Source checksum for all modules

为所有的模块校验源码,这里没有必要。 Automatic kernel module loading

让内核通过运行modprobe来自动加载所需要的模块,比如可以自动解决模块的依赖关系。 ③systeml Type

用于选择中央处理器 (CPU)类型及特性 S3C2440 Machines--->

33

河北农业大学毕业论文

④Networking---> 网络设置选项

⑤ Device Drivers---> 设备驱动选择

Network device support

去掉千兆和万兆以太网的支持,保留 10/l00M Ethemet即可。还要移植的DM9000是100M Ethemet接口,

在这里还有出现选择具体网卡型号的选项,因为还不支持,S3C2440芯片上并没有直接集成网卡的控制器,而是需要通过外部拓展的接口实现,所以这个也要单独进行移植。

⑥ File System---> 文件系统

34

河北农业大学毕业论文

因为我们使用了carmfs,是只读文件系统,所以要选择支持。

配置完成之后,其他没有提到的地方使用默认的选项,然后保存退出。

然后,进行编译,使用“make zImage”或者是“make bzImage”,建立压缩的内核镜像文件,在盯crch/arm/boot目录下生成zImage文件。至此,完成了内核源代码的编译,这下可以把内核压缩文件下载到S3C2440硬件板中。 5.1.3 制作cramfs文件系统

要让系统正常地启动,还需要制作嵌入式Linux文件系统。在嵌入式系统中常见的文件系统有cramfs、romfs、jffs、yaffs等,本设计中采用了cramfs文件系统。Cramfs文件系统是一种经压缩的、极为简单的只读文件系统,因此非常适合嵌入式系统。

在嵌入式Linux中,busybox是构造文件系统最常用的软件工具包,它被非常形象的称为嵌入式Linux系统中的“瑞士军//”,因为它将许多的Linux命令和

35

河北农业大学毕业论文

工具结合到了一个单独的可执行程序(busybox)中。虽然和GNU比较起来,busybox提供的功能和参数略少,但在比较小的系统或者是嵌入式系统之中已经足够了。Busybox在设计上就考虑到了硬件资源受限的特殊环境。它采用一种很巧妙的办法减少了自己的体积:所有的命令都是通过插件的方式集中到一个可执行文件当中,在实际应用过程中,通过不同的符号链接来确定到底要执行哪个操作。采用单一的执行文件的方式,最大限度地共享了程序代码,对资源比较紧张的系统来说,是再合适不过了。在busybox的编译过程中,可以很方便地加减它的“插件”,最后的符号链接也可以由编译系统自动生成。下面使用busybox构建cramfs文件系统的过程。

首先从busybox网站下载busybox源码,进行解压,接下来就是实际需要进行busybox的配置。

在终端所使用的命令行有: #tar jxvf busybox- 1.00.tar.bz2; #make defconfig; #make menuconfig;

此时,需要设置平台相关的交叉编译选项,操作步骤为:先选中”Bulld OPtion”项的“Do you want to build Busybox with a Cross Complier?”选项,然后将“Cross Complier prefix”设置为“ /usr/local/arm/3.3.2/bin/arm-linux-”。

下一步编译并安装busybox。在终端执行命令make,make install PREFIX= /home/david/fs2440/cramfs。其中PREFIX用于指定安装目录,如果不设置该选项,则默认在当前目录下创建-install目录。创建安装目录的内容如下所示: [root@localhost cramfs]#ls bin linuxrc sbin usr

下面通过创建系统所需要的目录和文件来完善文件系统的内容: [root@localhost cramfs]#mkdir mnt root var tmp proc boot etc lib [root@localhost cramfs]#mkdir/var/{lock,log,run}

接下来要创建一些重要的文件。首先要创建/etc/inittab和/etc/fstab文件。前者是linux系统启动之后第一个被访问的脚本文件,而后者是定义了文件系统的各个挂接点的文件。以上用busybox创建了文件系统的内容,下面要创建cramfs文件系统镜像文件。

制作cramfs映像文件需要用到的工具是mkcramfs,下面是使用mkcramfs制

36

河北农业大学毕业论文

作cramfs映像文件,所使用的命令为“mkcramfs”就可把以构建的文件系统制作成只读的、压缩的cramfs文件系统了。这样在ARM的Linux系统启动后,内核就会把它加载到内存中,进行解压,其上面的应用程序就可以在ARM板上运行了。最后就是将制作的cramfs文件映像下载到ARM板子上。至此就完成了嵌入式Linux操作系统的文件系统的制作。

5.2 GPRS应用程序的设计

5.2.1 GPRS无线通信的流程

通过GPRS模块进行数据传输其实就是利用移动通信网络与Intemet网络进行互联,因而传输的数据需要符合Intenet网络的TCP/IP协议的标准。

实现GPRS数据传输的过程为:首先利用ARM处理器控制GPRS模块实现与Intemct网络的连接,通过PPP协议获得IP地址;然后将经过TCP/IP以及PPP协议封装的数据通过RS232串口发送给GPRS模块。

GPRS无线通信的大致流程如下:

(1)物理过程。在对GPRS Modem模块进行参数设置后,ARM利用AT指令通过 GPRS Modem拨号。正确反馈及应答后,一条物理通道即GPRS信道就在系统中的GPRS Modem和GPRS网络之间建立起来。

(2)数据过程。PPP协议将原始的GPRS物理层连接改造成无差错的数据链路,系统将远程登录Intenet,并得到GPRS网关分配的lP地址。

(3)网络过程。利用IP协议作为网络层协议,经过IP路由选择可实现系统与连在Intenet的终端进行数据交换。

(4)传输过程。选择TCP作为传输层协议,为数据传输提供面向连接的可靠服务。

在通讯过程中,ARM与GPRS Modem的数据通信格式有两种:AT指令和PPP帧。AT指令格式表示从串口发送的所有数据都发送给了GPRS模块,PPP帧格式表示从串口发送的所有数据都透明的发送给了GGSN。

GPRS通信的软件流程图如下图5.11所示:

37

河北农业大学毕业论文

5.2.2 串口程序的设计

由于 GPRS模块采用的是串口与嵌入式处理器来连接,因此LINUX下的串

口设置和驱动就显得非常重要。下面较为详细的介绍串口的设置以及相应的操作。

S3C2440的UART(通用异步串口)单元提供3个独立的异步串口I/O端口,每一个都可以在中断和DMA两种模式下进行,支持最高波特率 115200b/s。每一个UART通道包含2个16位FIFO分别提供给接收和发送。

最基本的设置串口包括波特率设置、校验位和停止位的设置,主要是设置struct termios结构体的各成员值。

与其他字符设备一样,串口设备文件(如/dev/tts/0)可以接收典型的文件操作系统调用,包括open、read、write、close等。

可以通过下面的代码打开或者关闭串口设备: Int fd;

//以读写方式打开串口 Fd=open(“/dev/ttys0”,o_rdWR); If(-l= =rd)

38

河北农业大学毕业论文

{

Perror(“error!”); } 。。。。。。

Close(fd);

Read write方法可以用来控制串口接受或发送数据。

通过串口终端设置串口通信的波特率、工作模式等状态,这里需要调用头文件termios.h:

#include

最基本的串口设置包括波特率的设置、校验位和停止位的设置,主要是设置struct termios结构体的各个成员值。

Struet termio {

Unsigned short c_iflag; //输入模式标志

Unsigned short c_oflag; //输出模式标志 Unsigned short c_cflag; //控制模式标志 Unsigned short c_lflag; //本地模式标志

Unsigned short c_line; //线路规则 Unsigned short c_cc[NCC]; //控制符 }

在这里主要考虑一些常用的设置,如下所示: 波特率的设置

Struct termios OPt; Tegetchattr(fd,&Opt); Cfsetospeed(&OPt,B115200);

Cfsetospeed(&OPt,B115200);//设置为 115200b/s Tcsetattr(fd,TCSANOW{&Opt):

(2)校验位和停止位的设置(8位无效验,1位停止位模式,8N1)

OPt.c_cflag&=~PAREND OPt.c_cflag&=~CSTOPB OPt.c_cflag&=~CSIZE:

39

河北农业大学毕业论文

OPt.c_cflag I =~CS8;

Tcsetattr(fd,TCSANOW,&OPt); (3)设置原始工作模式

OPt.c_lflag&=~(1CANON ECHO ECHOE ISIG); //输入 OPt.c_lflag&=~OPOST; //输出 TCsetattr(fd,TCSANOW,&OPt);

系统调用函数Tcsetattr可以获得串口的属性,调用Tcsetattr时,通过使用TCSANOW参数可以让设置的属性立即生效。 5.2.3 GPRS拨号的实现

PPP(Point-to- PoiniProtocol,点对点协议)是在直接连接的串口链路上创建和

运行 Ip(Internet Protoeol,网络协议)或者其他协议的一种机制。在Linux下,通过PPP可以将主机与一个PPP服务器连接并进入该服务器所连接的网络资源,就像直接连上了那个网络一样,因为PPP是端对端系统,也可以使用两台Linux服务器通过PPP将两个网络连接在一起,例如一个局域网和一个广域网。本文主要是通过串口与GPRS模块连接,实现无线拨号上网的过程。

在Linux下对PPP的支持需要内核和应用程序配合管理,在配置Linux内核时,需要选择对PPP的支持。对于hmix2.6内核,可以在Networking菜单下,选择添加对串口终端PPP的支持。

还需要PPP的应用程序工具包,针对硬件平台交叉编译之后,2个应用程序是必须的:pppd和chat,此外,还需要3个ppp脚本来负责连接。在目标板的根文件系统/etc/ppp目录下建立options文件,内容如下所示:

//指定串口控制台设备 /dev/ttse/0 //连接波特率 115200

//开启硬件流控制 Crtsets

//不切换到后台,也可以使用选项updatech,pppd要等到建立了连接以后才会到后台去 Nodetach

//在客户机下请求连接时不需要身份认证

40

河北农业大学毕业论文

Noauth

//旨示系统内核吧ppp地址加入到系统路由表中,作为默认网关 Defaultroute //ppp的连接脚本

Connect/etc/ppp/gprs-diseonneet 10.0.0.1

//指示ppd从服务器请求ip地址,通过ISP动态分配地址 NoiPdefault //关闭压缩 Nodeflate Novj Novjccomp

/etc/ppp/options是pppd服务的配置文件,默认情况下,启动pppd,它会根据/ete/ppp/options来配置ppp的拨号。这里,GPRS的连接脚本为/etc/ppp/gprs-connnect,其内容为: #! /bin sh Exec/sbin/ehat: TIMEOUT 5 ECHO ON

ABORT‘\\nBUSY\\r, ABORT‘\\nERROR\\r, ABORT ‘\\N noANSWER\\r, ABORT ‘\\N noCARRIER\\r, ABORT ‘\\N noDIALTONE\\r’ ABORT ‘\\Nringing\\r\\n\\\\r\\Nringing\\r’ ‘’ ‘、rAT’ TIMEOUT 6

SAY “Press CTRL-C to close the eonnection at any stage!” SAY “\\ndefining PDP context…\\n”

OK ?AT+CGDCONT=1,”IP”,”CMNET”,””,0,0? OK ?ATDT*99#;?

41

河北农业大学毕业论文

TIMEOUT 10

SAY “\\nwaiting for connect…\\n” CONNECT “”

SAY SAY

“\\nconnected.”

“\\nif the following ppp nefotiations fail,\\n” “try restarting the phone.\\n”

SAY

此脚本利用chat命令,通过串口与GPRS模块进行交互,完成拨号,配置等

工作。GPRS的断开脚本/etc/ppp/gprs-disconnect内容为:

! #/bin/sh Exec chat-V-s-S ABOUT ABOUT ABOUT SAY “” “” SAY

“BUSY” “ERROR” “NO DIALTONE”

“\\nSending break to modwm\\n”

“\\K” “+++ATH”

“\\Npdp context detached\\n”

这样,系统启动后,直接使用pppd命令,就可以实现GPRS拨号连接,如果系统没有设置迷人路由,则pppd会把建立起来的连接作为默认的路由,就可以通过GPRS无线接入互联网了。 5.2.4数据的通信过程

当GPRS模块获得IP地址后,并且已经建立了连接,就可以通过GPRS模

块进行数据通信了。

数据的发送部分,CPU只需要将发送的数据报通过RS232发送到GPRS模块,数据报的准备是由协议层的不断封装得到,由于GPRS的数据通信是基于TCP/IP协议的,所以在发送数据时,必须将数据打包封装成IP数据报的形式。因此,一个数据要发送,同时必须经过套接字发送、TCP层发送和IP层的相关发送函数。如果数据已经打包封装成IP数据报,接下来的工作就是为IP数据报封装成PPP数据报,再由RS232送往GPRS模块,从而完成数据的发送过程。

数据的接受部分,GPRS模块接收数据是不需要CPU的干预的,因为GPRS的数据接收就像是网络的数据接收一样,一旦GPRS模块接收到数据,就会通过

42

河北农业大学毕业论文

RS232向CPU传送数据,所以,对于CPU来说,数据输入的标志是RS232产生中断,或者也可以通过时钟的定时中断来查询RS232的缓冲区是否有内容来判断有无数据的输入。无论哪种方式,一旦中断发生,CPU都可以从RS232缓冲区中得到输入的数据,中断服务程序就是GPRS的数据输入的开始。

由于在Linux下的TCP/IP协议处理方法是分别在服务器端和客户机端分别创建socket程序,建立通信联系的,下面就来给出在嵌入式终端中如何实现Socket客户端以及Socket服务器程序的实现。

服务器端: (l)创建一个socket;

(2)将该sockct与本机地址/端口号捆绑; (3)在监听端口上监听客户机的连接请求;

(4)当accePt捕捉到一个连接请求时,就建立连接线路并返回一个新的通信文件描述符;

(5)父进程创建一个子进程,父进程关闭通信文件描述符并继续监听端口上其他客户机的连接清求;

(6)子进程通过通信文件描述符与客户机进行通信,通信结束后终止子进程并关闭通信文件描述符。

客户机端:

(l)创建一个socket,

(2)向服务器主机及端口发出连接请求,请求成功将返回通信文件描述符; (3)调用connect函数与服务器建立连接; (4)连接成功之后与服务器进行通信; (5)通信完毕后关闭通信文件描述符。

具体的服务器端和客户机端程序的编写可参考下面的编程模型,Linux下面向连接的Socket网络编程模型如下图5.12所示:

43

河北农业大学毕业论文

5.2.5测试结果与分析

本课题所设计的ARM嵌入式终端系统,通过GPRS网络传输数据,具有较低的误码率和较高的传输效率,基本上达到了预期的效果。下图是实验结果截图:

44

河北农业大学毕业论文

实际应用之中,人们总是希望数据在通信过程中能够及时准确地传输,但是由于外界环境的干扰,以及通信系统自身的网络问题等诸多方面的因素,很容易造成数据在传输的过程中出现错误或者丢失的现象。反复的实验表明,为了提高数据传输的正确性和可靠性,本文总结了以下两点措施,大大降低了数据传输的误码率。

(l)使用较小的数据包。数据通信的过程中,一次性传输的数据包越长,传输过程中出现错误的可能性就越大。因此,我们选用较小的数据包来进行传输。多次的实验表明,拆分的数据包越小,在传送的过程中出现的错误就越小。一般情况下,传输的数据包最好不要超过IM,这样就可以保证数据无差错的传送,提高了系统的可靠性。

(2)提供心跳功能。在实际的应用中很可能会由于链路的空闲,而被服务器强制地中断,导致GPRS网络掉线。为了解决这一问题,系统提供了心跳功能,即主动地定时地向GPRS网络发送心跳数据。具体做法就是在模块上电后,启动心跳装置,按照一定的时间间隔定时地向GPRS网络发送数据包,对方收到心跳数据之后,会返回同样的数据,如果系统长时间没有收到心跳数据,则会自动重启模块,重新拨号连接。

以上的两种措施,对于改善系统的可靠性,降低传输的误码率,都有很大的帮助。经过反复的实验表明,本系统在数据的发送和接收过程中,有良好的可靠性,较低的误码率,基本上达到了预期的目标。

45

河北农业大学毕业论文

6结论和展望

本论文设计的基于ARMg的GPRS无线通信系统,通过ARMg芯片控制GPRS模块,利用移动的GPRS无线网络,实现远程的数据传输功能。该系统具有网络覆盖范围广,抗干扰能力强,通信速度快,误码率低等优点,具有良好的可靠性和稳定性。目前这种技术被广泛的应用于无线数据采集领域、远程数据监控领域等。随着移动通信技术的发展以及3G技术的实现,移动通信网的实时性和确定性都将得到极大的改善,基于AR五江和GPRS网络的数据采集系统必将会有着更为广阔的发展空间。

本论文的主要工作及创新点有以下几个方面:

(1)采用世界上广泛应用的嵌入式系统作为系统平台。文中论述了嵌入式系统的层次结构,嵌入式处理器和操作系统的选择,嵌入式系统的软硬件开发等。目前,市场上的嵌入式处理器多不胜数,嵌入式操作系统更是琳琅满目,针对实际目标需要如何选择合适的硬件与软件系统,是整个设计的基础也是非常关键的部分。本文将32位的ARMg芯片应用于数据采集的终端系统,大大提高了数据的处理速度,相比以前的用51单片机做处理器的系统有很大的进步和提高。

(2)对嵌入式Linux操作系统进行了详细的研究。之所以选择Linux系统是由于其自身的很多优势所决定的,Limix系统的开源性、多用户、多任务的特点,使得Linux非常适合于嵌入式产品之中。本文从Limix内核的配置,文件系统的制定,上层应用程序的编写,都做了详细的论述。最后给出了基于嵌入式Linux系统下的应用程序的实现。本文将Linux操作系统作为系统的软件工作平台,大大简化了应用程序的开发,满足了系统对实时性、多任务、多用户的要求。

(3)借助于移动公司的GPRS网络实现远程的数据传输。GPRS作为GSM网络上的一种数据处理技术,有着广泛的网络覆盖面积,有较高的数据传输速率,有着良好的稳定性和可靠性。借助于GPRS网络来进行远程数据的采集和监控,大大降低了开发成本,即方便又快捷。

本文研究设计的GPRS无线数据监测终端基本上完成了阶段性的设计目标,由于能力和时间有限,本设计还有许多需要完善和改进的地方。例如在系统的可靠性,数据的丢包率,GPRS网络的优化,上位机软件的设计等方面的研究尚有不足,有待于进一步地提高和完善。

46

河北农业大学毕业论文

6结论和展望

本论文设计的基于ARMg的GPRS无线通信系统,通过ARMg芯片控制GPRS模块,利用移动的GPRS无线网络,实现远程的数据传输功能。该系统具有网络覆盖范围广,抗干扰能力强,通信速度快,误码率低等优点,具有良好的可靠性和稳定性。目前这种技术被广泛的应用于无线数据采集领域、远程数据监控领域等。随着移动通信技术的发展以及3G技术的实现,移动通信网的实时性和确定性都将得到极大的改善,基于AR五江和GPRS网络的数据采集系统必将会有着更为广阔的发展空间。

本论文的主要工作及创新点有以下几个方面:

(1)采用世界上广泛应用的嵌入式系统作为系统平台。文中论述了嵌入式系统的层次结构,嵌入式处理器和操作系统的选择,嵌入式系统的软硬件开发等。目前,市场上的嵌入式处理器多不胜数,嵌入式操作系统更是琳琅满目,针对实际目标需要如何选择合适的硬件与软件系统,是整个设计的基础也是非常关键的部分。本文将32位的ARMg芯片应用于数据采集的终端系统,大大提高了数据的处理速度,相比以前的用51单片机做处理器的系统有很大的进步和提高。

(2)对嵌入式Linux操作系统进行了详细的研究。之所以选择Linux系统是由于其自身的很多优势所决定的,Limix系统的开源性、多用户、多任务的特点,使得Linux非常适合于嵌入式产品之中。本文从Limix内核的配置,文件系统的制定,上层应用程序的编写,都做了详细的论述。最后给出了基于嵌入式Linux系统下的应用程序的实现。本文将Linux操作系统作为系统的软件工作平台,大大简化了应用程序的开发,满足了系统对实时性、多任务、多用户的要求。

(3)借助于移动公司的GPRS网络实现远程的数据传输。GPRS作为GSM网络上的一种数据处理技术,有着广泛的网络覆盖面积,有较高的数据传输速率,有着良好的稳定性和可靠性。借助于GPRS网络来进行远程数据的采集和监控,大大降低了开发成本,即方便又快捷。

本文研究设计的GPRS无线数据监测终端基本上完成了阶段性的设计目标,由于能力和时间有限,本设计还有许多需要完善和改进的地方。例如在系统的可靠性,数据的丢包率,GPRS网络的优化,上位机软件的设计等方面的研究尚有不足,有待于进一步地提高和完善。

46

本文来源:https://www.bwwdw.com/article/16yp.html

Top