您的位置:首页 > 其它

sim900芯片—GPRS模块ppp拨号上网

2017-01-18 15:44 1041 查看
-----------------------------------------------------------------------

Cross compiler:arm-linux-gcc-4.5.4

Linux kernel version:linux-3.0

Development board:fl2440

Author:  Yuzhonghan <754270866@qq.com>

-----------------------------------------------------------------------

博文提醒:在开发GPRS模块时所准备的开通GPRS流量的sim卡需要能正常使用!!!

一.GPRS概述:

GSM模块,是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。GSM模块根据其提供的数据传输速率又可以分为GPRS模块、EDGE模块和纯短信模块。短信模块只支持语音和短信服务。GPRS,可说是GSM的延续。它经常被描述成“2.5G”,也就是说这项技术位于第二代(2G)和第三代(3G)移动通讯技术之间。GPRS的传输速率从56K到114Kbps不等,理论速度最高达171k。相对于GSM的9.6kbps的访问速度而言,GPRS拥有更快的访问数据通信速度,GPRS技术还具有在任何时间、任何地点都能实现连接,永远在线、按流量计费等特点。EDGE技术进一步提升了数据传输的速率到384K-473K,被称为”2.75G”,数据传输速率更2倍于GPRS。目前,国内的GSM网络普遍具有GPRS通讯功能,移动和联通的网络都支持GPRS,EDGE在部分省市实现了网络覆盖。 

GPRS模块,是具有GPRS数据传输功能的GSM模块。GPRS模块就是一个精简版的手机,集成GSM通信的主要功能于一块电路板上,具有发送短消息、通话、数据传输等功能。GPRS模块相当于手机的核心部分,如果增加键盘和屏幕就是一个完整的手机。普通电脑或者单片机可以通过RS232串口与GPRS模块相连,通过AT指令控制GPRS模块实现各种基于GSM的通信功能。 

GPRS模块区别于传统的纯短信模块,两者都是GSM模块,但是短信模块只能收发短信和语音通讯,而GPRS模块还具有GPRS数据传输功能。”


二.配置内核支持ppp拨号上网

Generic Driver Options  --->

--- Network device support

      *** CAIF transport drivers ***

<*>   PPP (point-to-point protocol) support

[*]     PPP multilink support (EXPERIMENTAL)

[*]     PPP filtering

<*>     PPP support for async serial ports

<*>     PPP support for sync tty ports

<*>     PPP Deflate compression

<*>     PPP BSD-Compress compression

<*>     PPP MPPE compression (encryption) (EXPERIMENTAL)

<*>     PPP over Ethernet (EXPERIMENTAL)

三.下载解压ppp-2.4.4.tar.gz
http://download.csdn href="http://lib.csdn.net/base/dotnet" target=_blank>.NET/detail/zhyustar/1531748

[Ciel@localhost sim900]$ ls 

ppp-2.4.4  ppp-2.4.4.tar.gz

[Ciel@localhost sim900]$ cd ppp-2.4.4

[Ciel@localhost ppp-2.4.4]$ ./configure 

[Ciel@localhost ppp-2.4.4]$ ls

Changes-2.3  common     contrib  FAQ      Linux     modules  pppd     pppstats
 README.cbcp     README.linux  README.MSCHAP80  README.pppoe  README.sol2  SETUP

chat         configure  etc.ppp  include  Makefile  PLUGINS  pppdump  README    README.eap-srp  README.MPPE   README.MSCHAP81  README.pwfd   scripts      solaris

[Ciel@localhost ppp-2.4.4]$ cd chat/

[Ciel@localhost chat]$ vim chat.c



[Ciel@localhost chat]$ vim Makefile



[Ciel@localhost pppd]$ vim auth.c



[Ciel@localhost pppd]$ vim Makefile





[Ciel@localhost ppp-2.4.4]$ make

[Ciel@localhost chat]$ ls
chat  chat.8  chat.c  chat.o  Makefile  Makefile.linux  Makefile.sol2

[Ciel@localhost chat]$ file chat

chat: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

[Ciel@localhost pppd]$ file pppd

pppd: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

把chat 和 pppd 两个文件  tf
4000
tp 到开发板并放到  /usr/sbin/ 下

四. 开发板下脚本的编写

在 /etc 下 创建一个 ppp 的文件夹:>: mkdir /etc/ppp

1.在其目录下编写 chat 脚本:





2.编写gprs脚本

在  /etc/ppp/peer/ 下编写GPRS脚本



五.测试

>: ifconfig

eth0      Link encap:Ethernet  HWaddr F2:C1:05:50:86:D7  

          inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0

          UP BROADCAST MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

          Interrupt:51 Base address:0x2300 

>: ifconfig eth0 down

>: ifconfig

>: pppd call gprs &

>: abort on (BUSY)

abort on (NO ANSWER)

abort on (NO CARRIER)

abort on (NO DIALTONE)

abort on (ERROR)

abort on (\nRING\r\n\r\nRING\r)

timeout set to 20 seconds

send (^MAT^M)

expect (OK)

^MAT^M^M

OK

 -- got it

send (AT+CGDCONT=1,"IP","cmnet"^M)

expect (OK)

^M

AT+CGDCONT=1,"IP","cmnet"^M^M

OK

 -- got it

send (ATDT*99***1#^M)

Waiting for connect...

expect (CONNECT)

^M

ATDT*99***1#^M^M

CONNECT

 -- got it

send (^M)

Connect Success!

Serial connection established.

using channel 1

Using interface ppp0

Connect: ppp0 <--> /dev/ttyS1

sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x37c1dc9c> <pcomp> <accomp>]

rcvd [LCP ConfReq id=0x1 <asyncmap 0xa0000> <auth pap>]

sent [LCP ConfAck id=0x1 <asyncmap 0xa0000> <auth pap>]

rcvd [LCP ConfRej id=0x1 <magic 0x37c1dc9c> <pcomp> <accomp>]

sent [LCP ConfReq id=0x2 <asyncmap 0x0>]

rcvd [LCP ConfAck id=0x2 <asyncmap 0x0>]

No secret found for PAP login

sent [PAP AuthReq id=0x1 user="root" password=<hidden>]

rcvd [PAP AuthAck id=0x1 "Login OK"]

Remote message: Login OK

PAP authentication succeeded

sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]

sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]

rcvd [LCP ProtRej id=0x2 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]

Protocol-Reject for 'Compression Control Protocol' (0x80fd) received

sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]

rcvd [IPCP ConfReq id=0x1 <addr 192.200.1.21>]

sent [IPCP ConfAck id=0x1 <addr 192.200.1.21>]

rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]

sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]

rcvd [IPCP ConfNak id=0x2 <addr 10.46.58.195> <ms-dns1 211.137.58.20> <ms-dns3 211.137.64.163>]

sent [IPCP ConfReq id=0x3 <addr 10.46.58.195> <ms-dns1 211.137.58.20> <ms-dns3 211.137.64.163>]

rcvd [IPCP ConfAck id=0x3 <addr 10.46.58.195> <ms-dns1 211.137.58.20> <ms-dns3 211.137.64.163>]

local  IP address 10.46.58.195

remote IP address 192.200.1.21

primary   DNS address 211.137.58.20

secondary DNS address 211.137.64.163

>: ifconfig

ppp0      Link encap:Point-to-Point Protocol  

          inet addr:10.46.58.195  P-t-P:192.200.1.21  Mask:255.255.255.255

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

          RX packets:10 errors:0 dropped:0 overruns:0 frame:0

          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:3 

          RX bytes:352 (352.0 B)  TX bytes:205 (205.0 B)

>: ping www.baidu.com

PING www.baidu.com (103.235.46.39): 56 data bytes

64 bytes from 103.235.46.39: seq=0 ttl=47 time=340.735 ms

64 bytes from 103.235.46.39: seq=1 ttl=47 time=335.719 ms

64 bytes from 103.235.46.39: seq=2 ttl=47 time=370.038 ms

64 bytes from 103.235.46.39: seq=3 ttl=47 time=342.606 ms

64 bytes from 103.235.46.39: seq=4 ttl=47 time=339.175 ms

64 bytes from 103.235.46.39: seq=5 ttl=47 time=335.791 ms

64 bytes from 103.235.46.39: seq=6 ttl=47 time=327.735 ms

--- www.baidu.com ping statistics ---

7 packets transmitted, 7 packets received, 0% packet loss

round-trip min/avg/max = 327.735/341.685/370.038 ms

这样呢,就是可以上网了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: