USER GUIDE / PERIPHERALS / SSI / OVERVIEW
概述
SSI 是一个全双工通用同步串行接口,支持外接数模转换模块,CODEC 接口及其他串行传输的从机设 备。本模块支持国家微线协议(National’s Microwire),德州仪器的同步串行协议(SSP),摩托罗拉的 同步串行协议(SPI)。
SSI 模块工作在主机模式下,从机模式下的设备为 SSI_SLV,支持范围在 7.2KHz 到 50MHz 之间的串 行传输时钟;支持范围在 2 到 32bit 之间的数据帧长度。本模块提供了两块 128x32 的 FIFO,供接收,发 送数据使用。
当 SSI 模块处在发送/接收工作状态下时,FIFO 可以被 CPU 通过可编程 IO 或 DMA 模式传输来载入或 读取。
功能
- 支持三种协议模式:SPI, SSP 以及 National MICROWIRE
- 支持全双工工作模式和仅发送,仅接收工作模式
- 可配置传输的大小端
- 发送和接收各有一块 128x32 的 FIFO 来缓存数据
- 串行时钟频率最高支持 50MHz
- 可以配置正常传输模式或间隔传输模式
- 在 SPI 协议下传输时,可以动态配置串行时钟的极性和相位
- 有两条从机选择信号,支持最多同时挂载两个从机设备
- 支持背靠背的连续传输模式
- 支持回环测试
结构框图

APB 接口做从机接口使用,主要 CPU 通过 APB 总线传递 SSI 模块的配置信息及待发送,待接收数据。共有两块 128x32 的双端口 FIFO 在 SSI 模块中,一块用作发送数据的 buffer,一块用作接收数据的 buffer。Clk_gen 模块给 Transfer Control 模块生成子时钟。Transfer Control 模块控制 spi 传输时序。
功能介绍
- 串行数据在处理器和外围设备之间通过 SSI 模块中的 FIFO 来实现传递数据。数据可以通过 CPU 和 DMA 两种方式搬运到芯片的存储系统中去,并且通过操作全双工独立的 buffer 和串行数据途径,允许与外部外围设备进行同步传输操作。
- 可编程 IO 直接通过 CPU 和发送/接收 FIFO 间传递数据。同样的 DMA 控制器也可以直接在 FIFO 与系统存储内存之间进行数据的读写操作。
- 待发送的数据经由 CPU 或 DMA 写入到 SSI 的发送 FIFO(T-FIFO)中去。然后 SSI 模块从 T-FIFO 中取数据,将其由并行数据转化为串行数据并定义大小端,传输间隔时间等,最后通过 SSI_DO 数据线发送到片外从机。
- 对于接收数据来说,数据经由 SSI_DI 数据线由片外从机发送到 SSI 模块,经过并转串的转化及大小端变化后会存储在接收 FIFO(R-FIFO)中,当写操作向 T-FIFO 中写入数据时,读操作会自动读取 R-FIFO 中的数据。
- 接收、发送 FIFO 都是 128x32 大小的 FIFO。当 R-FIFO 被接收的数据填充到之前设定好的接收阈值后,SSI 模块会产生一个中断信号发送到中断控制器,此时,如果中断使能有效了,系统会进入中断函数。