海斯命令集
此条目可参照英语维基百科相应条目来扩充。 |
海斯命令集(Hayes command set),又称AT命令集(AT command set),原本是为了海斯智慧300调制解调器所开发的一种命令语言。这些命令集是由许多短的字符串组成长的命令,用于代表拨号、挂号以及改变通讯参数的动作。大部分的调制解调器都跟随海斯命令集所制定的规则。
历史
1977年刚开始使用海斯命令通讯时,是调制解调器使用已存在的资料脚位而没有做修改,取而代之的是使调制解调器可以自己切换在两个模式之间
- 资料模式:用于发送资料到远程的调制解调器
- 命令模式:使本地端的调制解调器接收命令并执行
命令描述
下面的文字列出了一部分海斯命令集的命令,也叫AT命令,其中“AT”代表“注意(Attention)”。每个命令都以“AT”开头,后面可以附加不定数量的命令。
海斯指令可以被区分为四组:
- 基本指令集:一个大写字符跟着一个数值,例如:M1。
- 延伸指令集:一个"&"以及一个大写字符跟着一个数值,这是基本指令集的延伸,例如:&M1。要注意的是,
M1
与&M1
是不同的命令。 - 私有指令集:通常用一个倒斜线("\")或一个百分比符号("%");这些命令在不同厂家之间有着很大的差别。
- 寄存器指令集:
Sr=n
,其中 r 代表要修改的寄存器的编号,n代表是要指定给寄存器的数值。一个寄存器代表内存中的一个特定的物理区域。寄存器指令集用于向一个特定的寄存器(即内存中的位置)输入数据。举例来说,S7=60
会指示调制解调器执行“将7号寄存器的值设为60”这个操作。寄存器通常可以控制调制解调器的运行细节(如传输强度、调制参数等),并且不同型号之间通常不能通用。
尽管海斯命令集的语法以字母和数字的组合来定义大多数的命令(L0、L1等),但是数字0在命令中不是必须的。举例来说,L0
与L
是相同的命令。在阅读后续的表格时要记住这一点。
在调制解调器处于数据模式时,使用转义序列可以将调制解调器转为命令模式。普遍来说会使用三个加号(+++)作为转义序列,同时为了将它与数据区分开,在输入它之前与之后必须有一次暂停,并且加号之间不允许有暂停。默认来说,一个暂停就是一秒钟,更短的间隔则代表“没有暂停”。
语法定义
<CR>
回车字符,用于当做命令或返回值的结尾,它的值以ASCII格式定义于S3寄存器,默认值为13。<LF>
换行字符,它的值以ASCII格式定义于寄存器S4,默认值为10。在开启了详细返回模式时(使用了V1选项),换行字符会在回车字符之后输出;如果设定使用数字格式的返回码(使用了V0选项),那么它将不会在返回码中出现。<...>
用角括号括起来的名称是一个语法元素。它们不会出现在命令行中。[...]
可选的子参数或可选的AT命令响应会被方括号括起来。
调制解调器初始化
一个字符串可以包含多个海斯命令,以便让调制解调器为拨号或应答做最佳的准备,如AT&F&D2&C1S0=0X4
。大多数调制解调器软件都支持由用户提供一个由数个AT命令组成的长字符串,称为初始化字符串,它将在调制解调器开始工作时被发送过去。V.250标准要求所有DCE (页面存档备份,存于互联网档案馆)都能接收至少40字符的命令体(AT之后的部分)。
一些重要的字符用于调制解调器初始化:
- AT - "Attention":告知调制解调器后面跟着是调制解调器指令,每一行以AT为起始
- Z - 重新设置(reset)调制解调器回到初始状态
- ,(a comma) - 使软件暂停一秒钟,若有多个逗点则代表暂停许多秒
- ^M - 发送一个结束字符(Carriage Return)给调制解调器,这是一个控制字符(当发送此字符其实是发送一个字节,内容为ASCII的CR)