坦白说,为什么所有的通信IC(或至少许多,或者最著名或最受欢迎的),如蓝牙或WIFI或GSM等,都支持AT命令集?他们为什么没有用于D / C(数据或命令)的简单引脚进行通信?使用AT命令集有什么好处?
AT命令集很大,会占用时间和内存空间,并且使通讯变得困难,而您可以使用简单的D / C引脚并发送整数来设置寄存器或发送数据。
坦白说,为什么所有的通信IC(或至少许多,或者最著名或最受欢迎的),如蓝牙或WIFI或GSM等,都支持AT命令集?他们为什么没有用于D / C(数据或命令)的简单引脚进行通信?使用AT命令集有什么好处?
AT命令集很大,会占用时间和内存空间,并且使通讯变得困难,而您可以使用简单的D / C引脚并发送整数来设置寄存器或发送数据。
Answers:
brhans是正确的-旧版。
在1980年代,海斯开始制造“ Smartmodem 1200”。它几乎已经过时了,海耶斯(Hayes)赶出了Smartmodem 2400。结果,海耶斯率先制造了两个接受相同编程命令的不同速度的调制解调器!任何可以使Smartmodem 1200拨打电话号码的软件都可以拨打Smartmodem 2400。
当时,每个新的调制解调器都需要几个月才能编写更新的驱动程序。当Smartmodem 2400投放市场时,Smartmodem 1200已经有了有效的驱动程序,因此无需等待数月。突然,其他制造商意识到了新调制解调器具有与旧调制解调器相同的命令集的优势。在六个月内,供应商将提供“兼容干草”的调制解调器作为唯一选择。海因斯起诉了他们。因此,每个人都开始将其调制解调器称为“兼容AT命令集”,但继续使用Hayes命令集。
到80年代中期,没有生产不能使用AT命令集的消费者调制解调器。结果,像调制解调器这样的每个调制解调器都使用AT命令。还有其他优点-因为命令集是ASCII,所以任何人都可以在终端窗口中手动键入AT命令来控制调制解调器。因为我自己的调制解调器具有简单的RJ11连接,所以我以前使用以下命令在Procomm Plus中启动每个会话:
AT
OK
ATH1
[dial tone]
ATDT [phone number]
只是为了确保我听到拨号音。如果没有,我会四处晃动一下电线!
您仅在谈论命令集的缺点。考虑一下好处:
通过使用AT命令集,您的通信设备可以立即通过操作系统的PPP放置在任何IP网络上实现。替代方法是,除了设计自定义协议接口之外,还必须为每个要支持的OS编写自己的网络设备驱动程序,然后该OS才能使用您的设备加入Internet。
任何称职的工程师都将已经知道此协议。从一项日常工作中需要他理解并实现许多非标准串行协议的情况中获取一项:精心设计的通用协议会更好。
尽管确实确实AT协议比特定于任务的专用协议要复杂得多,并且要花更多的内存来实施,但选择实施该协议的人也要避免花大量时间重新发明一个完美的车轮。他拥有数十年的设计经验。他在投入开发时间之前就知道它会起作用。好的协议设计非常困难。
(这些天之一,我将发表我的巨著,“您的协议很烂”,以期防止犯下更可怕的,半价半价的一次性协议。)
ATS
命令...
我将在问题的另一端进行扩展...为什么不只是在接口上添加另一条信令线呢?
只能由没有经历过真正的25针RS232接口上所有信号线排列问题的人提出这个问题。除了TXD,RXD和Gnd,已经有其他几对信号,RTS / CTS(准备发送,清除发送)DSR / DTR(数据设置就绪,数据终端就绪)和硬件挂断引脚。和别的。制造商之间并没有明确的通用协议,究竟究竟是什么功能-为什么首先需要两组硬件握手信号?还有最重要的软件XON / XOFF协议)(为什么Diablo打印机(据我所知唯一)坚持在针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.16ms或更长的“长”时间,因此调制解调器可以放心地假设,如果看到了类似的东西就像1200波特的“ A”一样(也是300波特等)。“ T”的奇偶性与“ A”的奇偶性相反,因此,如果第二个字符看起来像“ T”,
使用“ AT”命令的设备或驱动程序与Hayes调制解调器命令类似或类似的工作(例如,接受ATDTW192,168,254,123W4567
作为连接到192.168.254.123的端口4567的命令),目的是与希望与旧样式通信的软件兼容调制解调器或兼容设备。但是,有许多设备使用“ AT命令集”似乎是有用的营销流行语的理论,即使用“ AT命令集”开头的命令,即使这些设备不具备自动波特率检测功能并且其命令与任何其他设备上的任何东西。在这种情况下,使用“ AT”作为命令前缀不会增加兼容性值,也没有任何用处。设计师之所以这样做,是因为他们看到其他设计师也这样做了,