基于PCI总线DSP数据采集系统设计_第1页
基于PCI总线DSP数据采集系统设计_第2页
基于PCI总线DSP数据采集系统设计_第3页
基于PCI总线DSP数据采集系统设计_第4页
基于PCI总线DSP数据采集系统设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第25卷第8期2006年8月国外电子测量技术Foreign Elect ronic Measurement TechnologyVol.25,No.8Aug.,2006 作者简介:赖晓斌(1978-,男,西南石油大学硕士研究生,主要研究方向为DSP 应用系统及数据采集。研究与设计基于PCI 总线DSP 数据采集系统设计赖晓斌胡泽赖欣(西南石油大学成都610500摘要:文中提出基于PCI 局部总线DSP 通用数据采集系统设计方案,该方案采用TMS320VC5416作为外围核心处理单元,PCI2040作为PCI 桥芯片,TL V1572作为数据转换器通过软件开发实现数据采集,具有高速度,低成本的优

2、点。给出PCI 接口硬件设计方法及关键点,介绍基于Windows2000操作系统的WDM 驱动程序的结构及原理,驱动程序的基本功能的实现方法及应用程序与驱动程序的通信技术,介绍了实现DSP 自启动的方式。关键词:PCI 总线DSP 数据采集WDM 驱动程序Design of data acquisition system based on DSP and PCILai XiaobinHu ZeLai Xin(S out hwest Pet roleum Universit y ,Cheng du610500Abstract :The article p resent s a universal

3、 system of data acquisition and p rocessing based on PCI bus and digital signal processor.In t his system ,TMS320VC5416is applied as a perip heral process 2ing unit ,PCI2040as PCI 2DSP is used as bridge ,and TL V1572as analog 2to 2digital converter (ADC .Data acquisition is achieved by software prog

4、ram.It has many characteristics ,such as high speed and low cost.Design of PCI interface is int roduced.It focus on t he WDM s framework and p rinciple ,t he implementation way of t he basic f unction of t he device driver and t he communication between t he application program and device driver bas

5、ed on Windows2000operating system.K eyw ords :PCI bus ,DSP ,data acquisition ,WDM driver.0引言PCI 总线是高性能32/64位地址数据线复用的外部总线,可以支持多种外围设备,其设计是独立于处理器,为CPU 及高速外围设备的通信提供一座桥梁,提高数据传输率。此外,PCI 总线采用线性突发的数据传输模式,确保总线不断满载数据,完全兼容现有PC 机软硬件能力。因此在CPU 与高速缓存,高速图像处理及高速数据采集等需要高速传输信息的场合得到广泛应用。本文介绍的基于PCI 总线和DSP 数据采集系统主要包括数据采集

6、、数据交换及显示。文中主要讨论数据的采集,PCI 与DSP接口,WDM 驱动程序设计,以及应用程序的设计。1系统总体方案如图1所示,数据采集和处理部分都集成在一图1系统总体方案块PCI 插卡上,采用TI 公司的PCI 转用接口芯片PCI20401实现PCI 总线协议,以半双工模式完成主机与DSP 之间的数据交换。考虑到数据采集卡的适用性与设计的灵活性,A/D 采用了TI 公司的单通道10位串行A/D 转换器TLV1572;DSP 选用了目前C54X 系列中性能较高的单核处理器TMS320VC54162。由于TL V1572能与DSP 的McBSP 实现直接连接,只是要注意在布局的时候需尽量远离

7、DSP 器件,A/D 转换后的数据到达串口后由DSP 读取并存到软件指定的存储区域,供需要的器件读取;DSP 作为PC 机与外界之间的协处理器对数据进行处2006年第8期赖晓斌等:基于PCI总线DSP数据采集系统设计33理,将采集得到的数据处理后送往PC机。2系统的总线接口设计及实现PCI总线3具有高性能、线性突发传输、极小的存取延误、不受处理器限制、适合各种机型、兼容性强、低成本高效益等优势,在嵌入式计算机和工业控制计算机方面具有广泛的应用前景。PCI总线协议有两种实现方式。(1利用总线接口的专用芯片实现协议,常见的是AMCC公司的S5933,PL X公司的PCI90xx系列,以及Texas

8、 Inst rument s公司的PCI2040等,这种方法实现相对简单,而且非常可靠。(2使用FP GA实现总线协议。将PCI core导入到FP GA中,或者可以完全定制。这种方法的成本相对低廉,但是一次购买PCI core的价格比较高。如果自己定制,复杂程度很大,而且可靠性不容易得到保证,开发难度很大。本文中的PCI接口采用第一种方式。虽然常用的专用接口芯片如S5933,PL X9052/9054等的应用比较成熟,但是不便于与DSP连接,因此本系统采用由美国TI公司生产的PCI2040。它能与TI公司的DSP进行无缝连接,无须进行任何电平或逻辑转换,不但加快了开发速度,且提高了系统的稳定

9、性和抗干扰能力。PCI2040与DSP及PCI插槽金手指之间的连接比较简单,需要注意的是PCI卡的电源设计与布局布线的要求:(1电源部分:每个Vcc引脚上必须要有电源对地的去耦电容,且容量至少为0.01F以保证对地去耦。(2布局布线要求:所有32位接口信号的最大走线长度为1.5英寸;系统上时钟信号CL K走线长度为2.5±0.1英寸;与金手指相连的PCI元件其引脚电容必须小于10p F以保证信号的完整性。只有满足上述限制约束条件,才能保证系统信号的完整性,满足PCI局部总线的电气规范,系统才能稳定的工作。3系统的WDM驱动程序设计43.1WDM驱动程序结构及原理5在PCI设备的WDM

10、模型中,每个硬件设备至少有两个驱动程序,底层的总线驱动程序由操作系统实现,负责管理硬件与计算机的连接。上层的功能驱动程序,它了解有关硬件工作的所有细节,知道如何控制设备的主要功能,需要处理PCI设备的初始化,PCI设备的内存,端口的读写,中断处理和DMA数据传输等,实现PCI设备的功能,因此PCI 设备功能驱动程序是标准的WDM设备驱动程序。WDM驱动程序是分层的,在不同层上的驱动程序有不同的优先级,同时它还提供了一个128位的全局唯一标识符GU ID来识别驱动程序。另外, WDM还引入了功能设备对象FDO与物理设备对象PDO两个新概念来描述硬件,其中FDO是设备功能驱动程序中的代表,PDO是

11、系统中的代表。开发驱动程序实际上就是开发FDO。3.2驱动程序基本功能的实现6在Windows2000操作系统环境下,驱动程序主要用Windows2000DD K与VC+6.0进行设计, DriverSt udio2.7对DD K进行了封装后,利用向导可以生成驱动程序框架,大大提高开发速度和效率。当驱动程序被载入时,内核调用驱动程序全局初始化例程Driver Ent ry;当用户插入新设备时,调用AddDevice例程用以创建WDM设备对象;在PnP启动例程OnStartDevice中,驱动程序初始化KMemoryRange与KIo Range类实例,顺序分配基地址寄存器分别对应于PCI204

12、0操作寄存器的内存映射地址与I/O映射地址,实现设备卡配置空间的分配以达到系统识别和资源分配的目的。DriverWorks的KPciConfiguration类封装了访问PCI设备配置空间的所有操作。首先初始化这个类的实例:KPciCo nfiguration PciConfig(m_Lower.TopOf2 Stack(;初始化完后就可以利用成员函数ReadBaseAd2 dress/WriteBaseAddess读写基地址寄存器了。DriverWorks的KIo Range类封装了端口访问的操作。首先创建实例:KIo Range m_Io Por2 t Range0;再用类实例中初始化函数

13、来初始化这个实例:N TSTA TU S stat us=m_Io Port Range0.Initialize (p Reslist Translated,p Reslist Raw,PciConfig.BaseAddressIndex ToOrdinal(0;34国外电子测量技术第25卷初始化是否成功可以通过检查返回值来判断:if (N T_SUCCESS(stat us初始化成功Else失败;成功初始化后就可以调用KIo Rang类成员函数inb(/out b(等,从端口读写数据。如:m_Io Port Range0.inb(UNLON G ByteOff set,PUCHAR Buff

14、er,ULON G CountDriverWorks的KMemoryRange类封装了内存访问的操作。他的操作和I/O端口的访问相类似。首先创建实例:KIo Range m_Memoryt Range0;再用类实例中初始化函数来初始化这个实例:N TSTA TU S stat us=m_Memoryt Range0.Initial2 ize(p Reslist Translated,p Reslist Raw,PciConfig.BaseAddressIndex ToOrdinal(0;初始化是否成功可以通过检查返回值来判断:if (N T_SUCCESS(stat us初始化成功Else失败

15、;成功初始化后就可以调用KMemo2 ryRange类成员函数inb(/out b(等,从内存读写数据。如:m_Memoryt Range0.inb(UNLON G ByteOff set,PUCHAR Buffer,ULON G Count3.3驱动程序、应用程序与DSP之间的通信在驱动程序中,利用DriverW orks的生成向导时填写的控制代码,在驱动程序中就可以生成如下代码: #define PCI2040_READ_HPI_CSR CTL_CODE (FIL E_D EV ICE_UN KNOWN,0x800,M ET HOD_BU FFERED,FIL E_AN Y_ACCESS然

16、后在设备类中定义该代码的IRP函数:如N TSTA TU S PCI2040_READ_HPI_CSR_Handler (KIrp I;接着在设备类的实现函数中处理来自设备控制请求的句柄,如virt ual N TSTA TU S DeviceCont rol(KIrp I; case PCI2040_READ_HPI_CSR_Handlerstat us=PCI2040_READ_HPI_CSR_Handler (I;break;最后实现设备请求的句柄函数:如N TSTA TU S PCI2040Device:PCI2040_READ_ HPI_CSR_Handler(KIrp I;通过以上

17、的步骤就在驱动程序内部建立了处理来自设备的IRP的流程。在win2000中,应用程序与WDM驱动程序实现通信的过程是:应用程序首先用HANDL E OpenByInterface(GU ID3p Class Guid,DWORD instance,PDWORD p Error打开设备句柄,接着用CreateFile函数通过GU ID接口或者符号连接名打开设备,然后在应用程序中利用DeviceIoControl函数调用控制代码就可以和WDM进行双向通信了,包括从WDM中读取数据及输出数据给WDM两种情况,也可以用ReadFile从WDM中读数据或者用WrireFile写数据给WDM,当应用程序退

18、出时,用Clo se Handle关闭设备。PCI2040作为PCI与DSP的接口芯片,驱动程序及DSP的操作都面向PCI2040,PCI2040为WDM提供了内存映射HPI控制与状态寄存器(CSR;面向DSP的H PI寄存器,C5416提供了增强型的H PI8接口,微机作为Host可以通过HPIA 地址寄存器、HPID数据寄存器和H PIC控制寄存器实现对DSP的片内空间的完全访问。由于PCI2040将DSP中的HPIA,HPID, HPIC都通过内存映射的方式映射到了内存,通过驱动程序和应用程序之间的配合及以上建立的驱动程序和应用程序通信的流程,在应用程序中只要有读写H PI的设备请求的句

19、柄,驱动程序就可以自然的处理这些句柄即对DSP的HPI的3个寄存器进行读写了。4DSP的自启动C5416的在片内ROM内含有DSP系统的自举加载BootLoader程序,系统上电后按照Boot2 Loader可将代码以多种方式送入DSP片内高速程序空间执行。具体实现方法是:首先通过CCS将满足要求的程序编译成可执行程序.out文件,然后用TI公司提供的转换程序将该程序转换成.dat文件,最后利用烧录程序通过仿真器将程序烧录到扩展空2006年第8期赖晓斌等:基于PCI总线DSP数据采集系统设计35间FL ASH中去,当DSP上电的时候BootLoader 程序会自动的将程序通过并口读到高速内存进

20、行全速运行。5结论通过以上的设计,搭建了一个初步的DSP&PCI 硬件应用平台,并在该平台上实现数据的采集。在该平台的基础上,通过开发功能各异的M FC 应用程序,WDM驱动程序,DSP应用程序,可以实现丰富的功能。通用功能建成函数库,又可以较方便的开发数据压缩,语音压缩存储等新功能,适应目前系统集成开发的通用性和可复用性,突出了系统集成中软件开发的重要性。参考文献1PCI2040PCI2DSP Bridge Controller Data ManualM.Texas Instruments Incorporated,1999.2TMS320VC5416Fixed2Point Digi

21、tal Signal ProcessorZ.Texas Instruments Incorporated,2001.3李贵山,戚德虎.PCI局部总线开发者指南M.西安:西安电子科技大学出版社,2000.4尹勇,李宇.PCI总线设备开发宝典M.北京:北京航空航天大学出版社,2005.5Windows2000WDM驱动程序设计OL.www.cctr. detail.asp?id=8622k231k.6Microsoft Windows2000Driver Development Kit Doc2umentM.Microsoft,2000.333333333333333333333333333333

22、3333333333333333 Agilent8960无线测试仪为3G开发商提供全新的H SDPA包数据测试和双小区仿真能力安捷伦科技公司宣布,针对Agilent W2CDMA/ HSDPA和GSM/GPRS/EGPRS实验室应用推出多种先进的3G解决方案,并将通过Agilent8960无线测试仪来提供。这些解决方案可帮助研发工程师和集成工程师在保证原有设计性能水平的同时,尽快将产品推向市场。目前,8960W2CDMA/HSPDA实验室应用可以支持FRC通道,包括同时支持RB和FDD测试模式能力。还将发布针对该产品的多项增强特性,其中包括:端对端数据连接能力,它将使用户能够建立一条采用HSPDA的IP数据通道,在测试台上仿真最终用户的应用体验;HSDPA数据吞吐量监视器,使设计师可通过数据通道查看实时数据速率。无线协议分析软件(Wireless Protocol Advisor还会增加对HSDPA的支持。这独特的实时分析工具可以快速确定和解决最难处理的协议问题。Agilent8960的HSDPA包数据通道,使开发商能够测试HSDPA应用的功能和HSDPA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论