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

2019-07-12 23:19发布

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 ATZ OK AT+CGDCONT=1,"IP","3gnet",,0,0 OK-AT-OKATDT*99# CONNECTdc
  1. wcdma-chat-disconnect配置文件内容
ABORT"ERROR" ABORT"NO DIALTONE" SAY"NSending break to the modem " ""k" ""+++ATH" SAY" Good bay "
  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 13 ping IP地址

输入命令:Ping–I ppp0 www.sina.com 14 ping网址
5telnet测试 输入命令:telnetbbs.newsmth.net 15 telnet测试


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