1 引言
通过对cmos 图像传感器输出的黑白电视信号进行视频采集, 获得数字图像信号, 实现数字图像的处理。该系统采用pc 机和基于dsp 的数字信号处理板(数字板) 构成主从式成像系统。采用计算机作为主机, dsp 作为辅助机的主从式结构。文章主要介绍系统的视频图像采集部分采用fpga (现场可编程门阵列) 进行逻辑控制实现视频图像采集的原理及实现。
2 系统组成及基本原理
一个完整的成像系统不但要具备图像信号的采集功能, 能对图像进行实时显示, 且要求完成图像信号的分析, 处理算法(如图像压缩、图像识别等) 以及图像处理结果的反馈控制。通常这些算法的运算量大, 同时又要满足实时显示的要求, 因此采用高速dsp 芯片作为数据核心处理单元。
另外, 要求系统满足通用性的同时, 针对不同的应用和不断出现的新处理方法, 还要使系统便于功能的改进和扩展。为此, 我们以pc 机为主机, 以ti 公司的dsp ( tms320c6201) 作为数字信号处理板的核心, 用fpga 作为系统数据采集的控制部分, 设计出实时图像处理系统。图1 是基于dsp 的实时图像系统的原理图。文章将详细阐述该系统数据采集部分的实现方法。
图1 基于dsp 的实时图像系统的原理图
3 视频信号采集部分的实现原理
3.1 信号说明
黑白复合视频图像信号通常由图像信号、消隐信号以及同步信号共同组成。我们采用黑白电视信号作为模拟输入, 以fpga 作为采集系统的控制单元进行逻辑控制实现采样。图2 是复合视频图像信号波形,
图2 复合视频图像信号波形示意图
黑白电视信号说明如下:
(1) 扫描方式为隔行扫描;
(2) 每秒50 场, 场周期为20 ms , 每场312.5行, 行周期为64μs ;
(3) 黑白电视信号由图象信号, 复合消隐脉冲,复合同步脉冲组成, 场消隐期宽度为25 个行同期,场同步脉冲宽度为215 个行周期, 行消隐期宽度为12μs , 行同步脉冲宽度为4.7μs。
由于系统采用逐场逐行采集电视信号, 并且要求控制所采集的图像大小为128 ×128 像素, 因此必须对视频信号的同步信号进行分离, 提取视频信号的同步信号, 以便采集部分的实现。
3.2 视频信号复合同步信号提取电路
我们采用视频同步分离器lm1881 芯片来完成这一功能, lm1881 可以从0.5 ~ 2 v 标准负极性ntsc 制、pal 制或secam 制视频信号中提取组合同步、场同步、奇偶场识别等信号, 这些信号都是进行图像数字采集所需要的同步信号, 有了它们, 才能确定在哪一场、哪一行。因此我们选用lm1881 来获取复合同步信号。采用lm1881 同步提取电路, 能够十分方便地提取采集同步信号, 且电路十分简单, 该部分的电路图和信号波形如图3 所示。其中vin 是标准视频信号, hs 为行同步信号, vs 为场同步信号,odev 为奇偶场信号。
图3 lm1881 复合同步信号提取电路及信号波形
图4 是实际提取的视频同步信号波形, 可以看出, 我们采用lm1881 可以获得很好的视频同步信号, 为视频信号采集提供了好的控制信号。
图4 视频同步信号波形图
3.3 fpga 与dsp 数据交换部分的工作原理及工作过程
由图1 可以看出, dsp 与fpga 中是采用一个双口ram 来实现数据交换的, 双口ram 的容量为4 k ×32 bit 。双口ram 作为图像数据的中间存储区, 图像采集部分由dsp 负责启动控制及采集数据的读取。为了实现图像的实时采集与处理, 应当使对图像信号的采集与外部对图像的读取能够同时进行,因而将4 k的双口ram 划分成两块图像数据缓存区域, 假设前2 k为ram-1 , 后2 k为ram-2 。在系统工作的任一时刻, 一块缓存用于图像的采集, 采集部分向该存储区写图像数据; 另一块用于外部对图像数据的读取, dsp 可以读取该存储区中的图像数据。
双缓存结构的一个重要特点在于dsp 对存储区的数据操作是随着双口ram 存储地址来回切换的。当ad 转换数据写满ram-1 时, fpga 会向dsp 发出一个中断信号, 此时, dsp 读取ram-1 中的数据,同时, ad 转换数据写入ram-2 , 当ram-2 中的数据写满时, fpga 会向dsp 发出一个中断信号,此时, dsp 读取ram-2 中的数据, 同时, ad 转换数据写入ram-1 , 如此交替, 实现数据的写入与读取同时进行。由于dsp 读取双口ram 中数据的速度远远大于ad 转换写入数据的速度, 就允许采集与外部访问的同时进行, 采用两块存储区操作的乒乓式切换, 满足数据实时交换的要求。
系统的工作过程为:
(1) dsp 通过enad 信号控制采集系统的运行, 当enad = 1 , 数据采集系统开始工作, 数据通过ad 不断地送入双口ram , 且双口ram 每隔2 k发出一个中断, 通知dsp 读取前一段已完成转换的数据;
(2) 当enad = 0 , 即系统停止工作, 采集时钟为低电平, 存储器片选均为低电平(片选为高电平有效) , 整个系统处于低能耗的待命状态。
3.4 fpga 采集控制部分的逻辑结构
实际上一场视频图像的奇行场和偶行场分别为312.5 行, 场消隐期宽度为25 个行周期, 由于我们采集的行数一定, 因而只需对奇行场进行采集即可,为使图像的采集行范围不落入场消隐期中, 我们确定一场的采集从场同步滞后32 个hs 脉冲开始, 采集128 行后停止, 这样可以保证不会采到消隐电平。图像每行时间为64μs , 其中行消隐期宽度为12μs , 行消隐期中有4.7 μs 的行同步头, 行同步头在消隐期中的位置一般靠前。我们确定从采集行行同步滞后7μs 后开始采集(滞后时间可视具体信号稍加调整) ,采集时钟为6.66 mhz , 采128 个点需要19.2μs。可以用一个6 分频的计数器, 将40m 的输入时钟clock变换为6.66 m 的采集时钟ad_clk。根据3.3 中说明的系统工作过程, fpga 的控制逻辑过程为:
当enad = 0 时, 采集系统停止工作, 这时line = 0 , enca = 0 , 因而没有ad 转换信号, 同时地址发生器不计数。
当enad = 1 时, 系统处于采集状态, 采集一场图像的过程为:
首先enad 与hs 通过ad 启动控制部分合成,使ad 启动, 只有vs 上升沿到来后, 才让hs 通过,从而保证采集的图像为完整的一帧图像。当vs 上升沿到来后, 对所有计数器及触发器清零。vs 上升沿后, 场消隐延时用来对hs 计数, 以保证计数32 周期后, 场消隐期已过, 可以采集图像。行同步计数器对hs 进行计数。在计数的每一行中, 当hs 上升沿到来时, 行消隐延时对ad_clk 计数, 计数到32时, 此时行消隐已过, 点同步计数器开始对ad_clk计数。当行同步计数达到







