9-同步串行接口(SSI)(下载)

上传人:206****923 文档编号:88626101 上传时间:2019-05-05 格式:PDF 页数:14 大小:293.35KB
返回 下载 相关 举报
9-同步串行接口(SSI)(下载)_第1页
第1页 / 共14页
9-同步串行接口(SSI)(下载)_第2页
第2页 / 共14页
9-同步串行接口(SSI)(下载)_第3页
第3页 / 共14页
9-同步串行接口(SSI)(下载)_第4页
第4页 / 共14页
9-同步串行接口(SSI)(下载)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《9-同步串行接口(SSI)(下载)》由会员分享,可在线阅读,更多相关《9-同步串行接口(SSI)(下载)(14页珍藏版)》请在金锄头文库上搜索。

1、目 录 Stellaris外设驱动库SSI.1 1.1 SSI总体特性.1 1.2 SSI通信协议.1 1.2.1 Texas Instruments同步串行帧格式1 1.2.2 Freescale SPI帧格式.2 1.2.3 MICROWIRE帧格式 .6 1.3 SSI功能概述.8 1.3.1 位速率和帧格式.8 1.3.2 FIFO操作8 1.3.3 SSI中断.9 1.4 SSI库函数参考.9 1.4.1 配置与控制.9 1.4.2 数据收发.11 1.4.3 中断控制.12 i Stellaris 外设驱动库外设驱动库SSI 1.1 SSI 总体特性总体特性 Stellaris系列

2、ARM的SSI (Synchronous Serial Interface, 同步串行接口) 是与具有Freescale SPI(飞思卡尔半导体) 、MicroWire(美国国家半导体) 、Texas Instruments(德州仪器,TI) 同步串行接口的外设器件进行同步串行通信的主机或从机接口。SSI 接口是 Stellaris 系列 ARM 都支持的标准外设,也是流行的外部串行总线之一。SSI 具有以下主要特性: ? 主机或从机操作 ? 时钟位速率和预分频可编程 ? 独立的发送和接收 FIFO,16 位宽,8 个单元深 ? 接口操作可编程,以实现 Freescale SPI、MicroW

3、ire 或 TI 的串行接口 ? 数据帧大小可编程,范围 416 位 ? 内部回环测试模式,可进行诊断/调试测试 1.2 SSI 通信协议通信协议 对于 Freescale SPI、MICROWIRE、Texas Instruments3 种帧格式,当 SSI 空闲时串行时 钟(SSICLK)都保持不活动状态,只有当数据发送或接收时处于活动状态,SSICLK 才在 设置好的频率下工作。利用 SSICLK 的空闲状态可提供接收超时指示。如果一个超时周期之 后接收 FIFO 仍含有数据,则产生超时指示。 对于 Freescale SPI 和 MICROWIRE 这两种帧格式,串行帧(SSIFss)

4、管脚为低电平有 效,并在整个帧的传输过程中保持有效(被下拉) 。 而对于 Texas Instruments 同步串行帧格式,在发送每帧之前,每遇到 SSICLK 的上升沿 开始的串行时钟周期时,SSIFss 管脚就跳动一次。在这种帧格式中,SSI 和片外从器件在 SSICLK 的上升沿驱动各自的输出数据,并在下降沿锁存来自另一个器件的数据。 不同于其它两种全双工传输的帧格式,在半双工下工作的 MICROWIRE 格式使用特殊的主- 从消息技术。在该模式中,帧开始时向片外从机发送 8 位控制消息。在发送过程中,SSI 没 有接收到输入的数据。在消息已发送之后,片外从机对消息进行译码,并在 8

5、位控制消息的 最后一位也已发送出去之后等待一个串行时钟, 之后以请求的数据来响应。 返回的数据在长 度上可以是 416 位,使得在任何地方整个帧长度为 1325 位。 1.2.1 Texas Instruments 同步串行帧格式同步串行帧格式 图 1 TI 同步串行帧格式(单次传输) 1 图1 显示了一次传输的 Texas Instruments 同步串行帧格式。 在该模式中,任何时候当 SSI 空闲时,SSICLK 和 SSIFss 被强制为低电平,发送数据线 SSITx 为三态。 一旦发送 FIFO 的底部入口包含数据, SSIFss 变为高电平并持续一个 SSICLK 周期。即将发送的

6、值也从发送 FIFO 传输到发送逻辑的串行移位寄存器中。在 SSICLK 的下 一个上升沿,416 位数据帧的 MSB 从 SSITx 管脚移出。同样地,接收数据的 MSB 也通过 片外串行从器件移到 SSIRx 管脚上。 然后,SSI 和片外串行从器件都提供时钟,供每个数据位在每个 SSICLK 的下降沿进入 各自的串行移位器中。在已锁存 LSB 之后的第一个 SSICLK 上升沿上,接收数据从串行移 位器传输到接收 FIFO。 LSB 4 16 位 SSIClk SSIFss SSITx/SSIRx 图 2 TI 同步串行帧格式(连续传输) 图2 显示了背对背(back-to-back)传

7、输时的 Texas Instruments 同步串行帧格式。 1.2.2 Freescale SPI 帧格式帧格式 Freescale SPI(Motorala SPI)接口是一个 4 线接口,其中 SSIFss 信号用作从机选择。 Freescale SPI 格式的主要特性为: SSICLK 信号的不活动状态和相位可以通过 SSISCR0 控制 寄存器中的 SPO 和 SPH 位来设置。 ? SPO 时钟极性位 当 SPO 时钟极性控制位为 0 时,在没有数据传输时 SSICLK 管脚上将产生稳定的低电 平。如果 SPO 位为 1,则在没有进行数据传输时在 SSICLK 管脚上产生稳定的高电

8、平。 ? SPH 相位控制位 SPH 相位控制位选择捕获数据以及允许数据改变状态的时钟边沿。通过在第一个数据 捕获边沿之前允许或不允许时钟转换, 从而在第一个被传输的位上产生极大的影响。 当 SPH 相位控制位为 0 时,在第一个时钟边沿转换时捕获数据。如果 SPH 位为 1,则在第二个时 钟边沿转换时捕获数据。 1 SPO=0 和 SPH=0 时的 Freescale SPI 帧格式 SPO=0 和 SPH=0 时,Freescale SPI 帧格式的单次和连续传输信号序列如图3 和图4 所 示。 2 图 3 SPO=0 和 SPH=0 时的 Freescale SPI 帧格式(单次传输)

9、SSIClk SSIFss SSIRxLSB SSITxMS BLSB 4 16 位 LSBMSB MSB MSB LSB 图 4 SPO=0 和 SPH=0 时的 Freescale SPI 帧格式(连续传输) 在上述配置中,SSI 处于空闲周期时: (1)SSICLK 强制为低电平 (2)SSIFss 强制为高电平 (3)发送数据线 SSITx 强制为低电平 (4)当 SSI 配置为主机时,使能 SSICLK 端口 (5)当 SSI 配置为从机时,禁止 SSICLK 端口 如果 SSI 使能并且在发送 FIFO 中含有有效的数据, 则通过将 SSIFss 主机信号驱动为低 电平表示发送操作

10、开始。这使得从机数据能够放在主机的 SSIRx 输入线上,主机 SSITx 输 出端口使能。在半个 SSICLK 周期之后,有效的主机数据传输到 SSITx 管脚。既然主机和从 机数据都已设置好, 则在下面的半个 SSICLK 周期之后, SSICLK 主机时钟管脚变为高电平。 在 SSICLK 的上升沿捕获数据,该操作延续到 SSICLK 信号的下降沿。 如果是传输一个字, 则在数据字的所有位都已传输完之后, 在捕获到最后一个位之后的 一个 SSICLK 周期后,SSIFss 线返回到其空闲的高电平状态。 在连续的背对背传输中,数据字的每次传输之间 SSIFss 信号必须变为高电平。这是因

11、为如果 SPH 位为逻辑 0,则从机选择管脚将其串行外设寄存器中的数据固定,不允许修改。 因此,主器件必须在每次数据传输之间将从器件的 SSIFss 管脚拉高,来使能串行外设的数 据写操作。当连续传输完成时,在捕获到最后一个位之后的一个 SSICLK 周期后,SSIFss 管脚返回到其空闲状态。 2 SPO=0 和 SPH=1 时的 Freescale SPI 帧格式 SPO=0 和 SPH=1 时,Freescale SPI 帧格式的传输信号序列如图5 所示,该图涵盖了单 次和连续传输这两种情况。 3 4 16 位 SSIClk SSIFss SSIR x SSITx Q MSB QMSB

12、LSB LSB 图 5 SPO=0 和 SPH=1 时的 Freescale SPI 帧格式 在该配置中,SSI 处于空闲周期时: (1)SSICLK 强制为低电平 (2)SSIFss 强制为高电平 (3)发送数据线 SSITx 强制为低电平 (4)当 SSI 配置为主机时,使能 SSICLK 端口 (5)当 SSI 配置为从机时,禁止 SSICLK 端口 如果 SSI 使能并且在发送 FIFO 中含有有效的数据, 则通过将 SSIFss 主机信号驱动为低 电平表示发送操作开始。主机 SSITx 输出使能。在下面的半个 SSICLK 周期之后,主机和从 机有效数据能够放在各自的传输线上。同时,

13、利用一个上升沿转换来使能 SSICLK。然后, 在 SSICLK 的下降沿捕获数据,该操作一直延续到 SSICLK 信号的上升沿。 如果是传输一个字,则在所有位传输完之后,在捕获到最后一个位之后的一个 SSICLK 周期,SSIFss 线返回到其空闲的高电平状态。 如果是背对背(back-to-back)传输,则在两次连续的数据字传输之间 SSIFss 管脚保持 低电平,连续传输的结束情况与单个字传输相同。 3 SPO=1 和 SPH=0 时的 Freescale SPI 帧格式 SPO=1 和 SPH=0 时,Freescale SPI 帧格式的单次和连续传输信号序列如图6 和图7 所 示。

14、 4 16 位 SSIClk SSIFss SSIRx SSITx QMSB MSBLSB LSB 图 6 SPO=1 和 SPH=0 时的 Freescale SPI 帧格式(单次传输) 4 SSIClk SSIFss SSITx/SSIRxMS BLSB 4 16 位 LSBMSB 图 7 SPO=1 和 SPH=0 时的 Freescale SPI 帧格式(连续传输) 在该配置中,SSI 处于空闲周期时: (1)SSICLK 强制为高电平 (2)SSIFss 强制为高电平 (3)发送数据线 SSITx 强制为低电平 (4)SSI 配置为主机时,使能 SSICLK 引脚 (5)SSI 配置

15、为从机时,禁止 SSICLK 引脚 如果 SSI 使能并且在发送 FIFO 中含有有效的数据, 则通过将 SSIFss 主机信号驱动为低 电平表示传输操作开始,这可使从机数据立即传输到主机的 SSIRx 线上。主机 SSITx 输出 引脚使能。半个周期之后,有效的主机数据传输到 SSITx 线上。既然主机和从机的有效数 据都已设置好,则在下面的半个 SSICLK 周期之后,SSICLK 主机时钟管脚变为低电平。这 表示数据在下降沿被捕获并且该操作延续到 SSICLK 信号的上升沿。 如果是单个字传输,则在数据字的所有位传输完之后,在最后一个位传输完之后的一个 SSICLK 周期,SSIFss

16、线返回到其空闲的高电平状态。 而在连续的背对背(back-to-back)传输中,每次数据字传输之间 SSIFss 信号必须变为 高电平。这是因为如果 SPH 位为逻辑 0,则从机选择管脚使其串行外设寄存器中的数据固 定,不允许修改。因此,每次数据传输之间,主器件必须将从器件的 SSIFss 管脚拉为高电 平来使能串行外设的数据写操作。在连续传输完成时,最后一个位被捕获之后的一个 SSICLK 周期,SSIFss 管脚返回其空闲状态。 4 SPO=1 和 SPH=1 时的 Freescale SPI 帧格式 SPO=1 和 SPH=1 时,Freescale SPI 帧格式的传输信号序列如图8 所示。该图涵盖了单 次和连续传输两种情况。 4 6 位 SSIClk SSIFss SSIR x SSITx QQ MSB MSB LSB LSB 1 图 8 SPO=1 和 SPH=1 时的 Freescale SPI 帧格式 (注:图中的 Q 表示未定义) 5 在该配置中,SSI 处于空闲周期时: (1)SSICLK 强制为高电平 (2)SSIFss

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号