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的传输线分别由地线、电源线、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字节,在不同的传输类型中,数据域的长度各不相同,但必须为整数个字节的长度

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、数据包阶段:按输入、输出发送相应的数据

3、握手包阶段:返回数据接收情况,在同步传输的IN和OUT事务中没有这个阶段,这是比较特殊的。

事务的三种类型如下(以下按三个阶段来说明一个事务):

1、 IN事务:

令牌包阶段——主机发送一个PID为IN的输入包给设备,通知设备要往主机发送数据;

数据包阶段——设备根据情况会作出三种反应(要注意:数据包阶段也不总是传送数据的,根据传输情况还会提前进入握手包阶段)

1)设备端点正常,设备往入主机里面发出数据包(DATA0与DATA1交替);2)设备正在忙,无法往主机发出数据包就发送NAK无效包,IN事务提前结束,到了下一个IN事务才继续;

3)相应设备端点被禁止,发送错误包STALL包,事务也就提前结束了,总线进入空闲状态。

握手包阶段——主机正确接收到数据之后就会向设备发送ACK包。

2、 OUT事务:

令牌包阶段——主机发送一个PID为OUT的输出包给设备,通知设备要接收数据;

数据包阶段——比较简单,就是主机会设备送数据,DATA0与DATA1交替

握手包阶段——设备根据情况会作出三种反应

1)设备端点接收正确,设备往入主机返回ACK,通知主机可以发送新的数据,如果数据包发生了CRC校验错误,将不返回任何握手信息;

2)设备正在忙,无法往主机发出数据包就发送NAK无效包,通知主机再次发送数据;

3)相应设备端点被禁止,发送错误包STALL包,事务提前结束,总线直接进入空闲状态。

3、SETUT事务:

令牌包阶段——主机发送一个PID为SETUP的输出包给设备,通知设备要接收数据;

数据包阶段——比较简单,就是主机会设备送数据,注意,这里只有一个固定为8个字节的DATA0包,这8个字节的内容就是标准的USB设备请求命令(共有11条,具体请看问题七)

握手包阶段——设备接收到主机的命令信息后,返回ACK,此后总线进入空闲状态,并准备下一个传输(在SETUP事务后通常是一个IN或OUT事务构成的传输)

(四)传输:传输由OUT、IN、SETUP事务其中的事务构成,传输有四种类型,中断传输、批量传输、同步传输、控制传输,其中中断传输和批量转输的结构一

样,同步传输有最简单的结构,而控制传输是最重要的也是最复杂的传输。

1、中断传输:由OUT事务和IN事务构成,用于键盘、鼠标等HID设备的数据传输中

2、批量传输:由OUT事务和IN事务构成,用于大容量数据传输,没有固定的传输速率,也不占用带宽,当总线忙时,USB会优先进行其他类型的数据传输,而暂时停止批量转输。

3、同步传输:由OUT事务和IN事务构成,有两个特殊地方,第一,在同步传输的IN和OUT事务中是没有返回包阶段的;第二,在数据包阶段所有的数据包都为DATA0

4、控制传输:最重要的也是最复杂的传输,控制传输由三个阶段构成(初始设置阶段、可选数据阶段、状态信息步骤),每一个阶段可以看成一个的传输,也就是说控制传输其实是由三个传输构成的,用来于USB设备初次加接到主机之后,主机通过控制传输来交换信息,设备地址和读取设备的描述符,使得主机识别设备,并安装相应的驱动程序,这是每一个USB开发者都要关心的问题。

1、初始设置步骤:就是一个由SET事务构成的传输

2、可选数据步骤:就是一个由IN或OUT事务构成的传输,这个步骤是可选的,要看初始设置步骤有没有要求读/写数据(由SET事务的数据包阶段发送的标准请求命令决定)

3、状态信息步骤:顾名思义,这个步骤就是要获取状态信息,由IN或OUT事务构成构成的传输,但是要注意这里的IN和OUT事务和之前的INT和OUT事务有两点不同:

1)传输方向相反,通常IN表示设备往主机送数据,OUT表示主机往设备送数据;在这里,IN表示主机往设备送数据,而OUT表示设备往主机送数据,这是为了和可选数据步骤相结合;

2)在这个步骤里,数据包阶段的数据包都是0长度的,即SYNC+PID+CRC1 6

除了以上两点有区别外,其他的一样,这里就不多说

(思考:这些传输模式在实际***作中应如何通过什么方式去设置?)

问题五:标识码有哪些?

答案五:如同前面所说的标识码由四位数据组成,因此可以表示十六种标识码,在USB1.1规范里面,只用了十种标识码,USB2.0使用了十六种标识码,标识码的作用是用来说明包的属性的,标识码是和包联系在一起的,首先简单介绍一下数据包的类型,数据包分为令牌包、数据、握手包和特殊包四种(具体分类请看问题七),标识码分别有以下十六种:

令牌包 :

0x01 输出(OUT)启动一个方向为主机到设备的传输,并包含了设备地址和标号

0x09 输入 (IN) 启动一个方向为设备到主机的传输,并包含了设备地址和标号

0x05 帧起始(SOF)表示一个帧的开始,并且包含了相应的帧号

0x0d 设置(SETUP)启动一个控制传输,用于主机对设备的初始化

数据包 :

0x03 偶数据包(DATA0),

0x0b 奇数据包(DATA1)

握手包:

0x02 确认接收到无误的数据包(ACK)

0x0a 无效,接收(发送)端正在忙而无法接收(发送)信息

0x0e 错误,端点被禁止或不支持控制管道请求

特殊包 0x0C 前导,用于启动下行端口的低速设备的数据传输

问题六:USB主机是如何识别USB设备的?

答案六:当USB设备插上主机时,主机就通过一系列的动作来对设备进行枚举配置(配置是属于枚举的一个态,态表示暂时的状态),这这些态如下:

1、接入态(Attached):设备接入主机后,主机通过检测信号线上的电平变化来发现设备的接入;

2、供电态(Powered):就是给设备供电,分为设备接入时的默认供电值,配置阶段后的供电值(按数据中要求的最大值,可通过编程设置)

3、缺省态(Default):USB在被配置之前,通过缺省地址0与主机进行通信;

4、地址态(Address):经过了配置,USB设备被复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态;

5、配置态(Configured):通过各种标准的USB请求命令来获取设备的各种信息,并对设备的某此信息进行改变或设置。

6、挂起态(Suspended):总线供电设备在3ms内没有总线***作,即U SB总线处于空闲状态的话,该设备就要自动进入挂起状态,在进入挂起状态后,总的电流功耗不超过280UA。

问题七:刚才在答案四提到的标准的USB设备请求命令究竟是什么?

答案七:标准的USB设备请求命令是用在控制传输中的“初始设置步骤”里的数据包阶段(即DATA0,由八个字节构成),请看回问答四的内容。标准USB设备请求命令共有11个,大小都是8个字节,具有相同的结构,由5个字段构成(字段是标准请求命令的数据部分),结构如下(括号中的数字表示字节数,首字母bm,b,w分别表示位图、字节,双字节):

bmRequestType(1)+bRequest(1)+wvalue(2)+wIndex(2)+wLength(2)

各字段的意义如下:

1、bmRequestType:D7D6D5D4D3D2D1D0

D7=0主机到设备

=1设备到主机;

D6D5=00标准请求命令

=01 类请求命令

=10用户定义的命令

=11保留值

D4D3D2D1D0=00000 接收者为设备

=00001 接收者为设备

=00010 接收者为端点

=00011 接收者为其他接收者

=其他其他值保留

2、bRequest:请求命令代码,在标准的USB命令中,每一个命令都定义了编号,编号的值就为字段的值,编号与命令名称如下(要注意这里的命令代码要与其他字段结合使用,可以说命令代码是标准请求命令代码的核心,正是因为这些命令代码而决定了11个USB标准请求命令):

0) 0 GET_STATUS:用来返回特定接收者的状态

1) 1 CLEAR_FEATURE:用来清除或禁止接收者的某些特性

2) 3 SET_FEATURE:用来启用或激活命令接收者的某些特性

3) 5 SET_ADDRESS:用来给设备分配地址

4) 6 GET_DEscriptOR:用于主机获取设备的特定描述符

5) 7 SET_DEscriptOR:修改设备中有关的描述符,或者增加新的描述符

6) 8 GET_CONFIGURATION:用于主机获取设备当前设备的配置值(注同上面的不同)

7) 9 SET_CONFIGURATION:用于主机指示设备采用的要求的配置

8) 10 GET_INTERFACE:用于获取当前某个接口描述符编号

9) 11 SET_INTERFACE:用于主机要求设备用某个描述符来描述接口

10) 12 SYNCH_FRAME:用于设备设置和报告一个端点的同步帧

以上的11个命令要说得明白真的有一匹布那么长,请各位去看书吧,这里就不多说了,控制传输是USB的重心,而这11个命令是控制传输的重心,所以这1 1个命令是重中之重,这个搞明白了,USB就算是入门了。

问题八:在标准的USB请求命令中,经常会看到Descriptor,这是什么来的呢?

回答八:Descriptor即描述符,是一个完整的数据结构,可以通过C语言等编程实现,并存储在USB设备中,用于描述一个USB设备的所有属性,USB主机是通过一系列命令来要求设备发送这些信息的。它的作用就是通过如问答节中的命令***作来给主机传递信息,从而让主机知道设备具有什么功能、属于哪一类设备、要占用多少带宽、使用哪类传输方式及数据量的大小,只有主机确定了这些信息之后,设备才能真正开始工作,所以描述符也是十分重要的部分,要好好掌握。标准的描述符有5种,USB为这些描述符定义了编号:

1——设备描述符

2——配置描述符

3——字符描述符

4——接口描述符

5——端点描述符

上面的描述符之间有一定的关系,一个设备只有一个设备描述符,而一个设备描述符可以包含多个配置描述符,而一个配置描述符可以包含多个接口描述符,一个接口使用了几个端点,就有几个端点描述符。这间描述符是用一定的字段构成的,分别如下说明:

1、设备描述符

struct _DEVICE_DEscriptOR_STRUCT

{

BYTE bLength; //设备描述符的字节数大小,为0x12

BYTE bDescriptorType; //描述符类型编号,为0x01

WORD bcdUSB; //USB版本号

BYTE bDeviceClass; //USB分配的设备类代码,0x01~0xfe为标准设备类,0xff 为厂商自定义类型

//0x00不是在设备描述符中定义的,如HID

BYTE bDeviceSubClass; //usb分配的子类代码,同上,值由USB规定和分配的

BYTE bDeviceProtocl; //USB分配的设备协议代码,同上

BYTE bMaxPacketSize0; //端点0的最大包的大小

WORD idVendor; //厂商编号

WORD idProduct; //产品编号

WORD bcdDevice; //设备出厂编号

BYTE iManufacturer; //描述厂商字符串的索引

BYTE iProduct; //描述产品字符串的索引

BYTE iSerialNumber; //描述设备序列号字符串的索引

BYTE bNumConfiguration; //可能的配置数量

}

2、配置描述符

struct _CONFIGURATION_DEscriptOR_STRUCT

{

BYTE bLength; //设备描述符的字节数大小,为0x12

BYTE bDescriptorType; //描述符类型编号,为0x01

WORD wTotalLength; //配置所返回的所有数量的大小

BYTE bNumInterface; //此配置所支持的接口数量

BYTE bConfigurationVale; //Set_Configuration命令需要的参数值 BYTE iConfiguration; //描述该配置的字符串的索引值

BYTE bmAttribute; //供电模式的选择

BYTE MaxPower; //设备从总线提取的最大电流

}

3、字符描述符

struct _STRING_DEscriptOR_STRUCT

{

BYTE bLength; //设备描述符的字节数大小,为0x12

BYTE bDescriptorType; //描述符类型编号,为0x01

BYTE SomeDescriptor[36]; //UNICODE编码的字符串

}

4、接口描述符

struct _INTERFACE_DEscriptOR_STRUCT

{

BYTE bLength; //设备描述符的字节数大小,为0x12

BYTE bDescriptorType; //描述符类型编号,为0x01

BYTE bInterfaceNunber; //接口的编号

BYTE bAlternateSetting;//备用的接口描述符编号

BYTE bNumEndpoints; //该接口使用端点数,不包括端点0 BYTE bInterfaceClass; //接口类型

BYTE bInterfaceSubClass;//接口子类型

BYTE bInterfaceProtocol;//接口所遵循的协议

BYTE iInterface; //描述该接口的字符串索引值

}

5、端点描述符

struct _ENDPOIN_DEscriptOR_STRUCT

{

BYTE bLength; //设备描述符的字节数大小,为0x12

BYTE bDescriptorType; //描述符类型编号,为0x01

BYTE bEndpointAddress; //端点地址及输入输出属性

BYTE bmAttribute; //端点的传输类型属性

WORD wMaxPacketSize; //端点收、发的最大包的大小

BYTE bInterval; //主机查询端点的时间间隔

}

工业互联网协议有哪些

工业物联网通信协议有哪些 当以太网用于信息技术时,应用层包括HT-TP、FTP、SNMP等常用协议,但当它用于工业控制时,体现在应用层的是实时通信、用于系统组态的对象以及工程模型的应用协议,目前还没有统一的应用层协议,但受到广泛支持并已经开发出相应产品的有以下凡种主要协议。 1、HSE 基金会现场总线FF于2000年发布Ethernet规范,称HSE(High Speed Ethernet)。HSE是以太网协议IEEE802。3,TCP/IP协议族与FFIll的结合体。FF现场总线基金会明确将HSE定位于实现控制网络与Internet的集成。 HSE技术的一个核心部分就是链接设备,它是HSE体系结构将Hl(31。25kb/s)设备连接100Mb/s的HSE主干网的关键组成部分,同时也具有网桥和网关的功能。网桥功能能够用于连接多个H1总线网段,使同H1网段上的H1设备之间能够进行对等通信而无需主机系统的干涉; 网关功能允许将HSE网络连接到其他的工厂控制网络和信息网络,HSE链接设备不需要为H1子系统作报文解释,而是将来自H1总线网段的报文数据集合起来并且将Hl地址转化为IP地址。 2、Modbus TCP/IP 该协议由施耐德公司推出,以一种非常简单的方式将Modbus帧嵌入到TCP帧中,使Modbus与以太网和TCP/IP结合,成为Modbus TCP/IP。这是一种面向连接的方式,每一个呼叫都要求一个应答,这种呼叫/应答的机制与Modbus的主/从机制相互配合,使交换式以太网具有很高的确定性,利用TCP/IP协议,通过网页的形式可以使用户界面更加友好。 利用网络浏览器便查看企业网内部设备运行情况。施耐德公司已经为Mod-bus注册了502端口,这样就可以将实时数据嵌人到网页中,通过在设备中嵌入Web服务器,就可以将Web浏览器作为设备的操作终端。 3、ProflNet 针对工业应用需求,德国西门子于2001年发布了该协议,它是将原有的Profibus与互联网技术结合,形成了ProfiNet的网络方案,主要包括: 基于组件对象模型(COM)的分布式自动化系统; 规定了ProfiNet现场总线和标准以太网之间的开放、透明通信; 提供了一个独立于制造商,包括设备层和系统层的系统模型。 ProfiNet采用标准TCP/IP十以太网作为连接介质,采用标准TCP/IP协议加上应用层的RPC/DCOM来完成节点间的通信和网络寻址。它可以同时挂接传统Profibus系统和新型的智能现场设备。 现有的Profibus网段可以通过一个代理设备(proxy)连接到ProfiNet网络当中,使整Profibus设备和协议能够原封不动地在Pet中使用。传统的Profibus设备可通过代理proxy 与ProFiNET上面的COM对象进行通信,并通过OLE自动化接口实现COM对象间的调用。 4、Ethernet/IP Ethernet/IP是适合工业环境应用的协议体系。它是由ODVA(Open Devicenet Vendors Asso-cation)和Control Net International两大工业组织推出的最新成员与Device Net和Control Net一样,它们都是基于CIP(Controland Information Proto-Col)协议的网络。它是一种是面向对象的协议,能够保证网络上隐式(控制)的实时I/O信息和显式信息(包括用于组态、参数设置、诊断等) 的有效传输。 Ethernet/IP采用和Devicenet以及ControlNet相同的应用层协议CIP。因此,它们使用相同的对象库和一致的行业规范,具有较好的一致性。Ethernet/IP采用标准的Ethernet和

(完整版)楼宇自控系统常见协议汇总

楼宇自控系统常见协议汇总 BACnet与Lonwork协议已经被大家所熟知,那么行业所涉及的其他协议又有哪些呢?这里为大家编辑整理了一些协议,供大家学习与参考。下面向大家介绍一下其他协议: 1.OPC OPC(用于过程控制的OLE)是一个工业标准。它由一些世界上占领先地位的自动化系统和硬件、软件公司与微软(Microsoft)紧密合作而建立的。这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法。它是在Microsoft COM、DCOM和Active X 技术的功能规程基础上开发一个开放的和互操作的接口标准,这个标准的目标是促使自动化/控制应用、现场系统/设备和商业/办公室应用之间具有更强大的互操作能力。 2.ODBC 开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。它实际上是ADO的前身。Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。换句话说,访问DBF文件或Access Basic以得到MDB文件中的数据时,无需懂得Xbase程序设计语言。事实上,Visual C++就是这样一个程序设计平台,即Microsoft最初是以ODBC为目标的。ODBC的确能履行承诺,提供对数据库内容的访问,并且没有太多的问题。它没有提供数据库管理器和C之间尽可能最好的数据转换,这种情况是有的,但它

多半能像广告所说的那样去工作。唯一影响ODBC前程的是,它的速度极低,至少较早版本的产品是这样。ODBC最初面世时,一些开发者曾说,因为速度问题,ODBC永远也不会在数据库领域产生太大的影响。然而,以Microsoft的市场影响力,ODBC毫无疑问是成功了。今天,只要有两种ODBC驱动程序的一种,那么几乎每一个数据库管理器的表现都会很卓越。 3.Socket 一个完整的socket有一个本地唯一的socket号,由操作系统分配。最重要的是,socket是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的socket系统调用。客户随机申请一个socket(相当于一个想打电话的人可以在任何一台入网电话上拨号呼叫),系统为之分配一个socket号;服务器拥有全局公认的socket,任何客户都可以向它发出连接请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)。Socket利用客户/服务器模式巧妙地解决了进程之间建立通信连接的问题。服务器socket半相关为全局所公认非常重要。读者不妨考虑一下,两个完全随机的用户进程之间如何建立通信?假如通信 双方没有任何一方的socket固定,就好比打电话的双方彼此不知道对方的电话号码,要通话是不可能的。 在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,象一个多

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

网络协议大全

网络协议大全 在网络的各层中存在着许多协议,它是定义通过网络进行通信的规则,接收方的发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息,以这种规则规定双方完成信息在计算机之间的传送过程。下面就对网络协议规范作个概述。 ARP(Address Resolution Protocol)地址解析协议 它是用于映射计算机的物理地址和临时指定的网络地址。启动时它选择一个协议(网络层)地址,并检查这个地址是否已经有别的计算机使用,如果没有被使用,此结点被使用这个地址,如果此地址已经被别的计算机使用,正在使用此地址的计算机会通告这一信息,只有再选另一个地址了。 SNMP(Simple Network Management P)网络管理协议 它是TCP/IP协议中的一部份,它为本地和远端的网络设备管理提供了一个标准化途径,是分布式环境中的集中化管理的重要组成部份。 AppleShare protocol(AppleShare协议) 它是Apple机上的通信协议,它允许计算机从服务器上请求服务或者和服务器交换文件。AppleShare可以在TCP/IP协议或其它网络协议如IPX、AppleTalk上进行工作。使用它时,用户可以访问文件,应用程序,打印机和其它远程服务器上的资源。它可以和配置了AppleShare协议的任何服务器进行通信,Macintosh、Mac OS、Windows NT和Novell Netware都支持AppleShare协议。 AppleTalk协议 它是Macintosh计算机使用的主要网络协议。Windows NT服务器有专门为Macintosh服务,也能支持该协议。其允许Macintosh的用户共享存储在Windows NT文件夹的Mac-格式的文件,也可以使用和Windows NT连接的打印机。Windows NT共享文件夹以传统的Mac文件夹形式出现在Mac用户面前。Mac 文件名按需要被转换为FAT(8.3)格式和NTFS文件标准。支持MAc文件格式的DOS和Windows客户端能与Mac用户共享这些文件。 BGP4(Border Gateway Protocol Vertion 4)边界网关协议-版本4 它是用于在自治网络中网关主机(每个主机有自己的路由)之间交换路由信息的协议,它使管理

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 体

TCPIP协议技术应用知识汇总

TCP/IP协议技术应用知识汇总 OSI网络分层参考模型 网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议。这样做使得每个协议的设计、分析、时限和测试比较容易。协议划分的一个主要原则是确保目标系统有效且效率高。为了提高效率,每个协议只应该注意没有被其他协议处理过的那部分通信问题;为了主协议的实现更加有效,协议之间应该能够共享特定的数据结构;同时这些协议的组合应该能处理所有可能的硬件错误以及其它异常情况。为了保证这些协议工作的协同性,应当将协议设计和开发成完整的、协作的协议系列(即协议族),而不是孤立地开发每个协议。 在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型。一台计算机操作系统中的网络过程包括从应用请求(在协议栈的顶部)到网络介质(底部) ,OSI参考模型把功能分成七个分立的层次。图2.1表示了OSI分层模型。 ┌─────┐ │应用层│←第七层 ├─────┤ │表示层│ ├─────┤ │会话层│ ├─────┤ │传输层│ ├─────┤ │网络层│ ├─────┤ │数据链路层│ ├─────┤ │物理层│←第一层 └─────┘ 图2.1 OSI七层参考模型 OSI模型的七层分别进行以下的操作: 第一层——物理层 第一层负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码和数据传输用的连接器。如最常用的RS-232规范、10BASE-T的曼彻斯特编码以及RJ-45就属于第一层。所有比物理层高的层都通过事先定义好的接口而与它通话。如以太网的附属单元接口(AUI),一个DB-15连接器可被用来连接层一和层二。 第二层——数据链路层 数据链路层通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。物理编址(相对应的是网络编址)定义了设备在数据链路层的编址方式;网络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓扑结构;错误校验向发生传输错误的上层协议告警;数据帧序列重新整理并传输除序列以外的帧;流控可能延缓数据的传输,以使接收设备不会因为在某一时刻接收到超过其处理能力的信息流而崩溃。数据链路

常见的无线传输协议有哪些

常见的无线传感器传输协议有哪些? 无线传感器,是一种集数据采集、数据管理、数据通讯等功能的无线数据通讯采集器。是一种无线数据采集传输通讯终端,具有低功耗运行,无线数据传输,无需布线,即插即用,安装调试灵活、智能手机现场调试配置等特点。 下面就来看看物联网中常见的无线传输协议类型: RFID RFID(Radio Frequency Identification),即射频识别,俗称电子标签。它是一种非接触式的自动识别技术,通过射频信号自动识别目标对象并获取相关数据。 RFID由标签(Tag)、解读器(Reader)和天线(Antenna)三个基本要素组成。RFID技术的基本工作原理并不复杂,标签进入磁场后,接收解读器发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的产品信息(Passive Tag ,无源标签

或被动标签),或者主动发送某一频率的信号(Active Tag,有源标签或主动标签),解读器读取信息并解码后,送至中央信息系统进行有关数据处理。 RFID可被广泛应用于安全防伪、工商业自动化、财产保护、物流业、车辆跟踪、停车场和高速公路的不停车收费系统等。从行业上讲,RFID将渗透到包括汽车、医药、食品、交通运输、能源、军工、动物管理以及人事管理等各个领域。 红外 红外技术也是无线通信技术的一种,可以进行无线数据的传输。红外有明显的特点:点对点的传输方式,无线,不能离得太远,要对准方向,不能穿墙与障碍物,几乎无法控制信息传输的进度。802.11物理层标准中,除了使用2.4GHz频率的射频外,还包括了红外的有关标准。IrDA1.0支持最高115.2kbps的通信速率,IrDA1.1支持到4Mbps。该技术基本上已被淘汰,被蓝牙和更新的技术代替。 ZigBee ZigBee,也称紫峰,是一项新型的无线通信技术,一种低速短距离传输的无线网络协议,底层是采用IEEE 802.15.4标准规范的媒体访问层与物理层。主要特色有低速、

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、数据包阶段:按输入、输出发送相应的数据

重点掌握网络协议标准规范大全

重点掌握网络协议标准规范大全 在网络的各层中存在着许多协议,它是定义通过网络进行通信的规则,接收方的发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息,以这种规则规定双方完成信息在计算机之间的传送过程。下面就对网络协议规范作个概述。 ARP(Address Resolution Protocol)地址解读协议 它是用于映射计算 机的物理地址和临时指定的网络地址。启动时它选择一个协议(网络层)地址,并检查这个地址是否已经有别的计算机使用,如果没有被使用,此结点被使用这个地址,如果此地址已经被别的计算机使用,正在使用此地址的计算机会通告这一信息,只有再选另一个地址了。 SNMP(Simple Network Management P)网络管理协议

它是TCP/IP协议中的一部份,它为本地和远端的网络设备管理提供了一个标准化途径,是分布式环境中的集中化管理的重要组成部份。 AppleShare protocol(AppleShare协议) 它是Apple机上的通信协议,它允许计算机从服务器上请求服务或者和服务器交换文件。AppleShare可以在TCP/IP协议或其它网络协议如IPX、AppleTalk上进行工作。使用它时,用户可以访问文件,应用程序,打印机和其它远程服务器上的资源。它可以和配置了AppleShare协议的任何服务器进行通信,Macintosh、Mac OS、Windows NT和Novell Netware都支持AppleShare协议。 AppleTalk协议 它是Macintosh计算机使用的主要网络协议。Windows NT服务器有专门为Macintosh服务,也能支持该协议。其允许Macintosh的

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保持不变,去翻和保持多久呢,是一

OSI七层模型的每一层都有哪些协议、PPPOE机制

OSI七层模型的每一层都有哪些协议 由低到高 谈到网络不能不谈OSI参考模型,OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织ISO提出的一个网络系统互连模型。虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,也为我们学习网络协议提供了一个很好的参考...... 物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。只是说明标准 在这一层,数据的单位称为比特(bit)。 属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45、fddi令牌环网等。第一层:物理层 数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。 在这一层,数据的单位称为帧(frame)。 数据链路层协议的代表包括:ARP、RARP、SDLC、HDLC、PPP、STP、帧中继等。 第二层:数据链路层802.2、802.3A TM、HDLC、FRAME RELAY 网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。 在这一层,数据的单位称为数据包(packet)。 网络层协议的代表包括:IP、IPX、RIP、OSPF等。 第三层:网络层IP、IPX、APPLETALK、ICMP 传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。 在这一层,数据的单位称为数据段(segment)。 传输层协议的代表包括:TCP、UDP、SPX等。 第四层:传输层TCP、UDP、SPX 会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。 第五层:会话层RPC、SQL、NFS 、X WINDOWS、ASP 表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。 第六层:表示层ASCII、PICT、TIFF、JPEG、MIDI、MPEG 应用层为操作系统或网络应用程序提供访问网络服务的接口。 应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。 第七层:应用层HTTP,FTP,SNMP等

一种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数据源或数据接收端的数据传输,不需要微控制器/处理器参与,提高

智能家居通讯协议大汇总

智能家居无疑是这几年来热门的研究对象之一,各类协议不停的更新最新版本及改进缺点,导致目前没有一种真正意义上国际标准化用于智能家居、智能照明的通讯协议。本文主要针对各种方案的原理,技术特点及优缺点作出了一个对比并以此展望了智能家居市场的未来。 下面我们将一一介绍这些协议: 一、ZigBee协议: Zigbee是IEEE 802.15.4协议的简称,它来源于蜜蜂的八字舞,蜜蜂(bee)是通过飞翔和“嗡嗡”(zig)抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,而ZigBee 协议的方式特点与其类似便更名为ZigBee。ZigBee主要适合用于自动控制和远程控制

领域,可以嵌入各种设备,其特点是传播距离近、低功耗、低成本、低数据速率、可自组网、协议简单。 ZigBee的主要优点如下: 1. 功耗低 对比Bluetooth与WiFi,在相同的电量下(两节五号电池)可支持设备使用六个月至两年左右的时间,而Bluetooth只能工作几周,WiFi仅能工作几小时。 2. 成本低 ZigBee专利费免收,传输速率较小且协议简单,大大降低了ZigBee设备的成本。 3. 掉线率低 由于ZigBee的避免碰撞机制,且同时为通信业务的固定带宽预留了专用的时间空隙,使得在数据传输时不会发生竞争和冲突;可自组网的功能让其每个节点模块之间都能建立起联系,接收到的信息可通过每个节点模块间的线路进行传输,使得ZigBee传输信息的可靠性大大提高了,几乎可以认为是不会掉线的。 4. 组网能力强 ZigBee的组网能力超群,建立的网络每个有60,000个节点。 5. 安全保密

ZigBee提供了一套基于128位AES算法的安全类和软件,并集成了IEEE 802.15.4的安全元素。 6. 灵活的工作频段 2.4 GHz,868 MHz及915 MHz的使用频段均为免执照频段。 ZigBee的缺点如下: 1. 传播距离近 若在不适用功率放大器的情况下,一般ZigBee的有效传播距离一般在10m-75m,主要还是适用于一些小型的区域,例如家庭和办公场所。但若在牺牲掉其低掉线率的优点的前提下,以节点模块作为接收端也作为发射端,便可实现较长距离的信息传输。 2. 数据信息传输速率低 处于2.4 GHz的频段时,ZigBee也只有250 Kb/s的传播速度,而且这单单是链路上的速率且不包含帧头开销、信道竞争、应答和重传,去除掉这些后实际可应用的速率会低于100 Kb/s,在多个节点运行多个应用时速率还要被他们分享掉。 3. 会有延时性 ZigBee在随机接入MAC层的同时不支持时分复用的信道接入方式,因此在支持一些实时的应用时会因为发送多跳和冲突会产生延时。 二、Bluetooth(蓝牙协议)

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(同步)开始,

网络协议规范大全

在网络的各层中存在着许多协议,它是定义通过网络进行通信的规则,接收方的发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息,以这种规则规定双方完成信息在计算机之间的传送过程。下面就对网络协议规范作个概述。 ARP(Address Resolution Protocol)地址解析协议 它是用于映射计算 机的物理地址和临时指定的网络地址。启动时它选择一个协议(网络层)地址,并检查这个地址是否已经有别的计算机使用,如果没有被使用,此结点被使用这个地址,如果此地址已经被别的计算机使用,正在使用此地址的计算机会通告这一信息,只有再选另一个地址了。SNMP(Simple Network Management P)网络管理协议 它是TCP/IP协议中的一部份,它为本地和远端的网络设备管理提供了一个标准化途径,是分布式环境中的集中化管理的重要组成部份。AppleShare protocol(AppleShare协议) 它是Apple机上的通信协议,它允许计算机从服务器上请求服务或者和服务器交换文件。AppleShare可以在TCP/IP协议或其它网络协议如IPX、AppleTalk上进行工作。使用它时,用户可以访问文件,应用程序,打印机和其它远程服务器上的资源。它可以和配置了AppleShare 协议的任何服务器进行通信,Macintosh、Mac OS、Windows NT和Novell Netware都支持AppleShare协议。 AppleTalk协议 它是Macintosh计算机使用的主要网络协议。Windows NT服务器有专门为Macintosh服务,也能支持该协议。其允许Macintosh的用户共享存储在 Windows NT文件夹的Mac-格式的文件,也可以使用和Windows NT连接的打印机。Windows NT共享文件夹以传统的Mac文件夹形式出现在Mac用户面前。Mac文件名按需要被转换为FAT(8.3)格式和NTFS文件标准。支持MAc 文件格式的DOS和Windows客户端能与Mac用户共享这些文件。 BGP4(Border Gateway Protocol Vertion 4)边界网关协议-版本4 它是用于在自治网络中网关主机(每个主机有自己的路由)之间交换路由信息的协议,它使管理员能够在已知的路由策略上配置路由加权,可以更方便地使用无级内部域名路由(CIDR),它是一种在网络中可以容纳更多地址的机制,它比外部网关协议(EGP)更新。BGP4经常用于网关主机之间,主机中的路由表包括了已知路由的列表,可达的地址和路由加权,这样就可以在路由中选择最好的通路了。BGP在局域网中通信时使用内部BGP(IBGP),因为IBGP不能很好工作。 BOOTP协议 它是一个基于TCP/IP协议的协议,它可以让无盘站从一个中心服务器上获得IP地址,现在我们通常使用DHCP协议进行这一工作。CMIP(Common Management Information Protocol)通用管理信息协议 它是建立在开放系统互连通信模式上的网络管理协议。相关的通用管理信息服务(CMIS)定义了访问和控制网络对象,设备和从对象设备接收状态信息的方法。 Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议 在广域网中,两台计算机建立物理连接过程所使用的协议,这种物理连接要持续到成功地交换完数据为止。在Internet中,TCP(传输控制协议)即这一类型的协议,它为两台连接在网络上的计算机提供了可相互通信且确保数据成功传输的一种手段。面向连接的协议一定要保证数据传送到对方。在广域网中,对接收方的计算机不做在线状态,或接收能力的测试,都能使数据由一台计算机传输到另外一台计算机上的协议。这是包交换网络中的主要协议,在Internet中的IP协议即无连接协

USB接口协议

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

相关文档
最新文档