搜索
bottom↓
回复: 13

I2C和SPI是两种不同的通信协议

[复制链接]

出0入0汤圆

发表于 2019-6-27 09:27:34 | 显示全部楼层 |阅读模式
I2C和SPI是两种不同的通信协议。
一。 IIC  简介
它是由数据线 SDA 和时钟 SCL 构成的串行总线, 可发送和接收数据。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。用I2C通信的芯片最常用的就是EEPROM芯片,如Atmel的AT24CXX系列,此外,还有一些其它功能的芯片。

(图1是EEPROM芯片的接法)

(图2~3是对应的单片机引脚)

I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。
结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。
应答信号: 接收数据的 IC 在接收到 8bit 数据后, 向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
   
二.SPI
IF, 宋体">SPI通常有SCK时钟,STB片选,DATA数据信号三个信号。SPI总线真正实现了全双工数据传输,SPI 有3线跟4线两种,4线的话,就是多了一条叫SDC的线,用来告知从设备现在传输的是数据还是指令。这个接口较快,可以传输较连续的数据。SPI要想连接多个从设备,就需要给每个从设备配备一根片选信号。如果要可以实现全双工,也是需要多加一根数据线(MOSI MISO)。SPI通信芯片的引脚名称不一定都是这几个名称,可能还有会别的名称,但是意思是一样的,例如MOSI引脚的意思是“主机输出从机输入”,某个SPI接口的芯片就有可能会写成SDI,因为这个SPI器件是作为从机的,所以它的SDI的意思就是“从机数据输入引脚”。
SPI通信过程为:把CS引脚拉低,然后SCK输出时钟,然后就可以在MOSI引脚上输出数据,同时可以在MISO上获得数据了。

(图4是一个SPI FLASH芯片,DO是MISO,DI是MOSI,CLK是SCK,功能一样,叫法不一样而已)

(图5单片机接法)


下面主要总结一下2种总线的异同点:
1 iic总线不是全双工,2根线SCL SDA。spi总线实现全双工,4根线SCK CS MOSI MISO
2 iic总线是多主机总线,通过SDA上的地址信息来锁定从设备。spi总线只有一个主设备,主设备通过CS片选来确定从设备
3 iic总线传输速度在100kbps-4Mbps。spi总线传输速度更快,可以达到30MHZ以上。
4 iic总线空闲状态下SDA SCL都是高电平。spi总线空闲状态MOSI MISO也都是 SCK是有CPOL决定的
5 iic总线scl高电平时sda下降沿标志传输开始,上升沿标志传输结束。spi总线cs拉低标志传输开始,cs拉高标志传输结束
6 iic总线是SCL高电平采样。spi总线因为是全双工,因此是沿采样,具体要根据CPHA决定。一般情况下master device是SCK的上升沿发送,下降沿采集
7 iic总线和spi总线数据传输都是MSB在前,LSB在后(串口是LSB在前)
8 iic总线和spi总线时钟都是由主设备产生,并且只在数据传输时发出时钟
9 iic总线读写时序比较固定统一,设备驱动编写方便。spi总线不同从设备读写时序差别比较大,因此必须根据具体的设备datasheet来实现读写,相对复杂一些。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-6-27 09:42:06 | 显示全部楼层
一头雾水,不知楼主要表达什么!

出0入362汤圆

发表于 2019-6-27 09:43:44 | 显示全部楼层
xiaomu 发表于 2019-6-27 09:42
一头雾水,不知楼主要表达什么!

发小广告的吧,先刷刷经验

出0入0汤圆

发表于 2019-6-27 09:59:29 | 显示全部楼层
刷贴达人。楼主你别回复我,谢谢

出5入4汤圆

发表于 2019-6-27 10:02:16 | 显示全部楼层
引起不适,建议永封

出0入34汤圆

发表于 2019-6-27 10:10:05 | 显示全部楼层
一头雾水,标题废话,建议永封

出10入120汤圆

发表于 2019-6-27 10:39:10 来自手机 | 显示全部楼层
挺好,给初学者普及知识,大家宽容些。

出0入0汤圆

 楼主| 发表于 2019-6-27 10:59:59 | 显示全部楼层
感谢大家批评和指正!我会遵守论坛规则。我也是刚学到IIC总线,我也是个新手,很多东西也不懂。分享一下初学者可以看一下,我学的深了,发的东西就会更有质量一点。。打扰了大家,对不起

出40入42汤圆

发表于 2019-6-27 11:23:47 | 显示全部楼层
建议自己搞个博客刷学习过程吧,这种帖子在坛里的大佬们看来是扎眼的

要么问问题,要么搞点新的知识分享

出0入0汤圆

发表于 2019-6-28 01:35:18 | 显示全部楼层
大佬也是从初学者来的撒,宽容点~
乐于分享是好事啊,LZ也不用对不起,多学习多分享~
注意下标题倒是应该

出0入0汤圆

 楼主| 发表于 2019-6-28 08:28:28 | 显示全部楼层
lantian0099 发表于 2019-6-28 01:35
大佬也是从初学者来的撒,宽容点~
乐于分享是好事啊,LZ也不用对不起,多学习多分享~
注意下标题倒是应该{: ...

谢谢啦

出0入0汤圆

发表于 2019-6-28 08:33:27 来自手机 | 显示全部楼层
转载的东西还是注意下排版,另外这些东西还是放自己博客吧

出0入8汤圆

发表于 2019-6-28 08:41:15 | 显示全部楼层
我是不是可以发帖, S和B是两个不同的字母?

出0入0汤圆

 楼主| 发表于 2019-6-28 09:08:54 | 显示全部楼层
icoyool 发表于 2019-6-28 08:41
我是不是可以发帖, S和B是两个不同的字母?

不好意思,我现在只学到IIC,SPI还没学到,只是找资料的时候看到了,发的东西不能入你的眼睛。抱歉。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 15:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表