在探讨Actel SPI.pdf文件时,我们首先需要理解SPI(Serial Peripheral Interface,串行外围设备接口)的基本概念及其在通信领域的重要性。SPI是一种高速的、全双工的、同步的通信总线协议,由Motorola公司推出。SPI以主从方式工作,一个SPI总线可以连接多个主机和多个从机,但在任一时刻只允许一个主机操作总线,进行数据传输。
Actel公司提供了基于FPGA的SPI IP核,称为CoreSPI,它基于APB(Advanced Peripheral Bus)总线形式,并可与Core8051或Cortex-M1处理器连接,便于SOC(System on Chip,系统级芯片)设计。文档内容围绕这个CoreSPI IP核的调用、内部时序模型以及如何与外设对接进行详细说明。
在SPI协议中,至少需要四根线来进行通讯,它们是MOSI(主输出从输入),MISO(主输入从输出),SCK(时钟信号)和CS(片选信号)。MOSI和MISO线允许数据同时进出设备,而SCK线由主设备产生,为数据传输提供时钟信号。CS由主设备控制,用于选择哪一个从设备将参与数据传输。
SPI通信协议的一大优势是,数据是一位一位传输的。这意味着数据传输可以被暂停,这与普通串行通讯一次连续传送至少8位数据的方式不同。SPI允许数据一位一位传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。这使得主设备可以通过对SCK时钟线的控制来完成对通讯的控制。SPI还是一个数据交换协议,允许同时完成数据的输入和输出。
SPI接口的数据传输格式主要通过两个信号来区分:CPOL和CPHA。CPOL(Clock Polarity)用于设置时钟极性,在空闲阶段时SCK是高电平还是低电平;CPHA(Clock Phase)用于设置时钟相位,在SCK的哪一边沿采样数据。这两种设置相结合,产生了四种不同的数据传输格式:
1. CPOL=0, CPHA=0:在这种配置下,SCK为高电平有效,数据在SCK的第一个上升沿之前被输出,并在所有后续的下降沿被采样。
2. CPOL=0, CPHA=1:SCK同样为高电平有效,但数据在第二个时钟沿被采样,数据在SCK的上升沿输出,在下降沿被采样。
3. CPOL=1, CPHA=0:此配置下,SCK为低电平有效,数据在第一个下降沿之前输出,并在所有后续的上升沿被采样。
4. CPOL=1, CPHA=1:SCK为低电平有效,数据在第二个时钟沿被采样,数据在SCK的下降沿输出,在上升沿被采样。
每种配置都有其特定的应用场景和优势,设计者可以根据需要选择合适的配置。SPI接口的一个主要缺点是它没有指定的流控制和应答机制,无法确认数据是否被成功接收到。
接下来,文档将围绕如何在Actel Libero环境下调用SPI IP核进行详细讨论,包括IP核的配置选项、内部时序模型设计以及如何与外部SPI设备进行对接。调用SPI IP核的目的是为了简化设计过程,使设计者不必深入了解SPI的内部细节,从而大幅减少了设计者针对SPI调用的使用难度。
由于本文档是由OCR扫描技术从实际文档中提取的,所以文中可能包含了一些文字识别错误或遗漏的情况,需要理解上下文来使文档内容更加通顺和准确。
1