1系统硬件平台设计与实现
1.1 终端硬件平台总体介绍
本文的终端平台的无线接入模块采用西门子最新推出的 MC39i模块,并以 32位基于ARM920T的微处理 S3C241OX为核心。按照功能分类,本文所实现的硬件平台主要由微处理器单元、存储器单元、串口通讯单元、USB接口单元、电源单元、GPRS通讯模块单元以及JTAG接口单元组成,硬件总框图如图 1所示。
1.2 嵌入式微处理器单元
本文硬件平台的 CPU采用的 Samsung的基于ARM920T内核的 S3C2410X微处理器,该微处理器是 Samsung公司为手持设备和一般类型应用提供一种低价格、低功耗、高性能小型微控制器的解决方案。S3C2410X采用了 0.18um工艺的 CMOS标准宏单元和存贮器单元。它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。
S3C2410X的显著特性是它的 CPU核心,是一个由 Advanced RISC Machine(ARM)有限公司设计的 16/32位的高速缓冲体系结构。这一结构具有独立的 16KB指令 Cache和 16KB数据 Cache,每个都是由 8字节长的行构成。通过提供一系列完整的系列外围设备, S3C2410X大大减少了整个系统的成本,消除了为系统配置额外器件的需要。
1.3 GPRS模块 MC39i
MC39i是西门子公司最近推出的新一代双频 GSM/GPRS通讯模块的无铅产品,它简洁的封装是很多应用系统中无线高速数据传输的理想解决方案,可以进行数据、语音、SMS和FAX各个方面的应用,且功耗低。它为用户提供了永远在线、高速度、更简单的移动数据通信接入手段。MC39i具有丰富的 AT指令,功能强大,操作灵活方便,是继 GPRS手机外有一种非常重要的 GPRS移动通信系统的终端设备。它的出现给 GPRS的发展注入了新的活力。
MC39i具有体积小、重量轻、功耗低等特点。MC39i的工作电压为 3.3伏一 4.8伏,典型电压为 4.2伏。最大工作电流为 2安。模块可以工作在 EGSM900和 GSM1800两个频段。工作于 EGSM900时功耗为 2瓦,工作于 GSM1800时功耗为 1瓦。利用 AT指令进行控制,支持文本和 PDU模式的短消息、第三组的二类传真。模块常用的工作模式有省电模式、IDLE、TALK、数据等模式。通过独特的 40脚的连接器(ZIF)实现电源连接、指令、数据、语音信号及控制信号的双向传输。
MC39i模块主要由 GSM基带控制器、射频模块、供电模块、闪存、ZIF连接器、射频功率放大器、天线接口六部分组成。
1.4 存储器单元设计
本系统的外部存储器主要由非易失性存储器 Flash和易失性存储器 SDRAM构成,其中Flash用来存放需要固化的程序,如操作系统和 BootLoader等,掉电后不易丢失,而 SDRAM相当于 PC机的内存,用来运行系统和程序,掉电后易消失。
本终端的存储系统包含 8MB Flash存储器和 32M SDRAM。其中 8M的 Flash用来存放内部启动代码、Linux内核以及初始化的 ramdisk映像。剩余的存储空间可存放用户程序。本文采用的 Flash为 Intel公司的28F640J3A,BGA封装。这块芯片有 23根地址线,16根数据线,容量为8MB,128KB的可擦除块;擦除块之间相互独立,每一块的擦除操作可在 1s内完成,并可单独被擦写 100000次;支持8位及16位两种数据宽度工作模式。在采用8位数据宽度模式时,有效地址线为AO-A22;采用 16位数据宽度模式时,有效地址线为Al-A22。在此我们采用 16位数据宽度模式。我们把 16位数据宽度的 Flash存储器映射到 S3C2410X的 ROM Bank()。
2 基于GPRS的终端设计
目前硬件上的实现方案有两种,二者各有优缺点,分别叙述如下: 方案1:使用 TCP/IP协议芯片。 此方案利用了硬件协议栈,由单片机调用指令控制芯片,其系统结构如图 2所示。
本方案对处理器性能的要求相对不高,因为协议栈的工作交给 TCP/IP协议芯片去完成。 处理器通过调用协议栈接口函数可以较方便地连接上网,继而再加上 GPRS通讯模块就可以实现远程无线传输。本设计方案的优点是开发时间短,硬件上是成熟的芯片,运行比较稳定。但是本方案的缺点是硬件体积会相应增大,成本也较大。 方案2:嵌入式操作系统。
此方案利用了包含完整 TCP/IP协议栈的嵌入式操作系统来控制整个系统的运行。由于引入了操作系统,因此本方案比较适合于系统资源丰富的高速 16/32位嵌入式系统使用。其系统结构示意图如图 3所示。
本设计方案不需要外加TCP/IP协议转换芯片,所以硬件体积小,成本少。但是开发时间长,需要做大规模的软件上的工作(比如操作系统的嵌入、TCP/IP协议栈、PPP协议的处理等都需要在一个处理器中完成),对开发者要求很高。另外还要做大量的测试。 基于以上两种方案,GPRS终端相当于Modem,用于连接设备和Internet网络。利用GPRS网络与分组数据网络互联互通的特性,实现了将设备接入最大的PDN网络Internet。设备与GPRS终端之间采用串行接口通讯,在GPRS终端连接上网络后,设备即可以通过其来实现与Internet上的主机进行数据通讯,GPRS终端透明收发数据。这种实现方法类似于使用家用PC做代理接入的方式,只是这里采用了无线方式,网关改为GPRS终端。
3 系统软件设计
基于GSM/GPRS的无线数据传输模块设计的目的是为无线网络通信应用提供一个简单实用的平台,须在模块内嵌TCP/IP协议栈,实现了数据在用户终端和服务器之间的透明传输,使用户可以方便地应用,实现远程的无线数据传输。无线数据传输模块的软件结构框图如图4所示。
本系统中ETR186底层的硬件驱动已由英创公司做好并提供了丰富的接口,其中COM2口提供给MC35i通信使用,并提供相关例程演示通过COM2如何和无线模块进行通信。因此该系统软件部分主要是需要实现PPP协议、IP协议及TCP/UDP协议,并为应用程序提供一个简单易用的接口。在此重点介绍TCP/UDP协议。
3.1 TCP/IP协议介绍TCP/IP协议集是当今使用最广泛的Internet体系结构,根据相关协议标准,可把TCP/IP
协议集划分为四个相对独立的层次:网络接口层、网络层、传输层和应用层。
网络接口层负责与物理网络的连接,支持现有网络的各种接入标准,如.X25分组交换网、DDN、ATM网、以太网(Ethernet)、PPP(Point-to-Point Protocol,点到点协议)、SLIP等。在本系统中将使用 PPP协议。
网络层即 IP层,它主要完成的功能是:从底层来的数据包要由它来选择继续传给其他网络结点或是直接交给传输层;对从传输层来的数据包,要负责按照数据分组的格式填充报头,选择发送路径,并交由相应的线路发送出去。
传输层提供端到端应用进程之间的通信,其对高层屏蔽了底层网络的实现细节,同时它真正实现了源主机到目的主机的端到端的通信。传输层传送的数据单位是报文。
在应用层用户通过API(应用进程接口)调用应用程序来运用因特网提供的多种服务。应用程序负责收发数据,并选择传输层提供的服务类型,按传输要求的格式递交。
3.2 系统初始化
为了能利用 TCP/PI协议进行数据传输,必须对系统的硬件和软件进行初始化。图 5为系统初始化部分的流程图。
(1)系统软件在开始时首先需要通过检查 0x90端口的输入电平是否为高来判断 MC35i模块是否正常上电。若未能正常上电,软件将通过 0x90端口的输出使 MC35i模块上电。
(2)MC35i模块上电后,软件将在内存中开辟一个缓存区做为包括PPP、IP、TCP、UDP等协议的数据缓存区,做为该缓存区内数据存放方式采用双向链表的方式。
(3)为了 TCP协议实现中能够进行超时检测,软件利用 R8822CPU模块的内部定时器安装一个 20ms的时钟中断。
(4)ETR186通过其串口 COM2和 MC35i模块连接,软件通过安装串口中断进行和 MC35i模块的数据传输。
(5)完成上述操作后,系统就可以利用 AT命令登录 GPRS网络。不成功就进行重试,超过重试次数后出错报告。
(6)最后进行 PPP链路的连接。
4 小结:
本文作者创新点是将嵌入式Linux系统技术与 GPRS无线通信网络有机的结合在一起。平台采用无线模块MC39i,结合终端的嵌入式硬件结构和软件环境,为终端上实现无线应用提供了一个可行的实现途径。经实验验证,该终端平台能有效的将采集到的数据通过GPRS网络,传输至远程服务器中心主机,也能接受服务器中心主机发送的命令,再根据命令的内容进行相应的操作,达到实现无线数据传输。