种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

AT命令

(2020-06-02 07:18:04) 百科综合
AT命令

AT命令

AT命令有两种解释一种是数据机命令语言,另一种是Windows中的计画任务命令行。

基本介绍

  • 中文名:贺氏modem命令集
  • 外文名:AT command set
  • 开发商:贺氏通讯
  • 作用:统一modem命令标準

AT命令集

AT 即Attention,AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter, TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)传送的。通过TA,TE传送AT指令来控制移动台(Mobile Station,MS)的功能,与GSM 网路业务进行互动。用户可以通过AT指令进行呼叫、简讯、电话本、数据业务、传真等方面的控制。90年代初,AT指令仅被用于Modem操作。没有控制行动电话文本讯息的先例,只开发了一种叫SMS BlockMode的协定,通过终端设备(TE)或电脑来完全控制。由Hayes公司发明,已成为事实上的标準并被所有数据机製造商採用的一个数据机命令语言。每条命令以字母"AT"开头,因而得名。AT后跟字母和数字表明具体的功能。 SMS。之后,主要的行动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM研製了一整套AT指令,其中就包括对SMS的控制。AT指令在此基础上演化并被加入GSM07.05标準以及的GSM07.07标準,完全标準化和比较健全的标準。如:对SMS的控制共有3种实现途径:最初的BlockMode;基于AT指令的TextMode;基于AT指令的PDUMode。到PDUMode已经取代BlockMode,后者逐渐淡出。GSM模组与计算机之间的通信协定是一些AT指令集,AT指令是以AT作首,字元结束的字元串,AT指令的回响数据包在中。每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来、线路无信号等),模组将有对应的一些信息提示,接收端可做相应的处理。
背景
网际网路刚出现时,人们都是用modem来进行连线。modem通常是在电话线两端,由一个modem开始连线并结束操作。无论modem是“发起”还是“应答”模式,数据传输的两套频率之间的手动切换,一般由发出呼叫的用户将其modem切换为“发起”,然后手动拨打号码。当远程modem应答时,应已经设定为“应答”模式,电话听筒被关闭,通信一直持续到呼叫方手动断开。
当需要自动化时,通常只需要在应答方 - 例如,一家银行可能需要从支行号码呼入以结束日常处理。为了填补这一角色,某些modem包含了当其在应答模式时的自动摘机功能,其他用户手动断开时的清线功能。需要进行自动呼出拨号的情况相当少,并且是通过一个单独的外围设备—一个“拨号器”来处理的。这通常插是在电脑上的一个单独的输入/输出连线埠(通常是一个RS-232连线埠)并需要modem本身单独编程。
这种操作方法在20世纪60年代和70年代初工作的很好,当时modem通常被用来连线终端设备如电脑(拨出)或智慧型电脑主机(应答)。然而,20世纪70年代的微型计算机革命导致了低成本modem的引入并使这个半专用的点对点连线的想法已不在适用。成千上万的潜在用户可能要拨打任意的其他数千名用户,并且在当时唯一的解决办法就是让用户手动拨号。
计算机行业需要一种方式来告诉modem通过软体来拨什幺号。较早的单独拨号器有这个功能,但它只能使用一个单独的连线埠,而微型计算机可能没有。另一种解决办法是使用一个单独的一套“命令引脚”专门用于传送和接收命令,另一套可以使用一个信号引脚指示modem应该将收到的数据解释为命令。这些都在RS-232标準有硬体支持。然而,微机的RS-232连线埠的许多实现都是非常基本的,并且为了节约成本而消除了很多引脚。
贺氏的解决方案
贺氏通讯在1981年推出了其通过没有修改而重新使用现有的数据引脚的Smartmodem解决方案。而且,modem本身可以在两种模式之间进行切换:
1,modem传送数据到远程modem时的数据模式。(在数据模式中,modem把它从计算机接收的任何东西作为数据通过电话线传送出去)。
2,数据被解释为命令而给本地modem的命令模式(本地modem应执行的命令)。
Hayes modemHayes modem
从数据模式切换到命令模式,会话发出3个加号的转义序列字元串(“+++”)并跟随一秒钟的暂停。转义序列结束后的暂停是必须的,以减少入站信号所造成的问题:如果三个加号接收后的1秒内接收到任何其他数据,它就不是转义序列并将作为数据传送。要切换回去,他们传送在线上命令,O。在实际使用中许多命令在完成后自动切换到线上模式,而对于用户来说很少使用线上命令。
为了避免贺氏的专利授权,一些厂商实施的转义序列没有时间间隔保护(TIES)。这里有一个主要的影响是拒绝服务安全,它会导致计算机尝试在数据模式中传送位元组序列“+++ATH0”时使modem挂断连线。对于通过这种modem连线到Internet的任何计算机,这可以很容易地被通过传送包含“+++ATH0”有效载荷序列的死亡请求ping所利用。计算机作业系统会自动尝试用相同的有效载荷回复发件人,modem会将ICMP数据包的有效载荷数据解释作为贺氏命令而立即将自身从网际网路断开。同样的错误也可能会触发,如,计算机用户试图传送包含上述字元串的电子邮件。
命令
贺氏命令集包括各种电话线操作命令,如拨号和挂断。它还包括用来modem设定的各种控制,包括一组暂存器指令集,允许用户在原来的贺氏modem上直接设定各种记忆体位置。该指令集的其中相当一部分在很大程度上几乎被所有早期300波特modem製造商一字不差的进行了複製,包括暂存器的含义。
1200和2400波特的扩展需要一套小的新命令集,它们中一部分用(“&”)前缀来表示支持新的功能。贺氏自身被迫在它们的1200后不久迅速推出一个2400波特模型,而作为一个省时的办法,该命令集跟1200是相同的。基本上是偶然的,这使得现有的1200波特率modem用户使用新的贺氏2400模型时无需改变他们的软体,这强化了贺氏版本命令的使用。数年后,TIA/EIA将2400波特率命令集成为一个正式的标準,标题为:数据传输系统和设备-串列异步自动拨号和控制,TIA / EIA-602。
然而贺氏移动通信在高速套用或压缩的使用上进展缓慢,而其它三家公司则开始领先 - Microcom,U.S. Robotics 和 Telebit。这三个公司使用自己的扩展命令集,而不是等待贺氏。到了90年代初期,共有四个主要命令集在使用,以及基于其中之一的一些版本。20世纪90年代初,随着14.4和28.8 kbit/s的的广泛引入事情再次变得简单。慢慢地,基于原贺氏命令集使用“&”扩展的命令集开始流行,然后变得普遍。只有另外一个命令集一直流行:US Robotics modem命令集。
描述
以下文字列出了部分贺氏命令集(也叫AT命令:"AT" 意思是注意)。
贺氏命令可分为四组:
1.基本命令集—一个大写字母紧跟一个数字。如:M1。
2.扩展命令集—一个“&”(and符号)和大写字母紧跟一个数字。它是基本命令集的扩展。如:&M1。注意:M1和&M1是不同的。
3.专有命令集—通常使用一个反斜槓(“\”)或者是百分号(“%”)开头;这些命令在各modem厂商间差异很大。
4.暂存器命令—Sr=n。这里r是要改变的暂存器编号,n是要赋予的新值。
暂存器代表记忆体中的指定位置。Modem在主机板上有一些少量的记忆体。第四组命令的目的是为了输入值到一个特定的暂存器(记忆体位置)。该暂存器将存储一个modem和通信软体可以利用的特定变数(字母数字信息)。例如,S7 = 60指示计算机“设定暂存器#7的值为60”。
虽然指令集语法的大多数命令由字母数字组合(L0,L1等)定义,零则是可选使用的。本例中,“L0”等同于普通的“L”。阅读下表时要记住这一点。
数据模式下,转义序列可将modem返回到命令模式。正常的转义序列是三个加号(“+++”),并为将它跟可能的真实数据消除歧义:它的前面必须有一个停顿,加号之间没有任何停顿,并紧跟一个暂停;默认情况下,“暂停”是一秒钟,“不停顿”则是更少。
语法定义
以下语法定义:
  • <CR>回车符,是在命令行和结果代码终止符,其值是0到255之间的十进制ASCII码,在参数S3中指定。默认值为13。
  • <LF>换行字元,是公认的换行符的字元。它的值介于十进制ASCII码的0到255之间,在参数S4中指定。默认值为10。除非使用详细结果代码(使用V1选项)否则换行符在回车符之后输出,如果使用了数字格式结果代码(使用V0选项),它不会出现在结果代码中。
  • <...>尖括弧内名称是语法元素。尖括弧不会出现在命令行中。
  • [...]方括弧内是命令的可选子参数或AT信息回响的可选部分。括弧本身不会出现在命令行中。当读取AT命令时没有给出子参数,新值是其先前的值。在AT命令中不存储任何子参数的值,所以没有读命令,也即所谓的输入动作命令,输入应在子参数建议的默认设定的基础上进行。
modem初始化
其他用法,见向量初始化。
一个字元串可以包含放在一起的许多贺氏命令,从而使modem以最佳方式準备拨号或接听,如AT&F&D2&C1S0 = 0X4。这就是所谓的初始化字元串。V.250规範要求所有的DCE接受至少40个字元的级联命令主体(在“AT”之后)。
会话示例
以下表示两台计算机,计算机A和计算机B,都连线了modem,并且用户使用终端仿真软体控制modem。终端仿真软体通常允许用户直接传送贺氏命令给modem,并查看回响。在这个例子中,计算机A的用户让modem拨modemB的电话号码555-1234(长途)。需要注意的是每一个命令和回响之后,都有传送回车符结束命令。
Modem A
Modem B
备注
ATDT15551234
用户在modem A发出一个拨号命令:AT—让modem注意 D-拨号 T-按键音 15551234-呼叫这个号码
响铃
Modem A开始拨号。Modem B响铃,并且modem会发出报告。
ATA
modem B上的计算机发出回应命令。
连线
连线
modem连线,并且两个modem都报告状态“连线”(在实践中,大多数modem会在连线后报告更多信息—指出连线的速度。)另外,此时,两个modem将在串口提高DCD,或者叫数据载荷检测信号。
abcdef
abcdef
modem连线后,任何一端输入的字元都将出现在另一端。计算机A的人开始输入。字元通过modem出现在计算机B的萤幕上。(用户A可能不会看到自己输入的字元—这依赖于终端软体的本地回显设定)
+++
计算机B的人发出modem取消命令。(交替的,而更常见的是,计算机B可能丢掉DTR,或者叫数据终端準备信号—来实现挂断,而不需要使用+++或ATH。)
OK
modem确认它。
ATH
计算机B的人发出挂断命令。
无载荷
OK
两个modem都报告连线结束。modem B回应“OK”命令作为预期结果;modem A说出“无载荷”来报告远端来中断连线。两个modem都丢弃了他们的DCD信号。
配合度
以前的贺氏命令集在基于modem的通信中所代表了巨大的飞跃,随着时间的推移,许多问题开始出现,但几乎没有是因为货氏本身引起的:
  • 由于缺乏书面的标準,其他的modem製造商抄袭了外部可见的命令和(大致的)基本命令。这导致了modem在如何改变状态时的各种各样的微妙的差别,以及他们如何处理错误条件,挂起和逾时。
  • 每个製造商倾向于增加新的命令来处理新出现的需求,经常与其他modem不兼容。
    例如,设定硬体或软体握手往往需要为不同的modem设定许多不同命令。这破坏了基本“AT”命令集的普遍方便性。
  • 许多“贺氏兼容”modem具有它们不兼容的严重怪癖。例如,许多modem接收到“AT Z”重置命令后需要几秒钟的暂停。一些modem需要命令之间有空格,有的则不需要。有些会因为自己的“意志”改变波特率而帮倒忙,这将使得电脑不知道如何处理传入位。
由于这些结果,最终许多通信方案不得不放弃了任何能跟所有的“贺氏兼容”modem交谈的想法,而不得不尝试使用程式从回响来确定modem的类型,或提供给用户一些办法,使他们能够输入随便什幺特殊命令以强迫他们的特殊modem正确行事。
基本贺氏命令集
下面的命令是几乎所有的modem支持的AT命令集,无论是旧新。
命令
描述
备注
A0 or A
回应呼入呼叫
A/
重複最后命令
不要使用AT前缀,不要跟回车符。回车符通常表示中止。
D
拨号
拨后面的号码并握手
P—脉冲拨号
T—拨号音拨号
W—等待下一个拨号音。
R—拨号后的反响回应模式。
@—为二次拨号等待30秒。
,—在S8暂存器暂停指定时间(通常2秒)。
;—拨号后保持命令模式。
!- 闪光灯开关挂机(挂断了半秒,再转接电话。)
L—拨最后一次号码
E0 或 E
无回显
不会回显命令到计算机。
E1
回显
回显命令道计算机(这样一个人可以看到另一个人的输入)。
H0
挂鈎状态
挂鈎中挂断电话,结束过程中的任何呼叫。
H1
挂鈎状态
挂鈎结束摘起电话线(通常会听到拨号音)。
I0 toI9
调查、信息或讯问
该命令返回有关模型的信息,比如它的固件或品牌名称。每一个数字(0〜9,有时是10或以上)返回一行modem的具体信息,或如果没有定义返回“ERROR”。今天,Windows使用即插即用检测专用modem的类型。
L0 orLn (n=1 to 3)
扬声器音量。只被某些modem支持,通常扩展支持。modem很少有扬声器,或者有物理音量控制,或者声音输出是通过音效卡的不支持此命令。
关闭或降低音量
M0 or M
喇叭关闭,拨号时无声
M3也很常见,但很多品牌不同
M1
远程载波检测扬声器(即直到被其他modem听到)
M2
扬声器始终打开(连线后听到数据声音)
O
返回线上
由“+++”转义代码被中断后返回modem到正常连线状态。
Q0 or Q
安静模式
关闭 - 显示结果码,用户会看到命令回响(如OK)
Q1
安静模式
打开 - 结果代码被抑制,用户不会看到回响。
Sn
选择当前暂存器
需要注意的是Sn,?和=r实际上是三个单独的命令,并且可以在单独的AT命令中给予。
选择暂存器n作为当前暂存器
Sn?
选择暂存器n作为当前暂存器,并查询它的值。使用?对自己查询而不管最近选择了那个暂存器。
Sn=r
选择暂存器n作为当前暂存器,并在其中存储r。使用=?对自己存储而不管最近选择了那个暂存器。
V0 or V
数字结果代码
V1
详细
英文结果代码(例如CONNECT BUSY,NO CARRIER等)
X0 or X
贺氏Smartmodem 300兼容的结果代码
X1
Smartmodem
通常增加连线速度到基本结果代码(如CONNECT 1200)
X2
通常添加了拨号音检测(防止盲目拨号,有时防止ATO)
X3
通常增加忙音检测。
X4
通常添加忙音和拨号音检测
Z0 or Z
复位modem存储的配置。对于多个配置档案使用Z0,Z1etc。这是跟没有NVRAM的modem(非易失性存储器)一样的出场配置&F。
重置
注:一个命令字元串由一个CR(\r)字元决定
modem s暂存器定义
暂存器
描述
範围
预设值
S0
自动应答前的振铃次数
0-0从不
0
S1
振铃计数器
0-255振铃次数
0
S2
转义字元
0–255, 十进制ASCII码
43 ("+")
S3
负载返回字元
0-127, 十进制ASCII码
13 (负载返回)
S4
换行符
0-127, 十进制ASCII码
10 (换行)
S5
退格符
0-32, 十进制ASCII码
8(退格)
S6
盲拨前的等待时间
2–255秒
2
S7
拨号后等待负载
1–255秒
50
S8
停顿时间(拨号等待)
0–255秒
2
S9
负载检测回应时间
1–255个十分之一秒
6(0.6秒)
S10
负载丢失和挂断之间的延迟
1–255个十分之一秒
14(1.4秒)
S11
DTMF拨号持续
50–255毫秒
95毫秒
S12
取消代码守卫时间
0–255 个五十分之一秒
50(1秒)
S18
测试定时器
0–255秒
0秒
S25
DTR延迟
0–255(同步模式时为秒,其他模式是百分之一秒)
5
S26
RTS到CTS延迟间隔
0–255个百分之一秒
1个百分之一秒
S30
不活动连线定时器
0–255个十分之一秒
0(禁止)
S37
所需的电信线路速度
0–10
命令选项:
· 0尝试自动连线模式
· 1尝试使用300bit/s的连线速度
· 2尝试使用300bit/s的连线速度
· 3尝试使用300bit/s的连线速度
· 5尝试使用1200bit/s的连线速度
· 6尝试使用2400bit/s的连线速度
· 7尝试使用V.23 75/1200模式
· 8尝试使用9600bit/s的连线速度
· 9尝试使用12000bit/s的连线速度
· 10尝试使用14400bit/s的连线速度
S38
强制下线前的延迟
0–255秒
20秒
V.250
ITU-T在1995年在它的V.25建议中建立了一个标準,试图来重新建立一个命令集标準。它在1998年作为跟贺氏命令集V.251无关的附属档案更名为v.250。V.250兼容的modem实现标準所指定的A,D,E,H,I,L,M,N,O,P,Q,T,V,X,Z,及C&D和&F命令。它也必须实现S暂存器并且必须使用标準中给出的暂存器S0,S3,S4,S5,S6,S7,S8和S10作为目的。最后还只能跟ITU建议一致,必须实现任何加号“+”后面跟随任意A到Z字母的命令。modem製造商可以自由地实施其他命令和它们看到的适合的S暂存器,并且可以给标準命令添加选项。
V.250— 定义领先字元序列
领先字元
包括有关命令
+A
呼叫控制(网路地址)问题,常见有,PSTN,ISDN,ITU-T建议。X.25,交换式数字
+C
数字蜂窝扩展
+D
数据压缩,ITU-T建议。V.42
+E
错误控制,ITU-T建议。V.42
+F
传真,ITU-T建议。T.30等。
+G
一般性的问题,如身份和能力
+I
DTE-DCE接口的问题,ITU-T建议。V.24等。
+M
调製,ITU-T建议。V.32等
+P
PCM DCE命令,ITU-T建议。V.92
+S
交换或同步数据类型
+T
测试问题
+V
语音扩展
+W
无线扩展
GSM
ETSI GSM 07.07(3GPP TS 27.007)规定的AT命令式控制GSM手机或modem。ETSI GSM 07.05(3GPP TS 27.005)规定的AT命令式管理GSM的SMS简讯功能。
GSM的命令示例:
命令
描述
AT+CPIN=1234
输入PIN 码
AT+CPWD="SC","old","new"
将“旧的”PIN码“新的”
AT+CLCK="SC",0,"1234"
删除PIN码
AT&V
状态
ATI
状态(製造商,型号,版本,IMEI功能)
AT+COPS=?
列出可用的网路0-Unknown/2-Current/3-Forbidden,LONGNAME,SHORTNAME,数值-ID,“ACT”
AT+CSQ
得到的信号强度。应答+CSQ:<rssi(more=better)>,<ber, less=better>
ATD*99#
拨号接入点
AT+CGDCONT=1,"IP","access.point.name"
定义PDP上下文
GSM/3G medom通常支持ETSI GSM 07.07/3GPP TS 27.007 AT指令集扩展,儘管有很多命令执行有所不同。
大多数USB modem厂商,如华为,Sierra Wireless,Option,还定义了专有无线模式选择扩展(GSM/3G偏好)或类似扩展。因为性能的原因,某些最新的高速modem提供了一个虚拟乙太网接口而不是使用PPP连线,(PPP连线只在计算机和modem之间而不通过网路使用)。该设定需要供应商的AT命令扩展。有时候这些特定扩展规範是公开,而其他时候供应商则要求有一个NDA才能访问它们。

WindowsAT命令

基本参数

列出在指定的时间和日期在计算机上运行的已计画命令或计画命令和程式。必须正在运行“计画”服务才能使用 at 命令。
at [\\computername] [[id] [/delete] | /delete [/yes]]
at [\\computername] time [/interactive] [/every:date[,...]| /next:date[,...]] command
参数
如果在没有参数的情况下使用,则 at 列出已计画的命令。
\\computername
指定远程计算机。如果省略该参数,命令将安排在本地计算机。
id
指定指派给已计画命令的识别码。
/delete
取消已计画的命令。如果省略了 id,计算机中已计画的命令将被全部取消。
/yes
当删除已计画的事件时,对系统的查询强制进行肯定的回答。
time
指定运行命令的时间。将时间以 24 小时标记(00:00 [午夜] 到 23:59)的方式表示为小时:分钟。
/interactive
允许作业与在作业运行时登录用户的桌面进行互动。
/every:date[,...]
在每个星期或月的指定日期(例如,每个星期四,或每月的第三天)运行命令。将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。
command
指定要运行的 Windows 2000 命令、程式(.exe 或 .com 档案)或批处理程式(.bat 或 .cmd 档案)。当命令需要路径作为参数时,请使用绝对路径,也就是从驱动器号开始的整个路径。如果命令在远程计算机上,请指定伺服器和共享名的 UNC 符号,而不是远程驱动器号。如果命令不是可执行 (.exe) 档案,必须在命令前加上 cmd /c,例如:
cmd /c dir > c:\test.out

使用例举

at 10:00 /every:m,t,w,th,f,s,su shutdown -s -t 30
命令解释:在周一、周二、周三、周四、周五、周六、周日 每天的10:00 关机(30s 提示时间)
PS: 若取消关机命令,可执行命令: shutdown -a

标 签

搜索
随机推荐

Powered By 种豆资源网||