基于USB2.0的非制冷红外热像仪图像处理系统
扫描二维码
随时随地手机看文章
摘要:采用基于USB2.0总线技术和视频解码芯片SAA7114完成对红外图像的采集,利用FPGA实现视频数据流的收发时序,通过USB接口芯片Ez-USB FX2 CY7C68013与主机进行通信。系统具有灵活性、即插即用、自动配置资源、应用广泛。
关键词:SAA7114;CY7C68013;I2C;USB2.0;固件
目前,红外热像仪在军事和民用领域应用广泛,但市面多数红外热像仪随机附带的图像处理功能较单一,不能进行复杂运算,而具有多功能的热像仪价格昂贵。因此,文中提供了另一种解决方案,采用FPGA和USB2.0技术完成红外视频图像的采集,再利用通用微型计算机完成图像存储及复杂图像处理,此方法较灵活、方便,可建立起图像数据库为后续的研究工作提供数据支持。该系统包括图像采集、存储及提取模块,其体积小、功耗低、速度快、适应性强,能够满足日常红外图像处理应用。
1 系统构成及原理
硬件平台首先要考虑数据的吞吐率,市面上大部分的红外热像仪均支持PAL制式的视频图像输出,帧频为25帧/s,以720列×576行×25帧/s为例,720列×520行×16 bit×25帧/s≈166 Mbit/s,约为20 MB/s。据此指标初步设定方案,如图l所示。
1.1 视频解码芯片SAA7114
SAA7114是Philips公司生产的可编程视频处理器,该芯片集A/D与解码功能于一身,片内附有锁相、自动钳位、自动增益控制、时钟产生、多制式解码等电路。而且SAA7114还可对亮度、对比度和饱和度进行控制,既支持PAL电视制式又支持NTSC和SECAM电视制式。该芯片主要有以下特点:
(1)具有六路模拟输入和内部模拟信号源选择,如6×CVBS或者(2×Y/C和2×CVBS)或者(1×Y/C和4×CVBS);(2)具有两路模拟预处理通道和两路模拟抗混叠滤波器;(3)对选择的CVBS或Y/C通道可编程为静态增益控制或自动增益控制;(4)可进行白峰控制;(5)内含两个9位的A/D转换器,数字CVBS或Y/C信号可通过扩展接口输入;(6)片内行锁定时钟发生器符合“ITU 60l”标准;(7)具有数字PLL,可用来对所有的标准和非标准制式的视频源(例如消费级磁带录像机)进行同步处理和时钟发生;(8)所有的制式标准只需要同一频率的晶振32.1l MHz或者24.576 MHz;(9)可进行行场同步信号的探测;(10)自动进行50/60 Hz场频的检测,自动进行标准PAL制式和NTSC制式之间的转换;(11)可对各种制式的视频信号的亮度和色度进行处理,这写制式包括PAL BGDHIN,PAL N,PAL M,NTSC M,NTSC-Japan,NTSC4.43和SECAM;(12)自适应的2/4路梳状滤波器进行二维的亮度或色度的分离,——增加了亮度和色度的带宽以支持所有的PAL和NTSC制式标准,——减少了串色和亮度失真;(13)PAL行延迟校正了相位错误;(14)独立的亮度对比度和饱和度调节;(15)用户可编程锐度调节;(16)独立的可对原始数据进行获取和偏移调节;(17)可进行行场缩放以适应窗口大小;(18)支持4:2:2,4:1:1,4:2:0,4:1:0 YUV格式的输出;(19)支持8位灰度图像和原始CVBS数据的输出;(20)支持软件控制省电待机模式;(21)可通过I2C总线接受外部控制器的控制,速率可达400 kB/s。
本设计采用一路模拟输入,输入是PAL制式信号,输出是16位宽度的数字视频图像,可兼容8位宽度的数字视频图像,图像尺寸大小可缩放。SAA7114通电后并非立即对输入的视频信号进行A/D转换,输出数字视频信号,而是要对其内部的寄存器进行设置才能够进行正常工作。本设计采用I2C总线对片内的寄存器进行设置。
1.2 存储单元
经过A/D转化过的数字视频图像,采用YUV格式输出时,需用2 bit表示,在图像处理领域,通常只用1 bit表示黑白图像,为了兼容彩色图像采集模式,数据存储空间按照彩色图像的数据量进行设计。每帧图像为720×576×16=405 000 bit×16 bit,存储器可采用双口FIFO、双口SRAM,但考虑到图像的数据量及成本,采用两片SRAM构成乒乓式存储结构。双缓存结构常用于高速大容量数据传输中。因此采用两片容量为512 kbit×16 bit的SRAM构成乒乓存储单元。这里只截取640×480像素图像,因此采用512 000 bit×16 bit的SRAM是可以完成图像的存储与传输。
1.3 数据传输
本设计采用Cypress公司的USB2.O控制器芯片CY7C68013,该片集成有包含8.5 kB RAM增强型8051微处理器,4 kB的FIFO存储器,通用可编程接口(GPIF),串行接口引擎(SIE)和USB2.0收发器。
芯片工作在Slave FIFO的接口方式下,在该模式下外部逻辑直接控制接口芯片内部的FIFO。其工作过程是,当USB设备接入计算机时,计算机和USB设备之间产生枚举过程,计算机检测到有设备接入,自动发出查询请求,USB设备回应请求,返回设备的Verdor ID和Product ID,计算机据此装载相应的驱动程序,完成重枚举过程。计算机通过USB发出采集指令后,启动A/D和FPGA,红外图像的一帧经过SAA7114处理送到SRAM,然后通过USB芯片上传给计算机。在上传过程中,两片SRAM分别存储一帧图像的奇偶场,当一片用于存储时,另一片用于传输已存储的图像,如此往复完成实时视频图像采集。
1.3 现场可编程门阵列单元
FPGA完成的逻辑功能包括:对SAA7114进行配置,将A/D转换后的数字视频流变换成固定分辨率的图像视频流及行场使能信号,控制USB芯片及SRAM存储芯片的读写时序。采用FPGA实现这些功能降低了PCB板的复杂程度,而且提高了系统的灵活性。
2 软件设计
本系统的软件由以下3部分组成。
2.1 固件程序设计
开发USB接口的应用系统最重要的是USB驱动程序和固件程序的编制。Cypress公司的开发包中提供专门的开发系统,为开发固件提供了便利条件。在Cypress的主页上有。EZ-USB开发工具包下载,提供了控制面板程序(ControlPanel)和KeilC51套装软件。在Keil uVision2环境下在Periph.c和Dscr.a5l文件中加入用户代码程序即可实现特定的功能,加快开发进度。固件程序设计主要包括初始化、处理标准USB设备请求以及USB挂起时的电源管理,初始化FIFO及USB端点。CY7C68013具有软配置的特性,当设备与主机连接后,可装载不同的固件使设备呈现不同的特性,方便外设固件的在线升级。
设置CY7C68013内部相应的寄存器,使其工作在USB2.0方式下,由固件程序应答USB的传输,而不是USB内核。芯片工作在Slave FIF0接口模式下。
框架函数分为3大类:任务分配器(以TD为字首)、标准设备请求分析(以DR为字首)和USB中断处理(以ISR为字首)。
void TD_Init(void)
该函数在框架初始化期间调用,函数中可设置整体状态变量的初始值,规定各种资源的使用及配置外围接口的输入/输出等。
Void TD_poll(void)
设备工作期间,该函数重复调用,包含一个执行外设功能的状态机。
BOOL TD_Suspend(void)
该函数包含使设备进入低功耗状态的程序,然后返回True。返回False时,阻止设备进入挂起状态。
void TD_Resume(void)
此函数使设备恢复到正常操作方式。
设备请求主要完成的任务是确定新的配置接口和端点。USB中断完成用户定义的中断请求服务。本设计中使用的是SLAVE FIFO工作模式。
2.2 FPGA的程序设计
SAA7114不仅输出了数字视频流,还输出了场同步信号、行同步信号、奇偶场信号和像素时钟信号,FPGA根据这些同步信号以及SRAM的片选、写选通信号等来控制视频数据流的时序,完成图像采集、缓存和上传。
2.3 上位机驱动程序设计和应用程序设计
利用VC++6.O对Cypress提供的GPD重新扩充生成定制的驱动程序。应用程序是通过I/O控制调用访问USB设备完成红外视频的采集、处理、显示及存储。
3 结束语
该系统能够完成图像的采集、传输、存储等要求,达到了设计的数据传输要求。系统具有集成度高、灵活性好、即插即用与自动配置等优点。但图像在高分辨率的情况下数据量较大,当PC连接有多个USB高速设备时对带宽的要求较高,可先将数据压缩后再上传。