• 已解决 40886 个问题
  • 已帮助 5879 位优秀工程师

硬件与软件

55da1e2a4ec46a28 2019-01-07 浏览量:1000
请问大家,如何直观地区分 硬件spi与软件spi; 硬件IIC和软件IIC。
单片机 AVR单片机
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以直接搜索该MCU的引脚定义图,如果SPI、IIC连接到相应的SPI、IIC接口上,那99%使用的是硬件的SPI、IIC方式,如果连接的引脚不是SPI、IIC接口,则100%使用软件模拟。

    如果MCU硬件上集成了SPI、IIC外设,利用起来,效率上提高很大,但可能存在像STM32这样的,有IIC但还是很多人宁可模拟的情况。如果MCU上没有SPI、IIC外设,那只能够模拟了。

    • 发布于 2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:24
  • 硬件IIC/SPI ,使用的时候,只需初始化,配置好时钟,把需要发送的数据写入寄存器,收发都有中断。

    这样能减少对CPU的占用。


    软件IIC/SPI   则需要自己控制时序。


    虽然硬件使用效率很高,但是移植的通用性不强,相反,软件的IIC/SPI移植起来就很方便。

    • 发布于2019-01-07
    • 举报
    • 评论 1
    • 11
    • 0
2016大圣 回复了 川楠 :点赞 回复

  • 软件就是控制IO口输出电平去模拟IIC或者SPI的时序,而硬件就是写寄存器,不需要自己去模拟时序
    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 3
    • 0

  • 如果mcu接口不是spi接口但是和spi设备通讯,那就是软spi

    如果mcu接口是spi接口和设备连接,大部分情况应该是硬spi,少数情况可能是软spi

    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 硬件SPI和IIC首先就需要MCU本身支持或者外置电路了吧  而软件就是代码里面的设置了吧   我只这样理解的
    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 我理解是看时序,如果需要自己写时序的就是软,反之就是硬
    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 硬件是MCU内部有这个模块    软件是用IO模拟时序
    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 简单讲,硬件SPI或IIC是靠寄存器来完成通讯

    软件的必须自己写读写时序

    看代码就可以区分

    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 对的,软件因为要模拟通信协议,所以根据协议安排启动开始时序,一般软通信时序部分稍微麻烦点,至于通信部分,不管是硬件还是软件传输数据是一样的,主要还是代码模拟时序部分!

    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 这是两种通信协议,硬件spi或iic是指时序由硬件产生,而软件spi或iic只是时序由软件模拟实现。
    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 看通讯结果你看不出来的,但是看代码很容易,硬件SPI或者IIC的代码和软件模拟的完全不一样。硬件的引脚都是复用功能,软件的是普通IO

    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 看你的底层时序是如何产生的,软件写的就是模拟的,如果没有,只是初始化单片机的有关部分就是硬件的


    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 看时序图,需要自己另外写时序就是软件的,反之则是硬件
    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 看它是操作硬件SPI子系统还是通过IO电平变化实现SPI的就行
    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 直观就看程序代码,看看 spi  iic 最底层是操作的寄存器,还是反转 IO 口实现的。

    或者看芯片外设,板子外设也行,如果外设都没有 spi iic ,那肯定是 软实现的。

    如果又 spi  iic 外设,就他初始化了没有,用了没有,用了才是硬件 spi  iIC,没用也是 软实现。


    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 硬件SPI和I2C就是完全使用单片机固定的硬件SPI和I2C接口,GPIO锁定了,通过寄存器配置,并且可以结合DMA FIFO等外设使用,而软件SPI和I2C则是完全模拟,GPIO可以随意更改,没有DMA和FIFO。

    • 发布于2019-01-08
    • 举报
    • 评论 1
    • 0
    • 0
2016大圣 回复了 donatello :点赞 回复

  • 软件需要手动配置一些端口的输入输出,还有一些指令,硬件这些只需要配置一些功能就好了
    • 发布于2019-01-08
    • 举报
    • 评论 0
    • 0
    • 0

  • a)spi总线与spi设备分离; b)快速使用新的硬件spi或者模拟spi; c)方便移植spi总线设备及spi外设程序到不同mcu平台。
    • 发布于2019-01-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 软件就是IO模拟的,硬件就是操作芯片自带的
    • 发布于2019-01-28
    • 举报
    • 评论 0
    • 0
    • 0

硬件与软件