1. 什么是UART?
通用异步收发器, 可以实现与外界设备进行异步通信 。UART是全双工、 串行、 异步。
2. UART传输数据顺序?
LSB先行原则, 先发送数据低位
以0xF6为例:( MSB) 1111 0110( LSB)
发送顺序从低位开始:0,1,1,0,1,1,1,1
3. 单工、半双工、全双工特点?
1.单工通信:(1)数据的发送方和接收方是固定的。
(2)数据传输是通过一根信号线完成, 数据传输的方向是单一的。
2.半双工通信:(1)通信双方既可以作为数据的发送方, 也可以作为数据的接收方。
(2)数据传输是通过一根信号线完成, 数据传输的方向可以是双向的。
(3)在同一时刻, 数据传输只能是单向的。
I2C、RS-485、CAN 总线
3.全双工通信:(1)通信双方即可以作为数据的发送方, 也可以作为数据的接收发。
(2)数据传输是通过两根信号线完成, 数据传输的方向是双向的。
UART 串口、SPI、以太网
4. 什么是串行、并行及特点?
串行传输:通过一根信号线传输数据(一根数据线), 按照先后次序逐个bit逐个bit发送数据。
串行特点:(1)传输速率慢
(2)硬件成本低,实现简单
(3)传输距离远,抗干扰性好(RS485)
并行传输:多跟数据信号线同时去传输数据。
并行特点:(1)传输速率快
(2)硬件成本高,实现复杂
(3)传输距离源,抗干扰性差(一般30米)
5. 串口通信时序?
空闲状态:在没有数据传输时,线路处于空闲状态,此时波形为高电平。例如,当单片机的 USART 模块没有发送或接收数据任务时,TX 和 RX 引脚都保持高电平。
起始位:当有数据要发送时,首先发送一个bit的低电平脉冲作为起始位,表示数据传输的开始。起始位的宽度通常为一个波特率周期。比如,若波特率为 9600bps,那么起始位的持续时间约为 1/9600秒≈104.2μs。
数据位:起始位之后是数据位,数据位的个数可以是 8 位或 9 位,低位在前,高位在后。以发送字符 'A'(ASCII 码为 0x41,二进制为 01000001)为例,在 8 位数据位的情况下,先发送最低位 1,然后依次发送其他位。
校验位:校验位用于数据传输的正确性校验,可选择奇校验、偶校验或无校验。若选择奇校验,那么校验位会使包括数据位和校验位在内的 1 的个数为奇数;若为偶校验,则使 1 的个数为偶数。例如,数据位为 01000001,采用偶校验时,校验位为 0,因为数据位中已有 2 个 1,加上校验位 0 后 1 的总数为偶数。
停止位:数据位和校验位发送完成后,发送停止位,停止位的宽度可以是 0.5 位、1 位、1.5 位或 2 位。常用的是 1 位停止位,它为高电平,持续时间为一个波特率周期。
6. 奇校验和偶校验?有什么缺点?
奇校验(Odd):校验位是'1',用数据位中'1'的个数加上校验位的'1', 如果'1'的个数是奇数个, 代表奇校验通过。
偶校验(Even):校验位是'0', 用数据位中的'1'的个数加上校验位的'0', 如果的'1'的个数是偶数, 代表偶校验通过。
7. 串口通信参数?
串口通信参数:波特率、 数据位、 校验位、 停止位。
波特率:每秒传输的符号数(单位:bps,bits per second)。
常见值 9600、19200、38400、115200 等。
要求通信双方的波特率必须一致,否则数据会解析错误。
数据位:每个数据帧中实际传输的有效数据位数。常用为8位对应一个字节。
校验位:用于检测数据传输过程中的错误。包含无校验(None):不进行校验。奇校验
(Odd) :数据位中“1”的个数为奇数时,校验位为0。偶校验(Even):数据位中“1”的个数为偶
数时,校验位为0。
停止位:标志数据帧结束的位,用于同步时钟。
8. 同步和异步?
同步: 发送方和接收方通过一根同步信号线来约定通信的频率。(例如I2C,SCL位时钟线,SDA为数据线)
异步: 通信双方没有时钟线进行通信频率的同步( UART: 通过波特率来约定双方通信的频率)
9. TTL、RS232、RS485?
串口通信有很多不足,首先UART只是对信号的时序进行了定义,而未定义接口的电气特性;UART没有规定不同器件连接时连接器的标准,所以不同器件之间通过UART通信时连接很不方便。并且抗干扰能力差,通信时很容易出错。
CH340:电平转换芯片,将串口电平(TTL电平)转换为USB电平,当然也可以将USB电平转化为TTL电平。
TTL电平:高电平(1):3.3V 、 5V 低电平(0):0V。这样的通信及电平规定成为TTL信号系统,因为TTL信号的抗干扰能力较差,所以其通信距离也很短,一般只能用于一个电路板上的两个不芯片之间的通信。
RS232电平(负逻辑):高电平(1):-3V到-15V,低电平(0):3V到15V。在串行通信时,求通讯双方都采用一种标准接口,使不同的设备可以方便地连接起来进行通讯。RS232是目前最常用的一种串行通讯接口。RS232的通信方式是在串口通信的基础上,增加一个232转换芯片,将TTL电平转换成232电平进行通信。232电平相比于TTL电平,抗干扰能力增强。也就是说信号发生波动时,高低电平有改变余量,所以信号不容易被改变。其数据帧格式与串口一致。
例如MAX232芯片:
RS232也有很多缺点:
1.电平值较高,容易损坏接口电路的芯片,需要电平转换芯片才能与TTL电路连接。
2.传输距离仍旧较短,一般只能用在15米左右。
3.接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
RS485电平(差分):高电平(1):2V到6V 低电平(1):-6V到-2V。相比于RS232,RS485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等优点。
10. Modbus协议格式?
Modbus 协议是一种单主/多从的通信协议,其特点是在同一时间总线上只能 有一个主设备,但可以有一个或者多个(最多 247 个)从设备。Modbus 通信总是由主设备发 起,当从设备没有收到来自主设备的请求时,从设备不会主动发送数据。从设备之间不能相 互通信,主设备只能同时启动一个 Modbus 访回事务处理。 主设备可以采用两种方式向从 设备发送 Modbus 请求报文,即主设备可以对指定的单个从设备或者线路上所有的从设备 发送请求报文,而从设备只能在被被动接收请求报文后给出响应报文,即应答。
Modbus 报文帧:
主机(PC串口助手)发送控制指令之后,从机(51单片机)解析主机发送的指令,获得功能码,根据功能码完成对应的控制。
从机(51)应答: