摘要为实现低传输成本的异地实时无线数据传输,文中基于GSM/GPRS通信模块SIM900A和LPC2378控制器,实现了无线通信系统的设计。利用通信模块的SMS数据传输功能实现异地的实时无线数据传输,降低了传输成本。阐述了系统的硬件设计和软件实现方法。
关键词LP2378;PDU编码;SIM900A;无线通信系统;GPRS;物联网
GSM是目前应用较为成熟和完善的一种通信系统。它可以提供短消息、语音、数据传送等多种业务。其中短消息的传送是GSM网络的一种重要业务,已得到广泛应用。如在变电站、电表、水塔等监测数据的无线传输和远程无线控制系统中都需要一种功耗小、性能稳定、抗干扰能力强的无线装置。迄今为止,无论是蓝牙技术,还是其他的无线电波遥控装置能满足以上条件的较少,而GSM系统可以很好地满足上述要求。
1 系统硬件设计
1.1 系统框图
设计—个基于GSM通信模块的无线传输系统,选用SIM900A通信模块和LPC2378控制器制成一款无线Modem,与串口终端协同收发短信数据,以此Modem和GSM网络为纽带可实现远距离的数据传送。设计框图如图1所示。
1.2 控制模块设计
控制模块核心芯片为LPC2378,是一个恩智浦半导体(NXP)公司推出的32位、具有精简指令集、超低功耗的基于ARM7TDMI-S的微控制器,适用于为各种目的而需要进行串行通信的应用。由于它具有低功耗、丰富的片内外设和方便灵活的开发手段,已成为众多单片机系列中一个研究热点。其主要特点有:低电压、超低功耗;工作电压范围为3.0~3.6 V;片内有10位的A/D转换器;4个32位的定时器,具有灵活的时钟设置;片内晶振的工作频率在1~24 MHz之间。具有4个UART串口,方便用户多机通信。提供P0.0~P4.0共5个数据端口,能为用户提供更多的处理功能。在提供的外围数据端口中,有4个具有中断功能。具有JTAG仿真调试接口,便于软件的调试。片内可提供较多的存储器,片内Flash为512 kB,同时还提供较多的RAM以便进行运算处理。
1.2.1 电源部分
在该系统中LPC2378单片机需要用3.3 V和1.8 V供电,因而用National公司的LM117-33和LM117-18芯片实现由5~3.3 V和3.3~1.8 V的降压处理,而LED灯,是在电源通电后变亮,指示电源的通断;电容是用来滤波,减小对输入端的干扰。电源供电原理图如图2所示。
1.2.2 串口通信和按键
LPC2378有两个串口,USART1与SIM900A的连接,USART0与上位机连接,通过串口0将上位机要传输的数据暂存在单片机中,然后通过串口1最终传到SIM900A模块中,从而实现数据的无线传输。虽然SIM900A模块的串口管脚的工作电平是CMOS电平,单片机的串口管脚的工作电压是TTL电平,但由于单片机的高低电平的逻辑判断电平可以实现与SIM900A的管脚进行连接,因此SIM900A模块的串口线可以直接与单片机的串口1相连,而串口0需要一个MAX3232进行电平转换与上位机通讯,如图3所示。
1.3 通信模块设计
SIM900A是芯讯通(SIMCom)公司推出的新一代无线通信GSM/GPRS模块,可以快速安全可靠地实现系统方案中的数据、语音传输、短消息服务(Short Message Service)和传真。模块的工作电压为3.2~4.8 V,工作的频段为EGSM 900 MHz和DCS 1 800 MHz。SIM900A支持GPRS multi-slot class 10/class 8(可选)和GPRS编码格式CS-1,CS-2,CS-3 and CS-4。所在频段最大功耗分别为2 W(900 MHz)和1 W(1 800 MHz)。
SIM900 A采用省电技术设计,所以在Sleep模式下最低耗流只有1.0 mA。常用工作模式有Sleep、Idle、Talk等模式。由于尺寸只有24 mm×24 mm×3 mm,所以SIM900A几乎可以满足所有用户应用中对空间尺寸的要求,例如M2M,数据传输系统等。SIM900A为SMT封装,基于STE的单芯片方案,采用ARM926EJ-S架构,实现电源连接、指令、数据、语音信号、及控制信号的双向传输。
键盘和SPI显示接口可以使用户灵活地设计定制应用。主串口和调试串口可以帮助用户轻松地进行开发应用。一路音频接口,包含一个麦克风输入和一个扬声器输出。可编程的通用输入输出接口(GPIO)。SIM900A内嵌TCP/IP协议,扩展的TCP/IPAT命令让用户能够容易的使用TCP/IP协议,而且在数据传输方面应用广泛。
1.3.1 电源部分
SIM900A采用VBAT为3.4~4.5 V的单电源供电。在一些情况下,信号传输的猝发会导致电压跌落,这时电流损耗的峰值会达到2 A。因此,电源必须能提供足够2 A的电流。给SIM900A供电,采用Micrel公司的LDO—MIC29302BT实现由5~4 V的降压处理,如图4所示。
1.3.2 SIM卡电路
SIM卡的接口电平由模块内部的电压稳压器提供,正常电压值为2.8 V或者1.8 V。复位后,所有引脚输出低电平。6脚SIM卡电路如图5所示。
1.3.3 LCD和键盘交互
控制模块的操作结果可以通过LCD显示出来,并通过键盘对期进行调试和设置。
2 软件设计
2.1 AT指令
系统程序流程软件设计的重点在于单片机的编程。通过向SIM900A写入不同的AT指令能完成多种功能,如网络登录、读取SIM卡上电话号码、发送接收消息、删除消息等。在此重点讨论中文短信的发送。
2.2 PDU编码规则
目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。一般的PDU编码由A,B,C,D,E,F,G,H,I,J,K,L,M这13项组成。在GSM标准中,中文采用PDU编码,故汉字需要在编码之后才可以发送出去。
A:短信息中心地址长度,2位16进制数(1 Byte);B:短信息中心号码类型,2位16进制数;C:短信息中心号码,B+C的长度将由A中的数据决定;D:文件头字节,2位16进制数;E:信息类型,2位16进制数;F:被叫号码长度,2位16进制数;G:被叫号码类型,2位16进制数,取值同B;H:被叫号码,长度由F中的数据决定;I:协议标识,2位16进制数;J:数据编码方案,2位16进制数;K:有效期,2位16进制数;L:用户数据长度,2位16进制数;M:用户数据,其长度由L中的数据决定。J中设定采用UCS2编码,这里是中英文的Unicode字符。
2.3 程序流程
3 结束语
本系统调试完成,在调试过程中运行稳定。设计成本和使用成本低,它可以广泛应用于远程安防监控、PLC数据采集和传输、智能电表、车载通信、无线POS、无线医疗、家庭防盗等无线传输和自动报警系统中。在即将到来的物联网时代,无线通信系统的应用将起到关键性作用。