TMS320DM355的VGA视频采集系统的设计方案

发布时间:2015-02-12 阅读量:964 来源: 我爱方案网 作者:

【导读】本文提出了以TMS320DM355为核心,对VGA信号进行实时采集及显示的系统方案。系统采用AD9883芯片将VGA信号数字化,利用FPGA芯片进行时序转换,修改了DM355的视频处理前端的驱动,最后利用linux操作系统提供的V4L2,编写应用程序,实现VGA数据的实时采集,编码传输。

“好消息!2015年新年来临之际,我爱方案网准备了ST开发板、庆科WIFI模块开发套件以及智能硬件研发必备的精密样片,只需填写个人信息与开发计划即有机会获得。更多详情>>>>”


一、 引言

随着计算机的广泛使用,对输出的VGA信号进行实时监控、存储及传输的应用需求越来越迫切。本文基于Ti公司的TMS320DM355处理器(简称DM355)、AD公司的AD9883芯片,结合FPGA技术,提出了一种支持分辨率较高、性能优良的视频信号采集和接口电路方案。

该系统对计算机输出的XGA(1024x768)信号进行实时采集、编码、传输,同时利用ADV7123芯片将VGA信号还原,在本地的显示器进行输出,主要应用于视频会议,视频教学系统中。由于VGA信号的采集涉及到AD9883[1] [2]芯片和FPGA中信号时序的转换,及DM355的视频处理前端(VPFE:Video Processing Front End)驱动的修改,比较复杂,本文将对此作重点阐述。

二、 系统整体设计


1. 方案选择

本文采用TI公司的达芬奇系列芯片TMS320DM355来实现,这一方案的优点在于:

1)DM355内部集成了ARM926EJ-S内核、协处理器(MJCP)、视频处理子系统及多种外设。ARM中移植嵌入式linux后可构成一个良好的基于网络的嵌入式产品开发平台,能方便的实现Web服务器的构建和功能的扩展。协处理器(MJCP)可实现对多媒体数据的编解码。

2)DM355是一款低功耗的芯片,待机功耗仅为1mW,其电池的使用寿命是当今业界相当的便携式产品的2倍。

3)DM355是TI公司的一款中低档芯片,在满足性能要求的同时,其价格与同类芯片相比也很有优势。因此,广泛应用于数码相机,IP摄像机,数码相片,医学成像及视频监控系统中。

DM355的视频处理子系统包括视频处理前端(VPFE)和视频处理后端(VPBE:Video Processing Back End),视频处理前端[3]用于接收外部传感器或视频译码器等输入的图像信息,由CCD控制器、硬件图像信号处理器、自动曝光/聚焦模块H3A和寄存器组成,支持的视频输入格式有如下三种:

1) RAW格式。

2) BT.656格式。

3) YUV格式。

其中,RAW格式对于每个像素点只存储RGB三原色中某一种颜色的值,在进行色彩还原时因插值运算会导致莫尔纹效应;BT.656格式支持的视频分辨率太低,因此,本系统的DM355处理器的视频处理前端采用YUV格式进行视频采集,须将VGA信号通过硬件电路转换为YUV信号格式。

2. 系统总体设计

TMS320DM355的VGA视频采集系统的设计方案

图1 VGA视频采集系统框图

1)VGA输入模块。将RGB模拟信号及行同步信号(Hsync)、场同步信号(Vsync)输入给A/D转换模块。由于该模块由模拟电路组成,易产生噪声,因此布线时接口器件应尽量靠近A/D转换芯片。

2)A/D转换模块。首先根据行、场同步信号确定采样的行频和场频,接着由行频和内部寄存器确定像素同步时钟,然后通过配置AD9883芯片内部的锁相环(PLL)产生同步时钟。该模块可将输入的VGA模拟信号转换为8bit×3路的数字视频信号,并通过一系列寄存器调整图像的采样效果。

3) FPGA转换控制模块。一方面FPGA通过I2C总线向AD9883的寄存器写入控制信息;另一方面将输入的RGB信号转换为DM355支持的YUV信号格式,将视频信号送给DM355的视频采集前端。

4)D/A输出显示模块。该模块采用ADV7123芯片将8bit×3路RGB数字信号还原为模拟信号,并结合行、场同步信号构成VGA信号,供本地计算机显示输出。

 

三、 系统硬件设计


1.VGA接口

VGA是一种D型接口,可传输VGA,SVGA,XGA,SXGA等图像格式。VGA接口共有15条线,分为3组:一是RGB三色模拟信号输入线;二是RGB三色地线,接地处理;三是时序信号线,分别是行同步信号线(Horizon Synchronizing,HS)和场同步信号线(Vertical Synchronizing,VS),这两条线控制了VGA的显示时序。

显示器采用逐行扫描的方式进行扫描,阴极射线枪发出的电子束打在涂有荧光粉的屏幕上,产生RGB三基色,由此合成一个彩色图像。VGA显示可分为行扫描和场扫描,从屏幕左上方开始扫描,从左到右,由上至下。每行扫描结束时,用行同步信号进行行同步;当整个屏幕的所有行扫描结束后,用场同步信号进行场同步,如图2所示。在扫描过程中,CRT对电子束进行消隐控制,在消隐过程中不发送电子束。在每行结束后,电子枪回扫的过程进行行消隐;在每场结束后,电子枪回扫的过程进行场消隐,整个屏幕变黑,光栅在这段内重新回到屏幕的左上角,开始下一帧图像的扫描。

TMS320DM355的VGA视频采集系统的设计方案

图2 VGA扫描时序

2. A/D转换模块

本系统的A/D转换器采用AD9883,该芯片专门用于采集模拟R,G,B信号,将其数字化显示或作为中间转换器件使用。该芯片具有采样精度为8bit×3路通道,最高采样率为140MSPS/s,300MB的模拟带宽,支持最高分辨率为SXGA(1280x1024),刷新率为75Hz的视频信号。基于AD9883的电路可为高清电视提供良好的接口,或作为高性能视频设备的前端扫描转换器,它的内部结构如图3所示,主要包括A/D转换电路、时钟产生电路、同步信号产生电路、I2C总线接口四个部分。

TMS320DM355的VGA视频采集系统的设计方案

图3 AD9883的内部结构图

AD9883内部的寄存器通过I2C总线完全可编程,芯片按照寄存器设定的模式进行工作。如AD9883支持多种VGA格式,但不能自动检测实现自适应,需要通过I2C接口进行寄存器配置,指定芯片采集的视频格式。

经AD9883转换后,数字视频信号输出的时序如图4所示。在数据输出时钟DATACK的下降沿对应信号的采样及量化,量化的数据在时钟上升沿稳定的输出;接口电路可在DATACK的上升沿准确地锁存图像数据,从而实现数字化图像的采集。值得注意的是,AD9883有一个数据输出通道,在输出数据有效之前必须清空通道,从而导致每行输出有效数据之前将输出4组无效的数据,可通过行同步信号HSOUT避免输出这些无效数据。

TMS320DM355的VGA视频采集系统的设计方案

图4 AD9883数据输出时序图

3.FPGA设计

本系统采用EP1C3T144C8将输入的数字化的RGB信号转换为YUV信号,送给DM355的视频采集前端。FPGA以AD9883输出的像素时钟PCLK作为全局同步时钟。

RGB和YUV是两种常用的色彩空间。RGB色彩空间是采用R,G,B三个色彩分量来表示一个像素,常见的RGB格式有RGB565、RGB555、RGB24,本文中AD9883转换输出的数据格式为RGB24,即每个像素用24位表示,RGB分量各使用8位。

YUV色彩空间是视频传输中常采用的一种方法,其特点为亮度信号与色差信号分离。Y表示亮度信息,U表示蓝色色差(即蓝色信号与亮度信号的差值),V表示红色色差(即红色信号与亮度信号的差值)。常见的YUV格式有YUV 4:4:4,YUV4:2:2,YUV4:2:0,本系统中DM355的视频处理前端接收的采集信号格式为YUV4:2:2。该格式为每个像素保留Y分量,而UV分量在水平方向上每两个像素采样一次,在图像数据流中,YUV分量排列如下:Y0 U0 Y1 V0 Y2 U1 Y3 V1 Y4 U2 Y5 V2 … …

图5所示为FPGA进行色彩转换的工作框图,该模块将输入的8bit×3路RGB信号转换为16bit的YUV信号。在YUV 16Bit的工作模式下,在一个时钟周期内,高八位用于间隔传递U分量或V分量,低8位用于传输Y分量。

TMS320DM355的VGA视频采集系统的设计方案

图5 FPGA芯片色彩转换框图

除色彩空间的转换外,FPGA模块将像素同步时钟及行、场同步信号送给A /D转换模块及DM355处理器,方便其他模块进行信号同步操作。

4.D/A输出显示设计

本设计采用ADV7123作为视频转换芯片,将数字视频信号转换为VGA模拟信号,供本地计算机显示输出。ADV7123具有三路高速、10位输入的视频DA转换器,具有330Mhz的最大采样速度,与多种高精度的显示系统兼容,可充分满足本系统的转换需求。当RGB三通道的输入比特数少于10位时,可将高位用于数据比特传输,低位接地处理。ADV7123芯片产生三路模拟输出后,结合FPGA传来的行、场同步信号完成视频的显示。

四、 系统软件设计


1. FPGA软件设计

FPGA[4]模块的软件设计主要实现以下3方面的功能:

1)I2C接口配置

在上一小节中提到,AD9883芯片内部的寄存器通过I2C总线完全可编程,本小节将讲述FPGA通过I2C接口对这些寄存器的具体配置。通过这些具体参数的配置,可实现对AD9883视频采集格式、视频转换效果等的控制。

AD9883内部共25个寄存器,其中00H和14H为只读寄存器,15~18H为测试用寄存器,01H~13H为功能寄存器。FPGA芯片对主要功能寄存器的配置如表1所示:

TMS320DM355的VGA视频采集系统的设计方案

表1 AD9883寄存器配置

功能
   

寄存器
   

配置值

锁相环分频控制
   

01H
   

F0H

时钟产生器控制
   

03H
   

70H

04H
   

80H

箝位控制
   

05H
   

09H

 

 

增益和偏置控制
   

08H
   

90H

09H
   

90H

0aH
   

90H

0bH
   

80H

0cH
   

80H

0dH
   

80H

2)RGB与YUV的转换

本系统中的FPGA模块的另一功能是将RGB信号转换为YUV信号,二者转换的公式为(RGB取值范围均为0-255):

(式 1)

由于FPGA芯片进行浮点运算时,运算步骤繁琐并且硬件资源消耗较大,故将式1中的参数均乘以256后取整,转换如下:

(式2)

经过运算后,得到式2中的Y’,U’,V’分量后,分别取数据的高八位即为Y,U,V分量的实际值。

3)VPFE接口时序的实现

由于AD9883芯片输出的同步信号与DM355要求的输入同步信号格式不匹配,因此需要将同步信号进行转换。AD9883芯片输出的同步信号周期包括行消隐前肩、行消隐后肩、同步信号和图像数据四个部分,而实际传输给DM355的视频处理前端的信号仅包括同步信号和图像数据两个部分,因此需要对信号周期进行转换,如图6所示。

TMS320DM355的VGA视频采集系统的设计方案

图6 VGA行、场同步时序示意图

2.DM355软件设计

1)视频处理前端驱动的修改

为了采集转换后的YUV信号,本文对DM355的视频处理前端的驱动进行了修改,配置视频采集设备的工作模式为YUV输入模式。主要修改的驱动文件为dm355_vpfe.c,部分代码解析如下:

static vpfe_obj vpfe_device_ycbcr = {

……

.vwin = {0,0,1024,768},//VPFE_WIN_VGA,

.bounds = {0,0,1024,768},//VPFE_WIN_VGA,

//设置采集的YUV信号的分辨率

.pixelaspect = VPFE_PIXELASPECT_NTSC,

.pixelfmt = V4L2_PIX_FMT_UYVY,

.field = V4L2_FIELD_NONE,

//设置V4L2的工作模式为逐行扫描格式

……

.capture_device = TVP5146,

.ccdc_params_ycbcr = {

.pix_fmt = CCDC_PIXFMT_YCBCR_16BIT,

//采用16位数据总线传输YUV信号

……

.bt656_enable = FALSE,

//不采用BT.656采集模式

.pix_order = CCDC_PIXORDER_CBYCRY,

.buf_type = CCDC_BUFTYPE_FLD_SEPARATED

//该设置相对于CCDC_BUFTYPE_FLD_INTERLEAVED而言,设置buffer为独立的

},

.tvp5146_params = {

.mode = TVP5146_MODE_AUTO,

.amuxmode = TVP5146_AMUX_COMPOSITE,

.enablebt656sync = FALSE,

//不采用BT.656同步模式

.data_width = TVP5146_WIDTH_16BIT

//数据总线宽度为16bit

},

.irqlock = SPIN_LOCK_UNLOCKED

};

2)视频信号采集程序设计

在DM355的应用程序设计中,视音频数据的采集、编码、输出分别通过Capture Thread,Video Thread, Writer Thread独立线程来实现。其中,视频采集线程的主要作用是对采集设备进行初始化,开辟缓冲区,以帧为单位往其中写入数据,为Video Thread做准备。

视频采集程序通过调用V4L2[5](Video For Linux 2)来实现,V4L2是Linux中提供的关于视频设备的内核驱动,它为针对视频设备的应用程序变成提供一系列的接口函数,如VIDIOC_REQBUFS,分配内存;VIDIOC_QUERYBUF,将VIDIOC_REQBUFS中分配的数据缓存转换成物理地址;VIDIOC_QUERYCAP,查询采集设备功能;VIDIOC_S_FMT,设置当前驱动的视频捕获格式;VIDIOC_STREAMON,开始视频采集等。

TMS320DM355的VGA视频采集系统的设计方案

图7采集设备初始化流程图

图7为视频采集线程对采集设备进行初始化的流程图。在Linux中,视频采集设备的设备文件名为/dev/video0,可通过函数open(“/dev/video0”, O_RDWR | O_NONBLOCK, 0)来打开视频设备。打开设备文件后,利用ioctl函数,设置不同的V4L2参数,来调用底层的V4L2驱动程序,获取视频采集设备的参数,根据实际应用需求设置视频格式,同时为采集设备分配帧缓冲区, 并将该缓冲区映射到用户空间。这样,当缓冲区中存储了一帧视频数据后,VIDIOC_DQBUF就把数据从缓冲区中读取出来,VIDIOC_DQBUF把数据放入视频数据缓存队列继续下一帧的采集。当接收到结束采集命令时,通过ioctl函数发送VIDIOC_STREAMOFF命令,停止视频采集。

五、系统测试和结束语


本系统对VGA信号采集成功后,利用MPEG4算法进行编码,并利用开源的JRTP库实现网络传输功能,客户端可实时观看和存储接收到的码流。在进行VGA信号采集编码的同时,可利用ADV7123芯片将VGA信号还原,在本地的显示器进行输出。经过实验测试,本系统具有较好的实时性,解码后的图像主观质量也很好。

本文提出的基于TMS320DM355处理器,采用AD9883和ADV7123转换芯片,结合FPGA技术的VGA信号采集方案,能够对XGA信号进行实时采集。该系统可广泛应用于雷达、天气预报、航空航天、通信等领域的图像数据实时记录。

相关文章

基于DSP的视频采集存储系统的研究与设计

泰克推出助力流媒体视频采集的更加便捷解决方案

基于NiosII的视频采集与DVI成像
相关资讯
三星芯片战略大调整:2nm工艺突围与市场博弈新动向——从Exynos 2500折戟到2600的背水一战

2025年5月,三星电子因放弃自研Exynos 2500芯片导致4亿美元亏损的消息引发行业震动。这款原计划搭载于Galaxy S25系列的3nm旗舰芯片,因良率不足20%而被迫搁置,最终全系改用高通骁龙8 Elite,导致三星System LSI部门研发投入血本无归。这一事件暴露了三星在先进制程上的技术瓶颈,也迫使其重新调整芯片战略:押注2nm工艺的Exynos 2600,试图通过Galaxy S26系列实现技术突围。

国产突围!川土微电子CA-IF1044AX-Q1 CAN收发器:全链路自主化与EMC性能双突破

随着汽车智能化、电动化浪潮加速,CAN收发器作为车载网络的核心通信接口,其可靠性与安全性成为产业链关注焦点。然而,国际局势的不确定性使得供应链自主可控需求迫在眉睫。川土微电子推出的CA-IF1044AX-Q1 CAN收发器,实现了从设计、晶圆制造到封测的全链条国产化,并通过欧洲权威机构IBEE/FTZ-Zwickau的EMC认证,成为兼具安全性与高性能的国产车规级解决方案。

“中国芯”逆袭时刻:新唐携7大新品打造全场景AIoT解决方案矩阵

在万物互联与智能化浪潮席卷全球的今天,新唐科技以颠覆性创新奏响行业强音。4月25日,这场历时10天、横跨七城的科技盛宴在深圳迎来高潮,以"创新驱动AI、新能源与车用科技"为主题,汇聚全球顶尖行业领袖,首次公开七大核心产品矩阵,展现从芯片设计到智能生态的全链条创新能力,为半导体产业转型升级注入新动能。

半导体先进制程技术博弈:台积电、英特尔与三星的差异化路径

在2025年北美技术研讨会上,台积电正式宣布其A14(1.4nm)工艺将于2028年量产,并明确表示无需依赖ASML最新一代High NA EUV光刻机。这一决策背后,折射出全球半导体巨头在技术路线、成本控制和市场竞争中的深层博弈。

嵌入式主板EMB-3128:轻量级边缘计算的工业级解决方案

随着AIoT技术的快速落地,智能设备对高性能、低功耗嵌入式硬件的需求持续攀升。华北工控推出的EMB-3128嵌入式主板,搭载Intel® Alder Lake-N系列及Core™ i3-N305处理器,以高能效比设计、工业级可靠性及丰富的接口配置,成为轻量级边缘AI计算的理想选择。该主板支持DDR5内存、多模态扩展接口及宽温运行环境,可广泛应用于智能家居、工业自动化、智慧零售等场景,助力产业智能化升级。