UART、RS232、RS485、IIC、SPI总线

总线

  • UART
  • RS232
  • RS485
  • IIC
  • SPI

UART

UART(Universal Asynchronous Receiver Transmitter) 通用异步收发器,是一种全双工的、异步串行数据总线。数据位一般为5-8位(太长会因为时钟频率的缘故,产生误差)。
一般含串口的芯片集成有 UART 控制器,我们只需要操作其寄存器即可完成通信。
以4412开发板为例,讲解其串口2使用(基本上可以理解为一堆寄存器操作):

  1. 设置主板的 GPA1_0 和GPA1_1 引脚为 UART2的发送和接收引脚,操作寄存器 GPACON[7:0]
  2. 设置 UART2 的帧格式, ULCON2
    8位数据位 1位停止位 无校验 正常模式
  3. 设置 UART2 的发送和接收模式为轮询模式 UCON2[3:0]
  4. 设置波特率 UBRDIV2/UFRACVAL2
  5. 将要发送的数据写入发送寄存器

RS232

RS232 和 RS485 是电气层面的说法,实际上还是串口协议。
直接使用串口有会有如下问题:

  • 电气接口特性未定义:比如连接器、电平等
  • 使用的是TTL电平,抗干扰能力很差
  • 通信距离短

然后RS232就来了,其连接器标准为 DB9(如下图,早期的很多PC、投影仪都有这个接口),主要使用的引脚其实只有三个(RXD/TXD/GND),其传输距离可达15m。
UART、RS232、RS485、IIC、SPI总线_第1张图片

RS485

但RS232也有问题

  • 比如电平太高了(-5~-15 表示 1,+5~+15表示0),容易损坏接口电路芯片;
  • 速度低
  • 易产生共模干扰

所以又有了 RS485。RS485采用差分信号,抗干扰能力强,传输距离可达1500m;同时语序多个收发器,具备多站能力,能够形成网络;电压低,同时兼容TTL。
但RS485是半双工的,编程上需要做一点特殊处理。

差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相同,相位相反。
在这两根线上的传输的信号就是差分信号
两线电压差 +2 ~ +6表示1,-2 ~ - 6表示0.

IIC

IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构。
UART、RS232、RS485、IIC、SPI总线_第2张图片
IIC 多设备连接图:
UART、RS232、RS485、IIC、SPI总线_第3张图片

SPI

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,
UART、RS232、RS485、IIC、SPI总线_第4张图片
SPI多从设备连接图:
UART、RS232、RS485、IIC、SPI总线_第5张图片

你可能感兴趣的:(linux,计算机基础,单片机,物联网,stm32)