ZHCAFO7 August 2025 TXE8116 , TXE8116-Q1 , TXE8124-Q1
串行外设接口 (SPI) 总线是一种广泛使用的同步通信协议、可在控制器器件与一个或多个外设之间实现高速、全双工数据传输。SPI 由 Motorola 于 20 世纪 80 年代开发、现已成为嵌入式系统中外设连接的标准接口。由于其简单性、多功能性和高效性,SPI 已成为工程师设计可靠、高速通信系统时的重要工具。图 1 展示了总线上 SPI 连接的典型示意图。
SPI 通信通过共享时钟信号实现同步,从而确保数据传输时序的精确性。与集成电路总线 (I2C) 等其他串行协议不同,串行外设接口 (SPI) 没有规定标准的通信格式,因此开发者可根据具体应用需求灵活定制协议参数。表 1 展示了 SPI、I2C 与通用异步收发传输器 (UART) 之间的差异。
| 功能 | SPI | I2C | UART |
|---|---|---|---|
| 通信类型 | 同步 | 同步 | 异步 |
| 数据传输模式 | 全双工 | 半双工 | 全双工 |
| 时钟信号 | 是 | 是 | 否 |
| 寻址 | 片选 (CS) 线 | 寻址协议 | 不适用 |
| 速度 | 高 | 中 | 低 |
SPI 支持全双工通信、这意味着可以同时发送和接收数据。SPI 支持全双工通信,这意味着可以同时发送和接收数据。协议采用一组基本信号来建立通信连接,而这些信号可能因 SPI 配置的不同有所变化。
| 信号名称 | 用途 |
|---|---|
| PICO(控制器 SDO、外设 SDI) | 将数据从控制器发送到外设 |
| POCI(控制器 SDI、外设 SDO) | 将数据从外设发送到控制器 |
| SCLK(串行时钟) | 由控制器生成,用于同步数据传输 |
| CS(片选) | 一种由控制器用于选择并启用特定外设设备的低电平有效信号 |
SPI 总线的架构较为简单,由一个控制器和一个或多个外设组成。控制器负责发起通信、控制时钟以及选择与之通信的外设。该架构支持三种主要配置:
SPI 支持四种工作模式,具体由时钟极性 (CPOL) 和时钟相位 (CPHA) 决定。表 3 所示的这些模式定义了时钟信号的特性以及数据采样的时序。
| 模式 | CPOL | CPHA | 说明 |
|---|---|---|---|
| 模式 0 | 0 | 0 | 数据会在时钟的上升沿进行采样,且时钟空闲时为低电平。 |
| 模式 1 | 0 | 1 | 数据会在时钟的下降沿进行采样,且时钟空闲时为低电平。 |
| 模式 2 | 1 | 0 | 数据会在时钟的下降沿进行采样,且时钟空闲时为高电平。 |
| 模式 3 | 1 | 1 | 数据会在时钟的上升沿进行采样,且时钟空闲时为高电平。 |
由于 SPI 是一种同步全双工通信协议,能够实现控制器与一个或多个外设之间的数据交换。TI 的 TXE8116/24 器件采用固定的 24 位 SPI 事务格式,按高位优先 (MSB first) 的方式传输,且工作于 SPI 模式 0(时钟极性 CPOL=0,时钟相位 CPHA=0)。该器件支持全双工操作,可同时交换输入的命令帧与输出的数据或状态帧。每次 SPI 事务必须以 CS 信号拉低开始,并在整个 24 位序列期间保持低电平。图 2 展示了 TXE8116/24 器件中的 SPI 数据帧。
要向寄存器写入数据,控制器需传输一个 24 位字,且 MSB(第 23 位)需设为 0。寄存器地址编码在第 [22:16] 位中,第 [15:8] 位用于选择目标 GPIO 端口或配置多端口模式。最后 8 位 [7:0] 则携带实际要写入的数据。
要从寄存器读取数据,主机需将第 23 位设为 1 并传输目标寄存器地址。低 16 位可填充虚拟数据。在同一传输过程中,TXE8124 会通过 POCI 线返回所寻址寄存器的当前值。
| 参数 | 说明 | 典型值 |
|---|---|---|
| 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 扩展器数据手册》中规定的最低时序约束,以确保通信正常。