新闻中心

EEPW首页>嵌入式系统>设计应用> UART、IrDA、SPI、I2C MSP430学习

UART、IrDA、SPI、I2C MSP430学习

作者: 时间:2016-11-25 来源:网络 收藏

SPI、IIC、UART区别 第一个区别当然是名字:

本文引用地址: //m.amcfsurvey.com/article/201611/321223.htm

SPI(Serial Peripheral Interface:串行外设接口);

I2C(INTER IC BUS)

UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)
第二,区别在电气信号线上:

SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这里的描述可能很不完备)
UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。


第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;


第四,看看牛人们的意见吧!

wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。


SPI通信

USCI简介:
新型的高性能双通信模块

异步通信模式:UART标准与多处理器协议;带自动波特率检测的UART(即LIN);IrDA(低红外,最大115kbit);
同步通信模式:SPI(主从模式,3或4线),I2C模式(主从模式)。


uart

TX中断:

UCA0TXIFG当TX buffer Ready时会被set. UCA0TXIE及GIE也被set时会进中断.UCA0TXIFG当TX Buffer被写入数据,或是Interrupt r equest被处理完时会自动清除.系统上电默认UCA0TXIFG为1,UCA0RXIFG为0;

MSP430SPI 或 UART 的速度
  在 SPI 主模式下,通信速率可以达到 4Mbps,而在 UART 模式下,速率也可达到 2Mbps。USART 可进行配置,以便同时支持同步 (SPI) 与异步 (UART) 操作,并且可从几个内部及外部时钟源(与 CPU 时钟无关)中进行选择。在 SPI 主模式下,USART 的运行速率可达到应用时钟的 1/2。例如,如果使用 8MHz 时钟,则 SPI 主模式的传输速率可达到 4Mbps。在 UART 模式下,实现可靠通信至少要求每位 3 或 4 个时钟。例如,8MHz 时钟除以 4 可以支持高达 2Mbps 的速率。MSP430xxxx 用户指南中提供了有关 USART 功能的完整说明。(对应于8M)


原文地址:http://hi.baidu.com/yangbme/blog/item/da54ca36149611320a55a99a.html

通信的 SPI 概念

2.1、SPI:高速同步串行口 Serial Peripheral interface

  SPI:高速同步串行口。是一种标准的四线同步双向串行总线。

  SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线。

4条线:事实上3根也可以(用于单向传输时,也就是半双工方式)

它们是SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选)。

  (1)MOSI– SPI 总线主机输出/ 从机输入(SPI Bus Master Output/Slave Input)

  (2)MISO– SPI 总线主机输入/ 从机输出(SPI Bus Master Input/Slave Output)

  (3)SCLK – 时钟信号,由主设备产生

  (4)CS – 从设备使能信号,由主设备控制(Chip select),有的IC此pin脚叫SS

  其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。

  接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCLK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。

  要注意的是,SCLK信号线只由主设备控制,从设备不能控制信号线。

同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCLK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCLK时钟线的控制可以完成对通讯的控制。

SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。

不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。

  在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。

2.7、SPI协议心得

  SPI接口时钟配置心得:

  在主设备这边配置SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的。因此在时钟极性的配置上一定要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。但要注意的是,由于主设备的SDO连接从设备的SDI,从设备的SDO连接主设备的SDI,从设备SDI接收的数据是主设备的SDO发送过来的,主设备SDI接收的数据是从设备SDO发送过来的,所以主设备这边SPI时钟极性的配置(即SDO的配置)跟从设备的SDI接收数据的极性是相反的,跟从设备SDO发送数据的极性是相同的。

http://baike.baidu.com/view/245026.htm

I2C总线特征

  1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;
  2、每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;
  3、它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;
  4、串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;
  5、连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。

I2C总线术语

  发送器:发送数据到总线的器件;
  接收器:从总线接收数据的器件;
  主机:初始化发送产生时钟信号和终止发送的器件;
  从机:被主机寻址的器件;
  多主机:同时有多于一个主机尝试控制总线但不破坏传输;
  仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏
  的过程;
  同步:两个或多个器件同步时钟信号的过程 。


关键词:UARTIrDASPII2CMSP43

评论


技术专区

关闭