ADSPBF系列硬件之SPI端口控制器.docx
- 文档编号:2806117
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:19
- 大小:488.03KB
ADSPBF系列硬件之SPI端口控制器.docx
《ADSPBF系列硬件之SPI端口控制器.docx》由会员分享,可在线阅读,更多相关《ADSPBF系列硬件之SPI端口控制器.docx(19页珍藏版)》请在冰豆网上搜索。
ADSPBF系列硬件之SPI端口控制器
SPI端口控制器
1.概述
SPI端口为兼容SPI的外设提供了一种I/O接口。
使用一系列的配置选项,SPI提供了与其他兼容SPI的外设进行无缝连接。
SPI为四线接口,由两个数据信号、一个设备选择信号和一个时钟信号组成。
SPI是一个全双工的同步串行接口,支持主机模式、从机模式以及多主机环境。
还支持编程设置位速率和时钟相位/极性。
2.特性
SPI包括如下特性:
(1)全双工,同步串行接口
(2)支持8位或16位字宽度
(3)可编程波特率,时钟相位和极性
(4)支持多主机环境
(5)与DMA控制器结合
(6)双缓冲的发送器和接收器
(7)一个SPI设备选择输入和多片选择输出
(8)可编程数据引脚上的数据移位方向,先MSB或先LSB
(9)当发生模式错误、溢出和下溢时产生中断
(10)Shadowregistertoaiddebugging
典型的能与SPI接口的设备包括:
(1)其他CPU或微控制器
(2)多媒体数字信号编解码器
(3)A/D转换器
(4)D/A转换器
(5)采样速率转换器
(6)SP/DIF或AES/EBU数字音频发送器和接收器
(7)LCD显示器
(8)移位寄存器
(9)具有SPI仿真器的FPGA
3.接口概述
如图1所示为SPI框图。
SPI接口实际上就是一个移位寄存器,它能够串行地发送和接收数据位。
以SCK的速率向或从SPI设备发送或接收数据位。
通过使用同一个移位寄存器可以同时发送和接收SPI数据。
当发生一次SPI数据传输时,发送数据(将数据从移位寄存器的一端串行地移出)的同时可以就收新的数据(从移位寄存器的另一端接收新数据)。
SCL信号使得移出发送数据与采样接收数据同步。
图1SPI框图
3.1外部接口
3.1.1SPI时钟信号(SCK)
SCK信号是一种串行时钟信号,它由主机驱动并且能够控制数据传输的速率。
主机可以以不同的位速率发送数据。
发送一位数据需要花销一个SCK周期。
如果设备被配置成主机那么该信号为输出信号。
反之,则为输入信号。
SCK信号是一个门控信号,它在数据传输的过程中始终有效。
有效的时钟边沿的数量与数据线上传输的数据位的个数相同。
如果
输入信号被拉低,那么从机设备会忽略SCK信号。
SCK信号用于将MISO和MOSI数据线上的数据移入和移出,可以通过SPI_CTL寄存器对SCK时钟信号的极性和相位进行编程设置,同时也可以定义数据传输的格式。
3.1.2主机输出,从机输入(MOSI)信号
MOSI信号是双向I/O数据引脚中的一个引脚。
如果将处理器配置成主机,那么处理器可以通过MOSI引脚发送数据。
相反,可以通过MOSI引脚接收数据。
在SPI相互连接的情况下,数据从主机设备的MOSI引脚被移出并且从从机设备的MOSI引脚移入。
3.1.2主机输入,从机输出(MISO)信号
MISO信号是双向I/O引脚中的一种。
如果将处理器配置成主机,那么可以处理器通过MISO引脚接收数据。
相反,处理器可以通过MOSI引脚发送数据。
在SPI相互连接的情况下,数据从从机设备的MISO引脚被移出并且从主机设备的MISO引脚移入。
注意:
在任何时候只允许一个从机发送数据。
如图2所示:
举例SPI配置解释如何将处理器配置为从SPI设备。
该8位的主微控制器是SPI主机。
注意:
可以通过处理器的SPI接口来引导处理器以使得用户的应用程序代码和数据能够在运行时之前被载入。
图2设置Blackfin处理器为从机SPI设备
3.1.2SPI从机选择输入信号(
)
信号是SPI从机选择的输入信号。
该信号为低电平有效,当一个处理器被设置为从机时可以使用
信号去使能该处理器。
信号类似于片选信号一样作为单向输入信号被使用。
对于一个主机设备而言,在多主机环境中它可以作为一个错误输入信号引脚被使用。
在多主机模式下,如果主机的
输入引脚被声明(被拉低)并且SPI_CTL寄存器中的PSSE位被使能,那么就表明此时有一个错误已经发生。
这个错误说明此时有另外一个设备试图成为主机。
使能前导事件T1、使能滞后时间T2以及传输序列的延迟时间T3中的每一个都必须
SCK时钟周期。
如图3所示。
在连续的字传输之间的最少时间为T4,T4等于两倍的SCK时钟周期。
可以通过测量传输一个字时的有效SCK边沿到传输下一个字时有效SCK边沿以得到T4值。
图3SPI时序
3.1.3SPI从机选择使能输出信号
当处理器工作在主机模式时,Blackfin处理器可能会通过软件使用任意GPIO引脚以使能单个的SPI从机设备。
除此之外,SPI模块还提供硬件支持能够自动生成最多7个从机选择的使能信号(这个根据不同的处理器有所不同)。
根据SPI的协定,从机选择使能信号都必须是有效低电平信号。
由于在复位过程中这些引脚不会被驱动,所以建议使用一个电阻将它们拉高。
如果将Blackfin处理器配置为主机模式,SPI会使用SPI_FLG寄存器去使能通用端口引脚作为单个的从机选择线。
在使用这些引脚作为SPI从机选择使能输出印加之前,必须在适当的PORT_MUX寄存器中使能端口引脚被SPI使用。
在从机模式SPI_FLG寄存器不起作用并且每一个从机SPI接口都会使用
信号作为从机选择输入信号。
同样地,在使用端口引脚与
引脚连接之前需要使用适当的端口寄存器配置使能这些引脚被SPI使用。
3.1.4SPI从机选择输入
如果SPI处于从机模式,那么
信号就作为从机选择输入引脚。
当SPI处于主机模式时,在多主机环境中
信号就作为错误检测输入引脚。
SPI_CTL寄存器中的PSSE位可以使能这个功能。
当PSSE=1时,
信号作为主机模式的错误检测输入引脚。
反之,
信号被忽略。
3.1.4在多从机SPI系统中使用SPI_FLG寄存器中的FLS位
在多从机SPI环境中使用SPI_FLG寄存器中的FLSx位。
举例,如果在系统中有8个SPI设备其中包括一个主机处理器,那么配置该处理器以选择另外7个从机SPI。
在多从机SPI模式中这种配置只需要一个主机处理器。
如果假设SPI是主机,那么需要7个端口引脚被配置为SPI主机模式中的从机选择输出引脚并且与每一个SPI设备的
信号引脚连接。
在这种配置中SPI_FLG寄存器中的FLSx位被用于3中情况:
在情况1和2中,处理器为主机以及7个具有SPI接口的微控制器或外设为从机。
(1)以广播模式向7个SPI从机设备同时发送信号。
此时将所有的FLSx位置1;
(2)仅使能一位FLS位,此时每次只与一个SPI设备进行通信;
在情况3中,通过SPI接口连接的8个SPI设备都可以是其他处理器。
(3)如果所有的从机也是处理器,那么在通信过程中每次请求者只能从一个处理器接收数据。
但是每次一个主机处理器可以同时向7个从机处理器发送数据。
如图4所示,一个处理器作为主机,3个处理器(或3个兼容SPI接口的外设)作为从机。
图4单主机,多从机配置
(1)在写发送缓冲器之后,它将变成满状态。
当进行传输时,它将变成空并且发送的数据会被载入移位寄存器中。
(2)在一次传输结束,当移位寄存器中的数据被载入到接收缓冲器时,接收缓冲器变成满状态。
当读接收缓冲器时,它变成空。
注意:
当SPI端口被禁止时,SPI_STAT寄存器中的SPIF位会被置1。
当SPI进入DMA模式中工作时,发送缓冲器和接收缓冲器将变成空状态。
此时,当进入DMA模式时SPI_STAT寄存器中的TXS位和RXS位被初始化为0。
当SPI发送数据使用DMA模式时,DMA_DONE中断位标志着DMAFIFO为空。
然而,此时在SPIDMAFIFO中可能还会有数据存留等带被发送。
因此,软件需要查询PI_STAT寄存器中的TXS位直到该位变成0,并且连续两次读该位它都为0。
那么此时SPIDMAFIFO才真正为空。
此后当SPIF位被置1时,表明最后一个字已经被发送(发送完成)并且SPI可以被禁止或使能成其他模式。
3.2内部接口
SPI接口具有与处理器的外设总线(PAB)和DAB的专用连接。
使用低延迟性的PAB总线去映射SPI资源到系统MMR空间。
对于PAB访问SPIMMR而言,主要的性能标准是延迟而不是吞吐量。
对于在PAB上的读、写传输而言,传输延迟为两倍的SCLK周期。
DAB总线提供了一种称为DMASPI传输的方式,这种方式可以访问片内和片外存储器而很少降低或不降低内核带宽。
兼容SPI的外设,例如一个DMA主机能够进行DMA访问。
3.2.1DMA功能
SPI具有一个单个的DMA通道,它可以被配置为SPI发送通道或接收通道。
但是发送和接收通道不是同步操作的。
因此,当把SPIDMA通道配置为发送通道时,将忽略被接收的数据;当把SPIDMA通道配置为接收通道时,将忽略被发送的数据。
SPI还具有一个16位的4字FIFO(不具有突发能力)以提高DAB总线上的吞吐量。
注意:
当使用DMA进行SPI传输时,DMA_DONE中断位标志着DMAFIFO为空。
然而,此时在SPIDMAFIFO中可能还会有数据存留等待被发送。
因此,软件需要查询PI_STAT寄存器中的TXS位直到该位变成0,并且连续两次读该位它都为0,那么此时SPIDMAFIFO才真正为空。
此后当SPIF位被置1时,表明最后一个字已经被发送(发送完成)并且SPI可以被禁止或使能成其他模式。
当SPI端口被禁止时4字的FIFO被清除。
4.操作描述
4.1SPI传输协议
SPI协议支持四种串行时钟相位和极性的不同组合(SPI模式0、1、2、3)。
使用SPI_CTL寄存器中的CPOL位和CPHA位来选择这些组合。
如图5所示
图5SPI的操作模式
图6和图7解释了两种SPI基本的传输格式,传输格式由CPHA位定义。
图6CPHA=0时的SPI操作模式
图7CPHA=1时的SPI操作模式
图6和图7显示了关于SCK的两种波形。
(1)CPOL=0
(2)CPOL=1
也可以将图6和图7理解成主机或从机时序图。
因为在主机和从机之间SCK、MISO、MOSI引脚都直接相连。
MISO信号从从机输出(从机发送),MOSI信号从主机输出(主机发送)。
SCK信号由主机产生并且
信号作为从机设备的选择输入信号。
以上两图描述了一个8位(SIZE=0)的数据传输,首先发送MSB位(LSBF=0)。
SPI_CTL寄存器中的SIZE位和LSBF位可以任意组合。
例如:
一个16位的传输,首先发送LSB位的操作就是一种可能的配置。
在通信链接中主机设备和从机设备的时钟极性和相位应当一致。
主机的传输格式在传输之间可能会发生改变以调整一种从机设备的各种需求。
4.2SPI一般操作
SPI可以用于单主机环境或多主机环境中。
在这两种主机环境中MOSI、MISO和SCK引脚都分别连接在一起。
SPI发送和接收总是被同步使能,除非选择了广播模式。
在广播模式中,一些从机被使能接收数据,但是在发送模式中只能有一个从机设备驱动MISO引脚。
需要注意当改变SPI配置时避免数据损坏。
在一次数据传输中,不可以改变配置。
当没有选择从机时才可以改变时钟的极性。
在多主机或多从机SPI系统中,可以把数据输出引脚(MOSI和MISO引脚)配置成开漏输出,这样就可以防止线路争夺和损坏引脚驱动器。
MOSI和MISO引脚都需要一个外部上拉电阻。
SPI_CTL寄存器中的WOM位控制开漏输出的选择。
当WOM位被置1并且SPI被配置为主机,当MOSI引脚上的数据驱动输出信号为逻辑高那么该引脚为3态。
同样地,当WOM位被置1并且SPI被配置为从机,当MISO引脚上的数据驱动输出信号为逻辑高那么该引脚为3态。
在SPI传输数据的过程中,一个SPI设备用于SPI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADSPBF 系列 硬件 SPI 端口 控制器