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

来源:互联网 发布:只有知我能看广播剧 编辑:程序博客网 时间:2024/06/07 04:01

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

一:开发环境简述

内容

说明

3G模块

华为EM770WWCDMA

3GSIM

中国联通3GWO

嵌入式开发板

友善之臂Mini2440

核心CPU

S3C2440

嵌入式linux版本

Linux-2.6.32.2

主机开发环境

VMWARE下安装的RedHat5.0


二:主要步骤

1

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

2

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

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

3

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


三:开发工作主要内容

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

1

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

2

交叉编译比好工作源代码ppp-2.4.4得到pppdchat

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文件。

2mini2440-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下的pppdppp-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.1310.11.12.14添加到此文件中。

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

nameserver10.11.12.13

nameserver10.11.12.14

4ping外网测试

输入命令:ping–I ppp0 210.32.200.129

13ping IP地址



输入命令:Ping–I ppp0www.sina.com

14 ping网址


5telnet测试

输入命令:telnetbbs.newsmth.net

15 telnet测试




注意:

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









0 0