UART、RS232与RS485、I2C与SPI协议通信

I2C通信:

物理接口:SCL+SDA,SCL(serial clock)时钟线传输CLK信号,一般是I2C主设备向从设备提供时钟的通道;SDA(serial data)数据线,传输通信数据。

通信特征:串行、同步、非差分、低速率、电平协议,所有数据以位为单位在SDA线上串行传输;同步通信就是通信双方工作在同一个时钟下,一般是通信的A方通过一根CLK信号线传输A自己的时钟给B,B工作在A传输的时钟下,通信线中有CLK是同步通信的显著特征;I2C适合通信双方近距离通信,使用电平信号。

突出特征:(1)主设备+从设备,谁主谁从是由通信双方来定的,I2C协议并无规定(2)可以多个设备挂在一条总线上,可以一对一也可以一对多。

主要用途:Soc和周边外设之间的通信,典型的如EEPROM、电容触摸IC、各种sensor等。
IIC 是多主设备的总线,IIC没有物理的芯片选择信号线,没有仲裁逻辑电路,只使用两条信号线—— ‘serial data’ (SDA) 和 ‘serial clock’ (SCL)。IIC协议规定:
第一,每一支IIC设备都有一个唯一的七位设备地址;
第二,数据帧大小为8位的字节;
第三,数据(帧)中的某些数据位用于控制通信的开始、停止、方向(读写)和应答机制。

IIC 通信过程大概如下:首先,主设备发一个START信号,这个信号就像对所有其它设备喊:请大家注意!然后其它设备开始监听总线以准备接收数据。接着,主设备发送一个7位设备地址加一位的读写操作的数据帧。当所设备接收数据后,比对地址自己是否目标设备。如果比对不符,设备进入等待状态,等待STOP信号的来临;如果比对相符,设备会发送一个应答信号——ACKNOWLEDGE作回应。

当主设备收到应答后便开始传送或接收数据。数据帧大小为8位,尾随一位的应答信号。主设备发送数据,从设备应答;相反主设备接数据,主设备应答。当数据传送完毕,主设备发送一个STOP信号,向其它设备宣告释放总线,其它设备回到初始状态。

时序:起始位是一个时间段,总线Clock线维持高电平,SDA线由高变低;结束位,SCL线维持高电平,同时SDA线发生一个从低到高的上升沿。

UART、RS232与RS485、I2C与SPI协议通信_第1张图片
UART、RS232与RS485、I2C与SPI协议通信_第2张图片
UART、RS232与RS485、I2C与SPI协议通信_第3张图片

SPI:

特征:SPI总线有四根,时钟线、片选线、MOSI(主机发从机收)、MISO(主机收从机发);
全双工、同步、串行、主从模式、边沿协议,支持多slave模式、片选信号拉低开始数据的按位传输,16进制一字节4个位,速率可达几Mbps的水平。大小端是对于字节而言。

用途:外部移位寄存器、A/D转换、串行EEPROM、LED显示驱动器;
UART、RS232与RS485、I2C与SPI协议通信_第4张图片
左图模式一00,第一个边沿上升沿采集,第二个下边沿发出。01010101有效电平高电平。
右图模式二01,第二个边沿下降沿采集,第三个上升沿发出。01010101有效电平高电平。
时钟极性(clock polarity)CPOL=0,左图时钟相位(clock phase)CPHA=0,0代表奇数边沿采集,右图CPHA=1。
UART、RS232与RS485、I2C与SPI协议通信_第5张图片
模式三10,脉冲的第一个边沿下边沿采集,第二个边沿上边沿发出,有效电平低电平,01010101
模式四11,脉冲第二个边沿上边沿采集,第三个下降沿发出,有效电平低电平,01010101.
时钟极性CPOL=1,左图时钟相位CPHA=0,右图CPHA=1。

串口通信:

串口通信基础知识:

通讯协议主要是实现两个设备之间的数据交换功能,通讯协议分硬件层协议和软件层协议。硬件层协议目前比较多见的有RS-232、RS-485、SPI、IIC等;
串口通讯(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。

通讯数据格式: 起始位、7位数据位、奇偶校验位、停止位;
通讯方式: 单工、半双工(可改变方向的单工)、全双工;
在这里插入图片描述
波特率: 常用9600bps与115200bps;为什么波特率不可以随便指定?主要是因为:第一,通信双方必须事先设定相同的波特率这样才能成功通信,如果发送方和接收方按照不同的波特率通信则根本收不到,因此波特率最好是大家熟知的而不是随意指定的。第二,常用的波特率经过长久发展,就形成了共识,大家常用就是9600或者115200.

典型的串口通讯标准: RS232与RS485;

特点:异步、电平信号、串行;异步是因为串口通信的发送方和接收方之间是没有统一的时钟信号的;

详解485:
485通讯实际上把MCU发出来的TTL电平(0v逻辑0,+5v逻辑1)通过硬件层的一个转换器芯片进行转换,转换为A、B两线上的信号,再转换传入另一MCU,常见的转换芯片MAX485。
UART、RS232与RS485、I2C与SPI协议通信_第6张图片
Uart:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。

RS232与RS485:

接口的物理结构:RS232不使用对方的传送控制信号,只需“发送数据”、“接受数据”、“信号地”;RS485无具体的物理形状,根据工程实际情况采用接口。

接口的电气特性:232传输电平信号,接口的信号电平值较高(1为-3v—15v,0为3v—15v),易损坏接口电路的芯片,与TTL电平(0为<0.8v,1为>2v;一般0v为0,+5v为1)不兼容,抗干扰能力差;485传输差分信号,(逻辑1以两线间的电压差+2–+6v表示,0以-2—6表示),兼容TTL电平,电压差抗干扰能力强。

通讯距离:232最大传输距离15米,最高波特率19200bps, 485传输120米,10Mbps;
多点通讯:232接口在总线上只允许1个收发器,不支持多站收发;485总线允许连接128个收发器,便于建立设备网络。
通信线:232采用三芯双绞线、三芯屏蔽线,全双工;484采用两芯双绞线、两芯屏蔽线,半双工。
USB转TTL:
UART、RS232与RS485、I2C与SPI协议通信_第7张图片
USB转RS-232:
UART、RS232与RS485、I2C与SPI协议通信_第8张图片
DB9接口:
DB9接口是串口通信早期比较常用的一种规范化接口,DB9接口中有9根通信线,其中3根很重要,为GND、Tx、Rx,必不可少;剩余6根都是和流控有关的,现代我们使用串口都是用来做调试一般都禁用流控,所以这6根没用。

你可能感兴趣的:(学习记录)