基于TMS320DM270的長(zhǎng)途客運(yùn)車(chē)無(wú)線視頻監(jiān)控系統(tǒng)的設(shè)
引言
本文引用地址:http://www.ex-cimer.com/article/186152.htm隨著公路交通的不斷發(fā)展,長(zhǎng)途客運(yùn)車(chē)也隨之不斷增長(zhǎng),方便人們出行的同時(shí),交通事故不斷發(fā)生,盜竊、搶劫也時(shí)有發(fā)生。
為了能使汽車(chē)安全的行駛,乘客放心的乘坐,開(kāi)發(fā)研究一套良好的長(zhǎng)途客運(yùn)車(chē)無(wú)線視頻監(jiān)控系統(tǒng)就顯得尤其的重要。
近年來(lái)傳統(tǒng)的模擬視頻監(jiān)控技術(shù)正在逐步向數(shù)字化、網(wǎng)絡(luò)化、智能化發(fā)展,將監(jiān)控技術(shù)與網(wǎng)絡(luò)技術(shù),特別是無(wú)線網(wǎng)絡(luò)技術(shù)完美結(jié)合,是數(shù)字監(jiān)控領(lǐng)域的新方向。本文介紹的長(zhǎng)途客運(yùn)車(chē)無(wú)線視頻監(jiān)控系統(tǒng)是整合嵌入式技術(shù)、CDMA無(wú)線網(wǎng)絡(luò)通訊技術(shù)、MPEG-4數(shù)字視頻壓縮技術(shù)和GPS定位技術(shù)為一體的視頻終端。
系統(tǒng)簡(jiǎn)介
整個(gè)無(wú)線視頻監(jiān)控系統(tǒng)由車(chē)載終端(包括TMS320DM270 CPU模塊、視頻輸入模塊、CDMA模塊、GPS模塊等)、通信網(wǎng)絡(luò)和監(jiān)控中心組成,其系統(tǒng)結(jié)構(gòu)如圖1所示。
車(chē)載終端被放置在長(zhǎng)途客車(chē)內(nèi),用來(lái)采集車(chē)內(nèi)圖像并利用MPEG-4技術(shù)對(duì)圖像進(jìn)行壓縮,使圖像分辨率達(dá)到CIF格式,幀率在1-8幀/秒可調(diào)。同時(shí)GPS模塊實(shí)時(shí)接收全球定位衛(wèi)星發(fā)射的信號(hào),得到當(dāng)前車(chē)輛位置和速度。最后CPU將壓縮后的視頻流與GPS數(shù)據(jù)通過(guò)CDMA無(wú)線通信網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)發(fā)送到監(jiān)控中心,從而在監(jiān)控中心可以看到車(chē)內(nèi)情形,以及在電子地圖上顯示客車(chē)的方位與速度。
車(chē)載終端硬件設(shè)計(jì)
車(chē)載終端的設(shè)計(jì)是根據(jù)系統(tǒng)的總體要求,將硬件電路劃分為獨(dú)立的硬件功能模塊(TMS320DM270 CPU模塊、視頻輸入模塊、CDMA模塊、GPS模塊等),并給出各個(gè)硬件模塊的功能定義以及他們之間的關(guān)系。車(chē)載終端的結(jié)構(gòu)框圖如圖2所示。
TMS320DM270是TI公司推出的一款雙核多媒體處理器。它內(nèi)部集成了兩個(gè)處理器:ARM7TDMI RISC處理器;TMS320C5409 DSP,并帶有兩個(gè)協(xié)處理器——圖像加速器(iMX)和可變步長(zhǎng)編解碼器(VLCD)。
DM270還集成了SDRAM控制器、CCD可編程控制器、預(yù)覽引擎(Preview engine)、專(zhuān)用的硬件3A模塊可以消除主處理器的某些任務(wù)負(fù)擔(dān),如:白平衡、自動(dòng)曝光和自動(dòng)調(diào)焦。除此之外,還有USB、UART、SPI、外圍存儲(chǔ)接口等功能。
視頻輸入模塊
視頻輸入模塊主要由鏡頭模塊和模擬前端電路組成。模擬前端的作用是將圖像傳感器輸出的模擬信號(hào)鉗位放大,并完成A/D轉(zhuǎn)換,這里采用的是TVP5150。TVP5150是TI的一款高質(zhì)量數(shù)字視頻解碼器,可以很方便將模擬視頻信號(hào)轉(zhuǎn)換成數(shù)字視頻信號(hào)。TVP5150由一組內(nèi)部寄存器初始化并控制,因此在系統(tǒng)復(fù)位上電時(shí)DM270要通過(guò)I2C對(duì)TVP5150進(jìn)行初始化。
CDMA模塊和網(wǎng)絡(luò)模塊
作為監(jiān)控調(diào)度系統(tǒng),首先要考慮監(jiān)控覆蓋范圍、實(shí)時(shí)性、車(chē)輛容量、刷新速率等要求,選擇合適的無(wú)線數(shù)據(jù)鏈路。由于長(zhǎng)途客車(chē)的行駛范圍比較大,所以本系統(tǒng)選擇無(wú)線網(wǎng)絡(luò)覆蓋范圍較大的CDMA網(wǎng)絡(luò)。
CDMA是碼分多址的英文縮寫(xiě)(Code Division Multiple Access),它是在數(shù)字技術(shù)的分支——擴(kuò)頻通信技術(shù)上發(fā)展起來(lái)的一種移動(dòng)通信技術(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)中一個(gè)重要的組成環(huán)節(jié),采用的是AX88796網(wǎng)卡芯片。它負(fù)責(zé)將CPU處理后的數(shù)據(jù)(MPEG-4視頻數(shù)據(jù)、GPS數(shù)據(jù))通過(guò)RJ45接口發(fā)送給CDMA模塊,CDMA模塊再根據(jù)目的地址把數(shù)據(jù)送給監(jiān)控中心。
GPS模塊
GPS(Global Positioning System)是一套由美國(guó)國(guó)防部歷時(shí)20年,耗資200億美元,于1994年建成的衛(wèi)星定位系統(tǒng),其基本原理是利用繞著地球的24顆衛(wèi)星所發(fā)射的信號(hào),再加以幾何上的計(jì)算,來(lái)得到接收者的位置。本系統(tǒng)采用的是Motorola UART接口的一款GPS模塊,定位誤差小于25米,測(cè)量速度范圍是515米/秒。該模塊將接收的衛(wèi)星數(shù)據(jù)轉(zhuǎn)換為規(guī)定的數(shù)據(jù)格式,其中包括經(jīng)度、維度、高度、速度等。CPU從串口讀取這些數(shù)據(jù),確定車(chē)輛的位置與速度。
FLASH和SDRAM模塊
本系統(tǒng)設(shè)計(jì)2M的NORFLASH用來(lái)存儲(chǔ)程序,NORFLASH的2M空間被劃分為四部分,分別存放Bootloader、參數(shù)、內(nèi)核和文件系統(tǒng)。16M的SDRAM用于系統(tǒng)軟件的運(yùn)行以及各種數(shù)據(jù)(MPEG-4視頻數(shù)據(jù)、GPS數(shù)據(jù))的存取。
車(chē)載終端軟件設(shè)計(jì)
基于DM270的軟件設(shè)計(jì)分為兩部分:ARM端設(shè)計(jì)、DSP端設(shè)計(jì)。DSP端的軟件設(shè)計(jì)主要是圖像算法的設(shè)計(jì),本系統(tǒng)采用的是MPEG-4算法,同時(shí)把DSP作為嵌入式uClinux的外部設(shè)備,并編寫(xiě)DSP的驅(qū)動(dòng)程序,注冊(cè)進(jìn)內(nèi)核;ARM端運(yùn)行uClinux操作系統(tǒng),處理非成像功能,用來(lái)控制整個(gè)系統(tǒng)的各個(gè)模塊。系統(tǒng)軟件層次結(jié)構(gòu)如圖3所示。
uClinux內(nèi)核移植
uClinux是Linux的一個(gè)分支,源代碼開(kāi)放,并且被廣泛的移植到多種CPU平臺(tái)上。uClinux內(nèi)核是由Linux內(nèi)核根據(jù)所要運(yùn)行的CPU裁減、修改而來(lái)的,因此它保持了原有Linux操作系統(tǒng)的主要優(yōu)點(diǎn),如穩(wěn)定性好,出色的文件系統(tǒng)支持功能,完善的應(yīng)用程序和驅(qū)動(dòng)程序開(kāi)發(fā)環(huán)境,以及Linux原有的完整的TCP/IP協(xié)議包。這樣,當(dāng)越來(lái)越多的嵌入式系統(tǒng)需要提供網(wǎng)絡(luò)支持功能時(shí),uClinux便成了首選的操作系統(tǒng)。
uClinux的移植工作主要包括內(nèi)核的修改、裁減與編譯。
首先是開(kāi)發(fā)環(huán)境的建立。主要由目標(biāo)系統(tǒng)硬件開(kāi)發(fā)板和宿主PC機(jī)構(gòu)成。先在宿主PC機(jī)上安裝標(biāo)準(zhǔn)Linux發(fā)行版Red-Hat Linux和交叉編譯工具arm-elf-tools-20030314.sh,再?gòu)木W(wǎng)絡(luò)上獲得免費(fèi)的uClinux內(nèi)核源代碼uClinux-dist-20041215.tar.gz,并在宿主PC機(jī)上執(zhí)行tar zxvf uClinux-dist-20041215.tar.gz對(duì)其解壓。
其次是內(nèi)核的修改。修改的文件主要有:
1)uClinux-dist/linux-2.4.x/arch/armnommu/boot/compressed/head.S,啟動(dòng)文件。
2)uClinux-dist/linux-2.4.x/arch/armnommu/boot/Makefile,啟動(dòng)配置文件,主要修改的是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來(lái)配置內(nèi)核的起始地址。
5)uClinux-dist/linux-2.4.x/drivers,修改并添加所需的驅(qū)動(dòng)程序。
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-)。
對(duì)內(nèi)核修改完畢后,在uClinux-dist目錄下執(zhí)行make menuconfig。在彈出的對(duì)話框中對(duì)內(nèi)核進(jìn)行配置和裁減。
最后就是編譯內(nèi)核。依次執(zhí)行make dep(編譯相關(guān)依賴(lài)文件),make clean(在編譯內(nèi)核之前把內(nèi)核清理干凈),make(最終的編譯命令),此時(shí)在images目錄下生成了image.ram和image.rom文件,iamge.rom便是要燒寫(xiě)到FLASH中的內(nèi)核映像文件。
評(píng)論