基于8051嵌入式系统的GPRS终端实现
时间:09-17
来源:互联网
点击:
随着数据无线传输需求的骤增和中画移动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。
3 小型TCP/IP协议栈uIP
uIP是由瑞士计算机科学院的Adam Dunkels等开发的一种免费公开源代码的小型TCP/IP协议栈,它专门为8位和16位MCU编写。uIP完全是用C语言编写,它在保证一个完整的TCP/IP栈的前提下,只保留了最必要的一系列特征,使其代码最少、占用的RAM最小;它只能处理单一的网络接口。通常的TCP/IP栈采用BSD socket API,需要来自下层的多任务操作系统的支持,而且任务管理、语境切换以及堆栈空间的分配都要占用很大的开销,超出了8位机系统的能力。uIP采用了一个事件驱动接口,通过调用应用程序响应事件。而相应的应用程序作为C函数调用。通常情况下,uIP的源代码虽然只有几KB,RAM占用仅几百字节,但uIP提供了网络通信所必须的协议,包括:ARP、SLIP、IP、UDP、ICMP(PINC)和TCP;能够满足8位MCU接入TCP/IP网络(如Internet)的需要。目前uIP最新的版本为V0.9,符合Internet标准。
4 GPRS终端的工作原理及硬件实现
GPRS终端由控制模块控制TCP/IP模块和无线发送模块实现。其结构框图如图2所示。
4.1 控制模块
控制模块的作用主要有:
·控制模块通过AT指令初始化GPRS无线模块,使之附着在GPRS网上,获得网络运营商动态分配给GPRS终端的IP地址,并与目的终端或服务器之间建立连接;
·控制模块通过RS232串口向客户系统收发数据或指令;
·控制模块通过RS232串口向TCP/IP模块收发数据;
·控制模块自主或根据远程控制指令采取其他操作。
控制模块的MCU选用华邦的八位机WINBOODW77E58。W77E58是台湾华邦公司生产的、与MCS51系列单片机兼容的、可多次编程的快速微处理器,在其内部集成有32KB的可重复编程的Flash ROM、256字节的片内存储器、IKB用MOVX指令访问的SRAM、可编程看门狗定时器、三个16位定时器、二个增强型的全双工串行口、片内RC振荡器、双16位数据指针等诸多功能。在很多场合,几乎不用扩展外围芯片就能够满足系统要求。由于其采用了全新设计的微处理器内核,去除多余的时钟和存储周期,在相同的晶振频率下,根据不同的指令类型,其运行速度一般比传统8051系列快1.5~3倍。一般情况下,平均可达2.5倍以上。另外,由于W77E58采用全静态CMOS设计,能工作在低速晶振频率下。与普通的8051相比,若W77E58采用低速工作频率,在相同的指令吞吐量下,W77E58的节电性能也将大大提高。
为了满足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。
3 小型TCP/IP协议栈uIP
uIP是由瑞士计算机科学院的Adam Dunkels等开发的一种免费公开源代码的小型TCP/IP协议栈,它专门为8位和16位MCU编写。uIP完全是用C语言编写,它在保证一个完整的TCP/IP栈的前提下,只保留了最必要的一系列特征,使其代码最少、占用的RAM最小;它只能处理单一的网络接口。通常的TCP/IP栈采用BSD socket API,需要来自下层的多任务操作系统的支持,而且任务管理、语境切换以及堆栈空间的分配都要占用很大的开销,超出了8位机系统的能力。uIP采用了一个事件驱动接口,通过调用应用程序响应事件。而相应的应用程序作为C函数调用。通常情况下,uIP的源代码虽然只有几KB,RAM占用仅几百字节,但uIP提供了网络通信所必须的协议,包括:ARP、SLIP、IP、UDP、ICMP(PINC)和TCP;能够满足8位MCU接入TCP/IP网络(如Internet)的需要。目前uIP最新的版本为V0.9,符合Internet标准。
4 GPRS终端的工作原理及硬件实现
GPRS终端由控制模块控制TCP/IP模块和无线发送模块实现。其结构框图如图2所示。
4.1 控制模块
控制模块的作用主要有:
·控制模块通过AT指令初始化GPRS无线模块,使之附着在GPRS网上,获得网络运营商动态分配给GPRS终端的IP地址,并与目的终端或服务器之间建立连接;
·控制模块通过RS232串口向客户系统收发数据或指令;
·控制模块通过RS232串口向TCP/IP模块收发数据;
·控制模块自主或根据远程控制指令采取其他操作。
控制模块的MCU选用华邦的八位机WINBOODW77E58。W77E58是台湾华邦公司生产的、与MCS51系列单片机兼容的、可多次编程的快速微处理器,在其内部集成有32KB的可重复编程的Flash ROM、256字节的片内存储器、IKB用MOVX指令访问的SRAM、可编程看门狗定时器、三个16位定时器、二个增强型的全双工串行口、片内RC振荡器、双16位数据指针等诸多功能。在很多场合,几乎不用扩展外围芯片就能够满足系统要求。由于其采用了全新设计的微处理器内核,去除多余的时钟和存储周期,在相同的晶振频率下,根据不同的指令类型,其运行速度一般比传统8051系列快1.5~3倍。一般情况下,平均可达2.5倍以上。另外,由于W77E58采用全静态CMOS设计,能工作在低速晶振频率下。与普通的8051相比,若W77E58采用低速工作频率,在相同的指令吞吐量下,W77E58的节电性能也将大大提高。
单片机 嵌入式 C语言 MCU 蓝牙 红外 看门狗 振荡器 CMOS 射频 Keil 相关文章:
- USB接口芯片的原理及应用 (04-15)
- 基于GPRS的远程心电实时监护终端(02-10)
- 基于AVR单片机的嵌入式“瘦服务器”系统设计思想(03-11)
- 利用C8051F020的SPI接口扩展大容量数据存储器(04-10)
- 基于GPRS的油烟远程无线监控系统设计(04-17)
- 基于Microchip单片机的网络收音机方案(04-27)