999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

車載終端系統(tǒng)3G通訊的實現(xiàn)

2013-01-01 00:00:00趙志強(qiáng)崔剛劉銀濤
智能計算機(jī)與應(yīng)用 2013年3期

摘 要: 設(shè)計主要實現(xiàn)車載客戶端與遠(yuǎn)程終端的無線3G通信,實驗硬件平臺選用ARM11開發(fā)板和AD_3812 3G模塊,應(yīng)用層功能由QT+socket編程實現(xiàn)。研究者完成了開發(fā)板硬件配置與調(diào)試,并參照linux2.6.36內(nèi)核源碼對USB 3G驅(qū)動進(jìn)行了改寫與重新加載,在應(yīng)用層完成了程序的交叉編譯、調(diào)試、生成,最終成功將3G模塊連入Internet,實現(xiàn)了與遠(yuǎn)程終端交互的功能。

關(guān)鍵詞: ARM11; QT; USB 3G驅(qū)動; 交叉編譯; Internet

中圖分類號: TP391 文獻(xiàn)標(biāo)識碼: A 文章編號:2095-2163(2013)03-0040-04

Implementation of the 3rd Generation Telecommunication in Vehicle Terminal System

ZHAO Zhiqiang, CUI Gang, LIU Yintao

(School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001,China)

Abstract:The design mainly establishes a 3G wireless communication from vehicle terminal to remote terminal, and the experiment chooses ARM11 and AD_3812 module as hardware equipments,function of application layer is realized by QT socket. Researcher configures and debugges development board, rewrites and reloads the USB 3G driver as to linux2.6.36 kernel,cross compiles and debugges the program at application layer,eventually connected vehicle terminal to Internet successfully, further makes it communicate with remote terminal.

Key words:ARAM11;QT; USB 3G driver; Cross Compile; Internet

0 引 言

隨著城市交通日新月異的格局變化,其交通狀況對于該城市的發(fā)展已變得越發(fā)重要。若要對一個城市的交通進(jìn)行合理規(guī)劃,就要實時掌控其具體的交通狀況。交通信息具有實時性強(qiáng),信息量大,畫面性強(qiáng)的特點,這就提高了對通訊技術(shù)的要求。3G無線通訊技術(shù)是通訊領(lǐng)域的一次革新,因其以有效帶寬進(jìn)行視頻、大量圖片、以及車輛自身信息的準(zhǔn)確傳送,在未來的交通領(lǐng)域具有廣闊的應(yīng)用前景。

本文通過對3G通訊模塊的研究,完成了驅(qū)動的分析,編寫與調(diào)試,已將其成功地應(yīng)用到S3C6410-ARM11平臺,并實現(xiàn)了嵌入式系統(tǒng)的無線通訊。

1 GSM無線通信技術(shù)原理

國際電信聯(lián)盟(ITU)已將3G通信的三大主流無線接口標(biāo)準(zhǔn)確定為W-CDMA、CDMA2000和TD-SCDMA。其中,W-CDMA標(biāo)準(zhǔn)主要基于現(xiàn)有的GSM網(wǎng)絡(luò)上進(jìn)行使用,而國內(nèi)目前僅支持GSM和CDMA兩種網(wǎng)絡(luò),下面即以GSM網(wǎng)絡(luò)為例,概述該3G網(wǎng)絡(luò)的通信原理。

作為車載終端的通訊實現(xiàn)部分,將3G模塊連接到車載S3C6410處理器上,實現(xiàn)車載數(shù)據(jù)傳輸與接收如圖1所示。

由圖1可見,3G無線網(wǎng)關(guān)發(fā)送來的車載數(shù)據(jù)首先經(jīng)過基站收發(fā)機(jī)BTS(3G基站)傳入基站控制器BSC,然后進(jìn)入無線通信服務(wù)支持節(jié)點SGSN,SGSN通過無線骨干網(wǎng)連接到支持節(jié)點GGSN,GGSN相當(dāng)于ISP的網(wǎng)關(guān)支持節(jié)點。此處,

圖1 GSM無線通信原理

Fig.1 GSM wireless communication principle

為3G號碼動態(tài)分配一個IP地址,期間3G模塊與網(wǎng)關(guān)通信符合ppp協(xié)議,網(wǎng)關(guān)與監(jiān)控中心之間的通信則支持TCP/IP協(xié)議。基于此,數(shù)據(jù)經(jīng)過GGSN流入Internet,并根據(jù)IP地址進(jìn)行數(shù)據(jù)傳輸,就實現(xiàn)了車載終端與遠(yuǎn)程監(jiān)控服務(wù)器的交互[1]。

2 系統(tǒng)組成與原理

2.1 系統(tǒng)硬件環(huán)境

本系統(tǒng)硬件環(huán)境主要由微處理器S3C6410和AD_3812 3G無線通訊模塊組成。對這兩部分功能組成分析如下。

(1)S3C6410:是一款Samsong推出的16/32位RISC微處理器,基于ARM1176JZF-S內(nèi)核,主頻533MHZ/667MHZ,128M字節(jié)Mobile DDR內(nèi)存,1G字節(jié)NAND Flash(MLC),內(nèi)部集成4個串口包括1個RS-232電平串口和3個三線TTL電平串口,3個插針擴(kuò)展口,1個USB HOST插口,支持USB1.1協(xié)議,并支持5V電壓供電[2]。

(2)AD_3812模塊:中興公司推出的一款mini PCI Express(全高型)接口的3G模塊,自帶USB接口和SIM卡座。可以通過USB接口連接開發(fā)板或電腦。下載最高可達(dá)7.2Mbps,上傳可達(dá)2Mbps,支持語音通話、聯(lián)網(wǎng)狀態(tài)可接聽來電,及收發(fā)短信功能[3]。第3期 趙志強(qiáng),等:車載終端系統(tǒng)3G通訊的實現(xiàn) 智能計算機(jī)與應(yīng)用 第3卷

2.2 系統(tǒng)軟件環(huán)境

系統(tǒng)軟件環(huán)境主要由ARM-linux2.6.36內(nèi)核、PPP撥號程序組成。

3 USB 3G模塊設(shè)備工作原理

3.1 USB設(shè)備驅(qū)動原理

設(shè)備驅(qū)動程序是系統(tǒng)內(nèi)核的一部分,Linux系統(tǒng)內(nèi)核通過驅(qū)動程序來控制外部的硬件,主要在設(shè)備運(yùn)行時發(fā)揮作用,為用戶提供了統(tǒng)一的外部操作接口,使底層的硬件設(shè)備對于用戶層變得透明。

USB系統(tǒng)主要由USB主機(jī)、USB設(shè)備和USB互連三部分組成,并且只可以在主機(jī)與設(shè)備之間進(jìn)行通信操作。USB主機(jī)內(nèi)含有USB主控制器,負(fù)責(zé)完成主機(jī)和USB設(shè)備之間的物理數(shù)據(jù)傳輸[4]。一臺USB 設(shè)備可以含有一或多個配置,在各個配置中還可以含有一或多個接口,在每個接口中可含有若干個端點。其中,配置和接口是對USB設(shè)備功能的抽象,實際的數(shù)據(jù)傳輸則由端點來實現(xiàn)和完成。但端點的傳送方向是單向的,輸出端點只能從主機(jī)傳送數(shù)據(jù)到設(shè)備,輸入端點只能從設(shè)備傳送數(shù)據(jù)到主機(jī)。注意,在使用USB設(shè)備前,必須指明所采用的是哪種配置和接口[5] 。USB設(shè)備按照功能的不同可分為兩大類:集線器和功能設(shè)備,集線器(HUB)主要用于擴(kuò)展主機(jī)的USB端口,通常USB主控制器內(nèi)部包含一個根集線器,作用就是給USB系統(tǒng)提供一個或多個端口。功能設(shè)備通常是一個獨立的外圍設(shè)備,如U盤,鍵盤、鼠標(biāo)等設(shè)備。USB主機(jī)端系統(tǒng)結(jié)構(gòu)如圖2所示。

Linux中,系統(tǒng)將底層的硬件設(shè)備抽象成可以訪問的系統(tǒng)文件進(jìn)行open、read、write等操作,以此來控制硬件設(shè)備,USB 設(shè)備驅(qū)動程序負(fù)責(zé)與文件系統(tǒng)進(jìn)行交互,當(dāng)用戶層發(fā)出通信請求時,USB設(shè)備驅(qū)動程序就向USB總線驅(qū)動程序發(fā)出I/O請求,啟動一次USB數(shù)據(jù)傳輸,傳輸既可能是向USB設(shè)備發(fā)送數(shù)據(jù),也可能是接收USB設(shè)備中的數(shù)據(jù)。

USB 總線驅(qū)動程序(USBD)主要是在USB設(shè)備使用前對其進(jìn)行一些初始化操作,同時也對USB設(shè)備驅(qū)動提出的通信請求進(jìn)行相應(yīng)處理。

USB Core負(fù)責(zé)實現(xiàn)一些核心的功能,為其他設(shè)備驅(qū)動程序提供定制服務(wù),也提供一個用于訪問和控制USB硬件的接口,卻不需考慮系統(tǒng)當(dāng)前存在哪種主控制器,該接口會將應(yīng)用層的請求映射至相關(guān)的主控制器驅(qū)動,因為應(yīng)用層不能直接與主控制器驅(qū)動進(jìn)行交互。

USB主控制器驅(qū)動程序(HCD)向用戶層屏蔽了底層的USB主控制器硬件,使得在與應(yīng)用層進(jìn)行數(shù)據(jù)傳輸時,不必知道USB主控制器硬件的具體實現(xiàn)細(xì)節(jié)。且其服務(wù)對象只有一個,就是USB Core。

圖2 USB主機(jī)端系統(tǒng)結(jié)構(gòu)

Fig.2 USB Host system structure

3.2 usb-serial模塊驅(qū)動原理

USB 3G模塊可視為Modem與USB to Serial 轉(zhuǎn)換芯片的組合。Modem完成的是串口數(shù)據(jù)的傳輸,在初始插入宿主機(jī)時,系統(tǒng)會將3G模塊視為USB Storage設(shè)備,而經(jīng)過USB-Serial驅(qū)動之后,在與應(yīng)用層交互的過程中,再將其映射為串口設(shè)備,即在/dev目錄下為USB設(shè)備創(chuàng)建的TTY設(shè)備文件。文件創(chuàng)建之后就可以進(jìn)行read,write等操作了。下面將對數(shù)據(jù)發(fā)送與接收過程作以闡述。

對于發(fā)送過程,TTY設(shè)備文件在獲取了用戶要求發(fā)送的數(shù)據(jù)之后,將其傳遞到下層usb-serial模塊的核心層,而該核心層再將這批數(shù)據(jù)打包成USB格式,其后再由USB通信發(fā)送到設(shè)備端去。

對于接收過程,usb-serial模塊會在該設(shè)備打開時就啟動一個urb(USB請求塊)等待設(shè)備端發(fā)送數(shù)據(jù),收到數(shù)據(jù)后就推移到上層TTY設(shè)備的緩沖中,而TTY設(shè)備在收到數(shù)據(jù)后就會傳送給用戶,或直接顯示在如minicom等功能類似的工具上。

3.3 AD_3812模塊驅(qū)動注冊

下面介紹幾個重要的數(shù)據(jù)結(jié)構(gòu)與關(guān)鍵函數(shù)。

(1)usb_driver。這是一種所有USB驅(qū)動程序都必須創(chuàng)建的結(jié)構(gòu)體,該結(jié)構(gòu)體包含的成員變量可向USB核心代碼描述和聲明本結(jié)構(gòu)體的作用,具體語句如下。

.probe=generic_probe

.id_table=generic_device_ids

(2)generic_probe。表示usb-serial驅(qū)動模塊探測函數(shù)。

(3)generic_device_ids。是一個存儲支持設(shè)備的型號列表,包括廠商號和產(chǎn)品號。AD_3812的廠商號為0x19d2(中興公司),產(chǎn)品號為0xffeb,即需要存儲到此列表中。

(4)usb_serial_init。這是一個初始化函數(shù)。當(dāng)將一個模塊加載進(jìn)系統(tǒng)時,會調(diào)用該模塊中的一個由module_init()所聲明的這個初始化函數(shù)。

3G模塊只需視作一個簡單設(shè)備,即在底層可用作一個USB設(shè)備進(jìn)行通信,在上層則用作一個TTY設(shè)備進(jìn)行必須的操作,所以需研究的驅(qū)動主要分為TTY設(shè)備驅(qū)動和USB設(shè)備驅(qū)動兩種,usb-serial模塊負(fù)責(zé)在這兩者間的過渡與設(shè)備文件的映射。驅(qū)動加載步驟如圖3所示。由于用戶方顯示的USB 3G模塊為TTY串口設(shè)備,所以在usb_serial_init初始化時,首先就要創(chuàng)建一個tty_driver對象usb_serial_tty_driver(TTY設(shè)備的驅(qū)動),tty_driver結(jié)構(gòu)體的定義位于內(nèi)核源碼的/include/linux/tty_driver.h中,此結(jié)構(gòu)體主要提供了TTY設(shè)備的所有信息,包括主設(shè)備號,次設(shè)備號等。如果上層需要對TTY設(shè)備進(jìn)行操作,那么就需再創(chuàng)建一個tty_driver的對象,并利用tty_register_driver函數(shù)注冊TTY設(shè)備,即將TTY對象注冊成字符設(shè)備。接著注冊一個USB設(shè)備驅(qū)動程序usb_serial_driver,usb_serial_driver是usb_driver結(jié)構(gòu)體的對象,這樣就將generic_probe函數(shù)和generic_device_ids設(shè)備列表注冊到usb-serial核心的代碼中了。

〖TP,@,BP]

圖3 驅(qū)動程序裝載步驟

Fig.3 The step of load driver

在USB設(shè)備插入主機(jī)后,usb-serial驅(qū)動模塊可通過調(diào)用generic_probe()函數(shù)來判斷插入主機(jī)的USB設(shè)備的idVendor和idProduct是否與自身支持的設(shè)備列表generic_device_ids相匹配,若匹配成功,則通過調(diào)用usb_serial_probe函數(shù)返回此型號USB設(shè)備所對應(yīng)的驅(qū)動程序,這樣將低層的USB設(shè)備與TTY設(shè)備捆綁在一起[6]。

3.4 AD_3812設(shè)備通信

USB設(shè)備與上層驅(qū)動程序通信過程主要是通過urb來實現(xiàn),struct urb結(jié)構(gòu)體的定義在內(nèi)核的/include/linux/usb.h文件中可以找到。當(dāng)由USB設(shè)備驅(qū)動程序創(chuàng)建之后,即分配給一個指定USB設(shè)備的特定端點來發(fā)送/接收數(shù)據(jù),具體過程如下:

(1)USB設(shè)備驅(qū)動程序創(chuàng)建urb。

(2)分配給一個指定USB設(shè)備的特定端點。

(3)由USB設(shè)備驅(qū)動程序遞交到USB核心。

(4)由USB主控制器驅(qū)動程序處理,urb開始從設(shè)備進(jìn)行USB傳送。

(5)urb傳送結(jié)束,USB主控制器驅(qū)動程序通知USB設(shè)備驅(qū)動程序,一次傳送結(jié)束。

在tty層,當(dāng)用戶程序需要讀取USB 3G模塊的數(shù)據(jù)時,通過調(diào)用系統(tǒng)API函數(shù)open打開串口設(shè)備,并進(jìn)行初始化,應(yīng)用層API函數(shù)與tty層函數(shù)的映射可以參照如下結(jié)構(gòu)體來進(jìn)行。結(jié)構(gòu)體的組成為:

struct tty_operations

{

.open=serial_open,

.close=serial_close,

.write=serial_write,

...

}

3.5 USB 3G模塊的應(yīng)用

3.5.1 系統(tǒng)環(huán)境介紹

宿主機(jī)系統(tǒng)環(huán)境為fedora17,交叉編譯器arm-linux-gcc 4.3.2,目標(biāo)機(jī)(ARM開發(fā)板)系統(tǒng)內(nèi)核為Linux 2.6.36。目標(biāo)機(jī)與宿主機(jī)通過串口連接,在宿主機(jī)上利用minicom控制串口的方式來操作目標(biāo)機(jī),再通過交叉編譯的方式來運(yùn)行目標(biāo)板上的程序。而在宿主機(jī)上利用交叉編譯器將程序編譯成可執(zhí)行的二進(jìn)制文件后,再通過nfs服務(wù)借助網(wǎng)絡(luò)將二進(jìn)制文件下載到目標(biāo)機(jī)一方,并在目標(biāo)機(jī)一方運(yùn)行二進(jìn)制文件實現(xiàn)信息的傳送。

3.5.2 編譯,加載后將模塊插入開發(fā)板

將驅(qū)動程序源碼放置在宿主機(jī)上,利用Linux2.6.36源碼編譯驅(qū)動模塊,在源碼文件目錄下編譯驅(qū)動程序得到需要的usb_serial.ko文件,通過nfs服務(wù)將此文件下載到開發(fā)板一方,并利用insmod usb_serial.ko命令動態(tài)加載usb-serial驅(qū)動。在目標(biāo)機(jī)上的USB口插入AD_3812模塊,并將SIM卡插入模塊的卡座,目標(biāo)板一方的系統(tǒng)目錄/dev下出現(xiàn)驅(qū)動中定義的ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3設(shè)備文件,表明驅(qū)動加載成功。

3.5.3 通過撥號上網(wǎng)

將ppp撥號程序下載到目標(biāo)機(jī)一方,并編輯ppp-on文件,將/dev目錄下用于與3G模塊進(jìn)行交互的ttyUSB設(shè)備加入相應(yīng)的配置,本設(shè)計是用/dev/ttyUSB3命令來運(yùn)行實現(xiàn)。3G模塊通過ppp撥號程序登陸互連網(wǎng)時需要設(shè)置本地的DNS服務(wù)器的IP地址,如在linux系統(tǒng)的/etc/resolv.conf文件中設(shè)置相應(yīng)的DNS主機(jī)名和IP地址,使系統(tǒng)可以連接Internet中。具體語句如下所示:

nameserver 202.97.229.133

nameserver 202.97.224.68

nameserver 219.150.32.132

以上為黑龍江地區(qū)的手機(jī)DNS,更具體設(shè)置則要斟酌地區(qū)詳情而后定。

配置完成之后,可在開發(fā)板上運(yùn)行ppp-on程序,由此得到自身的IP地址172.28.154.178,如圖4所示。

同時,ping www.sina.com成功,如圖5所示,此時已經(jīng)接入了互聯(lián)網(wǎng),可以與遠(yuǎn)程終端實時通信。〖TP,@,BP]

圖4 新的IP地址

Fig.5 The Internet connection result

4 應(yīng)用層程序的開發(fā)

基于PPP協(xié)議3G撥號上網(wǎng)后,再進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)流的接收和發(fā)送,其實就是一個利用socket編程實現(xiàn)的網(wǎng)絡(luò)收發(fā)過程。其中的遠(yuǎn)程終端相當(dāng)于一個點對點的網(wǎng)絡(luò)服務(wù)器,而其車載終端則相當(dāng)于客戶端。服務(wù)器一旦與客戶端鏈接成功,客戶端就可以獲得遠(yuǎn)程終端服務(wù)器發(fā)來的數(shù)據(jù)信息,并顯示在LCD上,或者將自身信息回饋給終端服務(wù)器,這樣終端服務(wù)器就能隨時掌握車輛的實時信息。

5 結(jié)束語

應(yīng)用層采集GPS、CAN等車身數(shù)據(jù)信息傳送給遠(yuǎn)程終端,并將遠(yuǎn)程終端發(fā)送的信息顯示在LCD上。3G無線通信模塊的使用實現(xiàn)了車載客戶端與遠(yuǎn)程終端的實時交互,此外3G技術(shù)也滿足了一些對通信帶寬要求較高的數(shù)據(jù)傳輸。實時性和數(shù)據(jù)帶寬方面的優(yōu)點使得3G通訊在未來的交通領(lǐng)域有廣闊的應(yīng)用前景。由于3G無線通訊是按流量收費,所以目前應(yīng)用在大數(shù)據(jù)量通訊上的費用還比較高,但是隨著技術(shù)的發(fā)展,相信在不遠(yuǎn)的將來3G通訊必將會更加普及,獲得廣泛應(yīng)用。

參考文獻(xiàn):

[1]游張華. 基于CAN和GPRS的無線車載數(shù)據(jù)傳輸系統(tǒng)的研究與開發(fā)[D].桂林:桂林電子科技大學(xué),2007.

[2]Samsung Electronics Co. Ltd. USER’SMANUAL S3C6410X RISC Microprocessor [EB/OL].http://download.csdn.net/detail/lli_njupt/34336512011-07.

[3]中興通訊股份有限公司.AD_3812硬件接口手冊[EB/OL].[2011-06].http://wenku.baidu.com/view/ca5880d96f1aff00bed51

e48.html.

[4]CORBET J , RUBINI A , Greg Kroah-Hartman.linux設(shè)備驅(qū)動程序[M].魏永明,耿岳,鐘書毅,譯.北京:中國電力出版社,2012.

[5]李英偉.USB2.0原理與工程開發(fā)[M].北京:國防工業(yè)出版社, 2007.

[6]宋世磊,劉曉平,應(yīng)懷樵.基于ARM-Linux的USB3G模塊設(shè)備驅(qū)動的研究[J].北京郵電大學(xué), 2011.

主站蜘蛛池模板: 亚洲人成在线精品| 麻豆国产精品一二三在线观看| 亚洲日韩AV无码一区二区三区人| 亚洲精品午夜天堂网页| 日韩亚洲综合在线| 久久精品亚洲热综合一区二区| 亚洲人成网站18禁动漫无码| 国产精品冒白浆免费视频| 香蕉视频在线精品| 91视频99| 亚洲天堂首页| 又粗又大又爽又紧免费视频| 亚洲日本中文字幕天堂网| 99久久精品国产麻豆婷婷| 亚洲五月激情网| 亚洲成av人无码综合在线观看| 亚洲欧美日韩精品专区| 久久久噜噜噜| 亚洲精品无码人妻无码| 国产情侣一区二区三区| 国产精品午夜福利麻豆| 99精品影院| 亚洲国产成人超福利久久精品| 激情网址在线观看| 最新午夜男女福利片视频| 2021国产在线视频| www成人国产在线观看网站| 久久精品电影| 国产精品开放后亚洲| 中国一级特黄视频| 九月婷婷亚洲综合在线| 国产微拍精品| 看av免费毛片手机播放| 夜精品a一区二区三区| 欧美激情第一区| 婷婷色一区二区三区| 日本人真淫视频一区二区三区| 国产剧情伊人| 国产精品高清国产三级囯产AV| 国产成人综合日韩精品无码首页| 五月天香蕉视频国产亚| 久久久久久高潮白浆| 亚亚洲乱码一二三四区| 国产乱人免费视频| 四虎国产永久在线观看| 色噜噜久久| 亚洲成人高清在线观看| 国产精品永久久久久| 国产第八页| 欧美在线观看不卡| 日韩a在线观看免费观看| 欧美福利在线| 日本精品αv中文字幕| 亚洲国产亚综合在线区| 久久精品国产一区二区小说| 国产性猛交XXXX免费看| 亚洲色图另类| 久青草免费视频| 自拍偷拍欧美| 欧美一区二区丝袜高跟鞋| 伊人精品视频免费在线| 中文字幕色站| 全部免费特黄特色大片视频| 欧美黑人欧美精品刺激| 婷婷综合色| 思思热在线视频精品| 亚洲国产理论片在线播放| 亚洲资源在线视频| 亚洲精品欧美重口| 黄色污网站在线观看| 91无码国产视频| 国产白浆在线| 五月婷婷丁香色| 精品91视频| 被公侵犯人妻少妇一区二区三区| 亚洲天堂视频在线免费观看| 高清视频一区| 中文字幕va| 久久精品丝袜高跟鞋| 欧美黄网站免费观看| 久久99国产视频| 欧美一级专区免费大片|