《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于Linux-ARM平臺的3G無線設計
基于Linux-ARM平臺的3G無線設計
現代電子技術
聶嘉棟
武漢大學
摘要: 本研究的目的是實現一個具有3G無線網絡接入功能的嵌入式系統(tǒng),。系統(tǒng)的硬件平臺是基于ARM系列的S3C2410微處理器,。文章簡要介紹了該系統(tǒng)的體系結構,給出USB主機接口硬件電路,。研究基于USB接口的3G無線網卡的無線網絡接入功能實現,包括研究Linux USB設備驅動程序、實現USB Serial設備的驅動、定制Cramfs文件系統(tǒng)。最后移植和配置PPP撥號程序,,實現嵌入式系統(tǒng)通過3G無線網卡接入無線網絡的功能。
Abstract:
Key words :

0 引言

目前,,嵌入式技術已廣泛應用于工業(yè)控制,、無線通訊、網絡應用,、消費類電子產品,、成像和安全產品等各類產品。隨著3G牌照的發(fā)放,,無線網絡的帶寬大幅擴展,,具有3G無線網絡接入功能的嵌入式系統(tǒng)更加具有發(fā)展前景。本文將介紹中興的AC580無線網卡在以S3C2410微處理器為核心的嵌入式系統(tǒng)上的應用,。

1 終端系統(tǒng)的硬件平臺

1.1 系統(tǒng)體系結構

S3C2410處理器作為核心芯片集成了許多重要功能模塊,,本系統(tǒng)主要用到以下部分:NandFlash控制器、SDRAM控制器,、3個通道的 UART,、2個USB主機接口、1個USB設備接口,、JTAG,。NandFlash作為存儲器,用于存儲支撐整個系統(tǒng)軟件的BootLoader,、 Kernel,、文件系統(tǒng)。在開發(fā)調試時串口作為控制臺起作用,,USB設備接口起到與PC機連接并下載傳輸數據的作用,而USB主機接口用于連接3G無線網卡設備,,Embedded-ICE(20腳標準JTAG)接口和并口式JTAG接口則支掙ADS軟件的下載,、調試以及Flash的燒寫。系統(tǒng)結構圖如下:

1.2 USB主機接口硬件電路

中興的AC580無線寬帶上網卡是基于CDMA20001X/EV-DO REVA網絡的數據卡產品,。它采用USB接口進行連接,,支持Linux操作系統(tǒng)。其傳輸速率為上行(反向鏈路)最高到1.8Mb/s,,下行(向前鏈路)最高3.1Mb/s,,工作頻段為CDMA800MHz。網卡可以直接通過S3C2410集成了的USB HOST控制器接入,,不需要附加額外的芯片,,非常方便,。USB總線協(xié)議定義了四條信號線,其中兩條負責供電,,另外兩條負責數據的傳輸,。USB HOST接口硬件電路如圖2所示。

2 系統(tǒng)的3G無線網絡接入功能實現

系統(tǒng)軟件包括以下三個部分:vivi作為BOOTLOADER(引導啟動程序),;Linux-2.6.24作為嵌入式操作系統(tǒng),;Cramfs作為系統(tǒng)的文件系統(tǒng)。系統(tǒng)將采用PPP撥號的方式接入無線網絡,。

2.1 設備驅動與KERNEL

Linux內核采用的是2.6.24版本,,需要移植到ARM平臺。設備驅動程序可以被看作操作系統(tǒng)的一部分,。設備驅動既可以交叉編譯到內核鏡像中,,也可以以模塊的形式存放在文件系統(tǒng)中,并在運行時加載模塊,。本系統(tǒng)采用的方式是編譯到鏡像文件中,。

USB驅動程序分為主機控制器驅動程序(HostController Driver,HCD),、主機端設備驅動程序(USBD)和不同的USB設備的設備類驅動(Sla-ve Device Driver),。USB的HCD是USB主機驅動程序中直接與硬件交互的軟件模塊,USBD是整個USB主機驅動程序的核心,,而USB設備類驅動則是最終與應用程序交互的軟件模塊,。

USBD和HCD需在配置內核編譯選項時選擇編譯進內核。對于USB設備類驅動,,AC580使用的是高通公司的MSM6085芯片,,這款芯片能在USB下仿真出串口,并通過它來完成撥號工作,。將中興的USB Serial驅動源碼加入內核源碼中,,修改Makefile和Kconfig,將USB Serial驅動編譯進內核,。

另外AC580是一個多合一設備,,有CDROM、USBMASS Storage,、USB Serial三部分,,因此還需添加對SCCICDROM、USB MASS Storage的支持,。同時為了實現撥號,,編譯的內核還應添加對PPP協(xié)議的支持。

2.2 建立Cramfs文件系統(tǒng)

Cramfs文件系統(tǒng)是專門針對閃存設計的只讀壓縮的文件系統(tǒng),。當系統(tǒng)需要訪問Cramfs文件系統(tǒng)中某個位置的數據時,,計算出該數據在文件系統(tǒng)中的位置,,并實時解壓到內存中。文件系統(tǒng)中的系統(tǒng)基本應用程序可以使用Busybox來定制,。

本系統(tǒng)中使用的AC580無線網卡連接到主機時,,USB缺省工作方式是USB存儲設備,在Linux下顯示為CDROM和USB Storage兩個設備,,撥號需要找到USB Serial設備,。首先需要安裝好USB Serial驅動,其次使用eject/dev/srl命令彈出USB存儲設備,。這時AC580中的高通芯片將翻轉為串口模式(在/dev目錄下顯示為/ttyUSB0,、/ttyUSBl、/ttyUSB2,、/ttyUSB3幾個設備),,可以用于撥號及無線網絡數據傳輸。因此在配置編譯BusyBOX時,,除必須的系統(tǒng)基本應用程序外,,還必須置eject命令。

在/lib目錄下添加共享鏈接庫,。添加內核模塊和配置腳本,,包括rt73.ko、/linuxrc,、/etc目錄下的配置文件等,。在/dev目錄下創(chuàng)建設備節(jié)點。字符設備的設備文件由字符“c”來識別,,塊設備由字符“b”來識別,。通常而言,主設備號標識設備對應的驅動程序,,大多數設備按照“一個主設備號對應一個驅動程序”的原則組織,,次設備號由內核使用,用于正確確定設備文件所指的設備,。以下幾個節(jié)點是必須的

2.3 PPP撥號接入CDMA2000 lx/EVDO無線網

PPP是簡單鏈路設計的鏈路層協(xié)議,,設計目的主要是用來建立點對點連接進行數據收發(fā)。一個PPP會話分為四個步驟:連接建立,、連接質量控制、網絡層協(xié)議配置,、連接終止,。PPP協(xié)議作為鏈路層協(xié)議,它是在Linux內核中實現的,。

PPP撥號需要撥號程序及撥號腳本,。撥號程序選擇的是PPP-2.4.1,,將交叉編譯生成的chat、pppd,、pppdump,、pppstats程序文件添加至系統(tǒng)文件系統(tǒng)的/usr/sbin目錄下。
撥號腳本及所需文件存放在文件系統(tǒng)的/etc/ppp/目錄下:pap-secrets,、chap-secrets,、PPP-off、 resolv.conf,、chat-connect,、/peers/cdma3g。其pap-secrets,、chap secrcts是chap和pap認證文件,;resolv.conf是域名服務器配置文件;chat-connect是chat腳本,;PPP-off是下線腳本,;cdma3g是pppd腳本,里面配置了pppd程序參數,。以下是主要的PPPd程序參數:

/dev/ttyUSB0 Modem在ttyUSBO上,;115200串口的速率;noipdefault不使用指定ip,;defaultroute加入缺省路由,;scr“vnet.mobi”用戶名;connect‘/usr/sbin/chat-S-V-f/etc/ppp/cbat-connect’調用chat程序并使用chat-connect腳本,。

用mkcramfs工具生成Cramfs文件系統(tǒng),。至此,可以利用PPP撥號來實現3G無線網絡接入功能了:#pppd calledma3g

3 結束語

本文詳細介紹了基于S3C2410微處理器的嵌入式Linux系統(tǒng)接入3G無線網絡的方法,,對系統(tǒng)的硬件架構及軟件實現進行了詳細介紹,。3G無線寬帶網接入功能使得嵌入式系統(tǒng)在無線通訊、網絡應用,、消費類電子等方面具備廣闊的發(fā)展前景和強大的競爭力,,給嵌入式系統(tǒng)帶來更廣泛的應用。

此內容為AET網站原創(chuàng),,未經授權禁止轉載,。