基于adsp-bf537的无线视频传输方案
无线通信技术和视频压缩技术的迅速发展,使得无线视频传输成为人们研究的热点。无线视频传输具有数据量大,实时性要求高,无线信道资源有限的特点。新一代的视频压缩标准h.264结合专用视频dsf芯片可以满足信源编码的要求。而处理数据量大,速度快,运算结构相对简单的fpga适用于信道编码。基于以上考虑,设计了一个无线视频传输系统,并以发射端adsp-bf537作为控制器,配置fpga和进行数据通信。
1 总体结构实现方案
系统硬件的实现方案如下:
发送端由摄像机、专用视频编码芯片、控制模块、基带模块、射频模块(rf)等部分组成。接收端由射频接收模块、控制模块、基站模块、专用视频解码芯片等部分组成。系统结构如图1所示。
视频编码部分使用基于dm642的h.264视频编码器。该芯片通过网口传输数据,输出的视频流是h.264格式,输出图像的分辨率范围为176×144~702×576,而且可以根据具体需要修改码流和帧率。
控制模块使用adi公司的adsp-bf537作为主要芯片。其主要作用是完成fpga的配置、接口控制、通信链路的建立(视频流数据的传输)。
基带模块以xilinx公司spartan3 400万门级芯片的fpga作为主要芯片。fpga完成整个基带信号处理,包括信道编码、ofdm调制、滤波等。
射频模块由发射单元、接收单元、频率合成单元、外置15 w功放等四部分组成,采用差分i,q信号调制、解调,双向传输。发射单元将i,q差分输入经调制芯片调制成340 mhz的射频信号,经功率控制、功放、隔离器送往环行器、天线;通过收发电平控制进行发送和接收的切换;接收单元对接收信号进行滤波、低噪声放大器后送i,q解调芯片解调出差分的i,q信号,并进行rssi检测和agc控制。工作模式采用半双工模式;频率合成单元为发射单元提供340 mhz本振信号,为接收单元提供680 mhz本振信号。
2 控制模块中dsp与fpga数据通信
由于fpga基于sram工艺,上电后数据会丢失。一般fpga除了采用边界扫描方式jtag下载外,更多采用与fpga相对应prom芯片静态配置,这种配置方式由于prom容量小,价格昂贵,易于烧坏等缺点,在产品化之前一般不予采用,更可取的方法是采用控制器动态配置fpga,比如单片机、dsp。同时,视频服务器通过网口发送视频数据,需要一个控制部分前向网口接收视频服务器的数据,后向配置fpga,发送视频数据。基于以上考虑,整个系统中控制部分均由adi公司的blackfin系列dsp bf537完成,dspbf537通过接口与视频服务器和fpga通信。
2.1 硬件平台
adsp是adi(analog device inc.)公司推出的一系列高性能低功耗dsp芯片,而基于blackfin处理器的adsp-bf537具有接口丰富,性能优良,价格低廉等特点,并具有强大的多媒体数据处理能力。blackfin处理器集成了一个由adi公司和intel公司联合开发的基于msa(micro signal architecture)的16/32位嵌入式处理器,支持32位risc指令集,采用10级流水线,集成了两个16位乘法加速器,内核主频最高可以达到600 mhz。adsf-bf537总线有一个以dma控制器为中心的高速自主数据通道。dma总线可以在存储器之间、存储器和外部接口之间快速地传递数据,并且可以和内核并行操作。adsp的集成开发环境visual dsp++中嵌入了实时操作系统内核vdk,适合多任务多线程的嵌入式操作。adi还提供了一个用于blackfin系列嵌入式处理器的轻量级tcp/ip(lwip)协议栈端口,可以快速将一个独立的嵌入式应用联网。
2.2 硬件系统架构
dsp与视频服务器采用轻量级tcp/ip(lwip)交互数据,这里不过多介绍。主要介绍dsp与fpga连接。由于fpga基于sram工艺,掉电后数据会丢失。采用的方法是将作用于fpga的通信基带算法文件存储在dsp的flash中。一般调试时,dsp及fpga都需要从pc机通过jtag口进行程序的下载。但当系统程序已经调试完毕,当需要到户外进行测试或作为产品使用时,针对系统调试的方便性,采用dsp自启动及配置fpga部分。
adi公司的adsp-bf537上电后启动方式一共有7种。本设计中采用的dsp上电从16位flash启动,启动程序采用analog公司提供的烧写启动flash的程序。第一次上电时,利用jtag,结合adsp自带工具“flash programmer”将写好的dsp程序烧入flash中。并且将fpga的配置文件(.bit格式)读到缓存,通过dsp烧写到flash的bankl和bank2中,把bank0用来做dsp自启动。断电复位后,启动过程如下:
(1)bf537从flash引导启动,完成dsp板级初始化。
(2)fpga的配置文件动态加载到fpga中。
(3)用dsp的gpio端口对fpga的时钟和数据配置专用引脚进行模拟时序,即完成对fpga的动态配置。
在启动过程完成后,dsp与视频服务器进行sock-et连接,接收压缩的视频码流,并送到fpga进行基带部分的处理。dsp与fpga的接口部分如图2所示。
图2中dsp通过自身的外部总线与fpga相连,fpga内部实现了两个2 kb的异步存储器sram0,sram1,对存储器的访问满足dsp外部总线的时序要求。图2中接口连线含义如表1所示。
对dsp而言,dsp通过外部总线连接到sram0和sram1,这就相当于外扩了两个外部ram,dsp可以自由地访问它们。图2中的sram0,sram1分别用于dsp发送数据和接收数据。sram0和sram1本身是双口ram,可以供dsp和fpga访问,就是通过这种共享存储器的方式完成数据交互。
2.3 软件系统结构
相关程序是用含有vdk(visual dsp kernel)的dsp软件开发工具visual dsp开发的。vdk是一种带有api函数库的实时操作系统内核,它具有任务调度和任务管理功能,一共支持32个任务。vdk是整个软件的基础,所有其他的程序都运行在该kernel上。程序流程图如图3所示。
上电或复位后,dsp自启动后vdk启动线程lwip_sysboot_threadtype开始运行。在线程lwip_sysboot_threadtype中进行板级初始化和lwip协议栈和网口初始化,其中板级初始化包括fpga初始化,ebiu初始化,mdma初始化,flag初始化。接下来创建下面几个线程:
(1)数据传输:视频数据传输。用于从编码器获取编码后的视频数据流,并存储到缓冲区中。
(2)fpga中断:视频数据发送中断;mdma中断。
dsp首先通过socket与视频服务器连接,从视频服务器获取视频数据,并将数据缓存后按照特定的格式打包,等待fpga触发视频数据发送中断。中断触发后,dsp启动mdma将一帧大小的数据发送给fpga发送缓冲区。当mdma操作完成后,触发mdma中断,将帧头写入fpga发送缓冲区的头两个字节。fpga将接收的数据进行基带算法处理后再将数据发送给射频部分,之后fpga再触发视频数据发送中断,告诉dsp可以下一帧的发送,于是又启动mdma,如此循环。
3 实验结果和分析
对系统在不同的信噪比的环境中传输的误码率进行了测试。测试方法如下:将发射机的输出端口通过数据排线与逻辑分析仪相连,逻辑分析仪将采集到的一帧发射信号送到pc中用matlab软件对其加上噪声,得到信噪比固定的信号。将这个信号导人信号源中进行不间断循环发送给接收端的输入端口。接收机接收信号进行解调并将解调出的数据传给pc以统计误码率。测试结果如表2所示。
4 结 语
设计了一种无线视频传输系统的方案,并对其中发射部分的数据通信过程做了详细阐述。从硬件架构和软件设计两方面说明了数据在视频服务器、dsp和fp-ga之间的传递过程。其中adsp-bf537作控制器,成功完成了动态配置fpga和通过网口传送视频数据的功能。该方案很好地满足了大数据量,实时性的数据处理和结构灵活,模块化设计相结合的要求。同时dsp+fpga的数字硬件系统开发周期较短,系统容易维护和扩展,适合实时信号处理,使方案有更广泛的应用。
工业机器人市场增长带动经济的增速
如何把c语言源程序变成应用程序
一文了解FPC软板散热规则及除胶渣制程的三种方法
谷歌重大突破:量子计算机或真可行
华为云CDN加速服务,如何助企业扬帆远航
基于ADSP-BF537的无线视频传输方案
航天宏图被认定为国家企业技术中心
为了推广人工智能,我们需了解迈向人工智能的三大步骤
美高森美推出用于航天、商业航空和国防应用的线性调节器
高速信号完整性要点之反射知识
bios自检响铃含义
gtx1060 6g能坚持几年_笔记本gtx1060 6g评测
坚果Pro PK 魅蓝E2,谁能制霸中端机市场
具PowerPath和1.6μA静态电流的LTC3106
步步惊心 国外牛人教你做固态特斯拉线圈(详细)
专访田中精机—致力打造高端精密智能制造设备企业
喜报!爱博精电签单乌鲁木齐机场50万平航站楼扩建项目
所谓的“中国特色自动驾驶”到底靠不靠谱
为降低用户使用门槛 智能音箱三强争霸大打“价格战”
蔚来宣布拟增发6000万股 将主要用于新产品和自动驾驶技术研发