日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

西门子GPRS模块开发详解

發(fā)布時(shí)間:2023/12/29 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 西门子GPRS模块开发详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以模塊MC55為例,MC55SIEMENS(西門子)公司推出的GSM/GPRS三頻模塊,主要為語音傳輸、短消息和GPRS數(shù)據(jù)業(yè)務(wù)提供無線接口。MC55集成了完整的RF射頻電路和GSM的基帶處理器,十分適合開發(fā)一些基于GSM/GPRS的無線應(yīng)用產(chǎn)品,如監(jiān)控、調(diào)度、車載、遙控、遠(yuǎn)程測量、定位和導(dǎo)航等領(lǐng)域的系統(tǒng)和產(chǎn)品,應(yīng)用范圍十分廣泛。用戶只需投入少量的研發(fā)費(fèi)用,就可以在較短的研發(fā)周期內(nèi)集成自己的應(yīng)用系統(tǒng)。


常用的AT命令如下表所示:

功能名稱

AT命令

解釋

廠家認(rèn)證

ATCGMI

獲得廠家的標(biāo)識

模式認(rèn)證

ATCGMM

查詢支持頻段

修訂認(rèn)證

ATCGMR

查詢軟件版本

生產(chǎn)序號

AT+CGSN

查詢IMEI序號

查詢IMSI

AT+CIMI

查詢國際移動(dòng)電話支持認(rèn)證

卡的認(rèn)證

AT+CCID

查詢SIM的序列號

關(guān)閉電源

AT+CPOE

暫停模塊的運(yùn)行

報(bào)告錯(cuò)誤

AT+CMEE

報(bào)告模塊設(shè)備錯(cuò)誤

撥號命令

ATD

撥打電話號碼

掛機(jī)命令

ATH

掛機(jī)

回應(yīng)呼叫

ATA

當(dāng)模塊被呼叫時(shí)回應(yīng)呼叫

關(guān)機(jī)命令

AT+CPOF

停止GSM軟件堆棧和硬件層

聲音控制

AT+CRSL

????設(shè)定電話鈴聲的聲音級別

時(shí)鐘管理

AT+CCLK

????設(shè)置或獲得真實(shí)時(shí)鐘

警報(bào)管理

AT+CALA

設(shè)定警報(bào)日期

設(shè)定電話機(jī)能

AT+CFUN

選擇移動(dòng)站點(diǎn)的機(jī)能水平

??網(wǎng)絡(luò)連接設(shè)置

AT^SICS

創(chuàng)建Internet連接到GPRS

網(wǎng)絡(luò)服務(wù)設(shè)置

AT^SISS

????指定服務(wù)器類型

開啟網(wǎng)絡(luò)服務(wù)

AT^SISO

????啟動(dòng)GPRS連接

關(guān)閉網(wǎng)絡(luò)服務(wù)

AT^SISC

????關(guān)閉GPRS連接

讀網(wǎng)絡(luò)數(shù)據(jù)

AT^SISR

????讀取GPRS接收數(shù)據(jù)

寫網(wǎng)絡(luò)數(shù)據(jù)

AT^SISW

????通過GPRS發(fā)送數(shù)據(jù)

接著是與GPRS有關(guān)的AT指令詳解

  • (1)AT^SICS(Internet Connection Setup Profile)

命令格式:AT^SICS: <conProfileId>, <conParmTag>, <conParmValue>

conProfileId指連接平臺,可以建立0-5共6個(gè)不同的連接。conParmTag指連接參數(shù),包括user、passwd、apn等,conParmValue指提供的連接類型,包括GPRS0、CSD(電路交換數(shù)據(jù)業(yè)務(wù))、none(清空)三種方式。

舉例說明如下:

AT^SICS: 0,"conType","GPRS0"??????//連接平臺0,連接方式是GPRS

AT^SICS: 0,"user","nd"????????????//連接平臺0,設(shè)置用戶名?

AT^SICS: 0,"passwd","nd"??????????//連接平臺0,設(shè)置密碼???????

AT^SICS: 0,"apn","cmnet"??????????//連接平臺0,設(shè)置APN

AT^SICS: 1,"conType",""???????????//連接平臺1,空

AT^SICS: 2,"conType",""???????????//連接平臺2,空

AT^SICS: 3,"conType",""???????????//連接平臺3,空

AT^SICS: 4,"conType",""???????????//連接平臺4,空

AT^SICS: 5,"conType",""???????????//平連接臺5,空

  • 2AT^SISS(Internet Service Setup Profile)?

命令格式:AT^SISS=<srvProfileId>, <srvParmTag>, <srvParmValue>

Srvprofield是服務(wù)配置ID,可以建立0-9共10個(gè)配置ID,如說可以用AT^SISS將配置0作socket,配置1作HTTP,配置2作FTP等,然后要啟用哪個(gè)服務(wù),就用AT^SISO=0或1或2打開哪個(gè)服務(wù),要關(guān)掉哪個(gè)服務(wù)就用AT^SISC=0或1或2關(guān)閉哪個(gè)服務(wù)。一般的數(shù)據(jù)傳輸用的都是socket服務(wù),?SISS指令里的ConID是指當(dāng)前服務(wù)調(diào)用哪個(gè)連接配置ID,連接配置ID可以設(shè)定6個(gè),可以用AT^SICS=0,apn,cmnet或者AT^SICS=1,apn,cmwap設(shè)定不同的APN,根據(jù)不同的應(yīng)用,調(diào)用不同的連接配置。

舉例說明如下:

AT^SISS: 0,"srvType","Socket"???//第0個(gè)服務(wù)平臺,服務(wù)類型為socket

AT^SISS: 0,"conId","0"??????????//第0個(gè)服務(wù)平臺,使用的連接平臺為0

AT^SISS: 0,"address",""?????????//第0個(gè)服務(wù)平臺,目前設(shè)備的地址為空

AT^SISS: 1,"srvType",""???????????//第1個(gè)服務(wù)平臺

AT^SISS: 2,"srvType",""???????????//第2個(gè)服務(wù)平臺

AT^SISS: 3,"srvType",""???????????//第3個(gè)服務(wù)平臺

AT^SISS: 4,"srvType",""???????????//第4個(gè)服務(wù)平臺

AT^SISS: 5,"srvType",""???????????//第5個(gè)服務(wù)平臺

AT^SISS: 6,"srvType",""???????????//第6個(gè)服務(wù)平臺

AT^SISS: 7,"srvType",""???????????//第7個(gè)服務(wù)平臺

AT^SISS: 8,"srvType",""???????????//第8個(gè)服務(wù)平臺

AT^SISS: 9,"srvType",""???????????//第9個(gè)服務(wù)平臺

GPRS通訊模塊MC55在使用時(shí),需要進(jìn)行通訊模塊的初始化設(shè)置,校驗(yàn)用戶名和密碼,設(shè)置TCP/IP的地址與端口等。初始化時(shí),需要MCU通過串行口按順序給模塊發(fā)送以下AT指令,設(shè)置模塊及網(wǎng)絡(luò)工作參數(shù)。

at^sics=0,conType,GPRS0?????//設(shè)置GPRS工作模式

at^sics=0,user,cm???????????//用戶名稱

????at^sics=0,passwd,gprs???????//密碼

????at^sics=0,apn,cmnet?????????//網(wǎng)絡(luò)接入點(diǎn)名稱

at^siss=1,srvType,socket????//?設(shè)置服務(wù)類型為socket

????at^siss=1,conId,0???????????//I.D.

????at^siss=1,address,"socktcp://219.238.229.74:3000" //設(shè)置服務(wù)器地址及端口

????at^siso=1 //打開端口,開始工作

  • (3)AT^SISO(Interner Service Open)

命令格式:AT^SISO=<srvProfileId>

啟動(dòng)GPRS連接。

  • 4AT^SISC(Internet Service Close)?

命令格式:AT^SISC=<srvProfileId>

關(guān)閉GPRS連接。

  • ?5AT^SISR(Internet Service Read Data)

命令格式:AT^SISR=<srvProfileId>, <reqReadLength>

通過GPRS發(fā)送數(shù)據(jù),實(shí)際上是通過串行口把數(shù)據(jù)寫入到GPRS通訊模塊,然后由GPRS模塊發(fā)送到指定的IP端口。發(fā)送時(shí)需要按照以下順序進(jìn)行操作。

????寫串口:at^sisw=0,10???????????// 使用通道0, 發(fā)送10字節(jié)的數(shù)字

????讀串口:^SISW: 0, 10???????????// 網(wǎng)絡(luò)響應(yīng)

????寫串口:12312312342342342345???//?發(fā)送數(shù)據(jù)

????讀串口:OK?????????????????????// 接收響應(yīng) OK

????讀串口:^SISW: 0, 1????????????//接收網(wǎng)絡(luò)響應(yīng),收到則已經(jīng)發(fā)送成功

  • (6)AT^SISW(Internet Service Write Data)

命令格式:AT^SISW=<srvProfileId>, <reqWriteLength>

接收GPRS的數(shù)據(jù),即接收已經(jīng)連接上的服務(wù)器發(fā)來的數(shù)據(jù),可以通過串行口從GPRS模塊中讀取,按以下順序進(jìn)行操作:

?????讀串口:^SISR: 0, 1????????//接收到該信息則準(zhǔn)備接收數(shù)據(jù)

?????寫串口:at^sisr=0,20???????//發(fā)送需要接收的數(shù)據(jù)長度

?????讀串口:^SISR: 0, 20???????//返回實(shí)際的數(shù)據(jù)長度

?????讀串口:12312312342342342345 //所接收的數(shù)據(jù)

?????讀串口:OK    ?????????//接收成功

?

?

?

最后是案例分析

進(jìn)行GPRS通信首先需要與服務(wù)器建立GPRS連接,即實(shí)現(xiàn)GPRS登陸。在登陸前需要使用AT指令對無線通信模塊MC55進(jìn)行初始化設(shè)置,設(shè)置內(nèi)容包括連接方式、服務(wù)類型、接入點(diǎn)名稱、服務(wù)器地址及端口。初始化完成后即可開啟網(wǎng)絡(luò)服務(wù),模塊會(huì)自動(dòng)登錄到服務(wù)器的相應(yīng)端口上,登陸完成后就可以進(jìn)行數(shù)據(jù)通信了。

具體實(shí)現(xiàn)程序如下所示:

??? (1OutPut("at^sics=1,contype,gprs0/r/0");???//連接平臺1,設(shè)置網(wǎng)絡(luò)連接類型為gprs方式

????????????????????????// void OutPut(char *strings)函數(shù)的功能是通過串口向MC55輸出數(shù)據(jù)

????檢測到通信模塊返回“OK”則設(shè)置成功。

??? (2OutPut("at^sics=1,apn,cmnet");?????????? //設(shè)置apn為cmnet

檢測到通信模塊返回“OK”則設(shè)置成功。

3OutPut("at^siss=2,srvtype,socket/r/0");??//2個(gè)服務(wù)平臺,設(shè)置服務(wù)類型為socket

檢測到通信模塊返回“OK”則設(shè)置成功。

4OutPut("at^siss=2,conid,1/r/0");?????????//2個(gè)服務(wù)平臺,使用的連接平臺為1

檢測到通信模塊返回“OK”則設(shè)置成功。

5OutPut("at^siss=2,address,socktcp://219.238.229.74:1200");//設(shè)置服務(wù)器地址及端口

檢測到通信模塊返回“OK”則設(shè)置成功。??

6OutPut("at^siso=2/r/0");?????????//打開網(wǎng)絡(luò)服務(wù),MC55登陸到服務(wù)器相應(yīng)的端口上

檢測到通信模塊返回“OK”則設(shè)置成功。

7OutPut("at^sisw=2,10/r/0");??????//使用平臺2向服務(wù)器發(fā)送10字節(jié)的數(shù)據(jù)包

if(strstr(buffer,"^SISW:")!=0) //檢測到模塊返回?cái)?shù)據(jù)“^SISW:”后通過模塊將需要發(fā)送的數(shù)據(jù)發(fā)送到服務(wù)器相應(yīng)端口上

???? OutPut("1234567890/r/0");????????//發(fā)送數(shù)據(jù)包

通過GPRS發(fā)送數(shù)據(jù),實(shí)際上是通過串行口把數(shù)據(jù)寫入到GPRS通訊模塊,然后由GPRS模塊發(fā)送到指定的IP端口。

(8)寫串口:at^sisr=0,20????????? //發(fā)送需要接收的數(shù)據(jù)長度?
?????????讀串口:^SISR: 0, 20????????? //返回實(shí)際的數(shù)據(jù)長度?
?????????讀串口:12312312342342342345? //接收的數(shù)據(jù)

接收GPRS的數(shù)據(jù),即接收已經(jīng)連接上的服務(wù)器發(fā)來的數(shù)據(jù),可以通過串行口從GPRS模塊中讀取。

(9)OutPut("at^sisc=2/r/0");??????//關(guān)閉網(wǎng)絡(luò)服務(wù),MC55從服務(wù)器斷開

?

?

轉(zhuǎn)自http://blog.csdn.net/sdwuyulunbi/archive/2009/10/29/4743075.aspx

總結(jié)

以上是生活随笔為你收集整理的西门子GPRS模块开发详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。