当前位置:文档之家› 关于usb 主从

关于usb 主从

关于usb 主从
关于usb 主从

1. android usb主从设备模式解析,网络连接调试方法

2012-02-06 15:07:15 我来说两句

收藏我要投稿USB主从设备

Android支持各种USB外围设备,通过两种模式来支持Android USB外设(实现了Android 外设协议的硬件):USB 外设模式和USB主机模式。在USB 外设模式下,外部USB 硬件(装有Android的设备要连接的外部设备)充当USB 主机。外设的例子包括机器人、扩展插座、诊断和音乐设备、电子报亭、读卡器等其他设备。这种模式给予不具备主机功能的Android 设备以与USB硬件交互的能力。

Android USB 外设必须设计用来与装有Android的设备一起工作,并且必须遵循Android 外设通讯协议。在USB主机模式下,装有Android 的设备扮演着主机的角色。这种设备的例子包括数码像机,键盘,鼠标和游戏手柄。那些适应面很广的USB设备仍可以与Android应用交互,前提是这些Android应用可以正确的与这些设备通讯。

图1展示了两种模式的异同。当Android设备处于主机模式时,它扮演USB主机角色并为总线供电。当Android设备处于附件模式时,被连接的USB硬件(在这种情况下是一个Android USB附件)扮演主机角色并给总线供电。

图1. USB主从模式

USB外设和主机模式在Android 3.1 (API level 12)或更高的平台中直接支持。USB外设模式作为一个外设库也被回馈到Android 2.3.4 (API level 10)来支持更广泛的设备。设备厂商可以选择是否在设备的系统镜像中包含附加库。

注意:对USB主机和外设模式的支持最终取决于设备的硬件,不管平台的等级(是多少)。你可以通过元素过滤那些支持USB主机和外设的设备。查看USB外设和主机文档获取更多详细信息。

2.重新认识USB电缆与USB设备连接

中国通信人才网发布时间: 2010-1-9 13:24:50 文章来源:手机设计天下网如果说不讨论USB电缆及连接器的机械电气特性的话,以USB电缆为题写一篇技术文章是一件很艰难的事。但应https://www.doczj.com/doc/8b17409495.html,的邀请,我还是决定写一篇这样标题的文章。

我说的,也许简单,也许是你已知道的,但很可能从没有看见过有人写下来,这就是本文的价值。

USB已成为PC外设连接的绝对标准,被认为是最成功的接口,如今,世界上已经有数十亿台设备上嵌有USB接口。

目前最主流的USB规格是2.0版本,其协议中对连接电缆的形状、尺寸、线材、颜色、标识符、电气特性等都做了严格的规定。

USB协议定义的A型、B型插头插座

Plug:插头;receptacle:插座

用俗语“公头”“母头”可能更形象一些。

USB定义了标准A系列和标准B系列两种插头插座。

标准A系列:这种扁平式插头插座应用最普遍,主要应用于PC端连接。PC 上就是这种A型插座。常见的U盘和USB电缆上用的就是这种A型插头。

标准B系列:这种方形插头插座应用的要少一些,主要应用在设备端连接。在一些打印机、数码伴侣等体积较大的设备上就是用的B型插座,相应的电缆就是用的B型插头。

一般设备上是放置的是插座,电缆端是插头,匹配连接。这样显然更便于携带和使用。

下图是USB协议中截取的插头插座图示:

javascript :window.open(this.src); src="https://www.doczj.com/doc/8b17409495.html,/UpLoadFiles/Tech/2007-

12/2007122015470053835.jpg"

onload="javascript :if(this.width>600)this.style.width=600;">

便携设备中配备USB端口非常的普及,但显然B型插座是不适合便携设备应用的,于是新增了一种Mini B型插座,体积更小。对应的,增加了Mini B型插头。

javascript :window.open(this.src); src="https://www.doczj.com/doc/8b17409495.html,/UpLoadFiles/Tech/2007-

12/2007122015481275106.jpg"

onload="javascript :if(this.width>600)this.style.width=600;">

为了让各设备之间直接交换数据而不经过PC中转,USB开发了OTG协议。支持OTG的设备可以一定程度上模拟PC的功能,控制USB总线完成与另一设备交换数据的服务。

OTG功能在便携设备上应用最有前景,但显然在便携设备上使用PC用的A 型插座是不合适的,于是新增了更小体积的Mini A型插座,相应的引入Mini A型插头。

问题又来了,存在一个设备,与PC连接时扮演“从设备”的角色,与其它设备相连时扮演“PC”的角色,对于这种“双角色设备”,如果只用一个插座的话,应该使用何种插座呢?USB协议引入了一种新型插座—Mini AB来解决这个问题,其既可以插入Mini A型插头,又可以插入Mini B型插头。需要注意的是:不存在Mini AB 型插头!

以下是不同插头插座匹配图:

javascript :window.open(this.src); src="https://www.doczj.com/doc/8b17409495.html,/UpLoadFiles/Tech/2007-

onload="javascript :if(this.width>600)this.style.width=600;">

USB 协议定义的合法电缆

为了让数量众多的USB设备能正常连接,USB协议严格规定了电缆类型。分为以下两大类:

Detachable cable 可分离的cable

这种cable两端都是插头,比如常见的MP3播放器随机赠送的那种电缆,一头是标准A型插头,一头是Mini B型插头。

这种电缆用户是可以自由替换的,如果你丢失了,你可以去电子市场买一根,或者用你的朋友的都可以,非常方便。

Captive cable 不可分离的电缆

这种cable一端是插头,另一端是非标准的连接方式:分为hardwire或customize两种情况。

Hardwired连接:比如USB鼠标,USB键盘。电缆一端是与PC连接的标准A型插头,电缆另一端是与设备固定连接到一起的。这种电缆自然是不可分离的。哦,你还是可以用剪刀把电缆剪断……

对于流行的闪存U盘,机身带有A型插头,可直接插入PC。这种U盘也属于不可分离型cable。只不过可以理解为cable长度为0或者只是PCB上的走线长度。

Customized链接:指USB电缆与设备之间是按照自行定义的接口方式进行连接,目前大部分手机厂商的USB电缆,与手机端的接口就是各自定义的,比如18pin接口,10pin接口,而非标准的USB连接。

这种电缆属于不可分离电缆也是容易理解的,比如你如果丢失了电缆,因为不是标准的,你很难买到一根新的,你到朋友家里也无法使用朋友的电缆,因此是很不方便的。

USB 电缆的最典型特征就是两个端子都是plug插头,不可能是插座的。(captive cable的一端是插头,另一端是非标准连接,不限)。

USB2.0仅定义了如下允许的cable类型:

javascript :window.open(this.src); src="https://www.doczj.com/doc/8b17409495.html,/UpLoadFiles/Tech/2007-

onload="javascript :if(this.width>600)this.style.width=600;">

在USB OTG中又扩展定义了如下几种cable类型:

javascript :window.open(this.src); src="https://www.doczj.com/doc/8b17409495.html,/UpLoadFiles/Tech/2007-

12/2007122015500778187.jpg"

onload="javascript :if(this.width>600)this.style.width=600;">

当然,USB协议定义的电缆并不能满足所有的要求。当你觉得电缆长度不够,或者当你想把一种带标准A型插头的设备到插入标准B插座主板上时,你可就麻烦了,这时你需要使用USB电缆转接器(cable adapter)。

为了使更多的USB设备能连接在一起,USB 定义了几种转接器。所谓转接器是一种特殊的电缆,它不可能直接连接起两个设备,而至少一端连接在电缆上。

如USB2.0定义了一种adapter,这就是我们常见的所谓USB延长线。

Standard-A-receptacle to Standard-A-plug

USB OTG还新增定义了两种电缆转接器:

javascript :window.open(this.src); src="https://www.doczj.com/doc/8b17409495.html,/UpLoadFiles/Tech/2007-

12/2007122015532967735.jpg"

onload="javascript :if(this.width>600)this.style.width=600;">

USB Adapter与USB cable的最大区别就是有且仅有一端是插座,而非USB电缆那样。两端都是插头。

由上可见,只有A-A系列之间的adapter,没有A-B系列之间的转接,因此不会破坏USB的主从设备连接规定, , , 。

USB协议对cable种类和样式做如此细致的规定,就是为了避免非法设备连接的情况,也就是说,你将永远无法使用正常手段将两台PC的USB端口连在一起,或者将两台U盘连接在一起。或者说,你无法使用正常USB电缆将两台主设备或者两台从设备连接在一起。

USB OTG主从设备的判定

上面提到,支持OTG功能的双角色设备配备的是MiniAB插座,为了让其能区分插入的是MiniA型还是MiniB型插头,USB将Mini系列连接器的信号线由标准的4线增加到5线,增加了一个称为“ID”的新信号线,用于插头识别。

标准类型的A系、B系列插头或插座都是4pin的,而MiniA、MiniB、MiniAB类型的插头和插座都是5pin的。在Mini系列中增加的ID pin,在带有Mini-A 型插头的电缆中将该pin固定接地,而在带有Mini-B插头的电缆中悬空。

于是,支持OTG功能的“双角色设备”可以根据板上MiniAB插座的ID信号线的电平状态来区分插入的是MiniA型插头还是MiniB型插头。

当插入MiniA型插头时,表示用户希望该设备作为一个主设备使用;当插入MiniB型插头时,表示用户希望该设备作为一个从设备使用。该设备应根据用户的要求执行相应的应用软件来完成服务。

USB OTG的设备连接

USB OTG设备之间的连接似乎要复杂一些,我们分两种情况来看:

主从设备状态使用不同USB接口的情况

在一些体积较大的OTG设备中,比如数码伴侣,车载播放器等设备,其体积允许放置两个或多个USB插座,此时可将主从设备状态下的USB端口分开,简化用户操作。

比如与PC连接时,可通过板上的B型插座连接。当需要直接插入常用的U 盘工作时,可以通过安置的标准 A 插座连接。

主从设备状态使用同一USB口的状况:

比如典型的支持OTG功能的智能手机,受体积限制只允许使用一个USB插座,即主从设备状态下使用同一USB口,此时应放置MiniAB插座(也只能放这个插座)。

当与PC连接时,使用Standard A plug to Mini B plug 电缆。

当与其他设备(MP3,数码相机等)连接时,使用Mini A plug to Mini B plug 电缆。虽然这种电缆的MiniB型插头也可以插入智能手机中,但只有Mini B插头一端能插入MP3,数码相机等设备,因此,为了完成连接,用户只好将余下的MiniA插头端插入智能手机。

当智能手机希望与通常的带有标准A型插头的U盘连接时,只能使用电缆转接器了。

后记:

阅读这篇文章后,相信大家在产品设计时,再遇到USB插座选择时,再选择USB电缆测试产品时,应该可以轻松一点了。再遇到USB电缆时,您也可以清楚的知道这种电缆是属于那种类型的了。

如果本文真的能带给您上述益处,作者将非常之高兴。

应https://www.doczj.com/doc/8b17409495.html, 手机设计天下邀请,我后续将继续就一些简单问题发表见解。

对简单问题发表较深刻的看法,是我的追求。

usb驱动程序教程

编写Windows https://www.doczj.com/doc/8b17409495.html,的usb驱动程序教程 Windows https://www.doczj.com/doc/8b17409495.html, 是微软推出的功能强大的嵌入式操作系统,国内采用此操作系统的厂商已经很多了,本文就以windows https://www.doczj.com/doc/8b17409495.html,为例,简单介绍一下如何开发windows https://www.doczj.com/doc/8b17409495.html, 下的USB驱动程序。 Windows https://www.doczj.com/doc/8b17409495.html, 的USB系统软件分为两层: USB Client设备驱动程序和底层的Windows CE实现的函数层。USB设备驱动程序主要负责利用系统提供的底层接口配置设备,和设备进行通讯。底层的函数提本身又由两部分组成,通用串行总线驱动程序(USBD)模块和较低的主控制器驱动程序(HCD)模块。HCD负责最最底层的处理,USBD模块实现较高的USBD函数接口。USB设备驱动主要利用 USBD接口函数和他们的外围设备打交道。 USB设备驱动程序主要和USBD打交道,所以我们必须详细的了解USBD提供的函数。 主要的传输函数有: abourttransfer issuecontroltransfer closetransfer issuein te rruptransfer getisochresult issueisochtransfer gettransferstatus istransfercomplete issuebulktransfer issuevendortransfer 主要的用于打开和关闭usbd和usb设备之间的通信通道的函数有: abortpipetransfers closepipe isdefaultpipehalted ispipehalted openpipe resetdefaultpipe resetpipe 相应的打包函数接口有: getframelength getframenumber releaseframelengthcontrol setframelength takeframelengthcontrol 取得设置设备配置函数: clearfeature setdescriptor getdescriptor setfeature

电脑简易入门教程

电脑基础教程 一、认识文件夹及文件 1、Windows中有磁盘、文件夹、文件,他们都有一个文件名,文件放在文件夹里,文件夹放在磁盘里; 1)硬盘一般分成几个区,从C:盘开始,C: 一般也叫系统盘,里面安装有操作系统; 氨摹秒本土伺卷代;)込匸本地掘盘(D:) W本地癒畫(E:)本诫磁鬻軒;) 2)光盘也在“可移动存储设备”中,图标是一个光盘; 3)如果插上U盘或者其它USB设备,在“可移动存储设备”中,还有一个可移动磁盘;2、文件夹 1)文件夹的名称,一般在新建的时候,要起一个,可以是字母、数字、汉字打开“我的文档”,里面就有许多文件夹; 地址fe)[ □我的文档 立件和立伴夹枉蚪芟口」 £5创建一个新文件夹 6 3亟鄭 0将这个文件夹撮布到 Web 仁= 口共享枇文件真L J L」 QQ Files My Web 5ites 2)打开一个文件夹,在地址栏中可以看到一串字符,最后的就是文件夹名,前面的是到这个文件夹所经过的一步一步路径;

地址? O D:\My Docum&nt5\e 英语 J 创逮一平新立件夹 U 将这个文件夹发布到 W^b J 共宜此立件夹 3)系统中有一些特殊文件夹,My Documents 是“我的文档”, 是程序文件夹,Temp 是临时文件夹; 、新建文件夹 1、打开磁盘 1 )打开“我的电脑—D:盘”,瞄准图标后双击,即可打开; 2 )在工作区空白处点鼠标右键,在出来的菜单中选择下面的“新建”; BMP 團像 写宇换立档 WinRfrK 压縮文件 RTF 立裆 文本文档 滅册声昔 WinRAR. IIP 圧缩文件 文件和文件実枉塔 金 Program Files 3 )在出来的下一级菜单中,选择上边的“文件夹”命令; ■文件夹(巳

USB20协议中文版

USB 2.0 规范 USB体系简介 USB是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度可达480Mb/S。USB支持“总线供电”和“自供电”两种供电模式。在总线供电模式下,设备最多可以获得500mA的电流。USB2.0 被设计成为向下兼容的模式,当有全速(USB 1.1)或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以通过分离传输来支持它们。一条USB总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、HUB以及USB功能设备。 USB体系包括“主机”、“设备”以及“物理连接”三个部分。其中主机是一个提供USB 接口及接口管理能力的硬件、软件及固件的复合体,可以是PC,也可以是OTG设备。一个USB系统中仅有一个USB主机;设备包括USB功能设备和USB HUB,最多支持127个设备;物理连接即指的是USB的传输线。在USB 2.0系统中,要求使用屏蔽的双绞线。 一个USB HOST最多可以同时支持128个地址,地址0作为默认地址,只在设备枚举期间临时使用,而不能被分配给任何一个设备,因此一个USB HOST最多可以同时支持127个地址,如果一个设备只占用一个地址,那么可最多支持127个USB设备。在实际的USB体系中,如果要连接127个USB 设备,必须要使用USB HUB,而USB HUB也是需要占用地址的,所以实际可支持的USB功能设备的数量将小于127。 USB体系采用分层的星型拓扑来连接所有USB设备,如下图所示: 以HOST-ROOT HUB 为起点,最多支持7层 (Tier),也就是说任何一个 USB系统中最多可以允许5 个USB HUB级联。一个复 合设备(Compound Device) 将同时占据两层或更多的 层。 ROOT HUB是一个特殊的USB HUB,它集成在主机控制器里,不占用地址。ROOT HUB不但实现了普通USB HUB的功能,还包括其他一些功能,具体在增强型主机控制器的规范中有详细的介绍。 “复合设备(Compound Device)”可以占用多个地址。所谓复合设备其实就是把多个功能设备通过内置的USB HUB组合而成的设备,比如带录音话筒的USB摄像头等。 轮询的广播机制传输数据,所有的传输都由主机发起,任何时刻整个USB体USB采用轮询的广播机制 轮询的广播机制

USB2.0协议中文版

USB 2.0 规范 USB 体系简介 USB 是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度可达480Mb/S。USB 支持“总线供电”和“自供电”两种供电模式。在总线供电模式下,设备最多可以获得500mA 的电流。USB2.0 被设计成为向下兼容的模式,当有全速(USB 1.1)或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以通过分离传输来支持它们。一条USB 总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、HUB 以及USB 功能设备。 USB 体系包括“主机”、“设备”以及“物理连接”三个部分。其中主机是一个提供USB 接口及接口管理能力的硬件、软件及固件的复合体,可以是PC,也可以是OTG 设备。一个USB 系统中仅有一个USB 主机;设备包括USB 功能设备和USB HUB,最多支持127 个设备;物理连接即指的是USB 的传输线。在USB 2.0 系统中,要求使用屏蔽的双绞线。 一个U S B H O S T最多可以同时支持128个地址,地址0作为默认地址,只在设备枚举期间临时使用,而不能被分配给任何一个设备,因此一个U S B H O S T最多可以同时支持127个地址,如果一个设备只占用一个地址,那么可最多支持127个U S B设备。在实际的U S B体系中,如果要连接127个U S B 设备,必须要使用U S B H U B,而U S B H U B也是需要占用地址的,所以实际可支持的U S B功能设备的数量将小于127。 USB 体系采用分层的星型拓扑来连接所有USB 设备,如下图所示: 以HOST-ROOT HUB Array为起点,最多支持7 层 (Tier),也就是说任何一个 USB 系统中最多可以允许5 个USB HUB 级联。一个复 合设备(Compound Device) 将同时占据两层或更多的 层。 R OO T H U B是一个特殊的U S B H U B,它集成在主机控制器里,不占用地址。R OO T H U B不但实现了普通U S B H U B的功能,还包括其他一些功能,具体在增强型主机控制器的庂范中有详细的介绍。 “复合设备(C o m p o u n d D e v i c e)”可以占用多个地址。所谓复合设备其实就是把多个功能设备通过内置的U S B H U B组合而成的设备,比如带录音话筒的U S B摄像头等。 USB 采用轮询的广播机制传输数据,所有的传输都由主机发起,任何时刻整个USB 体

USB四种传输方式

USB定义了4中传输类型 控制传输:可靠的、非周期的、由主机软件发起的请求或者回应的传输,通常用于命令事物和状态事物。 同步传输:在主机与设备之间的周期性的、连续的通信,一般用于传输与时间相关的信息。这种类型保留了将时间概念包含于数据总的能力。但这并不意味着传输这样的数据的时间总是很重要,基传输并不一定很紧急。 中断传输:小规模数据的、低速的、固定延迟的传输。 批量传输:非周期的、打包的、可靠地传输。一般用于传输那些可以利用任何带宽,以及在没有可用带宽时,可以容忍等待的数据。 控制传输: 控制传输允许访问一个设备的不同部分。控制传输用于支持在客户软件和他的应用之间关于设置信息、命令信息、状态信息的传输。控制传输由以下几个事物组成: a.建立联系,把请求信息从主机传到他的应用设备; b.零个或多个数据传输事物,按照a事物中致命的方向传输数据; c.状态信息回传,将状态信息从应用设备传到主机。 Setup包的数据格式属于一个命令集,这个集合能保证主机和设备之间正常通信。这个格式允许一些销售商对设备命令进行扩展。Setup包后的数据应具有USB定义的格式,除非这个数据是销售商提供的信息,回传的状态信息荏苒具有USB定义的格式。 控制传输使用的是消息通道上的双向信息流。所以,一旦一个控制通道被确认之后,这个通道就试用了具有某个端点号的两个端点,两个断电,一个输入,一个输出。 控制传输的端点决定了他所能接收或发送的最大数据静净负荷区长度。Setup后的所有数据包都要遵守这个约定,这个约定是针对这些数据包中的数据净负荷区的,不包括包中的协议要求的额外信息。 对于缺省控制通道的最大数据区长度,USB系统软件要从设备描述器的头8个字节中读出,设备将这8个字节放在一个包中发出,其中7个字节包含了缺省通道的wMaxPackSize。对其他的控制端点来说,USB系统软件在他们被设置后,获得此长度,然后USB系统软件就会保证数据净负荷区不会超长。另外,主机总是认为数据净负荷区的最大长度至少为8. 当端点做了两件事时,可以认为控制传输的数据阶段接收:

USB的数据格式概述

USB的数据格式概述 和其他的一样,USBUSB数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。下面简单介绍一下域、包、事务、传输,请注意他们之间的关系。 (一)域:是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定),域可分为七个类型: 1、同步域(SYNC),八位,值固定为0000 0001,用于本地时钟与输入同步 2、标识域(PID),由四位标识符+四位标识符反码构成,表明包的类型和格式格式,这是一个很重要的部分,这里可以计算出,USB的标识码有16种,具体分类请看问题五。 3、地址域(ADDR):七位地址,代表了设备在主机上的地址,地址000 0000被命名为零地址,是任何一个设备第一次连接到主机时,在被主机配置、枚举前的默认地址,由此可以知道为什么一个USB主机只能接127个设备的原因。 4、端点域(ENDP),四位,由此可知一个USB设备有的端点数量最大为16个。 5、帧号域(FRAM),11位,每一个帧都有一个特定的帧号,帧号域最大容量0x800,对于同步传输有重要意义(同步传输为四种传输类型之一,请看下面)。 6、数据域(DATA):长度为0~1023字节,在不同的传输类型中,数据域的长度各不相同,但必须为整数个字节的长度 7、校验域(CRC):对令牌包和数据包(对于包的分类请看下面)中非PID域进行校验的一种方法,CRC校验在通讯中应用很泛,是一种很好的校验方法,至于具体的校验方法这里就不多说,请查阅相关资料,只须注意CRC码的除法是模2运算,不同于10进制中的除法。 (二)包:由域构成的包有四种类型,分别是令牌包、数据包、握手包和特殊包,前面三种是重要的包,不同的包的域结构不同,介绍如下 1、令牌包:可分为输入包、输出包、设置包和帧起始包(注意这里的输入包是用于设置输入命令的,输出包是用来设置输出命令的,而不是放据数的) 其中输入包、输出包和设置包的格式都是一样的: SYNC+PID+ADDR+ENDP+CRC5(五位的校验码) (上面的缩写解释请看上面域的介绍,PID码的具体定义请看问题五) 帧起始包的格式: SYNC+PID+11位FRAM+CRC5(五位的校验码) 2、数据包:分为DATA0包和DATA1包,当USB发送数据的时候,当一次发送的数据长度大于相应端点的容量时,就需要把数据包分为好几个包,分批发送,DATA0包和DATA1包交替发送,即如果第一个数据包是DATA0,那第二个数据包就是DATA1。但也有例外情况,在同步传输中(四类传输类型中之一),所有的数据包都是为DATA0,格式如下:SYNC+PID+0~1023字节+CRC16 3、握手包:结构最为简单的包,格式如下 SYNC+PID (注上面每种包都有不同类型的,USB1.1共定义了十种包,具体请见问题五) (三)事务:分别有IN事务、OUT事务和SETUP事务三大事务,每一种事务都由令牌包、数据包、握手包三个阶段构成,这里用阶段的意思是因为这些包的发送是有一定的时间先后顺序的,事务的三个阶段如下: 1、令牌包阶段:启动一个输入、输出或设置的事务 2、数据包阶段:按输入、输出发送相应的数据

usb安装系统教程

usb安装系统教程 https://www.doczj.com/doc/8b17409495.html,/peihonglin0/blog/item/9aba6c38d718ae2896ddd871.html 2010-01-04 14:34 装系统前的准备 一个能启动电脑的U盘和一个系统的光盘镜像 在安装系统前,需要准备好一些东西。一个是操作系统的镜像,另一个就是能启动的U盘。下面我们就来讲解怎么安装deepin版的XP系统。 注:读懂本文需要了解安装操作系统的一些基础知识。 ●首先是制作一个能启动电脑的带WindowsPE的启动U盘 先到网上去下载一个叫“老毛桃WinPE”的工具到硬盘里,再把U盘接在电脑上,然后按下面的步骤一步步来就可以制作一个能启动的U盘了。 选第4项,然后回车

输入U盘的盘符,然后回车 来到格式化步骤,按默认的设置,点“开始”就行

顺利格式化 引导部分 这里要说明一下,在“设备”里有两个选项,一个是电脑的硬盘,一个是要制作的U盘。这里一定要选对U盘而别选错硬盘,从大小就能分出来哪个是U盘。笔者的U盘是2G的,所以应该选择(hd1)[1898M]。下面的“选项”部分可以不用管,默认不勾选任何参数就行。确认好以上步骤后,点“安装”然后进行下一步。

写入引导完毕,按任意键继续 要给启动U盘设个密码 本来笔者不想设置启动U盘的密码,但这个步骤不能跳过,所以没办法只好设了一个密码。设置完后,一定要牢记你设好的密码,否则启动U盘会无法使用。

制作完毕 当你完成以上步骤后,恭喜,一个具有启动功能的U盘已经来到你的身边。你再也不用心烦没有光驱不能从光驱启动了,因为以后你可以从U盘启动再安装操作系统!想知道怎么操作吗?下一页就开始。 ●把电脑的第一启动项设为USB设备启动 以往用光盘装系统,必须调整启动项为光驱启动,而现在我们要用U盘装系统,所以要调整为U盘启动。关于这个,不同电脑不同版本的bios有不同的设置方法,不过都大同小异,目的就是让电脑的第一启动项变为U盘启动。下面我们举例几个不同bios的调整方法。 最常见的Phoenix-Award的bios选项,选择USB-HDD即可 dell品牌机的bios调整选项 ThinkPad系列笔记本的BIOS 惠普商用系列笔记本的BIOS 可以看到以上的bios选项都各不相同,但是调整的选项都是为了一个目的:把电脑的启动项设为从USB设备启动,这样才能达到从U盘启动电脑的效果。 ●用能启动的U盘安装XP 先把具备启动功能的U盘接上电脑

USB传输原理

USB 2.0传输原理 USB最重要的是要理解USB主机发送命令给设备,设备要对主机的命令进行响应,USB停训的基本单位为“包”,包有如下分类: 令牌包、数据包、握手包、特殊包(其实是由PID决定的)令牌包:可分为输入包、输出包、设置包和帧起始包(注意这里的输入包适用于设置输入命令的,输出包是用来设置输出命令的,而不是放数据的)其中输入包、输出包和设置包的格式都是一样的:SYNC+PID+ADDR+ENDP+CRC5(五位效验码) 帧起始包: SYNC+PID+11位FRAM+CRC5(五位效验码) 数据包:有两种类型的数据包,由PID来区别为DATA0包和DATA1包,这两种包是为了支持数据同步切换定义的。数据必须以整数的字节数发出,数据CRC仅通过对包的数据字段计算而得到,而不包括PID,他有自己的效验字段。 当USB发送数据的时候,当一次发送的数据长度大于相应断点的

容量时,就需要把数据包分为好几个包,分批发送,DATA0包和DATA1包交替发送,即如果第一个数据包是DATA0那么度二个数据包就是DATA1。但也有例外的情况,在同步传输中(四类传输类型中之一),所有的数据包都是DATA0,格式如下: SYNC+PID+0~1023字节+CRC16(bits) 握手包:结构最为简单的包,仅由PID构成。用来报告数据事务的状态,只有支持流控制的数据事务类型才能返回握手信号。握手包有一个字节的包子段后的EOP确定界限。如果包被解读为合法的握手信号,但没有以1个字节后面的EOP终止,则认为他是无效的,且被接收机忽略。格式如下: SYNC+PID EOP是在发完包后指标现在DM,DP上的一个标记,,一个完整的包就是这样的,这只是以数据的形式表现出来的包,但是怎么把它发到DP,DM上呢,有一种编码方式交做NRZI编码(基于串行的传输模式,传输连续的0,1字符串),就是如果发的数据是1,DP,DM就取反,如果发送多个数据是0,DP,DM保持不变,去翻和保持多久呢,是一

一种USB2.0数据传输的实现方式

一种USB2.0数据传输的实现方式 摘要:USB (Universal Serial Bus,通用串行总线)是外围设备与计算机进行连接的新型接口,其诞生对计算机外设连接技术产生重大变革。对Philips公司的工业级USB2.0控制芯片ISP1581的性能特点作了介绍,并重点讨论了其硬件电路及固件程序的设计。此外还简要提及了其上层程序的编写。 关键词:USB2.0;ISP1581;DMA传输 中图分类号:TP301 文献标识码:A 文章编号:1672-7800(2011)09-0040-03 0 引言?? 通用串行总线USB(Universal Serial Bus)接口是近年来开始普遍应用于PC领域的新型接口;同时,USB2.0在USB1.1的基础上又有了质的提高,其理论速度可以达到480Mbps。?? 目前市场上供应的USB2.0控制器主要有两种:带USB 接口的单片机和纯粹的USB接口芯片。但此类芯片基本上用于商业领域,无法适用工控领域的恶劣环境;纯粹的USB 接口芯片仅处理USB通信,必须有个外部微控制器/处理器

来进行协议处理和数据交换。纯粹的USB接口芯片主要特点是接口方便、可靠性强、适用范围广,尤其Philips公司提供的ISP1581芯片,能够在-40℃~+85℃的温度范围内正常工作,十分适合工控领域数据传输的需要。?? 1 ISP1581的芯片性能特点?? ISP1581是一款性能非常出众的USB2.0控制器,它实现了USB2.0/1.1物理层以及数据协议层需要完成的任务,接口速度可达12.5M字节/s或12.5M字/s;同时还做到可以与大部分类型的微控制器/处理器相连,非常适合做很多外围设备与PC的通讯接口。其一些具体的性能特点如下:①ISP1581含有7个IN端点,7个OUT端点和2个控制端点。芯片的工作频率为12MHZ,同时内部集成了一个40×PLL时钟乘法器可产生480MHZ的内部抽样时钟;②通过Philips串行接口引擎(SIE)来完成所有USB协议层的功能,主要完成以下功能:同步方式的识别、并行/串行的转换、位填充/解除填充等。考虑到速度,它是全硬件的,不需要软硬件介入; ③通过MMU和集成RAM实现了USB总线和微控制器/处理器或DMA控制器之间的速度转换。DMA控制器接收到DMA命令后,可直接把数据从内部RAM传送到外部DMA 设备或从外部DMA设备传送给内部RAM;④在分离总线模式下,通过DMA模块来实现ISP581芯片与DMA数据源或数据接收端的数据传输,不需要微控制器/处理器参与,提高

usb基础教程

USB(Universal Serial Bus) USB(通用串行总线)是用于将适用USB的外围设备连接到主机的外部总线结构,其主要是用在中速和低速的外设实现数据的传输他支持主系统(host)和USB的外围设备(device)之间的数据传输  连接PC与电话而电话提供最为广泛的通信互连 而计算机与通信是两个相对独立发展的产业 2从用户端来看并行口和键盘鼠标端口都不能Plug-and-Play 3PC的已有的串行/并行口等端口只适用于一两种的外设USB 提供双向低速到中速(USB 2.0可达480Mb/s)的通用外设总线 并且易于扩展 图1

在USB的网络协议中它负责管理整个USB系统Host与USB Device的通信Host 端有一个Root Hub???????ú?éò?á??óò???USB Hub 或一个USB Device?′USB Hub可以将一个USB端口扩展为多个端口如USB键盘USB MODEM Compound Device是指带一个Hub和一个或多个不可删除的USB Device的复合设备 USB的系统有且只有一个host所以将两台PC的USB 口通过A-A USB电缆连接起来如果将两个host连起来通信 与它的网络协议冲突Prolific等厂家有USB到USB的设备控制器 USB设备 USB的设备可以接在PC上的任意的USB接口上 USB的Hub有一个上行的端口(到host) 从而可以使整个的系统可以扩展的连接127个外设 对于USB系统来说所有的其他连接到host都称为设备 只有通过host的管理与调节才能够实现数据的互相传送通常会有一个根Hub USB的设备类型(device class) 虽然USB设备都会表现USB的一些基本的特征 同类型的设备可以拥有一些共同的行为特征和工作协议 下表中就给出一些基本的USB的设备类型分类 鼠标USB_DEVICE_CLASS_HUMAN_INTERFACE 图像摄相机.扫描仪USB_DEVICE_CLASS_IMAGE 显示监视器USB_DEVICE_CLASS_MONITOR 物理回应设备动力回馈式游戏操纵杆USB_DEVICE_CLASS_PHYSICAL_INTERFACE 电源不间断电源供应USB_DEVICE_CLASS_POWER 打印机USB_DEVICE_CLASS_PRINTER Bulk存储器硬盘USB_DEVICE_CLASS_STORAGE HUB USB_DEVICE_CLASS_HUB

USB是怎么传输数据的,怎么识别设备的(较详细)

USB是怎么传输数据的,怎么识别设备的 Dodo 原创于2008.6.15 读这篇文章之前要对USB有一定的了解,知道什么是主机,设备,USB是一个主从结构的接口。 先说说USB主机是怎么识别一个U盘的吧,当你把一个U盘插到电脑上的时候,电脑的USB接口上会发生一些变化,这里先得说说USB数据线是怎样的,它里面一般有用的有四根线,ground,VCC,DM(D-),DP(D+),而DM,DP是用来传输数据的,当U盘(以后简称U)插到电脑上的时候,U会把DP(D+)拉高,使DP,DM保持一个J状态(DP为高DM 为低,有关总线的状态又有很多,想了解的自己去研究),电脑主板的USB主机芯片检测到这个J状态(DP(D+)拉高),(大概是这样,愿意详细了解的要仔细看协议),知道有设备连接上了(这里提到的主机和设备是指连接在USB线两端的USB接口芯片),电脑的驱动会对连接上的这个设备进行识别,我们把它叫做列举,这个过程是为了让电脑知道连接上的这个设备是什么东西(是U盘,还是USB鼠标,还是USB键盘,或是其他的什么)。 以下是一个U盘的全部列举过程,用图来说明,(有两个附件,一个USB分析仪软件,一个是U盘的的全部列举过程(部分),用USB分析仪软件打开) 在这之前先说说USB数据是怎么在DM,DP上传输的吧,当主机检测到有设备连接上,驱动先会对这个设备作些必备的事情,识别他的速度(这个过程又有很多协议,不多说了,要了解的仔细研究协议),然后就是复位等等,之后就开始在总线(DM,DP)上发送1ms间隔的SOF包(全速)或125us间隔的SOF包(高速),低速(我也不太清楚,呵呵),什么是SOF包呢,SOF 就是start of frame (帧开始),其实就是帧开始的一个标记,其中有帧号,什么是帧呢,帧就是1ms的间隔(全速)或125us的间隔(高速),所有的数据都是在帧内传输的。 USB数据都是以包的形式发出的,包都有固定的格式,它以一个sync(同步)开始,

USB接口协议

USB 接口协议简介 https://www.doczj.com/doc/8b17409495.html,B 以及协议简介 USB (Universal Serial Bus )是近年来应用在PC 领域的新型接口技术,它是由一些PC 大厂商如Microsoft 、Intel 等为了解决日益增加的PC 外设与有限的主板插槽和端口之间的矛盾而制定的一种通用串行接口。 数据通信协议部分是USB 的核心内容。主要包括:以差模串行信号为载体传送二进制代码来传输信号;数据包作为最基本的完整信息单元,包含一系列数据信息。 数据包可以分解为更小的单元—域;以包为基础,构成USB 的三种事务。进而,组合不同的传输类型,传输各种类型的数据,实现USB 的各种功能。 https://www.doczj.com/doc/8b17409495.html,B 通信机制 为了细化USB 的通信机制,USB 协议的开发者采用了分层的概念,每一层传输的数据结构对其他逻辑层是透明的,USB 设备和USB 主机通信的逻辑结构和每 层的逻辑通道。 在HSOT 端,应用软件(Client SW )不能直接访问USB 总线,而必须通过USB 系统软件和USB 主机控制器来访问USB 总线,在USB 总线上和USB 设备进行通讯。从逻辑上可以分为功能层、设备层和总线接口层三个层次。其中功能层完成功能级的描述、定义和行为;设备级则完成从功能级到传输级的转换,把一次功能级的行为转换为一次一次的基本传输;USB 总线接口层则处理总线上的Bit 流,完成数据传输的物理层实现和总线管理。途中黑色箭头代表真实的数据流,灰色箭头代表逻辑上的通讯。如图所示: 主机 物理设备 逻辑上的数据流 实际数据流

以USB摄像头设备为例,视频播放软件想通过USB总线得到USB摄像头捕捉的视频数据,这就相当于在功能层上。应用软件是视频播放软件,功能硬件是USB摄像头。而这些数据的读取需要USB设备层提供的服务,在这一层上,主要是USB设备的驱动调度主机控制器控制器向USB摄像头发出读请求。每个USB设备会有多个管道,使用哪个管道,传输的大小都需要指定。这个层次的USB 系统软件就是USB摄像头的驱动程序。而在USB设备一端一般会有小单片机或者处理芯片负责响应这种读请求,而这一层的传输又依赖于USB总线接口层的服务。在这一层,完全是USB的物理协议,包括如何分成更小的包(packages)传输,如何保证每次包传输不丢失数据等。 https://www.doczj.com/doc/8b17409495.html,B传输的数据格式 其他传输协议一样,在物理层,USB当然也是通过二进制数据进行传输的,首先二进制数据构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输。 3.1域: 是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定),域可分为七个类型: 3.1.1同步域(SYNC) 八位,值固定为0000 0001,用于本地时钟和输入同步。 3.1.2标识域(PID) 由四位标识符+四位标识符反码构成,表明包的类型和格式,这是个很重要的部分,这里能够计算出,USB的标识码有16种。 3.1.3地址域(ADDR) 七位地址,代表了设备在主机上的地址,地址000 0000被命名为零地址,是任何一个设备第一次连接到主机时,在被主机配置、枚举前的默认地址,由此能够知道为什么一个USB 主机只能接127个设备的原因。 3.1.4端点域(ENDP) 四位,由此可知一个USB设备有的端点数量最大为16个。

USB通信解析

2、帧:时间概念,在USB中,一帧就是1MS,他是个单独的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是个USB的传输动作。 3、上行、下行:设备到主机为上行,主机到设备为下行下面以一问一答的形式开始学习吧。问题一:USB的传输线结构是如何的呢?答案一:一条USB的传输线分别由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,他使用的是3.3V的电压(注意哦,和CMOS的5V电平不同),而电源线和地线可向设备提供5V电压,最大电流为500MA(能够在编程中配置的,至于硬件的实现机制,就不要管他了)。问题二:数据是如何在USB传输线里面传送的答案二:数据在USB线里传送是由低位到高位发送的。问题三:USB的编码方案?答案三:USB 采用不归零取反来传输数据,当传输线上的差分数据输入0时就取反,输入1时就保持原值,为了确保信号发送的准确性,当在USB总线上发送一个包时,传输设备就要进行位插入***作(即在数据流中每连续6个1后就插入一个0),从而强迫NRZI码发生变化。这个了解就行了,这些是由专门硬件处理的。问题四:USB 的数据格式是怎么样的呢?答案四:和其他的相同,USB数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。下面简单介绍一下域、包、事务、传输,请注意他们之间的关系。(一)域:是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定),域可分为七个类型: 1、同步域(SYNC),八位,值固定为0000 0001,用于本地时钟和输入同步 2、标识域(PID),由四位标识符+四位标识符反码构成,表明包的类型和格式,这是个很重要的部分,这里能够计算出,USB的标识码有16种,具体分类请看问题五。 3、地址域(ADDR):七位地址,代表了设备在主机上的地址,地址000 0000被命名为零地址,是任何一个设备第一次连接到主机时,在被主机配置、枚举前的默认地址,由此能够知道为什么一个USB主机只能接127个设备的原因。 4、端点域(ENDP),四位,由此可知一个USB设备有的端点数量最大为16个。 5、帧号域(FRAM),11位,每一个帧都有一个特定的帧号,帧号域最大容量0x800,对于同步传输有重要意义(同步传输为四种传输类型之一,请看下面)。 6、数据域(DATA):长度为0~1023字节,在不同的传输类

usb协议的8个问题及传输方式.doc

USB传输协议 (2010-11-10 15:13:19) 转载▼ 标签: 杂谈 1.总线协议 USB是一种轮询方式的总线,主机控制器初始化所有的数据传输。 每个总线执行动作按照传输前制定的原则,最多传输三个数据包。每次传输开始,主机控制器发送一个描述传输动作的种类、方向、USB设备地址和端口号的数据包,这个数据包通常称为标志包PID(packet ID),USB设备从解码后的数据包中取出属于自己的数据。 传输开始时,由标志包来标志数据的传输方向,然后发送端发送数据包,接收端相应地发送一个握手的数据包,以表明传输是否成功。发送端和接收端之间的数据传输,可视为在主机和设备端口之间的一条通道中进行。 通道可分为两类:流通道和消息通道。各通道之间的数据流动是相互独立的,一个USB 设备可以有几条通道。例如,一个USB设备可建立向其他设备发送数据和从其他设备接收数据的两条通道。 2.USB的传输方式 为了满足不同的通信要求,USB提供了四种传输方式:控制(control)方式传输,等时(isochronous)方式传输,中断(interrupt)方式传输及批(bulk)方式传输。每种传输模式应用到具有相同名字的终端时,具有不同的性质。 (1)控制方式传输

控制传输是双向传输,数据量通常较小。控制传输类型支持外设与主机之间的控制、状态、配置等信息的传输,为外设与主机之间提供一条控制通道。每种外设都支持控制传输类型,这样,主机与外设之间就可以传输配置和命令/状态信息。 (2)等时方式传输 等时传输提供了确定的带宽和间隔时间(latency)。它用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传输速率和即时应用中。 例如,在执行即时通话的网络电话应用中,使用等时传输模式是很好的选择。等时数据要求确定的带宽值和确定的最大传输次数,对于等时传输来说,即时数据传递比精度和数据的完整性更重要一些。 (3)中断方式传输 中断方式传输主要用于定时查询设备是否有中断申请。这种传输方式的典型应用是在少量的、分散的、不可预测数据的传输方面,键盘、操纵杆和鼠标等就属于这一类型。这些设备与主机间的数据传输量小、无周期性,但对响应时间敏感,要求马上响应。中断方式传输是单向的,并且对于主机来说只有输入方式。 (4)批方式传输 主要应用于大量传输数据又没有带宽和间隔时间要求的情况下,要求保证传输。打印机和扫描仪就属于这种类型,在满足带宽的情况下,才进行该类型的数据传输。 USB采用分块带宽分配方案,若外设超过当前或潜在的带宽分配要求,则主机将拒绝与外设进行数据传输。等时和中断传输类型的终端保留带宽,并保证数据按一定的速率传输,集中和控制终端按可用的最佳带宽来传输数据。但是,10%的带宽为批传输和控制传输保留,数据块传输仅在带宽满足要求的情况下才会出现。

从零基础自学PLC入门教程

非常实用的P L C 入门教程

第1章PLC周边常用器件介绍及简单应用 (1) 1.1按钮开关 (1) 1.2继电器 (2) 1.3三极管 (4) 第2章常用继电器控制电路与相应PLC梯形图解说 (5) 2.1点动电路 (5) 2.2带停止的自动保持电路 (6) 2.3自保持互锁电路 (7) 2.4先动作优先电路 (8) 2.5后动作优先电路 (9) 2.6时间继电器 (10) 2.7计数器 (12) 第3章PLC编程相关软件安装 (13) 3.1三菱PLC编程工具的安装 (14) 3.2安装USB转串口芯片PL2303驱动 (22) 第4章三菱GX Developer8.31中文版编程软件的使用 (23) 4.1创建工程文件 (24) 4.2打开工程 (29) 4.3计算机与PLC连接 (30) 4.4工程文件写入PLC (34) 4.5计算机在线监视PLC (36) 第5章常用继电器控制电路转PLC程序编写测试 (37) 5.1点动电路编写测试 (38) 5.2带停止的自保持电路编写测试 (40) 5.3自保持互锁电路编写测试 (43) 5.4先动作优先电路编写测试 (47)

第1章 PLC 周边常用器件介绍及简单应用 1.1按钮开关 (a)实物图(b)电气符号(c)等效梯形图符号 图1.1.1 按钮开关示意图 难看出开关功能 是按下时触点导通,灯泡点亮状态见图1.1.3,松开按钮开关,触点断开,灯泡灭状态见图1.1.2。

1.2继电器 (a)继电器实物图(b)电路符号(c)相应的PLC梯形图 图1-4继电器示意图 1.2.1简单介绍 当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。 下面我们给继电器线圈未通电和通电前后作出的比较: 图1-5继电器线圈未通电状态图1-6继电器线圈通电状态 图1-5为继电器原始状态,13、14脚为继电器线圈,5脚是常开触头,1脚是常闭触头。 图1-6为继电器线圈得电状态,13、14脚接通电源后,9脚为继电器公共触头与5脚由原来的常开改为闭合状态,9脚为继电器公共触头与1则由原来的常闭改为断开状态,直到13、14断开电源后由复位弹簧将触头恢复图1-5的原始状态。 (a)原理图(b)实物图 图1-7继电器未通电工作,灯泡熄灭

usb数据传输

USB协议是比较复杂的协议,初学者必定会遇到不少问题,由于本人学习过程中走了不少弯路,所以写了这篇文章,希望对初学者有所帮助。下面是《USB是怎么传输数据的,怎么识别设备的》(附件内有word版的),先看看这个文章,知道USB是怎么传输数据了,然后在仔细的研究协议,这样会少走很多弯路。先看看它的全貌,知道它是什么了,然后再去研究它的内部(协议),这样才会很快掌握。我的文章里有什么不清楚的地方请随时找我讨论。文章里有我得QQ。 后面附件是一个软件USBAnalyser107,和一个U盘的列举过程《标准U盘》,先把软件安装了,用这个软件把文件《标准U盘》打开,对照我的文档的内容看会更容易明白。 USB是怎么传输数据的,怎么识别设备的 Jude(原名Dodo)原创于2008.6.15 读这篇文章之前要对USB有一定的了解,知道什么是主机,设备,USB是一个主从结构的接口。 先说说USB主机是怎么识别一个U盘的吧,当你把一个U盘插到电脑上的时候,电脑的USB接口上会发生一些变化,这里先得说说USB数据线是怎样的,它里面一般有用的有四根线,ground,VCC,DM(D-),DP(D ),而DM,DP是用来传输数据的,当U盘(以后简称U)插到电脑上的时候,U会把DP(D )拉高,使DP,DM保持一个J状态(DP为高DM为低,有关总线的状态又有很多,想了解的自己去研究),电脑主板的USB主机芯片检测到这个J状态(DP(D )拉高),(大概是这样,愿意详细了解的要仔细看协议),知道有设备连接上了(这里提到的主机和设备是指连接在USB线两端的USB接口芯片),电脑的驱动会对连接上的这个设备进行识别,我们把它叫做列举,这个过程是为了让电脑知道连接上的这个设备是什么东西(是U盘,还是USB鼠标,还是USB键盘,或是其他的什么)。 以下是一个U盘的全部列举过程,用图来说明,(后面有两个附件,一个USB分析仪软件,一个是U盘的的全部列举过程,用USB分析仪软件打开) 在这之前先说说USB数据是怎么在DM,DP上传输的吧,当主机检测到有设备连接上,驱动先会对这个设备作些必备的事情,识别他的速度(这个过程又有很多协议,不多说了,要了解的仔细研究协议),然后就是复位等等,之后就开始在总线(DM,DP)上发送1ms间隔的SOF包(全速)或125us间隔的SOF包(高速),低速(我也不太清楚,呵

USB传输原理

USB传输原理 USB设备插到USB接口,pc的总线驱动(ms提供)枚举设备,给USB设备分配一个地址,并通过USB标准协议来获取USB的设备描述符,这个描述符包括USB设备程序中的一个描述表,它描述了USB的配置数,每个配置的接口数及可选接口,已及接口的端点(endpoint)个数及端点的功能(传输方式bulk,interrupt,iso,端点的大小,方向等),并且可以发出选择配置、接口来选择一种配置进行传输。Pc通过获取USB的vid,pid来加载USB设备的相应驱动程序。然后就可以通过驱动程序发送ioctl交给总线驱动,总线驱动封装成urb (USB请求块)与USB设备的程序进行通讯,以达到控制USB设备。 USB协议有标准的USB协议,以及各个厂家自定义的协议命令(vendor command)。这些协议命令是由USB设备中的程序(firmware)来决定的,如果我们不知道firmware中的vendor command格式,就无法控制USB设备。 在USB进行通讯时主要依靠的是pipe,pipe的一端是pc,另一端是endpoint,endpoint的方向为IN时,他是将endpoint的数据传送给pc,endpoint为OUT时,是接受pc传来的数据。 以我们实际的USB camera为例,由于在firmware中它屏蔽了标准协议读取描述符的功能,只能进行大致的猜测,下面是我分析的结果: 1、Cypress芯片有3个64byte的endpoint buffer(只能通过firmware访问),还有4个可配 置的endpoint,称为ep2,ep4,ep6,ep8(他们可以配置成大小不同,乒乓数不同,及指定它们的传输方向),我们的USB camera中ep2可能配置成1024 ,IN(1024进行乒乓输入给主机pc),BULK(批量传输),ep6配置成1024,OUT(批量传输,用于接受主机pc传来的数据)。 2、Cypress有一个外部的fifo接口,可以配置成slave模式,或master模式。我们这个USB camera配置从硬件的电路来看既可以是slave fifo模式也可以是master模式,这由firmware决定。如果是master模式的话,firmware中有一个波形描述表,来描述各个引脚的电平变化与采集图象数据的关系。可以看到pktend引脚与hact连接,这就是说如果我们设置的ep2为IN,则当hact为低电平时(数据有效)时,数据直接就灌到ep2中了,不用内部51的干预,当hact为高电平(行同步期间),pktend影响内部寄存器PKTEND,他表示强迫IN endpoint传输数据,这时他通过USB就传到pc,pc应该有一个轮循或事件通知程序通知上层程序有数据来到并上层程序接收。所以如果不考虑传输瓶颈问题,那么ep2作pingpang,不断的将数据输入的pc的buffer中。

libusb入门使用教程范例

关于内核驱动的大多数设备,比方带usb接口的hid设备,linux自身现已自带了关联的驱动,咱们只需操作设备文件便能够结束对设备大多数的操作,而别的一些设备,比方自个描绘的硬件商品,这些驱动就需求咱们驱动工程师开宣告关联的驱动了。内核驱动有它的利益,可是内核驱动在某些状况下会遇到如下的一些疑问: 1 当运用咱们商品的客户有2.4内核的方法,一起也有2.6内核的方法,咱们要描绘的驱动是要兼容两个方法的,就连makefile 咱们都要写两个。 2 当咱们要把linux移植到嵌入方法上,你会发现原先linux自带的驱动移过去还挺大的,我的内核当然是越小越好拉,这样有必要么。这还不是最抑郁的当地,若是嵌入方法是客户的,客户要采办你的商品,你俄然发现客户设备里的体系和你的环境不相同,它没有你要的驱动了,你的兰蔻清脂酵素https://www.doczj.com/doc/8b17409495.html,/程序作业不了,你会先想:“不要紧,我写个内核驱动加载一下不就行了“。却发现客户连insmod加载模块的东西都没移植,那时你就看看老天,说声我怎么那么倒运啊,客户可不想你动他花了n时辰移植的内核哦 3 花了些功夫写了个新商品的驱动,挺有成就感啊,代码质量也是恰当的有水准啊。合理你陶醉在你的代码中时,客服不断的邮件来了,“客户需求2.6.5内核的驱动,config文件我现已发你了” “客户需求双核的 2.6.18-smp 的驱动” “客户的方法是自个定制的是2.6.12-xxx “ 你恨不得把驱动的源代码给客户,这样省得编译了。你的一部分作业时辰编译内核,定制驱动 有疑问发生必定会有想方法处置疑问的人,libusb的呈现给咱们带来了某些便利,即节省了咱们的时辰,也降低了公司的本钱。所以在一些状况下,就能够思考运用libusb的无驱描绘了。 下面咱们就来详细讨论一下libusb, 并以写一个hid设备的驱动来阐明怎么运用libusb,至于文章中触及的usb协议的常识,限于篇幅,就不详细阐晓得,关联的可自行检查usb关联协议。 一libusb 介绍 libusb 描绘了一系列的外部API 为运用程序所调用,经过这些API运用程序能够操作硬件,从libusb 的源代码能够看出,这些API 调用了内核的底层接口,和kernel driver中所用到的函数所结束的功用差不多,仅仅libusb愈加挨近USB 规范。使得libusb的运用也比开发内核驱动相对简略的多。 Libusb 的编译设备请检查Readme,这里不做详解 二libusb 的外部接口 2.1 初始化设备接口 这些接口也能够称为中心函数,它们首要用来初始化并寻觅关联设备。 usb_init 函数界说:void usb_init(void); 从函数称谓能够看出这个函数是用来初始化关联数据的,这个函数咱们只需记住有必要调用就行了,并且是一开始就要调用的. usb_find_busses 函数界说:int usb_find_busses(void); 寻觅体系上的usb总线,任何usb设备都经过usb总线和计算机总线通讯。进而和其他设备通讯。此函数回来总线数。 usb_find_devices 函数界说:int usb_find_devices(void); 寻觅总线上的usb设备,这个函数必要在调用usb_find_busses()后运用。以上的三发型格https://www.doczj.com/doc/8b17409495.html,/个函数都是一开始就要用到的,此函数回来设备数量。 usb_get_busses 函数界说:struct usb_bus *usb_get_busses(void); 这个函数回来总线的列表,在高一些的版别中现已用不到了,这在下面的实例中会有阐明 2.2 操作设备接口

相关主题
文本预览
相关文档 最新文档