微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ADV7170的红外数字图像显示系统设计

基于ADV7170的红外数字图像显示系统设计

时间:02-27 来源:互联网 点击:

摘要 由FPGA控制视频译码芯片ADV7170,接收来自红外热像仪输出的数字图像,从而把数字图像转化为PAL制模拟信号并由电视机进行显示。该红外数字图像显示系统具有小型化、低功耗、灵活性强等特点,能够广泛应用于国防科技中。
关键词 FPGA;ADV7170;数字图像

ADV7170芯片是AD公司推出的一款较新且功能较强的视频译码器,这款高度集成的芯片,既包含精密的模拟电路,又包含高速数字电路。ADV7170应用广泛,适用于DVD播放器、便携式视频设备、视频监视器和机顶盒等场合。
红外热像仪将物体表面的温度转换成人眼可见的图像,并以不同灰度值显示物体表面的温度分布。红外热像仪具有超远距离成像特点,成像距离主要由物体温度决定,从而克服传统成像器件成像距离短的弊端。文中利用这一特点实现对热像仪周围空域的实时监测,达到预警的效果。

1 设计方案
文中嵌入式数字图像显示系统硬件系统结构如图1所示,在此图像显示系统中,采用Altera公司的Cyclone 3系列FPGA:EP3C80F484C6,Analog Device公司的视频译码芯片ADV7170。首先FPGA使用I2C总线对ADV7170的内部寄存器进行配置,然后FPGA接收来自红外热像仪输出的数字图像,并转化为ADV7170可识别的数据格式,最后由ADV7170把数字图像转化为PAL制模拟信号给电视机显示。

2 ADV7170的配置
Analog Device公司生产的ADV7170是一款通用性强的视频译码芯片。它是一款集成的数字视频译码器,将数字形式的ITU_R_BT656组合视频数据,转换成标准的模拟基带电视信号。它可以同时输出一路复合视频信号及一组RGB信号,或一路复合视频信号及一组YUV信号,或二路复合视频信号及一组亮度与色度信号。ADV7170的数据输入有两种模式:8位与16位。当工作于8位模式时,引脚P7~P0作为数据输入口,输入数据序列为Cb0、Y0、Cr0、Y1、Cb1、Y2……,在每个时钟的上升沿采样数据;当工作于16位模式时,引脚P7~P0输入Y信号,引脚P15~P8输入Cb、cr信号,每两个时钟的上升沿采样数据。无论工作在那种数据输入模式,在输入数据流中都需要嵌入同步控制数据。对该芯片应用的关键就是要设置ADV7170内部的一些寄存器使ADV7170能正常工作。而ADV7170采用了I2C总线接口标准,所以对该芯片的控制就主要是通过I2C总线进行寄存器的配置。
(1)I2C总线的基本原理。I2C总线是Philps公司开发的一种用于芯片间通讯的串行数据传输总线,它由串行时钟线SCLOCK和串行数据线SDATA完成全双工数据传送。串行的8位双向数据传输速率,在标准模式下可达100 kbit·s-1,快速模式下可达400 kbit·s-1,高速模式下可达3.4Mbit·s-1。I2C总线数据传输时,在时钟高电平期间数据线上必须保持有稳定的逻辑电平转态,高电平为数据1,低电平为数据0。只有在时钟线为低电平时,才允许数据线的电平状态变化。发送到串行数据线SDATA线上的每个字节必须为8位,每次传输发送的字节数量不受限制。每个字节后鼻血跟一个相应位,首先传输的是数据的最高为。如果从机要完成一些其他功能后才能接受或发送下一个完整的数据字节,可以使时钟线SCLOCK保持低电平迫使主机进入等待状态。当从机准备好接收下一个数据字节并释放时钟线SCLOCK后,数据传输继续。
I2C总线起始信号:在时钟线保持高电平期间,数据线出现由高电平向低电平变化时启动I2C总线,为I2C总线的起始信号。
I2C总线终止信号:在时钟线保持高电平期间,数据线出现由低电平向高电平变化时停止I2C总线数据传输,为I2C总线的终止信号。
I2C总线应答信号:I2C总线数据传送时,每传送1Byte数据后必须有应答信号。应答信号在第9个时钟位上出现,接受器输出低电平为应答信号,输出高电平则为非应答信号。
图2为ADV7170的I2C总线的一次完整的数据传输。

(2)I2C模块设计与VHDL实现。设计需要配置的ADV7170内部寄存器如表1所示。


采用状态机方式实现I2C模块的功能,图3所示状态机中有6个状态,分别是St_idle,St_start,St_write,St_read,St_stop和St_ac k。系统复位之后进入St_idle状态,收到go和start命令后进入St_start状态,在St_start状态下判断随后到达的命令,如果是写寄存器命令,则进入写状态;如果是其他命令,则进入相应的状态。每次数据传输完成后会读取ack信号,判断寄存器是否配置完成。如果完成则进入停止状态,由于实际工作中不需要读寄存器的值,所以读命令只在调试中应用到。图4是FPGA实现I2C模块。

如图4所示,用VHDL语言实现了I2C总线对ADV7170内部寄存器的配置,图5~图6为使用中的写时序和读时序图

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top