| 
 使用TC35的AT 命令收发短信息
 使用TC35的AT 命令收发短信息
摘要:
一、 介绍:
  需要说明的是TC35 具有自动识别串行接口速率的能力,但要求速率范围在1200Bps至115200Bps 之间,并且设置为8Bit 数据,无校验,1 位停止位
二、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;
 所有TC35 回送的字符以下画线表示,所有上位机发送给TC35 的字符以正常字符表示。
 
 
    使用TC35 收发短信息,用户必须准备一张已开通短信息服务SIM 卡,并将其插入MC2002 之TC35 扩展模块SIM 卡座中或TC35T 的SIM 卡座中。 
使用PC 配合TC35T 收发短信,用户需开启TC35T 电源,通过串行数据线联接到PC 机,并在PC 端安装串口读写软件,如超级终端,Telix 等。通过终端软件发送AT 命令,察看返回数据。 
使用MC2002GSM 模块TC35 时,用户需通过编程选用MODEM 端口,TC35 将自动上电再通过编程发送AT 命令和处理返回数据。MC2002 在关闭TC35 电源前,首先要向其发送AT^SMSO”命令,并确认返回为“OK”或0 (即中断与TC35 网络连接) 后,才可关闭MODEM端口。
四、使用AT 命令实现收发短信 1. 收发短信及相关操作AT 命令五、收发PDU 的数据格式ATZ 软复位;
 ATE 本地回线设置;
 ATV 设置返回结果码形式;
 AT+CMEE 错误报告设置;
 AT+CSCA 短消息中心地址;
 AT+CMGR 读短消息;
 AT+CMGS 发送短消息;
 AT+CMGC 发出一条短消息命令;
 AT+CMGL 列出SIM 卡中的短消息;
 AT+CMGF 选择短消息信息格式:0 PDU,1 文本;
 AT+CSCS 设置字符集;
 AT+CSMP 设置短消息文本模式参数;
 AT+CMGW 向SIM 内存中写入待发的短消息;
 AT+CMNI 显示新收到的短消息;
 AT+CMGD 删除SIM 卡内存的短消息;
 AT+CPBR 读取当前电话本信息;
 AT+CSQ 检查信号质量;
 AT^SMSO 中断网络连接。
 TC35 提供Text 和PDU(Protocol Data Unit)两种模式来处理短信,
 在Text 模式下可进行GSM 字符集与8Bit 数据的收﹑发等操作,但不支持中文或UCS2 字符集字符的收发操作;
 在PDU 模式下可支持上述所有操作,但需要理解收发PDU 数据格式。在Text 模式与PDU 模式下,上述命令使用方法会有所不同。详细的内容请参阅相关资料。
 2. 发送短信实例
 SMS 是由ETSI 所制定的一个规范(GSM 03.40 和 GSM 04.11),规定当使用7Bits编码(GSM 字符集)时最多可以发送160 个字符;当使用8Bit 编码(数据消息,如:铃音、图片) 时最多可以发送140 个字符(通常无法直接通过手机显示);当使用16Bit 编码 (UCS2)时最多可以发送70 个字符,用来显示Unicode 文本信息,可以被大多数的手机所显示。实
 例:
 (1)发送英文短信
 AT+CMGF=1 设置为Text 模式
 AT+CSMP=17,167,0,0 设置Text 模式参数。最后一个参数是数据编码类型(DCS—Data Coding Scheme),0 表示默认字符集(GSM).
 AT+CSCS=GSM 设置为GSM 字符集
 AT+CMGS 输入对方电话号码
 ><SP>为TC35 提示,”TEST LINE!”短信息内容,<Ctrl+Z>表示结束.
 数据实录:
 AT<CR>
 OK
 AT+CMGF=1<CR>
 OK
 AT+CSMP=17,167,0,0<CR>
 OK
 AT+CSCS=GSM<CR>
 OK
 AT+CMGS=13699809470<CR>
 ><SP>TEST LINE!<CTRL+Z>
 +CMGS: 86
 OK
 (2)发送8Bit 数据
 AT+CMGF=1 设置为Text 模式
 AT+CSCS=GSM 设置为GSM 字符集
 AT+CSMP==17,167,0,4 设置Text 模式参数。最后一个参数是数据编码类型
 (DCS—Data Coding Scheme), 4 表示8Bit 数据.
 AT+CMGS 输入对方电话号码
 ><SP>为TC35 提示,”3534454345STD6456576”短信息内容,<Ctrl+Z>表示
 结束.
 数据实录:
 AT<CR>
 OK
 AT+CMGF=1<CR>
 OK
 AT+CSCS=GSM<CR>
 OK
 AT+CSMP=17,167,0,4<CR>
 OK
 AT+CMGS=13699809470<CR>
 ><SP>3534454345STD6456576<CTRL+Z>.
 +CMGS: 88
 OK
 (3)发送Unicode 编码字符串
 AT+CMGF=0 设置为PDU 模式
 AT+CSCS=GSM 设置为GSM 字符集.
 AT+CSMP=17,167,0,8 设置模式参数。最后一个参数是数据编码类型
 (DCS—Data Coding Scheme),8 表示Unicode 编码。.
 AT+CMGS=22 输入 PDU 长度
 ><SP>为TC35 提示,
 “0011000B913196899074F00008AA0862116210529F4E86”为PDU 内容,
 <Ctrl+Z>表示结束.其中,“62116210529F4E86”为“我成功了”中文字符
 串的Unicode.
 数据实录:
 AT<CR>
 OK
 AT+CMGF=0<CR>
 OK
 AT+CSCS=GSM<CR>
 OK
 AT+CSMP=17,167,0,8
 OK
 AT+CMGS=22<CR>
 ><SP>0011000B913196899074F00008AA0862116210529F4E86<CTRL+Z>
 //PDU 内容
 +CMGS: 89
 OK
 3. 接收短信实例
 (1) 接收英文短信
 AT+CMGF=1 设置为Text 模式
 AT+CSCS=GSM 设置为GSM 字符集. .
 AT+CMGL=ALL 列出所有短信息
 请注意其中第一条及第三条为中文短信,它们在Text 模式下无法显示出正确的内
 容,只能列出其中的英文字符; +CMGL 后的数字(如1)表示记录号,"REC
 READ"表示已读,(未读为"REC UNREAD"),"+8613699809470"表示发方
 号码,"02/05/19,22:17:31+00"表示时间邮截。
 AT+CMGL=UNREAD 可以列出所有未读短信息,注意:未读短信一旦列出一次即变
 为已读短信
 数据实录:
 AT<CR>
 OK
 AT+CMGF=1<CR>
 OK
 AT+CSCS=GSM<CR>
 OK
 AT+CMGL=ALL<CR>
 +CMGL: 1,"REC READ","+8613699809470",,"02/05/19,22:17:31+00"
 
 +CMGL: 7,"REC READ","+8613902909595",,"02/05/17,16:23:31+00"
 1234567890ABC
 +CMGL: 10,"REC READ","+8613902909595",,"02/05/17,16:41:19+00"
 1234567890ABC
 OK
 (2) 接收中文短信
 AT+CMGF=0<CR> 设置为PDU 模式
 AT+CMGL=4<CR> 列出所有短信息
 +CMGL 后的首个数字(如7)表示记录号;第二个数字表示短信状态(0—未读短信;
 1—已读短信);其后一个数字(如28)表示PDU 长度,最后为该条短信的PDU
 数据。
 数据实录:
 AT<CR>
 OK
 AT+CMGF=0<CR>
 OK
 AT+CMGL=4<CR>
 +CMGL: 1,1,,28
 0891683108705505F0040D91683196899074F0000820509122711300085
 3D17ED981EA5DF1
 +CMGL: 7,1,,32
 0891683108705505F0240D91683109929095F50000205071613213000D3
 1D98C56B3DD703958503804
 +CMGL: 10,1,,50
 0891683108705505F0240D91683109929095F50008205071611491001E0
 0310032003300340035003600370038003900300041004200438FD84E2A
 OK
 4. 删除短信实例
 接收的SMS 存储在SIM 卡中,如不及时删除则在SIM 卡存储满后无法接收新的短信,建议用户将短信列出/读回并转存储在上位机(MC2002 或PC)后,及时将TC35 中内容删除。删除的命令为:AT+CMGD=<index> .其中,index 为记录号.要说明的是即使在index
 处无记录,此命令也会返回OK.
 数据实录:
 AT<CR>
 OK
 AT+CMGD=1
 OK
 
 PDU 串不仅仅 包含了短消息内容,而且还包含其它信息,如:发送者的信息﹑短信中心址﹑时间标志等等。这些都是以8 位字节的16 进制数或者半8 位字节的十进制数下的字符。1. 收PDU 的数据格式
 在这里给出一个例子:接收到源地址为“13677328099”发来的内容为“Hi”的PDU,其数据为:08 91 683108701305F0 00 0D 91 683109929095F5 00 002050716132130002 C834
 下面进行详细分析:
 (1)08—短信息中心地址字节长度。
 指(91)+(683108701305F0)的长度,两个数字计为一个字节长度;
 (2)91— 短信息中心号码类型(Type of Number) 。
 91 是TON/NPI 遵守International/E.164 标准,指在号码前需加‘+’号.此______外还有其它数值,但91 最常用;
 (3)683108701305F0—短信息中心号码,
 注意其每两位是位置颠倒的。实际号码应为:8613800731500.由于电话号码位奇数(11), 因此加入F 来保证8 位;(1)、(2)、(3)通称短消息中心地址(Address o
 
 |