ZHCU481E october   2022  – july 2023

 

  1.   1
  2.   说明
  3.   资源
  4.   特性
  5.   应用
  6.   6
  7. 1系统说明
    1. 1.1 关键系统规格
  8. 2系统概述
    1. 2.1 方框图
    2. 2.2 重点产品
      1. 2.2.1 C2000 实时 MCU LaunchPad
      2. 2.2.2 SN65HVD78
      3. 2.2.3 TLV702
      4. 2.2.4 TPS22918-Q1
    3. 2.3 设计注意事项
      1. 2.3.1 Tamagawa T-Format 协议
      2. 2.3.2 C2000 T-Format 编码器接口概述
      3. 2.3.3 TIDM-1011 板实现
      4. 2.3.4 MCU 资源要求
      5. 2.3.5 特定于器件的资源使用情况
        1. 2.3.5.1 CRC 计算
        2. 2.3.5.2 输入、输出信号和 CLB 逻辑块
      6. 2.3.6 CLB T-Format 实现详细信息
        1. 2.3.6.1 事务波形
          1. 2.3.6.1.1 IDLE 状态
          2. 2.3.6.1.2 TRANSMIT_DATA 状态
          3. 2.3.6.1.3 WAIT_FOR_START 状态
          4. 2.3.6.1.4 RECEIVE_DATA 状态
        2. 2.3.6.2 通信逻辑块设计
        3. 2.3.6.3 逻辑视图
      7. 2.3.7 CLB 接收数据 CRC 实现
      8. 2.3.8 PM T-Format 编码器接口库
        1. 2.3.8.1 PM T-Format 参考设计命令
        2. 2.3.8.2 PM T-Format 参考设计中支持的函数
  9. 3硬件、软件、测试要求和测试结果
    1. 3.1 硬件
      1. 3.1.1 TIDM-1011 跳线配置
    2. 3.2 软件
      1. 3.2.1 C2000 驱动程序库 (DriverLib)
      2. 3.2.2 C2000 SysConfig
      3. 3.2.3 C2000 可配置逻辑块工具
      4. 3.2.4 安装 Code Composer Studio™ 和 C2000WARE-MOTORCONTROL-SDK
      5. 3.2.5 查找参考软件
    3. 3.3 测试和结果
      1. 3.3.1 硬件配置
      2. 3.3.2 构建和加载项目
      3. 3.3.3 运行代码
      4. 3.3.4 电缆长度验证
      5. 3.3.5 基准测试
      6. 3.3.6 疑难解答
  10. 4设计文件
  11. 5相关文档
    1. 5.1 商标
  12. 6术语
  13. 7关于作者
  14. 8修订历史记录

通信逻辑块设计

GUID-20221011-SS0I-7Z1W-5T8G-JHP1TNZXMNTB-low.svg图 2-13 T-Format 通信逻辑块

图 2-13 展示了通信逻辑块设计。本节深入讨论了该设计的三个关键组成部分:

  1. FRAME_STATE 生成 (FSM_1)
  2. ENCODER_RESPONSE 检测 (LUT_1)
  3. SPI CLK 对齐 (LUT_0)
注:图 2-13 中,彩色圆圈中的字母表示输入/输出图(节 2.3.5.2)中所述的端口连接。

通过在 CLB 工具中查看逻辑块的配置,可以找到其他子模块的公式。节 2.3.6.3 以原理图的形式包含每个模块的更多信息。

FRAME_STATE (FSM_1 s1, s0) 转换如图 2-13 中所示。为了推导相应的公式,这里使用了卡诺图(表 2-13表 2-14)。生成的公式由 OR 运算符连接,并输入到 CLB 工具中。这些公式不需要简化为最简单的形式。

表 2-13 FRAME_STATE FSM_1 卡诺图,状态 s0
当前输入
(e1, e0)
CLOCK_COMPLETE, TX_OR_RX
0,0 0,1 1,1 1,0
上一状态
s1, s0
0,0
IDLE
0
IDLE
1(1)
TX
1(1)
TX
0
IDLE
0,1
TX
1(2)
TX
1(2)
TX
0
WAIT
0
WAIT
1,1
RX
1(3)
RX
1(3)
RX
0
IDLE
0
IDLE
1,0
WAIT
0
WAIT
1(4)
RX
1(4)
RX
0
WAIT
s0 = (!s1 & !s0 & e0)
s0 = (!s1 & s0 & !e1)
s0 = (s1 & s0 & !e1)
s0 = (s1 & !s0 & e0)
表 2-14 FRAME_STATE FSM_1 卡诺图,状态 s1
当前输入
(e1, e0)
CLOCK_COMPLETE, TX_OR_RX
0,0 0,1 1,1 1,0
上一状态
s1, s0
0,0
IDLE
0
IDLE
0
TX
0
TX
0
IDLE
0,1
TX
0
TX
0
TX
1(1)
WAIT
1(1)
WAIT
1,1
RX
1(2)
RX
1(2)
RX
0
IDLE
0
IDLE
1,0
WAIT
1(3)
WAIT
1(3)
RX
1(3)
RX
1(3)
WAIT
s1 = (!s1 & s0 & e1)
s1 = (s1 & s0 & !e1)
s1 = (s1 & !s0)

来自 FSM_1 的 OUT 信号只是当前状态的或运算:s1 | s2。这对应于帧的任何活动部分(非 IDLE)。

检测编码器的响应是该设计的另一个关键组成部分。LUT_1 负责检测事务的开始和编码器响应的开始。为了简化设计,我们做出了以下假设:

  • ENCODER_RESPONSE 下降沿永远不会与 START_OPERATION 上升沿同时发生。
  • START_OPERATION 的上升沿仅在 IDLE 状态期间发生。

鉴于编码器仅响应从 C28x 发起的传输并且 C28x 控制 START_OPERATION,这些假设是合理的。这些假设会得到以下公式:out = (i3 & i2) & i1 | i0:

  • 如果 FRAME_STATE == WAIT_FOR_START (i3 & i2) 和 ENCODER_RESPONSE 下降沿 (i1),则输出会变为高电平。
  • 如果 START_OPERATION 上升沿 (i0),则输出会变为高电平
  • 否则,输出为低电平。

由于电缆延迟,编码器的响应可能随时出现。要正确读取响应,必须正确对齐 CLB_SPI_CLK。LUT_0 负责时钟对齐和时钟宽度。LUT_0 会在适当的时候复位 COUNTER_0 来实现对齐和时钟宽度。COUNTER_0 匹配值控制 CLB_SPI_CLOCK 边沿时序。

  • 时钟宽度:当 CLOCK_WIDTH_REACHED (i3) 为高电平时,复位 COUNTER_0。
  • 对齐时钟:如果 FRAME_STATE 为 WAIT_FOR_START (i2 & !i1) 或 RECEIVE_DATA (i2 & i1),则会在 ENCODER_RESPONSE 的任意边沿 (i0) 上复位 COUNTER_0。

这样会等到以下公式:LUT_0 out = i3 | ( ( ( i2 & !i1) | (i2 & i1) ) & i0 )。

通过在 CLB 工具中查看逻辑块的配置,可以检查其他子模块的公式。节 2.3.6.3 以原理图的形式包含每个模块的更多信息。