TMS320C6412PCI总线技术探究
TMS320C6412PCI总线技术探究 摘要本文介绍了在Windows2000/xp操作系统 下,使用DriverStudio软件编写WDM模式的驱动程序,通 过TMS320C6412的PCI接口,在PC机上实现了 DSP信号处 理程序的加载,启动,复位等功能,完成DSP系统与PC机 之间控制与通讯。 关键词PCI 总线; WDM 模式;DriverStudio; TMS320C6412; DSP 系统 Research on PCI bus technology TMS320C6412 Li Ming-ye, Zhou Jing 51st Research Institure of CETC, ShangHai 201802 Abstract This article describes the use DriverStudio in Windows2000/xp operating system software to write the driver of the WDM model, through the PCI interface of TMS320C6412 DSP signal processing program on a PC to load, start, reset, etc. , complete DSP systemcontrol and communications between the PC. Key words PCIBus ; WDM ; DriverStudio ; TMS320C6412; DSP System 0引言 在雷达领域的信号处理中,最费时间,即影响信号处理 实时性的瓶颈是数据处理部分。数字信号处理器digital signal processor简称DSP在模拟信号变换成数字信号以 后进行高速实时处理的专用处理器,是实现实时数字信号处 理的有力工具。在本文描述的工程应用中,把数据处理部分 从PC机的软件中分离出来,由PC机通过PCI接口把信号数 据信息传输到DSP,交给DSP处理,然后把处理好的结果再 传给PC机,这样不仅可以做到信号处理和数据管理并行进 行,而且充分利用DSP对数字信号处理高速,并行的优势, 提高了信号处理系统的实时性和稳定性。要实现以上功能, 首先要解决好DSP信号处理模块与PC机之间的通讯问题。 TMS320C6412提供的PCI总线接口以PCI总线特有的较高数 据传输能力,通用性强等优势,大大提高了 DSP信号处理机 的性价比和可维护性,有利于解决信号处理机与主机间数据 通讯的10瓶颈。 在window2000/XP系统下,为实现系统的稳定性和可靠 性,只有在内核模式下,通过驱动程序对硬件进行访问。信 号处理系统的用户软件要通过TMS320C6412的PCI接口实现 与DSP信号处理模块的通讯,就需要编写驱动程序。由于驱 动程序涉及的面比较广,加上市面上系统地描述该方面的文 章较少,一度公认为是技术难点。本文从应用角度出发,通 过实例详尽描述了利用DriverStudi。开发工具包,开发 TMS320C6412的PCI总线驱动程序的具体实现,完成PC机上 的应用程序与DSP信号处理机之间的相互通讯。 1 TMS320C6412芯片简介 TMS320C6412是TI公司目前速度最快的第六代DSP定点 系列的产品之一,采用了高性能,先进的VelociTI. 2结构 的DSP核,其主频为1.1GHz,使其最大处理能力可达到 9000MIPS,专门设计的 Master/Slave PCI Interface 硬件 外围,极大地方便了 DSP与PC机之间的通讯。TMS320C6412 的PCI接口支持如下主要特征 1 符合PCI2. 2版本的规范; 2 PCI主/从接口; 3 以33MHz的时钟频率操作,采用32位数据总线,数 据传送率可高达132MB/S; 4 通过EMIF, PCI可访问所有片上RAM,外设和外部存 储器; 5 支持存储器读memory read,存储器写memory write, I/O 读,I/O 写; 6 在DSP程序控制下的PCI中断请求; 7 通过PCI I/O周期的DSP中断; 8 PCI复位时,多个配置寄存器由来自外部的串行 EEPROM初始化; 2驱动开发工具介绍 Windows2000/xp对驱动程序的编写不再基于以往的 Win3x和Win9x下的VxD 虚拟设备驱动程序结构,而是 基于一种新的驱动模型WDM Windows Driver Modelo WDM为Windows2000/XP操作系统的设备驱动程序的设计提供 了统一的框架。 在WDM驱动模型中,驱动程序是分层的,不同层上的驱 动程序有不同的优先级。另外,WDM还引入了功能设备对象 FD0 Function Device Object 与物理设备对象 PDO Physical Device Object两个新类来描述硬件,一个PDO 对应一个真实的硬件。一个硬件只允许有一个PDO,却可以 拥有多个FD0,在驱动程序中直接操作的不是硬件而是相应 的PDO和FDOo WDM不是通过驱动程序名称,而是通过一个 128位的全局唯一标识符GUID实现驱动程序的识别。在 应用程序与WDM驱动程序通信方面,系统为每一个用户请求 打包形成一个I/O请求包IRP结构,并将其发送到驱动 程序,并通过识别IRP中的PD0来区别是发送给哪一个设备 的,内核通常通过发送IRP来运行驱动程序的代码。不久的 将来,在Windows平台上,WDM将成为主流的驱动模式。 开发WDM驱动程序有两种方法,一种利用微软提供的 98DDK和2000DDK驱动程序开发包,另外一种是专用驱动程 序开发工具,如这里选用的DriverStudio工具包.相比之 下,利用DriverStudio工具开发设备驱动程序结构清晰, 效率高,比微软提供的DDK工具简单,方便,开发周期短。 DriverStudio提供工具组件在对设备驱动程序的开发、除 错、测试、调整和部署,改善测试性能和程序的可靠性等方 面,给用户提供了极大的便利。 3应用实例分析 下面通过具体实例分析从主机端加载DSP信号处理程 序,到启动和复位DSP应用系统,完成DSP与主机之间控制 与通讯等功能的实现,并列出从驱动程序中摘录出具体的源 程序代码,详尽描述了驱动程序在window2000/XP操作系统 下的具体实现步骤和方法。驱动程序的总体功能框图如下 3. 1通过PCI接口加载DSP信号处理程序 在进行加载程序前,首先要形成DSP信号处理程序的 C0FF文件即*. out文件。如果当加载文件的起始位置加上 C0FF文件长度超过DSP映射空间的4MB的页边界时,特别要 注意跨页的处理。源程序代码如下 //dwBytes表示加载out文件的总字节数; //DSP_PAGE_MASK表示DSP中的一页的字节数; //dwDspAddr表示加载文件的起始位置; 〃判断加载