3G模块驱动运用开发总结

一:开发环境简述

内容

说明

3G模块

华为EM770W(WCDMA)

3GSIM卡

中国联通3G卡(WO)

嵌入式开发板

友善之臂Mini2440

核心CPU

S3C2440

嵌入式linux版本

Linux-2.6.32.2

主机开发环境

VMWARE下安装的RedHat5.0

二:主要步骤

1

向linux内核中添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,重新编译下载内核。

2

对ppp-2.4.4源代码进行交叉编译。

将拨号上网所需的两个应用程序pppd和chat拷贝到开发板/usr/sbin文件夹下,将改好的脚本文件wcdma、wcdma-chat-connect、wcdma-chat-disconnect存放在/etc/ppp/peers目录下。将含有域名解析服务器地址的文件resolv.conf拷贝到/etc目录下。

3

执行“pppdcall wcdma”命令进行拨号,进行网络测试。

三:开发工作主要内容

下面对开发工作进行进一步细化:

1

向linux内核添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,交叉编译并下载内核到开发板。

2

交叉编译比好工作源代码ppp-2.4.4,得到pppd和chat

3

配置拨号的脚本文件

4

测试网络连接情况

四:各项工作集体说明

1.linux内核添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,交叉编译并下载内核到开发板。

由于linux-2.6.32.2内核支持“USBdriver for GSM and CDMA modems”,所以不需要修改代码,只修改内核配置即可。

编译前期做如下准备:

(1)清除临时文件、中间文件和配置文件

进入内核文件目录,执行命令:makedistclean

图1 执行makedistclean命令

(2)使用内核/arch/arm/configs目录下的mini2440-defconfig文件作为配置文件,将其拷贝为内核目录下的.config文件。

图2将mini2440-defconfig作为配置文件

(3)在终端输入:makemenuconfig ARCH=arm,出现内核配置界面后选择:

DeviceDrivers---→

USBsupport---→

<*>USBSerialConverter support--→

[*]USBGeneric Serial Driver

<*>USBdriver for GSM and CDMA modems

具体步骤如下几幅图所示:

图3 按“Enter”进入“DeviceDrivers”目录

图4 按“Enter”进入“USBsupport”目录

图5 按“Enter”进入“USBSerialConverter support”目录

图6 按“Y”将“USBGeneric Serial Driver”编译进内核

图7 按“Y”将“USBdriver for GSM and CDMA modems”编译进内核

到此3G模块驱动添加完成,下面进行ppp协议支持的添加(下面所示的几个选项必选)。

DeviceDrivers--→

Networkdevicesupport---→

<*> PPP (point-to-point protocol) support   
           [*]   PPP multilink support (EXPERIMENTAL)    
           <*>   PPP support for async serial ports      
           <*>   PPP support for sync tty ports          
          <*>   PPP Deflate compression                 
           <*>   PPP BSD-Compress compression

具体步骤如下几图所示:

图8 按“Enter”进入“DeviceDrivers”目录

图9 按“Enter”进入“Networkdevice support”目录

图10 选择ppp协议支持(之前所提的必选,这里全部选上)编译进内核

完成这些步骤之后,可以进行内核的交叉编译,退出makemenuconfig,输入makezImage ARCH=armCROSS_COMPILE=arm-linux-,编译生成的内核映像文件位于当前内核源代码文件的/arch/arm/boot目录下,将生成的内核映像文件下载到板子上。

内核启动后,会在/dev目录下生成ppp设备节点。如:

ls/dev/ppp -l

crw-rw----  1root   root  108, 0Jan  1 00:00 /dev/ppp

内核启动后,在开发板USBHOST 口插上3G模块的USB线,会有打印信息输出:

usb1-2: new high speed USB device using atmel-ehci and address 4

usb1-2: configuration #1 chosen from 1 choice

option1-2:1.0: GSM modem (1-port) converter detected

usb1-2: GSM modem (1-port) converter now attached to ttyUSB0

option1-2:1.1: GSM modem (1-port) converter detected

usb1-2: GSM modem (1-port) converter now attached to ttyUSB1

option1-2:1.2: GSM modem (1-port) converter detected

usb1-2: GSM modem (1-port) converter now attached to ttyUSB2

查看设备节点ls/dev/ttyUSB*, 会发现USB虚拟成三串口,在文件系统节点如下/dev/ttyUSB0,/dev/ttyUSB1, /dev/ttyUSB2 ,这说明3G模块驱动 已经正确添加到内核当中。

我们 跟 3G 模块交互 主要用的设备节点是 /dev/ttyUSB0。

2.交叉编译好工作源代码ppp-2.4.4,得到pppdchat
    解压源代码包,进入目录,进行交叉编译,这里所用的板子的交叉编译器是:
     #cd /home/ppp-2.4.4
      #./configure
      #make CC= arm-linux-gcc

拨号所用到的程序就是ppp-2.4.4/pppd下的pppd和ppp-2.4.4/chat下的chat可执行程序,将交叉编译出来的这两个应用程序拷贝到开发板 /usr/sbin目录下,更改其属性为可执行文件。

3.配置拨号的脚文件

拨号上网需要的配置文件有3个:wcdma,wcdma-chat-connect,wcdma-chat-disconnect(存放位置/etc/ppp/peers)。

  1. wcdma配置文件内容

#/etc/ppp/peers/cdma

#This is pppd script for China liantong

#Usage: root>pppd call cdma

hide-password

noauth

connect'/usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect'

disconnect'/usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect'

debug

/dev/ttyUSB0

115200

defaultroute

noipdefault

novj

novjccomp

noccp

ipcp-accept-local

ipcp-accept-remote

local

lock

dump

nodetach

user"card"

password"card"

crtscts

remotename3gppp

ipparam3gppp

usepeerdns

  1. wcdma-chat-connect配置文件内容

ABORT"BUSY"

ABORT"NO CARRIER"

ABORT"NO DIALTONE"

ABORT"ERROR"

ABORT"NO ANSWER"

TIMEOUT120

""AT

OK\rATZ

OK\rAT+CGDCONT=1,"IP","3gnet",,0,0

OK-AT-OKATDT*99#

CONNECT\d\c

  1. wcdma-chat-disconnect配置文件内容

ABORT"ERROR"

ABORT"NO DIALTONE"

SAY"\NSending break to the modem\n"

""\k"

""+++ATH"

SAY"\nGood bay\n"

  1. 应用测试:

(1)连接好硬件设备。

(2)执行pppdcall wcdma,出现:

图11 执行“pppdcall wcdma”

(3)通过PC机(XP操作系统)远程登录到开发板,执行ifconfig:

图12执行“ifconfig”

若出现如上所示的类似信息,说明拨号成功。打开开发板/etc目录下的resolv.conf文件,将分配得到的两个DNS服务器地址:10.11.12.13和10.11.12.14添加到此文件中。

vi/etc/resolc.conf,加入内容:

nameserver10.11.12.13

nameserver10.11.12.14

(4)ping外网测试

输入命令:ping–I ppp0 210.32.200.129

图13 ping IP地址

输入命令:Ping–I ppp0 www.sina.com

图14 ping网址

(5)telnet测试

输入命令:telnetbbs.newsmth.net

图15 telnet测试

注意:

在做的时候将ARM板子上的网线拔掉!

3G模块驱动运用开发总结相关推荐

  1. android+usb转串口+唯一id,Android平台3G模块驱动移植-USB转串口

    Android平台3g模块是通过ril库来支持数据.短信.彩信.电话.第三方通话.USSD等功能的.其相应的组件有:rild用来为rild socket建立文件,pppd和chat为拨号文件,libr ...

  2. HI3515海思开发板移植3G模块笔记

    硬件平台: 海思Hi3515 Linux 3G模块: 1.移动模块:ZTE M305(TD-SCDMA) 2.联通模块:HUAWEI EM770W(WCDMA) 3.电信模块:HUAWEI EM660 ...

  3. 基于NanoPi的人体感应模块驱动开发

    基于NanoPi的人体感应模块驱动开发 人体感应模块 热释电红外传感器是一种能检测人或动物发射的红外线而输出电信号的传感器. 电气参数 工作电压范围:DC 4.5-20V 电平输出高: 3.3 V / ...

  4. openwrt 3g模块上网

    硬件环境:     开发板为RT5053F        3G模块为中兴 MC2176 电信版 以下是操作步骤 加入VID .PID VID . PID 的获取方法是 将设备插入电脑在linux下执行 ...

  5. fl2440hello world模块驱动编写

    许多语言,例如C,C++,JAVA等等都是从hello world开始的,因此我们的驱动程序的开发也要从hello world入手. 首先来看下我们的代码: 1 /****************** ...

  6. Linux移植EC20 4G模块驱动简易教程

    关于4G模块常见的品牌与型号: 品牌 型号 市场价格 芯片组 状态 HUAWEI ME909s-821 210-260 海思芯片,只有五模 在售 HUAWEI ME909s-521 400左右 高通芯 ...

  7. USB-WIFI RTL8188CU模块驱动

    RTL8188CU模块概述 Realtek的8188cu模块WiFi是通过usb接口挂载设备.以下是我对模块使用的所有开发工作. Linux内核驱动适配和编译 由于芯片驱动官方已经最高支持kernel ...

  8. USB 3G网卡驱动流程

    USB 3G网卡驱动流程 简介 首先介绍一下linux下的整体驱动模式: 本文基于的linux kernel版本为2.6.36 (并且华为EM770W驱动,是由FriendlyARM公司定制的. 所以 ...

  9. 番外篇——直流电机桥源码分析LED驱动例程开发

    [番外篇]直流电机桥源码分析&LED驱动例程开发 直流电机桥测试代码分析 直流电机桥驱动代码分析 仿写HBLED驱动程序 利用芯片手册修改设备树 利用原理图寻找引脚 仿写代码 仿写HBLED测 ...

  10. ESP32设备驱动-TEA5767收音机模块驱动

    TEA5767收音机模块驱动 1.TEA5767介绍 TEA5767HN 是一款用于低压应用的单芯片电子调谐 FM 立体声收音机,具有完全集成的中频 (IF) 选择性和解调功能,频率范围从76-108 ...

最新文章

  1. [常见错误]-bash: pg_config: command not found
  2. python下载教程1001python下载教程-请教vs2017下怎么使用python
  3. python windows 消息通讯_python获取windows信息
  4. html用颜色区分不同区间数据_最新数据可视化指南
  5. 实验二初入linux,实验二:熟悉Linux的环境
  6. 使用git checkout命令切换到指定的commit
  7. jenkins java jar_Jenkins 安装和配置、启动jar包
  8. 2019 年,数据分析师怎样才能更抢手?
  9. Hibernate视频学习笔记(8)Lazy策略
  10. 搞笑又雷人的个人签名
  11. 集成电路技术与产业发展
  12. 《微软System Center 2012 R2私有云部署实战》——第二章 微软私有云选型2.1 服务器选型...
  13. python入门自学软件手机版_python编程入门
  14. 2018国赛数学建模B题两道工序代码
  15. eclips安装教程
  16. 详解C语言实现植物大战僵尸阳光9999
  17. 星起航:抖音小店如何提升店铺复购率
  18. OCR:财务报表识别
  19. 5个常用的CMD命令
  20. 荣耀V40怎么样 “微光女神”告诉你

热门文章

  1. 小学计算机考核,小学信息技术学科考核评价方案.docx
  2. 高情商技术管理者必备的5项特质
  3. 【EXLIBRIS】纸版书目整理 -- 增补至2008年春节【36 种】【36 册】
  4. 高考英语语法填空满分秒杀技巧
  5. 360加固签名验证_android - 使用360加固的方法(需要在windows下面,先加固,再签名)...
  6. 解决vs编译后运行提示“系统找不到指定的文件”的问题
  7. 跳出舒适区发现更大的世界,来社科院杜兰金融管理硕士项目汲取能量挑战自我
  8. 加州大学戴维斯分校 计算机科学,UCDavis的Computer Science「加州大学戴维斯分校计算机科学专业」...
  9. 高红梅 第一章 海明威自我身份意识的形成 第一节 文化氛围与自我身份意识的生成
  10. 谷歌统计Google Analytics使用入门