我需要知道為什麼嵌入式系統中的人們使用AT命令?
當我問人們說這是一個標準時。
所以我的問題是:“ AT”是什麼意思?人們為什麼一直說這是一個標準?
我需要知道為什麼嵌入式系統中的人們使用AT命令?
當我問人們說這是一個標準時。
所以我的問題是:“ AT”是什麼意思?人們為什麼一直說這是一個標準?
關於“ AT”命令的一個鮮為人知的細節是,許多調製解調器將以“自動波特率/自動奇偶校驗”模式啟動。最初,調製解調器開始時不會嘗試實際解碼任何串行數據,而只是監視寬度匹配相同有效位週期的連續的低脈沖和高脈衝(例如,3.333ms表示300波特,833us表示1200波特,等等)。 )。發現後,他們將查看下一個低脈衝是否為該寬度的五倍。如果是這樣,他們將注意另一個高-低-高或至少1.5倍高的時間。找到任何一個將表明調製解調器剛剛看到了所標識波特率的0x41或0xC1(即“ A”)。它將進一步指示連接的計算機正在使用8-N-1或7-E-1,或者它正在使用7-N-1或7-O-1。無論哪種情況,它都會尋找下一個字符為0x54或0xD4(即“ T”)。這樣可以使調製解調器進一步對字符長度和奇偶校驗設置進行分類。
請注意,“ AT”之前收到的所有內容都將被忽略。如果打開回顯功能,則只需鏡像所有線路轉換,而無需任何串行解碼,就可以將數據回顯到連接的計算機。如果計算機在“ AT”之前發送了數據,例如 b>
如今,一些設備使用初始“ A”進行自動波特率檢測,但是命令以“ AT”開頭的事實是基本上是歷史的好奇心。
它是指 Hayes命令集,長期以來,它是通過串行線路向調製解調器(和其他設備)發出命令的標準。
不是命令和數據有兩條單獨的線,而是僅使用一條線,並且從某個數據序列發送到命令模式,例如發送+++,然後設置一定長度的暫停。然後,下一個數據被接收設備視為命令。
之所以使用這樣的東西,是因為它避免了需要另一對線路的事實,這在許多情況下根本不可用,尤其是在小型情況下嵌入式系統。
看看Wiki頁面和底部的鏈接-那裡有很多細節。
儘管原始AT集有各種各樣的擴展,所以我不會依靠所有提到AT的東西來實際使用所有原始Hayes命令。例如,我在這裡有一個藍牙串行芯片,IIRC使用它是它自己的AT類型集。
雖然我不是專家,但我只記得在過去的撥號和BBS時代用過各種命令。
“ AT”命令集用於解決需要在同一字節流通道上發送任意數據的帶外控制信息的問題。這是調製解調器的普遍問題,早在它們是通過串行電纜連接到計算機的外部盒時就已經存在。
Hayes是這種調製解調器的製造商,並且在早期很受歡迎。他們對帶外問題的解決方案是向調製解調器發送兩個字母的ASCII控制命令,並按特殊順序將其置於數據通過模式。為了減少看起來像命令的隨機物品的可能性,它們的命令序列均以AT命令開頭,AT命令代表“注意”。
Hayes獲得了巨大的市場份額,其他調製解調器製造商也不得不採用相同的命令設置為兼容。這樣,客戶可以使用其調製解調器而不必重新編寫軟件,而該軟件已經被設置用於驅動Hayes調製解調器。
如今,這種方案很少使用,但是固然如此普遍甚至在今天仍然處於黑暗的角落。
有一個特別好的文檔,描述了“ AT”命令的歷史,可以在這裡找到:
http://nemesis.lonestar.org/reference/telecom/modems /at/history.html
其中包含許多關於協議如何產生的“歷史”的頁面。
我不是那些“嵌入式系統中的人”之一,但我想說 AT
命令仍在使用中,因為它們來自於定義明確的低開銷標準,線路信令。
這意味著您可以將同一通信通道用於信令(用於管理通信的AT命令)和數據(您要發送的實際數據)。 AT
標準指定瞭如何區分兩者,以便您和串行設備彼此交談時不會感到困惑。
AT
用於注意