基于Hi3510和無線發(fā)送模塊的視頻傳輸設(shè)計(jì)
近幾年,嵌入式無線聯(lián)網(wǎng)領(lǐng)域發(fā)送數(shù)據(jù)大都基于802.x或WI-FI技術(shù),并用無線網(wǎng)卡或無線路由器實(shí)現(xiàn)。目前也出現(xiàn)了基于手機(jī)無線發(fā)送數(shù)據(jù)的嵌入式相關(guān)設(shè)計(jì),但大都是基于2.5G技術(shù)的短信方式的監(jiān)控設(shè)計(jì)。在此基礎(chǔ)上設(shè)計(jì)了一個(gè)嵌入式Linux系統(tǒng)下基于3G無線發(fā)送模塊的視頻圖像傳輸系統(tǒng)。采用SOC高性能視頻編解碼器Hi3510,具備強(qiáng)大的視頻處理功能,實(shí)現(xiàn)D1畫質(zhì)的實(shí)時(shí)編碼及傳輸。因此,該系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)了在3G移動(dòng)網(wǎng)絡(luò)上傳輸視頻。
1 系統(tǒng)總體設(shè)計(jì)
選用Hi3510作為對(duì)視頻數(shù)據(jù)的編碼處理,選用DTM6211無線模塊對(duì)視頻數(shù)據(jù)進(jìn)行發(fā)送處理。圖l為系統(tǒng)工作原理框圖,其整體工作原理是:攝像頭采集的數(shù)據(jù)通過PAL制的CVBS信號(hào)輸入工作在主模式TW2834芯片中,經(jīng)A/D轉(zhuǎn)換后,由BT.656接口接收轉(zhuǎn)換為CIF格式的信號(hào),并
通過AHB總線把接收到的圖像數(shù)據(jù)存入到外存SDROM;Hi3510讀取外存中視頻數(shù)據(jù),進(jìn)行H.264編碼,包括幀內(nèi)預(yù)測、幀間預(yù)測、DCT變換、量化、熵編碼等,得到編碼后裸碼流存儲(chǔ)到外設(shè)中;將外設(shè)中視頻數(shù)據(jù)通過USB端口經(jīng)測試板發(fā)送到無線模塊中,其中關(guān)于無線模塊的UDP數(shù)據(jù)傳輸設(shè)置控制工作是通過Hi3510的RS232接口經(jīng)測試板發(fā)送AT指令控制,而后無線模塊將數(shù)據(jù)封裝成符合UDP格式的IP數(shù)據(jù)包,最后利用PS業(yè)務(wù)發(fā)送到網(wǎng)絡(luò)上。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 視頻處理模塊
視頻處理模塊遠(yuǎn)端攝像頭采集視頻信號(hào),模擬視頻信號(hào)通過CVBS信號(hào)格式輸入TW2834,TW2834是一個(gè)視頻控制器,內(nèi)嵌PAL/NTSC視頻解碼器,彩色控制器和PAL/NTSC視頻編碼器,主要完成模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)變。解碼后,轉(zhuǎn)換成的數(shù)字信號(hào)通過BT656接口輸入到Hi3510處理器進(jìn)行H.264編碼。
視頻處理模塊采用Hi3510,該器件是一款基于H.264BP算法的視頻壓縮芯片,它采用ARM+DSP+硬件加速引擎的多核高集成度的SoC構(gòu)架,具備強(qiáng)大的視頻處理功能,可實(shí)現(xiàn)DVD畫質(zhì)的實(shí)時(shí)編碼,能自適應(yīng)各種網(wǎng)絡(luò)環(huán)境,確保畫面的清晰度和實(shí)時(shí)性,低碼率的H.264編碼技術(shù)極大減少了網(wǎng)絡(luò)存儲(chǔ)空間,并通過集成DES/3DES加解密硬件引擎確保網(wǎng)絡(luò)安全。圖2為Hi3510邏輯框圖。
Hi3510內(nèi)部包含一系列提高編解碼速度的視頻編解碼協(xié)處理器,視頻編解碼部分完成圖像的運(yùn)動(dòng)估計(jì)/補(bǔ)償、DCT/IDCT變換、量化/反量化、zigzag掃描和環(huán)路濾波。最后將編碼的視頻數(shù)據(jù)存儲(chǔ)在外存SDROM中。
2.2 視頻發(fā)送模塊
圖3為無線發(fā)送模塊內(nèi)部原理框圖。DTM6211是60針0.5mm間距的板對(duì)板連接器和一個(gè)天線連接器,與天線連接器相匹配的線纜可實(shí)現(xiàn)與天線MHF Plug Cable Assembly的連接。串口通信采用RS232,可以與Hi3510串口相連接,模塊采用5線制接法,默認(rèn)開啟硬件流控。USB接口可以作為通訊口和調(diào)試口,作為USB Device設(shè)備,遵循USB2.O協(xié)議規(guī)范,最高速率支持FULL SPEED(12 Mb/s)。發(fā)送部分采用SMA(FEMALE)接口饋入天線,外接天線采用棒狀天線。
[!--empirenews.page--]
DTM6211接口有2個(gè)UART接口,使用UART1作為Hi3510的AT指令接收端口,傳輸速度設(shè)定為115 200 b/s。其UART1信號(hào)定義如表1所示。模塊的USB接口作為通信口,用于視頻數(shù)據(jù)的傳輸,其接口信號(hào)定義如表2所示。
2.3 模塊硬件連接
Hi3510和DTM6211之間通過測試板連接,測試板主要作用是連接Hi3510和DTM6211的USB及UART端口,起到一個(gè)物理接口轉(zhuǎn)換作用,同時(shí)也起到存放USIM卡的作用。USB和UART之間的連接,只需把Hi3510板的USB口和RS232接口連接到測試板對(duì)應(yīng)接口,DTM6211插針接口直接插到測試板上。其中測試板中主要部分USIM卡的硬件電路如圖4所示。
DTM62ll模塊的射頻接口包括一個(gè)天線連接器,通過線纜實(shí)現(xiàn)與外部天線的連接,天線連接器采用I-PEX公司的20279-001E-01,連接線纜采用蘇州萬旭電子HM5A-12289-A1DE的50 mm的長雙端子線纜,天線連接器端Plug CableAssembly使用MHFⅡPlug Cable Assembly。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 操作系統(tǒng)與驅(qū)動(dòng)設(shè)計(jì)
選用Hi3510自帶嵌入式Linux-2.6.14內(nèi)核操作系統(tǒng),開發(fā)前需要搭建開發(fā)環(huán)境,可以安裝一款Fedoral 9.0服務(wù)器,同時(shí)建立交叉編譯器、安裝SDK包。SDK是基于Hi3510視頻評(píng)估板的軟件開發(fā)工具,包含了在Linux相關(guān)應(yīng)用開發(fā)時(shí)使用的各種工具,是用戶開發(fā)中最基本的平臺(tái)軟件。Bootloader采用uboot-1.1.4初始化硬件設(shè)備并通過網(wǎng)口下載Linux內(nèi)核。內(nèi)核通過make menuconfig配置可實(shí)現(xiàn)系統(tǒng)的量身定做,去除與本系統(tǒng)無關(guān)部分,縮減內(nèi)核,最后將配置后的內(nèi)核使用mkimage工具做成映像文件,通過網(wǎng)口下載到Hi3510中。
無線發(fā)送模塊通過重新配置內(nèi)核Usb Serial Driver選項(xiàng)可實(shí)現(xiàn)其在內(nèi)核的驅(qū)動(dòng)部分,但需把Usb Driver的PID和VID設(shè)置成本模塊的ID,重新編譯便可支持無線發(fā)送模塊。
ID更改步驟如下:
首先進(jìn)入linux-2.6.14\drivers\usb\serial,打開文件option.c,在其中定義兩個(gè)宏(DTM6211的VID:0x1AB7 PID:Ox6000):
3.2 視頻處理軟件設(shè)計(jì)
視頻處理軟件主要是對(duì)采集過來的視頻數(shù)據(jù)進(jìn)行H.264壓縮,編碼中涉及的參數(shù)需調(diào)用SDK提供的API進(jìn)行配置,其中包括圖像組長度(GOP)、編碼幀率(幀/秒)、量化參數(shù)(maxqp)、比特率(b/s)和用戶數(shù)據(jù)的插入等,然后將壓縮過的裸流,發(fā)送到USB端口。其中為了提高壓縮率將GOP設(shè)置15;為了減少網(wǎng)絡(luò)數(shù)據(jù)流量將編碼速率設(shè)置8幀/秒;量化參數(shù)的數(shù)值選擇在30~40之間,其設(shè)計(jì)總流程如圖5所示。[!--empirenews.page--]
其中關(guān)于配置攝像頭部分,open()打開/dev/misc/tw2834dev攝像頭設(shè)備文件,完成normal為PAL制式,mode為GIF格式的選擇;配置輸入公共屬性部分,首先打開視頻編碼器,并關(guān)閉視頻輸入通道,然后完成工作模式為從模式,VIU與A/D轉(zhuǎn)換器的接口類型BT656,通道分布模式4路CIF,BT656為場模式,視頻消耗內(nèi)存為1Ox1 024x1 024等設(shè)置工作。
VSTART輸入通道號(hào)之后需要?jiǎng)?chuàng)建一個(gè)線程,完成后續(xù)數(shù)據(jù)的存儲(chǔ)和轉(zhuǎn)發(fā),使用pthread_create()函數(shù),隨后執(zhí)行線程venc_start(),其核心程序如下:
3.3 無線模塊控制設(shè)計(jì)
無線模塊DTM6211內(nèi)提供TCP/IP協(xié)議棧,可利用PS業(yè)務(wù)通道發(fā)送IP包,以AT指令配置和控制TCP/IP協(xié)議棧。利用APP處理器配置TCP/ IP相關(guān)環(huán)境,注冊(cè)UDP端口,APP處理器將要發(fā)送的數(shù)據(jù)直接發(fā)給模塊,由模塊將數(shù)據(jù)封裝成符合UDP格式的IP包,然后利用PS業(yè)務(wù)通道發(fā)送給3G網(wǎng)絡(luò)。其控制流程如圖6所示。
開機(jī)初始化部分,主要完成激活SIM卡、TCP/IP協(xié)議棧和注冊(cè)網(wǎng)絡(luò)工作;激活場景移動(dòng)部分主要完成PDP和context的參數(shù)設(shè)置,包括配置使用IP協(xié)議,申請(qǐng)上行速度1.5 MB/s,建立用戶面的分組傳輸路由。在完成以上初始化工作后,需要建立監(jiān)聽端口號(hào)為13000,指定UDP模式下要發(fā)送數(shù)據(jù)的目的地址218.18.141.79和端口號(hào)3000,最后還需要指定發(fā)送的字節(jié)數(shù)。數(shù)據(jù)發(fā)送完成后,釋放UDP端口號(hào)等相關(guān)資源。
4 結(jié)論
采用Hi351O+Linux方案,其自帶的SDK開發(fā)包使得應(yīng)用程序開發(fā)的難度降低,同時(shí)Hi3510本身采用了ARM+DSP+硬件加速引擎的技術(shù),具備強(qiáng)大的視頻處理功能,具有低成本,低開發(fā)難度優(yōu)點(diǎn)。配合DTM62ll無線發(fā)送模塊,通過AT指令對(duì)數(shù)據(jù)進(jìn)行UDP打包,最終將視頻數(shù)據(jù)包發(fā)送到3G網(wǎng)絡(luò)上。測試結(jié)果表明,受網(wǎng)絡(luò)環(huán)境影響數(shù)據(jù)的上行傳輸速率為150~200 KB/s。該系統(tǒng)可用于遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控的應(yīng)用,相對(duì)于2.5G技術(shù)的短信監(jiān)控方式,使用者可以獲得更多有效的信息。