—————————————————————————————————————————————

主机操作系统:Centos 6.5

交叉编译器环境:arm-linux-gcc-4.5.4

开发板平台: FL2440

Linux内核版本号: linux-3.0

开发模块: SIM900 GPRS

邮箱:luhu918@gmail.com

—————————————————————————————————————————————

开发提醒:在开发gprs模块ppp拨号上网之前需满足fl2440开发版能正常载入linux内核及文件系统。而且开发板的串口已经使能。同一时候需准备一张开通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传输数据功能。”



由于GPRS。串口都是设备。难道就不须要再在linux内核中使能驱动吗?是这种。在一開始内核中就已经对串口驱动进行了使能,而GPRS模块中有GPRS模块的驱动,这个模块通过自身的串口不断的发送数据开发板须要做的就是读取然后处理就够了。



串口线将 GPRS模块的串口和开发板的串口连接起来(我连接的是开发的第二个串口(ttys1),由于第一个串口连接PC了(ttys0)),然后将能够使用的手机SIM卡插入 GPRS模块的卡槽;然后启动开发板,接通GPRS模块的电源。然后按下GPRS模块的SW1,让SIM開始工作,搜索网络这时发光二极管D3会闪烁。

二:编辑Linux内核,使其支持PPP拨号上网

[hulu@centos6 linux-3.0]$ make menuconfig

Device dirver --->Network device
*** 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

下载ppp-2.4.4.tar.gz

http://download.csdn.net/detail/zhyustar/1531748

[hulu@centos6 ~]$ mkdir GPRS

[hulu@centos6 ~]$ cd GPRS

[hulu@centos6 GPRS]$ tar -xzf ppp-2.4.4.tar.gz

[hulu@centos6 GPRS]$ ls

ppp-2.4.4 ppp-2.4.4.tar.gz

[hulu@centos6 GPRS]$ cd ppp-2.4.4

[hulu@centos6 ppp-2.4.4]$ ls

[hulu@centos6 ppp-2.4.4]$ ./configure

[hulu@centos6 ppp-2.4.4]$ cd chat/

[hulu@centos6 chat]$ ls

chat.8 chat.c Makefile Makefile.linux Makefile.sol2

[hulu@centos6 chat]$ vim chat.c

[hulu@centos6 chat]$ vim Makefile



[hulu@centos6 chat]$ cd ../pppd

[hulu@centos6 pppd]$ vim auth.c



[hulu@centos6 pppd]$ vim Makefile





[hulu@centos6 ppp-2.4.4]$ make

[hulu@centos6 ppp-2.4.4]$ cd chat

[hulu@centos6 chat]$ ls

chat chat.8 chat.c chat.o Makefile Makefile.linux Makefile.sol2

[hulu@centos6 chat]$ file chat

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

[hulu@centos6 pppd]$ file pppd

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

把生成的pppd 和chat 下载到自己的开发板上,放在/usr/sbin中,并改动权限

如:chmod 777 chat

四:制作脚本文件



gprs模块ppp拨号上网的时候须要例如以下几个配置文件:

<1> /etc/ppp/peers/gprs

<2> /etc/ppp/chat-gprs-connect

默认情况在开发板的/etc/ppp/文件夹下建立文件gprs-connect-chat。它是在ppp底层会话的时候给chat进程的參数,每行是一个“期望/发送”的组合序列。

一个简单的chat脚本有以下的结构:

“” AT

OK ATDT dialnumber

CONNECT “”

1) MODEM期望空字符串。这句话的意思直接理解就是MODEM无论收到什么字符串,先发出字符串AT;

2) 期望收到“OK”字符串,然后发送字符串“ATDT dialnumber”

3) 假设收到“CONNECT”,就不再发送,觉得数据链路已建立连接。

4)假设须要进行超时控制,就能够添加例如以下字段:

TIMEOUT 10

5)假设要添加对特殊情况的处理,就添加以下字段:

ABORT BUSY

ABORT NO ANSWER

ABORT RINGING

意思是:假设收到字符串“BUSY”、“NO ANSWER”、“RINGING”就退出运行。

编写chat脚本例如以下:以下都是在开发板上操作

~>cd /etc

~>mkdir ppp

~>cd ppp

~>vi gprs-connect-chat

#/etc/ppp/gprs-connect-chat
#Copyright (c) 2016 hulu luhu918@gmail.com
# This is second part of the ppp dial script. It will perform the connection
ABORT 'BUSY'
ABORT 'NO ANSWER'
ABORT 'NO CARRIER'
ABORT 'NO DIALTONE'
ABORT 'ERROR'
ABORT '\nRING\r\n\r\nRING\r' '' \rAT
OK ATE0
SAY "Press CTRL-C to break the connection process.\n"
OK 'AT+CGDCONT=1,"IP","3GNET"' //isp接入网关为中国联通的3GNET
OK ATDT*99# //这里要改成自己的运营商号码。。我的这个号码是联通的
#拨号上网
SAY "Waiting for connect...\n"
CONNECT ''
SAY "Connect Success!\n"



编写gprs配置文件:

它的作用是给pppd进程提供配置參数(详见man 8 pppd的输出内容。假设出现故障这个将是很重要的參考页),内容例如以下:

~>mkdir peers

~>cd peers

~>vi gprs

#/etc/ppp/peers/gprs
# Usage: root>pppd call gprs
#set seriral
/dev/ttyS1 # set baudrate
115200 # set flowdate 可能你的串口是须要crtscts,硬件流控的,这是由你的串口决定的,一般嵌入式系统的串口没有带硬件流控,也不须要就加nocrtscts
nocrtscts #set debug ,send message to /var/log/messages
debug #To keep pppd on the terminal
nodetach # Accept the peer's idea of our local IP address
ipcp-accept-local
# Accept the peer's idea of its (remote) IP address
ipcp-accept-remote #dial up connetion as the default route
defaultroute usepeerdns
Noipdefault #user hulu connect '/usr/sbin/chat -s -v -f /etc/ppp/chat-gprs-connect'

pppd调用chat会话进程接入对端isp,启动对端的pppd,然后本地pppd与对端的pppd一起进行协商网络參数和chap/pap认证,成功后。再进行ncp层的ip的分配。

五:在开发板上測试ppp拨号



要用ping,你须要将eth0即网口给禁用掉,这样ping才会通过ppp0端口寻找路由连接外网

~>ifconfig eth0 down

~>pppd call gprs & //&是后台运行的意思。。仅仅有这条后台运行。。我们才干在前台检測是否上网





假设出现ping得通4.2.2.2,却png不通www.baidu.com,那就是DNS的问题

解决的方法:

你可能须要将/etc/ppp/resolv.conf(内容被新获得的dns代替)内容复制到/etc/resolv.conf中或者做一个到/etc/resolv.conf的链接

也能够直接编辑/etc/resolv.conf

~>vi /etc/resolv.conf

nameserver 4.2.2.2

nameserver 8.8.8.8

~>ifconfig

至此关于sim900GPRS模块ppp拨号上网成功实现,各位读友们有问题直接私聊我。!

sim900GPRS模块ppp拨号上网的更多相关文章

  1. 在ARM-linux上实现4G模块PPP拨号上网【转】

    本文转载自:http://blog.csdn.net/zqixiao_09/article/details/52540887 在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从 ...

  2. linux下GPRS模块ppp拨号上网

    ---------------------------------------------------------------------------------------------------- ...

  3. GPRS模块在Linux平台上ppp拨号上网总结与心得

    linux平台的ppp拨号上网,(注明:这里只谈命令行拨号,用linux就要习惯和熟练使用命令行) 在网上常见的有三种方式:1.使用智能的ppp拨号软件wvdial:参考案例:本博客的<使用wv ...

  4. 树莓派实现SIM868 ppp拨号上网

    环境:raspbian-stretch(2018-06-27) 树莓派:3代B型 SIM868模块具有GPRS数据传输功能(2G网络),但是模块是通过AT指令控制的,在树莓派上用AT指令控制会非常不方 ...

  5. SIM7600CE TCP/IP连接与PPP拨号上网 4G上网

    SIM7600CE联网测试分为两部分: 1.TCP/IP连接 2.PPP拨号上网 实验环境:ubuntu-meta 16.04 硬件:树莓派3B,SIM7600CE 上网卡:移动的NB-IOT物联网卡 ...

  6. 4G模块*99#拨号上网

    操作系统:win10 模块型号:quectel EC20 CE FAG 4G模块拨号步骤如下: 1. 打开网络和internet设置 2. 选择“拨号” 3. 选择“设置新连接” 4. 选择“拨号调至 ...

  7. 树莓派 4G模块 PPP 拨号 NDIS 拨号

    资料参考:树莓派使用4G模块(华为ME909s-821)亲身尝试的可行方法(上)

  8. 嵌入式Linux系统---ppp拨号,4G模块上网【转】

    本文转载自:http://blog.csdn.net/qq562029186/article/details/65438553 4G模块PPP拨号上网 方法1 所需文件: xxx-chat-conne ...

  9. 关于PPP拨号 和 AT指令实现GPRS模块联网的疑问

    以下内容摘抄自互联网: ppp拨号 与 at命令的疑问 GPRS模块在Linux平台上ppp拨号上网总结与心得 以PPP拨号实现GPRS与因特网的数据通信的具体实现流程 问: 我刚接触GPRS,了解A ...

随机推荐

  1. [Linux] du-查看文件夹大小-并按大小进行排序

    reference : http://blog.csdn.net/jiaobuchong/article/details/50272761# 某天,我想检查一下电脑硬盘的的使用情况,作为一个命令控,废 ...

  2. iOS:网络编程的第三方框架:AFNetworking、SDWebImage

    网络编程第三方框架:AFNetworking.SDWebImage 介绍:这些框架是开源的,经过前人的封装.改进,成为使用次数很多的一个性能好的源代码框架,只需要将它导入项目中,就可以使用.因此,在做 ...

  3. java中的深浅克隆

    假设有一个对象object,在某处又需要一个跟object一样的实例object2,强调的是object和object2是两个独立的实例,只是在开始的时候,他们是具有相同状态的(属性字段的值都相同). ...

  4. 文件及文件夹更改通知/监测软件TheFolderSpy

    TheFolderSpy是Windows环境下一个监测文件(夹)更改,删除,创建,重命名的绿色免安装小软件,并在文件及文件夹有更改时发送Email通知管理者 该软件使用.Net开发,所以需要安装.Ne ...

  5. 使用 FOR XML PATH 產生 XML 格式時,遇到 NULL 該如何處理?

    當您嘗試利用 FOR XML PATH 產生 XML 格式時,若遇到 Result Set 為 Null 時,會導致整個查詢結果為 Null ,若您想要在查不到資料時,可以顯示自訂的內容,本文將提供可 ...

  6. Iocomp控件教程之Pie Chart——饼状图控件

    Pie Chart--饼状图控件(Pie Chart)以饼状图形式显示每一个项目内容所占的百分比比重.在设计时.能够使用属性编辑器加入或者移除项目以及更改属性值.在执行时.使用AddItem,Remo ...

  7. PHP Filesysten函数

    PHP 5 Filesystem 函数 PHP Filesystem 简介 Filesystem 函数允许您访问和操作文件系统. 安装 Filesystem 函数是 PHP 核心的组成部分.无需安装即 ...

  8. yum groupinstall报错,处理方法

    http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/21/3089970.html ===== 创建repo库 # createrepo - ...

  9. 安装 Percona XtraBackup 2.3

    Installing Percona XtraBackup from Percona yum repository Install the Percona repository You can ins ...

  10. GNOME下也是Alt+F2,输入gnome-terminal

    如果桌面有terminal 的话 ,直接用上下键就可以了   Alt + F1 类似Windows下的Win键,在GNOME中打开”应用程序”菜单(Applications) Alt + F2 类似W ...