以FPGA和TMS320DM642为核心的实时图像采集和处理系统设计详解

当ccd产生的视频信号为模拟信号对,对其直接传输、存储和处理比较困难,须要将模拟视频信号转换为数字视频信号,以便对其进行处理,并进行高效可靠的传输和存储。当前,数字图像采集和处理系统不仅要面临高速宽带、高精度的挑战,而且对采样时机、采样点数、采样速率的可控性也提出了较高的要求,本文提出了一种实时图像采集和处理系统的设计方法,该系统以tms320dm642[1-2]为核心,结合视频解码芯片saa7115h和osd fpga构成实时图像采集和处理系统电路。
1 系统总体设计 1.1 系统结构
本系统以tms320dm642为核心,采用模块化设计思想,整个系统主要由视频解码芯片(a/d转换芯片)、可编程逻辑门阵列(osd fpga)、tms320dm642及外围电路组成。外围电路主要包括ccd摄像机、sdram图像存储器、flash程序存储器及tms320dm642外围电路(复位、电源连接等)。图1为该系统的结构框图。
1.2 系统工作原理
由ccd摄像头摄入的pal制图像传送到saa7115解码器,saa7115解码器将信号转变成并行的bt.656图像码流送至tms320dm642视频口vp0,tms320dm642将其再解码,得到yuv(4:2:2)格式的图像,并通过edma传输到动态存贮器(sdram)中存储,图像大小为每场720×288(宽×高),每帧720×576(宽×高)。cpu通过访问sdram中的图像数据,依照相应的程序进行相应的图像处理。
在实时图像处理系统中,为了不影响数据处理速度,需要在恒速的ccd图像采集与变速的tms320dm642图像处理之间加入缓冲电路,缓冲采用tms320dm642视频口的片内fifo和片外sdram的乒乓缓存结构。“乒乓操作”是一个经常应用于数据流控制的处理方法,如图2所示,其处理流程为:输入数据流通过指针等时地将数据流分配到数据缓冲区1、2和3中,在第1帧的时间,将输入的数据流缓存到1;第2帧将输入的数据流缓存到2,与此同时,将1的数据作运算处理。在下个缓冲周期,再次切换,将输入的数据流缓存到3,与此同时,将2的数据运算处理。如此循环,a、b、c、d、e为其5种状态。
乒乓操作的最大特点是按节拍、相互配合地切换,将经过缓冲的数据流不停顿地进行运算及处理。把乒乓操作模块当作一个整体,此模块两端的输入数据流与输出数据流均是连续不断的,没有任何停顿,因此非常适合进行流水线式处理,完成数据的无缝缓冲与处理。
2 功能模块设计 2.1 视频采集模块
本系统采用philips公司的saa7115视频解码芯片将ccd模拟视频进行数字化,然后传给tms320dm642的视频端口进行处理,同时分离水平同步(xrh)和垂直同步(xrv)等信号。
视频解码芯片采用saa7115,省去时钟同步电路的设计,简化接口电路,提高系统的可靠性。由摄像机采集到的模拟信号经过视频端子进入到解码器saa7115的模拟端al11,经模拟处理和a/d转换后产生数字色度信号和亮度信号,分别对其进行处理。亮度信号处理的结果一路送到信号处理器,进行综合处理,产生y和uv信号,经格式化后采用4:2:2 yuv格式从ipd[7-0]输出直接连接到tms320dm642视频口的vp0[9-2]管脚;另一路经过同步分离器,由数字pll产生相应的同步信号与tms320dm642的vp0ctl0和vp0ctl1相连,同时pll驱动时钟发生器,产生27 mhz的时钟同步信号llc,输出到tms320dm642的vp0clk0管脚。解码器saa7115与tms320dm642的视频接口的原理如图3所示。
所有这些功能均在i2c总线控制下完成。scl作为i2c接口的时钟线与tms320dm642的scl相连,sda作为i2c接口的数据地址线与tms320dm642的sda相连。通过scl和sda的时序配合,可由tms320dm642向saa7115的寄存器写入数据或读出数据。
2.2 tms320dm642图像处理模块
本系统中视频口vp0作为输入,与视频解码器saa7115的ipd相连。从解码器saa7115出来的bt.656数据流进入vp0口后,经由bt.656捕获通道,进入到视频口缓冲区中,每个视频口都有1个5 120 b的视频输入/输出缓冲区,视频口输人的数据分别进入捕获fifo a和fifo b,其中y缓存2 560 b,cb和cr缓存分别为1 280 b。根据输出的同步脉冲产生帧存储器的地址信号、读写和片选等控制信号,将图像逐帧存入sdram存储器中,通过中断通知tms320dm642读取。tms320dm642通过edma事件实现视频口缓冲区和片内l2存储器之间的数据传递。用户编程设定1个缓冲区阈值用以产生edma事件。bt.656格式的数据流经由捕获通道分别进入各自的缓冲区,并打包成64 b的双字。当双字增至缓冲区阈值时触发edma事件,存储器映射寄存器即作为edma数据传输的源地址。为保证每一场的数据能够全部传完且没有遗漏,每次edma传输的数据大小应等于阈值。由于tms320dm642的强大处理能力,用户算法作为任务线程嵌入tms320dm642软件系统中。
2.3 外围存储模块
本系统的tms320dm642在视频图像的处理时,处理过程中会产生大量数据,而其内部最多仅有256 kb的ram,所以需要扩展大容量的外部存储器才能满足数据处理的需要。本系统选用2片sdram用于存储程序、数据和缓存数字视频信息,选用1片flash存储器用于固化程序和一些掉电后仍需保存的用户数据。sdram芯片和flash芯片均通过tms320dm642的emif口实现无缝连接[3]。tms320dm642的emif有4个独立的可设定地址的区域,称为芯片使能空间(ce0~ce3),当flash和fpga映射到ce1时,sdram占据ce0,ce3的一部分被配置给osd功能的同步操作和扩展的fpga中的其他同步寄存器操作。本系统合并形成了一个64 bit长的外部存储器端口,将地址空间分割成了4个芯片使能区,允许对地址空间进行8 bit、16 bit、32 bit和64 bit的同步或不同步的存取,并且使用了芯片使能区ce0、ce1和ce3。ce0被发送给64 bit的sdram总线,ce1被8 bit的flash和fpga功能使用,ce3被设置成同步功能。
2.3.1 sdram存储器
本系统采用mt48lc4m32b2[4]来构成sdram存储器,大小为1 m×32 bit×4 banks, 在ce0空间连接了64 bit的sdram总线。总线由外部pll驱动设备控制,在133mhz的最佳运行状态下运行,sdram的刷新由tms320dm642自动控制。tms320dm642的emif与sdram接口图如图4所示。
2.3.2 flash存储器
本系统扩展4 m的flash,映射在ce1空间的低位。flash寄存器选用4 m×8 bit的am29lv033c。flash寄存器主要用来导入装载和存储fpga的配置信息。ce1空间被配置成8 bit,flash寄存器也是8bit。由于ce1的可利用地址空间小于flash的空间,所以利用fpga可产生3个扩展页。这些扩展的线形地址通过fpga的flash基础寄存器进行定义,复位后的默认值是000。tms320dm642的emif和flash的接口图如图5所示。
2.4 osd fpga模块
fpga负责完成所有芯片的接口和控制,其中包括saa7115与i2c总线的接口、复位控制信号以及与tms320dm642的emif接口和外设接口等,其体系结构图如图6所示。本系统的osd fpga功能模块的芯片型号为xilinx xc2s300e-6pq208c[5],主要用来完成以下工作:
(1)通过寄存器使用tms320dm642外部存储器接口(emif);
(2)通过可编译寄存器使用tms320dm642的emif接口控制gpio;
(3)产生emif缓冲控制信号(dir和oe);
(4)提供对于pll1708的连续控制接口;
(5)为flash产生3页bit空间;
(6)使用saa7115的同步信号。
2.5 电源和复位模块
该系统通过单+5 v供电,在板子内部转换为+1.4 v和+3.3 v,为各器件供电。+3.3 v为tms320dm642的i/o口、解码器及其他芯片的电源,+1.4 v为tms320dm642 cpu内核电源。tms320dm642内核电压+1.4 v,外设i/o电压+3.3 v,降低内核电压主要是降低功耗,外部接口引脚采用+3.3 v电压,便于直接与外部器件接口。由于是2种不同的电压,所以要考虑供电系统的配合问题。在加电过程中,保证cpu内核电源先加电,最晚也应当与外设i/o电源同时加电。关闭电源时,先关闭i/o电源,再关闭内核电源。如果内核加电晚于i/o,则会发生内部总线竞争,从而产生不可预定的结果。因此,选用电源芯片tps54310[6]获得上述2种电压,并利用其电源输出有效引脚pg和允许电压输人引脚en保证tms320dm642的内核和i/o上电掉电顺序。
为防止系统程序进入死循环或因电压波动而产生异常,本系统用看门狗芯片来控制系统复位。这里采用ti的tps3823-33dbvt[7]看门狗芯片,它由+3.3 v电源供电,能对电源电压进行监控,当电源电压降至2.93 v以下时触发复位信号,使整个系统进入复位状态,直至电源电压复原,复位信号的最小长度为200 ms。同时,还含有一看门狗计时器,用来监测来自处理器芯片的跳变沿触发信号,如果1.6 s内未接收到触发信号,它同样让系统进入复位状态并持续200 ms,这样可在系统程序进入死循环后重新启动系统。tms320dm642电源与复位电路的连接图如图7所示。
3 抗干扰设计 由于高频脉冲噪声对本系统危害最大,为了提高系统的抗干扰性能,可采取以下措施:
(1)优化pcb印制板的设计。在本系统中应当:
①采用短而宽的导线来抑制干扰。时钟引线、总线驱动器的信号线常有大的瞬变电流,其印制导线要尽可能短。对于分立元件电路,印制导线宽度在1.5 mm左右即可满足要求;对于集成电路,印制导线宽度在0.5 mm~1.0 mm之间选择;
②传输多种电平信号时,尽量把前、后沿时间相近的电平信号划为一组传输;在双面印制板的背面布置较大面积的地线区域,可对部件产生的高频脉冲噪声起到吸收和屏蔽的作用;分开模拟和数字电源层;
(2)增加总线的抗干扰能力。采用三态门形式的总线结构,并给总线接上拉电阻,使总线在瞬间处于稳定的高电平而避免总线出现悬空状态。
本文面向实时图像采集和处理,采用模块化设计思想,以tms320dm642、saa7115、osd fpga等实现了视频图像采集和处理系统的硬件电路,该系统电路简单、结构紧凑、调节灵活、可靠性高、实时性强的特点,通过验证,满足设计的应用要求,可为今后视频图像采集和处理的进一步研发提供参考。

中望软件通过上海证券交易所科创板上市审议
如何设计无源lc滤波器的频率
51公积金参展全国双创周 携最新成果亮相梦想小镇
联发科技发布芯片新品Helio P90
无锁缓存如何实现
以FPGA和TMS320DM642为核心的实时图像采集和处理系统设计详解
西门子S7-1500从站的激活与取消激活程序应用
新能源汽车直流充电电路详解
荣耀发布新机的力度正在衰减?
一加7T及一加7TPro详细规格曝光 均搭载高通骁龙855Plus
安森美半导体首创智能无源传感器助力智能汽车的发展
Google Pixel 6 Pro搭载Qorvo超宽带技术
什么是FRAM,它的优势都有哪些
全球半导体照明示范工程100佳
PCB设计之电流路径返回问题解析
诠释新时代的企业责任与担当—紫光国微谱写高质量发展新篇章
换热站远程在线监控系统,有了它更安全
Canny图像算法仿真验证原理与实现
又一手机巨头倒下—摩托罗拉
“2020年陕西智能传感器与物联网应用暨智能制造发展论坛”西安高新区举办