《基于ARM的GPRS数据传输系统的研究.doc》由会员分享,可在线阅读,更多相关《基于ARM的GPRS数据传输系统的研究.doc(27页珍藏版)》请在三一办公上搜索。
1、 基于ARM的GPRS数据传输系统的研究 基于ARM的GPRS数据传输系统的研究刘伟伟淮北师范大学信息学院 235000摘要 随着单片机及ARM技术的广泛应用 ,以及芯片技术的不断发展 , GPRS 通用分组无线业务在当前远程无线数据传输、遥测遥控中越来越受到人们的重视 ,所以 ,由此而开发设计的二次设备和产品得到极大的推广和应用。论述了基于WAV ECOM Q2406B 无线通讯模块、A RM7 LPC2138 微处理器的数据传输终端设计方案 ,并提供了部分硬件电路图、软件流程图及程序代码。针对分布比较分散,场所不固定,或是环境比较恶劣的监测现场,提出了一种通用的远程监测终端的设计方法。终端
2、具有模块化的数据采集功能,并采用ARM9处理器和Linux操作系统,用Qt/Embedded编写终端应用程序,使其具有良好的人机交互界面,并对数据进行分析处理,采用GPRS(通用无线分组业务)无线通信技术将处理过的数据发往监测中心,存入数据库。实际实验证明,该终端数据处理速度快,精度高,实时性好,可以满足一般监测现场的要求。关键词 GPRS模块 ;RS232 ;LPC2138 ;AT命令;ARMStudy on GPRS Transferring System Based on ARMLiu WeiweiHuaiBei Bormal University College of Informat
3、ion, 235000 Abstract Along with the wide application of single chip computer and ARM technique as well as the development of integrated chip technique GPRS general grouping wireless service is attached with more importance by people in the current data transmission 、metering and remote control . The
4、refore secondary product and quality goods developed and designed according to the techniques mentioned are obtaining enormous promotion and application. The data transmission terminal design based on WAVECOM Q2406B Module and ARM7LPC2138 are elaborated and partial hardware electric diagram .softwar
5、e flowchart and program code is provided. For more decentralized distribution, place is not fixed, or the environment is bad monitoring site, puts forward a universal remote monitoring terminal of the design method. Terminal with modularization data acquisition function, and USES the ARM9 processor
6、and Linux operating system, with Qt/Embedded write terminal application, make its have good human-machine interface, and analyze the data treatment, and a GPRS (general packet radio service) wireless communication technology will be processed data sent to monitoring center, and stored in the databas
7、e. The actual experiment proves that the terminal data processing speed, high precision, good real-time, can satisfy the requirement of the general monitoring.Keywords GPRS module; RS232; LPC2138; AT command; ARM目 次1 绪 论11.1 ARM处理器11.2 ARM处理器模式21.3 GPRS概括及应用42基于ARM和GPRS的远程监测终端的研究52.1 终端的整体结构研究52.2 终
8、端硬件研究62.3 终端软件的研究93基于 ARM的GPRS 的无线数据传输系统的研究143.1 GPRS数据传输的协议分析和实现143.2 数据传输终端的硬件研究153.3 数据传输终端的软件研究17结 论21参考文献221 绪 论1.1 ARM处理器ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对微处理器的通称,还可以认为是一种技术的名字。ARM处理器是一个32位元精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。1.ARM处理器特点体积小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)双指令集,能很好的兼
9、容8位/16位器件;大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定。2.ARM处理器系列ARM7系列ARM9系列ARM9E系列ARM10E系列 Se cur Core系列Intel的X scaleIntel的Strong ARM ARM11系列 其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。Se cur Core系列专门为安全要求较高的应用而设计。3.ARM处理器结构体系结构:CISC(ComplexInstructionSetComputer,复杂指
10、令集计算机):在CISC指令集的各种指令中,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%。 RISC(ReducedInstructionSetComputer,精简指令集计算机):RISC结构优先选取使用频率最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻址地方式种类减少;以控制逻辑为主,不用或少用微码控制等 RISC体系结构应具有如下特点:采用固定长度的指令格式,指令归整、简单、基本寻址方式有23种。使用单周期指令,便于流水线操作执行。大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储
11、器,以提高指令的执行效率。除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗。所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。可用加载/存储指令批量传输数据,以提高数据的传输效率。可在一条数据处理指令中同时完成逻辑处理和移位处理。在循环处理中使用地址的自动增减来提高运行效率。寄存器结构:ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括: 31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。指
12、令结构:ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%40%以上的存储空间,同时具备32位代码的所有优点。1.2 ARM处理器模式ARM处理器状态:ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状
13、态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。 进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。 进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到AR
14、M状态。ARM处理器模式:ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。 除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。 ARM寄存器:ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。 异常处理:当正常的程序执行流程发生暂时的停止时,称之为异常,例如处
15、理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。当一个异常出现以后,ARM微处理器会执行以下几步操作: 进入异常处理的基本步骤:将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。根据异常类型,强制设置CPSR的运行模式位。 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态
16、。 ARM微处理器对异常的响应过程用伪码可以描述为: R14_ = Return Link SPSR_= CPSR CPSR 4:0 = Exception Mode Number CPSR5 = 0 ;当运行于 ARM 工作状态时 If = Reset or FIQ then;当响应 FIQ 异常时,禁止新的 FIQ 异常 CPSR 6 = 1 PSR 7 = 1 PC = Exception Vector Address 异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回: 将连接寄存器LR的值减去相应的偏移量后送到PC中。 将SPSR复制回CPSR中。 若在进入异常处理时设置了
17、中断禁止位,要在此清除。1.3 GPRS概括及应用通用分组无线服务技术(General Packet Radio Service)的简称,它是GSM移动电话用户可用的一种移动数据业务。GPRS可说是GSM的延续。GPRS和以往连续在频道传输的方式不同,是以封包(Packet)式来传输,因此使用者所负担的费用是以其传输资料单位计算,并非使用其整个频道,理论上较为便宜。GPRS的传输速率可提升至56甚至114Kbps。General Packet Radio Service,通用无线分组业务,是一种基于GSM系统的无线分组交换技术,提供端到端的、广域的无线IP连接。通俗地讲,GPRS是一项高速数据
18、处理的技术,方法是以分组的形式传送资料到用户手上。虽然GPRS是作为现有GSM网络向第三代移动通信演变的过渡技术,但是它在许多方面都具有显著的优势。目前,香港作为第一个进行GPRS实地测试的地区,已经取得了良好的收效。 由于使用了分组的技术,用户上网可以免受断线的痛苦(情形大概就跟使用了下载软件Net Ants差不多)。此外,使用GPRS上网的方法与WAP并不同,用WAP上网就如在家中上网,先拨号连接,而上网后便不能同时使用该电话线,但GPRS就较为优越,下载资料和通话是可以同时进行的。从技术上来说,声音的传送(即通话)继续使用GSM,而数据的传送便可使用GPRS,这样的话,就把移动电话的应用
19、提升到一个更高的层次。而且发展GPRS技术也十分经济,因为只须沿用现有的GSM网络来发展即可。GPRS的用途十分广泛,包括通过手机发送及接收电子邮件,在互联网上浏览等。 现在手机上网的口号就是always online、IP in hand,使用了GPRS后,数据实现分组发送和接收,这同时意味着用户总是在线且按流量计费,迅速降低了服务成本。对于继续处在难产状态的中国移动联通WAP资费政策,如果将CSD(电路交换数据,即通常说的拨号数据,欧亚WAP业务所采用的承载方式)承载改为在GPRS上实现,则意味着由数十人共同来承担原来一人的成本。 而GPRS的最大优势在于:它的数据传输速度不是WAP所能比
20、拟的。目前的GSM移动通信网的传输速度为每秒9.6K字节,GPRS手机在今年年初推出时已达到56Kbps的传输速度,到现在更是达到了115Kbps(此速度是常用56Kmodem理想速率的两倍)。GPRS的应用,迟些还会配合Bluetooth(蓝牙技术)的发展。到时,数码相机加了blue tooth,就可以马上通过手机,把像片传送到遥远的地方,也不过一刻钟的时间,这个日子将距离我们不远了。2 基于ARM和GPRS的远程监测终端的研究随着现代生产科技水平的发展,对监测技术的要求越来越高,形式趋于多样化。在无人值守的变电站、水文站、气象站等野外监测或是在交通运输等行业中,因分布比较分散、环境恶劣,地
21、点不固定,不便于用传统方法实现集中控制和实时监测并且有线网络的架设受到种种限制。在这些场合采用基于GPRS的无线网络通信技术,具有无可比拟的优势。将嵌入式应用系统与无线通信技术结合在一起是未来嵌入式应用的必然趋势。GPRS(General Packet Radio Service),即通用无线分组业务。GPRS技术应用于远程数据传输系统,具有以下几个特点:1)永远在线,接入速度快。分组交换接入时间少于1秒,可使远程数据传输的效率大大提高:2)采用数据流量的计费方式,大大降低了用户的使用费用;3)GPRS网络覆盖范围广,且支持TCP/IP协议,从而可实现与Internet的无缝连接。2.1 终端
22、的整体结构研究终端要完成3个任务,数据采集、数据处理和数据的无线传输。数据采集部分采用模块化设计思想将采集模块分为模拟量采集模块,数字量采集模块,开关量采集模块等,每个模块独立的实现对特定采集信号的整流、调理、隔离等处理再转换为数字量,各模块采用统一的结构,选用相同的单片机处理器。各模块采集的数据通过统一的SPI(serial peripheral interface)总线传输给ARM处理器。这样的结构使终端使用更灵活,应用范围更广泛。数据处理部分采用ARM处理器对所采集的数据的类型、长度、有效范围等进行处理,并通过液晶屏加触摸屏完成人机交互功能。然后将处理好的数据通过GPRS无线网络传输给上
23、位机。终端的整体结构图如图1所示。图1 终端的整体结构图2.2 终端硬件研究终端硬件主要由3部分组成。一是作为主处理器的ARM9处理器及其外围电路包括电源电路、复位电路、外扩存储器电路及用于人机互动的液晶屏、触摸屏连接电路等。二是各个模块的数据采集电路的设计,这里主要设计的是模拟量采集模块,以及各个数据采集模块与主处理器之间SPI连接方式。三是GPRS模块外围电路以及与主处理器的连接。端硬件设计示意图如图2所示。图2 系统硬件结构示意图1.终端主处理器主处理器是系统的核心,要完成数据处理,存储,传输,人机界面显示等功能。结合工业现场的需求终端处理器采用以ARM9为内核的三星S3C2440处理器
24、,它是一款基于ARM920T内核的16/32位RSIC结构的嵌入式微处理器,主频400 MHz,最高可达533 MHz,具有2片外接32 M的板载SDRAM,片内外资源丰富,扩展性强。系统存储扩展了2 MB的Nor Flash用于存放boot loader系统引导程序,和64 MB的NAND flash.系统的人机交互平台采用一个7寸液晶显示频和一个触摸屏来完成。2.数据采集部分硬件设计数据采集模块可分为模拟量采集模块,数字量采集模块,开关量采集模块等,主要完成对底层数据的采集,这些模块的单片机处理器统一采用CYGNAL公司的C8051F021单片机,它的MCU是高度集成的片上系统。在一个芯片
25、内集成了两个多通道ADC子系统、电压基准、SPI总线接口、8个8位的通用数字I/O端口和64 k BFLASH程序存储器及与8051兼容的高速微控制器内核等,这些很好的满足了模块的设计要求。由于模块设计结构上的相似性,这里主要介绍模拟量采集模块部分。工业现场采集的信号大部分是模拟量,如压力、温度、液位、流量等信号。这些信号经过现场仪表测量后一般统一输出为420 mA,05 V,010 V范围的电流电压信号。通过模拟量采集模块将这些模拟量转换为数字量。单片机的A/D准换的电压基准定为2.5 V,要将420 mA,05 V,010 V范围的电流电压信号统一为02.5 V以内的电压信号,才能进入单片
26、机完成模拟量到数字量的转换。对于电流信号,在输入端接一个250 的精密便转换为15 V的电压信号了,对于电压信号通过运算放大器按比例缩放到02.5 V范围内即可。转换电路如图3所示。图3 电压信号转换电路图各个数据采集模块与主处理器通过SPI总线进行通信。SPI总线是Motorola公司提出的一种高速全双工串行通信总线,它容许CPU与各种外围接口器件以串行方式进行通信。SPI接口只有MISO(主入从出)、MOSI(主出从人)、SCLK(时钟)和CS(片选)4个信号组成,在芯片上只占用4条线,大大节省了芯片资源。主处理器与各采集模块的SPI通信方式为一主多从的方式,即ARM主处理器的作为主设备,
27、各数据采集模块作为从设备,主设备驱动串行时钟发起通信。主设备使用片选信号CS指明与哪个模块采集模块传送数据。通信时,主设备的MISO为输入,MOSI为输出,从设备的MISO为输出,MOSI为输入,在主设备时钟的控制下,主设备与从设备的双向移位寄存器同时进行数据交换,完成一次数据的传输。主处理器与各模块的通信结构图如图4所示。图4 SPI通信结构图3.GPRS模块GPRS模块选用华为GTM 900C模块,它是一款三频段GSM/GPRS无线模块。模块接口简单、使用方便且功能强大。它支持标准的AT命令及增强AT命令。GTM 900C的GPRS数据业务的最高速率可达85.6 kbit/GTM900C提
28、供40脚的ZIF接口,主要有电源接口、UART接口(最大串口速率可达115200bit/s)、标准SIM卡接口和模拟语音接口。本系统中,GTM900C主要是实现GPRS上网功能。该模块的主要特点如下:1)单电源供电,供电范围为3.34.8 V.典型供电电压为4.2 V;2)可工作于三频EGSM900和/GSM1800/GT800单频;最大发射功率EGSM900/GT800 Class(2W)和GSM1800 Class l(1W);3)支持GSM标准AT命令、V.25 AT命令和华为扩展AT命令;4)GPRS传输速率最高可达85.6 kbps,支持CS-1,CS-2,CS-3,CS-4 4种编
29、码方式。内嵌了TCP/IP协议;支持多连接,提供ACK应答,提供大容量缓存。GPRS模块与主处理器的连接很简单,由于两者是通过串口接口进行通信的,所以将两者用串口线连接即可。GPRS的网络功能都已集成在模块中,只需要在主处理器这一端将串口参数设置好,然后发送相应的AT指令对模块进行操作即可。2.3 终端软件的研究终端软件设计包括两个任务,一是搭建开发环境,如Linux操作系统内核移植,编写设备驱动等,二是在开发环境准备好的基础上进行应用程序的编写,包括完成SPI总线数据输入输出功能,GPRS无线数据传输功能,和界面显示功能。1.软件开发平台搭建软件平台采用嵌入式Linux操作系统,嵌入式Lin
30、ux操作系统是一个源代码公开的实时多任务操作系统,可应用于多种硬件平台,可根据需要定制内核,有良好的网络支持,Linux系统内核精简、高效并且稳定,能够充分发挥硬件的功能,它非常适合在嵌入式领域中应用。嵌入式Linux操作系统搭建的步骤为:在宿主机上建立交叉编译的环境;编译生成Linux的内核,用的内核是Linux-2.6.29;编译生成根文件系统,用的根文件系统为YAFFS;向目标机下载Boot loader的映像,用的Boot loader为Super VIVI;烧写Linux内核和文件系统的映像;复位启动。为了使终端可以使用触摸屏,液晶屏和SPI总线,将编写的对应的驱动编译、添加到Lin
31、ux内核中。系统使用的宿主机系统为在虚拟机下运行的RedHat9.0终端应用程序用Qt来编写,Qt是一个跨平台的C+图形用户界面应用程序框架。它具有优良的跨平台特性、面向对象、丰富的API支持等优点。Qt-Embedded是Qt的嵌入式版本,因此终端应用程序的开发使用Qt/E作为开发工具。Qt运行环境的搭建步骤为:首先在宿主机上分别建立Ot-x86编译环境和Qt-ARM编译调试环境,采用Qt4.5.0版本;其次,将宿主机生成的Lib下的库文件下载到目标板的某个目录下,并在目标板上设置好环境变量,这样在目标机上的Qt程序运行环境就建好了。在宿主机上交叉编译好的O t/E程序就可以下载到目标机上运
32、行了。2.终端应用程序设计监测终端需要采集监测仪表的现场测量数据,终端设计的数据采集模块分别对不同的现场数据进行采集并做相应的处理,数据采集模块与CPU之间通过SPI总线进行数据传输,对与采集数据需按上端通信协议、PPP、TCP/IP协议进行二次成帧;利用GPRS网络接入Internet网络,将处理后的数据信息通过GPRS无线网络上传至监控中心。GPRS模块附着GPRS网络并与上位机建立TCP数传链路是通过向模块发送一串AT指令实现。拨号动作完成,并成功建立数传链路以后,GPRS模块在终端串行口和上位机之间变得透明。另外,终端的重要状态要能即时显示在LCD上。综上分析,监控终端应用程序要完成的
33、任务有:串口参数设置,GPRS网络连接,读取串口返回信息,SPI数据传输,GPRS数据传输,界面显示。由于任务不止一个,而且有的任务需要同时运行,所以采用多线程编程。在Qt编程中主界面UI一般为主线程,子线程通过继承Qt中的Q Thread线程类来完成。这些任务和功能可以通过3个线程来实现。3个线程的作用分别为:1)主线程:负责界面显示,串口参数设置,GPRS网络连接,GPRS数据传输;2)SPI数据传输子线程:负责与数据采集模块通信,将采集数据存入缓冲区;3)串口数据读取子线程:CPU通过串口操作GPRS模块,GPRS模块的返回信息可以通过串口数据读取子线程随时读取。程序模块图如图5所示。图
34、5 终端应用程序结构图3.显示界面模块界面显示模块:界面显示由两部分组成。一是实时显示各模块的采集数据及一定时间以内的历史数据;二是显示GPRS模块设置界面,通过这个界面设置串口参数、设置数据采集时间间隔、设置主机IP地址及端口号、发送AT指令、回显模块返回信息等。编写界面设计文件main window .h和main window c pp 其中串口参数设置、网络连接和GPRS数据传输封装成相应的子函数,利用Qt的信号槽机制,当捕捉到相应的信号便执行对应的函数。通过继承Qt中的Q Thread线程类来完成GPRS数据读取模块和SPI模块的功能。SPI模块接收底层数据采集模块的各种数据,显示到
35、界面并编码通过GPRS通道传输到上位机,GPRS返回的一些重要信息业需显示到LCD界面上。4.GPRS网络连接任务GPRS网络连接任务主要完成通过GPRS网络建立与上位机的数据传输链路的过程。启动GTM 900C后,首先,需对PPP连接所使用的物理串口进行初始化,包括确定用于PPP连接的串行端口号以及通信波特率。然后,直接使用AT指令,拨号到中国移动的GPRS节点服务器(GGSN)。使用以下几条灯指令使GTM 900C进入数据通讯状态:AT+CGATY? 用于查询GTM 900C是否已附着在中国移动的GPRS网络,GTM 900C将返回当前状态;AT+CGATT=1用于设置GTM900C附着于
36、中国移动的GPRS网络,操作成功GTM 900C将返回OK;A1,+CGDCONT=1,IPCMNET用于设置中国移动的GPRS节点服务器的名称和属性,操作成功则返回OK;AT%ETCPIP用于实现PDP激活和TCP/IP的初始化,使模块进入TCP/IP功能,操作成功返回OK;AT%IOMODE=0.2,0设置数据传输模式,操作成功返回OK;AT%IPOPEN=1,TCP,115.24.116.19,50001026打开一条TCP/IP链接,选择TCP传输,115.24.116.19为上位机IP地址,5000为上位机接受程序端口号,成功与上位机连接返回CONNECT.另外模块还具有数据透传功能
37、,数据透明传输功能将实现TCP/IP上直接数据传输,进入透传模式的AT指令是:AT%TPS=1,1,3000,1024,进入透传模式后模块将不会相应其它AT指令,直接通过串口写入数据便可实现与上位机之间的数据传输。以上使模块附着在GPRS网络的过程封装在GPRS Connect()函数中。PPP配置、认证通过以后,即应用程序就已经通过GTM900C成功进入了Internet网络。最后,通过变量GPRSOK=1指示GPRS拨号成功并建立数传状态。在run()程序中隔一段时间判断当前网络连接状态,若网络断开则变量GPRSOK=0,并调用GPRS Connect()函数开始拨号任务重新建立数传链路。
38、5.SPI数据通信模块SPI通信程序包括两部分,一是用于数据采集的单片机这边需要通过SPI发送现场数据,接收控制指令,二是ARM主控制器需要读取数据,发送控制指令。数据采集模块使用是带有SPI接口的C8051f020单片机,SPI的数据寄存器是SHODAT.单片机和主控制器的SPI通信参数设置要一致。在主设备ARM这边,SPI驱动已经配置好,直接使用read(),write()等函数便可进行数据的读取与接收。在单片机这边采用中断的方式进行SPI数据的发送与接收。对于从设备C8051f021单片机来说,只有将片选线线接低电平才会启动数据传输,可利用这一点进行多字节数据传输,拉低一次便传输一个字节
39、,这可用作与主设备之间的同步信号。主设备选一根I/O口线作为片选线,将其拉低,执行一次SPI读操作,再拉高,延时一定时间,这时从设备退出从模式,重新往SPIODAT里写新数据及其他一些处理,主设备再将片选线拉低,执行一次SPI读操作。这样便可进行多字节传输了。SPI主从设备通信流程图如图6所示。图6 SPI主从设备通信流程图6.终端性能测试将编译好的界面应用程序下载到终端处理器中并运行,主线程为显示界面,随时可与用户进行信息,两个子线程为读SPI总线线程和串口读写线程,这3个线程同时并行运行。其中GPRS传输部分的界面如图7所示,通过这个显示界面设置串口、上位机IP地址、TCP端口和数据定时发
40、送的时间间隔,发送文本框会显示SPI总线读取的数据值,接收文本框回显GPRS模块返回的信息。上位机用自己的PC机,通过软件socket tool监听终端发送给上位机数据,实验证明终端界面应用程序工作良好,数据传输也很准确。图7 GPRS传输部分的界面3 基于 ARM的GPRS 的无线数据传输系统的研究随着无线通讯技术的发展 ,依托移动运营商提供的 无线网络实现远程监控和数据传输已被广泛应用于各个领域 .通用分组无线业务 ( General Packet Radio Service , GPRS) 是在现有 GSM 系统上发展出来的一种分组数据承载业务 .因此 , GPS 车载终端 , 自动抄表
41、系 统等远程遥测遥控系统利用 GPRS 实现数据传输将成 为今后发展的趋势 .本章以A RM7 L PC2138 与WAVECOM Q2406B 无线通信模块为例具体介绍,实现 GPRS 数据传输的方法以及关键技术 .3.1 GPRS数据传输的协议分析和实现上位机的全双工数据通信.终端需附着GPRS网络 ,登陆 Internet 与连接其上的任意一台普通PC机建立 数据链路并随时进行数据传输.完成这一过程必须实现GPRS的附着和 PDP ( Packet Data Protocol ,分组数据协议)上下文的激活 .通过GPRS的附着登记用户信息 ,对用户进行移动性管理;激活过程用于激活IP 协
42、议 ,保证数据能以IP报的形式进行传送,使移动台与GGSN( Gateway GPRS Support Node,网关GPRS节点)建立一条逻辑通路,进行数据传输.可见,激活过程是系统实现的关键 , 它由中央控制 器软件来实现 .分组数据协议的激活涉及到网络的多个协议,如PPP协议,CP ( Link Control Protocol,链 L 路控制协议) , NCP( Net work Control Protocol,网络控 制协议 ),P( Password Authentication Protocol,密PA码认证协议)和IPCP( Internet Protocol Control
43、 Protocol ,Internet 协议控制协议)等.协议实现过程如下:系统设计的主要思路是微处理器通过发送AT指令控制GPRS模块建立无线信道,完成数据传输.用AT指令实现以上协议并完成数据传输的步骤如下: ( 1)设置接入网关 : A T # CGDCONT = 1 IP , , CMN ET ; ( 2) GPRS 网络附着 : AT + CGATT = 1 ;( 3) 激活 GPRS 模式 :AT + GPRSMODE = 1 ; ( 4 ) 设 置 网 络 接 入 点 名 称 : A T # A PN SERV =CMN ET ; ( 5 ) 请 求 网 络 连 接 : A T
44、# CONN EC TION2 S TA R T ; ( 6) 设置上位机的 IP 地址 :AT # TCPSERV = 3 ; ( 7) 设置上位机侦听的端口准备与客户端通信 : A T # TCPPORT =6800 ; ( 8) 打开与上位机的连接 :A T # OTCP ; ( 9) 断开 GPRS 网络连接 : AT # CONNECTION2STOP ; ( 10 ) 取消 GPRS 附着 :AT + CGATT = 0 .在完成 GPRS 数据传输过程中 ,以上 A T 命令均必 须设置 ,但相邻 A T 命令间要有一定延时,经验证 ,约3 s即可 .3.2 数据传输终端的硬件研
45、究1.系统硬件框图图8 系统硬件框图2.系统硬件组成微控制器:系统中,微控制器选用PHILIPS公司的LPC2138 。LPC2138的典型特性如下( 仅列举与本终端设计密切相关的部分 ,如图2所示) :多个串行接口,包 括2个16C550工 业 标 准UART、2个高速IC 接口 (400 kb/ s) 、SPI 和 SSP (具有缓冲功能 ,数据长度可变) 。支持 ISP (通过UART0实现) 和 IAP ,扇区擦除或 整片擦除的时间为 400 ms ,1 ms 可编程 256 B 。2 个 32 位定时器/ 计数器 ,内置看门狗。CPU 操作电压范围:3 . 03 . 6 V (3.3
46、 V 10 %) ,I/ O 口可承受 5 V 的最大电压。图 9 L PC2138 的管脚分布及连接及电平转换电路3.串口电平转换LPC2138串口通过SP3232E完成TTL/CMOS电平转换后与 GPRS 模块相连接,实现模块初始化和数据收发.同时可扩展串口与其他嵌入式系统或PC机进行数据交换 ,如图2所示 .GPRS 模块选用法国WAVECOM 的Q2406B ,该模块内置TCP/ IP 协议并提供了9针的标准 RS 232 接口。模块大致原理图及其与 SIM 卡的连接如图3所示。图10 WAVECOMQ2406B原理图及其与SIM卡的连接示意图3.3 数据传输终端的软件研究系统软件设
47、计的核心部分是微控制器 LPC2138与GPRS模块的通信,两者间需定义通信协议,规定帧格式 ,通过 A T 指令实现 GPRS 网络的附着、PDP 激活、Internet的接入及数据的传输。AT指令调试及波特率的设置微控制器以一定的协议向模块发送AT指令,接收模块执行指令后的返回值 ,并进行相应校验。在Windows自带的超级终端中利用 AT+IPR =“波特率”指令设置无线通信模块的波特率 , 并通过命令后加“; &W”将所设值存储在模块 E2 PROM 中 ,掉电后不会丢失(如:AT + IPR =“115200”; &W) 。系统设计过程中通信的不畅通常是由于波特率不匹配造成。1.建立连接为了方便程序设计 , 增强程序可读性 , 将建立连接 所需的 A T 命令以字符串形式存放于 A T 命令缓存区 , 所需多条 A T 指令长度不一且发送顺序不可改变 ,为了 有效控制每条 A T 指令 , 提高 CPU 利用率需将 A T 指 令缓存区设置为指针数组形式 ,在建立连接时通过循环 调用字符串发送函数将这些 A T 命令发送 ,相邻 A T 命 令间要有 23 s 的延时 , 所以每发送完一条 A T