51单片机控制TC35发送短信
- 格式:pdf
- 大小:218.41 KB
- 文档页数:3
单片机控制GSM模块实现短信收发的软件设计摘要借助系统模型,阐明模块收发短信的基本概念以及串口控制的基本原理。
详细介绍单片机控制模块工作的软件实现过程,对怎样用单片机控制模块收发短信进行探讨,也对程序设计的主体思想作了较为细致的分析。
关键词单片机短信收发软件设计系统是目前基于时分多址技术的移动通信体制中,比较成熟完善,且应用最广泛的一种系统。
目前已建成的覆盖全国的数字蜂窝移动通信网,是我国公众移动通信网的主要方式。
基于的短信信息服务,是一种在移动网络上传送简短信息的无线应用,是一种信息在移动网络上存储和转寄的过程。
由于公众网络在全球范围内实现了联网和漫游,建议上述系统不需再组建专用通信网络,所以具有实时传输数据功能的短信应用将得到迅速普及。
笔者开发设计的基于网络的温度数据采集与无线传输系统正是借助该网络平台,利用短信息业务实现数据的自动双向传递。
系统模型图如图1所示。
本系统由数据采集部分、数据接收和发送部分、终端处理部分三个模块组成。
数据采集模块将采集到的温度数据存入存储器中。
数据收发模块采用双单片机共用2的方式,单片机2控制数据从存储器转存入2中;单片机1负责将数据从2中读出,并经模块2借助网络将数据发送出去。
单片机1不仅控制数据的发送,也控制数据的接收。
在这里,2是温度数据临时存储和上传的中转站。
终端处理模块负责将接收到的数据交给计算机处理,并将处理后的结果存放到数据库中,以供查询。
当终端处理模块需要向模块2发送控制命令时,模块2接收过程正好与上述过程相反,从而实现数据的自动双向传递。
系统中,三个模块相互独立,彼此又相互依赖,共同完成数据的传输。
数据收发模块在系统中起着承上启下的作用,是系统的核心模块。
该模块以双单片机为核心,以232通信接口,在物理层上实现与模块的连接。
由于篇幅的限制,本文主要介绍单片机控制这一模块工作的软件实现过程,旨在对怎样用单片机控制模块收发短信息进行探讨。
1模块2828是中兴通讯推出的无线双频调制解调器,主要为语音传输、短信发送和数据业务提供无线接口。
如何让51单片机与GSM模块实现通信?
51单片机与GSM模块实现通信
1、检测串口线的好坏
1)将串口线插在电脑上,用短路子短接串口的2脚和3脚
2)打开串口调试助手
3)点击自动发送,在自动发送的窗口中随便发个数据,看看能不能接收到若能接收到自己发的数据表示串口线是正常的,否则是坏的。
2、下完单片机程序后,看看串口是否有数据发出检测
3、单片机上与模块通信的4个灯表示的含义
1)DO灯
一直闪表示单片机串口与GSM模块串口通信不正常,否则串口通信正常 2)D1灯
灯亮就表示模块注册上网络,否则没有注册上网络
3)D2灯
灯亮表示开始发短信
4)D3灯
灯亮表示发短信结束
4、单片机板子与GSM模块的连接
单片机---------GSM模块
VCC--------vcc(P5的第3脚)
GND--------GND(P5的第4脚)
RX_232(表示单片机的发)----------RXDPC_232(模块的收(P5的第5脚))。
基于短消息TC35的一种应用方法
李鹏远;林伟新
【期刊名称】《机电产品开发与创新》
【年(卷),期】2008(21)1
【摘要】介绍了单片机短消息收发系统的组成以及单片杌与TC35的接口方法,并介绍了TC35的短消息AT控制指令集,并给出了部分程序,而且对中文短消息收发的协议数据单元(PDU)格式进行了分析,给出了删除短消息的流程.
【总页数】2页(P60-61)
【作者】李鹏远;林伟新
【作者单位】西安电子科技大学,陕西,西安,710071;西安电子科技大学,陕西,西安,710071
【正文语种】中文
【中图分类】TN914
【相关文献】
1.基于TC35T短消息防盗系统的设计与实现 [J], 朱晓红;肖宏年;李兰
2.基于TC35短消息模块的瓦斯浓度警告器的设计 [J], 戴国强;魏胜利;郭建林
3.基于TC35i的PC机短消息收发模块 [J], 魏英钦;陈连坤
4.基于TC35i GSM模块的短消息收发系统设计 [J], 叶卫;胡俊达
5.基于TC35模块实现短消息收发 [J], 张华;高需
因版权原因,仅展示原文概要,查看原文内容请购买。
基于TC35短信模块的开关远程控制系统设计
王超;郭显久
【期刊名称】《微型机与应用》
【年(卷),期】2015(34)4
【摘要】主要介绍了单片机短信远程控制系统的设计.该系统以GSM移动通信网络作为远程控制信号的通信平台,用户可通过手机等设备向远程控制系统发送特定的指令短信,远程控制系统可根据指令短信的内容进行判断并执行设定的命令,控制继电器开关的跳变.该远程控制系统有较好的研究价值和发展前景.
【总页数】5页(P29-33)
【作者】王超;郭显久
【作者单位】大连海洋大学信息工程学院,辽宁大连116023;大连海洋大学信息工程学院,辽宁大连116023;辽宁省海洋信息技术重点实验室,辽宁大连116023【正文语种】中文
【中图分类】TP302.1
【相关文献】
1.基于GSM模块TC35I的收发控制系统设计 [J], 陈凯;秦实宏;王敏;李寒;陈腾
2.基于TC35i短信模块自动分拣线远程控制系统的设计 [J], 黄惠鹏
3.基于TC35/TC351短信模块的数据采集监控系统 [J], 刘水生
4.基于TC35i短信通信的多功能远程控制终端 [J], 刘权;李哲涛;杨国华;肖奕
5.基于TC35T模块在无人值守地震台站遥控电源开关的应用 [J], 张茂军;张晋川;袁燕妮;龙文智;曾新元
因版权原因,仅展示原文概要,查看原文内容请购买。
原创:51单⽚机串⼝通信(字符串接收和发送)下⾯的⽰例代码基于51单⽚机,⽤于快速⼆次开发实现基于串⼝字符串通信控制程序(⽐如要实现电脑控制单⽚机的开灯和关灯),⽰例很⾔简意赅,并附上了详尽的注释,本⽰例代码经过了更新,新版本代码更加友好了,1 #include<reg52.h>23//------------------串⼝通信的数据包协议-----------------//4/*5此程序的串⼝字符串通信使⽤到下⾯的⼀个⾃定义协议,每次通信都是发送或接收⼀个数据包,数据包格式解释如下(长度恒为15):6例如:A01_fmq_01Off___#7 A--------数据包的开始标记(可以为A到Z,意味着数据包可以有26种)8 01-----设备代号9 fmq_01Off___--------指令(长度恒为10),指令的前4个⼈字符是指令头部,指令的后6个字符是指令尾部10 #---------数据包的结束标记1112例如:A02_SenT010250#13 A--------数据包的开始标记(可以为A到Z,意味着数据包可以有26种)14 02-----设备代号15 SenT010250--------指令(长度恒为10),指令的前4个⼈字符是指令头部,指令的后6个字符是指令尾部16 #---------数据包的结束标记17*/18char RecvString_buf[16]; //定义数据包长度为15个字符19#define deviceID_1Bit '0' //⽤于串⼝通信时,定义本地设备ID的第1位20#define deviceID_2Bit '2' //⽤于串⼝通信时,定义本地设备ID的第2位21#define datapackage_headflag 'A' //⽤于串⼝通信时,定义数据包头部的验证标记2223char DataPackage_DS18B20[16]={datapackage_headflag,deviceID_1Bit,deviceID_2Bit,'_','S','e','n','T','X','X','X','X','X','X','#'}; //这个是曾经⽤来控制温度传感模块(DS18B20)的数据包24char HeartBeat[16]={datapackage_headflag,deviceID_1Bit,deviceID_2Bit,'_','B','e','a','t','X','X','X','X','X','X','#'}; //我随便定义了⼀个数据包⽤来做"⼼跳包",⽐如单⽚机系统向电脑每2秒发送⼀次该数据包,如果电脑没有按时接收到,就认为 25//----------------------------------------------//26/*******************************27串⼝通信28 MCU:89C52RC 11.0592MHz2930//11.0592MHz 0xd0 1200bps31//12MHz 0xcc 1200bps32//11.0592MHz 0xfa 9600bps33//0xf4 11.0592MHz 0xf3 12MHz 4800bps34//均在SMOD=1的情况下(波特率倍增模式)35*******************************/36//串⼝发送函数37void PutString(unsigned char *TXStr)38 {39 ES=0;40while(*TXStr!=0)41 {42 SBUF=*TXStr;43while(TI==0);44 TI=0;45 TXStr++;46 }47 ES=1;48 }49//串⼝接收函数50 bit ReceiveString()51 {52char * RecStr=RecvString_buf;53char num=0;54 unsigned char count=0;55 loop:56 *RecStr=SBUF;57 count=0;58 RI=0;59if(num<14) //数据包长度为15个字符,尝试连续接收15个字符60 {61 num++;62 RecStr++;63while(!RI)64 {65 count++;66if(count>130)return0; //接收数据等待延迟,等待时间太久会导致CPU运算闲置,太短会出现"数据包被分割",默认count=13067 }68goto loop;69 }70return1;71 }72//定时器1⽤作波特率发⽣器73void Init_USART()74 {75 SCON=0x50; //串⼝⽅式1,使能接收76 TMOD|=0x20; //定时器1⼯作⽅式2(8位⾃动重装初值)77 TMOD&=~0x10;78 TH1=0xfa; //9600bps79 TL1=0xfa;80 PCON|=0x80; //SMOD=181 TR1=1;82 TI=0;83 RI=0;84//PS=1; //提⾼串⼝中断优先级85 ES=1; //开启串⼝中断使能86 }87//⽐较指令头部88 bit CompareCMD_head(char CMD_head[])89 {90 unsigned char CharNum;91for(CharNum=0;CharNum<4;CharNum++) //指令长度为10个字符92 {93if(!(RecvString_buf[CharNum+4]==CMD_head[CharNum]))94 {95return0; //指令头部匹配失败96 }97 }98return1; //指令头部匹配成功99 }100//⽐较指令尾部(start:从哪⾥开始⽐较,quality:⽐较多少个字符,CMD_tail[]:要⽐较的字符串)101 bit CompareCMD_tail(unsigned char start,unsigned char quality,char CMD_tail[])102 {103 unsigned char CharNum;104for(CharNum=0;CharNum<quality;CharNum++)105 {106if(!(RecvString_buf[start+CharNum]==CMD_tail[CharNum]))107 {108return0;109 }110 }111return1;112 }113 bit Deal_UART_RecData() //处理串⼝接收数据包函数(成功处理数据包则返回1,否则返回0)114 {115//PutString(RecvString_buf);116if(RecvString_buf[0]==datapackage_headflag&&buf_string[14]=='#') //进⾏数据包头尾标记验证117 {118switch(RecvString_buf[1]) //识别发送者设备ID的第1位数字119 {120case'0':121switch(RecvString_buf[2]) //识别发送者设备ID的第2位数字122 {123case'3':124if(CompareCMD_head("Ligt")) //判断指令头部是否为"Ligt"125 {126//下⾯是指令尾部分析127switch(RecvString_buf[8])128 {129case'0':130switch(RecvString_buf[9])131 {132case'0':133134return0;135case'1':136if(CompareCMD_tail(10,3,"Off")) //判断整个数据包是否为:A03_Ligt01Off_#137 {138//如果是则执⾏以下代码139return1;140 }141if(CompareCMD_tail(10,3,"On_")) //判断整个数据包是否为:A03_Ligt01On__#142 {143//如果是则执⾏以下代码144return1;145 }146return0;147default:148return0;149 }150default:151return0;152 }153 }154return0;155156default:157return0;158 }159default:160return0;161 }162 }163return0;164 }165/************************166中断函数167************************/168//串⼝中断服务函数-----------169void USART() interrupt 4//标志位TI和RI需要⼿动复位,TI和RI置位共⽤⼀个中断⼊⼝170 {171if(ReceiveString())172 {173//数据包长度正确则执⾏以下代码174 Deal_UART_RecData();175 }176else177 {178//数据包长度错误则执⾏以下代码179//LED1=~LED1;180 }181 RI=0; //接收并处理⼀次数据后把接收中断标志清除⼀下,拒绝响应在中断接收忙的时候发来的请求182 }183/***************************184主函数185***************************/186void main()187 {188 EA=1; 189 Init_USART(); //初始化串⼝中断通信,当串⼝接受完数据包后,如果检测到数据包包含有效指令,则⾃动执⾏对应的代码,执⾏完⾃动返回到主函数,为了尽可能不影响主函数的时序,串⼝中断函数的执⾏代码不要过复杂190while(1)191 {192//下⾯可以放要经常运⾏的⽤户代码,使⽤PutString()函数来发送数据包,如PutString(HeartBeat); 注:空格的ASCLL码是:0x20,回车是:0x0D193194195 }196 }。
毕业论文论文题目基于GSM模块TC35的短信远程家电控制系统系别电子信息工程系专业电子信息工程班级学号学生姓名指导教师〔签名〕完成时间年月摘要随着GSM(Global System for Mobile communication)移动通信网络的迅速普及和竞争的日益剧烈,新技术和新业务的开发和应用己经提到一个十分重要的位置。
短消息业务(SMS )作为GSM 网络的一种根本业务,已得到越来越多的系统运营商和系统开发商的重视,基于这种业务的各种应用也蓬勃开展起来。
本文以GSM 移动网络作为信息传输平台,设计了一个通过短消息进行远程家电控制的组件。
短消息遵循GSM的标准AT指令集,这里着重介绍了和本课题相关的几条AT 指令,同时采用了支持中文的PDU编码方式。
本课题完全实现了标准的PDU编码和解码功能。
具体实现将在软件设计局部进行详细的描述。
本课题的任务是实现一个控制组件,用户可以通过发送短信对家用电器进行远程ON/OFF控制。
控制组件主要由GSM模块TC35、液晶显示LCD12864、单片机AT89S52及继电器T73-5V组成。
硬件设计局部中对TC35、LCD12864、AT89S52及其外围电路进行了详细的描述。
控制组件由主程序、按键控制程序、液晶显示初始化程序、串口接收中断效劳程序、定时器中断效劳程序等功能模块组成。
其中主程序负责和TC35进行短消息收发,LCD12864负责显示TC35的工作状态。
串口接收中断效劳程序和定时器中断效劳程序共同完成串口数据的接收。
串口数据接收和短信检测是本软件的两个难点问题,软件设计局部将对这两个问题进行了详细的描述。
本设计中,以发光二极管模拟家用电器为被控对象,成功的实现了对发光二极管的远程开启与关闭的控制,而且当发光二极管开启/关闭成功时模块会自动发送一个信息到发送方以确保开启/关闭成功。
同时系统还增加了十三个按键〔复位、拨号/接听、挂机、数字键0~9〕。
由此可见,基于GSM模块西门子TC35短消息的短信远程家电控制系统,不仅克服了远程家电控制系统费用高、控制时间长等的缺点,而且具有良好可扩展性和实用价值,还可以当作家庭使用。
PDU格式发送短信2006-5-25 13:45:001推荐用单片机发送PDU格式的短消息1.准备待发送内容:二进制数据 0xFF 0x00 0xA0 0x052.过程采用PDU格式发送过程:组织PDU格式的二进制数据包--->转换成ASCII格式的PDU数据包-->开始发送短消息2.1 组织PDU格式的二进制数据包1) 配置好的电话号码存储格式: 13 10 31 25 32 2F2) 配置好的短消息中心存储格式:13 01 01 80 50 0F3) 数据长度为4个字节开始组织PDU数据包a. 短消息中心长度短消息中心有国家编码短信中心号码编码08 91 68 31 10 10 08 05 F0b. 短消息类型11 不需要状态报告需为31c. 信息参考00d. 目标电话号码长度目标电话号码有国家编码目标电话号码的编码0D 91 68 31 01 13 52 23 F2 注意:此处的长度和短消息中心长度含义不同。
e. 协议标识00对于标准情况下的下 MS-to-SC 短消息传送,只需设置 PID 为 0 0f. 数据编码方案08或者04均可以发送出g. 信息有效期A5具体参考GSM 03.40 或者PDU中文的文档的计算方法h. 用户数据长度04以整型形式提供,表示后面用户数据段的数据长度i. 用户数据FF 00 A0 05$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$1.经过以上步骤组织出来的PDU数据包为a 08 91 68 31 10 10 08 05 F0b 11c 00d 0D 91 68 31 01 13 52 23 F2e 00f 08g A5h 04i FF 00 A0 05注意:对于组织的PDU数据包我打算先做如下规定将abc d efg 作为配置下发到存储器中d,数据准备好后读出h,数据准备好后算出2.2 计算出包长度包长度是十进制数据格式发送时为二进制格式范围 15~155其中19是指从b到i的二进制格式数据转换成ASCII格式的PDU数据包+包尾0X1A 3. 开始发送短消息(PDU数据包)AT+CMGS = 包长度收对“>”,即开始发送 PDU数据包。
带USB接口的短信收发最小系统设计短信息服务是移动网络上一种基本无线业务,是信息在移动网络上储存和转寄的过程。
但是用常见的手机编辑短信息不方便,输入和显示都有局限,当然不适合工业应用,用PC机就不存在这些问题。
而这种短信收发系统一般是基于RS232串行总线的,不仅安装麻烦,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。
在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致信息的失真。
本设计以GSM网络作为数据无线传输网络,选用支持GSM网络的模块TC35i和带有USB接口的单片机开发而成。
1 系统的结构特点和主要器件本系统主要由短信收发模块和兼有监控实现USB接口双重功能的单片机组成,即西门子公司的TC35i模块和Cygnal 公司的C8051F320。
系统框图如图1所示。
本设计将TC35i终端与电脑相连(通过USB接口,TC35i终端支持GSMU AT指令集),就可以通过自行编制的短信息收发软件,利用PC的超级终端功能实现短信息收发。
该系统可实现中英文点对点的双向收发,一次最多可以发送70个中文字符和160个英文字符。
一旦消息被发送,那么发送人就会得到发送成功的通知。
它还可以实现一次性群发,最多可以发给10个用户,并且有电话簿功能。
该终端具有随机收发,实时接收,立即回复,成本低等特性。
图1 系统框图1.1 TC35i模块的介绍目前,国内常用的GSM模块有Waecome的WMO2、爱立信的DM10/DM20系列、中兴的ZXGM18系列和西门子公司的TC35i,这些模块各有所长。
其中西门子公司的TC35i系列模块性价比高,并且已经有国内的无线电设备入网证。
本设计就是选用西门子公司的TC35i。
TC35i 是一个支持中文短信息的工业级GSM 模块,工作在EGSM900 和GSM1800 双频段,电源范围为3.3~5.5 V ,可传输语音和数据信号, 功耗在EGSM900 (4 类) 和GSM1800 (1 类) 分别为2 W和1 W ,通过接口连接器和天线连接器分别连接SIM卡读卡器和天线。
基于TC35i 的PC机短信息收发模块短信息服务作为GSM 系统为用户提供的一种基本数字业务,已经得到越来越多的系统运营商和系统开发商的重视,成为诸多领域远程监控的一种通信手段,很多应用场合需要通过PC直接控制短信息收发功能,完成系统的数据采集或远程信息传输,在一些偏远架设通信线路比较困难的地区,尤其需要用户直接通过PC控制短信息的远程传输。
本文通过介绍西门子公司TC35i GSM 的PC机短信息收发模块,详细阐述TC35i和PC 之间的硬件连接及部分接口电路原理,PC通过软件编程利用AT指令控制模块工作,实现短信息的收发功能。
该模块可应用于多个领域的远程信息传输系统,特别适用于需频繁传送小数据量的远程信息传输系统,如铁路远程信息传输、电力远程抄表和水利远程监控等领域。
硬件设计针对TC35i模块与PC连接的电源接口、通信接口和控制接口等接口存在的一些问题,采取有效的方法实现两者硬件电路的连接,TC35i模块安装在PC内部,由PC电源供电,同时通过PC串行口实现数据交换,再经软件编程实现模块启动、关闭的收发功能。
TC35i模块TC35i模块是西门子公司推出的一种无线通信模块,它是集射频电路、基带于一体,向用户提供标准的AT命令接口,为数据、语音、短信息和传真提供快速、可靠、安全的传输,方便用户的开发设计及应用。
TC35i模块应用接口采用40脚的Zip插座,包含的引脚功能有:3.3~5.5V、峰值为2A 的直流电源接口,模拟音频输入、输出接口,8个引脚的标准RS232信号接口,6个引脚符合GSM11.11标准的SIM 卡连接、控制接口。
本文应用4个接口,电源接口、控制接口、串行通信接口及SIM卡连接接口。
系统结构系统结构图如图1所示,为增强系统的灵活性,TC35i模块直接由PC内部5V电源供电,PC与TC35i模块通过串行通讯的RxD、TxD和地线三线制完成通讯,串行通讯的DTR和RTS接口与TC35i模块的控制接口连接,实现PC通过软件对短信息收发模块的控制和数据交换。
单片机控制GSM模块实现短信收发的软件设计
摘要:借助系统模型,阐明GSM模块收发短信的基本概念以及串口控制SMS的基本原理。
详细介绍单片机控制GSM模块工作的软件实现过程,对怎样用单片机控制GSM模块收发短信进行探讨,也对程序设计的主体思想作了较为细致的分析。
关键词:单片机短信收发软件设计发送本方的信息帧给对方,并等待对方对此帧的应的应答帧,在收到对方的应答帧后,收方将依据应答帧的内容(即确认帧或者是非确认帧,下同)决定是继续发送下一信息帧,还是重新发送原来的信息帧。
如果由于链路本身不可靠等因素造成应答帧的丢失,收方将在一定时间内因为没有收到应答帧而延时重发原来的信息帧。
在收到对方的应答帧后,收方将继续发送下一信息帧,并等待对方的应答帧,如此反复,直到收方全部发送完信息帧。
论文论文参考网在本方收到对方最后一个应答帧后,表明本方全部的信息帧发送完毕。
然后收方将发送对方仍然等待的应答帧,通知对方收到的信息帧正确与否。
图2
3.1.2 延时重发数+CMTI,表明上位机模块向下位机模块发送了短信数据,可能是命令帧,也可能是确认帧或者非确认帧。
在这种情况下,SHELL函数需要对短信内容进行分析,并根据短信的内容进行不同的处理,负责完成以上功能的就是ExecData函数,它是被SHELL函数调用的,用来分析并处理短信数据。
欢迎转载论文,转载请注明来自:论文论文参考网,谢谢!。