介绍了基于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封装后,发送到gprs ip骨干网;
·若分组数据是发送到另一gprs终端,则先发送到目的sgsn,再经bss发送到cpbs终端;若分组数据是发送到外部网络(如internet),则将分组数据包经ggsn进行协议转换后,发送到外部网络。
2 嵌入式实时操作系统uc/os-ii
uc/os-ii是由jean j.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。