以黑白四画面处理器为例,介绍了视频监控系统中基于FPGA器件和单片机的多画面处理器的设计方法,简述了FPGA 器件XCS05XL的特点和工作原理,讨论了单片机μPD78F0034与I2C总线存储器X24C16的接口方法以及用μPD6453叠加字符的基本方法,同时概述了使用帧存储器AL422应注意的几个问题。 近年来,随着视频监控系统在各个领域的广泛应用,作为视频监控系统组成之一的多画面处理器的应用也愈来愈普遍。如使用一台九画面处理器,则可在一台监视器上同时监控9个目标,只需使用一台录像机便可对9路视频信号同时实时录像。目前多画面处理器有黑白/彩色四、九、十六画面处理器等6种类型。一般说来,多画面处理器除了有画面分割功能外,还须有视频信号切换及报警功能。视频信号切换功能是指多画面处理器有一路视频输出是输入视频信号或画面分割信号的顺序切换,且切换时间可调;报警功能是指多画面处理器能输入、输出报警信号,报警时相应的画面上叠加有报警信息,并将报警信息存储起来以便日后查阅。设计多画面处理器可使用专用DSP芯片,这样虽然满足了速度要求,但开发周期较长,产品的调试、修改及升级比较困难,成本较高。由于FPGA(即现场可编程门阵列)器件具有集成度高、体积小、功耗低、设计灵活且价格较低,有快速高效的开发平台,可加快开发周期等优势,因此目前多画面处理器的设计基本上采用FPGA作为其中的视频信号处理器件。由于FPGA的功能由其内部的编程数据确定,编程数据的装载方法之一是上电后由单片机实现,因此多画面处理器含有单片机。一方面利用单片机在上电后将FPGA所需的编程数据写入FPGA中,另一方面视频信号的切换、字符叠加及报警信息的处理也由单片机来完成。下面具体介绍基于FPGA器件和单片机的黑白四画面处理器的设计方法。 1 黑白四画面处理器的组成及主要功能 1.1 黑白四画面处理器的组成 黑白四画面处理器的方框图如图1所示。由图1可知,该多画面处理器以FPGA器件和单片机为核心,外加A/D、D/A、帧存储器、串行存储器、串行时钟和字符叠加等辅助芯片组成。
1.2 黑白四画面处理器的主要功能 该四画面处理器的主要功能如下: ·视频格式为CCIR格式,即视频信号的场频为50Hz; ·双工操作(在录像的同时可进行回放),菜单设定; ·全屏显示时象素为1024×512,256个灰度等级; ·4路CVBS输入及1路录像输入; ·1路全画面与四分割切换输出,1路录像输出(固定四分割); ·切换时间可调,范围为1~255s。 ·画面上可叠加时间日期,且位置可调整; ·有报警输入输出功能,报警复位时间的可调范围为1~300s; ·有视频信号丢失报警功能,报警时对应的画面上有文字显示。 2 各部分电路的结构及工作原理 2.1 输入缓冲及A/D转换 该部分电路的主要功能是将输入的模拟视频信号转换成数字视频信号供FPGA器件处理,其方框图如图2所示。4路视频信号经过受FPGA控制的模拟多路选择器后,输出2路视频信号,经过缓冲放大后送到受FPGA控制的模拟开关;然后再输出给A/D,2路视频信号需要2片A/D芯片。A/D芯片选TLC5510,该芯片是一种分辨率为8位、20MSPS(20兆采样点/秒)的CMOS模/数转换器。在FPGA的控制下,TLC5510将输入的模拟视频信号转换成数字视频信号,然后送往帧存储器。
2.2 帧存储器 帧存储器选AVERLOGIC公司的AL422,共需要2片。AL422是存储量为384KB×8Bits的FIFO(First In First Out)DRAM,它支持VGA、CCIR、NTSC、PAL和HDTV分辨率,具有独立的读/写操作及输出使能控制;存取时间为15ns的高速异步串行存取,可在5V或3.3V电源电压下工作,标准的28脚SOP封装。 2.3 FPGA器件 FPGA是本设计的核心,与传统逻辑电路和门阵列相比具有不同的结构。FPGA利用小型查找表(16×1 RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,D触发器再来驱动其它逻辑或驱动I/O。这些模块利用金属连线互相连接或连接到I/O模块。FPGA通过向内部静态存储单元加载编程数据来实现其逻辑,存储在存储单元中的值决定了FPGA实现的功能;FPGA的这种结构允许无限次的重新编程。由此可见,用FPGA设计的产品调试修改及升级均很容易,且具有很大的灵活性。目前FPGA的种类很多,在本设计中选用Spartan系列的XCS05XL。该芯片是Xilinx公司推出的低价格、高性能的FPGA,其主要特点如下: ·系统门的数目达到了5000,Logic cell数目达到了238,系统资源丰富; ·具备片上可编程分布式RAM,最多可编程的RAM达3200bit; ·分布式算术逻辑单元,支持分布式DSP运算; ·灵活的高速时钟网络,内部三态总线;工作电压为3.3V。 有关XCS05XL的详细资料请参阅参考文献[1]。 FPGA的编程数据存储在单片机的FLASH ROM里。每次上电后单片机将编程数据装入XCS05XL,编程模式选从串模式,因而其22脚(M1)和24脚(M0)悬空。编程数据装入后,XCS05XL的逻辑功能就确定了;XCS05XL控制视频信号的输入及A/D转换,在其内部将每路视频信号压缩为原来的1/2,同时在单片机的控制下给每路叠加时间、日期、通道数等字符信息,然后将压缩的四路视频信号合成为一路完整的数字视频信号,并输出给D/A,形成四分割输出。 2.4 D/A转换及输出缓冲放大 D/A转换电路将FPGA输出的数字视频信号转换成模拟视频信号,然后经过缓冲放大输出给监视器,D/A芯片选HI1171。该芯片是一种分辨率为8位,频率为40MHz的高速D/A转换器,其最大积分和微分线性误差分别为1.3LSB和0.25LSB;最小建立时间仅为5ns,在单5V下工作,功耗只有80mW。输出缓冲放大由分立元件组成。 2.5 单片机 单片机选日本NEC公司的μPD78F0034,该芯片的主要特点是: ·时钟为8.38MHz时的指令周期为0.24μs; ·ROM为32KB FLASH,RAM为1024bytes; ·可寻址空间为64KB,5个外部中断,15个内部中断; ·39个CMOS I/O,8个CMOS INPUT,4个N-CH漏极开路I/O; ·1个16位定时/计数器,2个8位定时/计数器; ·1个时钟定时器,1个看门狗定时器,1个UART端口· ·支持I2C总线,有时钟信号及蜂鸣信号输出功能; ·外部数据总线为8位,内部寄存器为16位; ·有8位无符号乘法指令,16位除法指令; ·工作电压范围为1.8V~5.5V,有STOP/HALT工作模式。 由此可见,该芯片的性能要优于目前流行的MCS-51系列,其8位无符号乘法指令及16位除法指令给软件编程带来了很大的方便。另外,由于该芯片本身带看门狗定时器,因而无需外加看门狗电路,就能保证系统稳定、可靠地工作。 2.6 存储器 存储器芯片采用串行EEPROM芯片X24C16。该芯片是容量为2KB带写保护的I2C总线数据存储器,当WP=1时,只能读,不能写数据。它使用串行数据线(SDA)和串行时钟线(SCL)进行主从器件之间的数据传输。I2C总线上的数据传输率可达100Mbps,快速方式下可达400Mbps。在I2C总线传输中,开始和停止条件定义如下:当SCL为高时,SDA由高变低为开始条件;当SCL为高时,SDA由低变高时为停止条件(如图3(a)所示)。SDA和SCL都是双向传输线,SDA线上的数据在时钟为高期间必须是稳定的,只有当SCL线上的时钟信号为低时,数据线上的状态才可以改变(如图3(b)所示)。输出到SDA线上的每一字节必须是8位,每次传输的字节不受限制,每字节必须有一个应答位。本设计中X24C16的第5脚(SDA)和第6脚(SCL)分别接单片机的P3.6和P3.7。
2.7 时钟和字符叠加电路 时钟芯片选串行时钟DS1302。该芯片是一种高性能、低功耗且带RAM的实时时钟芯片,它有如下主要特性: ·实时时钟,可对秒、分、时、日、周、月、年进行计数,且有闰年补偿功能,直至2100年; ·用于数据暂存的31B NV RAM,简单的三线接口,TTL兼容; ·用于时钟或RAM数据读/写的连续多字节数据传送方式; ·8引脚DIP或用于表面贴装的8引脚SOIC封装; ·工作电压为2~5.5V,温度为-40°C~85°C。 字符叠加电路由NEC公司μPD6453组成。该芯片可在屏幕上显示12行、每行24个字符、每个字符为12×18点阵。字符的大小、闪烁频率可以根据需要进行调整,屏幕的背景色、字符的边缘色以及字符本身的颜色也可以修改。该芯片内部除固化了191个日文、英文字母和数字等字符的字模以外,还固化了49个汉字(如年、月、日、时)的字模;另外该芯片提供16个字符的RAM空间,供用户填入自定义字符。由于画面处理器不需要叠加太多的不同字符,因而本设计不外加汉字字库,这样既节省了成本和线路板的空间,又简化了电路结构。μPD6453所需的行、场同步信号及时钟信号均由FPGA提供。单片机通过串行数据传输将一系列命令(包括所要显示的字符或汉字、字体大小、字符的间距、字符的属性)送往μPD6453,μPD6453收到命令后再将所要显示的字符或汉字等信息送至FPGA。 2.8 视频信号切换电路 该电路由MAX440组成。MAX440是一种内含宽带视频放大器的高速多路视频选择开关,可输入8路视频信号,输出为1路视频信号。在单片机的控制下,输出可与8路视频输入中的任一路相连。该芯片的主要特点如下: ·带宽为110MHz;微分增益为0.04%,微分相位为0.03度; ·开关切换时间为15ns,转换速率为370V/μs; ·开/关时的输入电容为4pF,无需外接补偿元件。 2.9 报警信号的接收及处理 由单片机直接完成,无需经过FPGA。当有报警发生时,单片机收到报警信息,发出命令使蜂鸣器发出警报声,同时通知FPGA和μPD6453使对应的画面闪烁并出现“报警”字样。 3 FPGA器件XCS05XL的编程实现原理 所谓编程就是利用单片机μPD78F0034将事先设计好的数据通过某种方式装入XCS05XL中,以确定XCS05XL内部的CLB和IOB的功能以及布线通道的连接方式,数据的写入只在编程过程中完成。在正常工作期间,存储单元只用来提供固定的控制信号,编程存储单元以阵列形式分布在XCS05XL中。每个CLB有几百个编程数据位,每个编程数据位定义了一个静态存储单元的状态,该存储单元可以控制一个逻辑函数查找表位、一个数据选择器输入或一个互连开关晶体管。Xilinx开发系统可以将逻辑设计转换成网络表文件,它自动将逻辑电路分区、设置和布线,以PROM格式产生编程数据,并将数据存入PROM中。XCS05XL有三种编程模式:从串模式、主串模式和快速模式。编程开始前,芯片会自动检测M1和M2脚以确定编程模式,编程结束后,这些脚就没有用了。当M1和M2脚为高电平时,选从串模式,这也是目前最常用的一种编程模式。实际上,此时M1和M2脚可悬空。如果要选择主串模式,则M1和M2脚必须与地相连或通过1kΩ的下拉电阻接地。 图4所示为μPD78F0034单片机对FPGA器件XCSO5XL装载编辑数据的示意图。XCS05XL的编程模式选从串模式,因而其M1、M2脚悬空(即相当于接高电平)。XCS05XL的编辑数据存储在单片机的FLASH ROM 里,上电复位后,单片机通过P30脚将数据串行传送到XCS05XL中。XCS05XL所需的编程时钟(CCLK)信号由单片机产生,在每个CCLK 的上升沿,XCS05XL 通过DIN脚接收输入数据。
4 软硬件设计时要注意的几个问题 (1)使用帧存储器AL422应注意的问题 ·由于帧存储器AL422是FIFO DRAM,因而须确保WCK和RCK信号始终有且信号的频率不低于1MHz,因WCK和RCK中频率较高者将作为DRAM的刷新时钟信号; ·在AL422的/RRST信号的上升沿,/RE信号不能为低,这一点在确定FPGA的编程数据时要特别注意(因/RRST和/RE信号均由FPGA提供); ·AL422可在5V或3.3V电源电压下工作,当使用5V电源时,其DEC脚(Pin19)须接2.2μF的去耦电容;当使用3.3V电源时,DEC脚(Pin19)可直接与3.3V相连,并通过0.1μF电容旁路到地;电容均使用钽电容。由于使用3.3V时,器件功耗低,且受噪声干扰小,因而在本设计中采用了3.3V电源对AL422供电。 (2)为避免视频信号之间的串扰,各路模拟视频信号间均用较粗的地线隔开,且视频走线足够宽。 以上介绍了黑白四画面处理器的设计。为了节省线路板空间并使产品小巧玲珑,所有的元器件及IC芯片均选用贴片式封装。鉴于篇幅的限制,本文没有讨论多画面处理器软件方面的设计。至于9画面和16画面处理器的设计,其设计思想及组成方框图与该4画面处理器相类似,只不过要增加A/D、AL422及FPGA,软件编程也复杂一些。 参考文献 1 Spartan/XL Complete Data Sheet(v1.6).Xilinx Corporation,2001;19(9) 3 黄正瑾.系统编程技术及其应用,南京:东南大学出版社,1999 4 李 华. MCS-51系列单片机实用接口技术,北京:北京航天大学出版社,1999 |