<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 基于TMS320DM270的長途客運(yùn)車無線視頻監(jiān)控系統(tǒng)的設(shè)計

          基于TMS320DM270的長途客運(yùn)車無線視頻監(jiān)控系統(tǒng)的設(shè)計

          作者:中國農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院 馮鑫 王庫 戰(zhàn)鵬州 時間:2008-04-17 來源:電子產(chǎn)品世界 收藏

            引言

          本文引用地址:http://www.ex-cimer.com/article/81683.htm

            隨著公路交通的不斷發(fā)展,長途客運(yùn)車也隨之不斷增長,方便人們出行的同時,交通事故不斷發(fā)生,盜竊、搶劫也時有發(fā)生。為了能使汽車安全的行駛,乘客放心的乘坐,開發(fā)研究一套良好的長途客運(yùn)車無線系統(tǒng)就顯得尤其的重要。

            近年來傳統(tǒng)的模擬技術(shù)正在逐步向數(shù)字化、網(wǎng)絡(luò)化、智能化發(fā)展,將監(jiān)控技術(shù)與網(wǎng)絡(luò)技術(shù),特別是無線網(wǎng)絡(luò)技術(shù)完美結(jié)合,是數(shù)字監(jiān)控領(lǐng)域的新方向。本文介紹的長途客運(yùn)車無線系統(tǒng)是整合嵌入式技術(shù)、無線網(wǎng)絡(luò)通訊技術(shù)、MPEG-4數(shù)字視頻壓縮技術(shù)和定位技術(shù)為一體的視頻終端。

            系統(tǒng)簡介

            整個無線視頻監(jiān)控系統(tǒng)由(包括TMS320DM270 CPU模塊、視頻輸入模塊、模塊、模塊等)、通信網(wǎng)絡(luò)和監(jiān)控中心組成,其系統(tǒng)結(jié)構(gòu)如圖1所示。

            被放置在長途客車內(nèi),用來采集車內(nèi)圖像并利用MPEG-4技術(shù)對圖像進(jìn)行壓縮,使圖像分辨率達(dá)到CIF格式,幀率在1-8幀/秒可調(diào)。同時模塊實時接收全球定位衛(wèi)星發(fā)射的信號,得到當(dāng)前車輛位置和速度。最后CPU將壓縮后的視頻流與GPS數(shù)據(jù)通過無線通信網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)發(fā)送到監(jiān)控中心,從而在監(jiān)控中心可以看到車內(nèi)情形,以及在電子地圖上顯示客車的方位與速度。

            硬件設(shè)計

            車載終端的設(shè)計是根據(jù)系統(tǒng)的總體要求,將硬件電路劃分為獨立的硬件功能模塊(TMS320DM270 CPU模塊、視頻輸入模塊、CDMA模塊、GPS模塊等),并給出各個硬件模塊的功能定義以及他們之間的關(guān)系。車載終端的結(jié)構(gòu)框圖如圖2所示。

            TMS320DM270 CPU模塊

            TMS320DM270是TI公司推出的一款雙核多媒體處理器。它內(nèi)部集成了兩個處理器:ARM7TDMI RISC處理器;TMS320C5409 DSP,并帶有兩個協(xié)處理器——圖像加速器(iMX)和可變步長編解碼器(VLCD)。

            DM270還集成了SDRAM控制器、CCD可編程控制器、預(yù)覽引擎(Preview engine)、專用的硬件3A模塊可以消除主處理器的某些任務(wù)負(fù)擔(dān),如:白平衡、自動曝光和自動調(diào)焦。除此之外,還有USB、UART、SPI、外圍存儲接口等功能。

           視頻輸入模塊

            視頻輸入模塊主要由鏡頭模塊和模擬前端電路組成。模擬前端的作用是將圖像傳感器輸出的模擬信號鉗位放大,并完成A/D轉(zhuǎn)換,這里采用的是TVP5150。TVP5150是TI的一款高質(zhì)量數(shù)字視頻解碼器,可以很方便將模擬視頻信號轉(zhuǎn)換成數(shù)字視頻信號。TVP5150由一組內(nèi)部寄存器初始化并控制,因此在系統(tǒng)復(fù)位上電時DM270要通過I2C對TVP5150進(jìn)行初始化。

            CDMA模塊和網(wǎng)絡(luò)模塊

            作為監(jiān)控調(diào)度系統(tǒng),首先要考慮監(jiān)控覆蓋范圍、實時性、車輛容量、刷新速率等要求,選擇合適的無線數(shù)據(jù)鏈路。由于長途客車的行駛范圍比較大,所以本系統(tǒng)選擇無線網(wǎng)絡(luò)覆蓋范圍較大的CDMA網(wǎng)絡(luò)。

            CDMA是碼分多址的英文縮寫(Code Division Multiple Access),它是在數(shù)字技術(shù)的分支——擴(kuò)頻通信技術(shù)上發(fā)展起來的一種移動通信技術(shù)。本系統(tǒng)采用Q2358C RJ45接口模塊作為CDMA接入設(shè)備,它內(nèi)嵌TCP/IP協(xié)議棧,支持高達(dá)153.6Kb/s的數(shù)據(jù)吞吐率,適合窄帶寬視頻傳輸,有相當(dāng)高的穩(wěn)定性。由于系統(tǒng)采用了先進(jìn)的MPEG-4編碼技術(shù),所以完全可以適應(yīng)CDMA的傳輸速率。

            網(wǎng)絡(luò)模塊也是本系統(tǒng)中一個重要的組成環(huán)節(jié),采用的是AX88796網(wǎng)卡芯片。它負(fù)責(zé)將CPU處理后的數(shù)據(jù)(MPEG-4視頻數(shù)據(jù)、GPS數(shù)據(jù))通過RJ45接口發(fā)送給CDMA模塊,CDMA模塊再根據(jù)目的地址把數(shù)據(jù)送給監(jiān)控中心。

            GPS模塊

            GPS(Global Positioning System)是一套由美國國防部歷時20年,耗資200億美元,于1994年建成的衛(wèi)星定位系統(tǒng),其基本原理是利用繞著地球的24顆衛(wèi)星所發(fā)射的信號,再加以幾何上的計算,來得到接收者的位置。本系統(tǒng)采用的是Motorola UART接口的一款GPS模塊,定位誤差小于25米,測量速度范圍是515米/秒。該模塊將接收的衛(wèi)星數(shù)據(jù)轉(zhuǎn)換為規(guī)定的數(shù)據(jù)格式,其中包括經(jīng)度、維度、高度、速度等。CPU從串口讀取這些數(shù)據(jù),確定車輛的位置與速度。

            FLASH和SDRAM模塊

            本系統(tǒng)設(shè)計2M的NORFLASH用來存儲程序,NORFLASH的2M空間被劃分為四部分,分別存放Bootloader、參數(shù)、內(nèi)核和文件系統(tǒng)。16M的SDRAM用于系統(tǒng)軟件的運(yùn)行以及各種數(shù)據(jù)(MPEG-4視頻數(shù)據(jù)、GPS數(shù)據(jù))的存取。

            車載終端軟件設(shè)計

            基于DM270的軟件設(shè)計分為兩部分:ARM端設(shè)計、DSP端設(shè)計。DSP端的軟件設(shè)計主要是圖像算法的設(shè)計,本系統(tǒng)采用的是MPEG-4算法,同時把DSP作為嵌入式uClinux的外部設(shè)備,并編寫DSP的驅(qū)動程序,注冊進(jìn)內(nèi)核;ARM端運(yùn)行uClinux操作系統(tǒng),處理非成像功能,用來控制整個系統(tǒng)的各個模塊。系統(tǒng)軟件層次結(jié)構(gòu)如圖3所示。

            uClinux內(nèi)核移植

            uClinux是Linux的一個分支,源代碼開放,并且被廣泛的移植到多種CPU平臺上。uClinux內(nèi)核是由Linux內(nèi)核根據(jù)所要運(yùn)行的CPU裁減、修改而來的,因此它保持了原有Linux操作系統(tǒng)的主要優(yōu)點,如穩(wěn)定性好,出色的文件系統(tǒng)支持功能,完善的應(yīng)用程序和驅(qū)動程序開發(fā)環(huán)境,以及Linux原有的完整的TCP/IP協(xié)議包。這樣,當(dāng)越來越多的嵌入式系統(tǒng)需要提供網(wǎng)絡(luò)支持功能時,uClinux便成了首選的操作系統(tǒng)。

            uClinux的移植工作主要包括內(nèi)核的修改、裁減與編譯。

            首先是開發(fā)環(huán)境的建立。主要由目標(biāo)系統(tǒng)硬件開發(fā)板和宿主PC機(jī)構(gòu)成。先在宿主PC機(jī)上安裝標(biāo)準(zhǔn)Linux發(fā)行版Red-Hat Linux和交叉編譯工具arm-elf-tools-20030314.sh,再從網(wǎng)絡(luò)上獲得免費的uClinux內(nèi)核源代碼uClinux-dist-20041215.tar.gz,并在宿主PC機(jī)上執(zhí)行tar zxvf uClinux-dist-20041215.tar.gz對其解壓。

            其次是內(nèi)核的修改。修改的文件主要有:

            1)uClinux-dist/linux-2.4.x/arch/armnommu/boot/compressed/head.S,啟動文件。

            2)uClinux-dist/linux-2.4.x/arch/armnommu/boot/Makefile,啟動配置文件,主要修改的是ZTEXTADDR(自解壓代碼的起始地址)和ZRELADDR(內(nèi)核解壓后代碼輸出起始地址)。

            3)uClinux-dist/linux-2.4.x/arch/armnommu/config.in,修改DRAM_BASE、DRAM_SIZE、FLASH_MEM_BASE和FLASH_SIZE,主要為確定SDRAM、FLASH的起始地址和大小。

            4)uClinux-dist/linux-2.4.x/arch/armnommu/Makefile,修改TEXTADDR來配置內(nèi)核的起始地址。

            5)uClinux-dist/linux-2.4.x/drivers,修改并添加所需的驅(qū)動程序。

            6)uClinux-dist/linux-2.4.x/drivers/block/blkmem.c,ROM文件系統(tǒng)的定位修改。

            7)uClinux-dist/vendors/TI/dm270,修改硬件配置文件。

            8)uClinux-dist/linux-2.4.x/Makefile,選擇CPU體系機(jī)構(gòu)(ARCH?:=?armnommu)和交叉編譯器(CROSS_COMPILE?=?arm-elf-)。

            對內(nèi)核修改完畢后,在uClinux-dist目錄下執(zhí)行make menuconfig。在彈出的對話框中對內(nèi)核進(jìn)行配置和裁減。

            最后就是編譯內(nèi)核。依次執(zhí)行make dep(編譯相關(guān)依賴文件),make clean(在編譯內(nèi)核之前把內(nèi)核清理干凈),make(最終的編譯命令),此時在images目錄下生成了image.ram和image.rom文件,iamge.rom便是要燒寫到FLASH中的內(nèi)核映像文件。

            驅(qū)動程序設(shè)計

            設(shè)備驅(qū)動程序是內(nèi)核的一部分,是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口。Linux操作系統(tǒng)將所有的設(shè)備看作具體的文件,對與用戶而言,可以通過設(shè)備驅(qū)動程序所提供的一組入口點(open()、close()、read()、write()、ioctl()等)來完成對設(shè)備文件的訪問和控制。在Linux系統(tǒng)里,設(shè)備驅(qū)動程序提供的這組入口點是由結(jié)構(gòu)

            static struct file_operations xxx_fops =
            {
            open:  xxx_open,
            release:  xxx_close,
            read:  xxx_read,
            write:  xxx_write,
            ioctl:  xxx_ioctl,
            };來向系統(tǒng)進(jìn)行說明的。file_operations結(jié)構(gòu)中的成員幾乎全部是函數(shù)指針,所以實際上是函數(shù)跳轉(zhuǎn)表,并根據(jù)具體硬件功能完成這些函數(shù)的編寫。之后必須定義一個初始化函數(shù)
            static int __init xxx_init(void)
            {
            register_chrdev(major,"xxx",&xxx_fops);
            }

            向系統(tǒng)注冊設(shè)備,登記驅(qū)動程序所提供的入口點。當(dāng)應(yīng)用程序?qū)υO(shè)備操作時,會根據(jù)file_operations結(jié)構(gòu)中的函數(shù)指針找到相應(yīng)的操作函數(shù)并進(jìn)行調(diào)用。圖3中的驅(qū)動程序都是按照上述來完成的。

            應(yīng)用程序設(shè)計

            在應(yīng)用程序中設(shè)計了兩個進(jìn)程:GPS進(jìn)程和視頻進(jìn)程,應(yīng)用程序流程圖如圖4所示。

            GPS進(jìn)程,首先設(shè)置車載終端的IP地址,初始化GPS模塊,然后通過Linux Socket編程和服務(wù)器建立鏈接,等待服務(wù)器命令,如果10秒鐘內(nèi)沒有收到命令,則通過CDMA發(fā)送GPS數(shù)據(jù)到服務(wù)器。

            視頻進(jìn)程,首先注冊信號量SIGUSR1,其次是對視頻相關(guān)硬件(DSP、TVP5150、CCDC、Preview engine)的初始化,初始化的具體實現(xiàn)是在各個驅(qū)動程序中完成的,然后利用Linux Socket編程和服務(wù)器建立鏈接,最后啟動MPEG-4編碼器。當(dāng)視頻進(jìn)程成收到SIGUSR1信號后,便通過CDMA傳送編碼好的視頻數(shù)據(jù)。

            ARM與DSP通訊

            整個程序運(yùn)行過程中時刻存在著ARM與DSP之間的通訊。

            在視頻編碼開始前,DSP的引導(dǎo)由ARM來控制,首先ARM將DSP掛起在復(fù)位狀態(tài),隨后向DSP下載MPEG-4編碼程序,最后喚醒DSP開始編碼。DSP的引導(dǎo)順序如圖5所示。

            在視頻編碼過程中,ARM與DSP通過HPIB進(jìn)行通信。ARM管理著DSP數(shù)據(jù)空間的數(shù)據(jù)輸入輸出。在DSP數(shù)據(jù)空間定義了一段內(nèi)存空間作為命令寄存器,然后通過HPI訪問這些寄存器,這就是ARM與DSP之間的一個通訊接口,ARM和DSP都可以異步地向?qū)Ψ桨l(fā)出命令,不存在主從關(guān)系。為了建立這種雙向通訊,系統(tǒng)設(shè)計了兩組寄存器,一組用于ARM(命令由DSP發(fā)出),另一組用于DSP(命令由ARM發(fā)出)。在編碼過程中就是利用這組寄存器以及HPI中斷完成了圖像數(shù)據(jù)的讀取、編碼和發(fā)送。DSP的HPI中斷過程如圖6所示。DSP通過寫寄存器并發(fā)出HPI中斷,向ARM發(fā)送命令。ARM在HPI中斷服務(wù)程序中判斷命令類型并執(zhí)行,其中一種命令是DPS向ARM請求原始圖像數(shù)據(jù)進(jìn)行編碼;另一種命令是DPS請求ARM發(fā)送壓縮后的MPEG-4視頻數(shù)據(jù),在這個命令中會向視頻進(jìn)程發(fā)出SIGUSR1信號。ARM執(zhí)行完命令之后發(fā)出HPI通知DSP。

            結(jié)語

            本系統(tǒng)把無線視頻監(jiān)控技術(shù)和GPS定位系統(tǒng)相結(jié)合,同單一的GPS定位系統(tǒng)相比有明顯的優(yōu)勢。在實際測試中,實現(xiàn)了視頻和GPS的同步傳輸。視頻傳輸速度可達(dá)8幀/秒,圖像分辨率達(dá)到CIF格式。同時通過對GPS數(shù)據(jù)的解析,可準(zhǔn)確的確定客車的位置和速度。隨著MPEG-4算法的優(yōu)化,無線網(wǎng)絡(luò)的不斷發(fā)展以及3G的推出,傳輸效果將會更加的理想。雖然該系統(tǒng)是為長途客運(yùn)車而設(shè)計,但它的整個解決方案可用于其它需要遠(yuǎn)程監(jiān)控的行業(yè),比如可廣泛應(yīng)用于軍事、交通、油田、煤礦以及手持娛樂設(shè)備等。

            參考文獻(xiàn):

            1.  TI. TMS320DM270 CPU and Peripherals Technical Reference Manual Version 1.2

            2.  田洪現(xiàn),楊維,楊公訓(xùn). 基于H.264的煤礦井下無線視頻通信 礦山機(jī)械 2006.9

            3.  王磊,江冰,陳文健. 基于ARM平臺的車載定位系統(tǒng)設(shè)計 微處理機(jī) 2006.12

            4.  張新文,何小剛,李興. uClinux在TMS320DM270評估板上的移植 科技情報開發(fā)與經(jīng)濟(jì) 2005.7

            5.  劉淼. 嵌入式系統(tǒng)接口設(shè)計與Linux驅(qū)動程序開發(fā) 北京航空航天大學(xué)出版社 2006.5

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關(guān)文章:linux教程


          cdma相關(guān)文章:cdma原理




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();