3G車(chē)載視頻傳輸模塊的設(shè)計(jì)與實(shí)現(xiàn)
摘要:由于車(chē)輛監(jiān)控領(lǐng)域?qū)τ跀?shù)據(jù)傳輸?shù)囊笤絹?lái)越高,該文設(shè)計(jì)了3G車(chē)載視頻傳輸模塊,給出了系統(tǒng)的硬件和軟件設(shè)計(jì)。硬件部分重點(diǎn)闡述了視頻采集、3G傳輸?shù)炔糠值脑O(shè)計(jì)。軟件部分介紹了U6100模塊的驅(qū)動(dòng)設(shè)計(jì),3G網(wǎng)絡(luò)接入程序設(shè)計(jì)和視頻傳輸程序設(shè)計(jì)。最后,通過(guò)對(duì)RTP數(shù)據(jù)包的分析和對(duì)客戶(hù)端視頻的觀(guān)察,證明了本設(shè)計(jì)取得了很好的效果。
本文引用地址:http://2s4d.com/article/201610/306882.htm關(guān)鍵詞:車(chē)載終端;視頻傳輸;3G無(wú)線(xiàn)網(wǎng)絡(luò);U6100
由于3G無(wú)線(xiàn)網(wǎng)絡(luò)技術(shù)和嵌入式技術(shù)的不斷發(fā)展,推動(dòng)了視頻監(jiān)控領(lǐng)域的迅速發(fā)展,尤其是在汽車(chē)監(jiān)控領(lǐng)域。3G無(wú)線(xiàn)網(wǎng)絡(luò)覆蓋面積廣,可靈活接入,相比之前車(chē)載視頻監(jiān)控終端所采用GPRS,CDMA等無(wú)線(xiàn)通信技術(shù),傳輸速度快了很多,但是3G技術(shù)在汽車(chē)監(jiān)控領(lǐng)域的實(shí)際應(yīng)用不夠完善。DM365支持H.264視頻編碼技術(shù),在網(wǎng)絡(luò)帶寬有限的條件下,保證了視頻數(shù)據(jù)的高質(zhì)量傳輸。上海龍尚公司的U6100模塊可以集成到任何3G移動(dòng)設(shè)備,并且可以接入到HSDPA、 HSUPA、UMTS等高速網(wǎng)絡(luò)。所以我們?cè)O(shè)計(jì)了以TI的DM365為核心,以上海龍尚公司的U6100為傳輸模塊的車(chē)載視頻傳輸模塊。
1 3G車(chē)載視頻傳輸模塊的硬件設(shè)計(jì)
本文設(shè)計(jì)的視頻傳輸模塊是應(yīng)用在于車(chē)載監(jiān)控設(shè)備中,所以我們?cè)谶M(jìn)行方案設(shè)計(jì)和硬件的選擇時(shí),視頻的傳輸要求是首當(dāng)其沖的。鑒于DM36X系列軟硬件兼容性好,Davinci平臺(tái)方便算法擴(kuò)展,故采用TMS320DM365芯片來(lái)搭建3G車(chē)載視頻傳輸系統(tǒng)。
本模塊的硬件平臺(tái)主要由以下幾部分組成,分別是視頻采集和處理部分,本地存儲(chǔ)與顯示部分,3G視頻傳輸部分,電源部分。車(chē)載終端視頻傳輸模塊硬件框架圖如圖1所示。
1.1 視頻采集和處理部分
視頻采集部分由一個(gè)PAI/NTSC制式的云臺(tái)攝像頭和一個(gè)視頻編解碼芯片TVP5151組成。云臺(tái)攝像頭需要用RS485來(lái)控制,由于DM365上的只有兩個(gè)串行接口(UART),且都已經(jīng)被占用(一個(gè)用來(lái)連接串口調(diào)試,一個(gè)連接GPS模塊)。所以我們利用USB HUB里多余的一個(gè)USB口,進(jìn)行二級(jí)轉(zhuǎn)換,先用LP2303轉(zhuǎn)換成232,在用MAX485轉(zhuǎn)換成485用于云臺(tái)的控制。
TVP5151和處理器是用I2C總線(xiàn)進(jìn)行對(duì)接的,將輸入的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。
視頻處理部分則采用TI的DM365高清視頻處理器。DM365支持H.264視頻編碼技術(shù),在用3G無(wú)線(xiàn)網(wǎng)絡(luò)傳輸?shù)臈l件下,保證可以進(jìn)行高質(zhì)量視頻數(shù)據(jù)的傳輸。
1.2 本地存儲(chǔ)和顯示部分
DM365提供了專(zhuān)門(mén)的外部存儲(chǔ)器接口,包括一個(gè)Flash接口和一個(gè)SDRAM接口,可以連接外部存儲(chǔ)器。在這個(gè)車(chē)載終端的設(shè)計(jì)中我們選用三星公司的1GB容量、8位數(shù)據(jù)線(xiàn)的K9F 8G08UOB的NAND Flash芯片和128MB容量、16位數(shù)據(jù)線(xiàn)的K4T1G164QE的DDR SDRAM芯片。
為了車(chē)載終端的操作的更加人性化,顯示部分我們選用的是臺(tái)灣晶采光電公司的一款5.7英寸的TFT-LCD觸摸屏面板。該面板具有640X480的高分辨率。它支持I2C總線(xiàn)或SPI總線(xiàn),考慮到上層驅(qū)動(dòng)的實(shí)際情況,使用的是I2C總線(xiàn)和主芯片進(jìn)行連接。
1.3 3G視頻傳輸部分
3G傳輸部分選用的是U6100模塊。他在3G網(wǎng)絡(luò)平臺(tái)下上行和下行的最傳輸速率均能達(dá)到384Kbps,符合車(chē)載傳輸模塊的設(shè)計(jì)要求。3G傳輸部分的電路設(shè)計(jì)如圖2所示。
U6100的供電要求是3.6~4.2 V,我們用3.8 V給其供電。U6100提供6條SIM卡接口連接SIM卡,兼容現(xiàn)在各種3G格式。U6100提供標(biāo)準(zhǔn)的RS232接口USB_DM和USB_DP,可以直接和用戶(hù)的CPU相連。由于本設(shè)計(jì)需要4個(gè)USB口,我們用一款USB擴(kuò)展芯片把DM365僅有一個(gè)USB口擴(kuò)展成4個(gè),并用其中的DP1和DM1來(lái)連接U6100。電源USB VBUS由5 V電源經(jīng)過(guò)濾波后供給。KPD_PWR_N是U6100的供電開(kāi)關(guān),其拉低時(shí)有效,我們直接通過(guò)一個(gè)0歐姆電阻接地,這樣U6100開(kāi)啟時(shí)默認(rèn)處在工作模式。EXT_RET_IN是U6100的復(fù)位信號(hào),其拉低時(shí)進(jìn)行復(fù)位,我們這里通過(guò)DM365的GPIO口來(lái)進(jìn)行控制。
2 車(chē)載視頻傳輸模塊的軟件設(shè)計(jì)
視頻傳輸模塊的軟件設(shè)計(jì)部分主要分為驅(qū)動(dòng)的設(shè)計(jì)和應(yīng)用程序的設(shè)計(jì)。我這里主要講了包括U6100模塊的驅(qū)動(dòng)設(shè)計(jì),3G網(wǎng)絡(luò)接入程序設(shè)計(jì)和視頻傳輸程序設(shè)計(jì)。由于Linux 2.6.18的系統(tǒng)相比于其他版本具有更好的開(kāi)放性、安全性和可移植性,所以本系統(tǒng)的全部軟件開(kāi)發(fā)是在該平臺(tái)進(jìn)行的。
2.1 U6100模塊的驅(qū)動(dòng)設(shè)計(jì)
驅(qū)動(dòng)模塊的加載分靜態(tài)和動(dòng)態(tài)兩種。本系統(tǒng)采用的是動(dòng)態(tài)加載方式。U6100模塊的加載過(guò)程如下:1)首先要確認(rèn)編譯驅(qū)動(dòng)和編譯內(nèi)核的交叉編譯工具是同一個(gè) (本系統(tǒng)用的是arm_v5t_le_gcc);2)對(duì)驅(qū)動(dòng)的Makefile文件進(jìn)行修改,添加內(nèi)核源碼目錄和編譯工具,進(jìn)行make編譯后,生成.ko文件;3)將生成的.ko文件拷到車(chē)載終端的/module/下面;4)用insmod命令進(jìn)行模塊的加載,在目錄/dev/tts下會(huì)生成3個(gè)設(shè)備節(jié)點(diǎn)USB1-USB3;至此,3G無(wú)線(xiàn)模塊加載成功。
2.2 3G網(wǎng)絡(luò)接入程序設(shè)計(jì)
3G無(wú)線(xiàn)模塊加載成功后,就要接入網(wǎng)絡(luò),車(chē)載設(shè)備通過(guò)撥號(hào)的方式連接至網(wǎng)絡(luò),最常用的是使用PPP(點(diǎn)對(duì)點(diǎn)協(xié)議)協(xié)議。PPP協(xié)議的撥號(hào)主要分為3個(gè)階段,完成以后,一條完整的PPP鏈路就建立起來(lái)了。經(jīng)過(guò)如圖3所示。
雖然U6100模塊對(duì)電信的CDMA2000和聯(lián)通的WCDMA都支持,相對(duì)來(lái)說(shuō),聯(lián)通的WCDMA網(wǎng)絡(luò)更加穩(wěn)定和快速,所以我們選用聯(lián)通的WCDMA網(wǎng)絡(luò)。在LINUX中,與WCDMA入網(wǎng)有關(guān)的程序?yàn)閜ppd和chat。pppd程序負(fù)責(zé)3G模塊的初始化和入網(wǎng)撥號(hào)。在初始化部分調(diào)用chat程序進(jìn)行 AT指令的發(fā)送,主要交互撥號(hào)參數(shù)和撥號(hào)的用戶(hù)信息的設(shè)置,然后pppd程序進(jìn)行入網(wǎng)撥號(hào)。U6100撥號(hào)接入網(wǎng)絡(luò)的具體流程如下:1)編寫(xiě)pppd撥號(hào)腳本wcdma3、會(huì)話(huà)建立和斷開(kāi)的調(diào)用腳本chat—wcdma—connect和chat—wcdma—disconnect文件;2)添加內(nèi)核選項(xiàng),編譯支持PPP協(xié)議的內(nèi)核;3)把編譯好的進(jìn)行pppd文件和chat文件的移植到車(chē)載終端的文件系統(tǒng)的/etc/ppp/peers下;4)在終端輸入撥號(hào)命令pppd callwcdma3進(jìn)行連接;5)用ifconfig查詢(xún),出現(xiàn)出現(xiàn)一個(gè)網(wǎng)絡(luò)接口ppp0的打印消息,表明已經(jīng)成功連接到WCDMA3G網(wǎng)絡(luò)。
2.3 視頻傳輸程序設(shè)計(jì)
車(chē)載視頻傳輸系統(tǒng)對(duì)視頻傳輸?shù)臅r(shí)延和丟包率要求比較高,RTP/RTCP是實(shí)時(shí)視頻傳輸過(guò)程中一種比較好的解決方案,它具有開(kāi)源代碼的RTP庫(kù),因此本系統(tǒng)采用實(shí)時(shí)傳輸協(xié)議RTP和實(shí)時(shí)傳輸控制協(xié)議RTCP配合使用來(lái)進(jìn)行3G傳輸。
RTP數(shù)據(jù)包的發(fā)送流程如圖4(a)所示。先把從緩存中讀取的H.264視頻流打包成一個(gè)一個(gè)RTP數(shù)據(jù)包,依次發(fā)送給服務(wù)器。RIP荷載的單元類(lèi)型結(jié)構(gòu)有單NAL單元包、聚合包和分片單元3種。在這里為了避免視頻數(shù)據(jù)在網(wǎng)絡(luò)層被分割,我們采用的是單NAL包和分片包模式,將1個(gè)NAL單元設(shè)為1K字節(jié)。如果小于1K字節(jié),直接封裝成一個(gè)RTP包發(fā)送。如果數(shù)據(jù)單元的長(zhǎng)度較長(zhǎng)超過(guò)1K字節(jié),則作為FU—A包發(fā)送,需要分割成若干個(gè)小于1K字節(jié)的NAL包,包括首片包、中間包和尾片包三類(lèi)。然后按照RTP數(shù)據(jù)包的格式封裝上RTP報(bào)頭,再通過(guò)U6100模塊發(fā)送至3G網(wǎng)絡(luò)。對(duì)應(yīng)的RTP包接收流程如圖 4(b)所示。
3 測(cè)試效果
在搭建好的車(chē)載終端環(huán)境下進(jìn)行3G視頻傳輸,并用Wireshake軟件進(jìn)行RTP數(shù)據(jù)包分析實(shí)驗(yàn)。如圖5所示,其中黑色陰影的是抓到的第847個(gè)RTP包,它從3G網(wǎng)絡(luò)的地址10.13.1 4.77傳送到我們的設(shè)備服務(wù)器101.69.255.130??吹饺縍TP包的大小都不超過(guò)設(shè)置的包的最大值1040。經(jīng)過(guò)多次測(cè)試,丟包率在4%以?xún)?nèi),符合的要求。在客戶(hù)端看到的視頻也非常的清晰,視頻流暢度也很好,無(wú)線(xiàn)傳輸速率能達(dá)到25幀/s,如圖6所示。
4 結(jié)論
文中設(shè)計(jì)的3G車(chē)載視頻傳輸模塊是車(chē)載監(jiān)控系統(tǒng)的重要部分,通過(guò)3G網(wǎng)絡(luò)傳輸?shù)囊曨l畫(huà)面清晰,有利于遠(yuǎn)程監(jiān)控中心對(duì)車(chē)輛進(jìn)行實(shí)時(shí)的監(jiān)控和調(diào)度,符合目前車(chē)載傳輸?shù)囊蟆?/p>
評(píng)論