尹雅君,李毅航,張寬,唐立軍
(長(zhǎng)沙理工大學(xué)物理與電子科學(xué)學(xué)院,長(zhǎng)沙 410114)
無線視頻傳輸在工業(yè)和生活中有著極大的應(yīng)用[1],隨著視頻分辨率的提高,在進(jìn)行無線視頻傳輸時(shí),對(duì)處理視頻數(shù)據(jù)流的嵌入式系統(tǒng)有了更高的要求。Xilinx公司推出的可擴(kuò)展性處理平臺(tái)ZYNQ-7000系列產(chǎn)品,是雙核ARM Cortex-A9處理器系統(tǒng)(PS)和FPGA可編程邏輯單元(PL)集成的SOC[2],在擴(kuò)展嵌入式系統(tǒng)結(jié)構(gòu)的同時(shí),也提升了系統(tǒng)的性能和集成度,該平臺(tái)實(shí)現(xiàn)了視頻數(shù)據(jù)流傳輸?shù)哪K化、低功耗以及傳輸?shù)母咚俜€(wěn)定。本文提出基于ZYNQ-7000平臺(tái)和集成調(diào)制芯片的無線視頻傳輸設(shè)計(jì),可滿足視頻數(shù)據(jù)流的無線發(fā)送。
基于ZYNQ的無線視頻流發(fā)送設(shè)計(jì)結(jié)構(gòu)如上圖1所示,發(fā)射端由ZYNQ視頻處理平臺(tái)、集成調(diào)制芯片IT9517、SD卡、DDR3存儲(chǔ)器、VDMA組成。發(fā)射端先將TS格式的數(shù)據(jù)流通過讀卡器存放SD卡中,由DDR3存儲(chǔ)器對(duì)TS數(shù)據(jù)流進(jìn)行讀取緩存,VDMA通過MM2S將DDR3中的數(shù)據(jù)讀取出來并經(jīng)過格式處理傳給集成調(diào)制芯片IT9517進(jìn)行無線發(fā)送,ARM與IT9517通過IIC進(jìn)行通信,并通過IIC設(shè)置調(diào)制芯片的工作參數(shù)。
圖1 基于ZYNQ的無線視頻流發(fā)送設(shè)計(jì)結(jié)構(gòu)圖
ZYNQ平臺(tái)包括了PS端和PL端,PS端集成了兩個(gè)ARM Cortex-A9處理器、內(nèi)部存儲(chǔ)器、外部存儲(chǔ)器接口和外設(shè)。這些外設(shè)主要包括USB總線接口、以太網(wǎng)接口、SD/SDIO接口、I2C總線接口、CAN總線接口、UART接口、GPIO等,PL端包括LUT(查找表)、DSP單元、可編程I/O模塊等傳統(tǒng)的FPGA資源。與一般的SOC相比,ZYNQ平臺(tái)內(nèi)部PS端與PL端的通信更完善,主要有EMIO、共享內(nèi)存、AXI互聯(lián)總線等。
AXI互聯(lián)總線是PS和PL的主要數(shù)據(jù)交換通道,包括四個(gè) AXI_GP、一個(gè) AXI_ACP、四個(gè) AXI_HP。AXI_GP包含了兩個(gè)32位主接口和兩個(gè)32位從接口,用于PS和PL的直接通信;AXI_ACP提供了64位從接口,連接到PS的偵測(cè)控制單元SCU(Snoop Control Unit),用于 CPU和 PL之間的高速緩存一致性;AXI_HP用于在PS存儲(chǔ)器和PL主設(shè)備之間提供一個(gè)高吞吐量數(shù)據(jù)通道,每個(gè)接口最大位數(shù)可達(dá)64位,對(duì)于讀和寫操作,提供1KB容量的數(shù)據(jù)FIFO,可消除長(zhǎng)延遲傳輸,適合高數(shù)據(jù)帶寬的視頻流數(shù)據(jù)傳輸[3]。
IT9517是一款專用于無線圖傳設(shè)備和數(shù)字高清電視的OFDM[4]調(diào)制發(fā)射芯片,芯片內(nèi)部集成了完整的TS數(shù)據(jù)流處理轉(zhuǎn)換和射頻相關(guān)電路,輸入的TS流數(shù)據(jù)首先通過內(nèi)部的PID濾波器處理電路,再通過PSB多路復(fù)用控制流處理,然后進(jìn)行ISDB-T或DVB-T轉(zhuǎn)換,進(jìn)一步通過內(nèi)部的數(shù)模轉(zhuǎn)換、低通濾波、本地振蕩器,混頻器后輸出的射頻信號(hào)頻率范圍是50MHz-950MHz[5],將基帶信號(hào)變頻到 VHF(174MHz-470MHz)和 UHF(470MHz-862MHz)這兩個(gè)頻段,輸出信號(hào)帶寬可從1MHz-8MHz進(jìn)行配置,射頻信號(hào)通過無線信道傳輸。以下是IT9517芯片的控制接口示意圖。
圖2 IT9517芯片的控制接口示意圖
ZYNQ通過IIC接口控制調(diào)制器的工作狀態(tài),TS流數(shù)據(jù)也是通過ZYNQ傳輸至調(diào)制器。IT9517共有以下四種工作模式,見表1。
在TS/USB控制模式下,TS是輸入數(shù)據(jù)流,USB是兩線的控制信號(hào);在TS/IIC控制模式下,TS是輸入數(shù)據(jù)流,IIC是兩線的控制信號(hào);在TS/USB控制模式下,USB為控制接口,輸入信號(hào)仍為TS數(shù)據(jù)流;在IIS模式下,IIS值做音頻數(shù)據(jù)輸入,控制接口可選擇IIS或者USB。
表1 IT9517工作模式表
本設(shè)計(jì)主要是用于視頻圖像傳輸,而TS數(shù)據(jù)流作為廣泛使用的視頻數(shù)據(jù)傳輸流,所以選用TS/IIC模式。
無線視頻傳輸?shù)叫诺肋^程受到多種噪聲的影響,在MPEG-2標(biāo)準(zhǔn)中,有兩種碼流輸送到信道,一種是適用于沒有誤差產(chǎn)生的節(jié)目碼流,如DVD等存儲(chǔ)介質(zhì);另一種是適用于信道有噪聲產(chǎn)生的傳輸流(Transport Stream,TS)[6],所以本系統(tǒng)中用到TS流進(jìn)行視頻無線傳輸。
TS數(shù)據(jù)文件分為三層:TS層、PES層(Packet Elemental Stream)、ES層(Elementary Stream)。ES層就是音視頻數(shù)據(jù),PES層是在音視頻數(shù)據(jù)上加了時(shí)間戳等對(duì)數(shù)據(jù)幀的說明信息,TS層就是在PES層加入數(shù)據(jù)流的識(shí)別和傳輸必須的信息,圖3是TS文件的結(jié)構(gòu)圖。
圖3 TS流文件結(jié)構(gòu)圖
TS數(shù)據(jù)包大小固定為188字節(jié),TS層分為ts header、adaptation field、payload 三個(gè)部分。ts header固定4個(gè)字節(jié),adaptation field可能存在也可能不存在,主要作用是給不足188字節(jié)的數(shù)據(jù)做填充;payload是PES數(shù)據(jù)。
視頻編碼后的裸數(shù)據(jù)ES通過分割打包加入PES頭形成為PES流,PES包是可變長(zhǎng)度的,PES頭中最重要的是顯示時(shí)間標(biāo)記(Presentation Time Stamp,PTS)和解碼時(shí)間標(biāo)記(Decode Time Stamp,DTS),有了 PTS和DTS,在加上節(jié)目時(shí)鐘參考PCR,解碼器就能從TS流中重建視頻流。
傳輸包流包含頭和有效載荷,一個(gè)單元的頭和有效載荷固定長(zhǎng)度為188Btye,TS流固定包長(zhǎng)度的好處是便于找到幀的起始位置,這樣有利于從包丟失中恢復(fù),因此,TS流適用于信道有噪聲產(chǎn)生的場(chǎng)合[7]。
以下是基于ZYNQ的無線視頻流發(fā)送的軟件設(shè)計(jì)流程,如圖4。
(1)系統(tǒng)模塊進(jìn)行初始;
(2)SD卡中的TS數(shù)據(jù)流寫入DDR3;
(3)設(shè)置VDMA的循環(huán)讀寫模式和緩存區(qū)大小;
(4)VDMA讀取DDR3中的數(shù)據(jù),并將TS數(shù)據(jù)模式改為八位并行輸出;
(5)等待IT9517的參數(shù)初始化設(shè)置成功后;
(6)將TS數(shù)據(jù)流傳入IT9517進(jìn)行調(diào)制發(fā)送。
圖4 軟件設(shè)計(jì)流程圖
VDMA IP核進(jìn)行配置時(shí)要使能讀寫操作、內(nèi)存映射數(shù)據(jù)位寬、TS流數(shù)據(jù)位寬等,VDMA的初始化主要通過對(duì)其寄存器進(jìn)行配置的,其中初始化中主要用到的寄存器為寫入通道s2mm狀態(tài)寄存器0x34,控制器存器0x30、幀緩存起始地址寄存器0xA0-0XE8、幀演示跨度期存器0xA8和讀通道m(xù)m2s的狀態(tài)寄存器0x04、控制寄存器0x00、幀緩存起始地址寄存器0x5C-0x98、幀延時(shí)跨度寄存器0x58等。
在對(duì)集成調(diào)制芯片IT9517進(jìn)行初始化時(shí),設(shè)置芯片與SOC主控制器的通信模式為TS/IIC模式,IIC為控制器,TS流為輸入信號(hào)。IIC的地通信址由芯片外部引腳的高低電平?jīng)Q定,在進(jìn)行硬件設(shè)計(jì)的時(shí)候就將芯片的IIC通信地址設(shè)置為0x38(讀)/0x39(寫)。首先通過寫命令0x0022讀取芯片固件版本,有Linux和OFDM兩個(gè)寄存器版本,并在訪問參數(shù)設(shè)置寄存器時(shí),readRegister()和 writeRegister()的處理參數(shù)應(yīng)設(shè)置為Processor_OFDM。主要配置的寄存器為輸出信號(hào)帶寬(Bandwidth)控制寄存器 0xF713、調(diào)制星座(Constellation)模式控制寄存器 0xF721、編碼速率(Code rate)控制寄存器 0xF723、保護(hù)間隔(GuardInterval)寄存器0xF725等。
初始化的主要參數(shù)設(shè)置:信號(hào)輸出帶寬為6MHz、調(diào)制模式設(shè)置為QPSK、編碼速率設(shè)置為5/6、保護(hù)間隔設(shè)置為1/8和信號(hào)輸出格式為DVB-T。
EW300是一款專用于接收數(shù)字地面信號(hào)的調(diào)諧器模塊,用于對(duì)本設(shè)計(jì)進(jìn)行發(fā)送驗(yàn)證。
EW300輸出的TS流數(shù)據(jù)主要由TS_Sync、TS_Data與TS_Valid三個(gè)信號(hào)信號(hào)組成,TS_Sync單周期內(nèi)傳輸一個(gè)TS數(shù)據(jù)包,TS_Valid單周期內(nèi)傳輸一個(gè)字節(jié)TS數(shù)據(jù)。為驗(yàn)證數(shù)據(jù)傳輸?shù)耐暾裕ㄟ^邏輯分析儀采集EW300輸出的TS流數(shù)據(jù),圖5為邏輯分析儀采集的TS數(shù)據(jù)圖,從數(shù)據(jù)的波形可知符合理論上EW300的TS流數(shù)據(jù)傳輸流程,能夠驗(yàn)證方案的可行性。
圖5 邏輯分析儀采集信號(hào)圖
基于ZYNQ-7000的無線視頻傳輸系統(tǒng)的發(fā)送端由ZYNQ視頻處理平臺(tái)、集成調(diào)制芯片IT9517、SD卡、DDR3存儲(chǔ)器、VDMA組成,經(jīng)實(shí)驗(yàn)驗(yàn)證能進(jìn)行TS流的視頻傳輸。無線視頻流的發(fā)送設(shè)計(jì)通過實(shí)驗(yàn)結(jié)果得到驗(yàn)證,對(duì)于其他開發(fā)者來說,該系統(tǒng)具有極強(qiáng)的移植性,可更靈活地設(shè)計(jì)視頻數(shù)據(jù)的前、后端處理。