计算机有关论文范文文献,与基于单片机的USB转并口设备的驱动程序设计相关论文范文

时间:2020-07-05 作者:admin
后台-系统-系统设置-扩展变量-(内容页告位1-手机版)

本论文是一篇计算机有关论文范文,关于基于单片机的USB转并口设备的驱动程序设计相关电大毕业论文范文。免费优秀的关于计算机及操作系统及驱动程序方面论文范文资料,适合计算机论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。

[摘 要]本文研究并设计了基于单片机的USB转并口设备,并利用该模块研究了USB设备驱动程序的设计方法.

[关 键 词]USBECPDriverStudio设备驱动程序

[中图分类号]TP[文献标识码]A[文章编号]1007-9416(2010)02-0029-02

1引言

由于现在大多数计算机没有并行口而具有多个USB接口,因此很多并行口设备无法和计算机直接连接使用.利用基于单片机STC11F32XE的USB转ECP模式并行口可以连接其他ECP模式并口设备,以达到让具有ECP接口的设备可以和没有并口的PC进行数据通信的目的.并口采用的是IEEE1284-A接口,USB接口驱动芯片采用Philips半导体公司的PDIUSBD12,该芯片的数据端口D0-D7接单片机的P0口,引脚WR_N、RD_N、及A0分别接单片机的P3.6、P3.7、P3.5引脚.整个硬件电路图如图1所示.当USB设备硬件设计完成之后,接着就必须根据硬件特点和需要完成的功能,设计出合乎产品的USB驱动程序,否则,设备将无法被PC机识别,不能正常使用.

2WDM型的USB驱动程序结构

USB设备的驱动程序是一种典型的WDM驱动程序.WDM驱动程序是分层的.对于USB设备驱动程序来说,其驱动程序包括两个层次:设备(功能)驱动程序层和总线(底层)驱动程序层.USB底层驱动程序由操作系统提供,不要开发者自己编写,它位于USB功能驱动程序的下面,负责与实际的USB硬件打交道,实现复杂而繁琐的底层通信,USB功能驱动程序必须要由开发者编写,它不与实际的USB硬件打交道,是把包含URB(USBRequestBlock,USB请求块)的IRP发送到USB底层驱动程序,来实现对USB设备信息的发送和接收.(图2)给出了USB驱动程序的结构模型.

3USB驱动开发编程环境的建立

开发一个WMD驱动程序,必须要搭建合适的开发环境以此来减小开发难度.对于WDM驱动的开发,一般必须使用的软件是VC++6.0和DDk(DriverDevelopmentKit,驱动程序开发工具包).但为了进一步降低开发难度,选择使用了第三方驱动开发工具--DriverStudio.它以类的方式对DDK进行封装,可以十分容易地利用它提供的向导来产生一个必需的驱动程序框架.

一般首先安装VC++6.0,接着安装DDK,如果需要的话,还可以安装WindowsSDK来辅助开发,最后安装DriverStudio3.2.因为DriverStudio的类库要使用DDK库函数,所以在安装好DriverStudio之后必须首先要编译出一个库文件,否则会提示找不到库文件vdw_wdm.lib等错误.编译该库文件的步骤如下:启动VC++6.0,找到并打开DriverStudio3.2安装目录下的vdwLibs.dsw工程文件,然后选择DriverStudio->DDKBuildSettings,在弹出的对话框中设置DDK的安装路径和运行的操作系统.然后选择菜单Build->BatchBuild,要根据驱动运行的平台来选择对应的工程文件,这里选择了x86对应的工程,正确选择之后,单击RebuildAll按钮,开始编译库文件.这个类库只需编译一次,以后开发其他的驱动就不必再次编译了.

4USB驱动创建方法及步骤

该驱动程序的主要功能包括:端点0采用控制传输,可以保证传输过程中的数据的完整性和正确性,主要负责USB枚举过程中的数据的读写.另外,又增加了端点1和端点2.端点1采用中断传输,这种传输主要用在数据量不大,但对时间要求较严格的设备中.因此,模块满足了实时性的特点,端点2采用批量传输,该种传输通常用在数据量大、对数据的实时性要求不高的场合中,利用该方式可以完成大量数据的快速传输,可以与高速的ECP并行口相匹配,因此,模块满足了高速数据传输的要求.

单击VC菜单栏下的DriverStudio菜单项,选择DriverWizard菜单,会出现一个驱动向导对话框.单击StartanewDriverProject将创建一个新的驱动工程.然后按照向导生成该驱动程序的框架.具体步骤如下:①设置工程名和路径.在弹出的对话框中,设置工程名为UsbToECP、路径为D:\.②选择驱动工程的类型.在对话框中选择WDMDriver,驱动框架选择DriverWorksC++Framework.③选择WDM驱动类型.在弹出的对话框中选择WDMFunctionDriver.④选择驱动总线的类型.在对话框中选择为USB总线,然后在分别设定USBVendorID和USBProductID.⑤设置USB的端点资源.单击Add增加端点.这里增加4个端点,PipeName分别是Ep1_In、Ep1_Out、Ep2_In和Ep2_Out.其中Ep1_In和Ep1_Out选择中断传输,端点地址均为1,传输方向分别为输入和输出,最大包长为8字节,最大传输大小为4096字节.Ep2_In和Ep2_Out选择批量传输,端点地址均为2,传输方向分别为输入和输出,最大包长为64字节,最大传输大小为40960字节.⑥选择需要处理请求类型.这里选择IRP_MJ_DEVICE_CONTROL、IRP_MJ_READ和IRP_MJ_WRITE.它们分别与API函数DeviceIoControl、ReadFile和WriteFile一一对应.⑦设备I/O操作方式.配置IRP_MJ_READ和IRP_MJ_WRITE的缓冲方式分别为Buffered.另外还需要增加4个IOControl的控制代码:EP1_READ、EP1_WRITE、EP2_READ、EP2_WRITE.打开方式选择Interface.⑧添加注册表项.可以根据自己需要增加,这里增加了一个设备名称.⑨设置电源管理.选择Devicerequiresaninrushofpoweratstartup,说明该设备启动时需要大电流,这样做的目的是防止相同的设备同时上电,减少对电源௚

后台-系统-系统设置-扩展变量-(内容页告位2-手机版)
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:123456789@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
后台-系统-系统设置-扩展变量-(内容页告位3-手机版)