虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

DriverWorks

  • 5509a usb PC 驱动与测试程序,DriverWorks开发,测试通过,使用见说明.请编译.

    5509a usb PC 驱动与测试程序,DriverWorks开发,测试通过,使用见说明.请编译.

    标签: DriverWorks 5509a usb PC

    上传时间: 2017-09-28

    上传用户:时代电子小智

  • 基于FPGA的PCI软核模块的研究与实现.rar

    本课题是在课题组已实现的高速串行通信平台的基础上,进一步引伸,设计开源的PCI软核通信模块替代Xilinx公司提供的LogiCORE PCI核,力求在从模式下,做到占用资源更少,传输速度更快,也为以后实现更完整的功能提供平台。 本文以此为背景,基于FPGA平台,搭建以开源的PCI软核为核心的串行通信接口平台,使其成为PCI总线与用户逻辑之间的桥梁,使用户逻辑避开与复杂的PCI总线协议。本课题采用Spartan-II FPGA芯片XC2S200-6FG456C系统开发板作为串行通信接口的硬件实验平台,实现了支持配置读/写交易、单数据段读/写、突发模式读/写、命令/地址译码功能和数据传送错误检测与处理功能的PCI软核。 本文主要阐述了以PCI软核为核心的串行通信平台的实现,首先介绍了PCI软核的编程语言、软件工具和硬件实验平台Spartan-II FPGA芯片XC2S200-6FG456C系统开发板。然后,介绍了PCI总线命令、PCI软核所支持的功能、PCI软核两侧信号的定义、PCI软核配置模块以及探讨了PCI软核的状态机接收、发送数据等过程,分析了PCI软核的数据收发功能仿真,主要包括配置读/写交易、单数据段模式读/写和突发模式读/写的仿真图形,并阐述了管脚约束的操作流程。最后介绍PCI软核模块的WDM驱动,内容包括驱动程序简介、驱动程序的开发、中断处理、驱动程序与应用程序之间的通信以及应用程序操作。最后,对PCI软核的各种性能进行了比较分析。整个模块设计紧凑,完成在实验平台上的数据发送。 设计选用硬件描述语言VerilogHDL,在开发工具Xilinx ISE7.1中完成整个系统的设计、综合、布局布线,利用Modelsim进行功能及时序仿真,使用DriverWorks为PCI软核编写WinXP下的驱动程序,用VC++6.0编写相应的测试应用程序。之后,将FPGA设计下载到Spanan-II FPGA芯片XC2S200-6FG456C系统开发板中运行。 文章最后指出工作中的不足之处和需要进一步完善的地方。

    标签: FPGA PCI 软核

    上传时间: 2013-04-24

    上传用户:sc965382896

  • 基于FPGA的SCI串行通信接口的研究与实现.rar

    国家863项目“飞行控制计算机系统FC通信卡研制”的任务是研究设计符合CPCI总线标准的FC通信卡。本课题是这个项目的进一步引伸,用于设计SCI串行通信接口,以实现环上多计算机系统间的高速串行通信。 本文以此项目为背景,对基于FPGA的SCI串行通信接口进行研究与实现。论文先概述SCI协议,接着对SCI串行通信接口的两个模块:SCI节点模型模块和CPCI总线接口模块的功能和实现进行了详细的论述。 SCI节模型包含Aurora收发模块、中断进程、旁路FIFO、接受和发送存储器、地址解码、MUX。在SCI节点模型的实现上,利用FPGA内嵌的RocketIO高速串行收发器实现主机之间的高速串行通信,并利用Aurora IP核实现了Aurora链路层协议;设计一个同步FIFO实现旁路FIFO;利用FPGA上的块RAM实现发送和接收存储器;中断进程、地址解码和多路复合分别在控制逻辑中实现。 CPCI总线接口包括PCI核、PCI核的配置模块以及用户逻辑三个部分。本课题中,采用FPGA+PCI软核的方法来实现CPCI总线接口。PCI核作为PCI总线与用户逻辑之间的桥梁:PCI核的配置模块负责对PCI核进行配置,得到用户需要的PCI核;用户逻辑模块负责实现整个通信接口具体的内部逻辑功能;并引入中断机制来提高SCI通信接口与主机之间数据交换的速率。 设计选用硬件描述语言VerilogHDL和VHDL,在开发工具Xilinx ISE7.1中完成整个系统的设计、综合、布局布线,利用Modelsim进行功能及时序仿真,使用DriverWorks为SCI串行通信接口编写WinXP下的驱动程序,用VC++6.0编写相应的测试应用程序。最后,将FPGA设计下载到FC通信卡中运行,并利用ISE内嵌的ChipScope Pro虚拟逻辑分析仪对设计进行验证,运行结果正常。 文章最后分析传输性能上的原因,指出工作中的不足之处和需要进一步完善的地方。

    标签: FPGA SCI 串行通信接口

    上传时间: 2013-04-24

    上传用户:竺羽翎2222

  • 基于FPGA的PCIE1接口设计与实现.rar

    随着现代计算机技术、微电子技术的进一步结合和发展,可编程逻辑技术已成为当前电子设计领域中最具活力和发展前途的技术。通过采用FPGA/EDA技术,对通信卡的PCI接口、E1接口、外部逻辑电路进行集成,并利用目前通用计算机强大的数字信息处理能力,可大大简化CTI硬件的设计,降低制造成本,提高系统可靠性。 据此,本论文提出了基于FPGA/EDA技术的PCI-E1接口设计方法,文中对PCI总线接口、E1接口及两接口的互连等相关技术进行了深入分析,对各功能模块和系统进行了VHDL建模与仿真。 同时,论文还介绍了基于ALTERACyclone系列FPGA芯片的PCI-E1接口硬件平台的设计原理和基于DriverWorks的WDM驱动程序的设计方法。 本论文涉及的软件、硬件系统已经开发、调试完成。测试结果表明:1、论文所研究的PCI接口(主/从设备)在进行配置读/写、I/O读写、存储器读写及总线的猝发数据传送等操作中,各项性能符合PCI2.3规范的要求。 2、论文所研究的E1接口支持成帧和不成帧两种传输方式:在成帧模式下,信息的有效传送速率为31×64Kbit/s;在不成帧的模式下,信息的有效传送速率为2.048Mbit/s。E1输出口各项参数符合CCITT相关规范要求。 3、论文所研究的PCI-E1接口在与现网设备、模块的对接测试中,性能稳定。基于本论文的产品已经正式发布。国内部分厂家已对该产品进行了多方面的综合测试,并计划将其应用到实际的生产和研究中。 本论文对于CTI硬件的设计是一项尝试和革新。测试和应用证明该方法行之有效,符合设计目标,具有较广阔的应用前景。

    标签: PCIE1 FPGA 接口设计

    上传时间: 2013-06-02

    上传用户:wpwpwlxwlx

  • 基于FPGA的PCIE1接口设计与实现

    随着现代计算机技术、微电子技术的进一步结合和发展,可编程逻辑技术已成为当前电子设计领域中最具活力和发展前途的技术。通过采用FPGA/EDA技术,对通信卡的PCI接口、E1接口、外部逻辑电路进行集成,并利用目前通用计算机强大的数字信息处理能力,可大大简化CTI硬件的设计,降低制造成本,提高系统可靠性。 据此,本论文提出了基于FPGA/EDA技术的PCI-E1接口设计方法,文中对PCI总线接口、E1接口及两接口的互连等相关技术进行了深入分析,对各功能模块和系统进行了VHDL建模与仿真。 同时,论文还介绍了基于ALTERACyclone系列FPGA芯片的PCI-E1接口硬件平台的设计原理和基于DriverWorks的WDM驱动程序的设计方法。 本论文涉及的软件、硬件系统已经开发、调试完成。测试结果表明:1、论文所研究的PCI接口(主/从设备)在进行配置读/写、I/O读写、存储器读写及总线的猝发数据传送等操作中,各项性能符合PCI2.3规范的要求。 2、论文所研究的E1接口支持成帧和不成帧两种传输方式:在成帧模式下,信息的有效传送速率为31×64Kbit/s;在不成帧的模式下,信息的有效传送速率为2.048Mbit/s。E1输出口各项参数符合CCITT相关规范要求。 3、论文所研究的PCI-E1接口在与现网设备、模块的对接测试中,性能稳定。基于本论文的产品已经正式发布。国内部分厂家已对该产品进行了多方面的综合测试,并计划将其应用到实际的生产和研究中。 本论文对于CTI硬件的设计是一项尝试和革新。测试和应用证明该方法行之有效,符合设计目标,具有较广阔的应用前景。

    标签: PCIE1 FPGA 接口设计

    上传时间: 2013-04-24

    上传用户:lixinxiang

  • 基于FPGA的嵌入式图像采集卡的研究

    图像采集和处理技术在机器视觉和图像分析等诸多领域应用十分广泛,大部分情况下,采集卡只需将前端相机捕获的图像信息正确地传回计算机即可。但是在要求较高的应用场合需要采集卡能准确控制外部光源和相机,完成图像采集,预处理,数据传输。只有这样,用户才可以根据不同的兴趣和需求对特定的某些图像进行采集、传输以及处理,以达到某种分析目的。 本文根据国家985二期项目“三维粒子图像测速系统”的图像采集与处理需要,设计开发了一款以FPGA为核心控制芯片的嵌入式图像采集卡。采集卡以FPGA为逻辑和算法实现的核心器件,不仅实现了传统意义上的图像采集,而且实现了CCD相机控制和激光器同步曝光功能,打破了以往单纯靠增加硬件设备实现同步控制的方法,简化了系统硬件结构并节约系统成本。此外,在系统中嵌入了图像增强算法和采用PCI接口与计算机连接满足了高速采集的要求。同时,采用市场上广泛应用的Camera Link作为采集卡的图像输入接口,提高了系统的通用性、传输速率和抗干扰能力,简化图像获取设备和模拟摄像头之间需要视频解码等连接。具有嵌入式处理功能,光源同步和相机控制的采集卡将使机器视觉系统,图像测速等诸多领域的图像采集应用变得更为便捷。 论文首先对图像采集卡系统的组成、整体方案和可行性进行了论证。然后给出了图像采集卡的硬件设计。在此部分结合整体设计方案,讨论芯片的选型问题。根据所选芯片的本身特点,分模块地对图像采集卡的硬件设计原理进行了详细的阐述。接下来是图像采集卡的软件设计部分。用VHDL和原理图结合的方法对FPGA进行编程,实现了图像采集系统的各个功能模块。根据图像采集系统的要求用DriverWorks软件设计了图像采集卡的WDM底层驱动程序和上层应用程序。最后是用FPGA实现了带修改参数的硬件嵌入式图像处理算法——图像增强。论文中使用QUARTUS软件嵌入的逻辑分析仪SignalTap对FPGA设计的模块进行了硬件调试,给出了调试的时序图和调试结果,经测试分析该采集卡满足“三维粒子图像测速系统”的要求,达到了预期目标。

    标签: FPGA 嵌入式 图像采集卡

    上传时间: 2013-04-24

    上传用户:cazjing

  • 基于ISA总线的计算机与DSP的通信

    在开放式数控系统结构模型的基础上,研究了基于ISA总线的DSP通信控制原理。采用中断方式完成了PC机和DSP之间的通信。介绍了以DriverWorks为工具开发ISA设备WDM驱动程序的方法,探讨了中断处理、驱动程序与应用程序之间的通信,简要说明了驱动程序的安装与调试。通过调试,系统设计运行稳定。 Abstract:  The ISA bus and DSP correspondence control principle is investigated in the basis of the existing open architecture numerical control system.The interrupt method is used to realize the communication between PC and DSP based on the ISA bus.The methods of WDM driver exploitation for ISA device using Driver Works are introduced.The main process of driver program and the keys such as handle interrupt and the communication between the drivers and application are presented.And how to debug and install the drive is explained.

    标签: ISA DSP 总线 计算机

    上传时间: 2013-11-04

    上传用户:kang1923

  • 驱动程序与应用程序的接口

    有两种方式可以让设备和应用程序之间联系:1. 通过为设备创建的一个符号链;2. 通过输出到一个接口WDM驱动程序建议使用输出到一个接口而不推荐使用创建符号链的方法。这个接口保证PDO的安全,也保证安全地创建一个惟一的、独立于语言的访问设备的方法。一个应用程序使用Win32APIs来调用设备。在某个Win32 APIs和设备对象的分发函数之间存在一个映射关系。获得对设备对象访问的第一步就是打开一个设备对象的句柄。 用符号链打开一个设备的句柄为了打开一个设备,应用程序需要使用CreateFile。如果该设备有一个符号链出口,应用程序可以用下面这个例子的形式打开句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路径名的前缀“\\.\”告诉系统本调用希望打开一个设备。这个设备必须有一个符号链,以便应用程序能够打开它。有关细节查看有关Kdevice和CreateLink的内容。在上述调用中第一个参数中前缀后的部分就是这个符号链的名字。注意:CreatFile中的第一个参数不是Windows 98/2000中驱动程序(.sys文件)的路径。是到设备对象的符号链。如果使用DriverWizard产生驱动程序,它通常使用类KunitizedName来构成设备的符号链。这意味着符号链名有一个附加的数字,通常是0。例如:如果链接名称的主干是L“TestDevice”那么在CreateFile中的串就该是“\\\\.\\TestDevice0”。如果应用程序需要被覆盖的I/O,第六个参数(Flags)必须或上FILE_FLAG_OVERLAPPED。 使用一个输出接口打开句柄用这种方式打开一个句柄会稍微麻烦一些。DriverWorks库提供两个助手类来使获得对该接口的访问容易一些,这两个类是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass类封装了一个设备信息集,该信息集包含了特殊类中的所有设备接口信息。应用程序能有用CdeviceInterfaceClass类的一个实例来获得一个或更多的CdeviceInterface类的实例。CdeviceInterface类是一个单一设备接口的抽象。它的成员函数DevicePath()返回一个路径名的指针,该指针可以在CreateFile中使用来打开设备。下面用一个小例子来显示这些类最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在设备中执行I/O操作一旦应用程序获得一个有效的设备句柄,它就能使用Win32 APIs来产生到设备对象的IRPs。下面的表显示了这种对应关系。Win32 API  DRIVER_FUNCTION_xxxIRP_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解释一下设备类成员的Close和CleanUp:CreateFile使内核为设备创建一个新的文件对象。这使得多个句柄可以映射同一个文件对象。当这个文件对象的最后一个用户级句柄被撤销后,I/O管理器调用CleanUp。当没有任何用户级和核心级的对文件对象的访问的时候,I/O管理器调用Close。如果被打开的设备不支持指定的功能,则调用相应的Win32将引起错误(无效功能)。以前为Windows95编写的VxD的应用程序代码中可能会在打开设备的时候使用FILE_FLAG_DELETE_ON_CLOSE属性。在Windows NT/2000中,建议不要使用这个属性,因为它将导致没有特权的用户企图打开这个设备,这是不可能成功的。I/O管理器将ReadFile和WriteFile的buff参数转换成IRP域的方法依赖于设备对象的属性。当设备设置DO_DIRECT_IO标志,I/O管理器将buff锁住在存储器中,并且创建了一个存储在IRP中的MDL域。一个设备可以通过调用Kirp::Mdl来存取MDL。当设备设置DO_BUFFERED_IO标志,设备对象分别通过KIrp::BufferedReadDest或 KIrp::BufferedWriteSource为读或写操作获得buff地址。当设备不设置DO_BUFFERED_IO标志也不设置DO_DIRECT_IO,内核设置IRP 的UserBuffer域来对应ReadFile或WriteFile中的buff参数。然而,存储区并没有被锁住而且地址只对调用进程有效。驱动程序可以使用KIrp::UserBuffer来存取IRP域。对于DeviceIoControl调用,buffer参数的转换依赖于特殊的I/O控制代码,它不在设备对象的特性中。宏CTL_CODE(在winioctl.h中定义)用来构造控制代码。这个宏的其中一个参数指明缓冲方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表显示了这些方法和与之对应的能获得输入缓冲与输出缓冲的KIrp中的成员函数:Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代码指明METHOD_BUFFERED,系统分配一个单一的缓冲来作为输入与输出。驱动程序必须在向输出缓冲放数据之前拷贝输入数据。驱动程序通过调用KIrp::IoctlBuffer获得缓冲地址。在完成时,I/O管理器从系统缓冲拷贝数据到提供给Ring 3级调用者使用的缓冲中。驱动程序必须在结束前存储拷贝到IRP的Information成员中的数据个数。如果控制代码不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,则DeviceIoControl的参数呈现不同的含义。参数InputBuffer被拷贝到一个系统缓冲,这个缓冲驱动程序可以通过调用KIrp::IoctlBuffer。参数OutputBuffer被映射到KMemory对象,驱动程序对这个对象的访问通过调用KIrp::Mdl来实现。对于METHOD_OUT_DIRECT,调用者必须有对缓冲的写访问权限。注意,对METHOD_NEITHER,内核只提供虚拟地址;它不会做映射来配置缓冲。虚拟地址只对调用进程有效。这里是一个用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE来定义一个IOCTL代码:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)现在使用一个DeviceIoControl调用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,这里放的是包含有执行操作命令的字符串指针  0, FirmwareRev,      //这里是output串指针,存放从驱动程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果输出缓冲足够大,设备拷贝串到里面并将拷贝的资结束设置到FirmwareRevSize中。在驱动程序中,代码看起来如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    标签: 驱动程序 应用程序 接口

    上传时间: 2013-10-17

    上传用户:gai928943

  • 基于单片机的USB主从机的设计与实现

    随着总线和接口技术的发展,在工业场合如何更加可靠、快速、便捷地进行数据传输成为该领域通信的研究重点之一。而USB技术以其高速、可靠、通用性强等一系列特点在过去的十多年时间里发展迅猛,而USB OTG技术的诞生,使得两USB设备在没有PC参与的情况下进行数据传输成为可能。本文通过搭建以16位微处理器MSP430F149为核心控制芯片、ISPl362为USB接口芯片的硬件平台,分别实现了USB部分主机和从机功能,使之能进行USB数据的存储与交换。本文完成以下工作:首先,认真研究USB协议,深入理解USB通信的基本概念和传输方式等内容。仔细分析USB Mass Storage类协议,并讨论了采用BULK-ONLY传输实现Mass Storage类协议的方法,并对SCSI指令集等进行了深入的剖析。其次,根据要求,设计出由控制、接口、数据存储、过流保护与供电切换电路等硬件模块组成的系统,在ALTIUM 2004软件上完成原理图的设计和PCB图的布局、布线,并完成硬件调试工作。再次,在已构建的硬件平台上,针对ISPl362 USB接口芯片的主/从机功能,分别设计了USB主机和从机的固件程序。利用IAR Workbench、BusHound等软件进行固件程序的调试,最终USB主机可对u盘进行检测、识别与配置;USB设备实现了USB设备的基本功能,能够被Windows XP操作系统识别,与PC机之间实现数据的批量传输。最后,用DriverWorks软件包的Driver Wizard生成驱动程序框架,并利用Windows DDK和vc++等软件进行驱动程序的编译,最终生成基于Windows操作系统的WDM型USB设备驱动程序。通过对USB通信协议的研究,本人成功地构建了以MsP430F149和ISPl362为核心的硬件试验平台,并在此平台上进行USB主机、从机通信试验。经测试表明,PC机能检测、识别、读写USB设备,其读取与写入速度分别为560KB/s和312Ⅺ玳。而主机能识别、配置接入的U盘。关键词:USB主机、USB从机、MSI'430F149、ISPl362、BuR-Only传输

    标签: USB 单片机

    上传时间: 2013-10-11

    上传用户:浅言微笑

  • 基于PCI Express总线高速数据采集卡的设计与实现

    本文介绍一种基于PCI Express 总线的高速数据采集卡的设计方案及功能实现。给出系统的基本结构及单元组成,重点阐述系统硬件设计的关键技术和本地总线的控制逻辑,详细探讨了基于DriverWorks 的设备驱动程序的开发以及上层应用软件的设计。该系统通过实践验证,可用于卫星下行高速数据的接收并可适用于其他高速数据采集与处理系统。关键词:PCI Express 总线 PCIE PEX8311 DMA 板卡驱动 随着空间科学和空间电子学技术的飞速发展,空间科学实验的种类和数量以及科学实验所产生的数据量不断增加。为了使地面接收处理系统能够实时处理和显示科学图像数据,必须要设计出新的地面数据接收处理系统,实现大量高速数据的正确接收采集、处理以及存储。为了满足地面系统的要求,并为以后的计算机系统升级提供更广阔的空间,本系统拟采用第三代I/O 互连技术PCI Express(简称PCI-E)作为本数据采集卡的进机总线形式。本文通过对PCI-E 总线专用接口芯片PLX 公司的PEX8311 性能分析,特别是对突发读、写和DMA读操作的时序研究,设计出本地总线的可编程控制逻辑,并详细讨论了整个PCI-E 高速数据采集卡的硬件设计方案,以及WDM 驱动程序和上层应用程序的设计方法。

    标签: Express PCI 总线 卡的设计

    上传时间: 2013-10-28

    上传用户:tianyi996