1 引言随着通信技术的发展, 基于移动通信网络服务功能, 正向工业控制和遥控领域有不断扩大的趋势。为适应这种需要,西门子公司推出了新一代无线通信GSM模块——TC35i,是一种基于GSM网络的通过短信形式传输数据的通信终端设备。基于该模块工作的无线网络覆盖范围广,在信息传递方面性能稳定、可靠,所以把GSM作为信息传递的载体,与单片机结合起来构成应用系统有着强大的生命力和广阔的应用空间,特别是在远程数据传输、远程监控等领域。
本设计借助系统模型,根据GSM模块收发短信、打电话以及串口控制SMS的基本原理,由单片机STC12C5A32S2与Tc35i模块通过串口通信、软件技术结合相关的AT指令实现手机的基本功能,通过LCD1602液晶显示频显示串口传输的相关数据输出。
2 设计方案 本次设计的目的是基于C51单片机控制GSM模块实现短信收发、打电话的功能,根据题意,制定设计方案如下:
1、短信模块使用西门子公司推出的无线通信GSM模块——TC35i;
2、使用LCD1602液晶模块作为显示器件,及时显示串口传输数据;
3、单片机芯片使用宏晶科技生产的新一代8051单片机STC12C5A32S2;
4、整个系统组成有TC35i模型和小系统单片机电路,STC12C5A32S2单片机的TXD/RXD分别接TC35模块的TXD/RXD,并且两者共地,通过串口通信、软件技术结合相关的AT指令完成对TC35模块的初始化和短消息的数据收发以及打电话的功能;
5、增加4*4矩阵键盘小模块,通过键盘设置相关按键实现相关功能,并能从键盘实现随意拨号;
6、当有来电或者新信息时,通过蜂鸣器响声长短提示并在LCD液晶显示相关提示。
3 硬件设计使用单片机控制GSM,首先:单片机下载完程序后,先不要接GSM,先让单片机和电脑通信,利用串口调试助手查看单片机AT指令的数据。然后单片机的TXD/RXD分别接上图所示的TXD/RXD并共地,完成对TC35模块的初始化和短消息的数据收发以及打电话的功能。硬件连接实物图如图3-1:
3.1 TC35i模块介绍TC35i模块主要由六部分组成: GSM基带处理器、GSM射频模块、供电模块 (ASIC)、 闪存、ZIF连接器、天线接口。其中,GSM基带处理器是整个模块的核心,主要处理GSM终端内的语音、数据信号,并涵盖蜂窝射频设备中的所有模拟和数据功能。TC35i模块结构框图如图3-2:
GSM开发板有两种供电方式,一种是直接把开关电源适配器插到电源插头上,另一种是直接用直流稳压电源的正负极分别接到上图的电源正5V、电源地。当用电脑串口调试GSM时,必须用短路帽直接把J3、J4分别插上短路帽,如上图所示。当用单片机控制GSM时,J3、J4的短路帽必须拔下。
3.2 单片机及各元件的连接
LCD1602液晶显示模块通过排阻接STC12C5A32S2单片机P0口,4*4矩阵键盘按键,接STC12C5A32S2单片机P1口,具体功能分配在3.2.1和3.2.2详细介绍。
3.2.1 STC12C5A32S2芯片介绍STC12C5A32S2芯片是宏晶科技生产的高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统的8051,用它作为本设计控制核心。STC12C5A32S2引脚排列如图3-4所示,表3-1为 STC12C5A32S2引脚功能分配说明。
3.2.2 LCD1602液晶显示模块介绍字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。本设计采用1602LCD液晶显示频作为显示工具,当系统向外拨号、发送信息或有来电以及新信息进来时,通过按键控制执行相关应答,1602LCD同时显示相关指令指示,例如当有来电时,显示效果如图3-5所示:
3.2.3 按键设计模块本设计采用4*4矩阵键盘按键,接单片机P1口,相关功能设置如图3-6:
功能说明:图中为括号的内容表示该按键按下则相关数字送给单片机进行存储和显示,非数字键按表格中的功能在程序中实现。
4 软件设计单片机与GSM模块的的软件接口其实就是单片机通过与GSM模块相关的AT 指令控制手机的控制技术。指令的执行过程需要单片机与GSM模块交互应答完成,每次发送或接收的字节数有严格的规定,二者必须依据这些规定实现数据交换,否则,通信就是失败的。设计采用的相关AT指令说明:
a、 单片机与 TC35i模块由串口建立连接:AT。
b、 设置 TC35i模块工作模式:AT+CMGF=n,n=0:PDU模式;n=1:文本模式,通常要设置为 PDU模式,在这种模式下,能传送或接收透明数据(用户自定义)。
c、 发送信息指令:AT+CMGS=n,n为目标号码。
d、 新消息提示指令:AT+CMNI=2,1,0,0,设置为mode=2,mt=1。
e、 读 TC35i模块短消息数据:AT+CMGR=n,n为短消息号(十进制)。
f、 拨号指令:ATD。这个命令用来设置通话、数据或传真呼叫。
g、 来电显示指令:AT+CLIP=1。
h、 接听指令: ATA。
i、 挂电话指令:ATH。
4.1 软件设计工作原理软件设计过程中在矩阵键盘设置了相关按键分别控制发送短信息 (关键字、状态字、查询信息 )、拨号到从矩阵键盘输入的任意号码、接听来电、挂机以及数字键、清屏键。
在系统运行过程中通过键盘扫描检测,当有按键按下执行相关操作或者有新信息或新来电时,TC35i通过串口传输接收到相关AT指令后 ,把相关信息返回并通过串口传送给单片机 ,单片机收到有新的信号指示 ,则按指示执行相关操作并继续通过串口传输将相关数据送给GSM模块, GSM模块通过串口传输收到相关信息后成功返回“OK”,失败返回“ERROR”。串口传输的相关指令指示通过LCD1602液晶显示频显示出来。
4.2 软件流程图 程序使用模块化的编程思路。主程序包括系统初始化、屏幕刷新和按键扫描三部分,其流程如图4-1所示。屏幕刷新功能用一个子程序模块实现,在模块当中实现相应字符串的显示,其流程如图4-2所示。参数设置子程序的按键扫描,不是设置键按下则退出扫描,重新轮询。若有设置键按下,则进入功能选择子程序。
4.3 主要程序说明整个软件设计由多部分组成:函数声明、函数定义、主函数、信息检测函数、键盘扫描函数、串口中断函数、延时子函数、收/发信息函数、拨号函数、挂机函数、接听函数以及相关LCD1602液晶显示相关函数等,主要程序说明见附录。
5 调试与测试5.1 硬件调试设计好PCB电路检查确认无误之后,经过打印、热转印、制板、焊接元件等流程就可以进行硬件的调试了。硬件安装前要再次确定系统总原理图的正确性,首先用万用表检查电路板是否有虚焊、漏焊、开路或短路的情况;检查无误后给电路板提供+5V的直流电压,观察电路板上的电源指示灯是否正常工作,然后把单片机芯片、液晶显示屏插入插槽中,下载线连接到电路板上,先下载简单可行的测试程序到单片机中,观察芯片工作是否正常,验证显示屏、按键、执行部件能否正常工作,如果芯片正常工作则说明系统板正常,不正常则说明软件或者系统硬件可能存在某些问题,则需耐心查找原因,从根本上一一解决。
下载线的作用是把编译好的单片机程序下载到目标单片机中以及提供电源。用的下载程序软件,STC_ISP.exe 。
5.2 软件调试本系统使用的软件开发环境是keil。在keil中,源代码的输入,编译通过之后就可以进行软件调试了。在软件编程实现过程中,跟随自己事先整理好的思路,先定好整体框架,然后对每个要实现的功能实现从简单开始一步步到最终实现为止,最后把最终程序经过编译确认无误之后,把编译产生的hex文件,下载到实物板中,软硬件调试时,首先要检查电源指示灯是否亮,观察LCD查看显示是否正确,按键是否起到相应的作用。调试过程中,要不断分析问题存在的可能原因,针对具体问题找寻具体解决办法,在硬件和软件程序间不断改进调试,从简单开始一步步进行下去直到最终功能实现为止。
5.3 系统总体调试系统软硬件联合调试步骤与仿真调试步骤基本一致,确保电路硬件线路正常后,将可行程序下载到单片机,验证显示屏、按键、串口通信能否正常工作。 系统总体调试使用工具有:GSM模块、单片机小系统板、SIM卡(插入GSM模块),手机一部。调试步骤:
1、先把SIM卡插入GSM模块插槽中,给GSM通电,观察GSM模块:电源指示灯(红灯)亮,信号指示灯(绿灯)一亮一灭,亮与灭的时间相同,这时GSM模块正在搜索信号,等到信号指示灯闪一下,灭大约2-3秒时,这时说明我们的GSM已经注册上信号,说明模块工作正常;
2、下载线连接上单片机最小系统板,按下开关给单片机上电,电源指示灯亮,工作正常则下载程序后,断开下载线与单片机最小系统板的TXD/RXD接线,将单片机的TXD/RXD脚、地线分别与GSM模块的TXD/RXD脚、地线接上,给单片机断电或复位一次,刷新串口,即可进行调试工作。
3、从键盘输入目标手机号码,观察液晶显示并记录,按下拨号键,等待检查手机是否有新来电,记录结果;
4、从目标手机拨号进来,仔细观察蜂鸣器是否提醒有来电,检查液晶显示并记录,如有来电提醒显示,则按下接听键观察手机提示状态、液晶显示结果,并记录,挂号键操作也是一样检测;
5、按下发信息按键,等待,观察手机是否有新信息以及液晶显示并记录;
6、用手机给模块发送一条信息,检查蜂鸣器是否有提醒,观看液晶显示并记录。LCD602液晶显示屏调试结果以及串口显示结果见附录。
表5-1 系统总体调试结果说明
| | |
| | |
| | |
| | |
| | |
| | |
| | “AT+CMGS=15994473659hello!” |