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
接收到的 FSK 信号遵循一组必须在软件内设计的通信参数。
图 5-4 说明了相关的通信参数。标记的参数具有以下含义:
对于示例程序,默认遵循的通信参数如表 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_freq 和 space_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 所示。
参数 | 频率 |
---|---|
检测到的标记频率 | 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
此外,通过在软件中设置以下参数来考虑所接收信息的格式。