《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Linux-ARM平臺(tái)的3G無(wú)線(xiàn)聯(lián)網(wǎng)方案設(shè)計(jì)
基于Linux-ARM平臺(tái)的3G無(wú)線(xiàn)聯(lián)網(wǎng)方案設(shè)計(jì)
電子工程世界
聶嘉棟
武漢大學(xué)
摘要: 本研究的目的是實(shí)現(xiàn)一個(gè)具有3G無(wú)線(xiàn)網(wǎng)絡(luò)接入功能的嵌入式系統(tǒng)。系統(tǒng)的硬件平臺(tái)是基于ARM系列的S3C2410微處理器。文章簡(jiǎn)要介紹了該系統(tǒng)的體系結(jié)構(gòu),,給出USB主機(jī)接口硬件電路,。研究基于USB接口的3G無(wú)線(xiàn)網(wǎng)卡的無(wú)線(xiàn)網(wǎng)絡(luò)接入功能實(shí)現(xiàn),包括研究Linux USB設(shè)備驅(qū)動(dòng)程序,、實(shí)現(xiàn)USB Serial設(shè)備的驅(qū)動(dòng)、定制Cramfs文件系統(tǒng)。最后移植和配置PPP撥號(hào)程序,,實(shí)現(xiàn)嵌入式系統(tǒng)通過(guò)3G無(wú)線(xiàn)網(wǎng)卡接入無(wú)線(xiàn)網(wǎng)絡(luò)的功能。
Abstract:
Key words :

0 引言

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

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

1.1 系統(tǒng)體系結(jié)構(gòu)

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

1.2 USB主機(jī)接口硬件電路

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

2 系統(tǒng)的3G無(wú)線(xiàn)網(wǎng)絡(luò)接入功能實(shí)現(xiàn)

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

 2.1 設(shè)備驅(qū)動(dòng)與KERNEL

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

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

USBD和HCD需在配置內(nèi)核編譯選項(xiàng)時(shí)選擇編譯進(jìn)內(nèi)核,。對(duì)于USB設(shè)備類(lèi)驅(qū)動(dòng),AC580使用的是高通公司的MSM6085芯片,,這款芯片能在USB下仿真出串口,,并通過(guò)它來(lái)完成撥號(hào)工作,。將中興的USB Serial驅(qū)動(dòng)源碼加入內(nèi)核源碼中,,修改Makefile和Kconfig,,將USB Serial驅(qū)動(dòng)編譯進(jìn)內(nèi)核。

另外AC580是一個(gè)多合一設(shè)備,,有CDROM,、USBMASS Storage、USB Serial三部分,,因此還需添加對(duì)SCCICDROM,、USB MASS Storage的支持。同時(shí)為了實(shí)現(xiàn)撥號(hào),,編譯的內(nèi)核還應(yīng)添加對(duì)PPP協(xié)議的支持,。

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

Cramfs文件系統(tǒng)是專(zhuān)門(mén)針對(duì)閃存設(shè)計(jì)的只讀壓縮的文件系統(tǒng)。當(dāng)系統(tǒng)需要訪(fǎng)問(wèn)Cramfs文件系統(tǒng)中某個(gè)位置的數(shù)據(jù)時(shí),,計(jì)算出該數(shù)據(jù)在文件系統(tǒng)中的位置,,并實(shí)時(shí)解壓到內(nèi)存中。文件系統(tǒng)中的系統(tǒng)基本應(yīng)用程序可以使用Busybox來(lái)定制,。

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

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

2.3 PPP撥號(hào)接入CDMA2000 lx/EVDO無(wú)線(xiàn)網(wǎng)

PPP是簡(jiǎn)單鏈路設(shè)計(jì)的鏈路層協(xié)議,,設(shè)計(jì)目的主要是用來(lái)建立點(diǎn)對(duì)點(diǎn)連接進(jìn)行數(shù)據(jù)收發(fā),。一個(gè)PPP會(huì)話(huà)分為四個(gè)步驟:連接建立、連接質(zhì)量控制,、網(wǎng)絡(luò)層協(xié)議配置,、連接終止。PPP協(xié)議作為鏈路層協(xié)議,,它是在Linux內(nèi)核中實(shí)現(xiàn)的,。

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

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

用mkcramfs工具生成Cramfs文件系統(tǒng),。至此,,可以利用PPP撥號(hào)來(lái)實(shí)現(xiàn)3G無(wú)線(xiàn)網(wǎng)絡(luò)接入功能了:#pppd calledma3g

3 結(jié)束語(yǔ)

本文詳細(xì)介紹了基于S3C2410微處理器的嵌入式Linux系統(tǒng)接入3G無(wú)線(xiàn)網(wǎng)絡(luò)的方法,對(duì)系統(tǒng)的硬件架構(gòu)及軟件實(shí)現(xiàn)進(jìn)行了詳細(xì)介紹。3G無(wú)線(xiàn)寬帶網(wǎng)接入功能使得嵌入式系統(tǒng)在無(wú)線(xiàn)通訊,、網(wǎng)絡(luò)應(yīng)用,、消費(fèi)類(lèi)電子等方面具備廣闊的發(fā)展前景和強(qiáng)大的競(jìng)爭(zhēng)力,給嵌入式系統(tǒng)帶來(lái)更廣泛的應(yīng)用,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。