第1期 2010年03月 电光系统 Electronic and Electro-opfieM Systems No.1 Mar.2OlO
基于PCI总线的高速红外图像采集系统的设计
黄 颖,刘 镝
中国人民解放军91404部队
摘要:文章简单介绍了PCI总线的特点,设计并实现了一种基于PCI总线的高速红外图像采集系统,给 出了此采集系统的硬件结构设计方法,描述了Win2000下采集系统设备驱动程序的结构及其工作流程。 此系统可用于对红外长波信号进行实时的高速采集,其性能和指标均满足要求。 关键词:红外图像;数据采集;PCI总线;驱动程序
中图分类号:TP911.73 文献标识码:A
Design of a IIigh-speed Infrared-image-acquisition
System Based 011 PCI Bus
HUANG Ying.LIU Di
( its 91404 of )
Abstract:This paper introduces the feature of PCI bus,based on which a hish-speed infrared-image-acquisition system is designed and realized.111e designing method of its hardware structure is presented,and the structure and operating flow of the device driver with Win2000 is also described.This system can be applied to acquire high-speed infrared long—wavelength signal in real・time.The performance of the system satisfies the require・
ments. Key words:Infrared Image;Data-acquisition;PCI Bus;WDM
1 引言
高速红外图像采集系统作为红外信号处理与
信息处理的基础,近年来随着微机局部总线的不
断改进而得到了较大的发展。基于ISA总线、EI・
SA总线等的处理系统处理速度渐渐跟不上高速
实时图像采集处理的要求。目前比较先进的PCI
局部总线以其高传输速率得到了广泛的应用。采
用PCI总线作为系统与微机的接口,可以大大提
高系统数据传输速率,并节省大量的CPU时间,以
适应高分辨率实时红外图像采集显示要求。本文
介绍的50帧/秒(一帧图像为320×240个像素)
高速图像采集系统是为采集红外长波信号而设计
的,并且实现与工控机接口,以便采集信号的后期
处理。
2 PCI总线概述
随着Windows图形用户界面的迅速发展以及
作者简介:黄颖(1980一)女,工程师。 多媒体技术的广泛应用,要求系统具有高速图形
处理和I/O吞吐能力,使原有的ISA,EISA总线远
远不能适应。外围部件互连总线,即PCI(Periph-
eral Component Interconnect)总线,已成为局部总
线的新标准。它将外设直接挂到CPU的局部总线
上,并以CPU速度运行,可大大提高外设的运行速
度。PCI总线支持的时钟频率为33 MHz/66 MHz,
与CPU的时钟无关,总线宽度为32位,并且可以
扩展到64位,因此其数据传输率可达132 MB/s一
264 MB/s,这是其它总线难以比拟的。它大大缓
解了数据I/O瓶颈,使高性能CPU的功能得以充
分发挥,为大容量数据传输提供了可能,尤其为实
时图像处理和多媒体技术等提供了坚固的技术基
础o
3采集系统硬件结构
3.1性能指标
本系统是基于红外长波信号的采集,其设计
指标如下:
总第131期 黄颖,等:基于PCI总线的高速红外图像采集系统的设计 27
数据采集精度为14 bits;
帧频为50*Sis;
每帧图像格式:320×240;
通过PCI总线与计算机高速接口;
采用高速大容量缓存;
系统控制逻辑由CPLD完成;
系统稳定,可靠。
3.2硬件整体结构
高速红外图像采集系统硬件结构主要包括差
分信号转换、FIFO缓存、PCI总线控制
(AMCCS5933)及CPLD控制等几个部分,原理框
图如图1所示¨ 。
红外摄 像机差1 分数字 信号
图1系统结构框图
3.3红外摄像机接口模块
红外摄像机输出的信号为RS一422电平的差
分信号,包括l4位图像数据、时钟信号、帧同步信
号和场同步信号,所以这些信号首先要经过差分
信号转换器DS26C32将差分信号转换为单端 rrL
电平信号,转换后的信号经CPLD送到FIF0缓存,
当主机需要采集数据时,发送命令给CPLD,数据
由FIFO经CPLD和PCI接口芯片AMCCS5933送
人内存。值得注意的是本系统差分信号输出为14
位,而PCI总线数据宽度为32位,因此主机接收
到的数据中,每个像素的高18位为0.
3.4 PCI总线接口模块
基于微机的数据采集、处理系统中,计算机接
口卡是其中的关键硬件设备。本设计选用的接口
芯片是AMCC公司的¥5933控制器 J,¥5933总线
控制器符合PCI局部总线规范2.1版,可作为PCI
总线从设备(SLAVE),实现基本的传送要求;也可
作为PCI总线的主设备(MASTER),访问其他PCI
总线设备。¥5933其峰值数据传送速率可达
132 MB/s,¥5933提供了三种物理总线接口:PCI
总线接口、ADD—ON总线接口及外部配置存储器
接口。数据传送可以在PCI与ADD ON总线之间
进行,也可以在PCI总线与外部配置寄存器之间
进行。PCI与ADD—ON总线之间的数据传输可以 通过三种通道来实现:邮箱寄存器通道(MAIL・
BOX),FIFO通道和PASS—THRU通道。
¥5933提供两个单独的32×8 FIFO数据通
道,分别实现从PCI到ADD—ON和ADD—ON到
PCI的数据传输。这两个FIFO均支持PCI总线主
设备操作,支持数据突发传送。在本系统中,我们 利用了¥5933的ADD—ON TO PCI FIFO通道,通过
ADD—ON总线启动¥5933的总线控制功能,并可
以通过外加级联FIFO缓存来增加¥5933内部
HF0的深度。
¥5933初始化是由配置存储器在系统配置周
期自动加载的,在本系统中我们利用并行24C04
存储器作为¥5933的配置存储器。
3.5逻辑控制模块
ALTERA公司采用高密度、高性能逻辑控制
器件EPM3256来实现图像采集卡的内部逻辑控
制。EPM3256采用CMOS EEPROM技术制造,工
作于3.3 V电源电压之下,并可以通过内建的
JTAG接口来实现3.3 V的ISP(In System Program—
mable) 。
3.6缓存模块
系统中,采用低功耗CMOS同步HF0
IDT72V295来为图像采集卡提供高速缓存。其
128 K×18 bit的存储容量能充分满足红外图像采
集系统的要求;3.3 V电源供电满足低功耗的要
求;读、写时钟相互独立,支持读和写的快速并发
进行;它还支持第一个数据直接输出的功能。
4驱动程序开发
本系统的驱动程序设计我们采用WDM驱动
开发模型。WDM(Windows Driver Mode1)是微软
公司全新的驱动程序模式,支持即插即用、电源管
理和WMI(Windows Management Instrumentation)
技术,它的运行平台是Windows98/2000/XP操作
系统 J。本文设计的高速红外图像采集板驱动程
序开发所使用的工具包有:微软公司的Visual
C“6.0,Windows 2000 DDK以及Numega Driver.
Studio2.7.
开发PCI设备驱动程序,主要有三个方面问
题:硬件访问、中断处理和DMA传输。
4,1硬件访问
X86处碑器有两个独立的地址空间,分别是 电光系统 第1期
I/O地址和内存地址。I/O地址空间只有64 KB,
而内存地址空间达到14 GB.对于微机接口卡,其中
的LeO和存储器芯片可以定位于这两种独立的地
址空间中。一个芯片的地址在I/O地址空间的范
围称为I/O映射,在I/O地址空间的设备只能通
过I/O指令来访问。而一个芯片的地址在内存地
址空间的范围称为内存映射,可以通过一些内存
访问指令来访问。KIoRange类实现对LeO映射芯
片的访问,KMemoryRange类实现对内存映射芯片
的访问。
在PnP启动例程中,初始化KIoRange类和
KmemoryRange类实例:
status=In—IoPortRangeO.Initialize(
pResListTranslated,
pResListRaw,
PciConfig.BaseAddressIndexToOrdinal(0)
);
在PnP停止和删除例程中,使KIoRange类和
KmemoryRange类实例无效:
m—IoPortRange0.outd(AMCC—OP—REG—INTC—
SR,0xO);
4.2中断处理
中断处理Klnterrupd类实现硬件中断的处理,
中断的初始化在PnP启动例程中完成。图像采集
卡需要上传数据时,通过¥5933发送中断信号到
PCI总线,驱动程序收到中断后调用中断服务例程
ISR.
在本系统的设计中,我们用接收邮箱4字节3
中断来申请DMA。在接受到邮箱中断之前需要对
¥5933做如下设置工作:
1)复位邮箱标志; 2)复位FIFO标志位;
3)定义fifo管理表;
4)定义PCI to ADD~ON和ADD—ON to PCI
FIFO优先权;
5)设置DMA传输首地址寄存器MWAR;
6)设置DMA传输字节数寄存器MWTC;
7)打开邮箱4字节3中断。
在中断服务例程中,首先判断该中断是否是
自己的设备产生的,若不是,返回FALSE;若是,判
断中断类型。若是接收邮箱4字节3中断(申请
DMA中断)则清除所有中断源、关闭邮箱中断,使
能DMA传输;若是DMA传输结束中断,清除所有 中断源并发送事件消息给应用程序;若是用户放
弃DMA中断,清除所有中断源,跳出中断服务例
程。具体流程如图2所示。
图2中断服务例程流程 4.3 DMA传输
j实现DMA操作需要三个类:KDmaAdapter,
KDmaTransfer和KCommonDmaBuffer.类KDma—
Adapter用于建立一个DMA适配器,说明DMA类
型、传输字节数等;类KDmaTransfer主要用于系统
DMA的传输;类KCommonDmaBuffer用于申请系
统提供的通用缓冲区。本系统中采集到的图像格
式为320×240,而每一像象素要用32位(双字)的
PCI总线传送,故要申请76800个双字(307200=
0x4b000个字节)的通用缓冲区空间:
m—CommonDmaBuffer.Initialize(&m—MyDma,
0x4b000); if(m—CommonDmaBuffer,.VirtualAddress()=
=NULL)
{
Invalidate();
retum STATUS—UNSUCCESSFUL;
}
m—FAddr=m—CommonDmaBuffer.LogiealAd-
dress().LowPart;
m—LAddr=m—CommonDmaBuffer.VirtualAd-・
dress()
5结束语
根据上面的设计,研制出了基于PCI总线的
(下转第44页)