(续接上篇)

5. 通信协议

UART、I2C、SPI、USB、CAN

UART(universal async receiver transmitter):通用异步收发器 全双工、串行、异步

RXD:数据接收信号线

TXD:数据发送信号线

单工

  • 数据接收方和数据发送方是固定的
  • 数据传输是通过一根信号线实现
  • 数据传输的方向是单一的

半双工

  • 通信双方既可以作为数据发送方也可以作为数据接收方 (接收方和发送方不固定)
  • 数据传输是通过一根信号线实现
  • 数据传输的方向可以是双向的(但同一时刻数据传输呈现单一性)

全双工

  • 通信双方既可以作为数据发送方也可以作为数据接收方
  • 数据传输是通过两根信号线实现
  • 任意时刻,数据传输方向是双向的

低位先行:先发送低位数据

高位先行:先发送高位数据 串口发送数据时,遵循LSB优先发送原则

串行:

通过一根信号线逐个bit逐个bit发送数据

  • 1. 传输速度慢
  • 2. 硬件成本低,实现简单
  • 3. 传输距离远,抗干扰性好(RS485 差分)

并行:

通过多根信号线多个bit同时发送

  • 1. 传输速度快
  • 2. 硬件成本高,实现复杂
  • 3. 传输距离近,抗干扰性差(30米)

奇偶校验: 无法检测偶数个bit出错的问题

奇校验:校验位为'1',若数据位中'1'的个数加上校验位的'1'保持'1'的总个数为 奇数个,则代表奇校验通过

偶校验:校验位'0',若数据位中'1'的个数加上校验位的'0'保持'1'的总个数为 偶数个,则代表偶校验通过

串口通信参数:

eg :9600 8 N 1

  • 9600 :波特率,bits per second,bps 每秒传输bit数量
  • 8:数据位,8位数据位
  • N:None 无校验
    O: Odd 奇校验
    E:Even 偶校验
  • 1: 停止位

同步通信:通信双方通过一根共享的时钟信号线规定数据传输的频率

异步通信:通信双方没有共享时钟信号线规定数据传输频率

6. 串口中断

7. 主从应答

主机:可以发起通信,对通信具有绝对控制权

从机:无法发起通信,只能根据主机下发指令完成对应的功能

主机下发Modbus协议格式指令,从机接收指令并解析,完成对应功能 并给主机回复应答

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐