SPI总线-串行协议解码
1、发射信号当两个设备进行通信时,一个设备称为主设备,另外一个设备称为从设备。主设备驱动串行时钟。数据被同时发送和接收,使之称为一个全双工协议。SPI使用SS(或CS)线来指定数据从哪个设备转移还是转移到某个设备,所以总线上每个特有的设备都需要主设备上它们自己的SS信号。如果有3个从设备,那么主设备上就有3条SS线,每条线对应一个从设备。开始通信时,总线上的主控设备对时钟进行配置,通常为几MHz或者几十MHz。然后主设备通过选择线上的逻辑0来选择从设备。在每个SPI时钟周期内,都会有一个全双工的数据传输发生。主设备在MOSI线上发送一个字节然后从设备去读取它,当从设备在MISO设备上发送一个字节时主设备去读取它。传输过程涉及一个字长的两个移位寄存器(如8位寄存器),一个在主设备中,一个在从设备中。当移动一个新的最低有效位到相同的寄存器时,数据常常通过先移动最高有效位来完成。当数据完全被移出主设备时从设备也完成了寄存器值的改变,如果更多的数据需要变化,只需重新加载移位寄存器并重复以上过程。传输过程中可以持续任意数量的时钟周期。完成后,主设备停止切换时钟信号并取消选中的从设备。主设备一次只能选择一个从设备。总线上没有通过它们的芯片进行激活的从设备必须无视输入时钟和MOSI信号,不能启动MISO。
2、用PicoScope捕捉并分析SPI信号为了使用PicoScope解码SPI数据首先应该获得感兴趣的数据包,然后从工具菜单中选择串行解码。
3、点击新建,从可获得的协议中选择SPI协议。
4、在对数据进行配置的SPI菜单中选择相应的PicoScope输入通道(MOSI/MISO)、时钟、从设备选择线(SS)。并根据需要设置其他参数。点击OK就可以看到PicoScope图表显示的SPI数据包解码数据。
5、在SPI配置菜单中,通过获得的数据,检查在图中和在表框中显示的SPI数据包,利用可获得的数据通道以及数据包的列表分析数据在时间上的关系。双击图形视图中的一个数据包来观察表格视图中相同的数据包,反之亦然。