最早生产调制解调器的公司是贺氏,后来组建的厂家制造的调制解调器都与HAYES兼容,大部分的通信软件使用菜单来对调制解调器进行配置、检测。但是有些通信软件要求用户直接发命令给调制解调器,在这种情况下必须使用AT命令。
   AT命令集是调制解调器通信接口的工业标准,AT命令是调制解调器可以识别并执行的命令。AT命令简单容易掌握,使用它可以配置调制解调器,配合通信软件工作与远端系统通信发起或应答一个呼叫。
   使用AT命令设置调制解调器时,用户使用的通信软件必须提供一个到调制解调器的直接连接状态,使你能够从命令行输入所需的AT命令。如在WINDOWS98下的“超级终端”中建立一个直接到串口的连接便可使用AT命令,也可使用ONLAN/PC软件的终端方式。但是不能在操作系统下(如:DOS下)直接使用AT命令。
   AT命令的基本格式为:AT+命令字符及相关设置参数,例如:ATDT0,88888888 这个命令表示使用音频拨号方式拨外线电话88888888。AT是前导符,D是命令字符表示拨号,T这个参数表示用音频拨号。先拨“0”,紧随其后的逗号表示延迟处理下一个字符称为拨号修正符。(可以通过设置S8寄存器的值定义延迟的时间,默认为2秒。范围为0~65秒)
   应用一:在将调制解调器与电话连在一起时,当有电话拨入时,在振铃之后对方会听到调制解调器的应答声,这的确很讨厌,当与调制解调器相连的计算机充做终端时,我们只是用它来向服务器拨号,请求建立通信连接,这时候自动应答功能并不需要,当与调制解调器相连的计算机充当主机时,当有连接请求时,调制解调器的自动应答功能可以响应请求。这时候的自动应答功能是需要的。普通调制解调器用户都可以将自动应答功能去掉。通过下面的AT命令可以去掉调制解调器的自动应答功能。 (ATS0=1进行设置)
AT&W(保存设置)这个命令用来设置寄存器S0的值,调制解调器的出厂值为1允许自动应答;值为0则禁止自动应答。
   应用二:测试调制解调器。当我们拿到一个调制解调器,在安装它之前,总想测试一下它的好坏,目前我们没有好的办法,一般是安装它的驱动程序,然后按照下列顺序单击开始“设置”控制面板,双击调制解调器,单击诊断详细信息,计算机开始测试调制解调器,最后给出调制解调器的状况报告。这与正式安装一个调制解调器没有什么区别,其实通过使用AT命令就可以对调制解调器进行测试。使用超级终端输入ATDT电话号码,即可听到调制解调器的拨号声,如果能够拨通,那么调制解调器就没问题,否则可能有问题。
   我们应该能够看到类似下面的信息:CONNECT 33600/ARQ/V34/LAPM/V42BIS,接着我们可以键入一连串字符,在键入它们时,终端屏幕上应该同时出现。如果我们键入的字符和屏幕显示的字符是一致的,那么通过测试调制解调器没有问题,然后键入“+++”,按下回车键断开连接。如果测试失败,那么调制解调器的硬件确实有问题。
一 基础篇
这里讲述的是最基本的AT指令。
猫的第一句:AT,这是所有猫语的基础,就是说,其他的猫(AT指令)
都必须要它作为开头。
第二句包括:i0,i1,i2,i3,i4,i5,i6,i7
I0是让小猫告诉你她的产品代码;I1是让她告诉你预测的检查和;I2是报告一个“OK”;I3是告诉你她的版本、型号和界面类型;I4是告诉你OEM的编程回应;I5是告诉你她的数据泵类型以及代码版;I6是报告国家代码参数;I7是报告DAA代码和世界级型号,有些小猫会报告芯片的生产厂商。一般说来,I0~I3,小猫都会给你一个明确的回答,而I4~I7则要看猫的具体品种,有的也会详细回答,有的只会简单的表示一下——OK。
第三句是关于小猫汇报速度的,包括:W0、W1、W2是在EC模式下报告DTE(主机到COM口)速度;w2是报告DCE速度(MODEM的实际连线速度),这就是为何有的小猫说连线速度是115200,有的说33600,因为前者是在小猫初始化时用了w0、w1参数,其实是COM口的速度,而后者用了w2参数,是实际连线的速度。
第四句是有:X0、X1、X2、X3、X4,这是让小猫报告连接过程的结果代码。X0是报告最基本的代码,如OK、CONNECT、NOANSWER等。X1、X2基本相同比X0多报告一个连接速度。X3又比X2多报告Busy(忙线),X4则报告所有连接过程中的结果代码,包括NO DIAL TONE(无拨号音)等。
   类似的基本又比较有用的AT指令还有:V0,报告数字结果代码;V1报告文字结果代码;&F,恢复工厂预设组0;&F1,恢复工厂预设组1。
二 进阶篇
   让我们更深入的去了解小猫,猫般都会写着Date + Fax + Voice,这表示我们的猫是数据传真语音三合一的,那么,首先让我们看看传真、语音方面的AT指令。
  第四句是传真指令,如果你想知道猫支持那类传真指令,就可以跟它说:+fclass=?如果它回答是0,1,2,就表示它支持Class1,Class2指令;而+fclass=1,就是叫小猫用传真的class1指令。还有+fae=n,当n=1时,是让猫对
数据传真自动应答;n=0时则相反;然后,我们再学一下比较有用的猫跨平台通讯指令。
   第六句包括ATA,ATZ。有时候,我们想把刚下载的软件与别人共享,用这个方法就很方便了,当然,前提是两台机子都要有猫。在两台机子上都运行At指令解析器,在win98下就是超级终端了,如果在Linux下,则要有相应的软件。在询问是否新建连接时,选取消。然后在其中一台键入ATA,在另一台键入ATZ,不久就会听到熟悉的猫叫声,两台机子就可以互传软件了。

用AT命令调试调制解调器的更多相关文章

  1. 浏览器控制台命令调试——console

    控制台命令调试时通过浏览器开发工具中的控制台命令嵌入到JavaScript中,输出特定的信息或日志,从而达到调试的目的. 我们常用的Chrome和FireFox,都可以通过F12来打开开发工具. 下面 ...

  2. gdb命令调试技巧

    gdb命令调试技巧 一.信息显示1.显示gdb版本 (gdb) show version2.显示gdb版权 (gdb) show version or show warranty3.启动时不显示提示信 ...

  3. 用8个命令调试Kubernetes集群

    如果使用任何系统的时间足够长,那么你肯定必须对其进行调试,Kubernetes也不例外.它是一个分布式系统,有许多运动部件.我们将介绍8个可以运行以调试任何Kubernetes集群的命令. 它将帮助你 ...

  4. Linux-hexdump命令调试event驱动—详解(13)

    hexdump: 查看文件的内容,比如二进制文件中包含的某些字符串,通常用来调试驱动用 1.调试 键盘驱动 讲解 当我们insmod挂载了键盘驱动后,找到键盘驱动被放在event1设备里, 此时没有按 ...

  5. 九个console命令调试JS

    下面九个console命令,可以帮助我们更方便地调试 常用的console命令,最常用的事console.log() 1 //常用的console命令,其中最常用的console.log() 2 co ...

  6. 在脚本中使用set命令调试脚本

    当脚本文件较长时,可以使用set命令指定调试一段脚本.在脚本中使用set -x命令开启调式模式:使用set +x命令关闭调式模式. 例如: #!/bin/bash #Scriptname: greet ...

  7. H3C命令调试debugging--用户视图

    <H3C>terminal debugging     //使用debugging必须使用的命令--打开调试信 息的屏幕输出开关 <H3C>display debugging  ...

  8. 利用 tee 命令调试shell脚本中的管道

    在编写shell脚本时,调试是个比较麻烦的事,特别是涉及到多层管道命令的时候,会产生多个中间结果,tee命令的作用是从标准输入中读取数据写入标准输出或文件中,利用它可以从管道中读取中间结果并写入本地临 ...

  9. 使用Console命令调试JS

    一.console 的对象常用的方法 1.console.log(object[, object, ...])使用频率最高的一条语句:向控制台输出一条消息.支持 C 语言 printf 式的格式化输出 ...

随机推荐

  1. 使用springmvc,jsp,结合网页文本编辑器kindEditor实现基本博客编辑功能

    kindEditor官网:http://kindeditor.net/demo.php 个人实践: 为了在自己的项目中引入一个类似用户写博客的功能,在网上找到了kindeditor,真心又好又易用. ...

  2. 字符编码笔记:ASCII,Unicode 和 UTF-8

    http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

  3. 为什么React事件处理函数必须使用Function.bind()绑定this?

    最近在React官网学习Handling Events这一章时,有一处不是很明白.代码如下: class Toggle extends React.Component { constructor(pr ...

  4. C# winform开发嵌套Chrome内核浏览器(WebKit.net)开发(一)

    https://www.cnblogs.com/Maxq/p/6566558.html WebKit.net是对WebKit的.Net封装, 使用它.net程序可以非常方便的集成和使用webkit作为 ...

  5. 解决select2在modal中无法输入的问题

    解决办法: 在js里加一句 $.fn.modal.Constructor.prototype.enforceFocus = function(){};

  6. scala中list集合的操作与总结

    /** * Created by root * Description : List */ object ListTest { def main(args: Array[String]): Unit ...

  7. 关于 Handler 与 opener

    我们可以使用 urllib.request.Request() 构造请求对象,但是对于一些更高级的操作,比如 Cookies 处理.代理设置 .身份验证等等,Request() 是处理不了的这时就需要 ...

  8. Python调用7zip命令实现文件批量解压

    Python调用7zip命令实现文件批量解压 1.输入压缩文件所在的路径 2.可以在代码中修改解压到的文件路径和所需要解压的类型,列入,解压文件夹下面所有的mp4格式的文件 3.cmd 指的就是Pyt ...

  9. Lua脚本和C++交互(一)

    现在,越来越多的C++服务器和客户端融入了脚本的支持,尤其在网游领域,脚本语言已经渗透到了方方面面,比如你可以在你的客户端增加一个脚本,这个脚本将会帮你在界面上显示新的数据,亦或帮你完成某些任务,亦或 ...

  10. windows下dump文件调试

    dump调试:在系统中异常或者崩溃的时候,来生成dump文件,然后用调试器来调试.这样就可以在生产环境中的dmp文件,拷贝到自己的开发机器上,调试就可以找到错误的位置,配合程序调试符号pdb文件,直接 ...