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

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

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

本文给出了一种针对工业总线的嵌入式系统连接Internet的无线上网方案,探讨了实现该方案中要解决的主要问题。设计并实现了基于AT91R40008微处理器和G18 GSM模块的嵌入式GPRS传输终端,采用层次结构和标准接口,实现了基于实时操作系统μC/OS-Ⅱ的嵌入式TCP/IP协议栈,对软件系统中的主要模块进行了分析。


  1 引言

   随着Internet的快速发展,Internet已成为信息流通的重要渠道,Internet接入终端在各种远程监控系统中得到广泛应用。采用GPRS无线移动互联网接入技术的终端,使得现有工业总线的监控系统直接通过Internet进行远程数据传输,解决了采用以太网或电话线接入Internet的有线通讯布线困难、覆盖范围小、无法移动通信等问题。Internet接入终端已经成为工业控制、远程测量、交通管理等应用热点。本文给出了基于ARM处理器和GPRS Modem嵌入式数据传输终端的设计与实现。

  2设计原理

  将嵌入式系统接入Internet涉及两个关键问题,即传送信息的媒质和采用的协议,传输媒质可以是以太网或者电话线等媒介,在本设计中采用GPRS Modem作为无线接入Internet的媒质;协议采用嵌入式TCP/IP协议栈。通过GPRS Modem与当地GSM基站中的GPRS业务节点进行无线通信,进入GPRS网络,然后通过GPRS网关与Internet进行数据传输。

 系统硬件划分为控制模块和GPRS modem模块,GPRS modem模块提供接入Internet 的TCP/IP物理连接;控制模块是主控软件的载体,负责控制将处理好的数据通过GPRS modem发送出去或者传向工业总线。在控制模块中,微控制器的一个串行接口连接GPRS modem,通过对GPRS modem的控制和通信,实现Internet网络数据的收发;另一个串行接口通过工业总线与其他嵌入式设备进行数据通信。该实现方法采用数据透明传输,对原有的嵌入式系统不附加限制条件,较好地实现了网络功能,而且系统的实时性较高。

  3基于AT91R40008的硬件设计

  为了解决网络协议软件和实时操作系统处理的硬件瓶颈,设计中选择了Atmel公司的AT91R40008微控制器,一款基于ARM7TDMI核的32位微控制器,工作频率为66M,其片内集成了256KB RAM,可以直接将代码运行在片上RAM中,使得本次应用程序可以采用任务查询方式,增强系统的稳定性,并且两个全双工通用同步/异步收发器(USART)与外围控制器PDC连接,使用PDC方式,整段数据交给硬件自动收发处理比单字节处理要大大减轻系统处理压力,提高了系统的实时性。

  图1所示为控制模块的硬件连接图。图中MAX232负责实现系统的另一个用户接口与标准232总线之间的电平转换;24CL04负责存储系统运行时需要的重要参数,如远程连接的IP地址、端口等。如果为了紧缩设备体积可以采用将AT91R40008和AT49BV1614A集成在一起的AT91FR40162处理器。GPRS Modem模块采用的是Motorola g18 DIN,该模块为用户的无线上网提供了物理链路。

图1 控制模块硬件结构图

  4 软件设计

  软件部分的主要功能包括系统及设备的初始化,创建接收发送任务,建立连接的通信链路,保证网络连接实时有效等。采用的实时操作系统是源码开放的嵌入式操作系统μC/OS-Ⅱ,为了嵌入式系统能接入Internet,成功移植实时操作系统后还要实现一个嵌入式TCP/IP协议栈。软件设计采用层次结构,从下到上依次是:硬件驱动程序、操作系统内核软件、网络接口软件、协议软件和应用程序。

  4.1实时操作系统μC/OS-Ⅱ的移植

  移植μC/OS-Ⅱ的工作主要包括以下几个部分:修改OS_CPU.H文件,该文件主要包含与编译器相关的数据类型的定义、处理器实现开关中断的方法、堆栈类型的定义和几个宏定义及函数说明;修改OS_CPU_C.C文件,用C语言实现堆栈初始化和几个提供给用户用于扩展操作系统功能的hook(又称为钩子函数)函数;修改OS_CPU_A.S文件,用与CPU相关的汇编语言实现CPU开/关中断、任务级的任务切换、中断级的任务切换以及时钟中断程序。

  采用GCC编译器编译时,除了对上述文件做相应移植修改外,对实时系统的源码不做改动,但要编写能在操作系统内直接调用的微控制器外围设备驱动函数,这些驱动函数构成微控制器的控制驱动函数库,使得在操作系统内可以完成UART控制、I2C总线访问、PIO控制等硬件操作,对移植后的实时系统能够使用各个外围器件以及协议的实现都很重要。

  4.2 嵌入式TCP/IP协议栈

  在实时操作系统上需要一个TCP/IP协议栈来实现在Internet接入并收发数据,为了提高效率节省资源,采用简化的TCP/IP协议栈,本次应用只保留了TCP、UDP、IP和PPP协议,如图2所示,网络协议栈和构件为网络环境的嵌入式应用提供有效的系统服务。

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

网站地图

Top