用-VB-做-USB-通信程序及USB基础知识教学文稿.doc
《用-VB-做-USB-通信程序及USB基础知识教学文稿.doc》由会员分享,可在线阅读,更多相关《用-VB-做-USB-通信程序及USB基础知识教学文稿.doc(7页珍藏版)》请在咨信网上搜索。
用 VB 做 USB 通信程序及USB基础知识 用 VB 做 USB 通信程序及USB基础知识用 VB 做 USB 通信程序及USB基础知识。一.USB基础知识 USB是英文Universal Serial Bus的缩写,中文含义是“通用串行总线”。1994年,Intel、Compaq、 Digital、IBM、Microsoft、NEC、Northern Telecom等七家世界著名的计算机和通讯公司成立了USB论坛,花了近两年的时间形成了统一的意见,于1995年11月正式制定了USB0.9通用串行总线(Universal Serial Bus)规范,1997年开始有真正符合USB技术标准的外设出现。USB1.1是目前推出的在支持 USB的计算机与外设上普遍采用的标准。1999年初在Intel的开发者论坛大会上,与会者介绍了 USB2.0规范,该规范的支持者除了原有的Compaq、Intel、Microsoft和NEC四个成员外,还有惠普、朗讯和飞利浦三个新成员。USB2.0向下兼容USB1.1,数据的传输率将达到120Mbps~ 240Mbps,还支持宽带宽数字摄像设备及下一代扫描仪、打印机及存储设备。 目前普遍采用的USB1.1主要应用在中低速外部设备上,它提供的传输速度有低速1 .5Mbps和全速 12Mbps两种,低速的USB带宽(1.5Mbps)支持低速设备,例如显示器、 调制解调器、键盘、鼠标、扫描仪、打印机、光驱、磁带机、软驱等。全速的USB带宽(12Mbps)将支持大范围的多媒体设备。 USB之所以能得到广泛支持和快速普及,是因为它具备下列的很多特点: 1.终端用户的易用性 ●为接缆和连接头提供了单一模型 ●电气特性与用户无关 ●自检外设,自动的进行设备驱动和设置 ●外设可以动态连接,动态重置 2.广泛的适用性 ●适应不同设备,传输速率从几kb/s到十几Mb/s ●在同一线上支持同步、异步两种传输模式 ●支持对多个设备的同时操作 ●可同时操作127个物理设备 ●在主机和设备之间可以传输多个数据和信息流 ●支持多功能的设备 ●利用底层协议,提高了总线利用率 3.同步传输带宽 ●确定的带宽和低延迟适合电话系统和音频的应用 ●同步工作可以利用整个总线带宽 4.灵活性 ●直接发送一系列指定大小的数据包,允许对设备缓冲器大小进行选择 ●通过指定数据缓冲区的大小和执行时间,支持各种数据传输率 ●通过协议对数据流进行缓冲处理 5.健壮性 ●在协议中使用差错处理/差错恢复机制 ●完全实时热插拔 ●可以对有缺陷的设备进行鉴别 6.与PC产业的一致性 ●协议的易实现性和完整性 ●与PC机的即插即用体系结构一致 ●与现存操作系统有良好衔接的接口 7.性价比 ●以低廉的价格提供传输速率为1.5Mb/s的子通道 ●将外设和主机硬件进行了最优化的集成 ●促进了低价格外设的发展 ●廉价的电缆和连接头 ●运用商业技术降低成本 8.可升级性 ●体系结构的可升级性支持在一个系统中同时存在多个USB主机控制器 二.USB接口驱动程序的开发 1.设备和驱动程序的层次结构 WDM模型使用了如图所示的层次结构。图中右边是一个设备对象堆栈。设备对象是系统为帮助软件管理硬件而创建的数据结构。一个物理硬件可以有多个这样的数据结构。 在WDM中引入了功能设备对象(FDO)和物理设备对象(PDO)来描述硬件。一个PDO对应一个真实硬件,一个硬件只允许有一个PDO,却可以有多个FDO。在驱动程序中直接操作的不是硬件设备,而是相应的PDO和FDO。PDO和FDO都处于堆栈的最低层。在FDO的上面和下面还会有一些过滤器设备对象(filter device object)。位于FDO上面的过滤器设备对象称为上层过滤器,位于FDO下面(但仍在PDO之上)的过滤器设备对象称为下层过滤器。在用户态和内核态通信方面,系统为每一个用户请求打包形成一个IRP结构,将其发送至驱动程序,并通过识别IRP中的PDO来区分是发送给哪一个设备的。 2.编写驱动程序的基本步骤 (1) 首先编写一个DriverEntry例程。在这个例程中必须设置一系列的回调例程来处理IRP. DriverEntry是内核模式驱动程序主入口点常用的名字。该例程的主要工作是把各种函数指针填入驱动程序对象。这些指针为操作系统指明了驱动程序容器中各种子例程的位置。 (2)编写一个AddDevice例程,它的基本功能是创建一个设备对象并把它连接到堆栈底部为pdo的设备堆栈中。相关步骤如下:调用IoCreateDevice创建设备对象,并建立一个私有的设备扩展对象;寄存一个或多个设备接口,以便应用程序能知道设备的存在,另外,还可以给出设备名并创建符号连接;初始化设备扩展和设备对象的Flag成员;调用IoAttachDeviceToDeviceStack函数把新设备对象放到堆栈上。 (3)编译连接驱动程序。 (4)测试驱动程序。三.客户端程序的编写 1设备接口 驱动程序的AddDevice代码调用IoCreateDevice创建设备对象。有两种方法提供对Win32程序可用的名称,老的方法是提供一个明确的符号链接名,新的方法是使用设备接口标识支持定义的API的设备。 IoCreateDevice调用有一个DeviceName参数,可以用于为设备指定一个名字。这个名字向内核标识设备,而不是向Win32标识设备。所以需要创建一个符号链接来使内核设备名对Win32可用。 老的方法调用IoCreateSymbolicLink,使用参数传递合适的符号链接名和设备链接名。新方法的主要思想是为设备对象定义一个可用的应用程序编程接口,全局唯一标识符(GUID)用于标识这个接口。GUID必须使用guidgen工具生成,在GUID.h中正式声明自己定义的设备接口。在AddDevice例程中调用IoRegisterDeviceInterface函数注册它的接口,然后调用IoSetDeviceInterfaceState启用这个设备接口。 2.用户态程序调用驱动程序 EZ-USB系列的ezusb.sys是一个不用修改就可以直接使用的驱动程序,在自行开发外部设备的时候,如果没有非常特殊的要求,完全可以采用这个驱动程序作为设备的USB接口驱动,当然前提是设备必须采用EZ-USB的USB控制芯片。 在ezusb.sys中使用IoCreateSymbolicLink创建符号链接,提供对用户态程序可用的设备名。故用户态程序首先通过调用一个Win32函数CreateFile()来获得设备驱动程序的句柄;然后用DeviceIoControl()函数通过CreateFile()函数返回的句柄,来提交I/O控制代码和相关的输入输出缓冲区到驱动程序,完成在Windows环境下USB数据传输的任务。 3.固件代码、驱动程序和客户端程序的关系 固件代码是非常重要的,他主要实现设备的初始化和配置。驱动程序主要负责对各种IRP的处理,客户端发出IRP实现具体的功能。 以向EZ-USB的2131芯片实现简单的读写为例,数据从EP2OUT输出到芯片,从EP2IN读回到主机。而2131芯片的2端点输出缓冲区的地址为7DC0,输入缓冲区的地址为7E00,这就要求固件程序将2端点输入缓冲区的数据全部复制到输出缓冲区。客户端程序在发出读写命令后,通过CreateFile()函数获得设备句柄,然后调用DeviceIoControl()函数提交I/O控制代码和相关的输入输出缓冲区到驱动程序。驱动程序负责处理有关IRP,实现数据的通信。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB USB 通信 程序 基础知识 教学 文稿
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文