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