基于单片机USB转并口设备驱动程序设计.docVIP

基于单片机USB转并口设备驱动程序设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机USB转并口设备驱动程序设计

基于单片机USB转并口设备驱动程序设计   [摘 要]本文研究并设计了基于单片机的USB转并口设备,并利用该模块研究了USB 设备驱动程序的设计方法。   [关键词]USB ECP Driver Studio 设备驱动程序   [中图分类号]TP[文献标识码]A[文章编号]1007-9416(2010)02-0029-02      1 引言   由于现在大多数计算机没有并行口而具有多个USB接口,因此很多并行口设备无法和计算机直接连接使用。利用基于单片机STC11F32XE的USB 转 ECP 模式并行口可以连接其他ECP模式并口设备,以达到让具有ECP接口的设备可以和没有并口的PC进行数据通信的目的。并口采用的是IEEE 1284-A接口, USB 接口驱动芯片采用Philips 半导体公司的PDIUSBD12,该芯片的数据端口D0-D7接单片机的P0 口,引脚WR_N、RD_N、及A0 分别接单片机的P3.6、P3.7、P3.5 引脚。整个硬件电路图如图 1 所示。当 USB 设备硬件设计完成之后,接着就必须根据硬件特点和需要完成的功能,设计出合乎产品的USB驱动程序,否则,设备将无法被PC机识别,不能正常使用。   2 WDM型的USB驱动程序结构   USB设备的驱动程序是一种典型的WDM驱动程序。WDM驱动程序是分层的。对于USB设备驱动程序来说,其驱动程序包括两个层次:设备(功能)驱动程序层和总线(底层)驱动程序层。USB底层驱动程序由操作系统提供,不要开发者自己编写,它位于USB功能驱动程序的下面,负责与实际的USB硬件打交道,实现复杂而繁琐的底层通信;USB功能驱动程序必须要由开发者编写,它不与实际的USB硬件打交道,是把包含URB(USB Request Block,USB 请求块)的IRP发送到USB底层驱动程序,来实现对USB设备信息的发送和接收。(图2) 给出了USB 驱动程序的结构模型。   3 USB驱动开发编程环境的建立   开发一个WMD 驱动程序,必须要搭建合适的开发环境以此来减小开发难度。对于WDM 驱动的开发,一般必须使用的软件是VC++6.0和DDk (Driver Development Kit,驱动程序开发工具包)。但为了进一步降低开发难度,选择使用了第三方驱动开发工具--Driver Studio。它以类的方式对DDK 进行封装,可以十分容易地利用它提供的向导来产生一个必需的驱动程序框架。   一般首先安装VC++6.0,接着安装DDK,如果需要的话,还可以安装Windows SDK 来辅助开发,最后安装Driver Studio 3.2。因为Driver Studio的类库要使用DDK库函数,所以在安装好Driver Studio 之后必须首先要编译出一个库文件,否则会提示找不到库文件vdw_wdm.lib 等错误。编译该库文件的步骤如下:启动VC++6.0,找到并打开Driver Studio3.2 安装目录下的vdwLibs.dsw工程文件,然后选择DriverStudio-DDK Build Settings,在弹出的对话框中设置DDK的安装路径和运行的操作系统。然后选择菜单Build-Batch Build,要根据驱动运行的平台来选择对应的工程文件,这里选择了x86对应的工程,正确选择之后,单击Rebuild All 按钮,开始编译库文件。这个类库只需编译一次,以后开发其他的驱动就不必再次编译了。   4 USB驱动创建方法及步骤   该驱动程序的主要功能包括:端点0采用控制传输,可以保证传输过程中的数据的完整性和正确性,主要负责USB枚举过程中的数据的读写。另外,又增加了端点1和端点2。端点1采用中断传输,这种传输主要用在数据量不大,但对时间要求较严格的设备中。因此,模块满足了实时性的特点;端点2采用批量传输,该种传输通常用在数据量大、对数据的实时性要求不高的场合中,利用该方式可以完成大量数据的快速传输,可以与高速的ECP并行口相匹配,因此,模块满足了高速数据传输的要求。   单击VC菜单栏下的DriverStudio菜单项,选择Driver Wizard菜单,会??现一个驱动向导对话框。单击Start a new Driver Project 将创建一个新的驱动工程。然后按照向导生成该驱动程序的框架。具体步骤如下:①设置工程名和路径。在弹出的对话框中,设置工程名为UsbToECP、路径为D:\。②选择驱动工程的类型。在对话框中选择 WDM Driver,驱动框架选择DriverWorks C++ Framework。③选择WDM驱动类型。在弹出的对话框中选择 WDM Function Driver。④选择驱动总线的类型。在对话框中选择为

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档