串口通信协议
- 格式:docx
- 大小:29.06 KB
- 文档页数:5
串口协议书范本合同编号:______________甲方(提供方):______________地址:______________联系电话:______________乙方(接收方):______________地址:______________联系电话:______________鉴于甲方是一家专注于串口通信技术的公司,乙方需要甲方提供的串口通信服务,双方本着平等互利的原则,经友好协商,就串口通信服务的提供和使用达成如下协议:第一条服务内容甲方同意向乙方提供以下串口通信服务:1. 提供标准的串口通信接口。
2. 提供必要的技术支持和咨询服务。
3. 保证串口通信的稳定性和安全性。
第二条服务期限本协议自双方签字盖章之日起生效,有效期至____年____月____日。
第三条服务费用及支付方式1. 服务费用总额为人民币____元(¥____)。
2. 乙方应在本协议签订后____个工作日内一次性支付全部服务费用。
第四条双方权利与义务1. 甲方应按照约定的时间和方式提供服务。
2. 乙方应按时支付服务费用,并保证提供给甲方的信息真实有效。
3. 甲方应保证提供的服务符合行业标准,并对服务过程中出现的技术问题负责解决。
4. 乙方应合理使用甲方提供的服务,不得用于违法活动。
第五条保密条款双方应对在合同执行过程中知悉的对方商业秘密和技术秘密负有保密义务,未经对方书面同意,不得向第三方披露。
第六条违约责任1. 如一方违反本协议约定,应向守约方支付违约金,违约金的数额为违约方应支付或应收服务费用的____%。
2. 因不可抗力导致任何一方不能履行或延迟履行本协议的,该方不承担违约责任。
第七条协议的变更和解除1. 本协议的任何修改和补充均需双方协商一致,并以书面形式确认。
2. 如因特殊情况需要提前解除协议,提出方应提前____天书面通知对方。
第八条争议解决双方在履行本协议过程中发生争议,应首先通过友好协商解决;协商不成的,任何一方均可向甲方所在地人民法院提起诉讼。
串口通信协议1. 引言串口通信是一种常见的用于设备间数据传输的通信方式。
在许多嵌入式系统和电子设备中,串口通信被广泛应用。
为了确保设备间的数据传输顺利进行,需要定义一种协议来规定数据的格式和传输方式。
本文将介绍串口通信协议的基本原理和常用协议。
2. 串口通信原理串口通信是通过串行数据传输进行的,即逐个比特的传输数据。
数据在发送端经过串行转并行的过程,通过串口线路传输到接收端后再进行并行转串行的过程。
串口通信的核心是通过一对数据线(TX和RX)传输数据,常用的串口通信协议有RS232、RS485、UART等。
3. 串口通信协议的要素串口通信协议由以下几个要素组成:3.1. 数据帧数据帧是指在串口通信中传输的最小单位,一般由起始位、数据位、校验位和停止位组成。
起始位标志着数据传输的开始,数据位存储实际的数据信息,校验位用于数据的校验,停止位表示数据传输的结束。
3.2. 波特率波特率是指每秒钟传输的比特数,波特率越高,传输速度越快,但容易导致数据传输错误。
常见的波特率有9600、19200、38400等。
3.3. 校验方式校验方式用于检测数据传输过程中的错误,常见的校验方式有奇偶校验、偶校验、无校验等。
3.4. 控制流控制流用于控制数据的传输速率,常见的控制流有硬件流控和软件流控。
4. 常用的串口通信协议4.1. RS232RS232是一种串口通信协议,常用于计算机和外部设备之间的数据传输。
RS232协议使用一对差分信号线进行数据传输,信号范围为正负12V,支持半双工通信。
4.2. RS485RS485是一种串口通信协议,多用于多机通信系统。
RS485协议使用两条信号线进行数据传输,支持全双工通信。
4.3. UARTUART是一种简单的串口通信协议,常用于单片机和外部设备之间的数据传输。
UART协议没有硬件流控和校验功能,数据传输速率较低。
5. 串口通信的应用串口通信协议广泛应用于各种电子设备和嵌入式系统中,常见的应用包括:•与计算机进行数据传输:通过串口连接计算机和外部设备,实现数据的传输和通信。
串口通信协议协议名称:串口通信协议一、引言串口通信协议是用于在计算机系统和外部设备之间进行数据传输的一种通信协议。
本协议旨在规范串口通信的数据格式、传输速率、数据校验和错误处理等方面的要求,以确保通信的稳定性和可靠性。
二、范围本协议适用于计算机系统与外部设备之间通过串口进行数据传输的场景。
三、术语定义1. 串口:计算机系统与外部设备之间进行数据传输的接口。
2. 波特率:串口通信中单位时间内传输的比特数。
3. 数据位:每个数据字节中包含的比特数。
4. 停止位:用于标识数据传输结束的比特。
5. 校验位:用于验证数据传输的正确性的比特。
6. 数据帧:串口通信中的数据传输单元,包含起始位、数据位、校验位和停止位。
四、协议规范1. 数据帧格式1.1 起始位:每个数据帧以一个起始位开始,取值为逻辑低电平。
1.2 数据位:每个数据帧包含8个数据位。
1.3 校验位:每个数据帧包含一个校验位,用于验证数据的正确性。
可选的校验方式包括奇偶校验、偶校验和无校验。
1.4 停止位:每个数据帧以一个或两个停止位结束,取值为逻辑高电平。
2. 波特率2.1 波特率的选择应根据实际需求和硬件支持来确定,常见的波特率包括9600、19200、38400、57600和115200等。
2.2 双方在通信前应协商并设置相同的波特率。
3. 数据传输3.1 发送方将数据按照数据帧格式发送给接收方。
3.2 接收方接收到数据后,根据数据帧格式解析数据。
3.3 发送方和接收方在数据传输过程中应遵循同步机制,确保数据的准确传输。
4. 错误处理4.1 发送方在发送数据时,应检测传输过程中的错误,并采取相应的错误处理措施,例如重新发送数据或通知接收方。
4.2 接收方在接收数据时,应检测传输过程中的错误,并采取相应的错误处理措施,例如请求重新发送数据或发送错误信息给发送方。
五、协议实施1. 硬件要求1.1 计算机系统和外部设备应支持串口通信功能。
1.2 串口线缆应符合标准规范,以确保信号传输的稳定性和可靠性。
串口通信协议协议名称:串口通信协议一、引言串口通信协议旨在规范串行通信中数据的传输方式和格式,确保不同设备之间的数据交换能够顺利进行。
本协议适用于使用串口进行数据传输的各种设备和系统。
二、术语定义1. 串口:指计算机或其他设备上的串行通信接口,用于将数据以序列的方式传输。
2. 数据位:指每个数据字节中所包含的位数,常用的取值为5、6、7、8。
3. 停止位:指数据字节之后的额外位数,用于标识数据传输的结束。
4. 校验位:指用于校验数据传输的正确性的额外位数。
5. 波特率:指每秒钟传输的比特数,用于衡量数据传输速率。
6. 帧:指数据传输中的一个完整单元,包括数据位、停止位和校验位。
三、通信协议1. 通信参数设置a. 数据位:默认为8位,可根据实际需求进行设置。
b. 停止位:默认为1位,可根据实际需求进行设置。
c. 校验位:默认为无校验,可根据实际需求进行设置。
d. 波特率:默认为9600bps,可根据实际需求进行设置。
2. 数据帧格式a. 起始位:每个数据帧以一个起始位开始,用于标识数据帧的开始。
b. 数据位:根据通信参数设置的数据位数确定,用于传输实际数据。
c. 停止位:每个数据帧以一个或多个停止位结束,用于标识数据帧的结束。
d. 校验位:可选项,用于校验数据传输的正确性。
3. 通信流程a. 发送端将数据按照数据帧格式进行封装,并通过串口发送。
b. 接收端通过串口接收数据,并按照数据帧格式进行解析。
c. 接收端校验数据的正确性,如果校验失败,则丢弃该数据帧。
d. 接收端将有效数据提取出来进行处理。
四、通信协议示例以下为一个示例,展示了一个基于串口通信的简单数据传输协议。
1. 通信参数设置:数据位:8位停止位:1位校验位:无波特率:9600bps2. 数据帧格式:起始位:1位(固定为0)数据位:8位停止位:1位(固定为1)3. 通信流程:a. 发送端封装数据帧:起始位:0数据位:实际数据停止位:1b. 发送端通过串口发送数据帧。
串口协议有哪几种
串口协议是一种用于在计算机和外设之间进行数据通信的协议。
常见的串口协议有以下几种:
1. RS-232:RS-232是最早的一种串口协议,用于在计算机和外设之间通过串口进行通信。
它规定了通信的电气特性、物理连接、数据传输格式等。
2. RS-485:RS-485是一种多点通信协议,可以在一个总线上连接多个设备进行通信。
与RS-232相比,RS-485具有更长的传输距离和更高的传输速率。
3. RS-422:RS-422也是一种多点通信协议,类似于RS-485,但RS-422只支持全双工通信,而不支持半双工通信。
4. Modbus:Modbus是一种串口通信协议,广泛应用于工业自动化领域。
它支持点对点和多点通信,可以通过串口或网络进行数据传输。
5. SPI:SPI是一种同步串行通信协议,常用于将计算机与外设等短距离连接。
它使用4根信号线进行通信,包括时钟线、数据线、主从选择线和片选线。
6. I2C:I2C是一种串行通信协议,常用于连接计算机和外设。
它使用2根信号线进行通信,包括时钟线和数据线。
这些串口协议具有不同的特点和适用范围,可以根据具体应用选择合适的协议。
百科名片串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
目录什么是串口什么是RS-232什么是RS-422什么是RS-485什么是握手编辑本段什么是串口串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal SerialBus或者USB混淆)。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。
它表示每秒钟传送的bit的个数。
例如300波特表示每秒钟发送300个bit。
当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。
这意味着串口通信在数据线上的采样率为4800Hz。
通常电话线的波特率为14400,28800和36600。
波特率可以远远大于这些值,但是波特率和距离成反比。
高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
串口通信协议书甲方(以下简称“甲方”):_____________________地址:_____________________________________法定代表人(或授权代表):_________________职务:_____________________________________联系电话:_________________________________乙方(以下简称“乙方”):_____________________地址:_____________________________________法定代表人(或授权代表):_________________职务:_____________________________________联系电话:_________________________________鉴于甲方与乙方就串口通信技术的应用与合作达成一致,根据《中华人民共和国合同法》及相关法律法规的规定,双方本着平等、自愿、公平、诚实信用的原则,经协商一致,订立本协议书,以资共同遵守。
第一条协议目的1.1 本协议旨在明确甲乙双方在串口通信技术领域内的合作范围、权利义务及合作方式等事项。
第二条合作内容2.1 甲方同意向乙方提供串口通信技术及相关技术支持。
2.2 乙方同意按照本协议约定的条件使用甲方提供的串口通信技术,并支付相应的费用。
第三条技术提供与技术支持3.1 甲方应保证所提供的串口通信技术符合国家相关技术标准和行业规范。
3.2 甲方应提供必要的技术支持和培训,以确保乙方能够正确使用串口通信技术。
第四条合作期限4.1 本协议自双方签字盖章之日起生效,有效期至____年____月____日。
第五条费用及支付方式5.1 乙方应按照本协议约定向甲方支付串口通信技术使用费,具体金额为:________________。
5.2 乙方应于本协议生效后____天内,将上述费用支付至甲方指定账户。
串口通信协议协议名称:串口通信协议1. 引言串口通信协议是一种用于在计算机和外部设备之间进行数据传输的标准化协议。
本协议旨在规定串口通信的数据格式、传输速率、错误检测和纠正机制等方面的要求,以确保可靠的数据传输和互操作性。
2. 范围本协议适用于使用串行通信接口进行数据传输的各类设备,包括但不限于计算机、嵌入式系统、传感器、执行器等。
3. 术语和定义3.1 串口:指用于串行数据传输的计算机接口,常见的串口标准包括RS-232、RS-485等。
3.2 波特率:指串口通信中的数据传输速率,单位为波特(bps)。
3.3 数据帧:指串口通信中的数据单元,包含起始位、数据位、校验位和停止位等信息。
3.4 奇偶校验:指用于检测和纠正传输过程中出现的错误的校验机制。
4. 通信参数4.1 波特率:通信双方协商确定的数据传输速率,常见的波特率包括9600、19200、38400等。
4.2 数据位:每个数据帧中用于传输数据的位数,常见的数据位数包括8位、7位等。
4.3 奇偶校验:用于检测和纠正传输过程中出现的错误,常见的奇偶校验方式包括奇校验、偶校验、无校验等。
4.4 停止位:用于标识数据帧的结束,常见的停止位数包括1位、2位等。
5. 数据格式5.1 起始位:每个数据帧的起始位置,用于同步数据传输。
5.2 数据位:每个数据帧中用于传输数据的位数。
5.3 奇偶校验位:用于校验数据传输过程中的错误。
5.4 停止位:用于标识数据帧的结束。
6. 错误检测和纠正6.1 奇偶校验:接收端通过校验位对接收到的数据进行校验,以检测传输过程中的错误。
6.2 重传机制:当发生错误时,发送端将重新发送数据帧,以确保数据的正确传输。
7. 传输协议7.1 数据传输流程:发送端将数据按照数据帧格式进行封装,通过串口发送给接收端,接收端将接收到的数据帧进行解析和处理。
7.2 数据传输控制:发送端和接收端通过握手信号进行数据传输的控制和同步。
8. 安全性8.1 数据加密:对敏感数据进行加密处理,以确保数据的安全性。
串口UART协议1. 什么是串口UART协议?串口通信是一种用于在设备之间传输数据的通信方式。
UART(Universal Asynchronous Receiver/Transmitter)是一种常见的串口通信协议,广泛应用于各种嵌入式系统和电子设备中。
UART协议定义了数据在物理上如何通过串口进行传输以及如何解析和处理接收到的数据。
它使用两根线(一条发送线TX和一条接收线RX)来进行全双工的异步通信。
发送端将数据按照特定的格式发送给接收端,接收端则负责解析和处理接收到的数据。
2. UART协议的工作原理UART协议使用异步传输方式,在传输数据时不需要时钟信号进行同步。
它通过将每个字节分成多个位(通常为8位),并在每个字节之间插入起始位、停止位和可能的校验位来实现。
•起始位:表示一个字节的开始,逻辑上为低电平。
•数据位:包含要传输的实际数据。
•停止位:表示一个字节的结束,逻辑上为高电平。
•校验位(可选):用于检测传输过程中是否出现错误。
发送端根据UART配置设置将要发送的数据转换为电平信号并通过发送线发送出去。
接收端通过接收线接收到电平信号,并根据UART配置设置解析和处理接收到的数据。
3. UART协议的配置参数UART协议的配置参数包括波特率、数据位、停止位和校验位。
•波特率:表示每秒钟传输的比特数,常见的波特率有9600、115200等。
发送端和接收端必须使用相同的波特率才能正常通信。
•数据位:表示每个字节中包含的数据位数,常见的数据位数有5、6、7和8。
•停止位:表示每个字节之后的停止位数,常见的停止位数有1和2。
•校验位:用于检测传输过程中是否出现错误,常见的校验方式有奇偶校验和无校验。
这些配置参数需要在发送端和接收端进行一致设置才能正常传输数据。
4. UART协议的优点UART协议具有以下几个优点:•简单易用:UART协议是一种简单易用的串口通信协议,不需要复杂的硬件支持。
•可靠性高:由于使用了起始位、停止位和可能的校验位,UART协议可以在一定程度上保证通信的可靠性。
串口通信协议一、引言串口通信协议是在计算机和外部设备之间进行数据传输的一种标准规定。
随着计算机和外部设备的快速发展,串口通信协议在信息交互中扮演着重要的角色。
本文将介绍串口通信协议的基本原理、常见的串口通信协议以及串口通信的应用场景。
二、串口通信协议的基本原理串口通信协议基于串行通信原理,其中传输的数据是一个位一个地按照顺序进行发送和接收。
串口通信协议一般包含以下几个方面的内容:1.物理层:串口通信协议需要确定使用哪种物理接口进行数据传输,常见的物理层接口有RS-232、RS-485、TTL等。
2.数据帧:数据帧是串口通信协议中最基本的单位,在传输过程中需要对数据进行分割和整合。
一个完整的数据帧一般包含起始位、数据位、校验位和停止位等。
3.波特率:波特率是指串口通信中单位时间内传输的比特数,波特率越高,传输速度越快。
常见的波特率有9600、115200等。
4.流控制:流控制用于控制数据的传输速度,防止数据丢失和冲突。
常见的流控制方式有硬件流控制和软件流控制。
三、常见的串口通信协议1.RS-232协议:RS-232是一种常见的串口通信协议,广泛应用于计算机和外部设备之间的数据传输。
它采用DB9或DB25接口,支持全双工通信和多设备之间的连接。
2.RS-485协议:RS-485是一种多点通信协议,支持半双工通信和多设备之间的连接。
它采用两线制,可以实现长距离的数据传输。
3.TTL协议:TTL是一种电平标准,常用于单片机与外部设备之间的串口通信。
TTL信号电平波动小,可靠性高,但传输距离较短。
四、串口通信的应用场景串口通信在各个领域都有广泛的应用,以下是其中几个常见的应用场景:1.工业自动化:串口通信被广泛应用于工业自动化领域,用于连接和控制各种工业设备,如PLC控制器、传感器、执行器等。
2.智能家居:串口通信在智能家居系统中扮演重要的角色,用于连接和控制家庭中各种智能设备,如智能开关、智能灯具等。
3.医疗设备:串口通信在医疗设备中广泛应用,用于连接和控制医疗仪器,如心电图仪、血压计等。
串口通信协议
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
的检查数据,简单置位逻辑高或者逻辑低校验。
这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
什么是RS-232
RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。
可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。
用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。
RS-232只限于PC串口和设备间点对点的通信。
RS-232串口通信最远距离是50英尺。
DB-9针连接头
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-422
RS-422(EIA RS-422-AStandard)是Apple的Macintosh计算机的串口连接标准。
RS-422使用差分信号,RS-232使用非平衡参考地的信号。
差分传输使用两根线
发送和接收信号,对比RS-232,它能更好的抗噪声和有更远的传输距离。
在工
业环境中更好的抗噪性和更远的传输距离是一个很大的优点。
什么是RS-485
RS-485(EIA-485标准)是RS-422的改进,因为它增加了设备的个数,从10个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。
有了多个设备的能力,你可以使用一个单个RS-485口建立设备网络。
出色抗噪和多设备能力,在工业应用中建立连向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的引脚的功能
数据:1(DATA-) 2(DATA+)
地线:5
什么是握手
RS-232通行方式允许简单连接三线:Tx、Rx和地线。
但是对于数据传输,双方必须对数据定时采用使用相同的波特率。
尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。
这时需要串口的握手功能。
在这一部分,我们讨论三种最常用的RS-232握手形式:软件握手、硬件握手和Xmodem。
a,软件握手:我们讨论的第一种握手是软件握手。
通常用在实际数据是控制字符的情况,类似于GPIB使用命令字符串的方式。
必须的线仍然是三根:Tx,Rx 和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem允许用户使用或者禁止用户使用两个控制字符XON和XOFF。
这些字符在通信中由接收
方发送,使发送方暂停。
例如:假设发送方以高波特率发送数据。
在传输中,接收方发现由于CPU忙于其他工作,输入buffer已经满了。
为了暂时停止传输,接收方发送XOFF,典型的值是十进制19,即十六进制13,直到输入buffer空了。
一旦接收方准备好接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。
输入buffer半满时,LabWindows发送XOFF。
此外,如果XOFF传输被打断,LabWindows会在
buffer达到75%和90%时发送XOFF。
显然,发送方必须遵循此守则以保证传输继续。
b,硬件握手:第二种是使用硬件线握手。
和Tx和Rx线一样,RTS/CTS和DTR/DSR 一起工作,一个作为输出,另一个作为输入。
第一组线是RTS(Request to Send)和CTS(Clear toSend)。
当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。
另一组线是DTR (DataTerminal Ready)和DSR(Data SetReady)。
这些线主要用于Modem通信。
使得串口和Modem通信他们的状态。
例如:当Modem已经准备好接收来自PC的数据,它置高DTR线,表示和电话线的连接已经建立。
读取DSR线置高,PC机开始发送数据。
一个简单的规则是DTR/DSR用于表示系统通信就绪,而
RTS/CTS用于单个数据包的传输。
在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。
如果CTS模式使能,LabWindows使用如下规则:
当PC发送数据:
RS-232库必须检测CTS线高后才能发送数据。
当PC接收数据:
如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。
如果输入队列90%满,库函数置低RTS,但使DTR维持高电平。
如果端口队列近乎空了,库函数置高RTS,但使DTR维持高电平。
如果端口关闭,库函数置低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、wait_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控制字符的值,从而导致通信故障。