坦率地说,为什么所有通信 IC(或至少其中许多或最著名或最流行的)如蓝牙或 WIFI 或 GSM 等都支持 AT 命令集?为什么他们没有一个简单的 D/C(数据或命令)引脚用于通信?使用 AT 命令集有什么好处?
AT 命令集很大,需要时间和内存空间,并且难以通信,而您可以使用简单的 D/C 引脚并发送整数来设置寄存器或发送数据。
坦率地说,为什么所有通信 IC(或至少其中许多或最著名或最流行的)如蓝牙或 WIFI 或 GSM 等都支持 AT 命令集?为什么他们没有一个简单的 D/C(数据或命令)引脚用于通信?使用 AT 命令集有什么好处?
AT 命令集很大,需要时间和内存空间,并且难以通信,而您可以使用简单的 D/C 引脚并发送整数来设置寄存器或发送数据。
brhans 是正确的 - 遗产。
1980 年代,Hayes 开始制造“Smartmodem 1200”。它几乎立刻就过时了,Hayes 急忙推出 Smartmodem 2400。在这种匆忙中,没有时间在调制解调器设计之间进行设计更改。因此,Hayes 率先制造了两种接受相同编程命令的不同速度调制解调器!任何可以让 Smartmodem 1200 拨打电话号码的软件也可以拨打 Smartmodem 2400。
当时,每个新调制解调器都需要几个月的时间来编写更新的驱动程序。当 Smartmodem 2400 上市时,Smartmodem 1200 已经有一个工作驱动程序,因此无需等待数月。突然间,其他制造商意识到新调制解调器具有与旧调制解调器相同的命令集的优势。在六个月内,供应商提供“Hayes 兼容”调制解调器作为唯一选择。这让他们被海耶斯起诉。所以每个人都开始称他们的调制解调器为“AT 命令集兼容”,但继续使用 Hayes 命令集。
到 80 年代中期,没有制造出不能使用 AT 命令集的消费者调制解调器。因此,每个调制解调器(如通信系统)都使用 AT 命令。还有其他优点 - 由于命令集是 ASCII,任何人都可以在终端窗口中手动键入 AT 命令来控制调制解调器。因为我自己的调制解调器有一个危险的 RJ11 连接,所以我过去常常在 Procomm Plus 中启动每个会话:
AT
OK
ATH1
[dial tone]
ATDT [phone number]
只是为了确保我得到拨号音。如果我不这样做,我会四处摆动一下电线!
您只是在谈论命令集的缺点。考虑优点:
通过使用 AT 命令集,您的通信设备可以通过操作系统的PPP实现立即连接到任何 IP 网络。另一种方法是,除了设计自定义协议接口之外,您还必须为您想要支持的每个操作系统编写自己的网络设备驱动程序,然后该操作系统才能使用您的设备加入 Internet。
任何称职的工程师都会知道这个协议。从一个日常工作需要他理解和实现数十种非标准串行协议的人那里得到它:一个设计良好的通用协议更好。
虽然 AT 协议确实相当复杂,并且比特定于任务的专用协议需要更多的内存来实现,但选择实现此协议的人也可以避免花费大量时间重新发明一个非常好的轮子。他拥有数十年的设计专业知识可以借鉴。在他投入开发时间之前,他就知道它会起作用。好的协议设计非常困难。
(其中一天,我将出版我的巨著《你的协议很烂》,以期防止更可怕的半考虑一次性协议的实施。)
我将扩展问题的另一面……为什么不向接口添加另一条信号线呢?
只有那些没有经历过真正的 25 针 RS232 接口上的所有信号线排列的人才能提出这个问题。除了 TXD、RXD 和 Gnd,还有其他几对信号,RTS/CTS(准备发送,清除发送)DSR/DTR(数据集准备好,数据终端准备好)和一个硬件挂断引脚。和别的。并且制造商之间没有明确的通用协议,究竟是什么功能 - 为什么首先需要两组硬件握手信号?以及最重要的软件 XON/XOFF 协议)(为什么暗黑破坏神打印机坚持 - 据我所知,这是独一无二的 - 在引脚 11 上握手?)
有些设备需要完整的接口。有些人对 TXD/RXD/Gnd 感到满意。有些人可能会通过短接引脚 4 和 6(从而将他们自己的 RTS 循环回 CTS)来欺骗他们工作。一些应该是 DCE 的是 DTE,反之亦然,并且只能通过“零调制解调器”电缆与其他任何东西通信,每对连接都交换。
然后为了简化这一切,IBM PC 为 RS232 引入了一个新的 9 针接口。这意味着您现有的所有电缆系列都已过时,您必须重新开始...
即使不考虑两端可能已设置为不同的波特率,所有这些都让生活变得困难......
这支持了围绕 RS232 分线盒、电缆和测试/调试工具建立的整个行业。
在这种情况下,添加另一个信号可能不会飞行......
第一个使用“AT”命令的Hayes调制解调器选择“A”作为其命令前缀的第一个字符,因为它需要支持多种波特率,而行中的“A”看起来像:-------_-_____-x----------
它之间的比率为5:1最长和最短的“低”时间(“x”可能是高或低,取决于奇偶校验设置)。低于 1200 波特的速率无法管理 833us 或更短的“短”时间,高于 2400 的速率无法管理 4.16 毫秒或更长的“长”时间,因此调制解调器可以安全地假设,如果它看到看起来像就像一个 1200 波特的“A”,它是(同样是 300 波特等)。“T”与“A”的奇偶性相反,所以如果第二个字符看起来像“T”,
使用与 Hayes 调制解调器命令类似或类似工作的“AT”命令的设备或驱动程序(例如,接受ATDTW192,168,254,123W4567
作为连接到 192.168.254.123 的端口 4567 的命令)这样做是为了与希望与旧式通信的软件兼容调制解调器或兼容设备。然而,有许多设备使用以“AT”开头的命令,因为“AT 命令集”似乎是一个有用的营销流行词,即使这些设备不具备自动波特率检测能力,并且具有不同的命令任何其他设备上的任何东西。在这种情况下使用“AT”作为命令前缀不会增加兼容性价值,也没有任何用处;设计师这样做是因为他们看到其他设计师这样做,