<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 單片機控制GSM手機的技術(shù)及應用

單片機控制GSM手機的技術(shù)及應用

——
作者:防空兵指揮學(xué)院 陳慧明 時(shí)間:2007-11-12 來(lái)源:?jiǎn)纹瑱C及嵌入式系統應用 收藏

    隨著(zhù)科技的飛速發(fā)展和人民生活水平的不斷提高,手機的普及率越來(lái)越高,更新也越來(lái)越快,價(jià)格也越來(lái)越便宜。因為手機工作的無(wú)線(xiàn)網(wǎng)絡(luò )覆蓋范圍廣,在信息傳遞方面性能穩定、可靠,所以把手機作為信息傳遞的載體,與結合起來(lái)構成應用系統有著(zhù)強大的生命力和廣闊的應用空間,特別是在遠程數據傳輸、遠程監控等領(lǐng)域更是受到電子設計應用工程師的關(guān)注。一些專(zhuān)業(yè)刊物也介紹了一些有關(guān)這方面的文章,然而由于手機的控制指令復雜,數據格式繁瑣,工程技術(shù)人員在進(jìn)行與手機的硬軟件接口設計時(shí)經(jīng)常會(huì )遇到很多困難,有時(shí)還無(wú)資料可查。筆者在完成一個(gè)項目的開(kāi)發(fā)過(guò)程中,針對幾種手機進(jìn)行了大量的測試和實(shí)驗,在此基礎上歸納出一些帶規律性的結論,對此結論,工程設計人員可拿來(lái)即用,大大縮短研發(fā)周期,現在把它公布出來(lái),愿與廣大電子設計人員共享。

1 硬件接口技術(shù)方面

    目前市場(chǎng)上流行的大部分手機幾乎都具有數據引出口,并基本上都支持與GsM短信息相關(guān)的AT控制指令(GSM-SMS-AT指令),手機通過(guò)數據口以串行方式接收指令并向外輸出數據。理論上講,在數據口中找出RxD、TxD和GND引腳與的串口對應連接即完成了硬件接口。然而,實(shí)際上由于不同品牌,不同型號手機的RxD、TxD和GND引腳并非一致,找查這三根線(xiàn)有時(shí)也非易事;況且手機數據口的電平既不是RS232電平,也不是TTL電平,與由5V供電的單片機串口還不能直接連接。最簡(jiǎn)單可靠的方法是使用手機的數據線(xiàn)建立單片機與手機的硬件連接。手機數據線(xiàn)是專(zhuān)為連接PC機9針串口而設計的,信號電平為標準的RS232電平,只要單片機的串口也轉換為Rs 2 3 2電平,就可方便連接。9針串口引腳定義是固定的,即2腳為T(mén)xD(手機發(fā)送),3腳為RxD(手機接收)、5腳為GND。這樣,無(wú)論什么型號的手機與單片機的連接就成了固定連接,不需要知道手機數據口信號的具體定義,二者通過(guò)數據線(xiàn)的連接電路如圖1所示。 

  需要注意的是:不同手機數據線(xiàn)內部電平轉換芯片的供電方式是不同的,有的是通過(guò)手機直接供電;有的是通過(guò)竊取PC機串口某些引腳(通常為4、6、7、8引腳)的電流經(jīng)內部整流濾波穩壓后提供。判斷的方法是將數據線(xiàn)一端插到手機數據口,測量另一端2腳與5腳之間的電壓,如果有一7V左右的電壓,則為前者,如果測不出電壓,則為后者,對于后者則需要單片機為4、6、7、8引腳任意一引腳提供+5V電壓即可,如圖1中虛線(xiàn)所示。

2 軟件接口技術(shù)及控制原理

    單片機與手機的軟件接口其實(shí)就是單片機通過(guò)與GSM短信息有關(guān)的AT指令控制手機的控制技術(shù),如讀取手機的短消息內容,刪除短消息內容,列出手機中還未讀的短消息等。關(guān)于A(yíng)T指令的功能描述見(jiàn)參考文獻[1,2]的文章內容,此處不再贅述。然而,執行一條指令,也并非某些資料中介紹得那么簡(jiǎn)單。事實(shí)上,指令的執行過(guò)程需要單片機與手機交互應答完成,每一次發(fā)送或接收的字節數有嚴格的規定,二者必須依據這些規定實(shí)現數據交換,否則,通信就是失敗的。筆者經(jīng)過(guò)對幾種手機反復測試,總結出來(lái)一些規律,如表1所列。

    對幾個(gè)問(wèn)題說(shuō)明如下。

    ①所有AT指令的指令符號、常數、PDu數據包等都是以ASCII編碼形式傳送的,比如“A”的ASCII編碼為41H,“T”的AscII編碼為54H,數字“0,,的AsCⅡ編碼為30H等。

    ②單片機控制手機工作,必須把手機的短信息工作模式設置為PDu格式,即通過(guò)指令AT+cMGF=O完成。
 
   ③單片機向手機發(fā)送每一條指令后,必須以回車(chē)符作為該條指令的結束,回車(chē)的ASCII編碼為0DH。例如,單片機向手機發(fā)送“AT+CMGF=0”這條指令,其ASCII編碼序列為“41H、54H、2BH、42H、4DH、47H、46H、3DH、30H、0DH”,最后一個(gè)字節0DH就是回車(chē)符,表示該條指令結束,如果沒(méi)有這個(gè)回車(chē)符,手機將不識別這條指令。

    ④當手機接收到一條完整的AT指令后,手機并不立即執行這條指令,而是先把剛才接收到的AT指令的全部ASCII編碼序列全部反發(fā)送出來(lái)(含0DH),然后發(fā)送一個(gè)回車(chē)符和換行符的ASCII編碼,即0DH和0AH,最后執行該條指令。

    ⑤手機向單片機傳送短信息內容時(shí),其PDu數據包的內容是以十六進(jìn)制表示的數據,但并不是直接向單片機傳遞十六進(jìn)制數據,而仍然是把每一位十六進(jìn)制數以AscII編碼來(lái)發(fā)送。這樣,二個(gè)字節的十六進(jìn)制數就變成4字節的ASCII碼。但是,PDU數據包中的數據字節長(cháng)度部分仍然是實(shí)際字節長(cháng)度,而不是變成AscII碼的字節長(cháng)度,這在編程時(shí)應特別注意,否則,接收的數據就不完整。單片機接收到PDU數據包數據后,必須將其恢復成十六進(jìn)制數據,其算法如下:設a為接收的ASCII碼,b為轉換后的十六進(jìn)制數。如果a<39H,則b=a-30H;如果a>39H,則b=a-30H-07H,最后把前后兩個(gè)數合并為一個(gè)字節。

    ⑥手機向單片機應答PDU數據包的字節數不包括前9字節數據(短信服務(wù)中心地址),但向單片機傳送PDU數據包時(shí),包括這9個(gè)字節的數據。例如,如果手機應答的PDU數據長(cháng)度為50,而實(shí)際向單片機傳送的十六進(jìn)制數據為59字節,ASCII碼為2



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>