展开全部
首先软件SPI,这个毫无疑问你需要用IO模拟SPI时序,这个模拟过程全部是CPU在负责执行,为了稳定得存取数据,你可能会插入软件延时,这个时间在读取数据量不大的情况下并不明显,但是基本上你在读取过程中,其他非中断非异常程序是无法得到执行。
来说说硬件SPI,首先这个数据存储的过程是不需要CPU参与得,程序中配置好SPI的访问时序,开启中断,CPU就可以在中断函数中搬移数据,省下了软件模拟IO得存取时间。
仔细研究就会发现,CPU在进行SPI中断服务程序还是需要耽误时间得,这个过程在大数据量传输中还是很耗时,arm中cortex-m3内核得处理器在硬件SPI上加入了DMA,这个DMA直接从SPI的数据寄存器,软件配置好DMA之后,基本上整个传输都不要CPU参与,软件设计得好的话,整个数据传输都不要CPU参与,这个省下来CPU,你就可以干更多有意义的事情了。
来说说硬件SPI,首先这个数据存储的过程是不需要CPU参与得,程序中配置好SPI的访问时序,开启中断,CPU就可以在中断函数中搬移数据,省下了软件模拟IO得存取时间。
仔细研究就会发现,CPU在进行SPI中断服务程序还是需要耽误时间得,这个过程在大数据量传输中还是很耗时,arm中cortex-m3内核得处理器在硬件SPI上加入了DMA,这个DMA直接从SPI的数据寄存器,软件配置好DMA之后,基本上整个传输都不要CPU参与,软件设计得好的话,整个数据传输都不要CPU参与,这个省下来CPU,你就可以干更多有意义的事情了。
上海灿态智能科技有限公司
2020-10-27 广告
2020-10-27 广告
时序没有区别。 硬件SPI效率高些,写程序的时候只要把要发的数据写到寄存器里,硬件就自动给发了。 软件需要去实现时钟拉高拉低,数据串行输出等。 硬件的SPI必须要处理器支持才可以用。 软件SPI就不需要特定的要求了,一般的IO口就...
点击进入详情页
本回答由上海灿态智能科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询