打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
硬件II2C和软件I2C有什么区别呢?
问:硬件II2C和软件I2C有什么区别呢,他们可以相互代替么,用哪个好点呢
 
答:硬件II2C比你IO模拟的要快很多,占用的时间也少
 
答:有硬件II2C的话,还是考虑硬件的。没有的话,用IO模拟也可以。
 
答:I2C的话,个人感觉要看芯片了,有的芯片的I2C有BUG,比如STM32,这个就有缺陷
 
答:I2C硬件也没多大意思,速度本来就不高,挂多个从机的时候采用硬件了
 
答:硬件I2C只要把数据送到指定的寄存器就可以了,不用自己写时序什么的。
 
答:软件I2C就是用两根GPIO来做I2C,通过自己写程序,拉出I2C的时序。这样就可以把GPIO做I2C使用了。主要的难点是写程序!
 
答:早期的PIC单片机,没有I2C的硬件模块支持,要完成I2C的通信,必须通过两根普通I/O线,完全用软件来模拟。既然是软件模拟,自然是可以模拟成主机运行,也可以模拟成从机。由于大量外围I2C器件都是制造成从机的,所以,软件模拟主机的情况居多。

  

现今的PIC新型单片机,从物理硬件、中断、串行数据字节等,都有专门的I2C模块。这些模块如果是工作在从机状态下,就叫做从模式,工作在主机状态下,就是主模式。在一个I2C总线上,遵守一主多从的规定。

 
答:IIC本来是一个硬件模块之间的通信协议,一般芯片都有专门的电路逻辑块来处理协议,并通过两根线路(时钟SCk、数据SDA)来跟其余同样有IIC模块的器件通信。
 
由于其通信速率(400K)和通信方式(串行)跟其他串并口通信方式不同,所以一般都用于主机跟从机传递控制参数、参考数据、或者少量的其他数据。
 
IIC协议主要在乎的时序的准确性,所以在没有专门的IIC模块的单片机中,你也可以用两个IO口来模拟输出IIC协议的波形,这个波形不管是IIC硬件模块生成的,还是软件模拟出来的,只要符合IIC协议标准的时序和电平,都是一样的,接受端也不会挑剔。就像你要喝水,主要是喝 H2O,它究竟是从山涧里面流出来的泉水,还是工厂里面处理的蒸馏水,你可能并不在意,只要符合饮用标准就行。
 
还有一些系统中,CPU原有的IIC总线可能用于控制几个比较重要的几个芯片,为了避免争用、或者为了硬件上相互影响,对于不太重要的芯片,有时候会再用几个GPIO脚来做模拟IIC跟它通信。软件实现非常简单,就是根据IIC协议,先拉高SCK、SDA线,然后延时Nms后,将SDA拉低,然后再延时Nms,一个IIC Start工作就完成了。传输数据过程也差不多,但是根据不同的芯片,可能时序定义会有差异,所以要常常调整IIC时钟速率,调整各个延时时长,提高驱动电流等



特别推荐




全面解析开关电源 你想知道的都在这里


看过这100个知识点,模电其实也不难


手环和微信上的计步原来是这么玩起来的...



中国电子网
微信号:weixin21ic


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
GP2Y0E02B测距模块89c52单片机串口程序
基于I2C协议的EEPROM驱动控制(笔记整理)
IIC简单实现!
INA3221的使用教程(IIC)
IIC时序详解
STM32|基于 SPI 单向发送的 12864 驱动程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服