基于SAA6752HS 的嵌入式视频监控和传输系统的设计

发布者:skyshoucang最新更新时间:2012-04-06 来源: 舰船电子工程 关键字:视频采集  MPEG2  以太网传输  SAA6752H 手机看文章 扫描二维码
随时随地手机看文章

引言 

人类接受信息中有70%是视频信息。相对于语音和文字信息来说,视频信息更直观,信息量更大,处理和传输技术也更为复杂。视频监控系统作为视频技术的一个应用领域,在军事安全等领域发挥着重要的作用。目前视频监控系统主要采用模拟和数字两种技术。数字视频技术不仅能减少视频传输引起的失真,还能对视频信息进行分析、识别及有效信息提取。因此随着数字技术的进步,数字视频监控将成为今后的发展方向。 

数字视频监控的一项核心技术是视频压缩技术。视频信号包含大量的数据信息,通过压缩手段把信息数据量压下来,以压缩形式存储和传输,既紧缩了存储空间,又提高了通信干线的传输效率,同时也使计算机实时处理音频、视频信息,以保证播放出高质量的视频、音频节目成为可能。MPEG-2 标准是运动图像专家组于1995 年正式公布的。它的用处在于可以使运动视音频数据作为一种计算机可处理的数据形式,并且可以存储在各种存储媒体上,可以在现存或未来的网络上发送、接受,并且可以在现存或未来的广播信道上传播。本文讨论的就是一种采用MPEG-2 压缩标准的数字视频监控系统。 

MPEG-2 视频数据压缩原理 

MPEG-2 图像压缩的原理是利用了图像中的两种特性:空间相关性和时间相关性。利用离散余弦变换(DCT) 编码技术降低空间数据相关性;运动估计和预测技术降低邻近帧像素的时间相关性来实现帧间数据压缩。MPEG-2 基本编解码模型如图1 所示。图中虚线上半部分完成视频编码功能,虚线下半部分完成视频解码功能。

编码器中的预处理器对原始图像中的噪声进行过滤,并将图像分割成宏块。对于帧内编码,宏块经过DCT 变换、量化和变长编码后输出压缩的视频数据;对于帧间编码,运动估计对宏块的运动进行估测和补偿来减少图像的时序冗余;图像预测器根据参考帧来预测当前帧,两者之间的差值经过DCT变换、量化和变长编码后输出,由于差值较小可以使编码所需比特数减少很多;逆量化和IDCT的目的是为了完成参考帧的重现。解码器中变长解码、逆量化和IDCT重构帧内编码的图像,图像预测器根据参考帧和运动矢量完成帧间编码图像的重现。 



图1  MPEG-2 编解码模型图 [page]


系统设计 

系统硬件设计 

系统总体结构 

系统主要由两个部分组成:一是模拟视频数据解码和数字视频数据编码子系统。二是视频码流以太网传送子系统。此外还有电源子系统、JTAG调试子系统等,这里不做详述。系统的基本结构图如图2 所示。 



图2  系统原理图 


系统首先通过模拟摄像机将外部的信号转换为PAL 制的复合视频信号,然后模拟视频解码和数字视频编码子系统将模拟摄像机的PAL 制式复合视频信号压缩为MPEG-2 格式视频流,最后,DSP 控制器将视频流封包通过以太网传送子系统以百兆的带宽传送出去。 

模拟视频解码和数字视频编码子系统 

模拟视频解码部分的任务是对输入的PAL 制视频信号进行采样量化编码后,转换成标准数字视频信号。我们选用的PHILIPS 公司的SAA7114 芯片。SAA7114 是一种高性能的单片NTSC/PAL/SECAM复合视频解码器,低功耗、低价格、具有卓越的三线自适应梳状滤波器能克服传统滤波器的人工痕迹而保证全屏视频分辨率,具有灵活的像素端口,并具有外围电路简单和易于编程等优点。 

在系统中, SAA7114将模拟信号解码后得到的信号转换为ITU-RBT.656 数字视频格式,可以与SAA6752 直接相连,如图3所示。系统中采用SAA7114的视频输出口为X-port作为数据输出口。X-port的信号分为以下几类: 

a、数据信号XPD7-XPD0 :输出解码后的数据值; 

b、时钟信号XCLK:作为系统参考时钟信号; 



图3  SAA7114 与SAA6752 的接口 [page]

c、行同步信号XRH 和场同步信号XRV :当输出为行同步信号和场同步信号时,这两个信号有效; 

e、XDRI 控制X-port 是作为输入口还是输出口。

RTS0 输出奇数场或偶数场的标志位。

MPEG-2 视频编码部分是整个系统的关键部分,它将ITU-RBT.656格式的数据编码压缩为ISO/IEC 13818的MPEG2传输流(TS) 。这一部分选用的是PHILIPS 公司的SAA6752HS 芯片。它是一款高集成度低成本的单芯片音视频编码芯片,可以执行全部的视频编码、噪声滤波和运动估计的功能。另外,通过I2C 总线就能实现对SAA6752HS 控制,因此SAA6752HS 只需要从主控制处理器的I2C总线上传输少量设置编码的参数就可以使SAA6752HS 开始编码工作。SAA6752 与TMS320VC5502 主控DSP 的连接如图4 所示。 

SAA6752 的输出接口各引脚功能如下: 

a、PDO[7. . 0 ]输出数据; 
b、PDIOCLK输出参考时钟,可以设为9MHz 或6. 75MHz ; 
c、PDOAV 信号表示输出的是视频数据还是音频数据; 
d、PDOVAL 信号表示输出的数据是否有效; 
e、PDOSYNC 表示输出的是数据包的第一个字节。 



图4  SAA6752HS 与TMS320VC5502 的连接图 


需要说明的是,图4 中的移位寄存器、FIFO、计数器(模4) ,计数器2 (模47) 是用FPGA 实现。DSP 控制器我们选用的是TI 公司中的TMS320VC5502(‘5502) 芯片,它的核心电压只有1.2V ,功耗仅0. 05mW/MIPs ,性能达600MIPS。这款芯片尤其适合于数据速率高,运算量大,又要求低功耗的系统。同时TMS320VC5502 集成了丰富外围设备,比如32 位的外部内存接口(EMIF) ,可以与系统中的网卡连接;内部集成的I2C 总线接口,便于对Philips 的视频芯片进行控制。另外,它还对外提供JTAG口,这使系统的调试可依靠JTAG仿真器和TI 公司最新的DSP 开发平台CCS 而变得更为方便。 

视频流以太网传送子系统 

以太网接口部分主要用来将打好包的数据传到远程主机上, 我们使用的是SMSC 公司的LAN91C111 芯片,它是一块高性能非PCI 接口的10M/100M以太网接口的芯片。LAN91C111 采用的是一种流量I/O 的工作方式。所谓流量IO 方式曾经是为磁盘与处理器接口而设计的,它比ISA 的DMA 方式具有更高的效能而且能更方便的使用。LAN91C111 对数据的处理能力也很强,其理论上最大数据处理能力为320Mbit/s = 40MB/s。由于LAN91C111 具有MMU 功能使得整个系统具有较高的网络性能和较低的系统开销。 



图5  LAN91C111 的接口图 


由 LAN91C111 组成的网络接口如图5 所示。LAN91C111 通过局部总线接口把CPU 传过来的数据,通过内部的MAC 控制器进行数据的封装,物理层收发器(PHY) 将数据传输到脉冲变压器上,这样由噪声产生的错误可以降至最低,保证数据的正确传输。同时,LAN91C111 的物理层收发器还能接收网络上的数据包,并且MAC 可以进行载波侦听、碰撞检测协议和CRC 校验功能;此外LAN91C111 还具有大的缓冲区可以提高整个电路的效率,LED控制器可以标识网络接口的状态。LAN91C111 的主机端的接口比较灵活,它可以支持异步或同步方式的传输,还可以支持非触发方式和触发方式(Burst mode) 的传输。为了提高系统的吞吐率,由DSP 向网卡传送数据时,通过DSP 的EMIF 接口,采用同步触发传输方式,并且使用直接32 位数据传输,数据不通过BIU ,直接写入网卡FIFO ,这样更为合理地实现TMS320VC5502 与LAN91C111 高速连接。 [page]

系统软件设计 

本系统的软件包括两大部分,一是硬件驱动程序,二是控制逻辑设计。下面分而述之。 

系统驱动程序设计 

环境下进行的。CCS 界面简单明了,操作方便,功能强大,大大降低了开发的难度。系统的驱动程序由TMS320VC5502 初始化程序,SAA7114A ,SAA6752HS 和LAN91C111 的配置程序、数字视频MPEG2 码流接收存储封包程序、MPEG2 码流以太网发送程序和系统主控程序等多个模块组成。图6 为软件系统框图。 



图6  软件系统框图 


TMS32VC5502 的初始化程序完成对‘C5502 的堆栈和运行状态位,中断使能位的设置,以及DSP内核频率的设置。SAA7114 和SAA6752HS 的配置程序通过‘C5502 的I2C 接口完成对其的设置,使其能正常地进行模拟解码和数字编码。LAN91C111 的初始化程序完成对该芯片的一些寄存器设置,使其能正常运转起来。数字视频MPEG2 码流接收存储封包程序是通过‘C5502 将SAA6752HS 传过来的数据按照RTP 协议标准打成网络上的数据包,然后再通过MPEG2码流以太网发送程序将数据包发送出去。数据传输时都是使用的DMA 传输方式,这样可以节省大量的时间,提高系统运行的效率。

在整个驱动程序设计当中,时序的把握是十分关键的。比如SAA7114 的配置程序,当中需要用到I2C 总线,而I2C 总线对时序要求是相当严格的,如果在发出START 命令之后,不加上一定的时延,而立即传送数据,由于DSP 的速度太快,可能会造成前后数据的覆盖,导致程序出错。另外,由于系统是进行实时处理的,中断程序设计是必不可少的。在程序设计时有几个问题需要注意: 

第一, 当外部中断信号不稳定时,比如波形前后跳动、毛刺过多等,都有可能造成能检测到中断,但无法进入中断服务程序的情况。 

第二, 若将程序单步执行,这样会造成仿真器出错,无法检测到中断。 

第三, 在修改两个中断矢量指针IVPD 和IVPH 之前,应确信: 

a、禁止所有的可屏蔽中断( INTM= 1) 。这可以在修改中断矢量指针,使之指向新中断矢量之前,防止产生一个可屏蔽中断。 
b、每个硬件非屏蔽中断对新旧IVPD 值分别有一个中断矢量和一个中断服务程序。这样在修改IVPD 过程中,产生一个硬件非屏蔽中断时,可以防止非法指令代码。 

FPGA 逻辑设计 

该系统中使用了一块Altera 公司的ACEXEP1K30QC208-3Q 型号的FPGA ,主要利用该FPGA实现SAA6752 与TMS320VC5502 之间的接口。如上SAA6752HS 与TMS320VC5502 的连接图4 所示,移位寄存器负责将SAA6752HS 输出的8 位数据方式扩展成32 位宽度,以提高数据的吞吐效率。通过时钟信号PDIOCLK、有效位信号PDOVAL 和音视频标志位PDOAV 来控制移位寄存器的工作。FIFO是一个宽度为32 位的缓冲器,TMS320VC5502 通过片选信号CE3 和读信号ARE/SRE/SDRE 控制对FIFO 数据的读操作。

当SAA6752HS 采用传送流的数据结构时,每读完4 个数据包(每个数据包为188个字节) , 计数器2 就会产生一次中断,TMS320VC5502 从FIFO 中读入这些数据包,完成信道编码后向网络上传输。FPGA 逻辑正是依据这一思想设计的。为了提升系统的稳定性,避免累积错误,该逻辑中采用了一种双FIFO 轮流切换的方法。在系统开始运行,只往FIFO1 里写,当写完4 个数据包,产生一次中断,通知DSP 来读数据;接下来,系统自动切换到往FIFO2 里写,此时DSP 同时在读FIFO1里的数据,直到往FIFO2 里写完4 个数据包(由于DSP 读数据的速度远远快于SAA6752 往FIFO 里写数据的速度,故此时FIFO1 已被读空) ,便又产生中断;接下来,DSP 读FIFO2 里的数据,同时往FIFO1里写,依次轮流切换。



图7  DIO 主模式下输出传输流分组的时序图 


SAA6752 的输出采用DIO 主模式,其输出端口的时序如图7 所示,每个数据包包含188 个字节,这是MPEG2 传输流分组的特性。在MAX+PLUSII 下设计其逻辑,运行正常。 

结束语 

本文针对数字视频压缩及网络传输作了较为深入的研究,并针对嵌入式网络视频服务器的设计和实现作了初步而有益的探索,其中既有经验也有教训。由于时间及其它因素的限制,研究工作留有许多需要完善的地方。Non-PCI 结构网络接口性能的优化和客户端软件的具体实现及形成嵌入式网络视频服务器原理样机是我们下一步的目标。

关键字:视频采集  MPEG2  以太网传输  SAA6752H 引用地址:基于SAA6752HS 的嵌入式视频监控和传输系统的设计

上一篇:网格中比较CPU计算能力的一种方法
下一篇:基于单片机的可编程直流稳压电源设计

推荐阅读最新更新时间:2024-03-16 12:57

视频采集卡Windows95驱动程序设计
    摘要: 介绍了Windows95系统中视频采集卡驱动程序的原理和结构,较详细地介绍了虚拟设备驱动程序和Video For Window视频采集驱动程序设计技术。     关键词: 视频采集 驱动程序 Windows95 在计算机视频应用中,视频采集卡承担着将模拟视频信号转换成数字视频信号的任务。Windows95是目前应用比较广泛的操作系统,许多视频应用系统是基于该平台的。不但采集卡设计人员需要详细了解Windows95系统中视频采集卡驱程序设计技术,应用程序设计人员也需要理解驱动程序的工作原理,以便设计出性能更好的应用程序。本文以PCI总线视频采集为例,较详细地介绍了Windows95系统中视
[嵌入式]
首款USB 3.0视频采集盒选用赛普拉斯EZ-USB FX3控制器
2012 年 8 月 6 日,北京讯,加州圣何塞讯——赛普拉斯半导体公司(纳斯达克股票代码:CY)日前宣布台湾业界领先的音频/视频设备制造商聪泰科技在其 UB530 USB 3.0 高清 (HD) 视频采集盒中选用了赛普拉斯的 EZ-USB® FX3™ 控制器。UB530 可存储来自包括机顶盒、媒体播放器、高清摄像机和游戏机等各种来源的视频。赛普拉斯的 FX3 解决方案则可提供 USB 3.0 设备桥接器,能够支持 5 Gbps 的全高清数据传输流。 EZ-USB FX3 是业界唯一一款可编程的 USB 3.0 外设控制器。它采用了完全可配置的通用可编程接口 (GPIF™ II),可进行 8 位、16 位和 32 位的配置编程,
[传感器]
基于嵌入式Linux与S3C2410平台的视频采集
摘要:首先简介基于嵌入式Linux系统的S3C2410平台和在平台上进行开发所需的软件环境,接着详细论述在该平台上如何实现视频采集这一应用,并对视频采集程序的实现进行具体的介绍,最后完成应用程序向目标平台的移植。 关键词:嵌入式Linux Video4Linux S3C2410 内存映射 随着多媒体技术、网络技术的迅猛发展和后PC机时代的到来,利用嵌入式系统实现远程视频监控、可视电话和视频会议等应用已成为可能。为了实现这些应用,实时获得视频数据是一个重要环节。针对这一点,本文在基于嵌入式Linux系统平台上,利用Video4Linux内核应用编程接口函数,实现了单帧图像和视频连续帧的采集,并保存成文件的形式供进一步视频处理和
[嵌入式]
剖解:视频采集卡的功能技术与软硬识别
    视频采集卡又叫视频捕捉卡,用它可以将视频信息数字化并将数字化的信息储存或播放出来。绝大部分的视频捕捉卡可以在捕捉视频信息的同时录制伴音,还可以保证同步保存、同步播放。另外,很多视频采集卡还提供了硬件压缩功能,采集速度快,可以实现每秒30帧的全屏幕视频采集。     视频采集卡的功能和技术     接口:现在市场上的视频采集卡接口能分为几种,视频采集卡的接口包括视频与PC机的接口和与模拟视频设备的接口。目前PC视频采集卡通常采用32位的PCI总线接口,它插到PC机主板的扩展槽中,以实现采集卡与PC机的通讯与数据传输。采集卡至少要具有一个复合视频接口(VideoIn)以便与模拟视频设备相连。高性能的采集卡一般具有一个复
[安防电子]
实时视频采集系统的SDRAM控制器设计
0 引 言     在PAL→VGA的实时视频采集系统中,由于视频数据流的数据量大、实时性要求高。需要高速大容量的存储器作为图像数据的缓存。SDRAM作数据缓存不仅具有大容量和高速度的特点,而且在价格和功耗方面也占有很大的优势。但是SDRAM控制较复杂,需要处理预充、刷新、换行等操作,因此有必要设计SDRAM控制器来完成和SDRAM的接口。并且为了保证数据流的连续性,实时视频采集系统通常采用通过对两片SDRAM的乒乓操作来完成图像数据的缓存。针对SDRAM是高速设备,工作频率上限最高可以达到166 MHz,而该系统中前端图像采集模块的像素时钟为27 MHz,后端VGA显示的像素时钟为31.5 MHz。在此介绍了一种使用1片SDRA
[工业控制]
智能汽车使用以太网架构是否能解决数据带宽和传输问题?
随着智能汽车中大量传感器的使用,数据量迅速增加,而这些数据给传输环节带来巨大挑战。 Maxim Integrated汽车事业部执行总监Balagopal Mayampurath在接受采访时表示,这一挑战主要体现在三个方向。 挑战一是信号传输系统必须大幅度提升带宽,这一需求在未来三年至少提高25倍。挑战二是智能汽车内部大量设备的采用,使得信号互联的复杂度大大增加。挑战三是必须保证来自摄像头等传感器数据的完整性和安全性,传感器数据要安全地传输到处理单元,处理单元要把信息转输到显示屏上,这些环节都需要正确的信号传输,这样才能确保智能汽车运行的安全。 据Strategy Analytics预测,从今年到2020年,带宽需求预计
[嵌入式]
智能汽车使用<font color='red'>以太网</font>架构是否能解决数据带宽和<font color='red'>传输</font>问题?
基于ARM9和USB摄像头的网络视频采集系统设计
0 引言 通信网络已经普及到人类生活的各个方面,布控区域广阔的网络视频采集系统也在迅速的发展,嵌入式视频采集系统的服务器直接连入已经建成的网络,既没有线缆长度的限制,也没有信号衰减的限制,通过没有距离概念的网络,彻底抛弃了地域的限制。系统具有几乎无限的无缝扩展能力,所有设备都以IP地址划分,增加设备只是意味着IP地址的增加,可组成非常复杂的视频采集系统,服务器输出的视频数据已完成模拟到数字的转换并压缩,采用TCP/IP协议在网络上传输,支持跨网关、跨路由器的远程视频信息传输。 本文根据网络视频采集的需要,将网络传输与视频采集相结合,设计了以S3C2440为核心的USB摄像头视频采集和嵌入式Linux系统下的视频服务器,从而实
[单片机]
基于ARM9和USB摄像头的网络<font color='red'>视频采集</font>系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved