《基于ARM的GPRS无线数据终端设计.doc》由会员分享,可在线阅读,更多相关《基于ARM的GPRS无线数据终端设计.doc(49页珍藏版)》请在三一办公上搜索。
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 way of tran
3、smission 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 broad mea
4、nings 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 design proc
5、ess 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 several mo
6、nths, 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 C语言程序模块化设
7、计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 TCP网络连接314
8、.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附录2471 绪论1.1 研究背景计算机与通信技术的不断发展,极大地促进了工业领域及其它领域的自动化和信息化的发展。以前在工业领域大多采用由单片机构成的数据处理系统和PC机通过串行口构成的微机系统,主要是针对于生产过程分布范围不大、相距不远的场合,这些系统大多采用RS-232
9、,RS-485或有线MODEM的通信方式,虽然经济实用,但是采用有线的数据传输方式,在很大程度上限制了应用场合的拓展。随着企业生产规模不断扩大,不同的生产部门可能在地域上分布极广,相距遥远,如电力、铁路、采矿和石油等,这些部门要对相距遥远的生产过程进行数据传输,如果还是沿用有线的传输方式,则在技术上和经济上都是不足取的。所以采用无线的方式来进行数据传输的需求就日益突出了。在通信领域中,移动通信(GPRS)网则是这个领域中发展最积极最活跃最快的分支之一。GPRS(General Packet Radio Service)即通用分组无线业务,是在现有GSM网络上开通的一种新型的数据传输技术,GPR
10、S采用分组交换方式,仅在实际传送和接收数据时才占用无线资源。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)加密隧道或透明传输 数据传输的通道。传统为有线方式,对GPRS
16、无线数据传输系统而言,则是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 系统主要器件选型因为GPRS无线数据终端
18、应用于工业场合,所以对系统中用到的器件提出了比较苛刻的要求。由于工业环境一般比较恶劣,噪声较多,对温度范围要求较宽,要使无线数据终端能够在工业现场稳定可靠的运行,所选器件必须考虑上述要求。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支持的均很好,是目前最成熟的ARM开发工具。很多
24、ARM开发软件(例如Keil)也是借用的ADS的编译器。 但是ADS界面不够友好,项目管理和系统设置比较复杂,不易学习。 Keil Vision4于2009年2月发布,Keil Vision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上对窗口表面任何位置的完全控制。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。 2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器
25、件的最完美匹配。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直流电经芯片SP6201
31、-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电源电路 图3.3中芯
32、片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 内部的看门狗定时器就会溢出并使/WDO 输出低电平
33、,而/WDO 已连接到手动复位/MR,因此会导致/RST 管脚输出低电平复位信号使MCU 重新复位。MCU 在正常工作情况下当然是不允许这样反复复位的,因此必须在程序里及时反转I/O 的状态,该操作被形象地称为“喂狗”。每次反转WDI 输入状态都能够清除SP706S 内部的看门狗定时器,从而确保/WDO 不会输出低电平(为保证可靠,喂狗间隔应当小于1s)。利用外部看门狗的好处是使系统更加稳定可靠,避免内部看门狗定时器限制系统功能。晶振电路晶振选择11.0592MHZ,这样使得系统时间更加准确。看门狗电路如图3.4图 3.4 看门狗电路 主控电路部分具体电路如图3.5所示,C34、C34、晶振Y
34、1、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为RS-232典型串
35、口电路,D10为数据传输指示灯。图 3.6 RS-232电路 如图3.7所示,485电路中的CON2 、CON3是232与485的通信接口切换接线端子,当RXD0与3485RXD短接、TXD0与3485TXD短接时,系统对外为485接口,反之为232接口。A、B输出末端的电阻作为线路的匹配电阻,也是为了避免信号的反射影响系统性能。UC0504A集成了四个TVS管,在A、B线路上各接一个TVS管,瞬态电压抑制器TVS可以有效的保护器件免遭瞬态高压的损害,它可以瞬间由高阻态变成低阻态,使两极间的电压箝位于一个预定值,有效地保护电子线路中的精密元器件,免受各种浪涌脉冲的损坏。J5为485对外接口。当
36、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点亮,D7、D8分
37、别为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更好的写属性。2、高噪声
40、环境。写入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 或 FCCO = F
46、OSC * 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个字节。初始化流程如图4.4。图 4.4 UART初始化4.2.4 定时器初始化图 4.5定时器初始化 LPC2132带可编程32位预分频器的32位定时器/计数器。4个32位的匹配通道,4个32位匹配寄存器,4个对应于匹配寄