MCU的外设包括功能外设和通信外设。
功能外设包括:TIMER, 看门狗,中断控制器等。
通信外设包括:UART,SPI,I2C,USB,SDIO等。
MCU内部一般采用AMBA总线,包括AHB,APB,AXI总线。
AHB总线属于高速总线,用于连接MCU内部的高速模块,如内部存储器,DMA控制器等,还连接高速总线外设,如USB总线。
APB总线属于低速总线,用于连接MCU内部的低速模块,如UART, SPI总线等。
全双工:可以同时双向通讯,如SPI,UART。
半双工:任何时刻都只能单向通讯,如I2C。
并行通讯:有多根数据线,一个时钟可以传输多个bit,如PCI总线,SDIO总线。
串行通讯:只有一根数据线(或者说一对差分信号线),如I2C,SPI,USB等。
同步通讯:包含时钟,如I2C总线,SPI总线等。
异步通讯:不包含时钟,如UART总线,USB总线。
一、 UART总线
UART属于全双工,低速,异步总线,常用波特率为115200,没有Master和Slave之分。
接口:
TXD:发送引脚
RXD:接收引脚
连接时,需将A设备的TXD连接至B设备的RXD,反之亦然。
一、UART总线
UART属于全双工,低速,异步总线,常用波特率为115200,没有Master和Slave之分。
接口:
TXD:发送引脚
RXD:接收引脚
连接时,需将A设备的TXD连接至B设备的RXD,反之亦然。
UART时序:
起始位(START): 开始进行数据传输之前发送方需要先发出一个低电平‘0’来表传输字符的开始。
数据位:起始位之后,数据可以是5,6,7,8,9位,构成一个字符,一般是8位。
奇偶校验位:验证数据传输的正确性,可以省略掉该位。
停止位:数据结束标志,可以是1位,1.5位,2位的高电平。
RS232,RS422,RS485的区别:
RS232标准采用负逻辑电平,单端传输方式。通过一根信号线发送,一根信号线接收,一根地线,可实现全双工通讯。RS232只支持一对一通讯。距离小于15米。
RS422由RS232发展而来,但采用差分信号,需要4根线实现全双工通讯,两根TX,两根RX。速率最大可达10M,当速率100kbps时,传输距离可达1200米。RS422允许在一条总线上连接多达10个接收器,从而实现单个设备发送,多个设备接收的功能。
RS485总线同样采用差分信号,但是只有2根信号,由TX/RX共有,所以只能实现半双工。RS485增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,各设备通过使能信号控制发送和接收过程。
二 、I2C总线
I2C属于半双工,低速,同步总线,常用速率有100K,400K,1M等,有Master和Slave之分。
接口:
SCL :时钟引脚,Master负责发送时钟信号。
SDA:数据引脚,Master和Slave都可以发送数据信号。
Master写操作:Master发送对应的Slave设备地址和数据信息。
Master读操作:Master发送对应的Slave设备地址,对应的Slave发送数据信息。
I2C总线的Slave设备都需要配置地址,一般是通过引脚配置。
SCL处于高电平,SDA由高变低为START信号;
SCL处于高电平,SDA由低变高为STOP信号。
三、SPI总线
SPI总线是全双工,同步总线,有Master和Slave之分,速率可达几十M。
接口:
SSN:片选引脚,Master负责发送片选信号。
SCK:时钟引脚,Master负责发送时钟信号。
MOSI:Master Out Slave In数据线,Master发送信号引脚。
MISO:Master In Slave Out数据线,Master读数据引脚。
Master读写操作同步进行,Master发送片选信号和时钟信号,每个时钟周期MOSI和MISO同步传输数据。