微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于AT91R40008的嵌入式GPRS传输终端的设计

基于AT91R40008的嵌入式GPRS传输终端的设计

时间:07-10 来源:微计算机信息 点击:

图2 网络协议栈和部件

传输层采用TCP(传输控制协议)和UDP(用户数据报协议)。TCP是一种面向连接的协议,它提供可靠的字节流传输;UDP协议没有保证可靠性的机制,但可以实现高速高效的发送数据报。网络层协议实现的主要是IP,在实现中IP协议不支持IP包的分片和重装以及路由选择。物理层的GPRS Modem实现了连接网络的物理设备,要通过Modem拨号上网,必须在数据链路层上实现PPP拨号协议,按照PPP协议的要求与移动GPRS网关建立通信链路。为了方便协议软件的使用还要实现各个层面的接口,网络接口层在网络协议和网络设备、不同的协议层之间提供了一个相互内部隔离的编程接口。BSD Socket接口为应用提供了访问网络的统一接口。

  4.3 缓冲区和驱动软件

  本次应用中缓冲区和驱动软件是提高系统性能的关键,通过多种缓冲区设计将多层次结构的软件紧密的整合在一起,可以缓和各层软件之间处理瓶颈,提高连续数据并行处理能力;高效驱动软件的设计降低了硬件处理对CPU的占有率。

  数据经过串口硬件设备进入软件系统后就开始在一系列缓冲区中传递,图3所示为所采用的缓冲结构。从左到右依次是串口的收发缓冲区、串口收发工作缓冲区、网络接口读写缓冲区,最后是协议栈缓冲区。这样整个数据交流过程就变成对本层缓冲区的读写,接口程序的编写相对简单明了。

图3 缓冲区设计示意图


每个串口的收发缓冲区是6组长度为512字节的char类型数组,工作缓冲区是长度为1KB的char类型环行队列;网络接口读写缓冲区采用和工作缓冲区相同的结构;协议栈缓冲区是协议软件处理过程中数据的唯一载体,协议栈缓冲区采用结构体的静态链表结构。

 上述缓冲区设计不仅保证了连续数据到来时CPU有足够的处理时间和空间,而且将硬件和网络协议软件隔离便于软件的设计开发。这种设计模式会占用大量RAM空间,但是所采用的ARM处理器片内集成了256KB RAM,所以有足够的RAM作缓冲区以提高系统性能。软件的RAM使用情况如表1所示。其中还可以有100KB左右的内存空间可以提供给软件升级,而且用户可以选择程序的FLASH运行方式,节省更多RAM为软件升级使用。

表1 整个系统的RAM占用表

驱动程序包括三部分:初始化部分,函数功能部分和中断服务程序ISR。初始化部分初始化硬件设备,分配设备所需的资源,完成系统相关的设置;函数功能部分完成系统指定的功能,中断服务程序的主要功能是发起一个任务来完成必要的处理。为串口硬件编写驱动函数的工作主要是串口的启动、停止、波特率设置、控制PDC以及对缓冲区的读写。

  4.4系统启动工作流程

  处理器上电后首先进行CPU硬件、操作系统、协议栈软件参数的初始化工作;测试外设GSM模块,由于GSM模块作为一个相对重要而且较为独立的设备,它的启动过程相对MCU要慢很多,所以在系统进入正常运行阶段之前必须等待GSM模块正常工作以后,才能进行网络服务器的连接。用户任务除了负责网络和工业总线数据交换以外,由于在GSM信号、模块电源受到干扰或SIM卡震动使都会引起GSM模块死机,所以还要建立GSM模块检测任务,负责网络连接的检测以及判断网络中断连接是否由GSM模块故障引起,从而决定是否对GSM模块重启,以保证整个系统的稳定运行。

  5 结束语

  本文给出了一种基于32位ARM微处理器和GPRS的嵌入式无线数据传输终端的实现方案。该方案硬件成本不高于采用中高档单片机的实现方案,同时具有数据吞吐量大、可靠性高、处理能力强等优点。嵌入式TCP/IP协议和实时系统相结合的软件平台,增强了系统的功能性和实时性,这种平台不仅可以作为测控网络与Internet数据接入终端,还可以实现FTP、WEB、GUI、FS等多种嵌入式应用,用于远程监控网站、监控图片传输、网络硬盘、现场界面机等应用场合,替换PC机降低系统成本。

  参 考 文 献:

  [1] 马忠梅, 徐英慧等. AT91系列ARM核微控制器结构与开发[M]. 北京: 北京航空航天大学出版社,2003.
  [2] Jean J.Labrosse. 嵌入式实时操作系统μC/OS-Ⅱ(第二版)[M].邵贝贝译.北京:北京航空航天大学出版社,2003。
  [3] Gary R.Wright, W.Richard Stevens. TCP/IP详解 卷2:实现[M]. 北京:机械工业出版社,2002 .

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top