在嵌入式应用中撞击SPI/I2C有什么缺点

anu*_*nde 5 embedded spi i2c

我已经明白,当涉及到GPIO上的SPI/I2C时,位敲击是一种可怕的做法.为什么这样?

Cli*_*ord 16

bit-banging会带来消耗CPU周期的软件开销,否则您可能会将其用于其他目的.这可能对系统对其他事件的响应性产生显着影响,并且在硬实时系统中,可能会显着影响系统满足实时截止日期的能力.

如果bit-banged接口不会对实时性能产生不利影响,那么它必须被赋予低优先级,因此在数据吞吐量和延迟方面本身将是非确定性的.

通过使用硬件接口和DMA传输来实现最高CPU效率的传输,从而最大限度地减少软件开销.比特轰炸正处于相反的极端.

我不会说这太可怕了 ; 如果在您的应用程序中您可以实现响应性和实时约束,并且使用bit-banging可能会降低所需部件的成本,或者允许您使用现有硬件,那么它可能是完全合理的.