📄 subject_62394.htm
字号:
<p>
序号:62394 发表者:syncmaster 发表日期:2003-11-26 15:51:56
<br>主题:移动通讯的AT指令是什么冬冬???
<br>内容:有没有人介绍,或者提供资料我看看,谢谢
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:dstwwx 回复日期:2003-11-26 16:18:01
<br>内容:九十年代初,AT命令仅被用于modem操作。由于没有控制移动电话文本消息的先例,因此开发了一种叫SMS Block Mode的协议,通过终端设备(TE)或电脑来完全控制SMS。几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM研制了一整套AT命令,其中包含对SMS的控制。AT命令在此基础上演化并被加入GSM 07.05标准,以及之后的GSM 07.07标准。<BR>对SMS的控制共有三种实现途径: <BR>· 最初的Block Mode <BR>· 基于AT命令的Text Mode <BR>· 基于AT命令的PDU Mode <BR> 到现在,PDU已取代Block Mode,后者逐渐淡出。<BR>· 什么是PDU Mode? <BR>它是发送或接收手机SMS消息的一种方法。消息正文经过十六进制编码后进行传送。<BR>· PDU命令有哪些? <BR>基本的PDU命令是AT+CMGR,AT+CMGL,AT+CMGS。例如读取电话上全部未读过的SMS消息,最简单的办法是用AT+CMGL=0;而用AT+CMGL=4则可读取全部SMS消息,无论已读过与否。<BR> <BR>实例:<BR>15:38:58 TX:AT<BR>15:39:05 TX:AT+CPMS="ME"<BR>15:39:05 RX:AT+CPMS="ME"<BR>15:39:05 RX:<BR>+CPMS: 15,15,4,10,15,15<BR><BR>15:39:05 RX:<BR>OK<BR><BR>15:39:07 TX:AT+CMGL=0<BR>15:39:07 RX:AT+CMGL=0<BR>15:39:07 RX:<BR>+CMGL: 5,0,,52<BR><BR>15:39:07<BR>RX:07914408020033F40407D0B1582C0600000030525183920028D43708<BR>2E7FD3CB633A888E2E83EE6F399B0C32CBDF6D10B96C0FCFE9617AFAED76B95C<BR>15:39:07 RX:<BR>OK<BR><BR>使用工具对上述收到的SMS进行解码后,可得到如下的解释:<BR><BR>IEI: 00<BR>LENGTH: 00<BR>MESSAGE REF: 00<BR>STATUS: 00<BR>SC Address length: 07<BR>SC Address type: 91<BR>Type of number: International<BR>Numbering plan identifier: E.164<BR>SC Address: 44802000334<BR>Message Type Indicator: 04<BR>Message Type: SMS-DELIVER / SMS-DELIVER REPORT<BR>More Messages To Send: No<BR>Status Report Indication: No<BR>Reply Path: No<BR>Originating Address Length: 07<BR>Originating Address type: D0<BR>Type of number: Alphanumeric<BR>Numbering plan identifier: Unknown<BR>Originating Address: 1B85C260<BR>Decoded: 1111<BR>Protocol Identifier: Default<BR>Data Coding Scheme: GSM Default Alphabet<BR>SC Timestamp: 00305251839200<BR>decoded: 00/03/25 15:38:29<BR>Time Zone: GMT+0.00H<BR>User Data Length: 28<BR>decimal: 40<BR>Message: To protect the world from devastation<BR>于是我们知道这条SMS消息的第一部分是:07914408020033F4<BR> 07是跟在服务中心地址内的字节数;<BR> 91是TON/NPI。TON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还可有其他数值,但91最常用到。<BR> 44080200033F4是所使用的服务中心地址,由于位置上略有处理,实际号码应为:<BR> 44802000334F(字母F意指长度减1),这就是服务中心的准确地址(号码)。<BR><BR>下一单元是: 04<BR> 这是文件头字节(header byte, 是一种bitmask)。将每个字节设为1时,有如下含义:<BR><BR> 10000000<BR> 回复路径(Reply Path):移动电话可循发送SMS消息的短消息中心进行回复(但并非所有SMSC都会这样设置)。<BR><BR> 01000000<BR> TP-UDH - 带有用户数据文件头。<BR><BR> 00100000<BR> TP-Status-Report-Indication - 发送状态报告给发信人,表示消息收到。<BR><BR> 00010000<BR> 00001000<BR> 此两类在正常的移动终接短消息(MT,Mobile Terminated SMS)中不会使用。<BR> <BR> 00000100<BR> TP-More Messages to Send - SMSC内再无新消息发送给该移动电话。<BR><BR> 00000010<BR> 00000001<BR> 最后两个位数表示消息种类 - 10指是移动终接短消息(MT),01指移动起始短消息(MO,Mobile Originated SMS)。<BR> <BR> 所以"04"指此条消息是正常的移动终接短消息,SMSC内再无新消息发送给该手机。<BR><BR> 从终端设备向蜂窝电话发送短消息文本是十分简单的。以下的代码片段就演示了这个过程。所使用的电话是Nokia 7100系列,并且ME (mobile equipment)是连接在计算的#1号通信端口上。<BR> 注意到Ctrl-Z是用来表示终结发送到移动设备的文本输入。<BR>使用Visual Basic来发送SMS文本到Nokia电话:<BR> ' Set up the communications port<BR> MSComm1.CommPort = 1 ' Com Port 1<BR><BR> ' Set for 9600 baud, no parity, 8 data, and 1 stop bit.<BR> MSComm1.Settings = "9600,N,8,1"<BR><BR> ' Tell the control to read entire buffer when Input is used<BR> MSComm1.InputLen = 0<BR><BR> ' Open the port<BR> MSComm1.PortOpen = True<BR><BR> ' Send an 'AT' command to the phone<BR> MSComm1.Output = "AT" & Chr$(13) & Chr(10)<BR> ' The phone will respond with an 'OK'<BR><BR> ' Set up the phone for a text message<BR> MSComm1.Output = "AT+CMGF=1" & Chr$(13) & Chr(10)<BR> ' The phone will respond with an 'OK'<BR><BR> ' Prep for SMS, give destination type and destination address.<BR> ' Enter the destination type and destination address to prep for SMS<BR> ' e.g. AT+CMGS="+2145551212",129<BR> MSComm1.Output = "AT+CMGS= " & Chr(34) & "+2145551212" & Chr(34) & ",129" & Chr$(13) & Chr(10) <BR> ' The phone will return a'>' prompt, and await entry of the SMS message text.<BR><BR> ' Now send the text to the phone and terminate with (Ctrl-Z)<BR> MSComm1.Output = "This is a test. WOW! "<BR> ' The phone will respond with a conformation containing the 'message reference number' eg. +CMGS: <BR><BR> ' Close the port<BR> MSComm1.PortOpen = False<BR>在终端,看起来就象下面:<BR> AT<BR> OK<BR> AT+CMGF=1<BR> OK<BR> AT+CMGS="+15127752607",129<BR> >This is a test. WOW!<BR> +CMGS: 49<BR><BR> OK<BR> 想了解更多的有关发送SMS文本信息的内容,请参考GSM 07.05白皮书在ETSI Web site 。想了解更多Nokia关于SMS的信息,请去http://www.forum.nokia.com,并登陆到Smart Messaging forum。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -