基于8051嵌入式系统的GPRS终端实现.docx
- 文档编号:6413278
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:7
- 大小:96.54KB
基于8051嵌入式系统的GPRS终端实现.docx
《基于8051嵌入式系统的GPRS终端实现.docx》由会员分享,可在线阅读,更多相关《基于8051嵌入式系统的GPRS终端实现.docx(7页珍藏版)》请在冰豆网上搜索。
基于8051嵌入式系统的GPRS终端实现
基于8051嵌入式系统的GPRS终端实现
摘要:
介绍了基于GPRS网的数据传输、嵌入式实时操作系统u/OS-II以及小型TCP/IP协议栈uIP;深入论述了基于8051嵌入式系统的GPRS终端的实现。
提供了一种罗为简单、廉价和实用的GPRS终端的实现方案,说明了在8051中如何进行uC/OS-II和uIP的移植。
关键词:
GPRS终端嵌入式系统实时操作系统TCP/IP
随着数据无线传输需求的骤增和中画移动GPRS业务全面投入运营,无线数据通信的应用越来越广泛。
GPRS网不但具有覆盖范围广、数据传输速度快、通信质量高、永远在线和按流量计费等优点,且其本身就是一个分组型数据网,支持TCP/IP协议,无需经过PSTN等网络的转接,可直接与Internet网互通。
因此GPRS业务在无线上网、环境监测、交通监控、移动办公等行业中具有无可比拟的性价势。
为了满足GPRS终端的低成本、小型化和移动灵活等要求,现在广泛采用单片机对GPRS终端进行控制,并且引入嵌入式系统实现TCP/IP协议栈。
目前主要的困难在于:
运行TCP/IP协议对计算机存储器、运算速度等要求较高,会占用大量的系统资源;而嵌入式系统大多采用8位单片机,硬件资源非常有限,支持TCP/IP协议非常困难。
本文采用了在嵌入式实时操作系统uC/OS-II中移植一种小型TCP/IP协议栈uIP的方法,使基于8051嵌入式系统的GPRS终端能够在网络中进行数据传输;同时改善了系统的性能,提高了系统的可靠性,增强了系统的可扩展性和产品开发的可延续性。
1基于GPRS网的数据传输
GPRS是在GSM的基础上引入了分组控制单元(PCU)、服务支持节点(SGSN)和网关支持节点(GGSN)等新部件而构成的无线数据传输系统,其用户能够在端到端分组方式下发送和接收数据。
基于GPRS网的数据传输系统如图1所示。
具体的数据传输流程为:
·GPRS终端通过接口从客户系统中取出用户数据;
·处理后以GPRS分组数据的形式发送到GSM基站(BSS);
·分组数据经SGSN封装后,发送到GPRSIP骨干网;
·若分组数据是发送到另一GPRS终端,则先发送到目的SGSN,再经BSS发送到CPBS终端;若分组数据是发送到外部网络(如Internet),则将分组数据包经GGSN进行协议转换后,发送到网络。
2嵌入式实时操作系统uC/OS-II
uC/OS-II是由JeanJ.Labrosse先生编写的、现在流行的一种免费公开源代码的实时操作系统。
它可广泛应用于从8位到64位单片机的各种不同类型、不同规模的嵌入式系统。
带有详细注解的uC/OS-II源代码只有200页左右;其中95%左右是用C语言编写的,与MCU类型相关的代码用8088汇编写成,不超过200行。
uC/OS-II不仅具有结构小巧、可固化、可裁剪、多任务和可剥夺型的实时内核等特点;而且其实时性、稳定性裙可靠性也得到了广泛认可。
uC/OS-II的最小内核可编译至2KB,一般情况占用内存在10KB数量级,适用基于8051的嵌入式系统的需要。
在系统中嵌入uC/OS-II可以把整个程序分成许多任务,每个任务相对独立,然后在每个任务中设置超时函数,时间用完后,必须交出MCU的使用权。
即使一个任务发生问题,也不会影响其他任务的运行。
在单片机系统中嵌入uC/OS-II提高了系统的可靠性,并使调试程序变得简单,同时也增强了系统的可扩展性和产品开发的可延续性。
不过uC/OS-II仅仅是一个实时操作系统内核,与商业实时操作系统软件包比较,它缺少Utilities部分,如文件系统、远程函数调用库、通信软件库。
通信软件包括:
TCP/IP软件库、蓝牙通信软件库、IrDA红外通信软件库等。
这一类软件的解决有两种途径:
一个是购买第三方软件;另一个是自己编写。
如果只是用单片机实现TCP/IP协议中的某些功能,可以选用免费公开源代码的小型TCP/IP协议栈,把它移植到uC/OS-II。
目前uC/OS-II的最新版本为V2.70,但现在广泛学习和应用的是V2.52。
3小型TCP/IP协议栈uIP
uIP是由瑞士计算机科学院的AdamDunkels等开发的一种免费公开源代码的小型TCP/IP协议栈,它专门为8位和16位MCU编写。
uIP完全是用C语言编写,它在保证一个完整的TCP/IP栈的前提下,只保留了最必要的一系列特征,使其代码最少、占用的RAM最小;它只能处理单一的网络接口。
通常的TCP/IP栈采用BSDsocketAPI,需要来自下层的多任务操作系统的支持,而且任务管理、语境切换以及堆栈空间的分配都要占用很大的开销,超出了8位机系统的能力。
uIP采用了一个事件驱动接口,通过调用应用程序响应事件。
而相应的应用程序作为C函数调用。
通常情况下,uIP的源代码虽然只有几KB,RAM占用仅几百字节,但uIP提供了网络通信所必须的协议,包括:
ARP、SLIP、IP、UDP、ICMP(PINC)和TCP;能够满足8位MCU接入TCP/IP网络(如Internet)的需要。
目前uIP最新的版本为V0.9,符合Internet标准。
4GPRS终端的工作原理及硬件实现
GPRS终端由控制模块控制TCP/IP模块和无线发送模块实现。
4.1控制模块
控制模块的作用主要有:
·控制模块通过AT指令初始化GPRS无线模块,使之附着在GPRS网上,获得网络运营商动态分配给GPRS终端的IP地址,并与目的终端或服务器之间建立连接;
·控制模块通过RS232串口向客户系统收发数据或指令;
·控制模块通过RS232串口向TCP/IP模块收发数据;
·控制模块自主或根据远程控制指令采取其他操作。
控制模块的MCU选用华邦的八位机WINBOODW77E58。
W77E58是台湾华邦公司生产的、与MCS51系列单片机兼容的、可多次编程的快速微处理器,在其内部集成有32KB的可重复编程的FlashROM、256字节的片内存储器、IKB用MOVX指令访问的SRAM、可编程看门狗定时器、三个16位定时器、二个增强型的全双工串行口、片内RC振荡器、双16位数据指针等诸多功能。
在很多场合,几乎不用扩展外围芯片就能够满足系统要求。
由于其采用了全新设计的微处理器内核,去除多余的时钟和存储周期,在相同的晶振频率下,根据不同的指令类型,其运行速度一般比传统8051系列快1.5~3倍。
一般情况下,平均可达2.5倍以上。
另外,由于W77E58采用全静态CMOS设计,能工作在低速晶振频率下。
与普通的8051相比,若W77E58采用低速工作频率,在相同的指令吞吐量下,W77E58的节电性能也将大大提高。
基于Linux的GPRS远程数据通信系统的研究与实现
2006-12-2216:
21:
24 【文章字体:
大 中 小】打印 收藏 关闭
原作者:
李捍东张晓勇陈 璇张发斌聂 平
远程数据通信可以采用多种形式,但主要有两大类:
专用网络和公用网络。
公用网络由商业网络运营公司建设和经营,向用户提供各种网络接入服务,特别适合构建低成本、高性能数据通信系统。
公用网络又分为有线网络和无线网络,而无线网络具有接入方便等独特的优势,因而可以非常方便地构建移动数据通信系统。
1系统方案及应用平台
GPRS(generalpacketradioservice)简称通用无线分组交换业务,是一项高速数据处理的技术,它以分组交换技术为基础,构建于GSM之上。
用户通过GPRS可以在移动状态下使用各种高速数据业务,包括收发E2mail、进行Internet浏览等,并提供端到端、广域的无线IP连接。
中国移动的GPRS网络投入商业运行已经近3年时间了,其网络覆盖率范围逐步扩大,GPRS接入更加方便,这就给计算机远程数据通信提供了良好的通信平台。
当应用系统通过GPRS方式接入互联网后,还需要使用TCP/IP协议实现高层数据的可靠传输,而早期的单片微控制器(如MCS51系列)由于软硬件资源的限制,很难实现TCP/IP协议。
随着嵌入式操作系统功能的发展,特别是内置了TCP/IP协议栈的嵌入式操作系统应用,使得在系统应用时可以方便地利用操作系统提供的TCP/IP接口实现数据传输。
在目前众多的嵌入式操作系统中,Linux操作系统具有很高的可靠性和效率。
其可公开获得的源代码已经在性能、功能、驱动开发和可移植性等方面经历了无数的改进、增强及扩充,其操作系统代码可裁减。
Linux已成功地应用在多种微处理器上,包括X86、SPARC、ARM、PowerPC和MIPS。
在微处理器选择方面,摩托罗拉公司的系列微处理器具有强大的性能,而MPC则是其典型代表,MPC860PowerQUICC内部集成了两个处理器,一个是PowerPC内核,另一个是通信处理模块(CPM,communicationsprocessormodule),这使得该款处理器既可以完成通用微处理器的功能,又能实现复杂的通信功能。
综上所述,本研究选择了基于PowerPC和Linux的GPRS通信应用平台进行通信的研究与开发,并将其应用到网络化销售系统中。
2系统硬件构
成本系统采用西门子公司的GPRS模块MC35和PowerPCMPC860微处理器组成数据通信硬件电路,如图1所示。
MC35作为数据通信设备(DCE)使用串行接口与MPC860连接。
MC35的串行数据收发/TXD0、/RXD0与MPC860的/TXD2、/RXD2连接;MC35的各控制信号分别与MPC860对应的引脚相连。
上述连接完成后,即可通过TXD和RXD实现两者之间的数据交换。
当MC35的外置天线接收到GPRS网络数据后,进行内部转换,形成标准格式的串行数据送MPC860,完成一次数据的接收;当MPC860需要发送数据时,将数据通过串行接口传送到MC35,MC35将数据转换成GPRS网络要求的数据格式,通过天线发送,从而完成一次数据发送。
MC35与SIM卡之间对应信号直接相连,包括电源(Vcc,CCVcc)、地(GND,CCGND)、时钟信号(CLK,CCCLK)、串行数据(I/O,CCIO)、复位信号(RST,CCRST),而SIM卡保持信号CCIN接高电平以指示SIM卡始终在线。
MC35模块的启动和关闭分别由STB和PD控制。
STB和PD分别来自MPC860的两位数据输出,由程序产生规定时序的正脉冲。
当STB为高电平时,经过驱动后,使MC35的IGT为低电平,从而实现MC35的启动;当PD为高电平时,经过驱动后,使MC35的/PD为低电平,从而实现MC35的关闭。
3Linux通信程序设计
在Linux下要完成与挂接在Internet上的通信服务器通信,首先需要经过GPRS模块初始化和GPRS网络连接,然后才能使用TCP/IP协议进行数据传输。
3.1 GPRS模块初始化
GPRS模块初始化程序功能:
实现MC35模块初始化并完成MC35与MPC860的逻辑连接。
在该程序内部使STB选通信号变为高电平,并持续规定时间,然后恢复成低电平,完成对MC35的初始化工作,紧接着通过有关控制信号实现MPC860与MC35的逻辑连接。
初始化程序可直接在Linux命令行下执行命令Insmodigt.o即可完成。
3.2 GPRS网络连接程序
GPRS网络连接程序功能:
使MC35以某种通信协议连接到GPRS网络上。
网络连接使用第三方提供的内置PPP(点对点)通信协议的软件,其命令如下:
/connect
当连接成功后,由于GPRS网络通过中国移动网关连接到了Internet网,因此就可以利用TCP/IP协议与Internet上的任何IP地址进行通信了。
3.3 TCP/IP数据传输
由于Linux操作系统已内置TCP/IP协议栈,因此可以直接使用套接字编程实现TCP/IP的数据传输。
套接字的基本模式是C/S(客户/服务器),内置GPRS模块的设备工作在客户模式,而远程Internet网上的通信服务器工作在服务器模式。
客户端程序基本流程是:
创建套接字,绑定套接字到已知端口上,然后请求连接,最后调用数据收发函数进行数据的传输。
在客户端通信程序执行前,服务器端的程序必须完成初始化并开始侦听。
客户端程序如下所示:
4通信服务器软件设计
通信服务器软件采用Microsoft公司的可视化开发环境VisualBasic6.0编程实现。
Microsoft的Win2sock控件可以与远程计算机建立连接,并通过TCP或UDP进行数据交换。
作为通信服务器端,需设置该控件的Bind属性,使该控件绑定到本机IP地址和某一端口(本系统设置为8888),并使用Listen方法将其设置为侦听模式。
通过以上方法就可以使应用程序工作于服务器模式,当客户端有服务请求时,控件会自动触发Connection2Request事件,在该事件中使用Accept方法接受新连接,服务器与客户端握手成功。
在双方建立连接后,服务器就可以接收客户端发送过来的数据信息,使用该控件的GetData方法读取接收缓冲区的数据,作出相应的处理;当需要向客户端发送数据时,可使用SendData方法。
5结束语
远程通信系统是构建远程监控管理系统的重要基础,广泛应用在包含工业控制在内的各类控制与管理系统中,而GPRS是目前比较先进的通信技术,其接入方便、可靠性高。
本研究结合GPRS通信技术和嵌入式系统,应用到网络化卷烟销售系统中,数据传输效果良好,性能稳定,满足了远程监控的需要。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 8051 嵌入式 系统 GPRS 终端 实现