USB基本知识及通信协议
- 格式:doc
- 大小:53.00 KB
- 文档页数:15
常用硬件接口及通信协议一、硬件接口1. USB接口USB接口可太常见啦,电脑、手机充电器啥的好多都用它。
它有不同的版本呢,像USB1.0、2.0、3.0和3.1。
USB2.0传输速度相对慢一些,USB3.0就快多啦,能达到每秒好几个G呢。
而且USB接口还能给设备充电,真是方便得很。
2. HDMI接口这个接口主要是用在连接显示器、电视这些设备上。
比如说你想把电脑屏幕投射到电视上看电影或者做演示,HDMI接口就派上用场啦。
它能同时传输视频和音频信号,画质还特别清晰,高分辨率的画面通过它传输一点问题都没有。
3. VGA接口VGA接口就比较老啦,但是现在有些老设备上还在用。
它只能传输视频信号,不像HDMI那么厉害能音频视频一起传。
而且它的画质相对HDMI来说会差一些,不过在一些对画质要求不是特别高的场合,比如连接个普通投影仪做个简单展示还是可以的。
二、通信协议1. TCP/IP协议这个协议就像是互联网的基石一样。
它把数据分成一个个小的数据包来传输,就像把一个大包裹分成好多小包裹寄出去一样。
它有很好的可靠性,能保证数据准确地到达目的地。
要是数据包丢了,它还会重新发送呢。
我们上网浏览网页、发邮件啥的都离不开它。
2. UDP协议UDP协议和TCP/IP协议不太一样哦。
它不管数据有没有准确到达目的地,就一股脑地把数据发出去。
这样的好处就是速度快,适合一些对实时性要求高但是对准确性要求没那么高的应用,像在线游戏里人物的位置更新之类的,稍微有点不准确也不太影响游戏体验。
3. 蓝牙协议蓝牙协议大家肯定不陌生啦,手机连接蓝牙耳机、蓝牙音箱啥的都靠它。
它的传输距离比较短,一般在10米左右,不过很方便,不用连线。
而且蓝牙还能在不同设备之间传输文件呢,只要两个设备都支持蓝牙功能就可以。
USB的HID通信协议USB的HID(Human Interface Device)通信协议是一种用于连接计算机和外部人机交互设备的通信协议。
HID协议定义了计算机和设备之间的数据传输格式、数据解释和通信流程,以实现设备的控制和数据交换。
下面将详细介绍USB的HID通信协议。
B的HID通信协议基本概念:USB的HID通信协议是在USB(Universal Serial Bus)标准之上定义的一种通信协议。
USB是一种高速串行总线标准,提供了与设备进行通信的硬件接口。
而HID通信协议定义了在USB接口上进行人机交互设备通信的规则和格式。
2.HID通信协议的数据传输格式:HID通信协议使用报文的方式进行数据传输。
每个报文由一个报头和一个或多个数据包组成。
报头包含了指示报文类型、报文长度等信息,数据包中存放实际的数据。
通常情况下,报文的数据是按字节进行传输的,但对于特定类型的设备,也可以使用其他格式进行传输。
3.HID通信协议的数据解释:HID通信协议定义了一种标准的数据解释方式,以便计算机能够正确地解释设备发送的数据。
例如,在鼠标设备中,数据包中的前2个字节表示鼠标的横坐标和纵坐标的变化量。
计算机根据这些数据来控制鼠标的移动。
4.HID通信协议的通信流程:HID通信协议规定了在设备和计算机之间进行通信的具体流程。
在通信开始前,设备必须向计算机发送设备描述符以告知其设备的类型和功能。
计算机收到设备描述符后,会根据描述符中的信息来设置相应的数据报文格式和解释方式。
设备在工作过程中,会根据HID协议规定的规则和格式发送数据到计算机,计算机则负责解析这些数据并执行相应的操作。
5.HID通信协议的扩展功能:HID通信协议除了定义了基本的数据传输、数据解释和通信流程外,还提供了一些扩展功能来支持设备的特殊需求。
这些扩展功能包括通信协议的可配置性、事件通知机制、设备状态的上报以及多设备的管理等。
总结:USB的HID通信协议是一种用于连接计算机和外部人机交互设备的通信协议。
14.1.1 有关基本概念(1)差分信号技术差分信号技术的特点:使用两条线路表达一个比特位,即用两条线路传输信号的压差作为判断1还是0的依据。
其优点是具有极强的抗干扰性。
倘若遭受外界强烈干扰,两条线路对应的电平同样会出现大幅度提升或降低的情况,但二者的电平改变方向和幅度几乎相同,电压差值就可始终保持相对稳定,因此数据的准确性并不会因干扰噪声而有所降低。
(2)USB通信的格式(3)USB总线接口总线接口的功能除了传送和接收数据信号以外,逻辑上还包括识别设备的当前惟一地址。
设备的地址是在设备插入到总线上时,由USB主机分配的,范围从0~127,其中0为所有的设备在没有分配惟一地址时使用的默认地址。
当总线上有包传输时,设备的总线接口收到此包,通过解析其中的设备地址判断此包是否发送给自己的,如果不是则忽略此包,否则判断此包是发送给哪个端点的,并将整理后的包传送到上面的协议层的相应端点。
(4)USB设备的端点所有的传输都是传送到一个设备端点(device endpoint),或是由一个设备端点发出。
通常设备端点是内存的一个区块,或是控制器芯片内的一个缓存器,用来作为数据的缓冲区。
存储在设备端点的可能是接收到的数据,或是等待要送出的数据。
主机也有接收与传送数据的缓冲区,不过主机并没有端点,而是当作与设备端点通信的出发点(starting point)。
每一个设备的惟一地址,有一个端点号码以及方向。
端点号码可以是0~15。
方向如果是输入(IN),表示流向主机,如果是输出(OUT),表示流出主机。
如果是作为控制传输的端点,必须设置成双向传输,所以每个端点会有一对输入与输出端点,来分享同一个端点号码。
每个设备都必须将端点0设置成控制端点。
除此之外,很少需要额外的控制端点。
(5)USB接口(功能接口由一组端点组成,用来完成特定的功能。
每个设备可以同时提供多个功能接口,如打印机和扫描仪等。
USB主机端为每个接口提供了一个客户端驱动程序,驱动程序和接口之间通过交互完成了有特定意义的数据传输。
USB通信协议深入理解USB(Universal Serial Bus),即通用串行总线,是一种广泛应用于计算机和其他电子设备的通信协议。
USB协议提供了一种方便、快捷的通信方式,使得各种外设设备能够与计算机之间进行数据传输和通信。
本文将深入理解USB通信协议,包括其基本原理、架构和常见的传输方式等。
一、USB通信协议的基本原理USB通信协议是一种基于主从结构的传输协议。
在USB系统中,主要包括USB主机(Host)和USB外设(Device)两个角色。
USB主机控制着通信的发起和结束,而USB外设则负责接收和处理数据。
USB通信协议采用了数据包传输的方式。
数据在USB系统中以数据包(Packet)的形式进行传输。
每个数据包包含了特定的控制信息和数据内容,以确保数据的有效传输和正确解析。
在USB通信中,数据被分为控制传输、中断传输、批量传输和等时传输四种类型。
控制传输主要用于配置和管理USB系统,中断传输用于低延迟的数据交互,批量传输用于大数据流的传输,等时传输用于实时数据的传输。
二、USB通信协议的架构USB通信协议的架构主要由四个组件组成,分别是主机控制器(Host Controller)、总线(Bus)、外设和驱动程序。
1. 主机控制器:主机控制器是USB通信协议的核心组件,负责控制整个通信过程。
主机控制器通过总线将主机和外设连接起来,并发送控制命令和数据包给外设。
2. 总线:总线是主机和外设之间的物理连接介质。
USB通信协议使用了一对差分信号线来进行数据的传输,其中D+和D-线用于传输数据,VCC线提供电源,GND线用于地线连接。
3. 外设:外设是连接在USB总线上的各种设备,如打印机、键盘、鼠标等。
外设接收主机控制器发送的命令和数据包,并执行相应的操作。
4. 驱动程序:驱动程序是运行在主机控制器上的软件,用于控制和管理外设。
驱动程序通常由设备制造商提供,并通过操作系统进行加载和运行。
三、USB通信协议的传输方式1. 控制传输:控制传输是USB通信协议中最基本的传输方式,用于配置和管理USB系统。
usb通信协议USB通信协议。
USB(Universal Serial Bus)是一种用于连接计算机和外部设备的通用接口标准。
USB通信协议是指在USB接口上进行数据传输时所遵循的规范和约定。
USB通信协议的设计旨在实现设备间的高速、可靠的数据传输,同时保持简单易用的特点。
本文将介绍USB通信协议的基本原理、数据传输方式以及常见的应用场景。
首先,USB通信协议的基本原理是通过主机-设备的架构进行数据传输。
在USB接口上,主机负责发起数据传输请求和管理总线上的设备,而设备则负责响应主机的请求并进行数据传输。
USB通信协议通过定义不同的传输类型(如控制传输、批量传输、中断传输和等时传输)来满足不同设备的数据传输需求。
控制传输用于配置设备和发送命令,批量传输适用于大容量数据的传输,中断传输用于周期性的小数据传输,而等时传输则用于实时数据传输。
其次,USB通信协议的数据传输方式包括同步传输和异步传输。
在同步传输中,数据的传输速度是由主机控制的,主机会周期性地向设备发送数据请求并接收数据响应。
而在异步传输中,设备可以主动向主机发送数据,主机则负责接收和处理数据。
USB通信协议通过这种灵活的数据传输方式,可以满足各种不同设备的数据传输需求,包括打印机、键盘、鼠标、存储设备等。
最后,USB通信协议在各种应用场景中都得到了广泛的应用。
在个人电脑上,USB通信协议被用于连接鼠标、键盘、打印机、摄像头、存储设备等外部设备。
在嵌入式系统中,USB通信协议也被广泛应用于连接各种传感器、执行器和控制器。
此外,USB通信协议还被用于连接智能手机、平板电脑、电视机、音响等消费类电子产品,实现数据传输和充电功能。
综上所述,USB通信协议作为一种通用的数据传输标准,已经成为了现代计算机和外部设备之间数据传输的重要桥梁。
通过遵循USB通信协议的规范和约定,不同厂商生产的设备可以实现互连互通,为用户提供了更加便利和丰富的外部设备选择。
usb通讯协议书USB通讯协议书写USB通讯协议(Universal Serial Bus Communication Protocol)是一种用于计算机和外部设备之间进行数据传输的通信协议。
它是USB接口的核心部分,负责规定了设备之间传输数据的格式、时序和流程等。
下面将详细介绍USB通讯协议的主要内容。
一、USB物理层USB物理层定义了传输介质的特性和接口的电气特性。
它规定了USB接口的引脚定义、电压和信号的时序等。
USB接口是一种通用的接口,可以连接各种不同类型的设备,因此物理层要能适配不同类型的传输介质和设备。
二、USB传输层USB传输层定义了USB通信中的数据传输方式和协议。
它包括以下几个方面的内容:1. 端点(Endpoint):USB设备通过端点来进行数据传输。
每一个USB接口都可以有多个输入端点和输出端点,它们分别用来接收和发送数据。
端点可以是控制端点、批量传输端点、中断传输端点或等时传输端点。
2. 端点描述符(Endpoint Descriptor):每个端点都要有一个对应的端点描述符,它包含了端点的特性和属性信息,包括端点的类型、方向、最大数据包大小等。
3. 传输类型:USB定义了多种数据传输方式,包括控制传输、批量传输、中断传输和等时传输。
每一种传输类型都有对应的传输协议和时序,用于实现数据的可靠传输。
三、USB协议层USB协议层定义了USB设备之间进行数据传输的规则和协议。
它包括以下几个方面:1. 控制传输:控制传输是USB通信中最基本的传输方式,用于设备之间的初始化和配置。
控制传输由设备请求和主机响应组成,通过控制传输可以发送命令和查询设备的状态信息。
2. 握手协议:USB通信中的数据传输是通过握手协议来进行的。
握手协议包括设备端点发送数据、主机端点接收数据和确认传输完成等步骤,用于确保数据的正确传输。
3. 帧结构:USB通信中的数据是按帧的形式进行传输的。
一帧包含了同步标记、包头、数据和CRC等字段。
USB通信协议转⾃0. 基本概念⼀个【传输】(控制、批量、中断、等时):由多个【事务】组成;⼀个【事务】(IN、OUT、SETUP):由⼀多个【Packet】组成。
USB数据在【主机软件】与【USB设备特定的端点】间被传输。
【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。
⼀个USB设备可以有多个管道(pipes)。
1. 包(Packet)包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。
数据在 USB总线上的传输以包为单位,包只能在帧内传输。
⾼速USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。
帧的起始由⼀个特定的包(SOF 包)表⽰,帧尾为 EOF。
EOF不是⼀个包,⽽是⼀种电平状态,EOF期间不允许有数据传输。
注意:虽然⾼速USB总线和全速/低速USB总线的帧周期不⼀样,但是SOF包中帧编号的增加速度是⼀样的,因为在⾼速USB系统中,SOF包中帧编号实际上取得是计数器的⾼11位,最低三位作为微帧编号没有使⽤,因此其帧编号的增加周期也为 1mS。
• USB总线上的情形是怎样的?• 包是USB总线上数据传输的最⼩单位,不能被打断或⼲扰,否则会引发错误。
若⼲个数据包组成⼀次事务传输,⼀次事务传输也不能打断,属于⼀次事务传输的⼏个包必须连续,不能跨帧完成。
⼀次传输由⼀次到多次事务传输构成,可以跨帧完成。
USB包由五部分组成,即同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP),包的基本格式如下图:1.1 PID类型(即包类型)1.2 Token Packets此格式适⽤于IN、OUT、SETUP、PING。
PID 数据传输⽅向IN Device->HostOUT Host->DeviceSETUP Host->DevicePING Device->Host1.3 Start-of-Frame(SOF) PacketsSOF包由Host发送给Device。
usb通信原理USB通信原理。
USB(Universal Serial Bus)是一种用于连接计算机和外部设备的通用接口标准。
USB通信原理是指USB接口设备之间进行数据传输的工作原理。
USB通信原理的核心是USB协议,它规定了USB设备之间的通信规则和数据传输方式。
下面我们将深入探讨USB通信原理的相关知识。
首先,USB通信原理涉及到USB的物理层和逻辑层。
在物理层,USB通过四根线进行数据传输,包括两根用于数据传输的数据线(D+和D-)、一根用于电源供应的VCC线和一根用于地线的GND线。
而在逻辑层,USB通信采用主从结构,即主机和从机之间的通信方式。
主机负责发起数据传输请求,从机则负责响应主机的请求并进行数据传输。
其次,USB通信原理还涉及到USB的数据传输方式。
USB数据传输方式分为同步传输和异步传输两种。
同步传输是指数据传输的时钟信号由主机提供,而异步传输是指数据传输的时钟信号由设备自身提供。
在实际应用中,USB通常采用同步传输方式,因为这样可以更好地控制数据传输的时序和速率,确保数据的稳定传输。
此外,USB通信原理还包括USB的通信协议。
USB通信协议规定了USB设备之间的通信规则和数据传输格式。
USB通信协议分为控制传输、批量传输、中断传输和等时传输四种。
控制传输适用于设备的配置和管理,批量传输适用于大批量数据的传输,中断传输适用于对数据传输的实时性要求较高的情况,而等时传输适用于对数据传输的实时性要求非常高的情况。
最后,USB通信原理还涉及到USB设备的识别和配置。
当USB设备插入到主机上时,主机会通过USB通信协议进行设备的识别和配置,以确定设备的类型和功能,并为设备分配相应的资源。
这样,USB设备就可以与主机进行数据传输和通信。
综上所述,USB通信原理涉及到USB的物理层和逻辑层、数据传输方式、通信协议以及设备的识别和配置等多个方面。
了解USB通信原理不仅有助于我们更好地理解USB接口设备之间的工作原理,还有助于我们更好地应用和开发USB设备。
串口通信协议什么是串口串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universa lSerialBus或者USB混淆)。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(b yte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。
它表示每秒钟传送的bit的个数。
例如300波特表示每秒钟发送300个bit。
当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。
这意味着串口通信在数据线上的采样率为4800Hz。
通常电话线的波特率为14400,28800和36600。
波特率可以远远大于这些值,但是波特率和距离成反比。
高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
b,数据位:这是衡量通信中实际数据位的参数。
当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。
如何设置取决于你想传送的信息。
比如,标准的ASCII码是0~127(7位)。
扩展的ASCII码是0~255(8位)。
USB基本知识及通信协议什么是串口串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal SerialBus或者USB混淆)。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(b yte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。
它表示每秒钟传送的bit的个数。
例如300波特表示每秒钟发送300个bit。
当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。
这意味着串口通信在数据线上的采样率为4800Hz。
通常电话线的波特率为14400,28800和36600。
波特率可以远远大于这些值,但是波特率和距离成反比。
高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
b,数据位:这是衡量通信中实际数据位的参数。
当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。
如何设置取决于你想传送的信息。
比如,标准的ASCII码是0~127(7位)。
扩展的ASCII码是0~255(8位)。
如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。
每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。
由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
c,停止位:用于表示单个包的最后一位。
典型的值为1,1.5和2位。
由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。
因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。
适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
d,奇偶校验位:在串口通信中一种简单的检错方式。
有四种检错方式:偶、奇、高和低。
当然没有校验位也是可以的。
对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。
例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。
如果是奇校验,校验位位1,这样就有3个逻辑高位。
高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。
这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
什么是RS-232RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。
可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。
用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。
RS-232只限于PC串口和设备间点对点的通信。
RS-232串口通信最远距离是50英尺。
DB-9针连接头-------------\ 1 2 3 4 5 /\ 6 7 8 9 /-------从计算机连出的线的截面。
RS-232针脚的功能:数据:TXD(pin 3):串口数据输出(Transmit Data)RXD(pin 2):串口数据输入(Receive Data)握手:RTS(pin 7):发送数据请求(Request to Send)CTS(pin 8):清除发送(Clear to Send)DSR(pin 6):数据发送就绪(Data Send Ready)DCD(pin 1):数据载波检测(Data Carrier Detect)DTR(pin 4):数据终端就绪(Data Terminal Ready)地线:GND(pin 5):地线其他RI(pin 9):铃声指示什么是RS-422RS-422(EIA RS-422-AStandard)是Apple的Macintosh计算机的串口连接标准。
RS-422使用差分信号,RS-232使用非平衡参考地的信号。
差分传输使用两根线发送和接收信号,对比RS-232,它能更好的抗噪声和有更远的传输距离。
在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。
什么是RS-485RS-485(EIA-485标准)是RS-422的改进,因为它增加了设备的个数,从10个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。
有了多个设备的能力,你可以使用一个单个RS-422口建立设备网络。
出色抗噪和多设备能力,在工业应用中建立连向PC机的分布式设备网络、其他数据收集控制器、HMI或者其他操作时,串行连接会选择RS-485。
RS-485是RS-422的超集,因此所有的RS-422设备可以被RS-485控制。
RS-485可以用超过4000英尺的线进行串行通行。
DB-9 引脚连接-------------\ 1 2 3 4 5 /\ 6 7 8 9 /-------从计算机连出的线的截面。
RS-485和RS-422的引脚的功能数据:TXD+(pin 8),TXD-(pin 9),RXD+(pin 4),RXD-(pin 5)握手:RTS+(pin 3),RTS-(pin 7),CTS+(pin 2),CTS-(pin 6)地线:GND (pin 1)什么是握手RS-232通行方式允许简单连接三线:Tx、Rx和地线。
但是对于数据传输,双方必须对数据定时采用使用相同的波特率。
尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。
这时需要串口的握手功能。
在这一部分,我们讨论三种最常用的RS-232握手形式:软件握手、硬件握手和Xmodem。
a,软件握手:我们讨论的第一种握手是软件握手。
通常用在实际数据是控制字符的情况,类似于GPIB使用命令字符串的方式。
必须的线仍然是三根:Tx,Rx和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem允许用户使能或者禁止用户使用两个控制字符XON和OXFF。
这些字符在通信中由接收方发送,使发送方暂停。
例如:假设发送方以高波特率发送数据。
在传输中,接收方发现由于CPU忙于其他工作,输入buffer已经满了。
为了暂时停止传输,接收方发送XOFF,典型的值是十进制19,即十六进制13,直到输入buffer空了。
一旦接收方准备好接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。
输入buffer半满时,L abWindows发送XOFF。
此外,如果XOFF传输被打断,LabWindows会在buffer达到75%和90%时发送XOFF。
显然,发送方必须遵循此守则以保证传输继续。
b,硬件握手:第二种是使用硬件线握手。
和Tx和Rx线一样,RTS/CTS和DT R/DSR一起工作,一个作为输出,另一个作为输入。
第一组线是RTS(Request to Send)和CTS(Clear toSend)。
当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。
另一组线是DT R(DataTerminal Ready)和DSR(Data SetReady)。
这些现主要用于Modem通信。
使得串口和Modem通信他们的状态。
例如:当Modem已经准备好接收来自P C的数据,它置高DTR线,表示和电话线的连接已经建立。
读取DSR线置高,PC机开始发送数据。
一个简单的规则是DTR/DSR用于表示系统通信就绪,而RTS/CT S用于单个数据包的传输。
在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。
如果CTS模式使能,LabWindows使用如下规则:当PC发送数据:RS-232库必须检测CTS线高后才能发送数据。
当PC接收数据:如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。
如果输入队列90%满,库函数置低RTS,但使DTR维持高电平。
如果端口队列近乎空了,库函数置高RTS,但使DRT维持高电平。
如果端口关闭,库函数置低RTS和DTR。
c,XModem握手:最后讨论的握手叫做XModem文件传输协议。
这个协议在M odem通信中非常通用。
尽管它通常使用在Modem通信中,XModem协议能够直接在其他遵循这个协议的设备通信中使用。
在LabWindows中,实际的XModem应用对用户隐藏了。
只要PC和其他设备使用XModem协议,在文件传输中就使用Lab Windows的XModem函数。
函数是XModemConfig,XModemSend和XModemRe ceive。
XModem使用介于如下参数的协议:start_of_data、end_of_data、neg_ack、w ait_delay、start_delay、max_tries、packet_size。
这些参数需要通信双方认定,标准的XModem有一个标准的定义:然而,可以通过XModemConfig函数修改,以满足具体需要。
这些参数的使用方法由接收方发送的字符neg_ack确定。
这通知发送方其准备接收数据。
它开始尝试发送,有一个超时参数start_delay;当超时的尝试超过max_ties次数,或者收到接收方发送的start_of_data,发送方停止尝试。
如果从发送方收到start_of_data,接收方将读取后继信息数据包。
包中含有包的数目、包数目的补码作为错误校验、packet_size字节大小的实际数据包,和进一步错误检查的求和校验值。
在读取数据后,接收方会调用wait_delay,然后想发送方发送响应。
如果发送方没有收到响应,它会重新发送数据包,直到收到响应或者超过重发次数的最大值max_tries。
如果一直没有收到响应,发送方通知用户传输数据失败。
由于数据必须以pack_size个字节按包发送,当最后一个数据包发送时,如果数据不够放满一个数据包,后面会填充ASCII码NULL(0)字节。
这导致接收的数据比原数据多。