硬件spi相比软件spi的优势在哪里

软件spi和硬件spi程序好像都一样啊 速度到底快在哪里
2025-03-20 13:40:29
推荐回答(1个)
回答1:

首先软件SPI,这个毫无疑问你需要用IO模拟SPI时序,这个模拟过程全部是CPU在负责执行,为了稳定得存取数据,你可能会插入软件延时,这个时间在读取数据量不大的情况下并不明显,但是基本上你在读取过程中,其他非中断非异常程序是无法得到执行。
来说说硬件SPI,首先这个数据存储的过程是不需要CPU参与得,程序中配置好SPI的访问时序,开启中断,CPU就可以在中断函数中搬移数据,省下了软件模拟IO得存取时间。
仔细研究就会发现,CPU在进行SPI中断服务程序还是需要耽误时间得,这个过程在大数据量传输中还是很耗时,arm中cortex-m3内核得处理器在硬件SPI上加入了DMA,这个DMA直接从SPI的数据寄存器,软件配置好DMA之后,基本上整个传输都不要CPU参与,软件设计得好的话,整个数据传输都不要CPU参与,这个省下来CPU,你就可以干更多有意义的事情了。