1、标准的SPI通讯协议
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速,全双工,同步的通讯协议。SPI
通常需要四根线,它们是MOSI(数据输出)、MISO(数据输入)、SCLK(时钟)、SS(片选)。
(1) MOSI - 主设备数据输出,从设备数据输入;
(2) MISO – 主设备数据输入,从设备数据输出;
(3) SCLK – 时钟信号,由主设备产生;
(4) SS – 从设备使能信号,有主设备控制;
图1 SPI标准通讯接口
SPI通讯接口的优点是传输数据快,能达到几兆到几十兆,并且没有系统开销。但是,SPI总线的缺点也比较明显,主要是没有指定的流控制,也没有应答机制确认是否接收到数据。
2.单线SPI接口
还有一种另类的SPI通讯接口方式。这种SPI接口在标准SPI接口上做修改,由原来的两根数据线改为一根数据线。这样,通讯方式也成为半双工的通讯方,在接线上面,显得更简约了。
图2 SPI单线通讯接口
3.让编程器当从机的SPI单线通讯接口
在编程界,遇到特殊编程接口的芯片已经成为家常便饭。因为有时候,芯片为了设计更优的编程方式,会采用一些少见的,奇葩的通讯方式。
在支持MAXIM部分芯片的编程时,该芯片采取的是芯片当主机的单数据线的SPI通讯,其通讯特点是:
(1) TCLK由始至终都是由芯片产生,编程器接收时钟;
(2) 时钟频率较高,达到10MHz;
(3) 通讯方式是芯片每收到一个字节后立刻返回一个字节。
其数据通讯见下图(注:图片来源于编程手册)。由于在通讯过程中不会发生主从互换的问题,因此使能脚SS也是可以忽视的。
图3 编程器当从机的单数据线SPI通讯
对于该系列的芯片,由于通讯时钟频率较高,要对数据进行采样,编程器的采样时钟至少为20MHz,而且还需要硬件很好地兼容,并且编程器发送完数据后必须立刻切换为接收状态,一般的编程器很难达到这种苛刻的要求。
在这里采用的处理方案是使用超高速处理器的P800-ISP对其进行支持。下图是截取从逻辑分析仪上捕捉到烧写过程的一段通讯波形,明显看到,时钟的脉宽为50ns(对应的时钟频率为10MHz)。
图4 单线SPI通讯波形
该单线SPI编程接口的总结如下:
优点:是接线少(实际用到的线只需要两根)、通讯快、数据简单;
缺点:但高频通讯时对从机要求苛刻,需要兼容高频率采样和收发状态的切换能力(如,发送数据后马上切换到接收状态)。