CH582 CH573 CH579 2.4G PHY通讯讲解
频段
BLE的PHY使用2.4G频段,从 2400MHz~2483.5MHz 约 83.5MHz 的频谱资源。
射频信道
一共 40 个通道, 37 个自适应自动调频数据通道用于两个连接两个设备通讯;3 个固定广播通道分别是 37、 38、 39。 通道的具体频带分布如图:
发射功率
2.4GHz ISM 频段对无需授权的设备有最大发射功率的限制,对于BLE,在 4.0 规范中有规定:
芯片2.4G初始化(以CH582为例)
rfConfig.accessAddress = 0x71764129; // 禁止使用0x55555555以及0xAAAAAAAA ( 建议不超过24次位反转,且不超过连续的6个0或1 ) //接入地址,收发双方必须一致才可以正常收发 rfConfig.CRCInit = 0x555555; //收发双方保持一致 rfConfig.Channel = 8; //通讯通达选择0-39 rfConfig.Frequency = 2480000; //通讯频点选择2400000-2483500 rfConfig.LLEMode = LLE_MODE_BASIC | LLE_MODE_EX_CHANNEL|(2<<4); // 使能 LLE_MODE_EX_CHANNEL 表示 选择 rfConfig.Frequency 作为通信频点,频点步进1KHz //如果不使能LLE_MODE_EX_CHANNEL 就使用rfConfig.Channel 作为通信频点 rfConfig.rfStatusCB = RF_2G4StatusCallBack; rfConfig.RxMaxlen = 251; state = RF_Config(&rfConfig);
重点:
#define LLE_MODE_EX_CHANNEL (1<<6)
// 使能 LLE_MODE_EX_CHANNEL 表示 选择 rfConfig.Frequency 作为通信频点,频点步进1KHz //如果不使能LLE_MODE_EX_CHANNEL 就使用rfConfig.Channel 作为通信频点
typedef struct tag_rf_config { uint8_t LLEMode; //!< BIT0 0=basic, 1=auto def@LLE_MODE_TYPE //!< BIT1 0=whitening on, 1=whitening off def@LLE_WHITENING_TYPE //!< BIT4-5 00-1M 01-2M 10-coded(S8) 11-coded(S2) def@LLE_PHY_TYPE //!< BIT6 0=data channel(0-39) //!< 1=rf frequency (2400000kHz-2483500kHz) //!< BIT7 0=the first byte of the receive buffer is rssi //!< 1=the first byte of the receive buffer is package type uint8_t Channel; //!< rf channel(0-39) uint32_t Frequency; //!< rf frequency (2400000kHz-2483500kHz) uint32_t accessAddress; //!< access address,32bit PHY address uint32_t CRCInit; //!< crc initial value pfnRFStatusCB_t rfStatusCB; //!< status call back uint32_t ChannelMap; //!< indicating Used and Unused data channels.Every channel is represented with a //!< bit positioned as per the data channel index,The LSB represents data channel index 0 uint8_t Resv; uint8_t HeartPeriod; //!< The heart package interval shall be an integer multiple of 100ms uint8_t HopPeriod; //!< hop period( T=32n*RTC clock ),default is 8 uint8_t HopIndex; //!< indicate the hopIncrement used in the data channel selection algorithm,default is 17 uint8_t RxMaxlen; //!< Maximum data length received in rf-mode(default 251) uint8_t TxMaxlen; //!< Maximum data length transmit in rf-mode(default 251) } rfConfig_t;
uint8_t LLEMode; 的
//!< BIT4-5 00-1M 01-2M 10-coded(S8) 11-coded(S2) def@LLE_PHY_TYPE 配置选择125Kbps 1Mbps 2Mbps 500Kbps
比如
rfConfig.accessAddress = 0x71764129; // 禁止使用0x55555555以及0xAAAAAAAA ( 建议不超过24次位反转,且不超过连续的6个0或1 ) rfConfig.CRCInit = 0x555555; rfConfig.Channel = 8; rfConfig.Frequency = 2480000; rfConfig.LLEMode = LLE_MODE_BASIC | LLE_MODE_EX_CHANNEL|(2<<4); // 使能 LLE_MODE_EX_CHANNEL 表示 选择 rfConfig.Frequency 作为通信频点 rfConfig.rfStatusCB = RF_2G4StatusCallBack; rfConfig.RxMaxlen = 251;
开启PHY的125Kbps模式