图解USB协议之一 枚举过程

Avatar的邮箱:avatar_1210@https://www.360docs.net/doc/1f15492034.html,

图解USB协议之一枚举过程

关键字:HD-USB12协议分析仪枚举

前不久花了2300大银败了个HD-USB12协议分析仪(肉痛…)。不过还蛮好用,以后做USB固件开发就方便多了。

看到21ic坛子里arthur0561大虾发了一系列USB协议入门总结的文章,向他(OR她?)表示一下敬意。我也准备用手头这台协议分析仪以实例和图解的方式重复叙述一下,希望对初学USB的童鞋有些帮助。

废话少说,首先图解一下USB枚举过程。

一、 总线复位及向默认地址0发送GET_DESCRIPTOR指令包,请求设备描

述。如(图一)所示:

(图一)

1)Index[4 - 5]:表示USB插入总线复位

Avatar的邮箱:avatar_1210@https://www.360docs.net/doc/1f15492034.html,

2)Index[7 - 8]:表示主机向默认地址发送GET_DESCRIPTOR指令包,详细信息也抓出来了,如(图二)所示:

(图二)

3)Index[15 - 17]:表示设备向主机发送设备描述数据Index[16]

4)Index[18 - 19]:表示主机完成GET_DESCRIPTOR指令后,给设备发送一个空应答

二、 再次复位总线及向设备发送SET_ADDRESS指令包,设置设备地址。如

(图三)所示:

(图三)

1)Index[22 - 23]:表示再次总线复位,该复位自动完成,不是手工插拔USB完成

Avatar的邮箱:avatar_1210@https://www.360docs.net/doc/1f15492034.html,

2)Index[25 - 27]:表示主机向默认地址发送SET_ADDRESS指令包,详细信息如(图四)所示:

(图四)

3)Index[29 - 31]:表示设备完成SET_ADDRESS指令后,给主机发送一个空应答

三、 向第二步设定的设备地址发送GET_DESCRIPTOR指令包,请求设备描

述。如(图五)所示:

(图五)

Avatar的邮箱:avatar_1210@https://www.360docs.net/doc/1f15492034.html,

1)Index[33 - 35]:表示主机向地址01发送GET_DESCRIPTOR指令包,详细信息见(图六)

(图六)

2)Index[41 - 43]:表示设备向主机发送设备描述数据Index[42]

3)Index[45 - 47]:表示设备向主机发送设备描述数据Index[46]

4)Index[48 - 50]:表示主机完成GET_DESCRIPTOR指令后,给设备发送一个空应答

四、 向第二步设定的设备地址发送GET_DESCRIPTOR指令包,请求配置描

述。如(图七)所示:

(图七)

欢迎访问avatar的电子博客:https://www.360docs.net/doc/1f15492034.html,/avatar/

Avatar的邮箱:avatar_1210@https://www.360docs.net/doc/1f15492034.html,

1)Index[52 - 54]:表示主机向地址01发送GET_DESCRIPTOR指令包,详细信息见(图八)

(图八)

2)Index[57 - 59]:表示设备向主机发送配置描述数据Index[58]

3)Index[60 - 62]:表示主机完成GET_DESCRIPTOR指令后,给设备发送一个空应答

五、 重复向第二步设定的设备地址发送GET_DESCRIPTOR指令包,取完所

有设备描述及配置描述;

六、 向第二步设定的设备地址发送SET_CONFIGURATION指令包,设置配

置描述。如(图九)所示:

欢迎访问avatar的电子博客:https://www.360docs.net/doc/1f15492034.html,/avatar/

Avatar的邮箱:avatar_1210@https://www.360docs.net/doc/1f15492034.html,

(图九)

1)Index[139 - 141]:表示主机向地址01发送SET_CONFIGURATION指令包,详细信息见(图十)

(图十)

2)Index[143 - 145]:表示设备完成SET_CONFIGURATION指令后,给主机发送一个空应答

以上的USB枚举过程是根据现有特定设备捕获得到,并不完整涉及到USB 协议的所有指令包,如GET_STATUS指令包、CLEAR_FEATURE指令包、SET_FEATURE指令包、SET_DESCRIPTOR指令包、GET_CONFIGURATION 指令包、GET_INTERFACE指令包、SET_INTERFACE指令包、SYNCH_FRAME 指令包等。

HDLC协议控制器的设计

目录 内容摘要 (1) 关键词 (1) Abstract (1) Key Words (1) 1.绪论……………………………………………………………………2 1.1研究的意义 (2) 1.2本设计的主要功能………………………………………………2 2.HDLC协议综述 (3) 2.1 HDLC协议的产生背景 (3) 2.2 HDLC协议的帧结构 (4) 2.3 HDLC协议的规程分析 (7) 3.HDLC协议控制器的设计………………………………………………8 3.1 HDLC协议控制器设计方案选择…………………………………8 3.2 FPGA的设计原则 (9) 3.3 HDLC协议控制器总框架………………………………………10 3.4 HDLC帧发送器的设计 (11) 3.5 HDLC帧接收器的设计 (1) 5 参考文献…………………………………………………………………18 致谢 (19) [说明:在本页中,“目录”二字居中,宋体小二号,加黑, 其它统一由宋体小四号,不加黑排版打印、行间距为1.5]

内容摘要:HDLC(高级数据链路控制)协议是一种面向比特的链路控制规程,广泛的用作数据链路层的控制协议。论文在分析和研究HDLC协议的基础上,提出了一种基于FPGA(现场可编程门阵列)的HDLC协议控制器的设计。对HDLC协议控制器的功能进行划分,分别设计了标志位的检测和生成、插零和删零、FCS的校验等控制模块。 采用VHDL硬件描述语言在FPGA内部实现HDLC协议的各功能模块,本设计使用QuartusII 9.1平台实现代码编写、综合、编译、仿真。对HDLC链路控制规程功能,帧控制和FCS校验功能进行了仿真实现。 关键词:HDLC;FPGA;帧收发器; Abstract:(宋体,小四号,加黑)××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××。(宋体,小四号,不加黑) Key words:(宋体,小四号,加黑)×××□□×××□□×××□□(宋体,小四号,不加黑)

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

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%的带宽为批传输和控制传输保留,数据块传输仅在带宽满足要求的情况下才会出现。

usb的协议

竭诚为您提供优质文档/双击可除 usb的协议 篇一:usb接口协议 usb接口协议简介 https://www.360docs.net/doc/1f15492034.html,b以及协议简介 usb(universalserialbus)是近年来应用在pc领域的新型接口技术,它是由一些pc大厂商如microsoft、intel 等为了解决日益增加的pc外设与有限的主板插槽和端口之间的矛盾而制定的一种通用串行接口。 数据通信协议部分是usb的核心内容。主要包括:以差模串行信号为载体传送二进制代码来传输信号;数据包作为最基本的完整信息单元,包含一系列数据信息。数据包可以分解为更小的单元—域;以包为基础,构成usb的三种事务。进而,组合不同的传输类型,传输各种类型的数据,实现usb 的各种功能。 https://www.360docs.net/doc/1f15492034.html,b通信机制 为了细化usb的通信机制,usb协议的开发者采用了分层的概念,每一层传输的数据结构对其他逻辑层是透明的,usb设备和usb主机通信的逻辑结构和每层的逻辑通道。在

hsot端,应用软件(clientsw)不能直接访问usb总线,而必须通过usb系统软件和usb主机控制器来访问usb总线,在usb总线上和usb设备进行通讯。从逻辑上可以分为功能层、设备层和总线接口层三个层次。其中功能层完成功能级的描述、定义和行为;设备级则完成从功能级到传输级的转换,把一次功能级的行为转换为一次一次的基本传输;usb 总线接口层则处理总线上的bit流,完成数据传输的物理层实现和总线管理。途中黑色箭头代表真实的数据流,灰色箭头代表逻辑上的通讯。如图所示: 主机物理设备 逻辑上的数据流 实际数据流 以usb摄像头设备为例,视频播放软件想通过usb总线得到usb摄像头捕捉的视频数据,这就相当于在功能层上。应用软件是视频播放软件,功能硬件是usb摄像头。而这些数据的读取需要usb设备层提供的服务,在这一层上,主要是usb设备的驱动调度主机控制器控制器向usb摄像头发出读请求。每个usb设备会有多个管道,使用哪个管道,传输的大小都需要指定。这个层次的usb系统软件就是usb摄像头的驱动程序。而在usb设备一端一般会有小单片机或者处理芯片负责响应这种读请求,而这一层的传输又依赖于usb 总线接口层的服务。在这一层,完全是usb的物理协议,包

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采用轮询的广播机制 轮询的广播机制

HDLC协议

什么是HDLC?HDLC是什么意思? HDLC英文全称High level Data Link Control,高级数据链路控制,HDLC是一个在同步网上传输数据、面向位的数据链路层协议,它是个由1970年代IBM所提出的对称式资料连结控制(Synchronous Data Link Control,SDLC)所研发出来的ISO标准。 高级数据链路控制(HDLC)协议是基于的一种数据链路层协议,促进传送到下一层的数据在传输过程中能够准确地被接收(也就是差错释放中没有任何损失并且序列正确)。HDLC 的另一个重要功能是流量控制,换句话说,一旦接收端收到数据,便能立即进行传输。H DLC 具有两种不同的实现方式:高级数据链路控制正常响应模式即HDLC NRM(又称为SDLC)和 HDLC 链路访问过程平衡(LAPB)。其中第二种使用更为普遍。HDLC 是 X.25 栈的一部分。 HDLC 是面向比特的同步通信协议,主要为全双工点对点操作提供完整的数据透明度。它支持对等链路,表现在每个链路终端都不具有永久性管理站的功能。另一方面,HDLC NRM 具有一个永久基站以及一个或多个次站。 HDLC LAPB 是一种高效协议,为确保流量控制、差错监测和恢复它要求额外开销最小。如果数据在两个方向上(全双工)相互传输,数据帧本身就会传送所需的信息从而确保数据完整性。

帧窗口是用于在接收第一个帧已经正确收到的确认之前发送复帧。这就意味着在具有长“turn-around”时间滞后的情况下数据能够继续传送,而不需要停下来等待响应。例如在卫星通信中会发生这种情形。 通常,帧分为三种类型: 信息帧:在链路上传送数据,并封装OSI体系的高层; 管理帧:用于实现流量控制和差错恢复功能; 无编号帧:提供链路的初始化和终止操作。 协议结构 Flag ― 该字段值恒为 0x7E。 Address Field ― 定义发送帧的次站地址,或基站发送帧的目的地。该字段包括服务访问点(6比特)、命令/响应位(表示帧是否与节点发送的信息帧有关或帧是否被节点接收)、地址扩展位(通常设置为1字节长)。当设置错误时,表示一个附加字节。

实验16 路由器接口HDLC协议封装配置(改写)

实验18路由器接口HDLC协议封装配置 【背景知识】 教材4.4.3内容。理解掌握如下知识点: (1)理解在广域网环境下采用串行方式进行通信,因此需要相应的串行通信协议,如HDLC、PPP、Frame-Relay等; (2)掌握串行通信时的DTE和DCE概念,理解主要区别在于DCE提供时钟信号而DTE只是接受时钟信号; (3)cisco路由器的串行端口上,HDLC是缺省配置,而且采用的是cisco的私有协议HDLC,而不是通用的HDLC标准。 (4)在实验室环境中,将两台路由器直接相连(称为背靠背连接)。虽然路由器本质上属于DTE,但在此环境下可以将其中一台路由器模拟为DCE。究竟哪台路由器是DCE,取决于具体的连线。确定为DCE的路由器串行端口,必须配置时钟信号。 【实验拓扑】 实验线路连接图8-21所示,实验时使用Cisco Packet Tracer5.2完成拓扑结构搭建。 图8-21 实验18线路连接图 【实验内容】 (1) 选择两台C2811 路由器,分别关闭电源后添加WIC-2T 模块,添加位置为插槽0/接口适配器0,如下图8.22 所示。开启电源之后使用Serial 电缆将两台路由器的Serial0/0/0接口进行连接,连接时使得C2811B 为DCE 端、C2811A 为DTE 端。 图8.22 WIC-2T 模块安装位置 【提示1】图8.22所示界面,可以单击某台路由器的图标,然后在弹出的框中选择“Physical”选项卡,接着在左侧一栏中选择WIC-2T,最后按住鼠标左键不变拖动到对应的适配器即可。 【提示2】在选择线缆时,用串行线旁边带时钟符号的线先连接C2811B,那么C2811B即为DCE 端,线另外一头所连接的路由器C2811A就是DTE;反之,亦成立。 (2) 参阅教材4.4.3 中内容,配置C2811A 接口Serial0/0/0 的IP 地址192.168.1.1/24 和二层协议封装为HDLC,配置C2811B 接口Serial0/0/0 的IP 地址192.168.1.2/24 和二层协

HDLC协议概述

HDLC协议概述 刘文龙(北京理工大学信息与电子学院)学号2120110886 摘要:不同企业和不同公司的产品越来越先进,单板也越来越复杂,单板与单板之间,与终端之间数据传输的容量与可靠性要求也越来越高,简单的通讯方式满足不了要求的。HDLC 链路控制协议是现在常见的同步协议,为使不了解它的人有一个初步的认识,本文对数据链路层的HDLC协议进行综述介绍,主要内容包括HDLC的发展数据链路控制协议,HDLC协议的主要内容、存在的技术标准以及HDLC的应用和发展前景等。并重点介绍了HDLC的基本概念及帧格式。如果想进一步了解,可以参考和查阅其他相关资料。 关键词:HDLC,数据链路层,帧格式,帧结构 一HDLC概述 1.1 HDLC的发展历史 高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data Link Control)协议扩展开发而成的.其最大特点是不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输。1974年,IBM公司率先提出了面向比特的同步数据链路控制规程SDLC(S ynchronous Data Link Control)。 随后,ANSI和ISO均采纳并发展了SDLC,并分别提出了自己的标准: 1* ANSI的高级通信控制过程ADCCP(Advanced Data Control Procedure), 2* ISO的高级数据链路控制规程HDLC(High-level Data Link Contl)。 从此,HDLC协议开始得到了人们的广泛关注,并开始应用于通信领域的各个方面。1.2 HDLC的特点 HDLC是面向比特的数据链路控制协议的典型代表,有着很大的优势: 1* HDLC协议不依赖于任何一种字符编码集; 2*数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现; 3*全双工通信,有较高的数据链路传输效率; 4*所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高; 5*传输控制功能与处理功能分离,具有较大灵活性。 由于以上特点,目前网络设计及整机内部通讯设计普遍使用HDLC数据链路控制协议。HDLC已经成为通信领域额不可缺少的一个重要协议。

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 体

(完整word版)通俗易懂的USB协议详解(转载)

Usb详解 USB作为一种串行接口,应用日益广泛。如同每个工程设计人员必须掌握I2C,RS232这些接口一样,我们也必须掌握usb. 但是usb的接口协议实在有点费解,linux uhci驱动作者之一Alan Stern曾经就说过“The USB documentation is downright evil. Most of it is just crap, written by a committee. You're better off ignoring most of it ”。 本文将从整体上介绍usb协议,包括usb host ,usb hub,usb function。希望能给读者一个总体上的了解。也 因此,文章将分成相应的三部分讲解。 一。usb function 1。初识https://www.360docs.net/doc/1f15492034.html,b是一种串行接口协议,它靠d+,d-两条数据线构成的差分线来进行数据传输,这让我们非常感兴 趣它到底和我们通常熟悉两线rs232/485有何区别。了解这种区别有助于我们对usb作一个深入的了解。那么让 我们回想一下到底一个两线rs232的数据是如何传送的,如图一: 在这里我们的重点在于,我们发现要在串行口传送数据一个最体码的要求恐怕就是:要知道数据传输何时开始, 何时结束。即如何delimit.那么rs232怎么做的。显然,在idle(空闲)时,即无数据传送时,数据线处于高电 平,等到有数据开始传送,发送方首先拉低数据线(start),表示数据传输开始,接受端也因为这个“start”信号 开始准备接受即将到来的数据,类似一次握手,随后,在两者之间的数据传送开始,结束后主方再次拉高数据 线,表示结束传输,自此两者重新进入Idle状态。等待下一轮传送开始。 了解了rs232,那么我们自然想到usb如何做到这个呢,既然是串行位流传输,也理所当然的解决这个问题。没错, Usb协议必然要解决这个问题,让我们作一个类似rs232的比较吧!类似于rs232,usb的传输桢如图二:

HDLC协议原理及其概述

HDLC协议原理及其应用概述 摘要:数据链路层的主要功能是在物理层的数字比特流或字节流上传输信息帧,而高级数据链路控制HDLC(High-level Data Link Control)规程是通信领域现阶段应用十分广泛的一个数据链路层协议。HDLC是面向比特的数据链路控制协议的典型代表,它是由国际标准化组织(ISO)定制的,为在数据链路层上操作提供了一系列的标准。本文介绍了HDLC协议的发展历史、主要内容、存在的标准及其应用和发展前景。 关键词:数据链路层、HDLC协议 引言 根据通信的功能,整个通信过程可以分为若干层,每一层的对等协议通过使用下层服务对齐上层提供服务。其中数据链路层在物理层提供服务的基础上向网络层提供透明的和可靠的数据传输服务。为此,数据链路层必须具备一系列相应的功能,主要有:将数据组合成帧,并向帧中插入地址或协议类型信心;提供差错控制以确保可靠的传输;提供流量控制,以避免接收端缓冲区溢出;提供链路管理控制功能。 数据链路层的协议可以分为两类:面向字符的协议和面向比特的协议。其中HDLC(高级数据链路控制)就是一种重要的面向比特的数据链路层协议。 一.HDLC的发展历史 最早的数据链路层协议是面向字符的,有很多缺点:控制报文和数据报文格式不一样;采用停止等待方式,效率低;只对数据部分进行差错控制,可靠性较差;系统每增加一种功能就需要设定一个新的控制字符。为克服这些缺点,上世纪七十年代初,IBM公司推出了著名的体系结构SNA。在SNA的数据链路层规程采用了面向比特的规程SDLC(Synchronous Data Link Control)。所谓“面向比特”就是帧首部中的控制信息不是由几种不同的控制字符组成,而是由首部中各比特的值来决定。由于比特的组合是多种多样的,因此DLC协议能够满足各种用户的不同需求。此外,SDLC还使用同步传输,效率比异步传输有了很大的提高。后来ISO把SDLC修改后成为HDLC(High-level Data Link Control),作为国际标准ISO 3309。我国相应的标准是GB 7496。CCITT则将HDLC再修改后称为链路接入规程LAP(Link Access Procedure),并作为X.25建议书的一部分。不久,HDLC的新版本又把LAP修改为LAPB,“B”表示平衡型(Balanced),所以LAPB叫做链路接入规程(平衡型)。

USB协议详解

USB HID介绍 HID是一种USB通信协议,无需安装驱动就能进行交互,在学习HID之前,先来复习一下USB 协议的相关内容。 USB设备描述符-概述 当插入USB设备后,主机会向设备请求各种描述符来识别设备。那什么是设备描述符呢? Descriptor即描述符,是一个完整的数据结构,可以通过C语言等编程实现,并存储在USB 设备中,用于描述一个USB设备的所有属性,USB主机是通过一系列命令来要求设备发送这些信息的。 描述符的作用就是通过命令操作来给主机传递信息,从而让主机知道设备具有什么功能、属于哪一类设备、要占用多少带宽、使用哪类传输方式及数据量的大小,只有主机确定了这些信息之后,设备才能真正开始工作。 USB有那些标准描述符? USB有5种标准描述符:设备描述符、配置描述符、字符描述符、接口描述符、端点描述符。 描述符之间有一定的关系,一个设备只有一个设备描述符,而一个设备描述符可以包含多个配置描述符,而一个配置描述符可以包含多个接口描述符,一个接口使用了几个端点,就有几个端点描述符。由此我们可以看出,USB的描述符之间的关系是一层一层的,最上一层是设备描述符,下面是配置描述符,再下面是接口描述符,再下面是端点描述符。在获取描述符时,先获取设备描述符,然后再获取配置描述符,根据配置描述符中的配置集合长度,一次将配置描述符、接口描述符、端点描述符一起一次读回。其中可能还会有获取设备序列号,厂商字符串,产品字符串等。 设备描述符 struct _DEVICE_DEscriptOR_STRUCT { BYTE bLength; //设备描述符的字节数大小 BYTE bDescriptorType; //描述符类型编号,为0x01 WORD bcdUSB; //USB版本号 BYTE bDeviceClass; //USB分配的设备类代码,0x01~0xfe为标准设备类,0xff为厂商自定义类型,0x00不是在设备描述符中定义的,如HID BYTE bDeviceSubClass; //usb分配的子类代码,同上,值由USB规定和分配的,HID 设备此值为0 BYTE bDeviceProtocl; //USB分配的设备协议代码,同上HID设备此值为0 BYTE bMaxPacketSize0; //端点0的最大包的大小 WORD idVendor; //厂商编号 WORD idProduct; //产品编号 WORD bcdDevice; //设备出厂编号 BYTE iManufacturer; //描述厂商字符串的索引

HDLC协议

HDLC 高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data Link Control)协议扩展开发而成的. 七十年代初,IBM公司率先提出了面向比特的同步数据链路控制规程SDLC (Synchronous Data Link Control)。随后,ANSI和ISO均采纳并发展了SDLC,并分别提出了自己的标准:ANSI的高级通信控制过程ADCCP(Advanced Data Control Procedure),ISO的高级数据链路控制规程HDLC(High-level Data Link Contl)。 链路控制协议着重于对分段成物理块或包的数据的逻辑传输,块或包由起始标志引导并由终止标志结束,也称为帧。帧是每个控制、每个响应以及用协议传输的所有信息的媒体的工具。所有面向比特的数据链路控制协议均采用统一的帧格式,不论是数据还是单独的控制信息均以帧为单位传送。 每个帧前、后均有一标志码01111110,用作帧的起始、终止指示及帧的同步。标志码不允许在帧的内部出现,以免引起畸意。为保证标志码的唯一性但又兼顾帧内数据的透明性,可以采用“0比特插入法”来解决。该法在发送端监视除标志码以外的所有字段,当发现有连续5个“1”出现时,便在其后添插一个“0”,然后继续发后继的比特流。在接收端,同样监除起始标志码以外的所有字段。当连续发现5个“1”出现后,若其后一个比特“0”则自动删除它,以恢复原来的比特流;若发现连续6个“1”,则可能是插入的“0”发生差错变成的“1”,也可能是收到了帧的终止标志码。后两种情况,可以进一步通过帧中的帧检验序列来加以区分。“0比特插入法”原理简单,很适合于硬件实现。 在面向比特的协议的帧格式中,有一个8比特的控制字段,可以用它以编码方式定义丰富的控制命令和应答,相当于起到了BSC协议中众多传输控制字符和转义序列的功能。 作为面向比特的数据链路控制协议的典型,HDLC具有如下特点:协议不依赖于任何一种字符编码集;数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;全双工通信,不必等待确认便可连续发送数据,有较高的数据链路传输效率;所有帧均采用CRC校验,对信息帧进行编号,可防止漏收或重份,传输可靠性高;传输控制功能与处理功能分离,具有较大灵活性和较完善的控制功能。由于以上特点,目前网络设计普遍使用HDLC作为数据链路管制协议。 1.HDLC的操作方式 HCLC是通用的数据链路控制协议,当开始建立数据链路时,允许选用特定的操作方式。所谓链路操作方式,通俗地讲就是某站点以主站方式操作,还是以从站方式操作,或者是二者兼备。 在链路上用于控制目的站称为主站,其它的受主站控制的站称为从站。主站负责对数据流进行组织,并且对链路上的差错实施恢复。由主站发往从站的帧称为命令帧,而由由站返回主站的帧称响应帧。 连有多个站点的链路通常使用轮询技术,轮询其它站的站称为主站,而在点到点链路中每个站均可为主站。主站需要比从站有更多的逻辑功能,所以当终端与主机相连时,主机一般总是主站。 在一个站连接多条链中的情况下,该站对于一些链路而言可能是主站,而对另外一些链路而言又可能是从站。 有些可兼备主站和从站的功能,这站称为组合站,用于组合站之间信息传输的协议是对称的,即在链路上主、从站具有同样的传输控制功能,这又称作平衡操作,在计算

通信网_HDLC协议概述

HDLC协议概述 摘要 本文首先介绍了HDLC的发展历史以及HDLC协议的链路配置、帧结构等内容,并对现存的HDLC标准和其应用范围及发展前景进行了概述。 关键词 HDLC协议数据链路层标准 正文 一、HDLC发展历史 高级数据链路控制(High-level data link control),简称HDLC,是一个在同步网上传输数据、面向比特的数据链路层协议。 60年代,英国NPL网首先提出分组交换的概念。之后,美国的ARPA网采用分组交换的方式运行。计算机网络纷纷出现,但原来用于终端到计算机之间的通信的控制规程都是以字符为基础的,它们往往难以满足计算机到计算机之间的通信要求。70年代初,IBM公司率先提出了面向比特的同步数据链路控制规程SDLC(Synchronous Data Link Control),SDLC是IBM 系统网络体系结构Systems Network Architecture(SNA)数据链路层的协议。随后,美国国家标准化协会ANSI将SDLC修改为ADCCP(Advanced Data Control Procedure)做为国家标准;ISO将修改后的SDLC称为高级数据链路控制HDLC(High-level Data Link Contl),并将它做为国际标准。HDLC与基本型规程相比较,它的主要进步在于引入一个标志F(01111110)和一个0比特插入机构,使传输数据的控制机构简单,并把面向比特的能力引入传输机构。 国际标准化组织ISO 于1981年正式推荐了一个网络系统结构----七层参考模型,叫做开放系统互连模型(Open System Interconnection,OSI)。OSI 参考模型将整个网络通信的功能划分为七个层次,它们由低到高分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 HDLC协议 数据链路层,把从物理层来的原始数据打包成帧。数据链路层负责帧在计算机之间的无差错传递。在ISO标准协议集中,数据链路层采用了HDLC协议。

USB接口协议

USB 接口协议简介 以及协议简介 USB (Universal Serial Bus )是近年来应用在PC 领域的新型接口技术,它是由一些PC 大厂商如Microsoft 、Intel 等为了解决日益增加的PC 外设与有限的主板插槽和端口之间的矛盾而制定的一种通用串行接口。 数据通信协议部分是USB 的核心内容。主要包括:以差模串行信号为载体传送二进制代码来传输信号;数据包作为最基本的完整信息单元,包含一系列数据信息。 数据包可以分解为更小的单元—域;以包为基础,构成USB 的三种事务。进而,组合不同的传输类型,传输各种类型的数据,实现USB 的各种功能。 通信机制 为了细化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)传输,如何保证每次包传输不丢失数据等。 传输的数据格式 其他传输协议一样,在物理层,USB当然也是通过二进制数据进行传输的,首先二进制数据构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输。 域: 是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定),域可分为七个类型: 同步域(SYNC) 八位,值固定为0000 0001,用于本地时钟和输入同步。 标识域(PID) 由四位标识符+四位标识符反码构成,表明包的类型和格式,这是个很重要的部分,这里能够计算出,USB的标识码有16种。 地址域(ADDR) 七位地址,代表了设备在主机上的地址,地址000 0000被命名为零地址,是任何一个设备第一次连接到主机时,在被主机配置、枚举前的默认地址,由此能够知道为什么一个USB 主机只能接127个设备的原因。 端点域(ENDP) 四位,由此可知一个USB设备有的端点数量最大为16个。

ppp协议和hdlc协议区别

PPP帧格式和HDLC帧格式相似,如图1所示。二者主要区别:PPP 是面向字符的,而HDLC是面向位的 图1 PPP帧格式 可以看出,PPP帧的前3个字段和最后两个字段与HDLC的格式是一样的。标志字段F为0x7E(Ox表示7巳,但地址字段A和控制字段C 都是固定不变的,分别为OxFF 0x03。PPP协议不是面向比特的,因而所有的PPP帧长度都是整数个字节。 与HDLC不同的是多了 2个字节的协议字段。协议字段不同,后面的信息字段类型就不同。如: 0x0021――信息字段是IP数据报 0xC02信息字段是链路控制数据 LCP 0x8021 ――信息字段是网络控制数据 NCP 0xC023信息字段是安全性认证 PAP 0xC025信息字段是LQR 0xC223信息字段是安全性认证 CHAP 当信息字段中出现和标志字段一样的比特0x7E时,就必须采取一些措施。因PPP协议是面向字符型的,所以它不能采用 HDLC所使用的零比特插入

法,而是使用一种特殊的字符填充。具体的做法是将信息字段中出现的每一个0x7E字节转变成2字节序列(0x7D, 0x5E)。若信息字段中出现一个0x7D的字节,则将其转变成2字节序列(0x7D, 0x5D)。若信息字段中出现ASCI码的控制字符,则在该字符前面要加入一个0x7D字节。这样做的目的是防止这些表面上的 ASCI码控制字符被错误地解释为控制字符。HDLC帧结构 HDLC的帧格式如图3所示,它由六个字段组成,这六个字段可以分为五中类型,即标志序列(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验字段(FCS)。在帧结构中允许不包含信息字段 I。 图3 HDLC帧结构 (1)标志序列(F) HDLC指定采用01111110为标志序列,称为F标志。要求所有的 帧必须以F标志开始和结束。接收设备不断地搜寻F标志,以实现帧同步,从而保证接收部分对后续字段的正确识别。另外,在帧与帧的空载期间,可以连续发送F,用来作时间填充。

USB2.0协议入门中文版

USB 2.0规范 USB 体系简介 USB 是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度可达 480Mb/S。USB 支持“总线供电”和“自供电”两种供电模式。在总线供电模式下,设备最多可以获得 500mA 的电流。USB2.0 被设计成为向下兼容的模式,当有全速(USB 1.1)或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以通过分离传输来支持它们。一条 USB 总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、HUB 以及U SB 功能设备。 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 体系内仅允许一个数据包的传输,即不同物理传输线上看到的数据包都是同一被广播的数据包。 USB 采用“令牌包”-“数据包”-“握手包”的传输机制,在令牌包中指定数据包去

HDLC协议完整过程图解

下图是HDLC的工作过程示意图,对每个过程进行解释。 (a)链路的建立和清除。 SABM:A向B发出SABM无编号帧,设置异步平衡模式; SABM:超时,没有收到B发出的UA无编号确认帧,发送端自动重发;UA:此时B准备就绪,发出UA确认帧,链接建立; DISC:A发出DISC断开帧; UA:B回应UA确认帧,链接拆除。

(b)双向数据交换 I00:A发送第0帧信息帧,并表示期望接收到对方第0帧信息; I01:B发送第0帧信息帧,并表示期望接收到对方第1帧信息,同时表示对方第1帧以前的帧已经可靠地接收; I11:A发送第1帧信息帧,并表示期望接收到对方第1帧信息,同时表示对方第1帧以前的帧已经可靠地接收; I21:A发送第2帧信息帧,并表示期望接收到对方第1帧信息; I13:B发送第1帧信息帧,并表示期望接收到对方第3帧信息,同时表示对方第3帧以前的帧已经可靠地接收; I32:A发送第3帧信息帧,并表示期望接收到对方第2帧信息,同时表示对方第2帧以前的帧已经可靠地接收; I24:B发送第2帧信息帧,并表示期望接收到对方第4帧信息,同时表示对方第4帧以前的帧已经可靠地接收; I34:B发送第3帧信息帧,并表示期望接收到对方第4帧信息; RR4:A表示准备接收4号帧信息,确认序号为4以前的帧已经接收。

(c)接收站忙 I30:B发出第3帧信息帧,表示期望并表示期望接收到对方第0帧信息;RNR4:A表示暂停接收下一帧,无法接受4号帧信息,确认4及其以前的各帧RNR0P:B询问A是否准备就绪,期待A发送信息帧0; RNR4F:A仍未准备就绪,无法接受4号帧信息; RNR0P:B再次询问A是否准备就绪,期待A发送信息帧0; RR4F:A发出监督帧,RR表示准备接收4号帧信息,确认序号为4以前的帧已经接收。 I40:B发出第4帧信息帧,表示期望并表示期望接收到对方第0帧信息; (d)后退重发

USB接口协议

USB 接口协议简介 https://www.360docs.net/doc/1f15492034.html,B 以及协议简介 USB (Universal Serial Bus )是近年来应用在PC 领域的新型接口技术,它是由一些PC 大厂商如Microsoft 、Intel 等为了解决日益增加的PC 外设与有限的主板插槽和端口之间的矛盾而制定的一种通用串行接口。 数据通信协议部分是USB 的核心内容。主要包括:以差模串行信号为载体传送二进制代码来传输信号;数据包作为最基本的完整信息单元,包含一系列数据信息。 数据包可以分解为更小的单元—域;以包为基础,构成USB 的三种事务。进而,组合不同的传输类型,传输各种类型的数据,实现USB 的各种功能。 https://www.360docs.net/doc/1f15492034.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.360docs.net/doc/1f15492034.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个。

相关文档
最新文档