所在位置:首页 > News  > Industry news

金誉半导体笔记:什么是MCU单片机的SPI、UART、I2C通讯接口

发表时间:2022-10-11
来源:网络整理
浏览量: 927

正如我们之前所了解的 ,MCU单片机是一个集成芯片 ,但这个集成芯片有一些特殊的功能 ,可以控制外部设备 ,处理外部设备收到的数据,就像人脑一样 ,可以控制手脚的运动 ,可以处理感官收到的信息,这就是独特的 MCU单片机 。

单片机的常用功能包括:定时器(TImer)、I/O口、外部中断、通讯接口、A/D转换、PWM等。之前金誉半导体已经带大家重点了解过定时器(TImer)I/O口这两个功能,那接下来我们了解一下通讯接口的功能是怎样的。

ING_19061_183972.png

MCU单片机所提供的通讯接口一般包括SPI接口,UART,I2C接口等,它们的功能如下:
SPI接口:此类接口是绝大多数MCU都提供的一种最基本通讯方式,其数据传输采用同步时钟来控制,信号包括:SDI(串行数据输入)、SDO(串行数据输出)、SCLK(串行时钟)及Ready信号;有些情况下则可能没有Ready信号;此类接口可以工作在Master方式或Slave方式下,通俗说法就是看谁提供时钟信号,提供时钟的一方为Master,相反的一方则为Slaver。
UART(Universal Asynchronous Receive Transmit):属于最基本的一种异步传输接口,工作原理是将传输数据的每个字符一位接一位地传输,这个特点使得UART只要2 根传输线就可以实现双向通信,一根线发送数据的同时用另一根线接收数据。那就是Rx和Tx两条,一根线发送数据的同时用另一根线接收数据。基本的数据格式为:Start Bit + Data Bit(7-bits/8-bits) + Parity Bit(Even,Odd or None) + Stop Bit(1~2Bit)。一位数据所占的时间称为Baud Rate(波特率)。
对于大多数的MCU来讲,数据位的长度、数据校验方式(奇校验、偶校验或无校验)、停止位(Stop Bit)的长度及Baud Rate是可以通过程序编程进行灵活设定。此类接口最常用的方式就是与PC机的串口进行数据通讯。
I2C接口:I2C是由Philips开发的一种数据传输协议,同样采用2根信号来实现:SDAT(串行数据输入输出)和SCLK(串行时钟),SCL线——负责产生同步时钟脉冲。SDA线——负责在设备间传输串行数据。其优势是可以在此总线上挂接多个设备,连接到I2C总线上的设备既可以用作主设备,也可以用作从设备,支持多个主设备的同时存在。I2C总线的一个最大的好处就是非常方便用软件通过IO口来实现,其传输的数据速率完全由SCLK来控制,可快可慢,不像UART接口,有严格的速率要求。

任何一款 MCU,其基本原理和功能都是大同小异,不同的只是其外围功能模块的配置及数量、指令系统等。对于指令系统,虽然形式上看似千差万别,但实际上只是符号的不同,其所代表的含义、所要完成的功能和寻址方式基本上是类似的,所以在编程时只要根据自己的逻辑和程序的逻辑要求来编写相关的指令即可。