天天加油 - 助您成才
基于PCI总线的双DSP系统及WDM驱动程序设计
您正在看的电子通信论文是:基于PCI总线的双DSP系统及WDM驱动程序设计。

摘要:介绍了PCI总线控制芯片PCI2040的功能及内部结构,分析了基于PCI总线的双DSP通信的硬件结构及实现方法,并描述了利用Windows2000 DDK开发WDM设备驱动程序的方法及PCI双DSP通信驱动程序主要模块的设计方法和编程注意要点。

    关键词:PCI总线 PCI2040 DSP DDK WDM

TI公司专门推出了PCI2040桥芯片是专门针对PCI总线和DSP接口用的,本文利用它和DSP来处理视频信号,并用双端口RAM实现DSP之间的数据传输。

1 硬件设计

1.1 PCI总线控制芯片PCI2040

PCI总线是一种不依附于某个具体处理器的局部总线,它支持32位或64位的总线宽度,频率通常是33MHz,目前最快的PCI2.0总线工作频率是66MHz。工作在33MHz、32位时,理论上最大数据传输速率能达到133MB/s。它支持猝发工作方式,提高了传输速度,支持即插即用,PCI部件和驱动程序可以在各种不同的平台上运行[1]。

实现PCI总线协议一般有两种方法,一是用FPGA设计实现,但PCI协议比较复杂,因此难度较大;二是采用PCI总线控制芯片,如AMCC公司的S5933、PLX公司的PCI9080等通用的PCI接口芯片。TI公司专门推出了针对PCI总线和DSP接口的芯片PCI2040[2],它不但实现了PCI总线控制的功能,而且提供了和DSP芯片无缝的接口,因而大大简化了系统设计的复杂度并缩短了开发时间。

PCI2040是一个PCI-DSP桥接器件,它提供了PCI局部总线和TMS320C54X 8位主机接口(HPI)与TMS320C6X 16位主机接口的无缝连接。一片PCI2040最多能同时挂接4片DSP芯片。同时,它还提供了一个串行EEPROM接口,一个通用输入输出接口(GPIO)和一个16位通用总线接口(为TI JTAG测试总线控制器提供接口)[2]。PCI2040只能作为PCI目标设备使用,不能作为PCI主设备使用;它只支持单字的读写,不能提供DMA操作。PCI2040能够兼容3.3V和5V信号环境系统中的3.3V和5V信号可以直接从PCI插槽中获得。

PCI2040和TMS320C6201的接口如图1所示。

1.2 PCI2040寄存器说明

PCI2040桥256字节的配置头如图2所示,HPI CSR 基地址、控制空间基地址(Control Space Base Address)值都是系统自动分配的。所有的PNP器件都是如此它将控制空间映射到主机内存,映射的空间大小为32KB。4片DSP芯片的选择是通过解码PCI_AD14、PCI_AD13来实现的,其对应关系如表1所示。而DSP HPI寄存器的地址则是由PCI_AD12和PCI_AD11来决定的,其对应关系如表2所示。

图1 PCI2040和TMS320C6201的接口

表1 DSP选择

AD[14:13]

TMS320C6x DSP

00

HCS0(选择第一块DSP)

01

HCS1(选择第二块DSP)

10

HCS2(选择第三块DSP)

11

HCS3(选择第四块DSP)

表1 HPI寄存器映射

AD[12:11]

TMS320C6x HPI Register

00

HPI控制寄存器

01

HPI地址寄存器

10

HPI自增数据寄存器

11

HPI数据寄存器

因此,DSP与主机交换数据的过程,也就是读写HPI寄存器的过程。也就是说,通过主机访问DSP板上资源,只需要将相应地址赋予HPIA寄存器中,然后读写数据就可以通过HPID寄存器。具体描述如下:

(1) 初始化PCI2040内部配置寄存器,指向特定的DSP(因为本系统有两块DSP和PCI2040相连),指定数据传输宽度为16位。

(2) 分配HPI CSR基地址和控制空间基地址,允许PCI2040进行内存映射或I/O端口映射。值得注意的是,PCI2040控制空间只能映射在主机的内存空间里,不能映射在I/O空间。以上两步都由驱动程序完成。

(3) 脱离复位状态后,PCI2040解码从PCI总线来的地址,以此来做出响应。若落入32KB的控制空间中,则根据PCI_AD12、PCI_AD11及PCI_AD14、PCI_AD13片选情况访问相应HPI寄存器。

(4)设定HPI控制寄存器中的BOB位,选择正确的高低16位排列方式。

(5)主机开始对HPI寄存器进行读写。

1.3 双DSP系统硬件设计

本文所采用的双DSP系统主要用来处理视频信号及高速数据采集,该系统是基于TMS320C6201 DSP和PCI2040而设计的。此卡的主要功能是:(1)采集视频信号或其他模拟信号经A/D转换后,交给DSP进行相应处理,然后将处理后的数据通过PCI2040经PCI总线存放在计算机硬盘上或者直接存储到板上RAM中,然后通过PCI总线将视频数据传送到主机后显示。(2)两块DSP之间的通信可以通过McBSP或双端口RAM。

该系统的特点有:两块TMS320C6201 DSP,处理能力可达3200MIPS;每片C6201带512K SBSRAM,256KB FLASH;16KB高速双口RAM用于两块C6201之间进行数据交换;12位ADC;32位高速FIFO。系统硬件框图如图3所示。

2 基于WDM的PCI驱动程序设计

WDM是新一代的驱动程序构架,它是一个跨平台的驱动程序模型,在Windows 98以上的操作系统中都实现了全面兼容。不仅如此,WDM驱动程序还可以在不修改源代码的情况下经过重新编译后在非Intel平台上运行,因而为驱动程序开发人员提供了极大的方便。

WDM驱动程序是分层的,即不同层上的驱动程序有着不同的优先级,而Windows 9x下的VxD则没有此结构。另外,WDM还引入了功能设备对象FDO(Functional Device Object)与物理设备对象PDO(Physical Device Object)两个新概念来描述硬件。PDO代表实际存在的硬件设备,它是在总线驱动程序(BUS DRIVER)下枚举并建立的,负责与真实硬件进行I/O操作。FDO是由用户驱动程序建立的,一般来说,它是用户与真实硬件进行I/O操作的一个窗口,是Win32赖以沟通内核的一个桥梁。对于驱动程序开发者,真正需要做的就是开发FDO。至于PDO,则由BUS DRIVER建立,并在需要的时候作为参数由I/O Manager或其它系统组件传给你的FDO。

在应用层与底层进行通讯时,操作系统为每一个用户请求打包成一个IRP(IO Request Packet)结构,将其发送至驱动程序,并通过识别IRP中的PDO来识别是发送给哪一个设备的。另外,WDM不是通过驱动程序名称,而是通过一个128位的全局惟一标识符(GUID)来识别驱动程序的[3]。

WDM驱动程序都有一个初始化入口点,即DriverEntry,它相当于C语言中的main函数。当WDM驱动程序被装入时,内核调用DriverEntry例程。另外WDM设备驱动程序还需要一个即插即用模块,即AddDevice。AddDevice例程就是PnP管理器在用户插入新设备时调用它来创建WDM设备对象的。

本文主要采用Windows2000 DDK来设计该驱动程序。调试工具为SOFTICE。驱动程序的主要工作集中在:

(1)DriverEntry(),这是驱动程序的入口点,驱动程序被装入时首先执行DriverEntry例程。主要工作是建立驱动程序这所需的函数。

(2)dspPciAddDevice(),在这个例程里驱动程序主要是创建设备。

(3)dspPciPnp(),在这个例程中驱动程序主要是启动设备和停止设备等,并且从PnP管理器读出为双DSP所分配的硬件资源,包括HPI CSR基地址和HPI控制空间基地址,对PCI配置空间进行初始化。初始化中断等。需要注意的是,在初始化中断之前禁止卡向主机发中断,因此应有屏蔽中断的操作。

(4)dspPciDeviceControl(),在这个例程中可以定制自己的函数来达到Ring3层和Ring0层相互通讯的目的。通过IOCTL_CODE可以区分不同的请求。

(5)Isr_Irq(),这个例程是用来处理中断的。Windows 2000的中断处理机制是假定多个设备可以共享一个硬件中断。因此,Isr的首要工作就是找出哪一个设备发生了中断。如果没有,则应该立刻返回FALSE,以便HAL能把中断送往其它设备驱动程序。中断服务例程Isr执行在提升的IRQL上,在DIRQL级别上运行的代码需要尽可能快地运行。通常情况下,若判断中断是由自己的设备产生的,则调用一个在DISPATCH_LEVEL级别上运行的延迟过程调用(DpcFor_Irq)。

注意:当确定是自己卡的中断时,要马上屏蔽中断位防止中断再进来,等到DpcFor_Irq的结尾处再开中断。

3 结论

通过上述的软硬件设计,成功实现了预期的目标。高效的利用DSP高速处理能力。

排行

  1. 单片机控制的数字触发器
  2. 新世纪会计的发展趋势
  3. 利用DVI实现双屏幕超宽图像显示
  4. 城乡交通灯控制系统电路设计
  5. 2.4GHz DSSS收发器芯片组RFW320原
  6. 智能无线防盗系统的设计
  7. IPM驱动和保护电路的研究
  8. C8015F041在智能功率柜中的应用
  9. 一种新型的电子点菜系统
  10. VPN技术综述及应用
  11. 射频SoC nRF9E5及无线数据传输系
  12. 一种实用的中频数字接收机设计
  13. 浅谈智能小区宽带接入及其技术发
  14. 发展私营建筑经济的思考
  15. 一种新颖的无源无损缓冲电路的分
  16. 系统级RF芯片nRF24E1收发原理与应
  1. 2.4GHz DSSS收发器芯片组RFW320原
  2. 利用DVI实现双屏幕超宽图像显示
  3. 一种实用的中频数字接收机设计
  4. 三峡大坝混凝土快速施工方案及工
  5. 一种用RBF神经网络改善传感器测量
  6. 水土保持发展的战略目标及建议
  7. 新世纪会计的发展趋势
  8. 《可再生能源开发利用促进法》对
  9. 系统级RF芯片nRF24E1收发原理与应
  10. 基于单片机的实时传真信息监测系
  11. 一种基于铁电存储器的双机串行通
  12. 基于LabVIEW的USB实时数据采集处
  13. 一种数码相机成像和视频处理前端
  14. Protel软件在高频电路布线中的技
  15. 室内设计七大新趋势
  16. CTE翻板型滤池
  1. 新世纪会计的发展趋势
  2. VPN技术综述及应用
  3. 红外通讯协议在嵌入式系统中的实
  4. 提供 64 级对数调光的白光 LED 驱
  5. 一种基于铁电存储器的双机串行通
  6. 深化环境资源法学研究 促进人与自
  7. 环保自力救济性质分析与对策研究
  8. ADC信噪比的分析及高速高分辨率A
  9. 可视化编程串行控制中文字库液晶
  10. 利用DVI实现双屏幕超宽图像显示
  11. 国外加强环境法实施和执法能力建
  12. 一种用RBF神经网络改善传感器测量
  13. 系统级RF芯片nRF24E1收发原理与应
  14. 基于单片机的实时传真信息监测系
  15. 嵌入式系统应用设计应关注MPW
  16. 基于LabVIEW的USB实时数据采集处

最近更新

  • 推荐阅读
  • 电子通信论文《基于PCI总线的双DSP系统及WDM驱动程序设计》基于PCI总线的双DSP系统及WDM驱动程序设计