历史上的今天

今天是:2024年09月03日(星期二)

正在发生

2019年09月03日 | I2C SPI UART串行接口对比分析

发布者:平和思绪 来源: eefocus关键字:I2C  SPI  UART  串行接口 手机看文章 扫描二维码
随时随地手机看文章

0 SPI

SPI:串行外转接口,允许以全双工方式实现数据与各种外围设备高速数据传输。由3根线组成,(串行时钟)SCLK、(串行数据输出)SDO和(串行数据输入)SDI组成,当然对于多个从设备而言,会添加一根SS片选信号。SDO和SDI都是基于时钟脉冲SCLK完成数据,且是一比特比特传输。而且SCLK只能由主设备控制。

       特点包括如下几点


  • l  采用主从方式,且由主设备控制SCLK。

  • l  全双工的同步方式传输数据,全双工就是指主设备发送数据时也会接收到从设备的数据。而之所以称为同步是因为传输数据必须严格根据时钟,以及时钟极性和时钟相位(CPHA)控制两个SPI设备间何时交换数据。

  • l  数据交换方式,之所以称为数据交换是因为在发送完一比特数据后也会接收到一比特数据。所以SPI没有读写区分,因为发送完一比特就会接收到一比特。

  • l  接收方式:只要发生了数据传输完成事件,都要去SPI设备相应的寄存器中读取数据,即使数据没有意义。


重点介绍下SPI的工作模式。虽然是依靠SCLK完成传输,但是由于时钟极性和时钟相位的不同衍生出了四种工作模式,传输时序。

CPOL: 时钟极性, 表示 SPI 在空闲时, 时钟信号是高电平还是低电平. 若 CPOL 被设为 1, 那么该设备在空闲时 SCK 管脚下的时钟信号为高电平。当 CPOL 被设为 0 时则正好相反。

CPHA: 时钟相位, 表示 SPI 设备是在 SCK 管脚上的时钟信号变为上升沿时触发数据采样, 还是在时钟信号变为下降沿时触发数据采样。若 CPHA 被设置为 1, 则 SPI 设备在时钟信号变为下降沿时触发数据采样, 在上升沿时发送数据。当 CPHA 被设为 0 时也正好相反。



写多个寄存器




读多个寄存器

       具体以AT24C02为例,讲解其传输逻辑,如下图所示。


 

2 UART

       通用异步传输协议,收发器。较为简单,由两线组成,TxD和RxD,设备交叉连接。由起始们、奇偶校验位、数据位、停止位组成。同时如果使用了RTS、CTS等流控信号线则更为复杂,有待补充。

       它使用的电平标准是TTL/CMOS逻辑电平标准,(0~5v、0~3.3v、0~2.5v或0~1.8v)来表示数据,高电平表示1,低电平表示0。为了增强数据的抗干扰能力、提高传输长度,通常将TTL/CMOD逻辑电平转换为RS-232逻辑电平,3~12v表示0,-3~-12v表示1。这也就是UART和RS232的区别和联系。数据传输流程如下:

(1)平时数据线处于空闲状态(1状态)

(2)当要发送数据时,UART改变TxD数据线的状态(变为0状态)并维持1位的时间,这样接收方检测到开始位后,在等待1.5位的时间就开始一位一位地检测数据线的状态得到所传输的数据。

(3)UART一帧中可以有5、6、7或8位的数据,发送方一位一位地改变数据线的状态将他们发送出去,首先发送最低位。

(4)如果使用校验功能,UART在发送完数据后,还要发送1位校验位。有两种校验方法:奇校验、偶校验——数据位连同校验位中,1的数据等于奇数或偶数。

(5)最后,发送停止位,数据线恢复到空闲状态(1状态)。停止位的长度有3种:1位、1.5位、2位。

3 对比

       如下表所示。


SPI

I2C

UART

电气信号线

4线:SS、SCLK、SDO和SDI

2线:SCL、SDA

2线:TXD、RXD

工作模式

全双工

半双工

全双工

组网

规模有限

支持128个设备组成的网络(地址是7位)


寻址模式

通过片选信号

发送具体地址


传输速率2

几Mbps但是比I2C快

标准速度:100kbps

快速模式:400kbps

高速模式:3.4Mbps

RS232:<20kbps

RS422:最高10Mbps

RS485:最高10Mbps

注:关于传输速率,其实SPI应该根据Master芯片能发起的频率以及Slave能接受的频率,但是肯定的是它一般大于I2C传输频率。对于其它总线传输频率,如下。

l  USB总线

   USB1.1:

-------低速模式(low speed):1.5Mbps

-------全速模式(full speed): 12Mbps

USB2.0:向下兼容。增加了高速模式,最大速率480Mbps。

-------高速模式(high speed): 25~480Mbps 

USB3.0:向下兼容。

-------super speed :理论上最高达4.8Gbps,实际中,也就是highspeed 的10倍左右。

l Ethernet,也就是通常的网速。

--------早期的以太网传输速率只有10Mbps。

--------百兆网:理论上最大100Mbps。

--------千兆网:理论上最大1Gbps。

l  SD总线:最高能达10Mbps。

SATA接口

--------SATA1.0:理论传输速度是150MB/s(或者1.5Gb/s),实际也就30MBps。

--------SATA2.0: 300MBps,即3Gbps。实际也就80MBps。

--------SATA3.0: 600MBps,即6Gbps。

--------eSATA:理论传输速度可达到1.5Gbps或3Gbps。

PCI总线

--------PCI:32位,33MHz时钟频率,速率是33*4 = 133MBps,即1Gbps。

-------- PCI 2.1:64位,66MHz时钟频率来说:速率是66*8 = 528MBps,即4Gbps。


关键字:I2C  SPI  UART  串行接口 引用地址:I2C SPI UART串行接口对比分析

上一篇:计算机与MCU通信及MAX232、CH340T与PL2303的区别
下一篇:串口通信校验方式(even,odd,space,mark)

推荐阅读

AI翻译是否精准一直是人们重点关心的问题。尽管Google翻译、科大讯飞翻译机2.0、腾讯“翻译君”等由行业巨头推出的产品纷纷亮相,海量翻译数据正在积累,算法和神经网络正在优化,但类似AI同传在博鳌亚洲论坛的失误,仍让人为AI翻译捏一把汗。8月28日,记者在成都高新区了解到,“阅读级”AI翻译产品“云译通”已在今年上线,通过打造4000亿字的自由双语平...
①串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();③GPIO端口模式设置:GPIO_Init();④串口参数初始化:USART_Init();⑤开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤) NVIC_Init(); USART_ITConfig();⑥使能串口:USART_Cmd();⑦编写中断处理函数:USARTx_IRQHandler();⑧串口数据收发:void USART_SendData();//发送...
参考设计一直被视为最棒的老师,您可以从中更快地开发您的设计,并且广受好评。对于我们这些白发苍苍的人来说,我们会抱怨如今的工程师变得懒惰了,或者并没有真正锻炼自己成为开发工程师,但事实是,随着竞争的加剧和设计周期的压缩,工程师们更忙了。任何加快设计速度的东西都是受欢迎的,参考设计完全符合他们的要求。如今的工程师比几十年前开始工作的...
意法半导体的STEVAL-NRG011TV评估板可帮助设计人员为LED 和 OLED 电视快速开发200W 数字电源和适配器,能效和待机能耗满足严格的法规要求。 STEVAL-NRG011TV基于意法半导体的STNRG011数字PFC(功率因数校正器)和谐振 LLC 功率变换器,采用经过验证的且可靠的拓扑结构,能够配置和优调运行参数,获得优秀的电源性能。数字控制算法永久固化在电源控制...

史海拾趣

问答坊 | AI 解惑

请大侠不吝赐教

小弟在做一个有关于CCD的东西,本来是跟一个师兄一块的,我有不会的问题都会问他,但是近来他去日本留学了,我让一个你们认为认为很弱智的问题难住了,就是我的ccd信号,它是一个类似于正弦波的信号,我要用AD来采样它的数据部,而我所选的这个AD的 ...…

查看全部问答∨

ARM经典300问.pdf

学ARM的一定要看看,很有用的 。…

查看全部问答∨

这个滤波器的截止频率应该怎么算?

有人说这种滤波器的频率要根据应用用途来算,但现在还是不明白该怎么算,下面是图,看看大家在用的时候都怎么算的。 …

查看全部问答∨

关于新建工程的编译错误,请高手看看

VS2005里基于CHSEmu模拟器建立了一个MFC工程,结果编译出现fatal error C1083: Cannot open include file: \'aygshell.h\': No such file or directory的错误,之前基于另外的SDK新建的MFC工程是没有问题的。请问是什么原因?如何解决?…

查看全部问答∨

WINCE部署出现的问题

部署一个工程时:出现如下错误提示 “错误        1        部署和/或注册失败,错误为: 0x8973190e。 写入文件“%csidl_program_files%\\cdeeper\\system.web.dll”时出错。错误 0x80070070: 磁盘空间不 ...…

查看全部问答∨

Windows Mobile FOR Pocket PC上能运行EVC3.0写的程序吗?

我以前运行在HP Pocket pc2002,wince3.0上的程序, 现在想换个HP iPAQ hx2490的机子,商家告诉我操作系统是Windows Mobile5.0的, 请问我原来的程序能运行在新机子上吗?…

查看全部问答∨

我的单片机控制双向可控硅不能正常导通请大家看下~

//程序功能1602液晶第一行显示\"0123456789ABCDEF\";第二行显示\"!@#$%^&*(){}?+\"; #include \"reg52.h\" #define uchar unsigned char #define uint unsigned int sbit rs=P1^0;//H数据,L命令 sbit lcden=P1^1;//高脉冲使能,使能脉宽最小150n ...…

查看全部问答∨

提问+怎么制作磁性强的电磁铁?

最近想做一个电磁铁,在铁棒上缠了近两米的漆包线,用杜邦线直接接了8v的电。但是杜邦线每一次都会发烫,甚至裂开,这是正常的现象吗?应该换别的线吗?还有就是磁性并不强,只能吸几个电阻,怎样才能制作一个磁性强的的电磁铁吗?在电路中需要加滑 ...…

查看全部问答∨

SensorTag延期到2014年4月30号的正式通知!

私下跟参赛的大多数人沟通过,大家普遍反映时间紧、任务重,所以我们现在正式通知SensorTag大赛延期至4月30号,请大家抓紧时间设计,在4月30号前提交设计和视频,大赛有一定难度,但坚持下来的都是好样的,加油哦 …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved