主要内容

本页采用了机器翻译。点击此处可查看英文原文。

读取 BiSS-C 绝对编码器的位置

本示例展示了如何使用双向串行/同步连续 (BiSS-C) 打开协议在单向模式下读取绝对编码器的位置。本示例使用 C2000™ Microcontroller Blockset,利用 TI C2000 外设(如 CLB、SPI、ePWM、X-BAR 和 GPIO)实现 BiSS-C 协议。

使用此示例,您可以:

  • 配置 CLB、SPI、ePWM、X-BAR 和 GPIO 等外围模块,以设计和实现 BiSS-C 协议。

  • 生成控制器代码并将其加载到硬件板上。

  • 执行监控和调谐操作,以监控主机上的位置信号。

BiSS-C 接口

BiSS-C 模式(单向)是一种快速同步串行接口,用于从编码器获取位置数据。控制器控制位置获取时间和数据传输速度,编码器将位置数据传输给控制器。

该接口由两对单向差分线路组成:

  • 控制器时钟信号(图中表示为 MA)将位置获取请求和时间信息(时钟)从控制器传输到编码器。

  • 编码器数据输出(图中表示为 SLO)将位置数据从编码器传输到控制器,并与 MA 同步。

此图显示了 BiSS-C 协议的数据格式。

简介

BiSS 协议通过 TI BOOSTXL-POSMGR 位置管理器增强包在 TI C2000 F280049C MCU 上实现,用于连接 LinAce 的线性轴绝对编码器。BiSS-C 接口的通信主要通过 CPU (C28x)、可配置逻辑块 (CLB)、串行外设接口 (SPI) 和设备互连 (X-BAR) 来实现。

  • CLB 配置为生成 BiSS-C 协议时钟信号(BiSSC_CLK 和 SPICLK)。

  • BiSS-C 协议时钟信号通过 ePWM 通道(GPIO0 和 1)发送。

  • SPI 执行编码器数据接收功能。

  • 输入 X-BAR 配置为使 CLB 能够监视 SPISIMO 信号以检测启动脉冲,并相应地调整接收时钟 (SPICLK) 的相位。

实现

本工作流程描述了针对 TI F280049C Launchpad 的 BiSS-C 实现。

  • CPU 根据 LinAce 编码器的数据包格式,为当前的 BiSS-C 命令设置 CLB,如下所示:

  • 在模型的每个步骤时间,CPU 都会设置 CLB 操作以生成 BiSS-C 命令来读取编码器位置。

  • CLB TILE3 在 CLB 模块内生成 2MHz 参考时钟,并生成时钟脉冲数(BiSS_CLK-49 个脉冲和 SPICLK-36 个脉冲),包括这两个时钟的边沿位置,该位置由 CLB TILE1 以该速率精确控制。

  • 从编码器接收到数据包后,会产生一个 SPI 中断。然后 CPU 从 SPI 接收 FIFO 读取并解码编码器位置。

必需的硬件

可用模型

您可以使用 f280049C_BiSSC_Protocol.slx 生成代码并将其加载到 F280049C LaunchPad 上。

硬件连接

模型

打开 f280049C_BiSSC_Protocol.slx 模型。

本示例演示如何从 MCU(控制器)生成 BiSS-C 命令,以从编码器读取位置值。

任务 1 - 使用 BiSS-C 绝对式编码器模型配置和运行位置读取

1.打开 f280049C_BiSSC_Protocol.slx 模型。该模型专为 TI Piccolo F280049C LaunchPad 硬件配置。

2.要在其他 TI C2000 处理器上运行该模型,首先按 Ctrl+E 打开配置参数对话框。然后,通过导航到硬件实现 > 硬件板选择所需的硬件板。

注意:确保 BOOSTXL-POSMGR 通过正确的引脚映射连接到选定的硬件板。

3.按照任务 2 中所示,对模型中的外围设备进行配置。如果想在其他硬件板上运行此示例,可以使用相同的参数值。

任务 2 - 外围设备配置

设置此模型的外围模块配置。双击模块即可打开模块参数配置。如果想在其他硬件板上运行此示例,可以使用相同的参数值。

CLB Tile、CLB X-BAR、Input X-bar、ePWM 配置为生成 BiSS ClockSPI clock

  • CLB

对于 CLB Tile 1:

  • 配置 Tile 边界 IN0 的 GPREG 以控制时钟生成序列。

  • 在 TILE1 上生成的 BISSC_CLK 和 SPICLK 时钟输出被路由到 ePWM1A 和 ePWM1B 输出引脚。其余的瓦片边界配置将在后续章节中进行解释。

对于 CLB Tile 3:

  • TILE3 边界 IN0 的 GPREG 设置

  • TILE3 OUT4 被路由到全局多路复用器,然后在 CLB X-BAR 中配置为供 TILE1 使用。

CLB 配置文件,即由 CCS CLB 配置工具生成的头文件和源文件,被导入到 Simulink 模型中。有关如何配置头文件和源文件的详细信息,请参阅用于时钟生成的 CLB 逻辑

  • CLB X-BAR

  • AUXSIG0 Mux 选择配置为将 INPUTXBAR1 即 BISSC_DIN 线连接到 TILE1 BOUNDARY IN1 的输入。

  • AUXSIG3 多路复用器选择配置为将 CLB3_OUT4(TILE1 的 2MHz 时钟源)连接到 TILE1_BOUNDARY 的输入端 in2、in3、in4 和 in5。

  • 输入 X-BAR

  • 在 INPUT X-BAR INPUT1 中配置了通过 GPIO24(BISSC_DIN) 线生成编码器响应的 SPIB_SIMO。

  • 此设置允许 TILE1_FSM_1 在 TILE1 内部读取编码器启动脉冲,然后由 TILE1_FSM_2 触发 TILE1_COUNTER_2 生成 SPICLK 时钟周期以读取数据包。

  • ePWM 模块

  • 配置 ePWM 单次触发选项,将输出 GPIO0 (ePWM1A) 和 GPIO1 (ePWM1B) 驱动到高电平状态,即输出的空闲状态。

  • GPIO 模块

接通编码器电源。将 GPIO28 输出引脚配置为高电平以驱动编码器。

  • SPI 模块

配置 SPI 模块以读取编码器位置。

注意:对于 SPI 配置,BOOSTXL-POSMGR 上的 STE 引脚接地。因此,该引脚未从 MCU 初始化。

任务 3 - 时钟生成的 CLB 逻辑

在本任务中,您将学习如何:

任务 4 - 监测信号并调整模型

当您对模型执行监控并调节操作时,主机将与运行生成的可执行文件的目标进行通信。

注意:以下监控和调整步骤使用 TI F2806x 硬件进行演示。要在 TI F280049C LaunchPad 上执行监控和调谐,请按照下面所示的相同配置进行操作。

前提条件

在执行监控和调谐之前,请执行以下 SCI 配置和拨码开关配置。

SCI 配置

由于 GPIO28 用于为编码器供电,因此请使用 GPIO 35GPIO37 为 UART 运行外部模式。

拨码开关配置

将拨码开关配置为以下值:

1.拨码开关 S3、S4、S8:GPIO35 和 GPIO37 连接到虚拟 COM 端口,用于外部模式操作。

2.拨码开关 S6:将 GPIO28-29 连接到 BoosterPack 接头。GPIO28 现在可为编码器供电。

1.打开 Hardware 选项卡,然后点击 Monitor & Tune。您可以从诊断查看器中观察到,代码是为模型生成的,并且主机在加载生成的可执行文件后连接到目标。

监控信号

模型运行时,您可以在 Display 模块上监视以下信号。您可以在 Display 模块中监控绝对编码器的位置计数。

其他可尝试的操作

  • 尝试在 F28379D 目标上运行示例并分析结果。

  • BOOSTXL-POSMGR 支持连接最多 2 个编码器。第二个编码器也可以采用类似的方式连接。

  • 对位置数据执行循环冗余校验 (CRC)。

更多信息