原创 PC机与TC35i通信使用说明

2009-7-25 09:36 4372 6 6 分类: 消费电子

PC机与TC35i通信使用说明<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


本实验中使用串口调试助手V2.2作为串口通信工具,上电前请先插好SIM卡,使用的SIM卡最好不需要输入PIN码就能直接使用,然后接好串口数据线。


TC35 具有自动识别串行接口速率的能力,但要求速率范围在1200Bps115200Bps 之间,并且设置为8Bit 数据,无校验,1 位停止位,在调试助手中设置将参数设置好,建议将“自动清空”前的对勾去掉,其他设置一般默认的就可以。


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


点击看大图


 


接上电源,调试助手设置好之后就可以来测试一下我们的TC35i是否能正常使用了,在发送区输入AT,并回车,然后发送,接收区如果返回OK,如上图中所示,则模块工作正常,如果没有反应,首先应检查串口选择是否正确,“十六进制发送”选项前不能打勾,如果要以十六进制发送,则应将AT转换为ASCII码,再转换为十六进制,同时加上回车换行的ASCII码,即“41 54 0D 0A”,当以十六进制发送时,每两个字符之间应以空格隔开,其他命令发送格式类似。上图中接收区的AT是当前命令的回显,当命令执行出现错误时我们可以返回检查命令输入是否有无,可用ATE命令将其关闭。


接下来先来使用一下有关语音电话的命令。在使用与GSM网络有关的命令之前应确保模块所处位置有网络信号,然后要等开机几秒钟之后再执行有关命令。


首先输入AT+CLIP=1并发送,如果您的模块中的SIM有来电显示功能,那么当有电话拨入时会显示来电号码。接着我们可以用手机拨打模块中的手机号码,此时观察模块上的LED灯会不停的闪,说明已经接收到信号,同时串口助手接收区显示如下


RING


 


+CLIP: "15948020629",129,,,,0


如果要拒绝此电话可以使用ATH挂断。


然后在测试一下拨打电话,例如要拨打15948020629 这个号码,则输入命令应为


ATD15948020629;


注意末尾一定要加分号,不加分号则成了数据拨号,此时等待几秒如果一切正常的话被呼叫手机应该能接收到信号。如果要取消呼叫可以把刚才的命令再发送一次,或者使用ATH,这时接收区会显示NO CARRIER(没有载波)如果要如果没有收到信号应检查天线连接是否无误,拨打号码是否正确,还可以用AT+CSQ命令检测网络信号强度。


接下来介绍如何发送短信,这也是我们使用无线模块最多的功能。


TC35 提供Text PDUProtocol Data Unit)两种模式来处理短信,Text模式下只能发送ASCII码表中的前128个字符,也就是英文字母,英文标点符号,阿拉伯数字等,而PDU模式中英文都能发送,中文标点符号也必须使用PDU模式处理。由于Text模式比较简单,我们先来介绍如何发送和接收Text模式短信。


先对模块SMS进行一些初始设置,AT+CMGF=1设置为Text模式,AT+CSMP=17,167,0,0设置Text模式参数,AT+CSCS=GSM设置GSM字符集,接下来发送一条短信,例如要往15948020629这个号码发送一条短信,输入命令AT+CMGS=15948020629 并回车,返回


>

 


接着输入短信内容,输入完毕后以->结尾,这个字符是ASCII码中的026,一个控制字符,在这里作为结束标志,测试时可以在正常短信内容输入完毕后先点发送,再以十六进制方式输入1A1A也就是16进制的026,再点发送,这时接收区就会显示这个符号,以后再需要这个符号时可以直接粘贴使用。如果返回OK就说明短信发送成功。需要注意的是,虽然有短信息服务中心号码设置的命令,不过一般不需要我们设置的,可以使用AT+CSCA?来查询服务中心号码。


下面来往模块中发送一条短信,注意犹豫此时是Text模式,所以发送内容应为英文内容,包括数字,英文标点。发送短信前执行


AT+CNMI=2,1


此命令的作用是当有新的短信时给予提醒并显示存储位置,同时还会将信息存储到默认的内存位置。例如发送信息的手机为15948020629,信息到达后接收区显示


+CMTI: "ME",22   


我们可以使用AT+CMGR=22来将其读出,接收区显示


+CMGR: "REC UNREAD","15948020629",,"<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />08/03/25,09:51:01+32"


ADG123456


 


OK


其中ADG123456为短信内容,REC UNREAD 表示这条短信未读,以后再读取这条短信时将变为REC READ,接收时间时间,短信号码等信息皆显示在第一行里。


 


下面我们再来介绍如何发送和接收中文短信,由于中文短信采用的是unicode编码,所以只能以PDU模式发送和读取中文,故先将模式设置为PDU模式,所用指令为AT+CMGF=0


再发送AT+CSMP=17,167,0,8,这条命令的最后一位8的作用是将数据编码类型设置为unicode编码,例如我们要发送的内容为“测试第一条中文短信”先使用unicode转换工具将其转换为


&#x6D4B;&#x8BD5;&#x7B2C;&#x4E00;&#x6761;&#x4E2D;&#x6587;&#x77ED;&#x4FE1;


在输入短信内容时应把“&#x   ; ”去掉,下面我们就来发送这条短信,发送PDU模式的短信首先跟Text模式不同的地方是,Text模式时在AT+CMGS后输入接收短信的号码,而PDU模式时AT+CMGS后输入的是短信的长度。


下面发送AT+CMGS=33,接着出现 > 符号后输入短信内容


 


0891683110901105F011000D91685149080226F9000800126D4B8BD57B2C4E0067614E2D658777ED4FE1


并以->结束,然后再发送。这里需要注意几个地方:1.AT+CMGS后的短信内容长度是从上面的1100D算起的,也就是说开始的蓝色部分不能计入;2.蓝色部分08代表短信服务中心的地址长度,91是短信息中心号码类型,683110901105F0是短信服务中心号码,这个号码是发送方的服务号码,可以使用AT+CSCA查询,这里填写的号码其每两位是位置颠倒的,由于电话号码位奇数(11), 因此加入F 来保证8位,所以实际号码为8613010911500F;3.接下来的11是文件头字节,具体含义可以查找相关资料,一般设置为11即可,00为信息类型,0D为被叫号码长度,91685149080226F9为被叫号码,同样经过移位处理,紧接着的00是协议标识,08是数据编码方案,中文选择08,英文为00,再接着的00是有效期,跟普通手机上的选择有效期作用一样,然后的12是数据长度,这个12是十六进制的,它表示实际短信内容长度,后面的蓝色部分即实际短信内容,当编写好以后就可以加上发送了;4.还有一个问题,当我们输入AT+CMGS=33后如果短时间内没有输入短信内容,模块会返回一个ERROR,这时需要重新输入此命令。


接下来再用刚才接收短信的手机向模块中发送一条中文短信,内容仍为“测试第一条中文短信”,当有提示后读取短信


0891683110901105F0240BA15149080226F9000880305281022423126D4B8BD57B2C4E0067614E2D658777ED4FE1


可将这条短信和上一条接收到的短信比较一下,前面的蓝色部分上一条短信一样,不过这次这个号码是作为接收短信的服务中心号码,红色部分为时间邮戳,其余的部分跟上一条短信的结构一样。


下面再介绍几个常用的命令:


AT&W 保存已改设置,某些系统默认设置可能每次开机都需要更改,因此最好直接将其设置为默认参数


AT^SMSO 关闭模块


AT+CPIN 输入PIN码,可能会需要


AT&F 恢复出厂设置


ATZ 软复位


另附有关AT命令的说明


1.     TC35 所支持命令集中根据命令名称可简单分为:


ATxx”及少量”AT+xxx”为V.25 标准命令集;


   AT+Cxxx”为GSM 标准所扩展的AT 命令;


   AT^Sxxx”为SIEMENS 定义扩展的AT 命令。


2.     命令形式:


AT+Cxxx=?”为测试命令(Test Command,执行此种命令将返回此命令所支持的参数及参数范围;


AT+Cxxx?”为读命令(Read Command),执行此种命令将返回此命令当前的参数值;


AT+Cxxx=<>”为写命令(Write Command),执行此种命令将设置此命令的参数值;


AT+Cxxx”为无参数的执行命令(Execution Command)。


3. 命令的返回形式:


<CR><LF>Response<CR><LF>


在本文数据实录中未将<CR><LF>显式地打印出来,但切记TC35 回送时含有这些


字符,这对于编写程序来比对TC35 回送值以确定TC35 工作是否正常非常重要。


在常见的资料中:


<CR> 代表ASCII 中回车字符,值为0x0D


<LF> 代表ASCII 中换行字符,值为0x0A


<SP> 代表ASCII 中空格字符,值为0x20


<CTRL+Z> 代表ASCII 文件结束字符,值为0x1A


最后简要说明一下短消息类(class)的概念:根据指定储存的位置,短消息分为class 0 3四个类。也可以不指定类(no class),由ME 按默认设置进行处理,存储到内存或者SIM卡中。在TPDUTP-DCS字节中,当bit7-bit400x1, 01x1, 1111时,bit1 -bit0指出消息所属类:


00 class 0:只显示,不储存


01 class 1:储存在ME内存中


02 class 2:储存在SIM卡中


03 class 3:直接传输到TE


GSM Modem一般都支持一条“AT+CNMI”指令,可用于设定当有某类短消息到达时,如何处置它:只储存在指定的内存(易失的/非易失的)中,先储存后通知TE,还是直接转发到TE,等等。“AT+CNMI”指令语法为


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


mode - 通知方式:


0 – 不通知TE


1 – 只在数据线空闲的情况下,通知TE;否则不通知TE


2 – 通知TE。在数据线被占用的情况下,先缓冲起来,待数据线空闲,再行通知。


3 – 通知TE。在数据线被占用的情况下,通知混合在数据中一起传输。


mt - 消息储存或直接转发到TE


 


0 – 储存到默认的内存位置(包括class 3)


1 – 储存到默认的内存位置,并且向TE发出通知(包括class 3)


2 – 对于class 2,储存到SIM卡,并且向TE发出通知;对于其它class,直接将消息转发到 TE


3 – 对于class 3,直接将消息转发到 TE;对于其它class,同mt=1


bm, ds, bfr的含义,请参考相关标准文档。一般不需要去关心它们。


 


在程序中具体实现时,使用mode=2, mt="1",比较简单。


 


 

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条