基于USB接口实现双机通信设计与实现.doc
《基于USB接口实现双机通信设计与实现.doc》由会员分享,可在线阅读,更多相关《基于USB接口实现双机通信设计与实现.doc(13页珍藏版)》请在沃文网上搜索。
1、摘要:USB由于其速度快、支持热插拔、稳定性好、用户使用方便、支持即插即用等优点,现已成为PC机的标准总线接口。本文介绍了一种利用USB总线接口来实现的双PC机互联的技术方案。随着个人计算机对USB标准的支持,USB的各种应用应运而生。从手持设备、桌面设备、家用设备甚至到工业、通讯、测控等领域,都出现了USB的便捷设备。如常用的U盘、USB摄像头和USB鼠标键盘等。它们的出现,极大的丰富了人们的生活,也渐渐的改变着人们的生活工作方式。同时,随着计算机的普及和信息化进程的加快,家庭内出现两台电脑己不少见了。对大多数家庭用户来说,利用计算机网卡的RJ45接口就能满足基本的数据传输和网络共享了。但是
2、要进行Internet连接共享就不行了,因为一台电脑一般只有一个网卡。为了方便快捷高速的实现Internet连接共享,可以利用USB双机互联线进行连接。基于此,本文就针对USB双机互联展开,逐步地讨论了USB双机互联的原理及其实现过程。本文首先从USBI.1协议和TCP/IP着手,分析了互联所需的协议及WindowsXP系统对其的支持情况,得出主机侧需要一个微端口USB虚拟网卡驱动支持。随后,以系统的观点,把USB互联设备分成软件部分和硬件部分,并对它们分别进行可行性分析,并给出基本的实现细节和过程。再者,在介绍S3C44BOX开发板的基础上,扩展了一USB口作为USB机互联设备。最后,专门对
3、软件设计给出了编程见解和遇到的常见问题,并结合软硬件的编程、调试和运行分析,总结了USB双机互联实现的所需的知识和方法。关键字:USB接口 双机通信1引言总体现状随着PC的普及和信息网络的大发展,上网的人越来越多,也越来越依賴网络给自己工作生活带来便捷。同时无线网络进一步的发展,我们几乎不受限制的随时随地接入互联网浏览信息、电子邮件、下载文件和听音乐等等网络活动。有了网络,我们的地球小了,生活也得变丰富多彩了。我们已经离不开网络了。于是我们会时常碰到这种情况,当两人同时上网时,富常用一个账号共享上网了。于是电脑组建成小型网络互访就成为必要了,便出现了多种互联方式。早期的串并口互联、网卡互联、红
4、外互联,WIFI互联和蓝牙互联等。由于各自使用条件速度等原因,相对较早的联机速度慢,己经不用了。目前主流使用网卡联机,这种网卡采用PCI插槽,用RJ45水晶头连接,传输距离远。但是当PC没有网卡时,当笔记本互联时,当互联共享上网时,当小设备需要联网时,总会出现不方便安装网卡,或成本较大,或空间受限的原因不适合用网卡互联。此时,我们可以考虑选用USB网卡联机,以满足需求。USB是目前计算机与外设上普遍采用的标准,其具有传输速率高、连接灵活、使用方便和可独立供电等特性。所以,利用USB新型接口联机无疑是一个全新开始,以其USB的优点必将受人们欢迎。随着计算机技术的发展和计算机应用的普及,在实际工作
5、中,经常需要在两台微机之间临时性连接进行数据通信、实现资源共享。实现双机互联进行通信的方法有多种,例如采用串行接口、并行接口、红外线接口和网卡来实现。但这几种方式都必须进行安装和设置,通信速率也不同程度地受到限制,各有其特点和局限性。随着USB技术的发展和应用的普及,利用USB接口实现微机之间互联通信,方法简单,速度快,是一种方便快捷的双机通信技术。国内外现状目前,做USB互联研究己是不少,市场上也出现了各种USB双机互联设备供选购。但多数研究或采用现成的USB通讯协议芯片只设计硬件田或利用己有的USB互联设备来做上层应用,或根据USB互联原理做些简单理论研究,或只是把普通互联与USB互联做个
6、简单比较等。只有少数研究可以参考借鉴从某种程度来考虑,这样的研究不够深入。面对USB技术的发展,从低层着手,做到软硬件综合设计,才能有效进行USB互联设计。USB总线拓扑USB的总线结构采用了阶梯式星形的拓扑。每一个星形的中心节点是一个集线器,而USB设备就是通过集线器连接在电脑上的。USB设备包含两种类型:USB集线器和USB功能设备。位于最顶端的就是Host(主机端)。每一个主机端都连接了一个根集线器,再由根集线器按阶梯式以一层或一阶的方式往下扩展出去,连接在下一层的设备或另一个集线器上。这种阶梯式星形的连接方式,最大可以连接6层设备,最多可同时连接到127个外设设备。USB总线的阶梯式星
7、形结构USB系统的组成USB系统有USB主机和USB设备组成。USB主机就是前面所说的Host主机,包含USB主控制器,能控制完成主机和USB设备之间数据传输。USB系统的数据和命令的传输都是有USB主机来启动的。广义上来说,USB主机包括计算机和具有USB主控芯片的设备。在同一时刻USB系统中只允许存在一个USB主机。USB设备按照功能可分为两类:USB集线器和USB功能设备。USB集线器是在USB规范中定义的一种外围设备,除了扩展系统的连接点外,还具有中继以及控制下端端口的电源管理的功能。USB功能设备是用户常见的外围设备,包括键盘或鼠标等设备。在USB数据传输过程中,指向USB主机的数据
8、传输称为上行通信,指向USB设备的数据传输成为下行通信。USB的分层结构从终端用户角度看USB系统,可简单的分为USB主机和USB设备两个部分。它们之间是通过特定USB接口进行通信的。但实际上,具体的系统比较复杂,针对不同的层次有着不同的要求,使得我们必须从不同的层次来观察USB系统。由于划分了层次结构使得不同的层次只需要关心自己对应相关层次的特性功能。整个USB系统可以划分为功能层,USB设备层和USB总线接口层。如下图所示。1、功能层功能层由USB设备侧的功能单元和对应USB主机侧的程序组成,主要负责数据传输操作。按照双方通信的类型,数据传输可以分为如下4种控制传输:主要用于传输少量的对时
9、间和速率都没有要求的控制信息,一般用于USB主机读取或设置USB设备的配置信息。块传输:主要用于传输大量的对传输时间和速率没有严格要求的数据。特别适合于打印机、扫描仪类设备。中断传输:主要用于传输少量的对传输时间具有周期性要求的数据,例如用于传输设备反馈给计算机的字符和坐标信息。特别是键盘、鼠标类设备。同步传输:主要用于大量的,传输时间具有周期性,且速率恒定的实时数据传输。特别适用于音频、视频类设备。2、USB设备层USB设备层由主机侧USB系统软件和设备侧的USB逻辑设备组成。USB系统软件将设备端的USB逻辑设备视为一组可构成一个功能接口的端点集合。而它与USB逻辑设备的通信就像是USB设
10、备连接在根集线器上一样。该层主要用于管理USB设备,分配USB地址,读取设备描述符。它可以使USB主机能够了解该USB设备的能力。3、USB总线接口层USB总线接口层位于通信体系的最低层,主要用于实现USB主机和USB设备之间的数据传输。主机侧由USB主机控制器和根集线器组成,而设备侧则是由设备中所内含的USB接口组成。在USB协议中,USB总线接口使用NRZI编码(反向非归零码)来进行数据传输,USB主控制器和USB集线器将数据接收或发送,并自动进行解码或编码,这部分一般是由USB系统硬件来完成的。在USB总线接口层中,主机认为USB设备是以层次星型的拓扌卜结构连接,USB主控制器的根集线器
11、上的。这些设备最终都是通过同一个USB主控制器和机进行通信。也就是说,USB总线上的所有设备共享一条通往主机的数掘通道因此同一时刻只可能有一个USB设备和主机进行通信。USB的传输层次和传输运动USB通信协议建立在令牌包基础上,pc机负责启动一切的沟通而掌握总线的主控权,严谨的协议保证了USB不占用任何PC的中断向量或输入/输出的资源在USB线上执行一个或多个事务处理,都是基于一系列的信息包的传输。传输过程从USB设备驱动程序要求执行一次传输开始,到通过USB数据线传送结果信息包结束。如下图所示,B传输涉及到以下层次,(1)数据域;(2)封包;(3)数据交易;(4)IO请求包。PC主机和设备之
12、间执行通信协议示意图操作系统把传输请求传给合适的设备驱动,设备驱动依次把请求传递给其他系统级驱动(即USB系统软件USB驱动程序USBD和主机控制器驱动程序HCD)。主机控制器然后在USB总线上启动这个传输。USB的两根差分数据信号线D+与D负责与总线上的设备交换数据,当然,总线上的每一次数据传输使用控制、中断、批量和实时等传输类型的一种进行传输,每一种传输又有特别的格式和约定。USB是一种传输率可达12Mbps的串行接口并由不同类型的PC外设共享这个串行接口总线。12Mbps的总线带宽被分割成1ms的帧,所有位于此总线的设备以时间分割的多任务传输(TMD)方式来分享它每个传输被分配到每一帧中
13、。每一个数据交易(transactions,也称为事务)一般包含二个数据包,即令牌包数据包和握手包。每个数据封包,或者说信息包,又包含若干个数据域,而数据域又分为SYNC数据域(同步序列)、PID数据域、ADDR数据域、ENDP数掘域、CRC数据域、DATA数据域、FrameNumber数据域(帧号)等7种。USB的数据传输USB上的数据传输有四种类型,控制传输(controltransfer)、中断传输(Interrupttransfer)、批量传输(bulktransfer),实时传输(isochronous),不同的传输类型就会执行不同的数据交易。控制传输控制传输是一种双向传输,用来发送
14、与没备的能力和配置有关的请求和数据,也可以传输任何其它用途的信息块。每个设备必须在端点0的缺省管道中支持控制传输。控制传输包含2至3个阶段设置阶段、数据阶段(也可能没有)和状态阶段。每一个阶段对应一个数据交易(即事务),每个数据交易由令牌包、数据包和握手包组成。主机控制器为了尽最大努力确保所有的控制传输尽可能快地进行而为控制传输保留了10的USB带宽,若大部分时间不需要这些带宽,批量传输可使用剩下的部分,批量传输可以发送大量的数据而不会阻塞总线,它可以为其他的传输而延迟,并且等到总线可用时再传,因此刈传输时间不严格的数据传输很有用。只有全速设备可以使用批量传输,打印机和扫描仪使用这种传输。一个
15、批量传输由一个或多个IN或OUT事务组成每一个事务由令牌包、数据包和握手包组成。中断传输中断传输是一种单向传输,从设备输入到PC机,作IN的传送。注意,USB不支持通常意义上的硬件中断,而靠主机周期性地“轮询”来知悉设备是否要传送数据给主机。为了保证数据不被丢失,必须要有一个合适的轮询速度,或者说要有一个最大的潜伏期,以确保主机控制器在事务之间不超过规定的时间间隔。中断传输用来支持那些偶然需要少量数据通信,但服务时间受限制的人机接口设备(HID),中断传输的事务组成同批量传输,事务的结构也是=种。实时传输实时传输是一种保证大块数据迅速从繁忙的总线上通过的方法,它和中断传输组合可以最多使用90的
16、USB带宽。实时传输对数据必须以一个恒定的速率或在规定的时间内传输,每帧传输规定数量的字节数。山于传输必须遵循时间表,接收者在其很忙或者检测到一八错误时不能要求重发。实时传输通过一个或多个连续的帧来实现,每帧山一个IN或OUT事务组成,因为实时传输不支持对总线上的差错作出数据重传响应,所以每个事务不具有握手包。买时传输也是单向的,欲在两不方向上传输数据,每个方向要有独立的管道和端点网。USB的事务处理USB事务处理是主机和USB设备间数据传输的基本单位,由一系列具有特定格式的信息包组成根据所含信息包的种类,可将一个事务处理分为三个阶段:(1)令牌阶段:负责事务处理的开始并定义事务类型。(2)数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 USB 接口 实现 双机 通信 设计
