硬件工程师STM32系列MCU学习基础笔记之通讯协议口
SPI(Serial Perripheral Interface)是一种高速的,全双工,同步串行通信总线,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,并且在芯片的管脚上只占用四根线(MISO,MOSI,NSS,SCK)。
在STM32系列芯片中,都会有一系列的通讯协议口。
如STM32F103C8T6中,共有2个SPI、2个I2C、3个U(S)ART、1个CAN通讯协议IO口。
那么这么多通讯协议都有什么区别呢?
先说一下SPI通讯协议!
SPI(Serial Perripheral Interface)是一种高速的,全双工,同步串行通信总线,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,并且在芯片的管脚上只占用四根线(MISO,MOSI,NSS,SCK)。
(1)MISO – 从设备输出主设备输入数据
(2)MOSII – 主设备输出从设备输入数据
(3)SCK – 串行时钟信号,由主设备产生,用来控制数据交换的时机和速率;
(4)NSS – 低有效,从设备使能信号,由主设备控制。
主从设备之间进行串行数据传输且通信总是由主设备发起,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
再说一下I2C通讯协议
I2C(Inter-Integrated Circuit)即内部整合电路,是一种串行通讯总线,支持多机通讯,每个电路和模块都有唯一的地址,但同一时刻只允许有一个主控,由数据线SDA和时钟SCL构成的串行总线。
支持三种速率:标准模式100Kbps, 快速模式400Kbps,高速模式3.4Mbps
在硬件互连时,都必须加上拉电阻。
再说一下U(S)ART通讯协议
UART(Universal Asynchronous Receiver/Transmitter)即通用异步收发、双向通信可以实现全双工传输和接收的传输器。是一种异步(以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的),串行通信(利用一条传输线将资料一位位地顺序传送)。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。
UART一般比较复杂,一般有波特率产生器、UART接收器、UART发送器构成。
在硬件上,主设备TX接从设备RX,主设备RX结从设备TX。
最后说一下CAN协议
CAN(Controller Area Network)控制器局域网总线,是一种使用差分信号线来传输信号,采用线性总线结构的具有全局广播接收传送数据的功能、速率高(位速率可达1Mbps(40m))、高保密性,有效的支持分布式控制或实时控制的用于实时应用的包括完整性的串行数据通讯、提供实时支持的串行通讯协议总线。