问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

I2C总线有哪些优点46

发布网友 发布时间:2024-02-27 22:34

我来回答

3个回答

热心网友 时间:2024-03-21 07:52

这段时间学习了I2C总线(AT24C02)、SPI(HD7279)还有正在学习的SPI的时钟芯片DS130,感觉有几点认识:
1,SPI总线就是三根。
片选CS一根,这个由各自芯片决定,有高平或者低平的。这个其实是必须的,因为只有片选到了才能找到。和我用的总线74HC573(或者74LS373)锁存器一个道理。如果片选成功,就上第二根线SCL,这个上面就是时钟,这个时钟完全可以模拟,当然时钟上面是有时序的,用程序延时把时序调整好,模拟就没问题。最后就是I/O口,如果是三线的SPI,那么这根线就是数据双向传输的,如果是四根的SPI,这个我现在还没用过,就是一方入一方出,不过我觉得完全没必要,一根线数据来去就挺好。由于是一根或者两根线,那么数据就靠串行来去。
2,I2C总线就是两根。
就是一根SCL时钟,另一个根SDA传数据,就两根,没有了I2C的那个片选CS端。因此在这个上面传输数据,必须靠I2C这两根唯二的的线表示启动、传输和停止等。电平就只有高低了,那么还能利用什么呢,就是上升沿和下降沿,总之,在这么两个线上其实好好多组合。
第一类,电平组合类SCL和SDA的配合四种:高平+高平、高平+低平、低平+高平、低平+低平;
第二类,电平SCKL和边沿SDA组合类:高平+上升沿、高平+下降沿、地平+上升沿、低平+下降沿。可以看出就这么两根线上可以利用的东西也不少,用这些组合就可以表示起动、停止等等,甚至根本就用不了这么多。退一万步讲,即使全部都用了,还可以串行继续组合么,还可以先SDA再SCL么,总之两根线都能被挖掘这么深,我不得不佩服那些飞利浦工程师们的创造力。
从上面就明白了,如何表示所选择的芯片的启动,就靠这些组合。例如:SCL上高平上SDA上的上升沿或者下降沿,证明主机发送了芯片的启动要求。还有一个问题就是,如果I2C上挂了多个I2C器件,那么怎么知道启动那一个呢,因为它们又没有SPI的片选CS那个管脚,这个管脚可以通过类似三八译码器那样找到类型相同但是不同的芯片,I2C上又没有怎么办呢?I2C的器件上有几个管脚接地或者挂高(AT24C02就是,叫可编程管脚)就是地址,还有就是器件厂商也规定了I2C上发送的第一个字节就是芯片地址,前四个位0000~11111,这个最多可以表示16个不同类型的I2C器件(实际I2C器件根本没有这么多,而且0000和1111不能用,所以只剩下14个了。这个国际统一的规定,就是I2C的协议,《全国大学生电子设计竞赛——单片机应用技能》P171有说明,“I2C总线委员会”的规定)。
剩下的3个位就是器件的地址,这个地址和I2C上发的地址对上了,就找到了,剩下最后一位是读写。然后在I2C上的两根线上写数据,先写芯片地址,再写找到的芯片内部的地址,最后是读或者是写这个地址,而且每发送一个字节必须从机给个应答,也就是链接的I2C器件给主机(一般是单片机或者是I2C接口)发送回来一个应答,而且应答是必须是收一个字节接一个应答那么交替。因此从这点上看来,I2C协议实现起来其实挺复杂的,就为了少一根线,做了多种协议,还有就是程序比SPI变得复杂。更重要的一点是,I2C总线上所接的器件,一种I2C最多可以接8个(因为控制字前四位是种类,最后一位是读写,只有三位留给地址了),如果不同种类的I2C都算进去,总共I2C上接的器件就是14*8=112个,尽管已经很多了,但至少说明了I2C总线上能挂的器件是有限的。

3、但是和SPI比较一下就会发现,尽管I2C复杂一点,器件有限,但是优点还是非常多的,因为三线SPI总线上只有SCK和I/O才是真正的总线,可以公用,但是CS片选信号可是一对一的,如果SPI总线上接112个SPI器件,SCK和I/O总线可以共用,但是112的CS片选如何处理,难道用CPLD扩展逻辑门门么,显然是不现实的。而且各个器件的CS片选有的是高有的是低,也是个麻烦。这点看来,SPI编程比I2C尽管简单,但是硬件麻烦,I2C软件复杂,但是硬件会简单。总体来说还是I2C有更多好处,因为软件总比硬件问题好处理。

4、共同的问题,如果在一些简单的单片机例如AT89S51上模拟I2C或者SPI总线的时候,时序中高低电平长短和晶振有关,因此当换用不同的晶振或者单片机时候,要改变时序中控制高低电平的延时因子。

热心网友 时间:2024-03-21 07:45

热心网友 时间:2024-03-21 07:53

1. 硬件简单,资源消耗少。只有时钟和数据线。
2. 时钟同步和仲裁的实现原理也很简单,以开漏/集电极开路门以线路逻辑简单实现。
3. 协议设计精巧、易用、灵活。数据、地址、指令都可以传。
4. 使用广泛,现在几乎所有的IC厂商都在芯片上集成了I2C。
5. Philips 对I2C协议的IP已经过期,license上几乎不用考虑。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
氢离子和碳酸根 氢离子和碳酸氢根 哪个反应快为什么 乌金木有哪些家具 乌金木家具如何搭配 木饰面装修多少钱一平方 关于加速度知识点的三个疑问 ...章探究加速度与力质量的关系知识点|物理加速度的5个公式 这只黑猫属于什么品种 孟买猫的免疫力如何 点火开关上的1234分别于红黄蓝黑线谁对应 万和热水器拨码开关,1234是全开的吗 I2c总线一般拿来实现什么功能?47 I2C总线的最大长度是多少19 手机黑屏怎么录制视频? 你听过中国的歌吗?英文是什么? QQ音乐怎么调歌词进度? i2c总线的 应答 和非应答 具体详细的解说,32 宇泰珠宝怎么样 宇泰珠宝黄金可靠吗 杭州经典菜有哪些 当代大学生廉洁修身的社会价值 香檀种子丸出自哪里 济南轨道交通集团有限公司怎么样 一年内怎么改第二次 济南轨道交通集团属于国企吗 如果兔子拼命奔跑 乌龟如何持续前行 英语怎么说 如果兔子拼命奔跑 乌龟该怎么办 145鄂破配多大电机 智能手表如何安装软件? 数学读书卡内容怎么写 ...a[10]={1,2,3,4,5,6,7,8,9,10}则对数组正确引用的是? 修改一次,一年之内可以改第二次吗? 怎么在一年内修改两次 一年改2次的办法 怎样养殖刺嫩芽养殖刺嫩芽的方法 鱿鱼的肉质有什么特点? STM32的I2C在读时要发送两次起始信号吗,可是手册上说只...8 韭菜的热量高吗韭菜的热量是多少 韭菜的热量 韭菜的功效介绍 ...修身、齐家、治国、平天下」的精神实质和现实意义是什么? 一年内怎么修改第二次 双方法院签字算已离婚吗 离婚协议书写好之后双方签字算离婚吗 i2c总线起止信号1 STM32的I2C在读时要发送两次起始信号吗,可是手册上说只...9 I2C总线的起始信号里为什么SDA拉高后都要有个延时?5 一年内强制改二次方法 I2C总线的起始信号里为什么SDA拉高后都要有个延时?2 一年内可以修改几次? 一年内第二次强制修改 含有少使用塑料袋,循环使用课本,少乘坐电梯,节约用水 用电;多植树;出 ...