《基于PCI总线的嵌入式实时图像处理系统.docx》由会员分享,可在线阅读,更多相关《基于PCI总线的嵌入式实时图像处理系统.docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于PCI总线的嵌入式实时图像处理系统dujing导语:本文着眼于图像处理系统的开展要求,讲明了基于PCI总线的DSP图像处理系统的优点,并具体说明了系统的硬件构造和PCI总线的驱动实现,最后介绍了系统实现的效果。1图像处理系统开展现状在计算机信息处理及应用中,图像信息处理以及处理结果的应用占有特别重要的地位。图像处理的开展依靠于处理器芯片包括单片机、DSP等技术的应用和开展,以及大容量、价格低廉的存储器的出现。图像处理系统固然由机箱式大体积构造开展为插卡式小型化构造,但是由于图像处理存在大量的数据信息,在实时性和容量上一般不能知足多数需要实时处理的场合。这主要表达在如下2个方面。1.1实时性
2、要求图像处理系统有很多种实现方法,比方在通用计算机上用软件实现、用单片机实现、利用特殊用处的DSP芯片来实现等。但这些实现方法都有着缺点,例如软件实现速度太慢,不能用于实时系统;单片机采用的是冯诺依曼总线构造,而且乘法运算速度太慢;假如用特殊用处的DSP芯片又缺乏灵敏性,而且开发工具不是很完善。在本系统中,图像处理系统是在通用计算机上参加DSP加速卡来实现。利用DSP芯片的高速处理特性完成大局部的图像处理工作,计算机只是作为辅助操纵和存储系统。这种方法发挥了DSP的高速性能又具有相当大的灵敏性的特点,开发工具比拟完善。实现实时性要求还必须有足够的传输速度,PCI总线速度最高可达132MB/s,
3、这是其他总线无法比较的速度,如ISA总线速度只有5MB/s。1.2小型化要求现今图像处理应用越来越趋于小型化系统,趋向于把整个处理系统集成在一个小黑盒子里面,甚至于一块电路板上。这就要求图像处理系统具有高速度、高集成度的处理芯片来完成本来需要很多部件合作完成的任务。DSP的中央处理器特性使得可以把诸多的功能集于一身,并通过外部扩展来实现复杂的功能,实现系统的小型化。另外,视频数据一个很大的特点就是大容量性,这是与音频数据最大的区别之一。对于大容量数据的实时处理不但需要高速的CPU,还需要能扩展的大容量存储空间。在通用计算机上用软件实现时,其存储空间由计算机的存储空间决定,其扩展性能受到了限制;
4、同时单片机的扩展空间有限。它们都无法知足视频数据的大容量要求。本文正是着眼于实时性和小型化要求这两方面问题,设计了用DSP加速卡实现的图像收集系统。利用DSP芯片的高速处理特性完成大局部的图像处理工作,上位机只完成辅助操纵和存储系统。这种方法发挥了DSP的高速性能又具有相当大的灵敏性,而且开发工具比拟完善。另外,PCI总线速度最高可达528MB/s66MHz、64位,这是其他总线无法比较的速度。系统中C6000系列中DSP的可扩展存储空间高达1GB,这完全可以知足一般图像处理系统的需要。2DSP图像处理系统构造本系统采用TI公司C6000系列DSP中的TMS320C6211作为系统的CPU。图
5、像数据通过视频头输入模拟图像信号,这些信号经过视频解码芯片进展A/D转换为数字信号,经FIFO输入DSP进展图像的增强、分割、特征提取和数据压缩等,然后输出信号经PCI解码芯片转换为符合PCI总线标准的标准信号,通过PCI总线接口传到上位机。本系统设计目的是用于智能楼宇的治理,主要实现对楼宇一些重要参数的实时检测功能等。当然可以用于其他的监控系统,其硬件系统根本一致,不同的在于软件功能的区别。系统构造图如图1。img=450,164e-ewk2004/fileupload/images/127465331654062500.gif/img从图1可以看出,整个系统可分为3个模块:DSP图像处理模
6、块,视频解码模块,PCI总线模块。下面分别介绍这3个模块的实现经过和功能。2.1DSP图像处理模块本系统选用TI公司的C6000系列DSP之中的TMS320C611作为本系统的CPU。C6000是TI公司发布的面向视频处理领域的新款高速数字处理芯片,适用于挪动通讯基站、图像监控、雷达系统等需要高速度和高度智能化的应用领域。存储空间选用当代公司的2片HY57V651620B作为运行经过中的存储器SDRAM和AMD公司的AM29LV800B作为启动时候需加载程序和参数的存储器FLASH。其构造如图2所示。图中的HPIHostPortInterface为主机口;EMIFExternalMemoryI
7、nterface为外部存储器接口,兼容同步/异步方式。img=450,226e-ewk2004/fileupload/images/127465331850781250.gif/img1TMS320C6211处理器特性及完成功能TMS320C6211处理器由3个主要局部组成:CPU内核、外设和存储器。它的高速性能主要表达在如下几个方面:TMS320C6211的存储空间最大扩展可以到达512MB,这完全可以知足各种图像处理系统所需的内存空间,而且其最高时钟可达167MHz,峰值性能可达1600MIPS百万条指令/秒、2400MOPS百万次操纵/秒。并行处理构造。TMS320C6211芯片内有8个
8、并行处理单元,分为一样的两组,并行构造打破传统设计使得芯片具有很高的性能。芯片体系采用VelociTI构造。VelociTI是一种高性能的甚长指令字VLIW构造,单指令字字长为32bit,8个指令组成一个指令包,总字长为256bit,即每秒钟可以执行8条指令,同时芯片内部设置了专门的指令分配模块,可以将每个256bits的指令包同时分配到8个处理单元,并由8个单元同时执行。采用流水线操纵实现高速度、高效率。TMS320C6211只有在流水线充分发挥作用的情况下,才能到达最高的MIPS。C6211的流水线分为3个阶段:指令读入、解码和执行,总共11级。DSP完成的功能主要是对从FIFO读入的数据
9、进展处理,包括按照程序进展识别、特征提取以参数检测等。当视频头收集速度为每秒25帧图像时,它留给DSP处理的时间最多为每帧40ms,假如考虑系统中一定的延时以及处理后图像的存储时间,那么DSP处理一幅图像时间不能超过30ms,按照C6211的处理速度,在30ms内可以处理36M条指令。DSP读出FIFO中的行数据并存入SDRAM,一帧图像有576行,在最后一行时会收到帧中断,这时SDRAM中的图像数据总共有1440576810KB。让C6211用36M条指令的时间处理810K的数据是绰绰有余。2SDRAM存储器HY57V651620B是当代公司发布的128MbSDRAM,支持分页寻址,访问速度
10、为7.5ns,与DSP系统同步工作,但由于DSP工作在150MHz,故系统中SDRAM工作在DSP时钟的一半或2/3,即75MHz或100MHz。当工作在100MHz时候,SDRAM在时序上需要一些特殊的控制,不是简单的与DSP同步。SDRAM主要在系统运行经过中存储临时数据和处理结果。系统中共有256Mb的存储空间,其消耗情况视启动程序和图像处理程序的大小而定。3FLASH存储器AM29LV800B是AMD公司发布的8MbFLASH芯片,同样支持分页寻址,工作在异步方式。启动程序固化在FLASH芯片中。当系统加电启动时,FLASH中的程序下载到DSP的SDRAM中运行。FLASH具有在线重写
11、入功能,这对系统启动程序的修改和晋级都带来了很大的方便。2.2视频解码模块本系统视频A/D采用的是Philips公司的SAA7111A作为视频解码芯片,SAA7111A可以提供四路模拟视频输入,具有两个模拟处理通道,支持四路CVBS模拟信号或者二路Y/C模拟信号或者2CVBS和1Y/C。SAA7111A对视频头输入的标准PAL格式的模拟图像信号进展A/D转换,然后输出符合CCIR601建议格式的4:2:2的16位YUV数据到FIFO,其中亮度信号Y为8位、色度信号Cr和Cb合为8位数据。FIFO采用的是IDT公司的IDT72V215LB芯片,深度为51218。按照CCIR601标准,YUV图像
12、分辨率为720576,那么按行输出时,SAA7111A输出数据流大小为:720161440bit。由于DSP通过32位的SBSRAM接口与FIFO通讯,故YUV数据写入FIFO时需要在FIFO之间实现乒乓切换,这时一行72016的数据在两片FIFO中存储变为36032。2.3PCI通讯模块PCIPeripheralComponentInterconnect,外围组件接口它既可以作为中间层的总线也可以作为周边总线系统使用。与其他普通总线标准相对照,PCI总线为高速I/O设备提供了更好的支持,比方可以很好的支持图像适配器、网络接口控制器、磁盘控制器等。现行的标准允许在33MHz下使用64根数据线,
13、传输速率可达2.12Gbps。并且PCI总线支持线性突发的数据传输形式,可确保总线不断满载数据,因此能有效利用总线带宽。另外,PCI总线还具有低延时的随机存取特性,对从总线上的主控存放器到附属存放器的写延时为60ns。PCI总线标准吸引人的地方不仅是其高速度,更在于它适应了当代I/O设备对系统的要求,对PCI扩展卡及器件能进展全自动配置,并且只需很少的接口逻辑就可以实现并支持其他总线系统。TMS320C6211的HPI口不支持PCI总线的无缝接口。本系统中采用TI公司的PCI2040来实现DSP的HPI与PCI总线的连接。DSP处理后的数据经HPI口输出到PCI2040进展解码,然后输出到PC
14、I总线上。其逻辑构造图如图3所示。img=450,350e-ewk2004/fileupload/images/127465332136093750.gif/imgPCI2040是TI公司设计的专门用来完成C5000系列和C6000系列DSP和PCI总线进展接口的专用芯片。PCI2040符合PCI部分总线2.2标准,可以方便的实现PCI总线与TMS320C54X或者TMS320C6XDSP的HPI断口的无缝连接。PCI2040可以兼容3.3V和5V,以适应不同的PCI总线电压。PCI2040与C6211之间不需要进展信号的电平转换,也不需要额外的控制逻辑电路,因此接口电路特别简单。在本系统中,
15、PCI2040上存在2种电压:5V和3.3V,其中3.3V是HPI口电压,而5V是PCI总线电压。PCI2040在启动时需要对其PCI总线存放器和HPI存放器参数进展预加载。系统中PCI解码模块包括一块配置ROMAT24C08A,属于EEPROM型ROM,便于对配置参数的修改和晋级。当系统启动时,存储在AT24C08A的数据被下载到PCI2040的存放器中并进展配置。图中/HINT3:0、/HCS3:0、HRDY3:0、HRST3:0分别与4片DSP中的相应信号相连,即PCI2040可以同时与4片DSP接口。3PCI总线驱动实现方法在系统软件方面,基于PCI总线的图像处理系统面临的难点颇多,其
16、中难度最大的是PCI驱动问题。为说明怎样在Windows操纵系统下实现PCI总线的驱动,还需理解PCI设备的配置空间系统。PCI设备有3种物理存储空间:配置空间、存储器空间和I/O空间。配置空间是长度为256字节的一段连续空间,空间的定义如图4。在配置空间中只读空间有设备标识、供给商代码、修改版本、分类代码以及头标类型。其中供给商代码用来标识设备供给商的代码;设备标识用来标识某一特殊的设备;修改版本标识设备的版本号;分类代码用来标识设备的种类;而头标类型用来标识头类型以及是否为多功能设备。除供给商代码之外,其他字段的值由供给商分配。基地址存放器最重要的功能是分配PCI设备的系统地址空间。在基地
17、址存放器中bit0最低位用来标识存储器空间还是I/O地址空间,基地址存放器映射到存储器空间时bit0为“0,映射到I/O地址空间时bit0为“1。3.1Windows环境下驱动程序驱动程序可以理解为一系列控制硬件设备的函数。在Windows操纵系统中,封装驱动程序的方法是制作一个DLL或者VxD。当硬件是非标准设备时,必须针对特定的硬件来设计Windows环境下的设备驱动程序。在DOS操纵系统,对于一个应用程序而言它总以为自己是唯一运行的程序,因此应用程序可以直接访问硬件,独占所有的系统内存以及系统运行时间,当然也就不需要设备驱动程序。但到了Windows操纵系统,系统中同时可能有假设干个应用
18、程序在运行,这就使得系统不可能让它随意的直接访问硬件,否那么就会引起应用程序访问冲突而导致系统崩溃。为解决这一问题,人们提出将系统的资源虚拟化,让应用程序运行在一个虚拟定环境中的虚拟机VM上,而治理程序和驱动程序运行在实际机器上Ring0级,由它们来处理针对硬件的操纵。虚拟资源是硬件甚至软件资源的仿真,当系统虚拟了所有或几乎所有的程序可以访问的资源时,它就创造了一个“虚拟机VM。Windows虚拟机完全透明的仿真了以下资源和性能:1可访问的内存空间2I/O操纵3中断操纵4外围设备显示器、键盘等如此以来,Windows应用程序在Ring3级最低级的保护形式上运行,不能直接访问硬件,执行一个对硬件
19、的操纵就会引起一个异常事件,此时处理器切换到Ring0级,并且将控制权交给相应当控制器。所有Windows应用程序共享一个系统虚拟机。Windows主要根据页错误机制实现对存储器映射设备访问的虚拟化。要捕捉对某个设备内存的访问,设备VxD驱动程序会将页表中对应于相应当内存页标注为“不可用。当在虚拟环境中运行的程序试图访问这个页时,会产生一个错误。VM的异常处理器会调用已注册的设备VxD驱动程序的页错误处理器进展相关处理,即当VM访问该端口时产生异常时进入该硬件的回调处理器,由我们自己编写的函数进展处理。3.2各种驱动程序比拟常见的驱动程序包括三种:VxD,KMD和WDM。1VxD:虚拟设备驱动
20、程序,是系统用于各种硬件资源识别、治理、维护运作的扩展。VxD和VMM一起维持着系统的运作。VxD运作组Intel系列CPU保护形式下的Ring0,拥有对硬件的最高控制权。2KMD,KernelModeDriver。它是WindowsNT下提出的治理、维护硬件运作的驱动程序形式。该Driver运行于WindowsNT的Kernel形式下类似于Ring0。但一个KMD的运行环境在不同的时候是根本不同的,Driver收到设备恳求时的运行环境很可能和设备恳求实际操纵的运行环境根本不同,因此在WindowsNT下Driver的运作受到WindowsNT本身的很多限制。3WDM,Win32DriverM
21、odel。它可以和Windows2000兼容,MS力推的全新的驱动程序形式,它实际也可以理解为一个即插即用的KMD。WMD代码很长,Windows98对WDM支持有限,因此WMD难以一时取代VxD。3.3PCI2040驱动程序开发PCI2040不是标准的硬件设备,因此必须自己编写PCI2040的硬件安装信息文件和驱动程序。PCI2040配置空间如附表:img=321,273e-ewk2004/fileupload/images/127465332311562500.gif/img其中设备ID用以标识特定的设备,详细的代码由供给商来分派;供给商ID用以说明设备的制造者,这二者是识别PCI设备的唯
22、一标识。对于PCI2040来讲,当读VendordeviceID时,返回值为AC60104C。1设备信息安装文件设备信息安装文件.INF包含了驱动程序的名称、驱动程序应该复制到的目录,以及在驱动程序安装时必须生成和修改的注册表入口。在编写INF文件时,可以使用了VtoolsD开发包中的INFEditor工具,以下是我所编写的PCI2040安装信息文件。VersionSignature=$CHICAGO$fileC:WindowsSystemtarget=_blankfileC:WindowsSystem目录下Manufacturer%String1%=SECTION_0SECTION_0%St
23、ring2%=sevenstar,PCIVEN_104C&DEV_AC60sevenstarCopyFiles=CopyFiles_sevenstarAddReg=AddReg_sevenstarCopyFiles_sevenstarDSP_PCI_Bridge.vxdfile驱动程序的名称为AddReg_sevenstarHKR,DevLoader,0,DSP_PCI_Bridge.vxdfile在注file册表中添加相关信息sevenstar_LogConfigConfigPriority=NORMALIRQConfig=3,7,9,10,15file指定PCI2040可file选的中断口
24、ControlFlagsSourceDisksNames1=pci2040驱动盘,0000-0000SourceDisksFilesDSP_PCI_Bridge.vxd=1StringsString0=TexasInstrumentsString1=TIString2=“PCI桥接2VxD的创立Windows支持静态安装和动态安装VxD,前者是在Windows初始化时安装VxD并一直保存在Windows中,后者是在一个应用程序或者其他VxD的控制下安装和卸载。静态安装的VxD始终占用着一定的内存资源以及中断口,假设不是一直运行,那么导致了资源浪费。在使用QuickVxD开发VxD只需在Dyna
25、micallyLoadable选项中打勾就行了,其中DeviceName是指我们的VxD的设备名,每个VxD都有设备名这儿是指PCI2040芯片,DeviceID是用来标识设备,只有当该VxD需要提供对其他VxD的调用入口时才用,且不能任意取应该由Microsoft公司提供,一般情况直接用UNDEFINED_DEVICE_ID就行了,DeviceInitializationOrder确定Windows对VxD的安装顺序,比方你想要你的VxD先于VDD初始化就应该设置为VDD_INIT_ORDER-1,一般情况也使用默认值。4完毕语图像处理系统实现的关键在于怎样对大容量的信息进展暂存、压缩和传输等问题进展处理。本系统的实现很好的解决了这三个难题。在图像信息暂存方面充分利用了DSP存储空间的可扩展性,保证了系统可暂存的信息量足够大;信息压缩是DSP的最擅长做的事情,可以在很短的时间内完成大量的信息压缩工作;PCI总线的引入保证了信息在足够的带宽下进展快速传输。