基于ARM的GPRS无线数据终端设计毕业设计_第1页
基于ARM的GPRS无线数据终端设计毕业设计_第2页
基于ARM的GPRS无线数据终端设计毕业设计_第3页
基于ARM的GPRS无线数据终端设计毕业设计_第4页
基于ARM的GPRS无线数据终端设计毕业设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 山 东 科 技 大 学本科毕业设计论文题 目 基于arm的gprs无线数据终端设计学 院 名 称 山东科技大学 专 业 班 级 气工程及其自动化10-4班 学 生 姓 名 学 号 201003201414 指 导 教 师 时间: 2012 年 6月 5 日摘要 随着嵌入式系统和gprs无线网络的发展,gprs无线数据终端为工业生产中的远距离数据传输带来了更佳的传输途径,摆脱了有线数据传输的局限性,极大地节省了后期维护费用,降低了成本,满足了日益增长的工业需求。gprs 无线数据终端的研究具有广泛的意义和良好的商业前景。 本文主要设计并实现基于arm的gprs无线数据终端。该系统以arm7系列

2、微处理器为核心,通过at指令控制自带有完整tcp/ip协议栈的无线数据模块。结合gprs通信网络的特点分析无线数据传输嵌入式系统的设计过程,给出系统的具体实现方案,提出硬件、软件系统的设计流程、开发要点和实现过程。 本系统经过几个月的设计制作,较好的完成了 无线数据终端的各项功能。 关键词:gprs;嵌入式;arm;at指令;tcp/ip协议abstractwith the development of embedded systems and gprs wireless network, gprs wireless data terminals has brought a better wa

3、y of transmission for long-range data transmission in industrial production, getting rid of the limitations of wired data transmission, saving significantly in the later maintenance costs , reducing costs and meeting the growing industrial demand. the research of the gprs wireless data terminal has

4、broad meanings and good business prospects.the paper mainly designs and implements the gprs wireless data terminal based on arm. the system depending on arm7 family microprocessor can control wireless data module with a complete tcp / ip protocol stack through at commands. make an analysis of the de

5、sign process of the embedded system for wireless data transmission, combined with gprs communication network characteristics and give a specific system implementation including: the hardware and software design process, development points and the implementation process. the design is completed for s

6、everal months, implementing various functions of the wireless data terminal.key words: gprs; embedded; arm; at command; tcp / ip protocol目录1 绪论11.1 研究背景11.2 通讯方式的现状21.3 研究具体任务和目的42 系统总体方案设计62.1 系统功能要求62.2 系统组成62.3 系统主要器件选型72.2.1 主控器件的选择72.2.2 无线模块的选择92.3 软硬件开发工具选择92.4 系统语言与模块化结构102.4.1 at指令集102.4.2

7、c语言程序模块化设计113 硬件电路设计123.1 电源电路设计123.1.1 电源芯片选择123.1.2 电源电路具体设计123.2 主控外围电路143.3 串口通信电路153.4 电平转换电路和部分指示电路173.5 无线模块外围电路设计183.5.1 无线模块插板电路183.5.2 sim卡电路193.6 存储模块电路设计204 软件程序设计224.1 软件总体设计主流程224.2 系统初始化234.2.1 系统中断初始化234.2.2 主频配置244.2.3 uart初始化264.2.4 定时器初始化274.2.5 i2c初始化与铁电存储284.2.6 参数配置初始化设计314.3 t

8、cp网络连接314.3.1 tcp/ip简述314.3.2 tcp连接的建立、维护与拆除314.3.3 系统tcp网络连接过程334.4 数据解析344.5 数据的接收缓存处理354.6 上下行数据传输365 系统调试375.1 硬件调试375.2 软件调试386 总结与展望396.1 总结396.2 展望41参考文献43致谢45附录146附录247171 绪论1.1 研究背景计算机与通信技术的不断发展,极大地促进了工业领域及其它领域的自动化和信息化的发展。以前在工业领域大多采用由单片机构成的数据处理系统和pc机通过串行口构成的微机系统,主要是针对于生产过程分布范围不大、相距不远的场合,这些系

9、统大多采用rs-232,rs-485或有线modem的通信方式,虽然经济实用,但是采用有线的数据传输方式,在很大程度上限制了应用场合的拓展。随着企业生产规模不断扩大,不同的生产部门可能在地域上分布极广,相距遥远,如电力、铁路、采矿和石油等,这些部门要对相距遥远的生产过程进行数据传输,如果还是沿用有线的传输方式,则在技术上和经济上都是不足取的。所以采用无线的方式来进行数据传输的需求就日益突出了。在通信领域中,移动通信(gprs)网则是这个领域中发展最积极最活跃最快的分支之一。gprs(general packet radio service)即通用分组无线业务,是在现有gsm网络上开通的一种新型

10、的数据传输技术,gprs采用分组交换方式,仅在实际传送和接收数据时才占用无线资源。gprs理论上可提供高达171.2kbs的传输速率。除了速度上的优势外,gprs还有“永远在线的特点,即用户可随时与网络保持联系。另外分组交换接入时间的缩短,能提供快速即时的连接,可大幅度提高一些事务的效率。利用现有的gprs网络资源,发挥网络覆盖率高、永远在线等优势,为现有数据传输系统提供一种便捷的无线传输方式。嵌入式系统是一门交叉学科,其支柱学科包括微电子学科、计算机学科、电子技术学科和对象学科。微电子学科是嵌入式系统发展的基础,对象学科是嵌入式系统应用的归属学科,计算机与电子技术学科是嵌入式系统技术发展的重

11、要保证。美国著名未来学家尼葛洛庞帝在2001年访华时曾预言,45年后,嵌入式智能电脑将是继pc和internet之后的最伟大发明。的确,在当今社会中,嵌入式系统已经广泛应用于信息家电、移动通讯、手持通信终端、仪器仪表、航空航天以及工业控制等领域,为人们工作和生活带来了极大的便利,是当前研究最为热门的领域之一。嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成。嵌入式系统以其本身体积小,实时性高,稳定性好,支持以太网等优点,

12、成为工控领域的新热点。如何利用嵌入式系统实现无线终端,并通过gprs 无线网络进行数据传输是一个具有实用意义的研究。本课题源自莱芜一家科技公司,要求设计并实现适用于工业场合的gprs无线数据终端设计。该终端作为数据传输终端的载体,有广阔的市场和良好的商业前景。1.2 通讯方式的现状随着电子、计算机及信息科学技术的发展,通信系统的发展也非常迅速,目前,数据传输中主要的通信方式有以下几种:(1)电话拨号(电话线,专线)电话拨号主要有利用电话线通信和架设专线通信两种方式。电话线:就是利用现有的公用电话网为依托,采用调制解调器和公用电话网的交换机系统,在两个通信实体之间建立起通信通道。专线方式:通信的

13、网络适合于传输数据量不大、实时性要求不高的场合。(2)光纤通信(adsl)从现场运行情况来看,利用光纤通信时数据比较稳定,抗干扰能力强。这种方式在初期投资时较大,但随着光通信设备的价格不断下降,这种方式有可能成为比较实用的现场通信方式。(3)基于gsm的短消息数据传输gsm除语音业务外,另有基于短消息数据传输业务。短消息限制每次传送文本字符不超过160个,传送给移动台的短消息在用户识别模块(sim)上存储。与话音的传输建立和释放过程不同,在gsm系统中,短消息是唯一一种不需要建立端到端的业务通道。由于具备这个特点,即使移动台己处于电路通信状态,还能同时实现短信息业务。(4)基于gprs的分组数

14、据传输通用分组无线业务,是一种新的gsm数据传输服务,它将数据以数据包的形式在plmn(公众陆地移动电话网)内或其他连接到plmn的外部网络间传输。主要针对突发性数据分组传送的一种新业务,与短消息业务类似,提供两类业务点到点业务和点到多点业务。多个gprs用户可以共享一个无线信道,而一个移动用户也可以同时利用多个信道,因而gprs用户的实际通信速率非常灵活,可以低于l00kbps,也可以高于100kbps。在实际的远程数据传输的通信中,如交通管理、电力系统、无线抄表等,可以采用gsm短消息、光纤接入等方式。gsm短消息方式可以实现主动上报;缺点是按条收费,运行费用高,而且在节假日短消息中心服务

15、器繁忙时延时相当长。光纤通信稳定可靠,但是施工成本投入大、扩展性差、设备维护方面不方便。而gprs通信则避免了以上问题。1.3 研究具体任务和目的 gprs无线数据传输系统包括以下几部分:(1)数据采集单元由816位单片机功能电路承担,完成数据采集(针对不同的应用场合,采集的数据有所不同),一般通过rs232485接口向下位机提供数据。(2)下位机主要负责监测并接收数据采集单元提供的数据,经过处理,通过加密隧道向上位机传输数据;同时接收上位机下发命令,控制数据采集单元。应智能化需求,该功能单元由32位微控制器承担。这是该系统控制功能的核心单元。 (3)加密隧道或透明传输 数据传输的通道。传统为

16、有线方式,对gprs 无线数据传输系统而言,则是gprs无线传输隧道。加密是为了保证数据安全,不加密时为透明传输。 (4)上位机 由pc承担,负责完成数据分析、处理、打印等工作;同时实现远程控制下位机完成指定任务。该功能模块由通用计算机系统来完成,可以不归结为嵌入式系统的范畴。 本文关注的是下位机无线数据传输功能模块的实现。通过gprs网络登录已知公网ip,建立网络连接实现数据无线透明传输。2 系统总体方案设计2.1 系统功能要求 gprs无线数据终端功能有:系统可以在7v- 40v宽电压范围供电,也可5v供电;具有232、485两种通信接口;系统上电初始能够通过串口对ip地址、网络端口号等登

17、陆参数进行配置且掉电参数非易失;自动登陆网络建立tcp连接;能够对下行数据进行解析处理完成数据的透明传输;支持心跳包发送,保持永久在线。2.2 系统组成 根据系统功能要求系统大体分为五部分:电源部分、存储部分、串口通信部分、系统主控部分、无线通信部分。电源部分为各功能模块部分提供电源支持,主控部分与存储部分为主从模式,存储主要的参数和相关数据。通过串口通信部分完成参数配置和下位机数据交换的任务。主控部分完成数据的接受、发送、校验、解析等处理,通过和无线模块的通信完成数据的无线透明传输。系统框图如图3.1所示。电源部分串口部分存储部分无线模块主控部分图 3.1 系统框图2.3 系统主要器件选型因

18、为gprs无线数据终端应用于工业场合,所以对系统中用到的器件提出了比较苛刻的要求。由于工业环境一般比较恶劣,噪声较多,对温度范围要求较宽,要使无线数据终端能够在工业现场稳定可靠的运行,所选器件必须考虑上述要求。2.2.1 主控器件的选择作为系统控制核心的微控制器应该选择工业级器件,同时要具有低成本、高可靠、灵活的扩展接口等特点。如今,arm微处理器及技术的应用几乎已经深入到各个领域。采用arm技术的微处理器现在已经遍及各类电子产品、汽车、消费娱乐和无线等市场,尤其是工业控制领域。从应用的广泛度考虑,硬件平台的核心选择采用arm微处理器微控制器系列。这样,不仅可以获得良好的技术支持,降低研发风险

19、,而且可以缩短上市时间,增强产品竞争力。本文选择了nxp公司的lpc2132作为系统的主控芯片。nxp公司的arm内核主控芯片在业界是非常出色地。lpc2132是基于一个支持实时仿真和嵌入式跟踪的32/16位arm7 tdmi-stm cpu的微控制器,并带有64kb的高速flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位thumb模式将代码规模降低超过30%,而性能的损失却很小。较小的封装和极低的功耗使lpc2132可理想地用于小型系统中。宽范围的串行通信接口和片内16kb的sram使lpc2132非常适用于

20、通信网关、协议转换器、软modem、声音辨别和低端成像,为它们提供巨大的缓冲区空间和强大的处理功能。多达32位定时器、1个10位8路adc、pwm通道和47个gpio以及多达9个边沿或电平触发的外部中断使它们特别适用于工业控制和医疗系统。通过片内pll可实现最大为60mhz的 cpu操作频率,pll的稳定时间为100us。可通过个别使能/禁止外部功能和降低外部时钟来优化功耗。单个电源供电,含有上电复位(por)和掉电检测(bod)电路。cpu操作电压范围:3.03.6 v (3.3 v10%),i/o口可承受5v的最大电压。lpc21系列单片机具有32位解决方案的固有优势,如资源丰富、采用多级

21、流水线技术、功耗低、体积小巧、购买和开发成本低、速度可以到60mhz,有32个中断源,两个串口,具有i2c总线和spi总线接口。主要用于工业控制,特别是lpc2132具有两个串行通信口更加适合无线数据终端的实现。mcs-51单片机普遍性强,应用广泛,价格便宜。但此系列单片机字长有限,处理速度较慢,资源不够丰富,需要扩展较多的外围电路,降低了系统的可靠性。难以满足本设计要求。相比较而言,arm7 系列单片机更适用于无线数据终端的实现。最后根据系统要求选择lpc2132。2.2.2 无线模块的选择无线数据通讯模块选用中兴通讯mg2639 模块,频段:850/900/1800/1900mhz,支持语

22、音、短信、数据功能,数据传输最高速率 354kbps,待机电流约2ma,内嵌tcp/ip协议,超薄设计、体积小、低功耗,温度范围:-30+75。模块提供一个完整全双工uart 接口,最大速率为115200bps,对外接口为2.8v cmos 电平信号,逻辑功能符合rs-232 接口协议中的规定。这路uart 串口可作为串行数据接口,通常用于at 指令、数据业务、升级模块软件等。mg2639 模块基带处理器集成了符合iso 7816-3 标准的sim 卡接口,mg2639 模块支持1.8v 或3v 的sim 卡。中兴通讯拥有雄厚的技术实力,可为cdma/gprs等通讯模块客户提供全方位的技术支持

23、,为以后产品升级维护提供强有力的技术支持和保障。综合考虑,在实现相同功能的情况下,这款模块性价比高是系统的最佳选择。2.3 软件开发工具选择 对于嵌入式arm的开发,通常有两种编译环境ads和keil,本系统是在keil uvision4的软件编译环境下进行的。 arm微处理器的传统开发工具是ads,ads(arm developer suite)是在1993年由metrowerks公司开发的,是arm处理器下最主要的开发工具。ads 是全套的实时开发软件工具,包编译器生成的代码密度和执行速度优异。可快速低价地创建arm 结构应用。ads对汇编、c/c+、java支持的均很好,是目前最成熟的a

24、rm开发工具。很多arm开发软件(例如keil)也是借用的ads的编译器。 但是ads界面不够友好,项目管理和系统设置比较复杂,不易学习。 keil vision4于2009年2月发布,keil vision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上对窗口表面任何位置的完全控制。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的arm芯片,还添加了一些其他新功能。 2011年3月arm公司发布最新集成开发环境realview mdk开发工具中集成了最新版本的keil uvision4,其编译器、调试

25、工具实现与arm器件的最完美匹配。2.4 系统语言与模块化结构2.4.1 at指令集 at 即attention,at指令集是从终端设备(terminal equipment,te)或数据终端设备向终端适配器(terminal adapter, ta)或数据电路终端设备发送的。通过ta,te发送at指令来控制移动台的功能,与gsm 网络业务进行交互。用户可以通过at指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。90年代初,at指令仅被用于modem操作。没有控制移动电话文本消息的先例,只开发了一种叫sms blockmode的协议,通过终端设备(te)或电脑来完全控制 sms。几年后

26、,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和hp共同为gsm研制了一整套at指令,包括对sms的控制。at指令在此基础上演化并被加入gsm0705标准以及现在的gsm0707标准。sms的控制共有3种实现途径:最初的blockmode;基于at指令的textmode;基于at指令的pdumode。到现在pdumode已经取代blockmode,后者逐渐淡出。gsm模块与计算机之间的通信协议是一些at指令集,at指令是以at作首,字符结束的字符串,at指令的响应数据包在每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来、线路无信号等),模块将有对应的一些信息提示,接

27、收端可做相应的处理。 中兴通讯mg2639模块有自己丰富的at指令集本,本文用到的基本指令有:at、ate0、at+zpnum=cmnet,(设置apn指令)、at+zpppopen(激活apn指令)、at+zipsetup=1,60.208.26.237,3030(建立tcp网络连接指令)、 at+zipsend=1,10(发送数据指令)。2.4.2 c语言程序模块化设计 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,由于汇编语言开发的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,c语

28、言一种高级的低级语言,则成为嵌入式系统开发的最佳选择。它既具有高级语言的特点,又具有汇编语言的特点。而且c语言移植性好、易于模块化设计,有利于系统后期升级维护。 模块化设计,简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。逐步求精的结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。程序模块开发设计,有利于团队成员间的合作和分工,使嵌入式产品的开发周

29、期变短。提高开发效率,减少开发成本,更有利于产品的升级。3 硬件电路设计 硬件电路设计的具体设计任务:首先分析硬件系统各部分的功能要求,选择合适的器件,完成各部分电路的设计,然后利用protel99se进行硬件电路原理图的总体设计和pcb的设计,完成硬件设计。3.1 电源电路设计3.1.1 电源芯片选择 电源部分的设计,系统采用两种可选择电源供电方式,一种是5v的直流电源供电,另一种是电源范围在7-40v的宽电源直流供电。工业现场的电源多为12v或24v的开关电源,而且工业现场环境恶劣,为了满足工业现场的需求,为保证系统的可靠性、稳定性,我们选用的供电模块、电源转换模块都要从性价比高、带负载能

30、力强等方面考虑选型。由于考虑无线数据终端的应用环境要求,经过认真考虑系统决定选用宽电压输入电压模块。考虑到负载电流和功耗,电源芯片选用开关式,由于通信模块与微控制器所需电压不一致,故选用sp6201-3.3为lpc2132等供电电压为3.3v的芯片供电,选用为通信模块供电。lm2576可将7-40v的直流电转换成5v直流电作为宽电压范围电源。同时为了缩小产品的尺寸,选择的芯片封装为贴片形式。3.1.2 电源电路具体设计 在宽电源供电下,首先7-40v的直流电源进过lm2576dc-dc变换成5v直流电,然后lm2576的输出经mic29302转换给无线模块供电,同时lm2576输出的5v直流电

31、经芯片sp6201-3.3转换成3.3v给3.3v芯片供电。图 3.1 lm2576电源转换电路 在图3.1中的电路中,lm2576输入端和输出端(mic29302的输入端)的两个二极管in5408为保护二极管以防电源接反损坏芯片,d3为稳压管,稳定电源输出,电感l1作用是滤波,使输出5v电压更加稳定。 图 3.2 模块电源电路图3.2中vbat为mic29302的输出,直接给mg2639 模块供电。mg2639 模块要求供电电压在3.4v-4.25v之间。由得。为满足要求r21/r1在1.92-2.6之间,故r21=2.2k、 r1=1k,计算得vbat=3.75v。图 3.3 3.3v电源

32、电路 图3.3中芯片sp6201-3.3是把5v电压转换成3.3v,为3.3v器件供电,en接高电平使能转换,rsn为低电压检测复位端。当输出电压过低时,延时检测发出复位信号。本系统未用此端。c15、16为电源端去耦电容。3.2 主控外围电路 主控电路主控芯片为lpc 2132,采用外部看门狗,外部看门狗芯片选择sp706。sp706s供电电源为3.3v,系统上电后,sp706s 自动产生200ms 低电平复位信号,使mcu 正常复位。mcu 配置一个i/o 管脚为输出,并接到wdi。如果i/o 固定为high 或low 电平不变,则1.6s 后,sp706s 内部的看门狗定时器就会溢出并使/

33、wdo 输出低电平,而/wdo 已连接到手动复位/mr,因此会导致/rst 管脚输出低电平复位信号使mcu 重新复位。mcu 在正常工作情况下当然是不允许这样反复复位的,因此必须在程序里及时反转i/o 的状态,该操作被形象地称为“喂狗”。每次反转wdi 输入状态都能够清除sp706s 内部的看门狗定时器,从而确保/wdo 不会输出低电平(为保证可靠,喂狗间隔应当小于1s)。利用外部看门狗的好处是使系统更加稳定可靠,避免内部看门狗定时器限制系统功能。晶振电路晶振选择11.0592mhz,这样使得系统时间更加准确。看门狗电路如图3.4图 3.4 看门狗电路 主控电路部分具体电路如图3.5所示,c3

34、4、c34、晶振y1、r14组成主控时钟电路,晶振选择11.0592mhz频率,r14为起振电阻阻值为1m。con2为程序下载短接端口,需下载程序时,在上电短接con2,这样上电后lpc2132自动进入下载模式。d9为运行指示led。图 3.5 主控电路3.3 串口通信电路 由于在工业现场大部分的串口通信接口,一般采用rs-232或rs-485接口方式,为了满足不同用户的需求,本系统设计了两种接口方式,可供用户根据自身条件自由选择。故选用sp3232en和sp3485en作为gprs无线终端与下位机的通信接口。sp3232en和sp3485en供电电源均为3.3v,均为工业级芯片。 图3.6为

35、rs-232典型串口电路,d10为数据传输指示灯。图 3.6 rs-232电路 如图3.6所示,485电路中的con2 、con3是232与485的通信接口切换接线端子,当rxd0与3485rxd短接、txd0与3485txd短接时,系统对外为485接口,反之为232接口。a、b输出末端的电阻作为线路的匹配电阻,也是为了避免信号的反射影响系统性能。uc0504a集成了四个tvs管,在a、b线路上各接一个tvs管,瞬态电压抑制器tvs可以有效的保护器件免遭瞬态高压的损害,它可以瞬间由高阻态变成低阻态,使两极间的电压箝位于一个预定值,有效地保护电子线路中的精密元器件,免受各种浪涌脉冲的损坏。j5为

36、485对外接口。当rede为高电平时主控向485发送数据,为低电平是经过485接收数据。 图 3.7 rs-485电路 3.4 电平转换电路和部分指示电路 由于mg2639通信模块数字信号输入高电平不能大于3v,微控制器输出高电平为3.3v,所以需要进行电平转换,从而保证通信正常,避免烧坏模块。利用三极管开关特性进行电平转换。 图3.8为电平转换电路,当mcu_txd为3.3v高电平时,三极管截止rxd为高电压值为v_msm=2.8v,当mcu_txd为低电平时,三极管饱和导通rxd为低电平。电容c20 、c22、 c23的作用是减弱环境对数据信号干扰。 图3.9中,当无线模块工作正常时,d6

37、点亮,d7、d8分别为vbat和v3.3的电源指示,d4为模块工作状态指示。开机状态:d4指示灯灭;找网状态:d4指示灯以3hz 频率闪烁;idle 状态:d4指示灯以1hz 频率闪烁;traffic 状态(通话、上网等):d4指示灯以5hz 频率闪烁。图 3.8 电平转换电路图 3.9 系统指示电路 3.5 无线模块外围电路设计3.5.1 无线模块插板电路 无线模块mg2639 模块是28引脚邮票接口模块,功能支持短信、语音通话、数据传输业务。无线模块mg2639 模块具有一个完整全双工uart 接口(以下简称uart 串口),最大速率为115200bps,对外接口为2.8v cmos 电平

38、信号,逻辑功能符合rs-232 接口协议中的规定。这路uart 串口可作为串行数据接口,通常用于at 指令、数据业务、升级模块软件等。鉴于本系统的功能需求,本设计主要用到的是数据传输业务。用到的引脚有rxd、txd串口引脚,rssi_led为网络信号指示和与sim卡相关的信号引脚。图 3.10 模块电路3.5.2 sim卡电路 sim卡电路电源为mg2639v_card输出电压提供,mg2639支持1.8v/3.0v的sim卡。由于sim 卡的设计需要满足esd 电气性能,防止环境下esd 损坏sim 卡的情况,故本设计在4 路sim 卡信号上都加上了tvs 器件。并且在4 路sim 卡信号上

39、都加了电容值为22pf的滤波电容。减少信号的干扰。clk为sim卡的时钟,data为sim卡的数据,rst为sim卡的工作复位信号。图 3.11 sim卡外围电路3.6 存储模块电路设计 存储模块电路采用铁电存储,所用芯片为fm24cl64,它具有64的非易失ram。它是以i2c总线的方式进行读写访问。可以进行写保护设置。更高的擦写次数和强度,更快作出的fram写入比eeprom更具优越性,也是选择铁电存储的原因之一。铁电存储有以下特点: 1、数据的收集方面。在实际应用中的数据收集和保存,fram提供了一个更优越的解决方案。它比电池备份的sram更具成本效益,而且提供比eeprom更好的写属性

40、。2、高噪声环境。写入eeprom可以挑战任何严重的噪声或电源波动的环境。目前,长时间的eeprom写时间可能导致写损坏,fram的写入时间可以在一微秒内快速完成。通常这个时间要比噪声或电源波动扰乱的时间短得多。 3、维修跟踪。在复杂的系统中,维修信息更需要被加快记录。由于高擦写次数,fram作出理想的系统日志。此外,2线的fm24cl64接口允许内存分布在整个最小系统中使用。 鉴于铁电存储的上述优点,故本系统采用fm24cl64存储登录参数等相关配置。在图3.12中a0、a1、a2接地,确定了器件地址。fmwp接高电平时写保护。fmwp接低电平时可进行写操作。图 3.12 铁电存储电路 4

41、软件程序设计4.1 软件总体设计主流程 本文软件设计部分,主要按照系统工作过程进行的设计。首先是对lpc2132涉及到的各功能部分进行初始化设置,包括主频、串口、定时器、i2c总线。其次是对gprs登陆参数进行设置,包括连接的ip和相应的端口号。最后建立tcp服务器链接,进入tcp工作模式,完成上下行数据的透明传输。以下为具体流程图。 图 4.1 系统主流程图 4.2 系统初始化4.2.1 系统中断初始化 arm7中断为向量中断,向量中断控制器(vic)具有32个中断请求输入,可将其编程分为3类:fiq、向量 irq 和非向量 irq。可编程分配机制意味着不同外设的中断优先级可以动态分配并调整

42、。快速中断请求(fiq)具有最高优先级。向量 irq 具有中等优先级。该级别可分配32个中断中的16个。32个请求中的任意一个都可分配到16个向量irq slot中的任意一个。其中slot0具有最高优先级,而slot15则为最低优先级。非向量irq的优先级最低。vic将所有向量和非向量irq“相或”向 arm 处理器产生 irq 信号。irq 服务程序可通过读取vic的一个向量地址寄存器跳到相应地址。如果有任意一个向量irq发出请求,vic则提供最高优先级请求irq服务程序的地址,否则提供所默认程序的地址。 中断程序的初始化是对系统内需要用到的中断进行包括优先级及其中断程序入口地址的初始化,首

43、先是选择中断类型,本系统中所有中断一律选择为向量中断,然后使能相应的中断,lpc2132为每一个中断源提供一个通道号。在中断控制寄存器0-15中写入中断通道号,中断控制寄存器0中的中断优先级最高。以此来设定各中断源的优先级。最后在相应的向量地址寄存器中写入32位中断程序入口地址。中断服务程序就会在向量地址寄存器中读出,并在每次中断程序执行完毕后清零向量地址寄存器来结束中断程序。本系统中断初始化程序如图4.2。图 4.2 中断初始化流程图4.2.2 主频配置 主频的配置其实是对pll(锁相环)进行设定达到系统需要的系统主频, pll接受的输入时钟频率范围为10mhz25mhz。输入频率通过一个电

44、流控制振荡器(cco)倍增到范围10mhz60mhz(cpu频率范围)。倍频器可以是从1 到 32 的整数(实际上,由于 cpu 最高频率的限制, lpc2132的倍频值不能高于6)。cco 的操作频率范围为 156mhz320mhz,因此在环中有一个 pll 提供所需要的输出频率使 cco 保持在频率范围内。输出分频器可设置为 2,4,8 或 16,由于输出分频器的最小值为 2,它保证了 pll 输出有 50%的占空比。pll的激活由pllcon 寄存器控制。pll 倍频器和分频器的值由 pllcfg 寄存器控制。为了防止 pll 参数 改变或pll失效,对这两个寄存器进行了保护。对它们的保

45、护由一个类似于操作看门狗定时器的代码序列来实现。对 pllfeed 寄存器的操作可以实现这一序列。pll只能通过软件使能。程序必须在配置并激活 pll后等待其锁定,然后作为时钟源连接到pll。 fosc是晶振频率,fcco 是pll电流控制振荡器的频率 ,cclk是pll输出频率(也是处理器的时钟频率), m 为pllcfg寄存器中msel位的倍增器值,p 为pllcfg寄存器中psel位的分频器值。pll输出频率(当pll激活并连接时)由下式得到:cclk = m * fosc或cclk= fcco / (2*p) ,cco频率可由下式得到: fcco = cclk * 2 * p 或 fc

46、co = fosc * m * 2 * p 。pll输入和设定必须满足下面的条件:fosc的范围:10mhz25mhz 、cclk的范围:10mhz-fmax(lpc2131/2132/2138 的最大允许频率)、 fcco的范围:156mhz-320mhz。 经过细致考虑,为了让系统在比较快的主频下运行,主频定为44.2368mhz。根据公式计算的m=4,p=2。外设工作频率由vpb分频器决定。可通过vpbdiv设置。默认设置下,外设频率是主频的1/4。所以程序流程如图4.3。图4.3 主频设置流程图4.2.3 uart初始化 arm提供两个全双工的串口,串口的初始化主要是串口接受中断的初始

47、化。串口的初始化一是要设置串口通信的波特率,二是要设置发送接受的字符格式,三是要使能接收中断。对于lpc2132串口的波特率的设置,需要设置uart的除数锁存器。除数锁存是 uart0 波特率发生器的一部分,它保存了用于产生波特率时钟的 vpb 时钟(pclk)分频值,波特率时钟必须是波特率的16倍。u0dll和u0dlm寄存器一起构成一个 16 位除数,u0dll包含除数的低8位。当访问uart0 除数锁 存寄存器时,u0lcr中的除数锁存访问位(dlab)必须为 1。本系统的串口波特率设置为115200bps,数据格式为8位数据位、1位停止位、无奇偶校验。fifo接受触点为1个字节。初始化

48、流程如图4.4。图 4.4 uart初始化4.2.4 定时器初始化图 4.5定时器初始化 lpc2132带可编程32位预分频器的32位定时器/计数器。4个32位的匹配通道,4个32位匹配寄存器,4个对应于匹配寄存器的外部输出。定时器初始化一般过程为,设置工作模式、设置预分频寄存器的值、设置匹配寄存器的值、选择是匹配动作还是匹配中断、然后启动定时器。根据本设计的要求,定时器工作在计时状态,当定时器计数器达到匹配寄存器值时,进入中断进行中断处理。流程图如图4.5所示。图 4.5定时器初始化4.2.5 i2c初始化与铁电存储 lpc2132带有两个标准的i2c总线接口,可配置为主机,从机或主/从机,

49、i2c初始化相对比较简单。一是对波特率进行设置,通过设置i2sclh和i2scll进行配置i2c时钟高低电平的占空比,二是使能i2c。i2c总线存在两种类型的数据传输。第一种,从主发送器向从接收器发送数据。主机发送的第一个字节是从机地址。接下来的是数据字节流。从机每接收一个字节返回一个应答位。第二种,从发送器向主接收器发送数据,第一个字节由主机发送。从机返回一个应答位。接下来从机向主机发送数据字节。主机每接收一个字节返回一个应答位。接收完最后一个字节,主机返回一个非应答位。主器件产生所有串行时钟脉冲和起始以及停止条件。出现停止条件或重复的起始条件时传输结束。由于重复的起始条件同时是下一个串行发

50、送的开始,因此i2c总线不会被释放。 lpc2132提供字节方式的i2c接口。它有四种操作模式:主发送器模式、主接收器模式、从发送器模式和从接收器模式。根据本系统的需要,lpc2132的i2c设置为主机为主接受和主发送模式。在主机模式下,无论是接受还是发送,首先都必须发送从机地址和数据方向位。然后启动总线,条件发出后,进入中断发送从地址和方向位。然后根据状态寄存器的码值进行相应的数据操作。 系统中要对登陆的ip地址和建立tcp连接的网络端口号等信息进行非易失性存储,又因为铁电存储器fm24cl64为i2c接口,所以i2c主要用在对参数数据的读写上。每次参数配置后就进行参数的铁电存储。也就是i2

51、c的写操作,写操作的过程是这样的,首先要确定写入的地址和字节数。启动总线后等待启动条件是否发送完成,发送完成进入中断程序,数据写入完成释放总线。结束写数据子程序。读数据子程序与写操作相类似,只是进入i2c中断后的操作码值不同,进行读操作。具体流程见图4.6。图 4.6 铁电存储流程 4.2.6 参数配置初始化设计 参数配置在系统上电后进入参数配置阶段,一定时间内若不进行配置,系统自动为默认参数。随后以默认参数登陆进入tcp模式下的数据传输。参数配置过程首先发送提示信息,等待参数输入,若有参数输入,原样发出等待确认,正确则进入登陆,不正确重新输入相关参数。4.3 tcp网络连接4.3.1 tcp

52、/ip简述 transmission control protocol/internet protocol,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,简称tcpip协议,是internet最基本的协议、internet国际互联网络的基础,由网络层的ip协议和传输层的tcp协议组成。tcp/ip协议是由美国国防部高级研究工程局(dapra)开发的。 数据在网络中传输中的过程需要加入许多的附加信息,才能把数据完整无缺的发送到目的地,数据在网络中的相互传递需要经过很多的网络层。就需要协议来完成各层之间的相互关系。tcpip协议就完成了这个任务。4.3.2 tcp连接的建立、维护与拆除

53、tcp协议是一个面向连接的协议。所谓面向连接,是指一个主机需要和另外一台主机通讯时,需要先呼叫对方,请求与对方建立连接。只有对方同意,才能开始通讯。 这种呼叫与应答的操作非常简单。所谓呼叫,就是连接的发起方发送一个“建立连接请求”的报文包给对方。对方如果同意这个连接,就简单地发回一个“连接响应”的应答包,连接就建立起来了。图4.7描述了tcp建立连接的过程。图 4.7 tcp连接图 主机a希望与主机b建立连接以交换数据,它的tcp程序首先构造一个请求连接报文包给对方。请求连接包的tcp报头中的报文性质码标志为syn(见图4.7),声明是一个“连接请求包”。主机b的tcp程序收到主机a的连接请求

54、后,如果同意这个连接,就发回一个“确认连接包”,应答a主机。主机b的确认连接包的tcp报头中的报文性质码标志为ack。 syn和ack是tcp报头中报文性质码的连个标志位(见图4.8)。建立连接时,sys标志为置1,ack标志为置0,表示本报文包是个同步synchronization包。确认连接的包,ack置1,syn置1,表示本报文包是个确认acknowledgment包。图 4.8 syn标志位和ack标志位 从图4.7可以看到,建立连接有第三个包,是主机a对主机b的连接确认。考虑这样一种情况:主机a发送一个连接请求包,但这个请求包在传输过程中丢失。主机a发现超时仍未收到主机b的连接确认,

55、会怀疑到有包丢失。主机a再重发一个连接请求包。第二个连接请求包到达主机b,保证了连接的建立。但是如果第一个连接请求包没有丢失,而只是网络慢而导致主机a超时呢?这就会使主机b收到两个连接请求包,使主机b误以为第二个连接请求包是主机a的又一个请求。第三个确认包就是为了防止这样的错误而设计的。这样的连接建立机制被称为三次握手。 当通讯结束时,发起连接的主机应该发送拆除连接的报文包,通知对方主机关闭相应的tcp进程,释放所占用的资源。拆除连接报文包的tcp报头中,报文性质码的fin标志位置1,表明是一个拆除连接的报文包。 为了防止连接双方的一侧出现故障后异常关机,而另外一方的tcp进程无休止地驻留,任

56、何一方如果发现对方长时间没有通讯流量,就会拆除连接。但有时确实有一段时间没有流量,但还需要保持连接,就需要发送空的报文包,以维持这个连接。维持连接的报文包的英语名称:keepalive。为了在一段时间内没有数据发送但还需要保持连接而发送keepalive包,被称为连接的维护(在本系统中称为心跳)。 tcp程序为实现通讯而对连接进行建立、维护和拆除的操作,称为tcp的传输连接管理。4.3.3 系统tcp网络连接过程 tcp网络连接的过程是首先向无线模块发送at,若模块回复正确,则发送ate0指令取消模块对发送来的指令原样返回的功能,使主控只接受回应的有用信息。然后设置apn,打开gprs连接,附着网络。最后建立tcp数据连接,返回连接成功提示信息。具体流出如图4.9。图 4.9建立tcp数据连接4.4 数据解析 数据进过网络的传输,由于经过的途径不同会带有各个阶段的协议信息或者以特定格式传输的信息。为了完成数据的透明传输,必须对接受到的数据进行数据解析。 由于本系统采用的mg2639无线通讯模块已经内嵌了tcpip协议,因此就不再涉及协议栈的建立与分开的复杂过程,数据由下位机传入后通过无线模块自动加入协议信息,直接经过网络传输即可进入上位机完成数据的透明传输。本文主要的数据解析处理是发生在下行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论