时间:2024-05-04
尹雅君,李毅航,张宽,唐立军
(长沙理工大学物理与电子科学学院,长沙 410114)
无线视频传输在工业和生活中有着极大的应用[1],随着视频分辨率的提高,在进行无线视频传输时,对处理视频数据流的嵌入式系统有了更高的要求。Xilinx公司推出的可扩展性处理平台ZYNQ-7000系列产品,是双核ARM Cortex-A9处理器系统(PS)和FPGA可编程逻辑单元(PL)集成的SOC[2],在扩展嵌入式系统结构的同时,也提升了系统的性能和集成度,该平台实现了视频数据流传输的模块化、低功耗以及传输的高速稳定。本文提出基于ZYNQ-7000平台和集成调制芯片的无线视频传输设计,可满足视频数据流的无线发送。
基于ZYNQ的无线视频流发送设计结构如上图1所示,发射端由ZYNQ视频处理平台、集成调制芯片IT9517、SD卡、DDR3存储器、VDMA组成。发射端先将TS格式的数据流通过读卡器存放SD卡中,由DDR3存储器对TS数据流进行读取缓存,VDMA通过MM2S将DDR3中的数据读取出来并经过格式处理传给集成调制芯片IT9517进行无线发送,ARM与IT9517通过IIC进行通信,并通过IIC设置调制芯片的工作参数。
图1 基于ZYNQ的无线视频流发送设计结构图
ZYNQ平台包括了PS端和PL端,PS端集成了两个ARM Cortex-A9处理器、内部存储器、外部存储器接口和外设。这些外设主要包括USB总线接口、以太网接口、SD/SDIO接口、I2C总线接口、CAN总线接口、UART接口、GPIO等,PL端包括LUT(查找表)、DSP单元、可编程I/O模块等传统的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]调制发射芯片,芯片内部集成了完整的TS数据流处理转换和射频相关电路,输入的TS流数据首先通过内部的PID滤波器处理电路,再通过PSB多路复用控制流处理,然后进行ISDB-T或DVB-T转换,进一步通过内部的数模转换、低通滤波、本地振荡器,混频器后输出的射频信号频率范围是50MHz-950MHz[5],将基带信号变频到 VHF(174MHz-470MHz)和 UHF(470MHz-862MHz)这两个频段,输出信号带宽可从1MHz-8MHz进行配置,射频信号通过无线信道传输。以下是IT9517芯片的控制接口示意图。
图2 IT9517芯片的控制接口示意图
ZYNQ通过IIC接口控制调制器的工作状态,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标准中,有两种码流输送到信道,一种是适用于没有误差产生的节目码流,如DVD等存储介质;另一种是适用于信道有噪声产生的传输流(Transport Stream,TS)[6],所以本系统中用到TS流进行视频无线传输。
TS数据文件分为三层:TS层、PES层(Packet Elemental Stream)、ES层(Elementary Stream)。ES层就是音视频数据,PES层是在音视频数据上加了时间戳等对数据帧的说明信息,TS层就是在PES层加入数据流的识别和传输必须的信息,图3是TS文件的结构图。
图3 TS流文件结构图
TS数据包大小固定为188字节,TS层分为ts header、adaptation field、payload 三个部分。ts header固定4个字节,adaptation field可能存在也可能不存在,主要作用是给不足188字节的数据做填充;payload是PES数据。
视频编码后的裸数据ES通过分割打包加入PES头形成为PES流,PES包是可变长度的,PES头中最重要的是显示时间标记(Presentation Time Stamp,PTS)和解码时间标记(Decode Time Stamp,DTS),有了 PTS和DTS,在加上节目时钟参考PCR,解码器就能从TS流中重建视频流。
传输包流包含头和有效载荷,一个单元的头和有效载荷固定长度为188Btye,TS流固定包长度的好处是便于找到帧的起始位置,这样有利于从包丢失中恢复,因此,TS流适用于信道有噪声产生的场合[7]。
以下是基于ZYNQ的无线视频流发送的软件设计流程,如图4。
(1)系统模块进行初始;
(2)SD卡中的TS数据流写入DDR3;
(3)设置VDMA的循环读写模式和缓存区大小;
(4)VDMA读取DDR3中的数据,并将TS数据模式改为八位并行输出;
(5)等待IT9517的参数初始化设置成功后;
(6)将TS数据流传入IT9517进行调制发送。
图4 软件设计流程图
VDMA IP核进行配置时要使能读写操作、内存映射数据位宽、TS流数据位宽等,VDMA的初始化主要通过对其寄存器进行配置的,其中初始化中主要用到的寄存器为写入通道s2mm状态寄存器0x34,控制器存器0x30、帧缓存起始地址寄存器0xA0-0XE8、帧演示跨度期存器0xA8和读通道mm2s的状态寄存器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是一款专用于接收数字地面信号的调谐器模块,用于对本设计进行发送验证。
EW300输出的TS流数据主要由TS_Sync、TS_Data与TS_Valid三个信号信号组成,TS_Sync单周期内传输一个TS数据包,TS_Valid单周期内传输一个字节TS数据。为验证数据传输的完整性,通过逻辑分析仪采集EW300输出的TS流数据,图5为逻辑分析仪采集的TS数据图,从数据的波形可知符合理论上EW300的TS流数据传输流程,能够验证方案的可行性。
图5 逻辑分析仪采集信号图
基于ZYNQ-7000的无线视频传输系统的发送端由ZYNQ视频处理平台、集成调制芯片IT9517、SD卡、DDR3存储器、VDMA组成,经实验验证能进行TS流的视频传输。无线视频流的发送设计通过实验结果得到验证,对于其他开发者来说,该系统具有极强的移植性,可更灵活地设计视频数据的前、后端处理。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!