要搞清楚i2s,spi,以及io口的含义,i2s,spi,是两种不同的总线协议,它规定了数据传输的具体过程,而并非指具体的硬件电路。某些型号的单片机在芯片内部集成了可以直接实现上述传输协议的电路,这部分电路又被称为外设。而io口是单片机的输入输出口,是具体的硬件电路,所有单片机都有。 接下来,我们来看一下i2s与spi的区别。首先,i2s有三个信号:串行时钟SCLK,也叫位时钟(BCLK). 帧时钟LRCK,(也称WS),串行数据SDATA。以下是具体的 时序图。
而spi一般有四个信号,它们是SDI(数据输入)SDO(数据输出)、SCLK(时钟),CS。以下为是时序。 。 
由以上可知,题主所提到的spi(个人推测是单片机自带的spi外设)是无法实现i2s数据传输。 但是,以上总线协议(无论是i2s还是spi)都是通过数据线上高低电平的变化来传输数据的,只不过有了具体的规则,这个规则就是时序。只要我们能够实现时序图里所示的变化,就实现了数据传输。而普通io口就可以方便的实现以上要求,故能够通过io来实现i2s数据传输。实际上,只要是数字信号传输,给了具体的时序图,io口工作速度满足要求,我们都能用io口来实现,不管是i2s还是spi,i2c等。
|