ZHCAB74D September   2018  – March 2022 AFE030 , AFE031 , TMS320F28075 , TMS320F28075-Q1 , TMS320F28076 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S

 

  1.   商标
  2. FSK 概述
  3. 硬件预览
    1. 2.1 方框图
    2. 2.2 硬件设置
  4. 连接 AFE03x
    1. 3.1 配置 AFE031
  5. 发送路径
    1. 4.1 FSK 示例规格
    2. 4.2 PWM 模式
      1. 4.2.1 软件实现
      2. 4.2.2 测试结果
      3. 4.2.3 HRPWM 与 EPWM
    3. 4.3 DAC 模式
      1. 4.3.1 软件实现
      2. 4.3.2 测试结果
      3. 4.3.3 OFDM 功能
    4. 4.4 将 TX 移植到 LAUNCHXL-F280049C
      1. 4.4.1 特定于 PWM 模式的移植
      2. 4.4.2 特定于 DAC 模式的移植
  6. 接收路径
    1. 5.1 接收路径概述
    2. 5.2 接收器软件实现
      1. 5.2.1 初始设置和参数
      2. 5.2.2 中断服务例程
      3. 5.2.3 运行时工作
      4. 5.2.4 测试结果
      5. 5.2.5 系统利用率
      6. 5.2.6 器件相关性和移植
    3. 5.3 调优和校准
      1. 5.3.1 设置 AFE03X 的 PGA
      2. 5.3.2 自动增益控制 (AGC)
      3. 5.3.3 设置位检测阈值
      4. 5.3.4 FSK 相关性检测器库
    4. 5.4 将 RX 移植到 LAUNCHXL-F280049C
  7. 连接电源线
    1. 6.1 线路耦合
    2. 6.2 耦合到交流线路
      1. 6.2.1 低压电容器
      2. 6.2.2 变压器的匝数比
      3. 6.2.3 高压电容器
      4. 6.2.4 高压侧电感器
    3. 6.3 耦合到直流线路
    4. 6.4 保护电路
      1. 6.4.1 金属氧化物压敏电阻
      2. 6.4.2 瞬态电压抑制器
      3. 6.4.3 导流二极管
    5. 6.5 确定 PA 电源要求
  8. 总结
  9. 参考文献
  10. 原理图
    1. 9.1 原理图(PWM 模式)
    2. 9.2 原理图(DAC 模式)
  11. 10修订历史记录

初始设置和参数

接收到的 FSK 信号遵循一组必须在软件内设计的通信参数。

GUID-54F9F16F-2C7D-4916-B9BD-79BC06296509-low.jpg图 5-4 接收的 FSK 信号

图 5-4 说明了相关的通信参数。标记的参数具有以下含义:

  • Tbit:位周期
  • Fbit:位频率
  • Fmark:标记频率
  • Fspace:空间频率
  • TS:采样周期
  • FS:采样频率

对于示例程序,默认遵循的通信参数如表 4-1 所示。创建一个 FSK_CORR_DETECTOR 结构(在 fsk_corr_detector.h 中声明),以保存实现准确接收所需的参数。

   volatile FSK_CORR_DETECTOR FSK_struct1; // FSK structure

示例软件和 fsk_corr_detect 库用于检测一组用户指定的频率、一个标记频率和一个空间频率。这些频率必须处于 AFE031 的 CENELEC A 或 CENELEC B、C、D 配置的频带范围之内。示例程序使用 131.25kHz 的标记频率和 143.75kHz 的空间频率,旨在与 CENELEC B、C、D 配置一同使用。使用这些频率来设置 FSK_CORR_DETECTOR 结构的 mark_freqspace_freq 成员。

   FSK_struct1.mark_freq = 131250;    // Mark Frequency Detected
   FSK_struct1.space_freq = 143750;   // Space Frequency Detected

C2000 的 ADC 用于对 FSK 输入信号进行采样。采样频率 FS 必须遵循奈奎斯特定理,即输入信号的采样率必须至少是试图检测到的最高信号频率的 2 倍。也就是说,如果要检测的最高信号频率为 100kHz,则 FS 必须至少为 200kHz。在示例程序中,要检测的最高频率是 143.75kHz 的空间频率,采样率设置为 300kHz,这高于所需的频率。将 FSK_CORR_DETECTOR 结构的 isr_freq 成员设置为可接受的 FS

   FSK_struct1.isr_freq = 300000;     // ADC Sampling frequency

位判定算法的运行频率应该是位频率的三倍。例如,如果每个位周期为 1ms,则位频率为 1kHz,从而使所需的位判定频率为 3kHz。示例程序以 5.12ms 的周期检测位,从而使位频率为 195.3125Hz,所需的位判定频率为 585.9375Hz。软件中的位判定频率应尽可能接近所需的频率,以防止出现位边界问题。使用该位判定频率来设置 FSK_CORR_DETECTOR 结构的 bit_freq 成员。

   FSK_struct1.bit_freq = 586; // Bit decision frequency, 3x bit frequency
            

总之,为示例程序设置的频率参数如表 5-4 所示。

表 5-4 软件频率参数
参数频率
检测到的标记频率131.25 kHz
检测到的空间频率143.75 kHz
输入信号采样频率300kHz
位判定算法频率586Hz(经过向上舍入)

设置 FSK_CORR_DETECTOR 结构的 detection_threshold 成员。该值对于调整位检测灵敏度而言有一定的作用。

   #define FSK_BIT_DETECTION_THRESHOLD 0.1 // Bit detection threshold value
   FSK_struct1.detection_threshold = FSK_BIT_DETECTION_THRESHOLD; // Set threshold
            

根据通过调用相应的 init 函数输入的成员值完成 fsk_corr_detect 库的初始化。

   FSK_CORR_DETECTOR_INIT(&FSK_struct1); // Initialize FSK structure
            

此外,通过在软件中设置以下参数来考虑所接收信息的格式。

  • 构成一个字的位数(fsk_packetization.h 中的 #define):
    • #define NUMBER_OF_BITS_PER_WORD 11
  • 构成一个数据包的字数(fsk_packetization.h 中的 #define):
    • #define NUMBER_OF_WORDS 3
  • 一个数据表中的总位数(fsk_corr_detector.h 中的 #define):
    • #define RX_MESSAGE_SIZE 33