概览

设计资源

设计与集成文件

  • Schematic
  • Bill of Materials
  • Layout Files
  • Gerber Files
  • Assembly Drawing
下载设计文件 3.97 M

评估硬件

产品型号带"Z"表示符合RoHS标准。评估此电路需要下列选中的电路板

  • EVAL-CN0564-ARDZ ($80.25) SPI and I2C Bus Extender Arduino Shield
查询库存和在线购买

器件驱动器

软件(如C代码和/或FPGA代码等)用于与元件的数字接口通信。

LTC4332 GitHub No-OS Driver Source Code

优势和特点

  • 将SPI/I2C总线延长至长达1200m
  • 地电位隔离电压高达+/-25V
  • 故障保护监控

电路功能与优势

对于控制器和外设之间的短距离电路板内连接,串行外设接口(SPI)和Inter-Integrated Circuit (I2C)接口是流行的事实上的通信标准。由于存在广泛的硬件和软件支持,SPI和I2C已被传感器、执行器和数据转换器制造商广泛采用。当控制器和外设位于同一电路板上、共享同一接地层且相距不远(不大于1米)时,这些接口的实现相当简单。

但是,状态监控、工厂自动化、楼宇自动化和结构监控等应用要求外设位于远程位置,通常远离控制器。系统设计人员传统上利用中继器或具有更高驱动强度的驱动器来扩展这些接口,其代价是整体成本和功耗增加。

图1所示电路轻而易举地解决了长距离、鲁棒SPI/I2C通信的问题,对电路元件数量、工作速度或软件复杂性则没有任何影响。为了在高噪声、恶劣的工业环境中无错误运行,器件必须能承受较大地电位差。SPI/I2C扩展器具有鲁棒的收发器,可在±25V(SPI通信)和±15V(I2C通信)的扩展共模范围内工作,支持长达1200米的距离。每个链路由位于电缆任一端的单个器件组成,电源电压范围为3V至5.5V,而单独的逻辑电源允许I2C或SPI接口从1.62V至5.5V电源供电。扩展器还提供了用于故障监测的内部控制接口;当长距离监测设备时,这非常重要。

图 1. EVAL-CN0564-ARDZ 简化功能框图

电路描述

I2C 信号标准综述

I2C 是用于双向双线接口的串行协议,可将EEPROM、模数和数模转换器、I/O 接口及其他外设连接到嵌入式处理器。由于简单且可扩展,它在传感器领域非常受欢迎。总线上可以存在多个器件,每个器件都有自己的唯一地址。它只需要 2 条线便可在器件之间传输数据。这 2 条线包括:

  • SCL - 串行时钟信号线
  • SDA - 用于在控制器和外设之间发送和接收数据的串行数据线

SCL和SDA信号是开漏逻辑,I2C总线规范和用户手册 (规范 - I2C总线)中定义了逻辑电平和时序规格

给定I2C总线上可以存在的外设数量受地址空间和最大400 pF的总线总电容限制。开漏逻辑具有相对较高的阻抗和较低的噪声抗扰度,这就要求所有外设以低阻抗连接到公共接地回路,并且在100kHz时,最大总线长度以大约一米为限。CN0564则不同,它具有差分收发器,可将总线长度扩展至1200米,并能承受控制器和外设之间最高±15V的共模压差。

SDA本质上是双向的,在事务处理过程中,控制器与外设之间的数据流向会改变方向。虽然不是很常见,但是I2C支持时钟延展,即外设可以让SCK保持低电平以减慢时钟速率。因此,SCL也是双向的。I2C的双向性质使其不便于利用缓冲器扩展、隔离或转换到其他物理层,这需要多种逻辑电平和其他非标准技术。

常见I2C总线速度为100 kHz标准模式和400 kHz快速模式。 LTC4331 控制器接口支持最高2000 kHz的所有常见I2C时钟速率。然而,在高时钟频率和长电缆的情况下,强烈建议使用完全支持SCL时钟延展的控制器。(更多信息请参阅LTC4331数据手册)

SPI 信号标准综述

串行外设接口(SPI)是一种同步串行通信接口规范,用于短距离通信,主要用在嵌入式系统中。与 I2C不同,SPI 的定义不严格。它支持多种时钟频率、逻辑电平和时序关系,需要仔细检查控制器和外设规格。SPI 是全双工通信(即数据既可从控制器流向外设,同时也可从外设流向控制器)。

SPI物理层由4个信号组成:

  • SCLK - 串行时钟,通常由控制器驱动
  • MISO - 控制器数据输入、外设数据输出
  • MOSI - 控制器数据输出、外设数据输入
  • CS - 片选使能与外设通信。每个外设需要一条 CS线。

SPI 引脚使用推挽逻辑(而不是开漏),控制器和外设之间的逻辑电平必须匹配。每个外设都需要自己的 CS信号,这使 SPI 总线的物理扩展进一步复杂化。

 

图 2. SPI 配置模式

 

时钟和数据之间支持四种不同的时序关系,分别称为模式0、1、2、3,对应于四种可能的时钟配置。每个事务都是在片选线被驱动到逻辑低电平时开始(片选通常是低电平有效信号)。片选、数据和时钟线之间的确切关系取决于时钟极性(CPOL)和时钟相位(CPHA)的配置。这四种模式总结在图2中。

LTC4332最多支持3个远程外设,每个外设都有自己的CS线。每个外设的SPI模式都可以独立设置为模式0、1、2或3。数据从控制器透明地传输到外设,但从外设到控制器的数据会引入一个字的延迟。有关更多信息,请参阅 一字延迟 - SPI读取命令 部分。

系统拓扑

CN0564使用LTC4331和LTC4332来扩展I2C和SPI信号,距离最长可达1200米。每个链路由一对器件组成,控制器侧配置为本地模式(REMOTE引脚接低电平),外设侧器件配置为远程模式(REMOTE引脚接高电平)。

电路描述

LTC4332/LTC4331将来自控制器的SPI/I2C信号编码为差分信号,然后通过双绞线电缆传输。在电缆的远端,差分信号由远程LTC4332/LTC4331接收并解码回SPI/I2C,然后路由到远程外设。正常工作时,远程外设会镜像本地控制器产生的事件。

可选波特率

LTC4332/LTC4331可以使用可选速度索引(如表1和表2所示)改变链路波特率——即数据在本地和远程链路之间传输的速度。此速度索引通过配置链路和接口时序选择引脚SPEED1和SPEED2来设置,这两个引脚均为三态输入。

电缆上的可选波特率支持根据应用要求平衡性能与电缆长度。但是,链路两侧的速度配置必须相同。

表 1. LTC4331 链路速度与电缆长度的关系
速度索引 有效I2C链路速率(kHz) 最大电缆长度(米)
8 1000 30
7 500 60
6 250 200
5 125 600
4 100 1200
3 63 1200+
2 31 1200+
1 20 1200+
0 12.5 1200+

 

表 2. LTC4332 链路速度与电缆长度的关系
速度索引 最大SCLK频率(kHz) 最大电缆长度(米)
8 2000 30
7 1000 60
6 500 150
5 250 250
4 125 500
3 83 750
2 63 1000
1 31 1200
0 25 1200+

 

增加电缆传输长度

LTC4332/LTC4331利用高速差分收发器在最长1200米的链路上通信。I2C/SPI信号转换为差分信号以实现高速高质量信号传输、噪声抗扰度和共模抑制。对于给定的速度设置,必须遵守表1(适用于LTC4331)和表2(适用于LTC4332)中给出的电缆长度规格,否则链路不会工作。表中的值是在实验室环境中使用Cat5E以太网电缆测得。请注意,实际最大电缆长度取决于电缆类型和应用环境。

共模电压和 ESD 鲁棒性

差分收发器工作在±25V(SPI扩展器)和±15V(I2C扩展器)的扩展共模范围内,因此它适合于高噪声环境或存在地电位差的系统(参见图1)。

接口引脚(LTC4331 A和B引脚,LTC4332 A、B、Y和Z引脚)具有故障保护功能,可承受最高±60V的电压。接口引脚还有异常鲁棒的静电放电(ESD)保护特性。在所有工作模式下,或在未供电时,接口引脚能承受相对于GND和VCC(带4.7μF电容接GND)的±40kV HBM ESD(人体模型测试),而不会发生闩锁或损坏。

另外,LTC4331/LTC4332 ESD均通过了国际电工委员会(IEC) ESD和EFT(电气快速瞬态)测试。IEC ESD应力在峰值电流、幅度和上升时间方面均超过了HBM测试,而EFT测试提供了长时间的重复应力。这种保护等级可确保LTC4332/LTC4331在各种实际危险下都能如常运行。

一字延迟 - SPI 读取命令

在 I2C 通信的情况下,LTC4331(本地)- LTC4331(远程)链路是透明的;远程外设显示为本地控制器的本地器件。

但是,对于SPI扩展器解决方案,LTC4332(本地)-LTC4332(远程)在读访问期间会引起一个字的延迟。从SPI控制器发送到外设的数据会经历与控制器启动的接口时钟(SCK)相同的延迟,因此两者在整个数据链路上会保持同步。

在相反方向上,仅当第一时钟沿到达外设时,外设才将MISO数据发送到控制器。此数据在返回控制器的路径上会经历第二次延迟,因此MISO数据会不同步,偏差为电缆传输延迟的两倍。物理上较远的器件将需要大大降低时钟速率以适应每个比特宽度内的传输延迟。为了克服这种限制,LTC4332将移位寄存器引入MISO信号路径,如图3所示。

 

图 3. 将移位寄存器引入 MISO 信号路径以适应传输延迟

 

电路描述

因此,对远程外设的SPI写请求是软件透明的,但对远程外设的SPI读请求会产生一个字的延迟,这意味着读取命令需要扩展一个字。若不如此,则当片选取消置位时,LTC4332 MISO移位寄存器中的最后一个字会丢失。WORD_LENGTH寄存器(参见LTC4332数据手册中的寄存器映射)表示LTC4332上MISO信号路径中的移位寄存器的深度,决定了SPI控制器何时开始在MISO线上接收有效数据。例如,若WORD_LENGTH为8,则在CS置为有效后经过8个时钟周期,用户将开始接收有效MISO数据。

故障监控

LTC4331/LTC4332LINK 引脚表示通信链路的状态, 驱动到低电平时表示远程I2C/SPI总线已加入本地I2C/SPI总线。

LTC4331/LTC4332支持中断信号,LTC4331上为ALERT 引脚,LTC4332上为INT 引脚。这些信号从远程总线镜像到本地总线。在远程端,中断引脚是输入,可以连接到相连I2C/SPI外设的中断输出。在本地端,ALERT/INT 用作开漏输出,可以连接到共享本地中断线。如果使能,本地LTC4331/LTC4332的控制接口将使用ALERT/INT 引脚报告链路和故障事件。本地侧ALERT/INT输出是远程ALERT/INT与内部端点中断信号的逻辑"与"结果。

本地侧LTC4331/LTC4332还可以通过让ON引脚保持低电平至少180ms来触发远程侧复位。如果链路断开,远程LTC4331/LTC4332会在180ms后自动复位。远程复位会禁用所有远程侧输出,直到重新建立链路通信。

 

图 4. 读/写故障监控寄存器的控制接口时序图

 

LTC4331/LTC4332 控制接口

要配置LTC4331/LTC4332链路本地侧的控制接口,可使用单独的内部可寻址外设。通过配置引脚A1和A2,可为本地LTC4331的内部接口分配一个唯一的I2C地址。LTC4332则提供了单独的片选引脚SSC,允许用户与内部SPI可寻址寄存器通信。

图 5. LTC4332(左侧)和LTC4331(右侧)的内部框图

 

LTC4331/LTC4332控制接口支持读取速度配置、链路状态和中断/警报状态,以及访问其他I2C/SPI特定选项。LTC4331可以配置为将I2C地址转换为远程外设,从而扩展I2C地址空间并防止地址冲突。LTC4332允许每个CS引脚使用独立的SPI模式配置,以及配置字长(用于确定所接收的数据延迟)。有关更多信息,请参阅LTC4331和LTC4332数据手册。

PCB 尺寸

PCB设计中的元件密度增加会导致复杂的问题。为了编码SPI或I2C,通常需要额外的微控制器,这会增加解决方案成本和尺寸,但使用CN0564的话,远程侧无需额外的微控制器。这样可实现更小的传感器解决方案,其占用的PCB面积更小,从而降低制造总成本,并为其他元件留下更多空间以提供更多特性。

 

图 6. LTC4331(I2C 扩展器)和 LTC4332(SPI 扩展器)的本地 EVAL-CN0564-ARDZ 节点和远程节点

 

扩展传感器接口功能

更长传输距离的传感器接口传统上使用模拟信号技术,例如0-10V或4-20 mA。例如,在状态监控应用中,集成电子压电(IEPE)传感器接口是振动传感器最常用的信号标准。它为振动传感器提供恒定电流源,传感器输出电压通过相同线路读回。当传输交流信号内容时,这种双线系统可以简化系统设计,但不提供额外的故障监控或配置能力。

LTC4332/LTC4331则支持灵活的配置和处理,发生故障事件时可直接在数字输出传感器上轻松调试。

常见变化

当本地和远程地电位之差超过容许的 ±25V (LTC4332)或±15V (LTC4331)时,需要使用电气隔离。使用 ADUM141E 或 ADUM140E 之类的数字隔离器,可以将I2C/SPI信号与EVAL-CN0564-ARDZ上的本地LTC4331/ LTC4332进行电气隔离,如图7所示。 ADUM5020  可为本地 LTC4331/LTC4332 提供高达100mA的隔离电源。

图 7. 包含对数据和电源信号进行电气隔离的框图

电路评估与测试

以下部分介绍CN0564如何设置和测试。EVALCN0564-ARDZ可以与Arduino或Arduino兼容设备配合使用,以利用EVAL-ADXL357Z读取加速度数据,从而轻松评估SPI (LTC4332)和I2C (LTC4331)扩展器。以下部分侧重于在EVAL-CN0564-ARDZ上设置SPI扩展器(本地和远程LTC4332)。

有关完整的设置详情,以及SPI和I2C扩展器(本地和远程LTC4331/LTC4332)上的设置说明,请访问 EVAL-CN0564-ARDZ用户指南

 

设备要求

  • 带 USB 端口的 PC
  • EVAL-CN0564-ARDZ 评估板
  • EVAL-ADXL357 评估板
  • EVAL-XLMOUNT1
  • Arduino UNO Rev 3
  • USB A 型转 USB B 型电缆
  • 跳线
  • 5V/3.3V 电源

 

开始使用

  1. 下载为评估 EVAL-CN0564-ARDZ 评估板上的 SPI 或 I2C 扩展器而提供的 Arduino 草图,并使用它对 Arduino 进行编程。
  2. 将 EVAL-CN0564-ARDZ 板插入 Arduino Uno Rev 3
  3. 将 EVAL-CN0564-ARDZ 上的 LTC4332(远程侧)连接到 EVAL-ADXL357
  4. 使用双绞线中的跳线将 LTC4332(本地侧)连接到 LTC4332(远程侧)
  5. 跳线连接如下:
    1. 正确放置 P10 跳线,使得 P10 上的引脚 2 和 3 在 EVAL-CN0564-ARDZ 上相连。这将选择 5V 电源选项。
    2. JP1 跳线应放置到位置 D,以将本地 LTC4332 上的从器件/片选引脚连接到 Arduino UNO Rev 3 上的 D10 引脚。
    3. JP5 跳线应放置到位置 A,以将本地 LTC4332 上的 LINK 引脚连接到 Arduino UNO Rev 3 上的 D6 引脚。
    4. JP3 跳线应放置到位置 B,以将本地 LTC4332 上的中断引脚连接到 Arduino UNO Rev 3 上的 D2 引脚。
    5. 默认情况下,远程 LTC4332 选择速度索引 8。本地侧的速度索引应与远程侧相同。
    6. 应将 P1 跳线放置到位,使得其引脚 2 和 3 相连。同样,还应将 P2 跳线放置到位,使得其引脚 2 和 3 相连。这将选择速度索引 8 以匹配本地侧的速度索引。
    7. 正确放置 P19 跳线,使得其引脚 1 和 2 相连。这会将本地 LTC4332 上的 ON 引脚连接到 IOREF。这将使能输入。

 

图 8. 本地和远程 LTC4332 上的跳线配置

 

系统测试

将EVAL-ADXL357Z和远程LTC4332安装在EVALXLMOUNT1上,然后接通为电路板供电的电源。现在应能够在EVAL-CN0564-ARDZ板上看到3个LED闪烁(本地2个LED,远程侧1个LED)。完整系统框图参见图9。

MEMS加速度计(远程侧EVAL-ADXL357Z上)读取的X、Y和Z数据将显示在Arduino串行监视器上。退出Arduino串行监视器并运行 Python Real Time ADXL357 Data Plotter可执行文件 ,查看加速度数据的实时图,如图10所示的图形。

X、Y和Z加速度(g)数据由python脚本存储在三个单独的文件中,可以在包含可执行文件的位置中找到。

 

 

图 9. 采用 ADXL357 和 Arduino UNO Rev 3 的 EVAL-CN0564-ARDZ 系统测试设置

 

图 10. 加速度数据的实时图

 

也可以获得图11所示的FFT分析,以使用所获得的X、Y和Z数据识别目标频率。FFT分析常用于监视旋转部件的健康状况。预测性维护(PdM)是智能行业的关键组成部分,其涉及在运行期间监控设备以检测潜在故障的预警迹象。有关如何分析状态监控(CbM)系统中的振动数据的更多信息,请参阅此 文章

图 11. Z 轴加速度数据的 FFT 分析