USB基本知识与通信协议书范本
USB的通讯协议(通俗易懂).ppt

16.2 USB系统基本概念
• 16.2.2 USB设备
一个USB设备由三个功能模块组成:USB总线接口、USB逻辑 设备和功能单元。这里的USB总线接口指的是USB设备中的串行接口 引擎(SIE);USB逻辑设备被USB系统软件看作是一个端点的集合; 功能单元被客户软件看作是一个接口的集合。SIE、端点和接口都是 USB设备的组成单元。为了更好地描述USB设备的特征,USB提出了 设备架构的概念。从这个角度来看,可以认为USB设备是由一些配置、 接口和端点组成的,即一个USB设备可以含有一个或多个配置,在每 个配置中可含有一个或多个接口,在每个接口中可含有若干个端点。 其中,配置和接口是对USB设备功能的抽象,实际的数据传输由端点 来完成。在使用USB设备前,必须指明其采用的配置和接口。这个步 骤一般是在设备接入主机时设备进行自举时完成的,我们在后面会进 一步介绍。USB设备使用各种描述符来说明其设备架构,包括设备描 述符、配置描述符、接口描述符、端点描述符以及字符串描述符,它 们通常被保存在USB设备的固件程序中。
16.1 USB概述
• 主机定时对集线器的状态进行查询。当一个新设
备接入集线器时,主机会检测到集线器状态改变, 主机发出一个命令使该端口有效并对其进行设置。 位于这个端口上的设备进行响应,主机收到关于 设备的信息,主机的操作系统确定对这个设备使 用那种驱动程序,接着设备被分配一个唯一标识 的地址,范围从0~127,其中0为所有的设备在 没有分配惟一地址时使用的默认地址。主机向它 发出内部设置请求。当一个设备从总线上移走时, 主机就从其可用资源列表中将这个设备删除。
16.2 USB系统基本概念
• 16.2.1 USB主机
• (3) 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.的协议及规范

Usb2.0的协议规范第1章绪论1.1 起因Intel公司开发的通用串行总线架构(USB)的目的主要基于以下三方面考虑:(一)计算机与电话之间的连接:显然用计算机来进行计算机通信将是下一代计算机基本的应用。
机器和人们的数据交互流动需要一个广泛而又便宜的连通网络。
然而,由于目前产业间的相互独立发展,尚未建立统一标准,而USB则可以广泛的连接计算机和电话。
(二)易用性:众所周知,PC机的改装是极不灵活的。
对用户友好的图形化接口和一些软硬件机制的结合,加上新一代总线结构使得计算机的冲突大量减少,且易于改装。
但以终端用户的眼光来看,PC机的输入/输出,如串行/并行端口、键盘、鼠标、操纵杆接口等,均还没有达到即插即用的特性,USB正是在这种情况下问世的。
(三)端口扩充:外围设备的添加总是被相当有限的端口数目限制着。
缺少一个双向、价廉、与外设连接的中低速的总线,限制了外围设备(诸如电话/电传/调制解调器的适配器、扫描仪、键盘、PDA)的开发。
现有的连接只可对极少设备进行优化,对于PC机的新的功能部件的添加需定义一个新的接口来满足上述需要,USB就应运而生。
它是快速、双向、同步、动态连接且价格低廉的串行接口,可以满足PC机发展的现在和未来的需要。
1.2 USB规范的目标本书规范了USB的工业标准。
该规范介绍了USB的总线特点、协议内容、事务种类、总线管理、接口编程的设计,以及建立系统、制造外围设备所需的标准。
设计USB的目标就是使不同厂家所生产的设备可以在一个开放的体系下广泛的使用。
该规范改进了便携商务或家用电脑的现有体系结构,进而为系统生产商和外设开发商提供了足够的空间来创造多功能的产品和开发广阔的市场,并不必使用陈旧的接口,害怕失去兼容性。
1.3 适用对象·该规范主要面向外设开发商和系统生产商。
并且提供了许多有价值的信息给操作系统/BIOS/设备驱动平台、IHVS/ISVS适配器,以及各种计算机生产厂家使用。
USB2.0网络、传输、通讯和协议

USB2.0网络、传输、通讯和协议USB在我们生活中应用非常广泛,但绝大部分工程师都只注重USB应用层的开发,很少有人去了解USB更底层的一些技术。
今天就结合USB 2.0来简单讲述USB底层的一些基础知识。
嵌入式专栏1USB网络USB物理层网络为分层星型网络:一台主机和若干从设备。
USB 2.0 网络最多可支持127个外部节点,由于信号传播的时序限制,允许的最大层数为七个:•主机(总线主控器)的一层•集线器和设备六层Hub:集线器,提供了附加的连接点,每个集线器将单个连接点转换为多个连接点,也称为端口。
Func:即Function功能,为系统提供了发送或接收数据和控制信息的功能,每个unc包含描述设备功能和资源要求的配置信息。
Compound Device:复合设备,是实现多种功能并包括嵌入式集线器的物理程序包。
复合设备在主机上看起来像是带有一个或多个不可移动USB设备的集线器。
星形网络对于以主机为中心的开发人员,USB网络看起来像是星形网络。
集线器不会引起任何编程复杂性,并且就程序员而言是透明的。
无论是直接连接到根集线器还是通过中间集线器连接,USB设备的工作方式都相同。
在主/从网络中,所有USB设备都可用作可寻址节点,只有主机才能启动网络中的数据传输。
提示:•任何USB网络中只有一个主机。
•在第七层中只能启用功能。
•复合设备占据两层。
嵌入式专栏2USB传输速率USB的传输速率经过一代一代发展,越来越快了,去年(2019)新出来的标准:USB 4 支持高达40Gbps。
目前流行的USB 3.0、 3.1的传输速率其实已经很高了,对于绝大部分应用,这个速率完全没问题。
早期的USB传输速率相对于现在很低,但在那个时候,传输速率其实已经很高了。
(图片来源网络)嵌入式专栏3USB通信USB是轮询总线,USB主机在其中启动所有数据交换,数据往返于USB设备中的端点。
USB主机中的客户端将数据存储在缓冲区中,但没有端点。
usb通讯协议

usb通讯协议USB通讯协议。
USB(Universal Serial Bus)是一种用于连接计算机和外部设备的通用接口标准。
USB通讯协议是指USB设备与主机之间进行通讯时遵循的一套规则和约定,它包括物理层、数据链路层、传输层和应用层等内容。
USB通讯协议的规范和标准化,使得不同厂家生产的设备可以在不同的计算机系统上进行通讯和交互,极大地方便了用户的使用。
首先,USB通讯协议的物理层是指USB设备与主机之间的物理连接和电气特性。
USB接口采用了四根线进行数据传输,分别是VCC(电源线)、D+(数据+线)、D-(数据-线)和GND(地线)。
通过这四根线,USB设备可以与主机进行电源供给和数据传输。
同时,USB接口还采用了热插拔技术,用户可以在不关闭计算机的情况下插拔USB设备,极大地方便了用户的使用。
其次,USB通讯协议的数据链路层是指USB设备与主机之间的数据传输和协议规范。
在USB通讯中,数据传输采用了主从式架构,主机负责控制数据传输的发起和管理,而从设备则被动地响应主机的指令。
此外,USB通讯协议还规定了数据传输的速率和格式,以及数据的校验和纠错机制,保证了数据传输的可靠性和稳定性。
另外,USB通讯协议的传输层是指USB设备与主机之间的数据传输方式和协议规范。
USB通讯采用了端点(Endpoint)的概念,分为控制端点、批量传输端点、中断传输端点和等时传输端点等不同类型,用于满足不同数据传输的需求。
同时,USB通讯协议还规定了数据的传输方式,包括同步传输和异步传输,以及数据的打包和解包方式,保证了数据传输的高效和稳定。
最后,USB通讯协议的应用层是指USB设备与主机之间的通讯协议和接口规范。
USB通讯协议规定了USB设备的通讯方式和协议格式,包括设备描述符、配置描述符、接口描述符和端点描述符等内容,以及设备的状态转换和通讯协议的规范,保证了USB设备在不同的主机系统上可以正常地通讯和交互。
USB通信协议

USB通信协议——数据交易表列出了组成4种传输类型的元素。
在这里,读者就需要注意一些通信协议的结构。
例如,传输与数据交易、数据交易与封包、封包与字段之间的关系。
当然,这是相当复杂且容易弄混淆的地方。
其中,传输包含1个或是更多的数据交易,每一个数据交易又包含1个、2个或是3个封包。
而封包中,又包含封包标识符(PID)字段、检查字段(CRC)以及额外的信息字段。
表传输类型、数据交易与封包的关系表*每一个封包是往下端接口传递出去的,若是低速,前面还会再放置PRE封包。
因此,若要了解完整的USB通信协议就必须从数据域谈起。
通过由下而上,从简易至复杂的通信协议单位来组合出各种复杂的通信协议,进而构建出完整的通信协议。
从表的第2栏中,可以知道其中包含了3种数据交易类型。
这3种数据交易是根据其目的与数据流方向来决定的。
其中,SETUP数据交易用来送出控制传输要求给设备;IN数据交易是数据从设各传回主机;OUT数据交易是将数据传送出去给设各。
每一个数据交易中,包含了辨识、错误检核、状态以及控制信息,同样也包含了要交换的数据等。
此外,一个完整的数据交易可能占用多个帧。
但是数据交易却是一个实现USB通信协议的最基本的结构组成。
也即是,在总线上没有任何通信能够去切断该数据交易的沟通过程。
当然,除非是错误的USB通信过程。
此外,一个小量数据的传输也许仅需一个数据交易。
如果是大量的数据,传输可能就需使用多个数据交易,每一次传输一部分数据。
读者或许会认为表的通信协议的结构非常复杂。
其中,尤其是第1栏所列的控制传输是较为严谨与必须去实现的。
根据上述不同封包的组合与搭配就可以执行各种数据交易。
但最重要的是,数据交易的格式必须与前面所提及的4种传输类型互相配合。
这是因为不同的传输类型就会执行不同的数据交易。
其中,除了等时传输外,控制传输、中断传输与批量传输都以下列的3个阶段来组成一个数据交易的动作。
等时传输却只有包含如下所列的2个阶段而已。
usb通讯协议书

usb通讯协议书甲方(提供方):_____________________乙方(接收方):_____________________鉴于甲方拥有USB通讯技术,乙方需要使用该技术进行数据传输,双方本着平等互利的原则,经协商一致,就USB通讯技术的使用达成如下协议:第一条定义1. USB通讯技术:指甲方拥有的,用于实现计算机与外部设备之间数据传输的技术。
2. 数据传输:指通过USB通讯技术实现的,甲方与乙方之间数据的发送与接收。
第二条授权范围甲方授权乙方使用甲方的USB通讯技术进行数据传输。
授权范围限于乙方的内部业务需求。
第三条授权期限本协议自____年____月____日起至____年____月____日止。
第四条保密条款1. 乙方应对甲方提供的USB通讯技术及相关文档保密,未经甲方书面同意,不得向第三方披露。
2. 乙方应采取合理的保密措施,防止USB通讯技术泄露。
第五条技术支持与维护甲方负责提供USB通讯技术的技术支持和维护服务,确保乙方能够正常使用该技术。
第六条费用与支付1. 乙方应按照本协议约定向甲方支付使用费。
2. 支付方式、金额及时间由双方另行商定。
第七条违约责任1. 如一方违反本协议的任何条款,应承担违约责任,并赔偿对方因此遭受的损失。
2. 如乙方未按时支付使用费,甲方有权暂停技术支持服务,直至乙方补齐欠款。
第八条协议的变更与解除1. 本协议的任何变更或补充,须经双方协商一致,并以书面形式确认。
2. 如一方严重违约,另一方有权解除本协议。
第九条争议解决双方因履行本协议所发生的任何争议,应首先通过友好协商解决;协商不成时,任何一方可向甲方所在地人民法院提起诉讼。
第十条其他1. 本协议未尽事宜,双方可另行协商解决。
2. 本协议一式两份,甲乙双方各执一份,具有同等法律效力。
甲方代表(签字):_____________________乙方代表(签字):_____________________签订日期:____年____月____日签订地点:_____________________(此为模板内容,具体条款需根据实际情况调整和完善)。
usb协议书推荐

usb协议书推荐甲方(提供方):_______________地址:_______________________联系方式:_____________________乙方(接收方):_______________地址:_______________________联系方式:_____________________鉴于甲方拥有USB设备及相关技术,乙方需要使用该USB设备进行数据传输或存储,双方本着平等自愿、诚实信用的原则,就USB设备的使用达成如下协议:1. 定义USB设备:指由甲方提供,用于数据传输或存储的通用串行总线接口设备。
2. 设备提供甲方应向乙方提供符合乙方要求的USB设备,并保证该设备在交付时处于良好工作状态。
3. 使用范围乙方应将USB设备仅用于合法的数据传输或存储,不得用于任何违法活动。
4. 保密义务乙方在使用USB设备过程中,应遵守甲方的保密要求,不得泄露任何与甲方相关的商业秘密或技术信息。
5. 维护与保养乙方应妥善保管并维护USB设备,避免因不当使用造成设备损坏。
6. 责任限制甲方不对乙方使用USB设备产生的任何间接损失承担责任。
7. 协议期限本协议自双方签字盖章之日起生效,有效期为一年,除非双方另有书面约定。
8. 协议变更与解除任何一方需变更或解除本协议,应提前三十日书面通知对方,并经双方协商一致。
9. 争议解决因执行本协议所发生的任何争议,双方应通过友好协商解决;协商不成时,提交甲方所在地人民法院诉讼解决。
10. 其他本协议未尽事宜,双方可另行协商补充。
本协议一式两份,甲乙双方各执一份,具有同等法律效力。
甲方(签字):_________________ 日期:____年____月____日乙方(签字):_________________ 日期:____年____月____日(以下无正文)[注:以上协议书仅供参考,具体条款应根据实际情况制定,建议在正式签订前咨询专业法律人士。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
串口通信协议什么是串口串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线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-23 2只限于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半满时,LabWi ndows发送XOFF。
此外,如果XOFF传输被打断,LabWindows会在buffer达到75%和90%时发送XOFF。
显然,发送方必须遵循此守则以保证传输继续。
b,硬件握手:第二种是使用硬件线握手。
和Tx和Rx线一样,RTS/CTS和DTR/D SR一起工作,一个作为输出,另一个作为输入。
第一组线是RTS(Request to Send)和CTS(Clear toSend)。
当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。
另一组线是DTR(DataTermi nal Ready)和DSR(Data SetReady)。
这些现主要用于Modem通信。
使得串口和M odem通信他们的状态。
例如:当Modem已经准备好接收来自PC的数据,它置高DTR线,表示和线的连接已经建立。
读取DSR线置高,PC机开始发送数据。
一个简单的规则是DTR/DSR用于表示系统通信就绪,而RTS/CTS用于单个数据包的传输。
在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。
如果CTS模式使能,LabWindows使用如下规则:当PC发送数据:RS-232库必须检测CTS线高后才能发送数据。
当PC接收数据:如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。
如果输入队列90%满,库函数置低RTS,但使DTR维持高电平。
如果端口队列近乎空了,库函数置高RTS,但使DRT维持高电平。
如果端口关闭,库函数置低RTS和DTR。
c,XModem握手:最后讨论的握手叫做XModem文件传输协议。
这个协议在Modem 通信中非常通用。
尽管它通常使用在Modem通信中,XModem协议能够直接在其他遵循这个协议的设备通信中使用。
在LabWindows中,实际的XModem应用对用户隐藏了。
只要PC和其他设备使用XModem协议,在文件传输中就使用LabWindows的XModem函数。
函数是XModemConfig,XModemSend和XModemReceive。
XModem使用介于如下参数的协议:start_of_data、end_of_data、neg_ack、wa it_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)字节。
这导致接收的数据比原数据多。
在XModem情况下一定不要使用XON/XOFF,因为XModem发送方发出包的数目很可能增加到XON/OFF控制字符的值,从而导致通信故障。