提出一种基于DSP的无线图像传输系统,该系统实现图像的采集、压缩、无线传输及显示。概述系统设计过程,并重点讨论DMA在图像采集和JPEG压缩过程中的应用。最终通过对系统图像传输质量和传输速度的测试证明:该系统有效和实用。该系统设计适用于低端低价位无线图像传输产品或消费电子类产品,特别适合于家庭和临时场所使用的低端无线监控系统。
1 引言
随着航空航天技术的发展,图像无线传输技术日趋成熟。而嵌入式图像无线传输技术以其安装方便、灵活、适合广泛普及等优点在广大领域备受关注。本文介绍一种基于DSP的无线图像传输系统的设计方案与实现方法。
2 系统总体设计方案
图1为该系统设计框图。该系统分为图像采集、图像数据处理及无线通信3个模块。图像采集完成图像数据的采集;图像处理实现图像数据的压缩及相关处理:无线通信传输压缩数据。该系统选用TMS320VC5509A型DSP作为主处理器。
3 系统硬件设计
3.1图像采集模块
图像信号采集电路的基本工作方法分为独立和处理器两种采集法。前者采用专用图像采集器件,自动完成图像采集、存储器地址生成以及图像数据的存储和刷新,除设定采集模式外,处理器不参与采集过程,该方法采集过程不占用CPU时间,实时性好,适合采集活动图像,但电路较复杂;后者采用普通视频A/D转换器和帧存储器实现图像采集。CPU控制完成采集过程,需占用CPU时间,实时性差,不适合实时采集视频图像,但电路简单。因此,本系统采用第1种独立采集方案。由专用图像传感器OV9650,CPLD和相应的外接电路等组成。OV9650是Omnision公司生产的CMOS图像传感器,其内部集成有MD转换器,可提供SXGA(1 280x1 024)分辨率的图像摄入和处理功能;采集图像以全图方式、局部方式或抽样子图方式输出,并且可提供多种输出格式。该系统通过SCCB总线配置OV9650,从而形成8位ITU-R BT.656格式的数字码流。CPLD选用XC95144XL10TQ144C,其最高主频可达178 MHz,144个宏单元和3 200个可用门电路,其TQFP封装有117个可用I/O引脚,满足各种采集设计需要;实现异步存储器Flash扩展;完成对BT.656格式的数字码流解码,包括提取码流中的同步信号、行起始和结束信号、取出亮度(Y)信息、色度信息,进行地址译码;实现SCCB总线接口;在DSF需要读取状态和图像数据时,产生必要的逻辑控制和时序,通过DMA将数据从缓存区读取SDRAM等。
数据采集时,图像采集模块产生高速数字码流,而DSP对外围设备读取速度较慢。为了解决图像采集模块与图像处理模块的速度匹配问题,在这两模块之间加入数据缓冲区,可采用FIFO或SRAM,本系统采用ISSI公司的64 Kx16 bit存储空间的高速SRAM存储器IS61LV6416作为缓存存储解码BT.656码流得到的图像亮度数据。
3.2 图像数据处理模块
TMS320VC5509A内部仅有256 KB的RAM和64 KB的ROM,无法满足处理大量图像数据的需求,必须通过EMIF扩展外部存储器存放原始图像数据和应用程序。该系统外接Hynix公司HY57V641620EP SDRAM,其8 MB的存储空间用于存储图像数据;外接Spansion公司的S29AL008D Flash,其1 MB的存储空间用于存储应用程序和Boofloader。EMIF可与SDRAM无缝连接,接口连接如图2所示。由于TMS320VC5509A最大只能外扩16 KB的异步存储器,因此访问1 MB Flash需按分页方式访问,连接示意图如图3所示。
3.3 无线收发模块
nRF24L01是一款2.4 GHz单片无线收发器,全球开放ISM频段免许可证使用,126频道,满足多点通信和跳频通信需要,内置硬件CRC检错和点对多点通信地址控制,最高工作速率2 Mb/s,高效GFSK调制,抗干扰能力强,只需少量外围元件便可组成射频收发电路,适用于工业控制场合。
4 系统软件设计
由于图像数据量大,若在接收端实时显示采集端图像,必须提高DSP的工作效率。图像采集时,通过DMA完成图像数据从采集模块到图像处理模块的传输;图像压缩利用DMA完成JPEG压缩过程中的分块操作,避免CPU对外围存储器的读写操作。无线通信时,将McBSP(多通道缓冲串口)配置成SPI接口与无线通信模块nRF24L01进行连接,需要传输的压缩数据由DMA送到McBSP缓冲区,最终完成图像数据传输。DMA具有传输快速、高效的特性,并且数据传输丁作无需CPU参与,从而极大减小CPU的负担,提高系统效率。
4.1 采用DMA读取采集模块的数据
图像采集模块由CPLD控制,CPLD对OV9650解码器产生的数据进行相应的译码并顺序存储到图像采集模块的缓冲区。采集图像大小为320x200的8位灰度图像,为扩展需要,缓冲区采用具有64 K×16 bit存储空间的高速SRAM存储器IS61LV6416-10T,存储一幅完整图像。一幅图像采集完后,DMA与CPLD将缓冲区中的图像数据转存到DSP的外部存储器。DMA的主要寄存器配置参考图像压缩的DMA配置。
4.2 DMA在JPEG算法中的应用
该系统采用JPEG压缩算法,该算法是将图像数据分成8x8的矩阵块、离散余弦变换、量化、Z(Zigzag)形扫描和Huffman编码,图像数据JPEG压缩时。需要分块处理DSP外围存储器中的图像数据。CPU对外围存储器的读写操作要慢于内部DRAM存储区。为提高图像压缩速度,在算法移植时,内部DARAM建立两个8x8的矩阵单元,DMA将外部存储器的图像数据以8x8的矩阵块为单元传输到到内部DARAM中的一个数组中,同时实现JPEG算法的分块操作。利用DMA与CPU并行工作的特性,在CPU操作一个块时,另一分块传输数据,两个数组交替进行,构成乒乓结构。图像压缩过程中需多次配置DMA,才能实现整个图像数据从外存到内存的传输和数据分块。数据块依次经离散余弦变换、量化、Z变换及哈夫曼编码,形成JPEG码流。图4为图像压缩的程序流程。
4.3 McBSP端口与无线模块的连接
无线通信模块nRF24L01通过SPI接口实现与DSP的数据通信,只需占用4根数据线且传播速度快。DSP的MeBSP的时钟停止模式与SPI协议兼容。当McBSF设置成时钟停止模式时,发送器和应答器内部同步,McBSP就作为一个SPI主/从设备使用。系统中DSP的McBSP作为SPI的主设备,主要的McBSP控制寄存器位设置如下:
RPHASE=XPHASE=0,∥单相帧
RFRLEN1=XFRLEN=0,/每帧一个数据单元
RWDLEN1=XWDLEN1=000b,//数据单元字长8位
CLKRP=CLKXP=O,//时钟下降沿接收数据。在上升沿处发送数据
FSRP=FSXP=0,//帧同步信号高有效
RDATDLY=XDATDLY=01b,//1位数据延迟
通过此种方式实现与nRF24L01串行通信。DMA的寄存器配置和图像数据传输的DMA配置可以参考图像压缩DMA的配置。
4.4 nRF24L01无线通信模块
数据发送端首先配置nRF24L01寄存器,包括设置工作模式、使能自动应答等功能。发送数据时,将发送的数据块按时序由SPI接口写入nRF24L01缓存区,然后设置发送控制引脚为高电平并至少保持10 μs,延时130μs后发射数据,发射的数据自动打包并按寄存器的设置加入1个字节或2个CRC校验码;若开启自动应答,nRF24L01在发射数据后立即进入接收模式,接收应答信号。如果收到应答信号,则认为发射成功;若在设定时间内没有接收到应答信号,则自动重新发射数据,直到重发次数超过设定阈值,以上操作都影响状态寄存器中的相应标志位。
图5(a)为数据无线发射的程序流程。在数据接收端接收数据,同样先配置相关寄存器,设置为接收模式,延时130μs后进入接收状态等待接收数据。当接收方检测到有效地址和CRC校验码时,自动去除数据包头和CRC校验码,存储数据至接收堆栈中,更改状态寄存器相应位,通知CPU读取数据。若开启自动应答,接收端进入发射状态发射应答信号。图5(b)为数据无线收发的程序流程。
4.5 与上位机的通信
接收端采用DSP与无线模块连接,通过DSP的USB接口与PC机连接。图像数据传输的开始与结束由JPEG协议的文件结束关键字OXFFD9标识,一幅图像传输的接收标志也是下一幅图像的开始标志。由于采集图像不同,生成压缩码流长度也不同,所以在发送端图像传输的最后一组数据空位用0X00填充;接收端读取图像结束标识后省去后续数据,并通过USB接口将数据传输至PC机。
5 系统测试结果及分析
该系统设计已成功测试,测试结果达到预期要求,并对其进一步改进优化。图6为系统采集的图像和压缩16倍后室内有阻隔传输30 m的结果。
6 结束语
本系统设计实现多点监控,便于安装,可应用于厂房、化学实验室等短距离监控及对突发事件现场的临时监控。采用该系统设计思路为无线监控领域设计一套低成本的无线视频监控系统,使得视频监控系统具有更广阔的应用领域,若采用更高压缩比的图像压缩算法,系统性能将会得到进一步改善。