• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

IIC总线的驱动算法

wanyanfei1984 2018-07-24 浏览量:949

关于IIC总线的算法:

有的单片机中有专用的IIC接口,有的没有专用接口我们一般使用模拟IIC来实现;


想请教:专用接口和模拟接口控制的IIC有啥优缺点?

是不是专用接口就好与模拟接口?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 1.如果单片机内部集成IIC硬件模块的,只要不存在太大的Bug,建议选择使用硬件IIC,也就是你说的专用的IIC接口。硬件IIC大大解放了CPU的工作压力。而软件IIC则是一直占有CPU资源的。

    2.当然如果单片机内部不集成硬件IIC接口的,只能选择软件IIC来模拟驱动了。

    • 发布于 2018-07-24
    • 举报
    • 评论 0
    • 2
    • 0

其他答案 数量:17
  • 这种东西没有谁比谁好这种说法,只是各自的应用场合不同罢了,各有各的优点和缺点。

    比如51单片机没有硬件IIC接口只能用模拟IIC,像stm32f1的硬件IIC听说有BUG,但是我们自己品尝做一些小玩意是没什么问题的,硬件IIC的通信速率是高于模拟IIC(通过延时来确保时序正确)的,具体IIC是用模拟的还是硬件的还需要视具体情况而定

    • 发布于2018-07-24
    • 举报
    • 评论 0
    • 3
    • 0

  • 模拟的适用更广,随便找两个 GPIO 就可以当作 IIC 总线。但是需要 cpu 产生延时,精准的控制时许,这个时候 cpu 就不能干其他的了。

    专有接口是硬件IIC控制器,只有集成了 IIC 控制器的 单片机才可以,使用前配置好它自己产生时许不要cpu国多参与。可以看作是和 cpu 并行的。

    • 发布于2018-07-24
    • 举报
    • 评论 0
    • 2
    • 0

  • 专用接口肯定比模拟的好,专用的iic不需要占用cpu的执行时间,会使cpu将更多的时间用在合理的地方,iic速度很慢,用cpu持续等待会降低性能
    • 发布于2018-07-24
    • 举报
    • 评论 0
    • 1
    • 0

  • 专用接口相对好一点,因为可以节省CPU的资源;而且对于延时你不用考虑。

    模拟I2C的好处是对于I2C硬件接口不用了解,只要按照时序来就行。

    • 发布于2018-07-24
    • 举报
    • 评论 0
    • 1
    • 0

  • 专用接口就是硬件I2C吧,这个挺好用的,就是用不来的人觉得有BUG,

    软件I2C基本没啥问题,因为软件I2C移植性比较强不容易出错

    • 发布于2018-07-24
    • 举报
    • 评论 0
    • 1
    • 0

  • 专用接口配置与控制比较方便,灵活,不容易出错,如果关联上DMA,速度也是很快的
    • 发布于2018-07-24
    • 举报
    • 评论 0
    • 1
    • 0

  • I2C专用硬件接口比较好,好控制,配置好后,数据收发比较简单;

    软件模拟的,移植性好。

    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 1
    • 0

  • 一般硬件接口不占用cpu资源 软件IIC需要用一定的cpu时间来处理通讯 所以一般硬件IIC是优于软件IIC的
    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 1
    • 0

  • 专用的硬件I2C不占用过多的控制器资源,像软件模拟,你得算好延时,这个麻烦而且占资源。

    软件I2C是因为之前没有硬件I2C才想出的办法,当然,软件I2C移植性好,稍微改改延时,在其他芯片上就基本能用。

    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 1
    • 0

  • 专用接口即单片机的硬件I2C接口,目前STM32系列更多是用GPIO模拟I2C时序的方式进行通信,因为STM32F103系列的硬件I2C有通信时序上的BUG,模拟I2C更灵活好用。但是对于NXP的单片机来说,由于NXP有I2C的专利,因此他们用硬件I2C接口更好,还可以配套DMA通道使用。

    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 1
    • 0

  • 专用的硬件IIC直接使用硬件去处理通信的数据,不需要软件去模拟,占用资源比较少,而且出错的情况非常少,比较稳定
    • 发布于2018-07-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 硬件I2C上面可以不占用CPU资源去处理通信,但是模拟I2C要占用CPU去控制IO的高低电平变化
    • 发布于2018-07-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 专用接口不占cpu内存,模拟i2c需要用到cpu资源

    • 发布于2018-08-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 专用接口不占cpu内存,模拟i2c需要用到cpu资源

    • 发布于2018-08-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 最好是使用硬件IIC,使用起来不需要占用CPU的资源
    • 发布于2018-08-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接用内部的IIC就可以,只要往这个硬件寄存器扔数据就可以自动通信
    • 发布于2018-08-18
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

IIC总线的驱动算法