ZHCAFO7 August   2025 TXE8116 , TXE8116-Q1 , TXE8124-Q1

 

  1.   1
  2.   应用简报
  3.   商标

应用简报

串行外设接口 (SPI) 总线是一种广泛使用的同步通信协议、可在控制器器件与一个或多个外设之间实现高速、全双工数据传输。SPI 由 Motorola 于 20 世纪 80 年代开发、现已成为嵌入式系统中外设连接的标准接口。由于其简单性、多功能性和高效性,SPI 已成为工程师设计可靠、高速通信系统时的重要工具。图 1 展示了总线上 SPI 连接的典型示意图。

 SPI 总线示例图 1 SPI 总线示例

SPI 通信通过共享时钟信号实现同步,从而确保数据传输时序的精确性。与集成电路总线 (I2C) 等其他串行协议不同,串行外设接口 (SPI) 没有规定标准的通信格式,因此开发者可根据具体应用需求灵活定制协议参数。表 1 展示了 SPI、I2C 与通用异步收发传输器 (UART) 之间的差异。

表 1 与其他协议的比较
功能 SPI I2C UART
通信类型 同步 同步 异步
数据传输模式 全双工 半双工 全双工
时钟信号
寻址 片选 (CS) 线 寻址协议 不适用
速度

SPI 基础知识

SPI 支持全双工通信、这意味着可以同时发送和接收数据。SPI 支持全双工通信,这意味着可以同时发送和接收数据。协议采用一组基本信号来建立通信连接,而这些信号可能因 SPI 配置的不同有所变化。

表 2 SPI 总线信号
信号名称 用途
PICO(控制器 SDO、外设 SDI) 将数据从控制器发送到外设
POCI(控制器 SDI、外设 SDO) 将数据从外设发送到控制器
SCLK(串行时钟) 由控制器生成,用于同步数据传输
CS(片选) 一种由控制器用于选择并启用特定外设设备的低电平有效信号

SPI 总线架构

SPI 总线的架构较为简单,由一个控制器和一个或多个外设组成。控制器负责发起通信、控制时钟以及选择与之通信的外设。该架构支持三种主要配置:

  • 单控制器、单外设:
    • 最简单的设置、其中控制器仅与一个外设通信。
    • 需要四条线路(PICO、POCI、SCLK 和 CS)。
  • 单控制器、多外设(独立片选):
    • 每个外设都有一条专用的片选 (CS) 线。
    • 控制器激活目标外设的 CS 线,而其他外设的 CS 线保持未激活状态。
  • 菊花链配置:
    • 外设串联,一个器件的输出馈入为下一个器件的输入。
    • 可减少 CS 线路数量,整个链路仅需一条 CS 线。
    • 在每个时钟周期内,数据通过链中的所有器件移位。
  • 3 线 SPI 配置:
    • 将 PICO 和 POCI 线路合并为一条双向数据线路,通常称为数据输入/输出 (DIO)
    • 该配置将所需线缆减少至三条:SCLK、CS 和 DIO。

数据传输模式

SPI 支持四种工作模式,具体由时钟极性 (CPOL) 和时钟相位 (CPHA) 决定。表 3 所示的这些模式定义了时钟信号的特性以及数据采样的时序。

表 3 SPI 数据传输模式
模式 CPOL CPHA 说明
模式 0 0 0 数据会在时钟的上升沿进行采样,且时钟空闲时为低电平。
模式 1 0 1 数据会在时钟的下降沿进行采样,且时钟空闲时为低电平。
模式 2 1 0 数据会在时钟的下降沿进行采样,且时钟空闲时为高电平。
模式 3 1 1 数据会在时钟的上升沿进行采样,且时钟空闲时为高电平。

SPI 数据传输

由于 SPI 是一种同步全双工通信协议,能够实现控制器与一个或多个外设之间的数据交换。TI 的 TXE8116/24 器件采用固定的 24 位 SPI 事务格式,按高位优先 (MSB first) 的方式传输,且工作于 SPI 模式 0(时钟极性 CPOL=0,时钟相位 CPHA=0)。该器件支持全双工操作,可同时交换输入的命令帧与输出的数据或状态帧。每次 SPI 事务必须以 CS 信号拉低开始,并在整个 24 位序列期间保持低电平。图 2 展示了 TXE8116/24 器件中的 SPI 数据帧。

 TXE8116/24 SPI 数据帧图 2 TXE8116/24 SPI 数据帧

写入外设

要向寄存器写入数据,控制器需传输一个 24 位字,且 MSB(第 23 位)需设为 0。寄存器地址编码在第 [22:16] 位中,第 [15:8] 位用于选择目标 GPIO 端口或配置多端口模式。最后 8 位 [7:0] 则携带实际要写入的数据。

  • 示例:将端口 0 配置为输出
    • 寄存器地址:0x04(方向寄存器)
    • 端口选择:0x00(端口 0)
    • Data: 0xFF(所有引脚均设为输出模式)
  • PICO:
    • 第 [23] 位(读写位,R/W)= 0(写入)
    • 第 [22:16] 位(地址位)= 0x04
    • 第 [15:8] 位(端口位)= 0x00
    • 第 [7:0] 位(数据位)= 0xFF
  • 最终帧 = 0x0400FF
  • POCI 响应:
    • 第 [23:22] 位 = 0x3(表示其为状态段)
    • 第 [21:16] 位:故障状态寄存器
    • 第 [15:8] 位:全为 0
    • 第 [7:0] 位:先前的寄存器数据

从外设读取数据

要从寄存器读取数据,主机需将第 23 位设为 1 并传输目标寄存器地址。低 16 位可填充虚拟数据。在同一传输过程中,TXE8124 会通过 POCI 线返回所寻址寄存器的当前值。

  • 示例:从端口1读取 GPIO 输入状态
    • 寄存器地址:0x02(输入端口寄存器)
    • 端口选择:0x01(端口 1)
    • Data: 0x00(虚拟数据)
  • PICO:
    • 第 [23] 位(读写位,R/W)= 1(读取)
    • 第 [22:16] 位(地址位)= 0x02
    • 第 [15:8] 位(端口位)= 0x01
    • 第 [7:0] 位(虚拟数据位)= 0x00
  • 最终帧 = 0x820100
  • POCI 响应:
    • 第 [23:22] 位 = 0x3(表示其为状态段)
    • 第 [21:16] 位:故障状态寄存器
    • 第 [15:8] 位:全为 0
    • 第 [7:0] 位:读取数据

TXE8116/24 的关键时序要求

参数 说明 典型值
tSCLK SPI 时钟周期 (3.3V < VCC < 5.5V) 100ns (10MHz)
tCSS/tCSH CS 设置保持时间 ≥50ns
tV(SDO) POCI 在 SCLK 边沿之后有效 ≤27ns
tDIS(SDO) CS 置为无效后,POCI 线呈高阻态 ≤50ns

所有 SPI 事务都必须满足《具有中断输出、复位输入和 I/O 配置寄存器的 TXE81xx-Q1 汽车级 24 位 SPI 总线 I/O 扩展器数据手册》中规定的最低时序约束,以确保通信正常。

注释

  • 所有事务均为全双工模式;每个 SPI 时钟周期内,PICO 和 POCI 线上各传输 1 位数据。
  • 数据会在 SCLK 的上升沿进行采集,并在下降沿被驱动输出。
  • 始终确保在 24 位帧传输期间 CS 信号保持低电平;在帧传输过程中切换 CS 信号可能会导致事务出错。
  • 可通过 [15:8] 位中的特定端口位实现多端口寻址。