合作框架协议生效吗?大家天天说的协议到底是什么
合作框架协议生效吗?大家天天说的协议到底是什么通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称为UART),在UART通信中,两个UART直接通信。类比一下串口协议,你们家电视机盒子里面就能找到这个协议噢,你还可以接出来看里面传输的是什么噢!类比我们在与人说话时每句话都有固定含义,这样才能与人交流。(3)报文传输的先后顺序类比我们和人交谈时交流是有先后顺序的,当有人问我吃饭了没,我应该先回答这个问题,而不是回答我几点起的床。
一、协议定义协议定义了两个或多个通信实体间所交换报文的格式和次序 以及在报文发送和/或接收或者其他事件方面所采取的行动(响应)
二、协议三要素(1)报文格式
类比我们在与人交流时都要遵循语法,也就是格式。
(2)各字段的含义
类比我们在与人说话时每句话都有固定含义,这样才能与人交流。
(3)报文传输的先后顺序
类比我们和人交谈时交流是有先后顺序的,当有人问我吃饭了没,我应该先回答这个问题,而不是回答我几点起的床。
三、串口协议类比一下串口协议,你们家电视机盒子里面就能找到这个协议噢,你还可以接出来看里面传输的是什么噢!
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称为UART),在UART通信中,两个UART直接通信。
发送端的UART将来自控制设备(如CPU)的并行数据转换为串行数据,以串行方式将其发送到接收端的UART,然后由接收端的UART将串行数据转换为并行数据以用于接收设备的正常处理。
这里只需要两条线RX/TX即可在两个UART之间传输数据。具体如下图所示;
1. 协议层UART传输的数据被封装成数据包。每个数据包包含1个起始位,5~9个数据位(取决于UART的具体设置),一个可选的奇偶校验位以及1个或2个停止位,具体如下图所示;
起始位
UART数据传输线通常在不传输数据时保持在高电平。
为了开始数据传输,发送端UART在一个时钟周期内将传输线从高电平拉低到低电平。
当接收端UART检测到高电压到低电压转换时,它开始以波特率的频率读取数据位中的每一位数据。
数据
数据位包含正在传输的实际数据。如果使用奇偶校验位,则可以是5位,最多8位。如果不使用奇偶校验位,则数据帧的长度可以为9位。
在大多数情况下,数据首先以低有效位发送。
校验位
在串口通信中一种简单的检错方式。
有四种检错方式:偶校验、奇校验、高校验和低校验。当然没有校验位也是可以的。
对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。
举个例子,如果数据是011,则满足;
偶校验,校验位为0,保证逻辑高的位数是偶数个。
奇校验,校验位为1,这样就有3个逻辑高位。
具体如下图所示;
高位和低位不是真正的检查数据,而是强行将校验位设置为逻辑高或者逻辑低。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
停止位
发送端UART将数据传输线从低电压驱动到高电压至少持续两位数据的时间宽度来表示整个数据包的传输已经结束。
由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容错性越好,但是数据传输率同时也越慢。
波特率
波特率是串口数据的传输速度,即Bit/s,常见的波特率有:9600,19200,38400,57600,115200,当然还有很多波特率,不再一一给出;
假设目前UART的配置为,1个起始位,8个数据位,0个校验位,1个停止位,那么9600的波特率,可以计算出每一位数据的时间宽度为:
那么传输一个字节(也就是10 bit 数据)需要的时间为 1.04 毫秒。
5 物理层UART、RS232、RS485在串口通信中,主要区别是电平的不同,其中UART通常使用TTL电平,下面介绍这几个存在的差异;
TTL
TTL全名是晶体管-晶体管逻辑集成电路(Transistor-Transistor Logic)
输入高电平最小2V,输出高电平最小2.4V,典型值3.4V;
输入低电平最大0.8V,输出低电平最大0.4V,典型值0.2V。