3G車(chē)載視頻傳輸模塊的設計與實(shí)現
摘要:由于車(chē)輛監控領(lǐng)域對于數據傳輸的要求越來(lái)越高,該文設計了3G車(chē)載視頻傳輸模塊,給出了系統的硬件和軟件設計。硬件部分重點(diǎn)闡述了視頻采集、3G傳輸等部分的設計。軟件部分介紹了U6100模塊的驅動(dòng)設計,3G網(wǎng)絡(luò )接入程序設計和視頻傳輸程序設計。最后,通過(guò)對RTP數據包的分析和對客戶(hù)端視頻的觀(guān)察,證明了本設計取得了很好的效果。
本文引用地址:http://dyxdggzs.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)了視頻監控領(lǐng)域的迅速發(fā)展,尤其是在汽車(chē)監控領(lǐng)域。3G無(wú)線(xiàn)網(wǎng)絡(luò )覆蓋面積廣,可靈活接入,相比之前車(chē)載視頻監控終端所采用GPRS,CDMA等無(wú)線(xiàn)通信技術(shù),傳輸速度快了很多,但是3G技術(shù)在汽車(chē)監控領(lǐng)域的實(shí)際應用不夠完善。DM365支持H.264視頻編碼技術(shù),在網(wǎng)絡(luò )帶寬有限的條件下,保證了視頻數據的高質(zhì)量傳輸。上海龍尚公司的U6100模塊可以集成到任何3G移動(dòng)設備,并且可以接入到HSDPA、 HSUPA、UMTS等高速網(wǎng)絡(luò )。所以我們設計了以TI的DM365為核心,以上海龍尚公司的U6100為傳輸模塊的車(chē)載視頻傳輸模塊。
1 3G車(chē)載視頻傳輸模塊的硬件設計
本文設計的視頻傳輸模塊是應用在于車(chē)載監控設備中,所以我們在進(jìn)行方案設計和硬件的選擇時(shí),視頻的傳輸要求是首當其沖的。鑒于DM36X系列軟硬件兼容性好,Davinci平臺方便算法擴展,故采用TMS320DM365芯片來(lái)搭建3G車(chē)載視頻傳輸系統。
本模塊的硬件平臺主要由以下幾部分組成,分別是視頻采集和處理部分,本地存儲與顯示部分,3G視頻傳輸部分,電源部分。車(chē)載終端視頻傳輸模塊硬件框架圖如圖1所示。

1.1 視頻采集和處理部分
視頻采集部分由一個(gè)PAI/NTSC制式的云臺攝像頭和一個(gè)視頻編解碼芯片TVP5151組成。云臺攝像頭需要用RS485來(lái)控制,由于DM365上的只有兩個(gè)串行接口(UART),且都已經(jīng)被占用(一個(gè)用來(lái)連接串口調試,一個(gè)連接GPS模塊)。所以我們利用USB HUB里多余的一個(gè)USB口,進(jìn)行二級轉換,先用LP2303轉換成232,在用MAX485轉換成485用于云臺的控制。
TVP5151和處理器是用I2C總線(xiàn)進(jìn)行對接的,將輸入的模擬信號轉換成數字信號。
視頻處理部分則采用TI的DM365高清視頻處理器。DM365支持H.264視頻編碼技術(shù),在用3G無(wú)線(xiàn)網(wǎng)絡(luò )傳輸的條件下,保證可以進(jìn)行高質(zhì)量視頻數據的傳輸。
1.2 本地存儲和顯示部分
DM365提供了專(zhuān)門(mén)的外部存儲器接口,包括一個(gè)Flash接口和一個(gè)SDRAM接口,可以連接外部存儲器。在這個(gè)車(chē)載終端的設計中我們選用三星公司的1GB容量、8位數據線(xiàn)的K9F 8G08UOB的NAND Flash芯片和128MB容量、16位數據線(xiàn)的K4T1G164QE的DDR SDRAM芯片。
為了車(chē)載終端的操作的更加人性化,顯示部分我們選用的是臺灣晶采光電公司的一款5.7英寸的TFT-LCD觸摸屏面板。該面板具有640X480的高分辨率。它支持I2C總線(xiàn)或SPI總線(xiàn),考慮到上層驅動(dòng)的實(shí)際情況,使用的是I2C總線(xiàn)和主芯片進(jìn)行連接。
1.3 3G視頻傳輸部分
3G傳輸部分選用的是U6100模塊。他在3G網(wǎng)絡(luò )平臺下上行和下行的最傳輸速率均能達到384Kbps,符合車(chē)載傳輸模塊的設計要求。3G傳輸部分的電路設計如圖2所示。

U6100的供電要求是3.6~4.2 V,我們用3.8 V給其供電。U6100提供6條SIM卡接口連接SIM卡,兼容現在各種3G格式。U6100提供標準的RS232接口USB_DM和USB_DP,可以直接和用戶(hù)的CPU相連。由于本設計需要4個(gè)USB口,我們用一款USB擴展芯片把DM365僅有一個(gè)USB口擴展成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í)默認處在工作模式。EXT_RET_IN是U6100的復位信號,其拉低時(shí)進(jìn)行復位,我們這里通過(guò)DM365的GPIO口來(lái)進(jìn)行控制。
2 車(chē)載視頻傳輸模塊的軟件設計
視頻傳輸模塊的軟件設計部分主要分為驅動(dòng)的設計和應用程序的設計。我這里主要講了包括U6100模塊的驅動(dòng)設計,3G網(wǎng)絡(luò )接入程序設計和視頻傳輸程序設計。由于Linux 2.6.18的系統相比于其他版本具有更好的開(kāi)放性、安全性和可移植性,所以本系統的全部軟件開(kāi)發(fā)是在該平臺進(jìn)行的。
2.1 U6100模塊的驅動(dòng)設計
驅動(dòng)模塊的加載分靜態(tài)和動(dòng)態(tài)兩種。本系統采用的是動(dòng)態(tài)加載方式。U6100模塊的加載過(guò)程如下:1)首先要確認編譯驅動(dòng)和編譯內核的交叉編譯工具是同一個(gè) (本系統用的是arm_v5t_le_gcc);2)對驅動(dòng)的Makefile文件進(jìn)行修改,添加內核源碼目錄和編譯工具,進(jìn)行make編譯后,生成.ko文件;3)將生成的.ko文件拷到車(chē)載終端的/module/下面;4)用insmod命令進(jìn)行模塊的加載,在目錄/dev/tts下會(huì )生成3個(gè)設備節點(diǎn)USB1-USB3;至此,3G無(wú)線(xiàn)模塊加載成功。
2.2 3G網(wǎng)絡(luò )接入程序設計
3G無(wú)線(xiàn)模塊加載成功后,就要接入網(wǎng)絡(luò ),車(chē)載設備通過(guò)撥號的方式連接至網(wǎng)絡(luò ),最常用的是使用PPP(點(diǎn)對點(diǎn)協(xié)議)協(xié)議。PPP協(xié)議的撥號主要分為3個(gè)階段,完成以后,一條完整的PPP鏈路就建立起來(lái)了。經(jīng)過(guò)如圖3所示。

雖然U6100模塊對電信的CDMA2000和聯(lián)通的WCDMA都支持,相對來(lái)說(shuō),聯(lián)通的WCDMA網(wǎng)絡(luò )更加穩定和快速,所以我們選用聯(lián)通的WCDMA網(wǎng)絡(luò )。在LINUX中,與WCDMA入網(wǎng)有關(guān)的程序為pppd和chat。pppd程序負責3G模塊的初始化和入網(wǎng)撥號。在初始化部分調用chat程序進(jìn)行 AT指令的發(fā)送,主要交互撥號參數和撥號的用戶(hù)信息的設置,然后pppd程序進(jìn)行入網(wǎng)撥號。U6100撥號接入網(wǎng)絡(luò )的具體流程如下:1)編寫(xiě)pppd撥號腳本wcdma3、會(huì )話(huà)建立和斷開(kāi)的調用腳本chat—wcdma—connect和chat—wcdma—disconnect文件;2)添加內核選項,編譯支持PPP協(xié)議的內核;3)把編譯好的進(jìn)行pppd文件和chat文件的移植到車(chē)載終端的文件系統的/etc/ppp/peers下;4)在終端輸入撥號命令pppd callwcdma3進(jìn)行連接;5)用ifconfig查詢(xún),出現出現一個(gè)網(wǎng)絡(luò )接口ppp0的打印消息,表明已經(jīng)成功連接到WCDMA3G網(wǎng)絡(luò )。
2.3 視頻傳輸程序設計
車(chē)載視頻傳輸系統對視頻傳輸的時(shí)延和丟包率要求比較高,RTP/RTCP是實(shí)時(shí)視頻傳輸過(guò)程中一種比較好的解決方案,它具有開(kāi)源代碼的RTP庫,因此本系統采用實(shí)時(shí)傳輸協(xié)議RTP和實(shí)時(shí)傳輸控制協(xié)議RTCP配合使用來(lái)進(jìn)行3G傳輸。
RTP數據包的發(fā)送流程如圖4(a)所示。先把從緩存中讀取的H.264視頻流打包成一個(gè)一個(gè)RTP數據包,依次發(fā)送給服務(wù)器。RIP荷載的單元類(lèi)型結構有單NAL單元包、聚合包和分片單元3種。在這里為了避免視頻數據在網(wǎng)絡(luò )層被分割,我們采用的是單NAL包和分片包模式,將1個(gè)NAL單元設為1K字節。如果小于1K字節,直接封裝成一個(gè)RTP包發(fā)送。如果數據單元的長(cháng)度較長(cháng)超過(guò)1K字節,則作為FU—A包發(fā)送,需要分割成若干個(gè)小于1K字節的NAL包,包括首片包、中間包和尾片包三類(lèi)。然后按照RTP數據包的格式封裝上RTP報頭,再通過(guò)U6100模塊發(fā)送至3G網(wǎng)絡(luò )。對應的RTP包接收流程如圖 4(b)所示。

3 測試效果
在搭建好的車(chē)載終端環(huán)境下進(jìn)行3G視頻傳輸,并用Wireshake軟件進(jìn)行RTP數據包分析實(shí)驗。如圖5所示,其中黑色陰影的是抓到的第847個(gè)RTP包,它從3G網(wǎng)絡(luò )的地址10.13.1 4.77傳送到我們的設備服務(wù)器101.69.255.130??吹饺縍TP包的大小都不超過(guò)設置的包的最大值1040。經(jīng)過(guò)多次測試,丟包率在4%以?xún)?,符合的要求。在客?hù)端看到的視頻也非常的清晰,視頻流暢度也很好,無(wú)線(xiàn)傳輸速率能達到25幀/s,如圖6所示。


4 結論
文中設計的3G車(chē)載視頻傳輸模塊是車(chē)載監控系統的重要部分,通過(guò)3G網(wǎng)絡(luò )傳輸的視頻畫(huà)面清晰,有利于遠程監控中心對車(chē)輛進(jìn)行實(shí)時(shí)的監控和調度,符合目前車(chē)載傳輸的要求。
評論