3G模块驱动运用开发总结
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,得到pppd和chat
????解壓源代碼包,進入目錄,進行交叉編譯,這里所用的板子的交叉編譯器是:
?????#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)。
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
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
wcdma-chat-disconnect配置文件內容
ABORT"ERROR"
ABORT"NO DIALTONE"
SAY"\NSending break to the modem\n"
""\k"
""+++ATH"
SAY"\nGood bay\n"
應用測試:
(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模块驱动运用开发总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机械硬盘型号里面各项参数解读
- 下一篇: CC2530 Hex文件解析