SPI菊花链原理和配置.doc

SPI菊花链原理和配置.doc

ID:55632249

大小:175.00 KB

页数:7页

时间:2020-05-21

SPI菊花链原理和配置.doc_第1页
SPI菊花链原理和配置.doc_第2页
SPI菊花链原理和配置.doc_第3页
SPI菊花链原理和配置.doc_第4页
SPI菊花链原理和配置.doc_第5页
资源描述:

《SPI菊花链原理和配置.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、摘要:在一个主机和多个从器件的典型SPI系统中,通常采用专门的片选信号来寻址从器件。随着从器件数量不断增加,片选线也随之增多。这种情况将给电路板布板带来很大的挑战。一个布板方法就是采用菊链结构。本文详细讲述了SPI系统的菊链配置,并展示如何使用软件向串联从器件发送命令。 标准SPI™/QSPI™/MICROWIRE™兼容微控制器通过3线/4线串口与从器件通信。典型接口包括片选信号(/CS)、串行时钟(SCLK)和数据输入信号(DIN),有时还会有数据输出信号(DOUT)。如同I²C系统中一样,单独寻址的器件能轻易的和总线上的其它器件

2、通信。 基本串行通信接口很多SPI器件并不是单独寻址的。因此,这些器件和总线上其它单个器件通信时,就需要进行额外的硬件或者软件处理。图1所示是一个微控制器和多个从器件通信的系统。图1.带有多个从器件独立片选信号的微控制器。在上述系统中,微控制器通过一个串行时钟输出(SCLK)和一个主机输出/从机输入(MOSI)信号线向各从器件发送命令。主机为每个器件分配了一个独立的片选信号(/SS_),从而实现各个从器件的独立寻址。由于所有从器件共享同一个时钟和数据线,只有/CS输入变低的从器件才会应答串行时钟和数据线。当从器件数目较少时,该系统较

3、易实现。如果系统中从器件数较多,微控制器需要提供和从器件一样多的/SS_输出,这种结构就增加了硬件和布板的复杂程度。菊链方法硬件空间方面的限制往往会使图1所示的电路无法实现或难以实现。可采用菊链法替代实现串行接口。图2是一个有N个从器件的菊链系统结构。图2.微控制器连接多个从器件采用一个/SS(或者/CS)信号控制所有从器件的/CS输入;所有从器件接收同一个时钟信号。只有链上的第一个从器件(SLAVE1)从微控制器直接接收命令。其他所有从器件都从链上前一个器件的DOUT输出获得其DIN数据。要保证菊链正常工作,每一个从器件就必须能在

4、给定的命令周期内(定义为每一个命令所需的时钟数)从DIN引脚读入命令,而在下一个命令周期从DOUT引脚输出同样的命令。显然,从DIN到DOUT会有一个命令周期的延迟。另外,各个从器件只能在/CS的上升沿执行写入的命令。这意味着只要/CS保持低电平,从器件将不会执行命令,并且会在下一个命令周期将命令通过DOUT引脚输出。如果在给定命令周期之后/CS变高,所有从器件将立即执行写入DIN引脚的命令。如果/CS变高,数据将不会从DOUT输出,这就使得链上每个从器件可以执行不同的命令。只要菊链的这些要求能够满足,微控制器只需三个信号(/SS、

5、SCK和MOSI)就能控制网络上的所有从器件。如何实现菊链在菊链系统中(图2),SLAVE1从微控制器直接接收数据。该数据在时钟驱动下进入SLAVE1的内部移位寄存器。只要/CS(或/SS)仍然保持低电平,该数据将通过SLAVE1的DOUT引脚输出。SLAVE1的DOUT引脚接至SLAVE2的DI引脚,因此当数据通过SLAVE1的DOUT引脚端输出时,同时也被同步移入SLAVE2的内部移位寄存器。同理,当SLAVE2接收来自SLAVE1的数据的时候,微控制器可同时向SLAVE1发送另一个命令。该新命令将覆盖SLAVE1移位寄存器中原

6、来的数据。只要/CS保持为低,数据会在整条菊链上传递,直到每一个从器件都接收了相应的命令。存储在每一个从器件移位寄存器中的命令将在/CS的上升沿执行。下面例子使用MAX5233和MAX5290构成菊链。电路图范例#1图3给出的菊链结构中连接了3个MAX5233。MAX5233为双路、10位DAC(包含两个DAC通道,通道A和B)。将RSTV接至VDD,模拟输出的上电状态被设置到中点。图3.菊链电路#1图4给出了将IC1(A1和B1)、IC2(A2和B2)和IC3(A3和B3)的输出分别设为零点、中点和满刻度的命令序列图。在这个例子中

7、,使用了以下的命令:·0x7FF8—将满刻度数据加载到IC3DAC寄存器,并将两路输出(A3、B3)设置到满刻度·0x7000—将满刻度数据加载到IC2DAC寄存器,并将两路输出(A2、B2)设置到中点·0x6000—将满刻度数据加载到IC1DAC寄存器,并将两路输出(A1、B1)设置到零点图4.电路#1—命令时序A在第一个命令周期(16个SCLK脉冲序列),将0x7FF8载入IC1的移位寄存器。当/CS保持低电平,这一数据将在IC1内传递,并且在下一个命令周期内通过DOUT1输出。在第二个命令周期内,IC1输出端DOUT1上的数据

8、输入到DIN2,将0x7FF8载入IC2的移位寄存器中。同时,新的命令0x7000将载入IC1移位寄存器,覆盖了前一个命令。第三个命令周期内,第一个命令0x7FF8将载入IC3的移位寄存器,而第二个命令0x7000将载入IC2的移位寄

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。