基于GPRS的SOCKET通信的應(yīng)用研究

相關(guān)專題: 無線 芯片

  摘要:SOCKET通信是目前常用的通信方式之一。文中以8位單片機AT89C52作為微控制器,它利用自帶的異步串口與電平轉(zhuǎn)換芯片MAX232和GPRS模塊連接,使用AT命令對GPRS模塊LT8030進行控制,從而實現(xiàn)SOCKET通信。詳細介紹SOCKET通信中要用到的AT命令,并給出實現(xiàn)SOCKET通信的完整程序。

  關(guān)鍵詞:SOCKET通信 GPRS 串行通信 AT命令

引 言

  GPRS(General Packet Radio Service)是通用分組無線業(yè)務(wù)的簡稱,是一種以全球手機系統(tǒng)(GSM)為基礎(chǔ)的數(shù)據(jù)傳輸技術(shù)\[1\]。GPRS網(wǎng)不但具有覆蓋范圍廣、數(shù)據(jù)傳輸速度快、通信質(zhì)量高、永遠在線和按流量計費等優(yōu)點,而且其本身就是一個分組型數(shù)據(jù)網(wǎng),支持TCP/IP協(xié)議,無需經(jīng)過PSTN(公用電話交換網(wǎng))等網(wǎng)絡(luò)的轉(zhuǎn)接,可直接與Internet網(wǎng)互通。因此GPRS業(yè)務(wù)在無線上網(wǎng)、環(huán)境監(jiān)測、交通監(jiān)控、移動辦公等行業(yè)中具有無可比擬的性價比優(yōu)勢。

  在網(wǎng)絡(luò)設(shè)置中有HTTP、SOCKET等類型。SOCKET是建立在傳輸層協(xié)議(主要是TCP和UDP)上的一種套接字規(guī)范,它定義兩臺計算機間進行通信的規(guī)范(也是一種編程規(guī)范)。如果說兩臺計算機是利用一個通道進行通信,那么這個通道的兩端就是兩個套接字。套接字屏蔽了底層通信軟件和具體操作系統(tǒng)的差異,使得任何兩臺安裝了TCP協(xié)議軟件和實現(xiàn)了套接字規(guī)范的計算機之間的通信成為可能。

1 系統(tǒng)組成

  系統(tǒng)的組成如圖1所示。該系統(tǒng)利用現(xiàn)有的GPRS網(wǎng)絡(luò),單片機通過串口對GPRS模塊進行收發(fā)控制,實現(xiàn)SOCKET通信。

  系統(tǒng)各部分的說明如下:

 、 單片機采用了AT89C52,它帶有一個串口;

 、 GPRS模塊。本文以利事達信息技術(shù)有限公司開發(fā)的GPRS模塊LT8030[2]為例。LT8030內(nèi)嵌了完整的TCP/IP協(xié)議棧,包括TCP、UDP、FTP、SOCKET、Telnet、POP3、SMTP、HTTP等,為用戶提供了更簡單的網(wǎng)絡(luò)接口。LT8030采用的GPRS技術(shù),無縫覆蓋、永遠在線且按流量計費,緊密結(jié)合產(chǎn)品應(yīng)用領(lǐng)域所遇到的實際問題,進行全面的優(yōu)化和升級,使產(chǎn)品開發(fā)變得更容易、更快捷。它采用標準的RS232 接口,用戶可以通過單片機或其他CPU的UART口,使用相應(yīng)的AT命令對模塊進行控制,達到使其產(chǎn)品可以輕松進入GPRS網(wǎng)絡(luò)的目的。

 、 服務(wù)器。建立SOCKET連接必須具有公網(wǎng)的IP地址,故應(yīng)保證服務(wù)器中心計算機連接到Internet并且取得公網(wǎng)IP地址。在單片機對GPRS模塊控制之前,服務(wù)器端需運行SOCKET端口監(jiān)聽程序(此監(jiān)聽程序一般是現(xiàn)成的),并且設(shè)為監(jiān)聽狀態(tài),端口號也要設(shè)定,例如port:1024。

2 單片機與GPRS模塊的連接

  單片機與GPRS模塊一般采用串行異步通信接口,通信速度可設(shè)定,通常為9600 bps。采用RS232電纜方式進行連接時,數(shù)據(jù)傳輸?shù)目煽啃暂^好。單片機通過電平轉(zhuǎn)換電路與GPRS模塊連接,電路比較簡單,電路原理圖如圖2所示。所涉及的芯片MAX232用于串行通信接口與232通信接口之間的電平轉(zhuǎn)換[3]。

 

                   
圖1系統(tǒng)組成框圖



            
圖2單片機與GPRS模擬連接的電路原理圖


  MAX232的T1IN、T2IN、R1OUT、R2OUT為接TTL/CMOS電平的引腳;T1OUT、T2OUT、R1IN、R2IN為接RS232電平的引腳。TTL/CMOS電平的T1IN、T2IN引腳應(yīng)接AT89C52的串行發(fā)送引腳TXD;R1OUT、R2OUT應(yīng)接AT89C52的串行接收引腳RXD。與之對應(yīng),RS232電平的T1OUT、T2OUT應(yīng)接GPRS模塊的接收端RXD;R1IN、R2IN應(yīng)接GPRS模塊的發(fā)送端TXD。

  現(xiàn)選用其中一路發(fā)送/接收,R1OUT接AT89C52的RXD,T1IN接AT89C52的TXD,T1OUT接GPRS模塊的RXD, R1IN接GPRS模塊的發(fā)送端TXD。因為MAX232具有驅(qū)動能力,所以不需要外加驅(qū)動電路。

3 建立SOCKET連接的命令

  下面對SOCKET通信中要用到的一些AT命令[2]進行說明。

  3.1 基本設(shè)置

 、 GPRS ISP 碼。
  AT+IISP1=*99***1# //全國通用

 、 登錄用戶名。
  AT+IUSRN=WAP//GPRS網(wǎng)絡(luò)登錄名

 、 登錄密碼。
  AT+IPWD=WAP// GPRS網(wǎng)絡(luò)登錄密碼

 、 MODEM 類型。
  AT+IMTYP=2 //定義GPRS MODEM

 、 初始化命令。
  AT+IMIS=“AT+CGDCONT=1,ip,CMNET”

 、 域名服務(wù)器。
  AT+IDNS1=211.136.18.171
  //DNS服務(wù)器地址,全國通用

 、 擴展碼(XRC)。
  AT+IXRC=0

  3.2 SOCKET設(shè)置

  ① 建立一個TCP通信。
  AT+ISTCP:218.66.16.173,1024
  建立SOCKET連接,218.66.16.173為應(yīng)用服務(wù)中心計算機端IP地址(實際地址由實際情況決定),1024 為端口號(端口號由中心SOCKET端口監(jiān)聽程序設(shè)置決定)。 如果連接成功,LT8030返回I/xxx。xxx為LT8030中本次SOCKET連接的句柄號。中心監(jiān)聽程序會顯示連接的終端IP地址。如果連接失敗,LT8030返回I/ERROR(xxx)。xxx為錯誤代碼。

 、 發(fā)送數(shù)據(jù)。
  AT+ISSND%:xxx,
  發(fā)送數(shù)據(jù),xxx為句柄,為要發(fā)送的字符長度,為要發(fā)送的數(shù)據(jù)。發(fā)送成功后,在中心端可看到終端發(fā)送的數(shù)據(jù)。最多一次能夠發(fā)送5K以下的數(shù)據(jù)。

 、 查詢SOCKET狀態(tài)。
  AT+ISST:xxx
  查詢SOCKET狀態(tài),xxx為句柄。 LT8030返回I/。如果= 000,表示該端口連接正常;如果≥1,LT8030通過該端口從中心接收存在Buffer 里的字節(jié)數(shù);如果<0,則SOCKET錯誤。

  ④ 接收數(shù)據(jù)。
  AT+ISRCV:xxx
  xxx為句柄。該指令會讀取LT8030通過該句柄從中心接收到的,存在Buffer 里的數(shù)據(jù);Buffer最大可存儲30K的數(shù)據(jù)。

  ⑤ 關(guān)閉SOCKET通道。
  AT+ISCLS:xxx
  關(guān)閉SOCKET通道,xxx為句柄。

4 程序的設(shè)計  

  根據(jù)單片機與GPRS模塊通信協(xié)議的約定,單片機串行口設(shè)為方式1,波特率為9 600 bps,8位UART,1位起始位,1位停止位,無奇偶校驗。上電后,首先向GPRS模塊發(fā)送基本設(shè)置命令,即ISP碼、用戶名及用戶密碼幀等,其中ISP碼必須為“*99***1#”,用戶名和用戶密碼可以任意設(shè)置,但不能為空。在使用LT8030 GPRS 上網(wǎng)功能之前,必須正確設(shè)置這些參數(shù)。參數(shù)一旦設(shè)置后,即永久保存,以后無需重新再設(shè)( 以上設(shè)定為LT8030C出廠時的默認參數(shù))。然后向GPRS模塊發(fā)送SOCKET設(shè)置幀,如成功,則點和點通信環(huán)境已建立,接著就調(diào)用發(fā)送數(shù)據(jù)幀。

  開機上電后,程序在主函數(shù)中運行,單片機進行初始化。初始化包括設(shè)置串口工作方式、波特率,并初始化變量參數(shù)和標志位。

  編著注:實現(xiàn)SOCKET通信的完整程序,見本刊網(wǎng)站(www.dpj.com.cn)。

結(jié)語

  隨著計算機和通信技術(shù)的進步,當今社會的生產(chǎn)正朝著高效、準確和穩(wěn)定的方向發(fā)展,這對數(shù)據(jù)傳輸?shù)膶崟r性、可靠性、信息量提出了更高的要求,為此介紹利用GPRS模塊實現(xiàn)SOCKET通信的系統(tǒng)。本文采用內(nèi)嵌TCP/IP協(xié)議的GPRS模塊LT8030,在8位微控制器AT89C52上實現(xiàn)了對LT8030的控制,并實現(xiàn)了基于GPRS的SOCKET通信功能,具有外圍器件少、電路簡單、系統(tǒng)成本低等優(yōu)點。

                參考文獻

1 J R (Bud)Bates. 通用分組無線業(yè)務(wù)(GPRS)技術(shù)與應(yīng)用. 朱洪波,等譯. 北京:人民郵電出版社,2004
2 利事達信息技術(shù)有限公司.LT8030介紹
3 胡偉,季曉衡.單片機C程序設(shè)計及應(yīng)用實例. 北京:人民郵電出版社,2003
4 張毅剛,彭喜元,等.MCS51單片機應(yīng)用設(shè)計.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2002

余琴:研究生,主要從事智能儀器設(shè)計與嵌入式系統(tǒng)方向的研究。
趙振華:研究生導(dǎo)師,副教授,主要從事智能儀器設(shè)計與嵌入式系統(tǒng)方向的研究與教學(xué)。
作者:武漢工程大學(xué) 余琴 趙振華   來源:單片機及嵌入式系統(tǒng)應(yīng)用

微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息