❶ 什麼是AT 命令 (手機)
手機上層比如查看sim卡聯系人,發送簡訊等動作通過AT 命令傳給modem,又modem發送到網路中去,AT 命令主要完成通訊任務
❷ 請問誰知道怎樣調用手機的AT命令阿急用阿~~~
AT命令了解
AT命令是Hayes(賀氏)推出的一套Modem操作命令集,是Modem通信介面的工業標准,它的功能包括配置Modem與軟體共同工作、與遠程系統通信、發起或應答一個呼叫等。AT命令以AT開頭(A/命令:重執行命令、+++命令:退出字元,兩者除外),回車鍵結尾,前綴AT用於通知Modem注意(ATtention)檢測計算機串列口發送信號的速率、識別字元格式。
AT命令能運行REGEDIT,但運行時並不會顯示在桌面上,2000 給每個用戶一個桌面,不同用戶同時登錄時都會有自己的桌面,有自己顯示的東西,自己運行的就只顯示在自己的屏幕上,但用 AT 命令時並不會顯示出來,但只要輸對,那的確會運行的,只是不顯示出來,這可以在任務管理器里找到這個進程。
D:\\>at/?
AT 命令安排在特定日期和時間運行命令和程序。
要使用 AT 命令,計劃服務必須已在運行中。
AT [\\\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command"
\\\\computername 指定遠程計算機。 如果省略這個參數,
會計劃在本地計算機上運行命令。
id 指定給已計劃命令的識別號。
/delete 刪除某個已計劃的命令。如果省略 id,
計算機上所有已計劃的命令都會被刪除。
/yes 不需要進一步確認時,跟刪除所有作業
的命令一起使用。
time 指定運行命令的時間。
/interactive 允許作業在運行時,與當時登錄的用戶
桌面進行交互。
/every:date[,...] 每個月或每個星期在指定的日期運行命令。
如果省略日期,則默認為在每月的本日運行。
/next:date[,...] 指定在下一個指定日期(如,下周四)運行命令。
如果省略日期,則默認為在每月的本日運行。
"command" 准備運行的 Windows NT 命令或批處理程序。
AT命令是計算機發送給Modem的命令。計算機給Modem發出一個命令,Modem返回一個字元串,表示命令執行的結果。如果Modem能夠接受,就給一個回應信息,通常都是ASCII字元OK,有時也會是其他的,比如給Modem發送"ATD電話號碼\\r"之後,等到撥號完畢,Modem會返回 CONNECT.如果Modem不能夠接受就給一個錯誤信息,一般都是ERROR。計算機和Modem之間的對話都是靠著原始的字元串來完成的。計算機發給Modem的都是命令。而Modem發給計算機的字元串有三類,其一:對於命令的回應,一般在命令接收到後馬上就回應了。其二:消息字元。Modem不但聽話,而且很愛打報告,一般風吹草動,就要給電腦通風報信。比如每次有震鈴時,就先一個字元DLE(DLE不是三個字元,而是一個字元的代號,這個字元的16進製表示為0x10),後面跟一個\'R\'.有來電顯示的時候發一個字元0x0d,緊跟著是0x0a,接著就是來電顯示日期和號碼。監測到話機按鍵的時候,發一個DLE,後面跟著\'/\',按鍵,\'~\'.其三:錄音的時候把錄制的數據發送給電腦。發送數據的時候,如果遇到某一個位元組的數據剛好是DLE,就在它的後面補一個DLE,電腦在接收的時候,如果發現兩個連續的DLE就去掉一個,留下一個,如果發現單獨的DLE可能就是消息字元。
Modem可以工作在數據模式、語音模式或傳真模式下,相應的AT命令分為常規命令,語音命令,傳真命令。常規命令就是一些各種模式下通用的命令,比如撥號(atd電話號碼\\r)應答(ata\\r),還有初始化命令等等。不同的Modem可能會有不同的at命令。在windows系統中,每個Modem的驅動程序的inf文件里都可以找到一些at命令。
AT命令使計算機或終端與數據機通訊。通訊軟體是你與數據機間的交介面方法,裝入通訊軟體包並進入終端或交互模式後,就可以發出工業標准AT指令了。所有命令行必須由ASCII字元「AT」開始並由 <Enter> 結束。除了A/指令和推出(預設為+++)。
AT必須同為大寫或小寫。如"At"或"aT"是不允許的。
一串命令可以寫在一行里。為了便於閱讀可以加或不加空格。命令中或命令間的空格會被忽略,命令行的最多字元數為39(包括"AT")。在輸入一條命令期間,可以用退格鍵(backspace)改正除"AT"以外的錯誤。
若命令行中任一處出現語法錯誤,本行其後的內容將被忽略,並返回ERROR。大數帶有超出正常范圍的參數的命令將不被接收並返回 ERROR。
❸ AT命令的AT命令集
AT 即Attention,AT指令集是從終端設備(Terminal Equipment,TE)或數據終端設備(Data Terminal Equipment,DTE)向終端適配器(Terminal Adapter, TA)或數據電路終端設備(Data Circuit Terminal Equipment,DCE)發送的。通過TA,TE發送AT指令來控制移動台(Mobile Station,MS)的功能,與GSM 網路業務進行交互。用戶可以通過AT指令進行呼叫、簡訊、電話本、數據業務、傳真等方面的控制。90年代初,AT指令僅被用於Modem操作。沒有控制行動電話文本消息的先例,只開發了一種叫SMS BlockMode的協議,通過終端設備(TE)或電腦來完全控制。由Hayes公司發明,已成為事實上的標准並被所有數據機製造商採用的一個數據機命令語言。每條命令以字母AT開頭,因而得名。AT後跟字母和數字表明具體的功能。 SMS。之後,主要的行動電話生產廠商諾基亞、愛立信、摩托羅拉和HP共同為GSM研製了一整套AT指令,其中就包括對SMS的控制。AT指令在此基礎上演化並被加入GSM07.05標准以及的GSM07.07標准,完全標准化和比較健全的標准。如:對SMS的控制共有3種實現途徑:最初的BlockMode;基於AT指令的TextMode;基於AT指令的PDUMode。到PDUMode已經取代BlockMode,後者逐漸淡出。GSM模塊與計算機之間的通信協議是一些AT指令集,AT指令是以AT作首,字元結束的字元串,AT指令的響應數據包在中。每個指令執行成功與否都有相應的返回。其他的一些非預期的信息(如有人撥號進來、線路無信號等),模塊將有對應的一些信息提示,接收端可做相應的處理。 互聯網剛出現時,人們都是用modem來進行連接。modem通常是在電話線兩端,由一個modem開始連接並結束操作。無論modem是「發起」還是「應答」模式,數據傳輸的兩套頻率之間的手動切換,一般由發出呼叫的用戶將其modem切換為「發起」,然後手動撥打號碼。當遠程modem應答時,應已經設置為「應答」模式,電話聽筒被關閉,通信一直持續到呼叫方手動斷開。
當需要自動化時,通常只需要在應答方 - 例如,一家銀行可能需要從支行號碼呼入以結束日常處理。為了填補這一角色,某些modem包含了當其在應答模式時的自動摘機功能,其他用戶手動斷開時的清線功能。需要進行自動呼出撥號的情況相當少,並且是通過一個單獨的外圍設備—一個「撥號器」來處理的。這通常插是在電腦上的一個單獨的輸入/輸出埠(通常是一個RS-232埠)並需要modem本身單獨編程。
這種操作方法在20世紀60年代和70年代初工作的很好,當時modem通常被用來連接終端設備如電腦(撥出)或智能電腦主機(應答)。然而,20世紀70年代的微型計算機革命導致了低成本modem的引入並使這個半專用的點對點連接的想法已不在適用。成千上萬的潛在用戶可能要撥打任意的其他數千名用戶,並且在當時唯一的解決辦法就是讓用戶手動撥號。
計算機行業需要一種方式來告訴modem通過軟體來撥什麼號。較早的單獨撥號器有這個功能,但它只能使用一個單獨的埠,而微型計算機可能沒有。另一種解決辦法是使用一個單獨的一套「命令引腳」專門用於發送和接收命令,另一套可以使用一個信號引腳指示modem應該將收到的數據解釋為命令。這些都在RS-232標准有硬體支持。然而,微機的RS-232埠的許多實現都是非常基本的,並且為了節約成本而消除了很多引腳。 賀氏通訊在1981年推出了其通過沒有修改而重新使用現有的數據引腳的Smartmodem解決方案。 而且,modem本身可以在兩種模式之間進行切換:
1,modem發送數據到遠程modem時的數據模式。(在數據模式中,modem把它從計算機接收的任何東西作為數據通過電話線發送出去)。
2,數據被解釋為命令而給本地modem的命令模式(本地modem應執行的命令)。
從數據模式切換到命令模式,會話發出3個加號的轉義序列字元串(「+++」)並跟隨一秒鍾的暫停。轉義序列結束後的暫停是必須的,以減少入站信號所造成的問題:如果三個加號接收後的1秒內接收到任何其他數據,它就不是轉義序列並將作為數據發送。要切換回去,他們發送聯機命令,O。在實際使用中許多命令在完成後自動切換到在線模式,而對於用戶來說很少使用在線命令。
為了避免賀氏的專利授權,一些廠商實施的轉義序列沒有時間間隔保護(TIES)。這里有一個主要的影響是拒絕服務安全,它會導致計算機嘗試在數據模式中發送位元組序列「+++ATH0」時使modem掛斷連接。對於通過這種modem連接到Internet的任何計算機,這可以很容易地被通過發送包含「+++ATH0」有效載荷序列的死亡請求ping所利用。計算機操作系統會自動嘗試用相同的有效載荷回復發件人,modem會將ICMP數據包的有效載荷數據解釋作為賀氏命令而立即將自身從互聯網斷開。同樣的錯誤也可能會觸發,如,計算機用戶試圖發送包含上述字元串的電子郵件。 賀氏命令集包括各種電話線操作命令,如撥號和掛斷。它還包括用來modem設置的各種控制,包括一組寄存器指令集,允許用戶在原來的賀氏modem上直接設置各種內存位置。該指令集的其中相當一部分在很大程度上幾乎被所有早期300波特modem製造商一字不差的進行了復制,包括寄存器的含義。
1200和2400波特的擴展需要一套小的新命令集,它們中一部分用(「&」)前綴來表示支持新的功能。賀氏自身被迫在它們的1200後不久迅速推出一個2400波特模型,而作為一個省時的辦法,該命令集跟1200是相同的。基本上是偶然的,這使得現有的1200波特率modem用戶使用新的賀氏2400模型時無需改變他們的軟體,這強化了賀氏版本命令的使用。數年後,TIA/EIA將2400波特率命令集成為一個正式的標准,標題為:數據傳輸系統和設備-串列非同步自動撥號和控制,TIA / EIA-602。
然而賀氏移動通信在高速應用或壓縮的使用上進展緩慢,而其它三家公司則開始領先 - Microcom,U.S. Robotics 和 Telebit。這三個公司使用自己的擴展命令集,而不是等待賀氏。到了90年代初期,共有四個主要命令集在使用,以及基於其中之一的一些版本。20世紀90年代初,隨著14.4和28.8 kbit/s的的廣泛引入事情再次變得簡單。慢慢地,基於原賀氏命令集使用「&」擴展的命令集開始流行,然後變得普遍。只有另外一個命令集一直流行:US Robotics modem命令集。 以下文字列出了部分賀氏命令集(也叫AT命令:AT 意思是注意)。
賀氏命令可分為四組:
1.基本命令集—一個大寫字母緊跟一個數字。如:M1。
2.擴展命令集—一個「&」(and符號)和大寫字母緊跟一個數字。它是基本命令集的擴展。如:&M1。注意:M1和&M1是不同的。
3.專有命令集—通常使用一個反斜杠(「」)或者是百分號(「%」)開頭;這些命令在各modem廠商間差異很大。
4.寄存器命令—Sr=n。這里r是要改變的寄存器編號,n是要賦予的新值。
寄存器代表內存中的指定位置。Modem在主板上有一些少量的內存。第四組命令的目的是為了輸入值到一個特定的寄存器(內存位置)。該寄存器將存儲一個modem和通信軟體可以利用的特定變數(字母數字信息)。例如,S7 = 60指示計算機「設置寄存器#7的值為60」。
雖然指令集語法的大多數命令由字母數字組合(L0,L1等)定義,零則是可選使用的。本例中,「L0」等同於普通的「L」。閱讀下表時要記住這一點。
數據模式下,轉義序列可將modem返回到命令模式。正常的轉義序列是三個加號(「+++」),並為將它跟可能的真實數據消除歧義:它的前面必須有一個停頓,加號之間沒有任何停頓,並緊跟一個暫停;默認情況下,「暫停」是一秒鍾,「不停頓」則是更少。 以下語法定義: <CR>回車符,是在命令行和結果代碼終止符,其值是0到255之間的十進制ASCII碼,在參數S3中指定。默認值為13。 <LF>換行字元,是公認的換行符的字元。它的值介於十進制ASCII碼的0到255之間,在參數S4中指定。默認值為10。除非使用詳細結果代碼(使用V1選項)否則換行符在回車符之後輸出,如果使用了數字格式結果代碼(使用V0選項),它不會出現在結果代碼中。 <...>尖括弧內名稱是語法元素。尖括弧不會出現在命令行中。 [...]方括弧內是命令的可選子參數或AT信息響應的可選部分。括弧本身不會出現在命令行中。當讀取AT命令時沒有給出子參數,新值是其先前的值。在AT命令中不存儲任何子參數的值,所以沒有讀命令,也即所謂的輸入動作命令,輸入應在子參數建議的默認設置的基礎上進行。 modem初始化
其他用法,見向量初始化。
一個字元串可以包含放在一起的許多賀氏命令,從而使modem以最佳方式准備撥號或接聽,如AT&F&D2&C1S0 = 0X4。這就是所謂的初始化字元串。V.250規范要求所有的DCE接受至少40個字元的級聯命令主體(在「AT」之後)。 以前的賀氏命令集在基於modem的通信中所代表了巨大的飛躍,隨著時間的推移,許多問題開始出現,但幾乎沒有是因為貨氏本身引起的: 由於缺乏書面的標准,其他的modem製造商抄襲了外部可見的命令和(大致的)基本命令。這導致了modem在如何改變狀態時的各種各樣的微妙的差別,以及他們如何處理錯誤條件,掛起和超時。 每個製造商傾向於增加新的命令來處理新出現的需求,經常與其他modem不兼容。
例如,設置硬體或軟體握手往往需要為不同的modem設置許多不同命令。這破壞了基本「AT」命令集的普遍方便性。 許多「賀氏兼容」modem具有它們不兼容的嚴重怪癖。例如,許多modem接收到「AT Z」重置命令後需要幾秒鍾的暫停。一些modem需要命令之間有空格,有的則不需要。有些會因為自己的「意志」改變波特率而幫倒忙,這將使得電腦不知道如何處理傳入位。 由於這些結果,最終許多通信方案不得不放棄了任何能跟所有的「賀氏兼容」modem交談的想法,而不得不嘗試使用程序從響應來確定modem的類型,或提供給用戶一些辦法,使他們能夠輸入隨便什麼特殊命令以強迫他們的特殊modem正確行事。 下面的命令是幾乎所有的modem支持的AT命令集,無論是舊新。 命令 描述 備注 A0 or A 回應呼入呼叫 A/ 重復最後命令 不要使用AT前綴,不要跟回車符。回車符通常表示中止。 D 撥號 撥後面的號碼並握手
P—脈沖撥號
T—撥號音撥號
W—等待下一個撥號音。
R—撥號後的反響回應模式。
@—為二次撥號等待30秒。
,—在S8寄存器暫停指定時間(通常2秒)。
;—撥號後保持命令模式。
!- 閃光燈開關掛機(掛斷了半秒,再轉接電話。)
L—撥最後一次號碼 E0 或 E 無回顯 不會回顯命令到計算機。 E1 回顯 回顯命令道計算機(這樣一個人可以看到另一個人的輸入)。 H0 掛鉤狀態 掛鉤中掛斷電話,結束過程中的任何呼叫。 H1 掛鉤狀態 掛鉤結束摘起電話線(通常會聽到撥號音)。 I0 toI9 調查、信息或訊問 該命令返回有關模型的信息,比如它的固件或品牌名稱。每一個數字(0〜9,有時是10或以上)返回一行modem的具體信息,或如果沒有定義返回「ERROR」。今天,Windows使用即插即用檢測專用modem的類型。 L0 orLn (n=1 to 3) 揚聲器音量。只被某些modem支持,通常擴展支持。modem很少有揚聲器,或者有物理音量控制,或者聲音輸出是通過音效卡的不支持此命令。 關閉或降低音量 M0 or M 喇叭關閉,撥號時無聲 M3也很常見,但很多品牌不同 M1 遠程載波檢測揚聲器(即直到被其他modem聽到) M2 揚聲器始終打開(連接後聽到數據聲音) O 返回在線 由「+++」轉義代碼被中斷後返回modem到正常連接狀態。 Q0 or Q 安靜模式 關閉 - 顯示結果碼,用戶會看到命令響應(如OK) Q1 安靜模式 打開 - 結果代碼被抑制,用戶不會看到響應。 Sn 選擇當前寄存器
需要注意的是Sn,?和=r實際上是三個單獨的命令,並且可以在單獨的AT命令中給予。 選擇寄存器n作為當前寄存器 Sn? 選擇寄存器n作為當前寄存器,並查詢它的值。使用?對自己查詢而不管最近選擇了那個寄存器。 Sn=r 選擇寄存器n作為當前寄存器,並在其中存儲r。使用=?對自己存儲而不管最近選擇了那個寄存器。 V0 or V 數字結果代碼 V1 詳細 英文結果代碼(例如CONNECT BUSY,NO CARRIER等) X0 or X 賀氏Smartmodem 300兼容的結果代碼 X1 Smartmodem 通常增加連接速度到基本結果代碼(如CONNECT 1200) X2 通常添加了撥號音檢測(防止盲目撥號,有時防止ATO) X3 通常增加忙音檢測。 X4 通常添加忙音和撥號音檢測 Z0 or Z 復位modem存儲的配置。對於多個配置文件使用Z0,Z1etc。這是跟沒有NVRAM的modem(非易失性存儲器)一樣的出場配置&F。 重置 註:一個命令字元串由一個CR(
)字元決定 寄存器 描述 范圍 預設值 S0 自動應答前的振鈴次數 0-0從不 0 S1 振鈴計數器 0-255振鈴次數 0 S2 轉義字元 0–255, 十進制ASCII碼 43 (+) S3 負載返回字元 0-127, 十進制ASCII碼 13 (負載返回) S4 換行符 0-127, 十進制ASCII碼 10 (換行) S5 退格符 0-32, 十進制ASCII碼 8(退格) S6 盲撥前的等待時間 2–255秒 2 S7 撥號後等待負載 1–255秒 50 S8 停頓時間(撥號等待) 0–255秒 2 S9 負載檢測回應時間 1–255個十分之一秒 6(0.6秒) S10 負載丟失和掛斷之間的延遲 1–255個十分之一秒 14(1.4秒) S11 DTMF撥號持續 50–255毫秒 95毫秒 S12 取消代碼守衛時間 0–255 個五十分之一秒 50(1秒) S18 測試定時器 0–255秒 0秒 S25 DTR延遲 0–255(同步模式時為秒,其他模式是百分之一秒) 5 S26 RTS到CTS延遲間隔 0–255個百分之一秒 1個百分之一秒 S30 不活動連接定時器 0–255個十分之一秒 0(禁止) S37 所需的電信線路速度 0–10
命令選項:
· 0嘗試自動連接模式
· 1嘗試使用300bit/s的連接速度
· 2嘗試使用300bit/s的連接速度
· 3嘗試使用300bit/s的連接速度
· 5嘗試使用1200bit/s的連接速度
· 6嘗試使用2400bit/s的連接速度
· 7嘗試使用V.23 75/1200模式
· 8嘗試使用9600bit/s的連接速度
· 9嘗試使用12000bit/s的連接速度
· 10嘗試使用14400bit/s的連接速度 S38 強制斷開連接前的延遲 0–255秒 20秒 ETSI GSM 07.07(3GPP TS 27.007)規定的AT命令式控制GSM手機或modem。ETSI GSM 07.05(3GPP TS 27.005)規定的AT命令式管理GSM的SMS簡訊功能。
GSM的命令示例: 命令 描述 AT+CPIN=1234 輸入PIN 碼 AT+CPWD=SC,old,new 將「舊的」PIN碼「新的」 AT+CLCK=SC,0,1234 刪除PIN碼 AT&V 狀態 ATI 狀態(製造商,型號,版本,IMEI功能) AT+COPS=? 列出可用的網路0-Unknown/2-Current/3-Forbidden,LONGNAME,SHORTNAME,數值-ID,「ACT」 AT+CSQ 得到的信號強度。應答+CSQ:<rssi(more=better)>,<ber, less=better> ATD*99# 撥號接入點 AT+CGDCONT=1,IP,access.point.name 定義PDP上下文 GSM/3G medom通常支持ETSI GSM 07.07/3GPP TS 27.007 AT指令集擴展,盡管有很多命令執行有所不同。
大多數USB modem廠商,如華為,Sierra Wireless,Option,還定義了專有無線模式選擇擴展(GSM/3G偏好)或類似擴展。因為性能的原因,某些最新的高速modem提供了一個虛擬乙太網介面而不是使用PPP連接,(PPP連接只在計算機和modem之間而不通過網路使用)。該設置需要供應商的AT命令擴展。有時候這些特定擴展規范是公開,而其他時候供應商則要求有一個NDA才能訪問它們。
❹ 採用at命令對 modem進行編程設置,現要讓modem完成「用音頻先撥外線(撥0)」,
「用音頻先撥外線(撥0)」這句是什麼意思 ,「用音頻」這個不能理解 撥號和音頻沒關系,
假設撥號前 你要切換音頻好了 大概流程這樣
Switchaudio(TURE); //這個是切換音頻的操作 這函數要自己寫 ,就是自己去切換GSM的GPIO口send(ATD0); //上個函數返回成功後,撥0
sleep(2000); // modem返回OK後 停頓2s
send(ATD62753321)//2S時間到後撥62753321完成 等待回應
不同的程序可能send(),sleep(),Switchaudio(),這些函數名可能不同,