短信猫软件开发

西门子TC35短信设备调试笔记

来源:http://www.10086dxm.com添加时间:2019/08/13 点击:

TC35短信设备调试笔记:


西门子tc35短信设备

一、TC35的部分调试参数

1、TC35的电流消耗指标:

1〉通话模式的峰值电流(TALK mode of peak),1.8A

2〉通话模式的典型电流(TALK mode),300mA @900MHz 270mA @1800MHz

3〉空闲模式(IDLE mode)的消耗电流,10mA

4〉休眠模式(SLEEP mode)的消耗电流,3mA

5〉关机模式(Power Down mode)的消耗电流,50µA

2、关于LED灯显示的状态

SYNC引脚可以用来输出一个同步信号(synchronization signal),也可以在应用使来控制一个LED灯的输出状态。:SYNC端通过一个三极管或门电路来控制LED。一个简单的电路接法是:SYNC端通过一电阻接到NPN三极管(如9013)的基极,射极直接接地,集电极通过一个接限流电阻接到LED的负端,LED的正端接VCC。LED的工作模式完全类同于同步信号,显示的是TC35的工作状态:

1〉LED灯灭,表示TC35电源关闭,处于休眠、报警或单纯的充电模式

2〉600 ms 亮 600ms 灭,表示未插入SIM卡,或者个人身份未登记/已注销,或者网络正在搜寻中,或者正在进行用户身份鉴定,或者网络注册正在进行中

3〉75ms 亮 3s 灭,表示网络注册成功(控制通道和用户交换信息完成),无来电

4〉LED灯亮,依据不同的呼叫类型:声音呼叫,数据呼叫,在建立或者完毕时的状态。

2、关于VDD端:

TC35正常工作时,VDD引脚输出信号的幅度(大约在开机后60ms产生):2.9V/70mA,可作为外部应用。

空闲或者通话模式: VDDout 2.9V ±3% 70mA Imax 70mA;电源关闭模式: VDDout 0V。

3、关于VBATT+端:

TC35的工作电压输入端VBATT+,电压幅度为 3.3V-5.5V,Vtyp 4.2V,最大电流Imax ≤ GSM天线回波损耗(return loss)≥ dB。必须注意:最低工作电压不能低于3.3V,否则电压将会跌落,从而导致TC35停止工作。由于VBATT+引脚的峰值电流为 2A ,一个GSM发射脉冲(transmission burst)可能引起相当大的电压跌落,此外由于外部电源的扁平柔性连线的内在固有阻抗也可能损失一部分。因此,在任何时候,必须保证VBATT+ 的电压不能低于 3.3V,而且电压跌落差值不能超过400 mV。另外,为了保证TC35在发射脉冲区间的电压跌落值处于最低值,采用尽可能短的连接模块和ZIF座的扁平柔性FFC电缆,长度不得超过200mm,和低输出阻抗(low-impedance)的电源。

4、关于POWER端:

TC35的充电电压正端POWER,如果通过外部的电源(如充电器)供电,应保证Imax 500 mA,Vin=5.5-8V。

5、关于/IGT(Ignition)端:

TC35的触发点火信号端/IGT, 用OC门或者一个简单的开关拉低该端电平来开启模块,低电平有效。在空闲/通话/关机模式:Vout 2.0V,Vlow,max 0.45V Iout 10µA,tlow ≥ 100ms。对于点火信号IGT的处理,需要首先拉低该脚电平到地,并至少维持100ms。

注意,如果你通过充电器回路(接到POWER引脚)供电,或者通过电池供电(接到VBATT+引脚),那么IGT信号必须维持至少1秒!

6、关于PD(Power down):

TC35的关闭电源端/PD,关机信号脉冲,信号波形为~~~|______|~~~ ,拉低到低电平,至少维持3.5秒方为有效。Vin,low,max 0.45V 0.1mA,可用OC门或者一个简单的开关实现,通过关机信号端可以关闭TC35。而在IGT引脚施加一个低电平脉冲信号可以重新开启模块及系统。另外,关机信号端/PD也可用来实现看门狗信号输出:Vout,low 0.35V 0.01mA,Vout,high 2.30V -0.01mA,fout 0.5-2.0Hz

7、启动TC35的方式:

TC35 可以通过以下方式激活,开始工作

1〉通过点火线IGT触发,进入正常工作状态

2〉通过电源线,开始进入充电区

3〉通过RTC中断,开始进入报警模式

8、TC35的开机操作时序

当开始应用,TC35的加电过程必须按照以下步骤进行:

1〉直到VBATT+脚的电平超过3.0V时方可对ignition线的信号电平变换。

2〉VBATT+脚的电平上升达到3.0V后维持10毫秒,方可拉低IGT线的信号电平。IGT线的电平跌落时间(下降时间)必须不超过1ms。

3〉另外,该IGT线的低电平信号必须维持最少100ms。

4〉在IGT线信号转换区间必须保证 VBATT+ 的电压不能低于3.0V,否则模块不能被激活。  

 

 

二、单片机控制西门子TC35短信设备方法

  介绍一种采用GSM的短信功能,可以使某些控制达到“零距离"。由于短信息的费用低廉,可以取代传统的无线遥控。现在详细介绍一种采用单片机(MCS51系列)控制TC35(廉价的GSM模块)发送、接收GSM短信的方法。

1、  TC35的控制简介

    TC35是Siemeils公司推出的新-代无线通信GSM模块。自带RS232通讯接口,可以方便地与PC机、单片机连机通讯。可以快速、安全、可靠地实现系统方案中的数据、语音传输、短消息服务(Short Message Service)和传真。TC35模块的工作电压为3.3—5.5V,可以工作在900MHz和1800MHz两个频段,所在频段功耗分别为2w(900M)和1w(1800M)。

    模块有AT命令集接口,支持文本和PDU模式的短消息、第三组的二类传真、以及2.4k,4.8k,9.6k的非透明模式。此外,该模块还具有电话簿功能、多方通话,漫游检测功能,常用工作模式有省电模式、IDLE、TALK等模式。通过独特的40引脚的ZIF连接器,实现电源连接、指令、数据、语音信号、及控制信号的双向传输。通过ZIF连接器及50Ω天线连接器,可分别连接SIM卡支架和天线。

    TC35模块主要由GSM基带处理器、GSM射频模块、供电模块(ASIC)、闪存、ZIF连接器、天线接口六部分组成。作为TC35的核心,基带处理器主要处理GSM终端内的语音、数据信号,并涵盖了蜂窝射频设备中的所有的模拟和数字功能。在不需要额外硬件电路的前提下,可支持FR、HR和EFR语音信道编码。其它功能介绍可参见有关资料!

2、AT指令的介绍

TC35模块的通讯全部采用AT+xxx完成。基本的AT指令见:/html/zonghejishu/2007/0514/2078.html

3、  TC35的连机方法

    任何一个TC35模块首次使用时,必须要测试其工作是否正常,由于其自带RS232接口,所以我们可以用PC机的串口调试软件进行调试。

1、启动串口调试软件(见界面)

 

  串口调试软件有许多,可以使用任意一款软件,也可以使用WINDOWS自带的“超级终端"。设置波特率19.2k,这是TC35的默认波特率,首次连机可以从2400~57.6k不断测试,直到TC35有应答。

2、发送“AT"’

  AT 回车

3、改变波特率“AT+IPS=XXXX"

  TC35的默认波特率是19.2k,实际使用时,可以改成9600或38.4K,方法如下:

  AT+IPR=9600 回车

4、短信模式的设置

  (GSM模块的短信模式有2种。第1种是:TEXT模式;第2种是:PDU模式。PDU模式可以采用unicode编码发送英文、汉字。但合成PDU码比较复杂,而TEXT模式只能发送英文,但无须编码。实际使用可以采用TEXT模式。

设置如下:

    AT+CMFG=1 回车

5、短信模式简介

    SMS是由Etsi所制定的一个规范(GSM 03.40和GSM 03.38)。当使用7-bits编码的时候它可以发送最多160个字符;8-bit编码(最多140个字符)。通常无法直接通过手机显示;通常被用来作为数据消息,例如:smart messaging中的图片和铃声和OTA WAP设置。16-bit信息(最多70个字符)被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。一个以class 0开头的16-bit的文本信息将在某些手机上作为Flash SMS显示(闪烁的SMS和警告SMS)。

    有两种方式来发送和接收SMS信息:使用文本模式或者使用PDU(protocol description unit)模式。文本模式(可能某些手机不支持)实际上也是一种PDU编码的一种表现形式。在显示SMS信息,可能使用不同的字符集和不同的编码方式。

6、短信读取方法

    AT+CMGR=X回车

如果有短信息,TC35回应:

AT+CMGR=1

+CMGR:"REC UNREAD","13307496548",,"04/08/17,22:24:32+02

testOK

OK

短信息分析:

“test OK"就是短信息内容。

短信息的存储容量与Ic卡有关,序号从1-N。

REC UNREAD":代表短信息未读过。

REC READ"    :已读过。

13307496548"  :接收的手机号码。

04/08/17,22:24:32+02":短信息发送的时间。

无短信息,TC35回应:

AT+CMGR=3

+CMGR:0,,0

7、短信的删除方法

    AT+CMGD=1回车

8、短信的发送方法

    短信息的发送分成两步:

    1:发送接收的手机号码,等待应答:“>"

    AT+CMGS="13307496548"回车(目的地址)

    TC35回应:

    AT+CMGS="13307496548"  >

    2:  输入短信息的内容(只能是英文):Test 回车

4、单片机控制TC35的方法

    上面介绍了用PC机控制TC35的方法,我们只需将PC机输出的控制命令转化成单片机输出的指令即可。

1、硬件连接

  电路见下图只需设计一个TTL转RS232电平电路,连接到MCU的UART口,另一端直接连接到TC35。

 

2、指令输出的方法

    单片机串口设置成模式1(9600,N,8,1),依次将AT+xxx以ASCII码形式输出到UART口;接收TC35的数据采用中断方式。这里给出详细的程序清单(Keil C51),不介绍编程的方法。程序见下:

//AT指令的定义

char code AT_Tc35[]="AT+";    //连机

char code Bps_Tc35[]="IPR=38400";  //波特率

char code Text_Tc35[]="CMGF=1";    //文本模式

char code Read_Tc35[]="CMGR=";  //读信息

char code Erase_Tc35[]="CMGD=";  //删除信息

char code Send_Tc35[]="CMGS=";  //发送信息

char code Creg_Tc35[]="CREG?";    //注册

//模式设置

void UART_Init(void)

{

SCON=0x50;    //01010000b=>1模式scon,#11011000b;

ES=l;

}

//发送-个ASCII

void SendASC(unsigned char ASC)

{

bit es;

es=ES;

ES=0;//关闭中断

TI=0;

SBUF=ASC;

while(!TI);

TI=0;

ES=es;

)

//发送命令到TC35

void SendToTc35(unsigned char* p,unsigned char Long)

{

while(Long--)

{

    SendASC(*p++);

  }

}

//  通讯中断接收程序

void Rs485_Do(void) interrupt 4 using 1

  {

  if(RI==l)

  {

    RI="0";

    RsBuq[RsPoint++]=SBUF;

    if fRsPoint>=sizeof(RsBuf))

    {

    RsPoint="0";//FlagRs485=0;

    }  //数据处理

  }

 }

// 发送AT连机命令

char code AT_Code[]="OK";

void Send_AT(void)

{

unsigned char *p;

while(1)

{

    ClrRsBuf(RsBuf,sizeof(RsBuf));

    SendToTc35(AT_Tc35,2);    //"AT"

    SendASC(OVER);

/|

p=strstr(RsBuf,ERROR);

if(P!=NULL)

{

    Send_AT();return 0;

p=strstr(RsBuf,Ask_No);//无信息

if(p!=NULL)return 0;

p=strstr(RsBuf,Ask_Tc35);//20个字节后是MSG

if(p==NULL) return 0;

p=p+21;

for(i=0;i< P>

{

  Buf[i]=*p++;

}

if(EraseMsg(index)==0) return 0;

p=strcpy(RsBuf,Buf);  //放回RsBuf

 return 1;

)

//发送短信息

char code SK[]=">";

void SendMsgStart(void)

{

unsigned char *p,i=10;

SendToTc35(AT_Tc35,3);    //"AT+"

SendToTc35(Send_Tc35,sizeof(Send_Tc35)-1);//"IPR=19200"

SendASC(YinHao);

SendToTc35(Mp1.Hand,sizeof(Mp1.Hand));    //"AT+"

SendASC(YinHao);

SendASC(OVER);

ES=1;

while(i--)

{

  Delay(100);  //Get">"

  p="strstr"(RsBuf,SK);//">"

  if(p!=NULL)

  {

    ClrRsBuf(RsBuf,sizeof(RsBuf));

    Delay(150);  //Get">"

    break;

}

}

二、发送短信息和接收短信息(TEXT模式)

(以下内容来自网络,作者声明可以自由转载,但必须注明出处)  

适合人群:首次接触G网模块人员

    凡是利用GSM模块二次开发的,不管是用来做公话,还是GPRS通信,其中短消息基本都要使用的。本文大致介绍一下短消息相关的AT命令使用方法。

详细的AT指令说明,可以参考 07.05,或者西门子MC35I的AT手册,西门子手册感觉还是很不错的。

    由于本文表达的错误给您带来的物资损失和精神损伤,本人概不负责。

1、    短消息的格式

我所见到的模块短消息基本都提供2种格式,TEXT和PDU。文本模式相对来说比较简单,特别适合传输那些字符什么的,对于老外来说,基本就发26个字母,简直太方便了。PDU模式需要进行编码,目前的汉字传输好多都采用PDU模式。由于本人对PDU和怎么发汉字基本一窍不通,这段就暂时忽略了。

一般模块默认的都是PDU模式,你可以使用如下命令切换到TEXT模式:

AT+CMGF=1

如果想再切换到PDU模式,使用:

AT+CMGF=0

即可,以下短消息发送&读取都采用TEXT模式,因为PDU我不是很懂。

2、    怎样给我发送一条短消息?

现在你手里有了G网模块,但首先你要确保如下操作已经完成:

1)    模块上电并且AT命令同你的PC串口通信顺畅。

2)    SIM卡没有欠费,并且已经登陆GSM网络(可以使用AT+CREG?查询,如果返回1或者5表示正常)。

3)     AT+CMGF=1设置完毕。

有了以上的过程,那么你就可以给我发信息了,你要使用的AT命令是:AT+CMGS。

我的手机号是:13766832435(真实号码)。

1)    从串口输入:AT+CMGS="13766832435" 然后按回车键。

2)    这个时候你可以看到有个大于号 ‘>’弹出,提示你可以输入消息的内容了。

假如你想发送“hello world”,直接在’>’后面输入即可,输入完了后按’CTRL^Z”,稍微等一下,你的信息也就发出去了,如果编程好像是0x1A(记不清了,你可以查下ASCII表)。

全部过程如下:

AT+CMGS="13766832435"

hello world

+CMGS: 199

OK

你需要一直等到OK返回,才能确定是成功发出,中间的那个东西可以先不管。如果你输入 “ hello world”后,但又不想发了,按ESC可以取消发送,就不再介绍。 

 

附: ASCII表

 

 

3、    怎样打开传送回报?

手机上我们都可以找到一个菜单,可以选择传送回报的功能,也就是说别人收到你的信息后,短消息中心会给你一个确认信息,假如是发给心上人,这个功能尤其重要。

对于模块我们没有菜单可选,但我们有 AT+CSMP 这样一条AT命令,在TEXT模式下,对于手机上的那个选项可以通过这条命令实现,这个命令的具体含义我搞得不是很清楚,也懒得去研究,曾经有个人告诉我按照下面设置后,传送回报就可以回来:

AT+CSMP=33

   但即使你这样设置后,别人收到后,传送回报你可能还是看不到,你还需要设置另外一条AT命令:“AT+CNMI=2,1,,1”,下面就会介绍到这个命令的用法。

   对于PDU模式,控制传送回报有很大差别。

4、    AT+CNMI的用法。

到目前为止,你至少还有如下的疑惑:

1)    来了新短信,我怎么知道?

2)    我担心时间长了SIM卡会写坏,FLASH也可能写坏,或者我单片机很强短信不需要存储,就要模块直接给我,我该怎么办?

3)    我要看传送回报!

  上面一切疑虑都可以从AT+CNMI中得到答案。

我手头上有个西门子MC35的手册,CNMI的几个参数如下:

AT+CNMI =[][,][,][,][,]

方括号表示参数是可选的,简要说明下:

  用来选择来了新短信,提示信息是否需要从串口直接打出,一般取2。

    用来选择新短信的提示方式,取1的话,就比较简单,比如“+CMTI: "SM",3”,告诉你新短信存在SIM卡里,序号是3,稍后告诉你怎样读取。取2的话,来了新短信就会不作存储,直接从串口显示出来。

   用来选择传送回报,如果想看回报的话,一般取1(同AT+CSMP结合使用)。

其他参数不作说明。

这里提供3组参数可以供你使用:

1)    AT+CNMI=2,1,,1

这组参数可以提供新信息提示,以及传送回报的功能

2)    AT+CNMI=2,2,,1

这组参数来了新信息直接显示到串口,不作存储,仍然打开传送回报。

3)    AT+CNMI=2,1

这组参数,一般的模块都会有新信息提示,不会打开回报功能(打开可能会干扰单片机处理)     以上仅供参考,不同厂家模块实现形式以及支持参数可能会有不同,需要实际测试。

5、    怎样读取SIM卡或者手机内部的信息?

比如我们收到这样的信息:“+CMTI: "SM",3”,知道来了新信息,并且存储在SIM卡,第3个位置区。我们怎么去读取呢?

   比较EASY,用AT+CMGR来读取,如下:

AT+CMGR=3,回车后,即可看到短信内容,比较简单,这里就不举例了。

还有一个用来读取短信的命令,AT+CMGL,可以列出手机内部的全部AT命令,

比如:

AT+CMGL=”ALL”,回车后可以返回当前存储区的所有短信,结果自己实践即可。

+CMGL还有另外3个参数,可以参考手册,并且PDU还有些不同,参数使用的是数字。

6、    怎样选择存储区?

现在的模块一般都提供2-3个存储区,SIM卡,手机(FLASH), SIM卡+FLASH。

我们可以使用 AT+CPMS?进行选择,关于CPMS的3个参数,这里简要介绍一下,比较容易搞混,并不是表示SIM卡或者手机分别有3个存储区。

设置命令如下:AT+CPMS=[,][,]]

 Memory to be used when listing, reading and deleting messages:

 Memory to be used when writing and sending messages:

 Received messages will be placed to this storage if routing to TE is not

set. 

上面是我为了省事直接从西门子手册COPY的,需要仔细理解。组合着多试几次就知道了。

7、    怎样删除一条短信?

使用AT+CMGD,比如:

AT+CMGD=1 将删除内部的第一条信息(注意模块返回OK都是删除成功,有些模块会返回ERROR,其实表示当前这个位置没有短信息)。

AT+CMGD还有个全删的功能,比如:

AT+CMGD=1,4 将删除存储区内部的全部短信息。(注意第二个参数还有3个,可以看手册,并且并不是所有厂家模块都支持全删)

到这为此吧,已经弄了2个小时了,我要去睡觉了,明天还要起早上班。

GPRS外置Modem一般仅是GPRS模块+SIM卡+电源变换+RS232接口及简单的控制电路组成,嵌入式应用最好直接用模块,桌面应用可以考虑采用成品外“猫”,原装进口价也就1千多,不少国内小公司自己做的仅600-800块,但考虑到一般桌面用量都不大,还是用原装的较好。俺老汉也曾推出过GSM/GPRS外猫,但对客户还是一直推荐去正规代理处拿原装货。成品外猫分带协议栈和不带协议栈的两类,由其内封模块的型号决定,外挂至PC时,因操作系统已包含完整的协议栈,故Modem是否有协议栈已并不重要,甚至对于自带协议栈的型号还应将其“屏蔽”,采用“直通”模式。

    嵌入式应用选模块时,若仅使用SMS及语音的话,西门子的TC35i是不错的选择,若使用GPRS数据通讯的话,最好选带协议栈的模块,Simcom的SIM100是目前最佳性价比的选择,低端则可选BenQ的模块如M22,高端可选西门子的TC45,另外Motorola、索爱、Wavecom等也有同类产品,但价格比Simcom的高。中兴通讯可以提供目前唯一真正国产的GSM/GPRS/CDMA模块,但技术支持和业界的口碑看来还有待改进。不带协议栈的GPRS模块可以选西门子的MC35i,但现在随着自带协议栈的型号越来越多且价格渐与普通GPRS模块趋同,故已变得无多少实用价值了,采用带协议栈的嵌入式操作系统的应用中最适合采用此类模块。

    补充关于品牌的选择:

    工业及车载的高可靠应用西门子是第一选择,Motorola和索爱的也不错,但其不如前者的供货及技术支持好。一般工业及车载应用但对成本较敏感的话,可以用Simcom或Wavecom的。普通环境及成本高度敏感的,建议用BenQ的。 

 

 

附:论文资料   关于PDU格式的短信息发送和接收

摘要:本文介绍了GSM通信模块TC35的中文短消息收发格式,然后举例解释了实际操作过程,最后介绍与微处理器的接口方法。

关键词:TC35通信模块  短消息

引言

    由于中文短消息具有内容直观,传送距离远,用户无需建造信号中转站,成本相对低廉,因此在控制领域的应用日益广泛。SIEMENS的TC35型GSM通信模块在国内应用比较广泛,然而很多技术人员在刚开始使用时,有许多不甚清楚的地方,甚至无从下手,因此有必要把有关的基础知识和经验写出来供大家参考。

短消息的格式及解释

    由于参考资料几乎全是英文资料,因此本文亦写出英文缩写,以方便读者阅读其他材料。

    短消息接收格式如下:

  

    格式中英文缩写的解释如下:

    SCA  Service Center Address  短消息服务中心地址,1-12位数字

    PDU-type  Protocol Data Unit Type  协议数据单元类型,1位数字

    MR Message Reference   由手机设置的短消息递交帧的递交数字(0-255),1位数字

    OA  Originator Address    发送方地址,即发送的手机号码,2-12位数字

    DA  Destination Address   接收方地址,即接收的手机号码,2-12位数字

    PID  Protocol Identifier    协议识别符,1位数字

    DCS  Data Coding Scheme  数据译码方案,1位数字

    SCTS  Service Center Time Stamp  服务中心收到短消息的时间,7位数字

    VP  Validity Period  短消息发送的合法期限,0、1或7位数字

    UDL  User Data Length  用户数据长度,1位数字

    UD  User Data 用户数据,0-140位数字

    RP  Reply Path  短消息回复的路径

    UDHI  User Data Header Indicator  用户数据区包含的报头

    SRI  Status Report Indication  这个参数指明移动设备是否需要状态报告

    SRR  Status Report Request  这个参数指明移动站是否需要一个状态报告

    VPF  Validity Period Format  指示VP区是否存在

    MMS  More Message to Send  指示是否有更多的消息将被发送

    RD  Reject Duplicate  拒绝重复

    MTI  Message Type  Indicator  消息类型指示,00-消息接收,01-消息发送

短消息的收发举例

    对TC35的操作均采用AT指令。指令内容均为ASCII码,短消息的中文编码方式为UNICODE码。

一.短消息的发送

     例如要发送字符“宁波大学”到手机13766832435(3167862334F5)中,则首先把字符转换成UNICODE代码,转换软件可以采用Chinese 2 Unicode convertor或GBCCovert.exe等,可在互联网中下载。经转换,“宁波大学”的Unicode代码是5B81 6CE2 5927 5B66。则TC35的指令是

    AT+CMGF=0  设置TC35为PDU格式

    AT+CMGS=023   发送短消息指令,023为本短消息发送字符总长度(可能不包括短信中心部分,本人并未证实)

    0011000D91683167862334F5000801085B816CE259275B66  这是发送内容

    代码意义解释如下:

    00  SCA,以00写入,意味着使用默认的服务中心地址,该服务中心地址用AT+CSCA指令写入

    11  PDU类型

    00  MR 消息参考

    0D  LEN 接收方号码长度

    91  TYPE  91表示号码是国际代码,81是国内代码

    683167862334F5  DA 接收方号码8613766832435,注意号码的每个字节是高低位互换的,末尾号码是半字节的话,另外半字节用F替代。

    00  PID 协议识别

    08  DCS 数据编码结构

    01  VP  短消息有效发送时间,01表示10分钟,具体见参考文献1第11页

    08  UDL  用户数据长度

    5B816CE259275B66  UD 用户数据,即字符“宁波大学”

    如果发送成功,TC35回送以下信息

    +CMGS: X  这里的X是个数字(短信发送条数)

    OK

    OK表示发送成功,否则在一段时间的尝试后返回ERROR。

注意:

1.如果发送短消息指令中指明的总长度和实际发送的短消息长度不符的话,TC35将拒绝发送。

    2.上述指令的代码是十六进制代码,发送到TC35的短消息代码是ASCII码,因此例如上述发送的代码是0011000D91…. 送到TC35代码应该是30 30 31 31 30 30 30 44 39 31

3.所有传送到TC35的指令必须以ASCII代码0D 0A结尾,表示向TC35传送的一条指令结束。因此在实际发送的操作中应发送的代码如下:

AT+CMGS=023  发送41 54 2B 43 4D 47 53 3D 30 32 33 0D 0A

    0011000D91…..  发送30 30 31 31 30 30 30 44 39 31……….0D 0A

    同样,发送AT+CMGF=0指令的代码是41 54 2B 43 4D 47 46 3D 30 0D 0A

二.短消息的接收

    例如接收到的短消息代码是

    0891683110300705F0840D91683130643065F7000830101311401300026D4B8BD5

    我们可这样判读

    08 LEN SCA字节长度(长度值包括代码类别的字节长度)

    91 type of  Number  号码类型(国内/国际)

    68 31 10 30 07 05 F0  SCA 服务中心号码是8613010370500(对末尾的半字节空位以F替代)

    84  PDU-type  PDU类型

    0D  Len 发信方地址长度

    91  PDU-type协议类别

    683130643065F7 OA 发信方号码是8613034603567(对末尾的半字节空位以F替代)

    00  PID 协议识别

    08  DCS数据译码方案

    30101311401300 SCTS 信息中心接收到数据的时间是2003年1月31日11点4分31秒,时间区为00.

    04  UDL 数据长度为4个字节

    6D4B8BD5  UD 用户数据,Unicode码(字符“测试”)

TC35与微处理器的硬件接口方法

    TC35与微处理器只要连接好串口的TXD、RXD通信线,IGT启动脚,外接SIM卡以及电源即可正常工作。连接方法详见参考文献3。

    TC35的串行口为自适应波特率,范围是1200-115200bps,但是笔者推荐使用9600,N,1格式。

    TC35的串行接口电平是0-3.3V,然而我们常用的微处理器接口电平为0-5V,因此必须做电平转换。实践证明,若不做电平转换,则在大批量生产中产品质量不稳定。TC35与微处理器接口连接完成后,建议首先用ATI指令(显示产品识别信息)对串口连接进行测试,该指令返回内容如下:

    SIEMENS

    TC35

    REVISION x.yy  (x.yy是版本号)

注意:ATI指令必须以0D 0A结尾。

    如果用户对AT指令不甚明了,建议首先采用PC机调试TC35,因为AT指令的细节还是有不少的。连接方法是PC机串口经MAX232等电平转换电路与TC35连接,调试软件采用串口调试助手等软件即可。

    TC35的供电范围是3.3V-5.5V,电源容量要求2A。在实践中发现,电源容量偏小或电源纹波过大,都会使TC35工作不稳定。

    TC35的启动是通过拉低IGT脚100毫秒以上即可。

 

为了方便大家进一步开发和拓展本模块,我为大家附上部分AT指令集

  附:

 

一、一般命令

 

AT+CGMI

 

给出模块厂商的标识。 SONY ERICSSON

 

AT+CGMM

 

获得模块标识。这个命令用来得到支持的频带(GSM900,DCS1800或PCS1900)。当模块有多频带时,回应可能是不同频带的结合。 AAB-1021011-CN

 

AT+CGMR

 

获得改订的软件版本。 R6C005      CXC125582CHINA1

 

AT+CGSN

 

获得GSM模块的IMEI(国际移动设备标识)序列号。351254004238596

 

AT+CSCS

 

选择TE特征设定。这个命令报告TE用的是哪个状态设定上的ME。ME于是可以转换每一个输入的或显示的字母。这个是用来发送、读取或者撰写短信。

AT+CSCS?

+CSCS: "GSM"

 

AT+WPCS

 

设定电话簿状态。这个特殊的命令报告通过TE电话簿所用的状态的ME。ME于是可以转换每一个输入的或者显示的字符串字母。这个用来读或者写电话簿的入口。

NONE

 

AT+CIMI

 

获得IMSI。这命令用来读取或者识别SIM卡的IMSI(国际移动签署者标识)。在读取IMSI之前应该先输入PIN(如果需要PIN的话)。

460001711603161

 

AT+CCID

 

获得SIM卡的标识。这个命令使模块读取SIM卡上的EF-CCID文件。

NONE

 

AT+GCAP

 

获得能力表。(支持的功能)+GCAP: +FCLASS, +CGSM, +DS

 

A/

 

重复上次命令。只有A/命令不能重复。这命令重复前一个执行的命令。

 

AT+CPOF

 

关机。这个特殊的命令停止GSM软件堆栈和硬件层。命令AT+CFUN=0的功能与+CPOF相同。

 

AT+CFUN

 

设定电话机能。这个命令选择移动站点的机能水平。

 

AT+CPAS

 

返回移动设备的活动状态。

 

AT+CMEE

 

报告移动设备的错误。这个命令决定允许或不允许用结果码“+CMEERROR:”或者“+CMSERROR:”代替简单的“ERROR”。

 

AT+CKPD

 

小键盘控制。仿真ME小键盘执行命令。

 

AT+CCLK

 

时钟管理。这个命令用来设置或者获得ME真实时钟的当前日期和时间。

AT+CCLK?

+CCLK: "04/08/12,17:00:42+32"

 

AT+CALA

 

警报管理。这个命令用来设定在ME中的警报日期/时间。(闹铃)

AT+CALA=?

+CALA: (1-2),(),(),(13),()

 

AT+CRMP

 

铃声旋律播放。这个命令在模块的蜂鸣器上播放一段旋律。有两种旋律可用:到来语音、数据或传真呼叫旋律和到来短信声音。

 

AT+CRSL

 

设定或获得到来的电话铃声的声音级别。NONE

 

二、呼叫控制命令

 

ATD

 

拨号命令。这个命令用来设置通话、数据或传真呼叫。

 

ATH

 

挂机命令。

 

ATA

 

接电话。

 

AT+CEER

 

扩展错误报告。这个命令给出当上一次通话设置失败后中断通话的原因。

 

AT+VTD

 

给用户提供应用GSM网络发送DTMF(双音多频)双音频。这个命令用来定义双音频的长度(默认值是300毫秒)。

 

AT+VTS

 

给用户提供应用GSM网络发送DTMF双音频。这个命令允许传送双音频。

 

ATDL

 

重拨上次电话号码。

 

AT%Dn

 

数据终端就绪(DTR)时自动拨号。

 

ATS0

 

自动应答。

 

AT+CICB

 

来电信差。

 

AT+CSNS

 

单一编号方案。

 

AT+VGR

AT+VGT

 

增益控制。这个命令应用于调节喇叭的接收增益和麦克风的传输增益。

 

AT+CMUT

 

麦克风静音控制。

 

AT+SPEAKER

 

喇叭/麦克风选择。这个特殊命令用来选择喇叭和麦克风。

 

AT+ECHO

 

回音取消。

 

AT+SIDET

 

侧音修正。

 

AT+VIP

 

初始化声音参数。

 

AT+DUI

 

用附加的用户信息拨号。

 

AT+HUI

 

用附加的用户信息挂机。

 

AT+RUI

 

接收附加用户信息。

 

三、网络服务命令

 

AT+CSQ

 

信号质量。+CSQ: 17,99

 

AT+COPS

 

服务商选择。

AT+COPS?

+COPS: 0,0,"China Mobile"

 

AT+CREG

 

网络注册。获得手机的注册状态。

AT+CREG?

+CREG: 0,1

 

AT+WOPN

 

读取操作员名字。NONE

 

AT+CPOL

 

优先操作员列表。NONE

 

四、安全命令

 

AT+CPIN

 

输入PIN。

 

AT+CPIN2

 

输入PIN2。

 

AT+CPINC

 

PIN的剩余的尝试号码。

 

AT+CLCK

 

设备锁。

 

AT+CPWD

 

改变密码。

 

五、电话簿命令

 

AT+CPBS

 

选择电话簿记忆存储。

AT+CPBS?

+CPBS: "SM"

 

AT+CPBR

 

读取电话簿表目。

 

 

AT+CPBF

 

查找电话簿表目。

 

AT+CPBW

 

写电话簿表目。

 

AT+CPBP

 

电话簿电话查询。

 

AT+CPBN

 

电话簿移动动作。这个特殊命令使电话簿中的条目前移或后移(按字母顺序)

 

AT+CNUM

 

签署者号码。

 

AT+WAIP

 

防止在下一次重起时初始化所有的电话簿。

 

AT+WDCP

 

删除呼叫电话号码。NONE

 

AT+CSVM

 

设置语音邮件号码。

 

六、短消息命令

 

AT+CSMS

 

选择消息服务。支持的服务有GSM-MO、SMS-MT、SMS-CB。

 

AT+CNMA

 

新信息确认应答。

 

AT+CPMS

 

优先信息存储。这个命令定义用来读写信息的存储区域。

 

AT+CMGF

 

优先信息格式。执行格式有TEXT方式和PDU方式。

 

AT+CSAS

 

保存设置。保存+CSAS和+CSMP的参数。

 

AT+CRES

 

恢复设置。

 

AT+CSDH

 

显示文本方式的参数。

 

AT+CNMI

 

新信息指示。这个命令选择如何从网络上接收短信息。

 

AT+CMGR

 

读短信。信息从+CPMS命令设定的存储器读取。

 

AT+CMGL

 

列出存储的信息。

 

AT+CMGS

 

发送信息。

 

AT+CMGW

 

写短信息并存储。

 

AT+CMSS

 

从存储器中发送信息。

 

AT+CSMP

 

设置文本模式的参数。

 

AT+CMGD

 

删除短信息。删除一个或多个短信息。

 

AT+CSCA

 

短信服务中心地址。

 

AT+CSCB

 

选择单元广播信息类型。

 

AT+WCBM

 

单元广播信息标识。

 

AT+WMSC

 

信息状态(是否读过、是否发送等等)修正。

 

AT+WMGO

 

信息覆盖写入。

 

AT+WUSS

 

不改变SMS状态。在执行+CMGR或+CMGL后仍保持UNREAD。

 

七、追加服务命令

 

AT+CCFC

 

呼叫继续。

 

AT+CLCK

 

呼叫禁止。

 

AT+CPWD

 

改变追加服务密码。

 

AT+CCWA

 

呼叫等待。

 

AT+CLIR

 

呼叫线确认限制。

 

AT+CLIP

 

呼叫线确认陈述。

 

AT+COLP

 

联络线确认陈述。

 

AT+CAOC

 

费用报告。

 

AT+CACM

 

累计呼叫计量。

 

AT+CAMM

 

累计呼叫计量最大值。

 

AT+CPUC

 

单价和货币表。

 

AT+CHLD

 

呼叫相关的追加服务。

 

AT+CLCC

 

列出当前的呼叫。

 

AT+CSSN

 

追加服务通知。

 

AT+CUSD

 

无组织的追加服务数据。

 

AT+CCUG

 

关闭的用户组。

 

八、数据命令

 

AT+CBST

 

信差类型选择。

 

AT+FCLASS

 

选择模式。这个命令把模块设置成数据或传真操作的特殊模式。

 

AT+CR

 

服务报告控制。这个命令允许更为详细的服务报告。

 

AT+CRC

 

划分的结果代码。这个命令在呼叫到来时允许更为详细的铃声指示。

 

AT+ILRR

 

本地DTE-DCE速率报告。

 

AT+CRLP

 

无线电通信线路协议参数。

 

AT+DOPT

 

其他无线电通信线路参数。

 

AT%C

 

数据压缩选择。

 

AT+DS

 

是否允许V42二度数据压缩。

 

AT+DR

 

是否报告V42二度数据压缩。

 

AT\N

 

数据纠错选择。

 

九、传真命令

 

AT+FTM

 

传送速率。

 

AT+FRM

 

接收速率

 

AT+FTH

 

用HDLC协议设置传真传送速率。

 

AT+FRH

 

用HDLC协议设置传真接收速率。

 

AT+FTS

 

停止特定时期的传送并等待。

 

AT+FRS

 

接收沉默。

 

十、第二类传真命令

 

AT+FDT

 

传送数据。

 

AT+FDR

 

接收数据。

 

AT+FET

 

传送页标点。

 

AT+FPTS

 

页转换状态参数。

 

AT+FK

 

终止会议。

 

AT+FBOR

 

页转换字节顺序。

 

AT+FBUF

 

缓冲大小报告。

 

AT+FCQ

 

控制拷贝质量检验。

 

AT+FCR

 

控制接收传真的能力。

 

AT+FDIS

 

当前会议参数。

 

AT+FDCC

 

设置DCE功能参数。

 

AT+FLID

 

定义本地ID串。

 

AT+FPHCTO

 

页转换超时参数。

 

十一、V24-V25命令

 

AT+IPR

 

确定DTE速率。

 

AT+ICF

 

确定DTE-DCE特征结构。

 

AT+IFC

 

控制DTE-DCE本地流量。

 

AT&C

 

设置DCD(数据携带检测)信号。

 

AT&D

 

设置DTR(数据终端就绪)信号。

 

AT&S

 

设置DST(数据设置就绪)信号。

 

ATO

 

回到联机模式。

 

ATQ

 

决定手机是否发送结果代码。

 

ATV

 

决定DCE响应格式。

 

ATZ

 

恢复为缺省设置。

 

AT&W

 

保存设置。

 

AT&T

 

自动测试。

 

ATE

 

决定是否回显字符。

 

AT&F

 

回到出厂时的设定。

 

AT&V

 

显示模块设置情况。

 

ATI

 

要求确认信息。这命令使GSM模块传送一行或多行特定的信息文字。

 

AT+WMUX

 

数据/命令多路复用。

 

十二、特殊AT命令

 

AT+CCED

 

电池环境描述。

 

AT+CCED

 

自动RxLev指示。

 

AT+WIND

 

一般指示。

 

AT+ALEA

 

在ME和MSC之间的数据密码模式。

 

AT+CRYPT

 

数据密码模式。

 

AT+EXPKEY

 

键管理。

 

AT+CPLMN

 

在PLMN上的信息。

 

AT+ADC

 

模拟数字转换度量。

 

AT+CMER

 

移动设备事件报告。这个命令决定是否允许在键按下时是否主动发送结果代码。

 

AT+WLPR

 

读取语言偏好。

 

AT+WLPW

 

写语言偏好。

 

AT+WIOR

 

读取GPIO值。

 

AT+WIOW

 

写GPIO值。

 

AT+WIOM

 

输入/输出管理。

 

AT+WAC

 

忽略命令。这个特殊命令允许忽略SMS、SS和可用的PLMN。

 

AT+WTONE

 

播放旋律。

 

AT+WDTMF

 

播放DTMF旋律。

 

AT+WDWL

 

下载模式。

 

AT+WVR

 

配置信差的声音速率。

 

AT+WDR

 

配置数据速率。

 

AT+WHWV

 

显示硬件的版本。

 

AT+WDOP

 

显示产品的出厂日期。

 

AT+WSVG

 

声音增益选择。

 

AT+WSTR

 

返回指定状态的状态。

 

AT+WSCAN

 

扫描。

 

AT+WRIM

 

设置或返回铃声指示模式。

 

AT+W32K

 

是否允许32kHz掉电方式。

 

AT+WCDM

 

改变缺省旋律。

 

AT+WSSW

 

显示内部软件版本。

 

AT+WCCS

 

编辑或显示订制性质设置表。

 

AT+WLCK

 

允许在特定的操作符上个性化ME。

 

AT+CPHS

 

设置CPHS命令。

 

AT+WBCM

 

电池充电管理。

 

AT+WFM

 

特性管理。是否允许模块的某些特性,如带宽模式、SIM卡电压等。

 

AT+WCFM

 

商业特性管理。是否允许Wavecom特殊特性。

 

AT+WMIR

 

允许从当前存储的参数值创建定制的存储镜像。

 

AT+WCDP

 

改变旋律的缺省播放器。

 

AT+WMBN

 

设置SIM卡中的不同邮箱号码。

 

十三、SIM卡工具箱命令

 

AT+STSF

 

配置工具箱实用程序。

 

AT+STIN

 

工具箱指示。

 

AT+STGI

 

获得从SIM卡发来的预期命令的信息。

 

AT+STCR

 

主动提供的结果:工具箱控制反应。

 

AT+STGR

 

给出响应。允许程序或用户从主菜单上选择项目,或响应某些命令。

 

 

 

ASCI码指令

 

功能

 

手机回答

 

AT回车

 

握手

 

OK

 

ATE

 

简化显示

 

OK

 

AT+CLCC

 

来电显示

 

OK      来电话时串口输出:RING

 

AT+CLCC

 

 

 

+CLCC: 1,1,4,0,0,"05133082087",129

 

AT+CNMI=1,1,2

 

设置收到短消息提示

 

OK

+CMTI:“SM”,4

4表示手机内短消息数量

 

ATD05133082087;

 

拨打05133082087电话

 

AT+CMGL=0

 

读取电话上全部未读过的SMS消息

 

AT+CMGL=2

 

列出已有的短信息

 

AT+CMGL=4

 

读取全部SMS消息

 

AT+CMGR=X回车

 

读取第X条短消息

 

AT+CMGF=0回车

 

用PDU格式

 

 

 

AT+CMGD=X回车

 

删除第X条短消息

 

 

 

 

 

AT+CLIP=1,1

 

来电自动显示的指令

 

ERROR

 

来电话!

 

 

 

RING   +CLIP: 13306285091,129

 

AT+CMGS=6

 

发送短消息的字节数

 

 

0891683108503105F011000B8131032

65890F10008A90C665A4E0A597D00

3100320033

 

1A   结束符号

十六进制大写

 

+CMGS: 45

OK

第45条短信发送成功!!!!!!

 

AT+CMGR=1

 

读取第1条短信

 

0:未读过,新的短信息

1:已读过

第二个1表示已读

150 表示PDU数据的长度

 

1 表示读取第几条短信

 

+CMGR: 1,1,,150

       

 

 

 

GSM07.05

 

Function(功能)

 

ATE0

 

RESET

 

AT+CSMS

 

选择短信息服务

 

AT+CPMS

 

选择短信息内存

 

AT+CMGF

 

选择短信息格式

 

AT+CSCA

 

短信息中心地址

 

AT+CNMI

 

显示新收到的短信息

 

AT+CMGR

 

读短信息

 

AT+CMGS

 

发送短信息

 

AT+CMGL

 

列出SIM卡中短信息

 

AT+CMSS

 

从SIM内存中发短信息

 

AT+CMGW

 

向SIM内存中写入待发短信息

 

AT+CMGD

 

删除SIM内存中的短信息

 

AT+CSCB

 

选择蜂窝广播信息