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 ≤ 2 A @ GSM天线回波损耗(return loss)≥ 6 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 @ I = 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,否则模块不能被激活。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
二、单片机控制GSM模块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、启动串口调试软件(见界面)
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
串口调试软件有许多,可以使用任意一款软件,也可以使用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);
//************等待应答“ok"
ES="1"; //必须中断
Delay(50);
P="strstr"(RsBuf,AT_Code);
if(p!=NULL) break;
}
)
//发送bps连机命令
void Send_BPS(void)
{
SendToTc35(AT_Tc35,3); //"AT+"
SendToTc35(Bps_Tc35,sizeof(Bps_Tc35)-1);//"IPR=19200"
SendASC(OVER);
}
//设置文本
void SetText(void)
{
SendToTc35(AT_Tc35,3); //"AT+"
SendToTc35(Text_tc35,sizeof(Text_tc35)-1);//"IPR=19200"
SendASC(OVER);
Delay(100):
//删除短信息
unsigned char EraseMsg(unsigned char index)
{
unsigned char *p,i=20;
SendToTc35(AT_Tc35,3); //"AT+"
SendToTc35(Erase_Tc35,sizeof(Erase_Tc35)-1);//"IPR=19200"
SendASC(index);
SendASC(OVER);
ES=1;
while(i--)
{
Delay(200);
P="strstr"(RsBuf,AT_Code);
if(P!=NULL) {return 1;}
}
return 0;
}
//读取短信息
char code Ask_No[]="+CMGR:0,,0";
char code ERROR{]="ERROR";
char code Ask_Tc35[]="/";
unsigned char ReadMsg(unsigned char index)
{
unsigned char *p,i;
unsigned char Buf[40];
SendToTc35(AT_Tc35,3); //"AT+"
SendToTc35(Read_Tc35,sizeof(Read_Tc35)-1);
SendASC(index);
SendASC(OVER);
ES=1; //必须中断
Delay(600);
/*-------
ES="0":
SendToTc35(RsBuf,99);
ES="1";
*/|
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{
Buf=*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毫秒以上即可。
参考文献
[1] SMS with the SMS PDU-mode [M/CD] Siemens AG Version 1.2
[2] AT Command Set Siemens cellular engines version 2.10 [S] Siemens AG 2001年
[3] TC35 cellular engines Hardware Interface Description version 2.10 [S] Siemens AG 2001年
[4] 周嵘,家庭GSM短消息遥控监测装置 [P].中国专利:ZL02217548.2,出版日期2002年5月17日
为了方便大家进一步开发和拓展本模块,我为大家附上部分AT指令集
附:
一、一般命令 | |
AT+CGMI | 给出模块厂商的标识。 SONY ERICSSON |
AT+CGMM | 获得模块标识。这个命令用来得到支持的频带(GSM900,DCS1800或PCS1900)。当模块有多频带时,回应可能是不同频带的结合。 AAB-1021011-CN |
AT+CGMR | 获得改订的软件版本。 R6C005 CXC125582<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />CHINA1 |
AT+CGSN | 获得GSM模块的IMEI(国际移动设备标识)序列号。351254004238596 |
AT+CSCS | 选择TE特征设定。这个命令报告TE用的是哪个状态设定上的ME。ME于是可以转换每一个输入的或显示的字母。这个是用来发送、读取或者撰写短信。 AT+CSCS? |
AT+WPCS | 设定电话簿状态。这个特殊的命令报告通过TE电话簿所用的状态的ME。ME于是可以转换每一个输入的或者显示的字符串字母。这个用来读或者写电话簿的入口。 NONE |
AT+CIMI | 获得IMSI。这命令用来读取或者识别SIM卡的IMSI(国际移动签署者标识)。在读取IMSI之前应该先输入PIN(如果需要PIN的话)。 |
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? |
AT+CALA | 警报管理。这个命令用来设定在ME中的警报日期/时间。(闹铃) |
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 | 服务商选择。 +COPS: 0,0,"ChinaMobile" |
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 | 选择蜂窝广播信息 |
用户377235 2012-8-27 16:39
用户377235 2012-8-27 16:37
发送短信报告, 怎么设置短信 是否成功?
用户377235 2012-7-12 17:27
此电路不成立,没有实际意义,它去掉了滤波电容,牺牲了直流电的平滑性,是输出电压在输入电压的峰值和1/2峰值之间变化,成了脉动电压。功率因数提高了一点,是得不尝失的,不值得推广。
用户417404 2012-6-14 14:37
用户60982 2008-6-18 12:01
用户60982 2008-6-18 11:59
用户110455 2007-7-21 08:47