基于Q2403A的单片机短消息收发系统
扫描二维码
随时随地手机看文章
基于GSM短消息的业务不需要建立拨号连接,只需把待发的消息加上目的地址发送至短消息中心,再由短消息中心转发到最终目标。GSM 短消息业务以其连接简单、费用低廉、覆盖范围广、实现方便等优点得到了广泛的应用。运用 GSM 短消息实现远程测控的可靠性较高、信号传播距离远、覆盖面积广,并且可以节省建网初期的巨额投资。
本文对基于GSM短消息收发系统的设计与实现作了具体描述,给出了系统的软硬件设计方案,对主要硬件,即GSM模块Q2403A 和8051单片机作了重点介绍。给出了系统的软件设计,包括PC与单片机通信部分和短消息收发部分。最后实现系统监控功能。
系统硬件实现
总体系统结构
该系统硬件主要由8051单片机扩展电路、Q2403A手机模块、RS-232总线接口电路、电源转换器等部分组成。图1为系统结构框图。
图1 系统结构框图
其中,电源转换器将PC端口的12V电压转换成3.6V和5V稳压,使系统中的芯片处于正常工作状态。RS-232总线接口电路包括电平转换和串口扩展电路。8051单片机实现存储器扩展之后,通过RS-232总线接口电路与P
单片机扩展电路设计
MCS-51单片机的内部虽已集成了很多资源,这些资源都是折中配置的,片内程序存储器、数据存储器的容量都不大,并行I/O端口的数量也不是很多。此外,在有些应用中,片内定时器、中断、串行口等也显得不足。因此,根据需要,本系统选用8051单片机并对其进行扩展。
读写存储器扩展
本文选用SRAM芯片6264。容量为8K×8bit。其地址线有13条,即A12~A0。8条数据线D7~D0。再加上其他引脚,总共有28个引脚,其中有2个标注为Nc的空引脚。把Nc引脚分别作为地址线A13~A14使用,就是容量为16k×8bit和32k×8bit的SRAM存储芯片。
接口方案采用地址完全译码设计。 使用74138译码器为扩展的存储器分配地址空间。给6264数据存储器分配惟一的地址空间是:0000H~1FFFH。
只读存储器扩展
本文选用AT24C02进行数据存储。它使用两根信号线进行数据传输,一根是串行数据线(SDA),另一根是串行时钟线(SCL)。
RS-232接口电路设计
MAX202是单电源、双RS-232发送/接收器,适用于各种EIA-232E和V.28/V.24的通信接口。MAX202芯片有一个电压转换器,可以把输入的+5V电源转换成RS-232C输出所需的±10V电压,所以,用此芯片接口的串行通信系统只要单一的+5V即可。
本文选用通用异步接收/发送器MAX3100对单片机串行口进行扩展,将单片机与RS-232总线相连。
MAX3100供电电源范围宽、功耗低、在+2.7V~+5.5V的电源中仅吸收0.5mA的电流,具有零功耗的停机模式,并能由接收信号唤醒,使用SPI/Microwire接口与主微控制器进行通信。MAX3100不仅适合于速率高达230kbps的RS-232和RS-485数据链路,而且支持速率为2.4kbps~115.2kbps的红外线数据协会(IrDA)SIR格式,在基于微控制器的小型系统设计中具有良好的应用前景。图2为串口扩展电路图。
图2 串口扩展电路图
电源部分
由于PC端口提供的电压为12V, 系统中的芯片有3.6V和5V两种。因此,电源部分采用美国国家半导体公司输出电压可调的三端集成稳压芯片LM1085-ADJ。
LM1085是一款单芯片集成的电压转换器。提供3 A电流输出,具备过流保护,过温保护,有可靠的工作性能、较高的工作效率,能够为芯片提供稳定的3.6V、5V电压,为芯片工作提供了强有力的保证。图3为电源电路原理图。
图3 电源电路原理图
手机模块部分
Q2403A GSM/GPRS模块支持双频EGSM/GPRS 900MHz/1800MHz模式,支持AT指令,短消息功能完备。Q2403A模块具有60引脚的通用接口,非常容易集成到应用产品中;具有SIM卡确认、供电、时钟、复位及I/O的3V SIM卡接口,包括SIMVCC、SIMRST、SIMDATA、SIMCLK和SIMPRES等。另外,模块提供一个符合V24协议的6线串行通信接口,包括TX、RX、RTS、CTS、DTR、DSR;同时提供DCD和RI信号接口、上电信号PowerON/OFF和复位信号RST。模块正常工作要求提供两路电源,其中,VBATT提供给RF部分,电压范围为3.3V~4.5V,最大功率为2 W;VDD提供给基带部分,电压范围为3.1V~4.5V,最大功率为0.5W。图4为手机模块与SIM卡外围电路设计。
图4 手机模块与SIM卡外围电路图
系统软件设计
主程序流程
主程序主要负责系统的初始化,包括单片机时钟设置、端口工作方式设置、串口设置(波特率、中断允许等)、默认系统数据的恢复(如时间设置、标志位清零等)、GPRS模块的初始化、中断初始化等。然后反复查询SIM卡网络注册情况,直到注册成功。最后进入低功耗模式,等待中断。流程如图5所示。
图5 系统主程序流程
PC与单片机通信部分
该部分包括机组工作数据的采集和反向控制命令的发送,由串口RXD/TXD完成。
PC控制器通过RS-232总线传送多帧数据,数据内容包括机组运行状态、全部温度数据和输入/输出状态信息,以及故障信息等。短消息控制器内的单片机在串口RXD/TXD接收中断过程中判断并处理接收到的数据。
短消息收发
本部分要实现的功能有:接收控制方发来的短消息并提取有效命令词、组装控制帧;采集到紧急故障信息时,或是需要反馈执行结果时,向控制方发送短消息。采用中断方式接收来自Q2403A模块的信息。图6为串口RX/TX的接收和发送中断流程。
图6 串口RX/TX接收/发送中断流程
Q2403A支持的功能相当完备,本系统主要使用了短消息功能。单片机与Q2403A模块间主要通过串口RX/TX进行通信,以AT命令来实现接收及发送的功能。用到的AT命令主要有:查询注册状态AT+CREG;短消息列表AT+CMGL;短消息发送AT+CMGS;短消息删除AT+CMGD。
结语
本文在提出总体设计方案的基础上,完成了系统的硬件和软件设计、应用程序的编写及调试,经实际运行验证,取得了满意的效果。就目前的测试结果而言,结合远程监控的优势,具有较强的实用性。对软硬件作适当扩充修改后,还可应用于环境监测、石油开采设备的监测与控制、农作物生长状况的监测、交通管理系统及安防系统等诸多领域。
参考文献:
1. 李华,等.MCS51系列单片机实用接口技术.第9版.北京:北京航空航天大学出版社,2002
2. 马中梅,籍顺心,张凯等.单片机的C语言应用程序设计.北京航空航天大学出版社,1999
3. 龚建伟,等.Visual C++/Turbo C串口通信编程实践[M].北京:电子工业出版社,2004