SPI总线接口及时序
SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。
假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送
那么第一个上升沿来的时候数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序
verilog代码设计
为了适应上升沿传输,下降沿捕捉,这里我们使用SPI-CK的两倍信号作为系统时钟,第一个上升沿发送,下一个上升沿捕捉,正好对应着SPI-CK的上升沿和下降沿
仿真图如下
上面讨论的是SPI作为master时的情况,接下来讨论SPI作为SLAVE时候的情况
|