系统硬件结构
系统监控终端硬件组成结构如图2所示。
CPU采用TI公司芯片TMS320DSC21。该芯片是TI公司推出的一款基于多处理器架构之上的DSP数字图像处理器。其采用一个ARM7 32 位 RISC 微控制器来处理非成像功能,并用作整个系统的主控制器,同时采用可编程的 C5409 DSP 核心处理图像解码。另外,DSC21 还集成了专门用于处理大部分复杂计算图像任务的可编程协处理器。其中一个协处理器——图像处理引擎iMX执行 DCT、反向DCT,其它协处理器执行可变长度编码/解码、量化与逆量化。
电源模块负责电源的平稳输出和监视。
CDMA无线接收模块接收JPEG数据流,并存放到SDRAM中。图像显示模块将解压后的原始图像在电视或模拟液晶屏上显示出来。 存储器模块由FLASH与SDRAM组成。FLASH存储器用来存储程序,是系统独立运行(脱机运行)必不可少的组成部分。SDRAM存储器用于系统软件的运行以及图像数据的存储。这样可以调用以前的图像数据,用于研究。
调试仿真模块用于调试仿真使用,还可以通过它将图像数据从SDRAM中导入电脑中。
系统软件结构
系统的设计基于开放源代码Linux操作系统,本系统移植的是2.4版本。整个Linux系统的层次结构如图3所示。
整个Linux系统以前面介绍的TMS320DSC21硬件平台为基础,针
对本系统硬件需要的主要驱动程序分别是CDMA模块驱动和OSD图像显示驱动。驱动程序对底层硬件进行抽象,为顶层应用程序提供一致的底层接口。JPEG图像数据接收、管理程序作为一个常驻守护线程一直监控底层CDMA模块的活动,并给上层应用层程序提供相关接口函数。
顶层应用层程序通过JPEG图像数据接收、管理服务程序获取从CDMA驱动接收来的图像数据,然后调用huffman解码库对图像进行解压,然后把解压后的YUV数据存入SDRAM,然后映射到OSD区域,通过液晶屏显示出来。
图像的JPEG解码实现
mclinux系统控制DSP端进行JPEG解码,经过预处理、Huffman 解码、反量化、IDCT 变换这几个主要步骤将JPEG 图像数据恢复成压缩编码前的图像数据,然后经过OSD处理最终在液晶屏上显示出图像来。详细流程如图4。
用CDMA模块无线传输图像数据
CDMA是码分多址的英文缩写(Code Division Multiple Access),它是在数字技术的分支——扩频通信技术上发展起来的一种移动通信技术。不同的移动台共用一个频率应用扩频通信技术对每个移动台分配一个独特的、随机的码序列,每个码序列互不相同,而且彼此都不相关。它的容量接近于以前CDMA 1×系统容量的两倍,从而能够适应不断成长的语音服务和无线互联网新型服务的需要。其次它的最高下载速度可以达到153kbps(将来可以达到307kbps),上传速度达64K。这样的速度对于每秒4帧左右的352x288的M-JPEG压缩图像数据的传输已经足够。
为了能在尽量少的数据冗余的情况下,准确无误的传送数据,本系统的底层参考了XMODEM协议。
XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。如果接收方关于一个块的校验和与它在发送方的校验和相同时,如果包成功接收,接收方会返回一个肯定应答信号(ACK),如果发现错误,则返回一个否定应答信号(NAK)并重新发送数据包。然而,这种对每个块都进行认可的策略将导致低性能,特别是具有很长传播延迟的CDMA连接的情况时,问题更加严重。
本系统的主要数据是JPEG压缩数据包,结合这个特点,我们在Xmodem的基础上制定了一套相应的传送协议。只有在数据包有丢失,而且的确影响后面的解码时,才发送重传请求,且只重传相应的包。如果不影响,则丢弃。这样做能最大限度利用CDMA有限的带宽保证数据的正常传输。
结语
本文主要完成了监控终端设计,并进行了测试,当监控对象没有剧烈运动时,在20kbps的带宽下,达到了每秒4帧的传输速度,达到了预期的目标。图5是原始图像, 图6是采用上述处理流程,进行解码后得到的图像。应用本文所述方法完成图像采集和远程传送工作,可广泛用于银行、变电站、车站、办公大楼等场所。比传统监控方式更方便,而且成本低,有着广阔的市场和应用前景。