RSSI:Received Signal StrengthIndicator,表明了接收機接收到的信號的強度。一般使用分貝(db)從0到-120db。RDA5807內部接收器中具有RSSI測量功能,通過軟件讀取該數(shù)值,來表征接收到的信號的強度。
RDA5807的RSSI信號響應有一定的時間,下面通過實際測試看到這個響應時間大約為0.5秒。
利用RDA5807可以對于某一地區(qū)的調頻電臺進行探測和掃描。
RDA5807的RSSI功能
RDA5807內部接收模塊如下圖所示。在模塊的右下方,可以看到它具有/RBDS/RSSI模塊。
RDA5807和RSSI相關的寄存器
根據(jù)RDA5807數(shù)據(jù)手冊給出的信息。在讀取的內部寄存器的0xB中,15:9數(shù)據(jù)位表示了RSSI數(shù)值。該數(shù)值表征了接收信號的強度,按照對數(shù)尺度來顯示。數(shù)值越大,信號的強度越高。
讀取RDA5807RSSI數(shù)據(jù)
使用外面的代碼來讀取RDA5807內部寄存器。由于RDA5807具有自動內部寄存器地址生成的功能。當開始一個讀數(shù)據(jù)幀的時候,RDA5807內部的寄存器地址自動從0xA開始遞增。
由于RDA5807內部的寄存器是16bit,所以要讀到0xB寄存器的內容,需要從開始讀寄存器開始,連續(xù)讀取三個字節(jié),才能夠讀到0xB寄存器的高八位內容。
下面代碼顯示了讀取RDA5807內部四個字節(jié)的內容,然后返回其中第三個字節(jié)的內容。
void RDA5807I2CRead(uint8_t * pucData, int nLength) { HAL_I2C_Master_Receive(&hi2c1, RDA5807_I2C_ADD, pucData, nLength, 10); } unsigned char RDA5807ReadRSSL(void) { unsigned char ucData[4]; RDA5807I2CRead(ucData, 4); return ucData[2] >> 1; // 該數(shù)據(jù)位應該右移一位,所得到的就是RSSI的數(shù)值了。 }
代碼中ucDatga[2]的高7位是RSSI,因此最后需要通過右移一位來獲得RSSI數(shù)值。
掃描本地區(qū)的調頻廣播頻道的電臺強度
通過設置不同的FM接收頻道,然后讀取相應的RSSI,標準了本地區(qū)在FM廣播段的電臺的情況。
(1)設置完收音機的頻率后,讀取RSSI的變化情況 測試RDA5807的RSSI的響應變化速度。 下面分別測試設置頻率為97.4MHz(北京音樂臺)和101.4MHz(空閑頻段),每隔2ms讀取RSSI,連續(xù)讀取256個數(shù)字顯示的的強度曲線。
FM:97.4Mhz:北京音樂臺
FM:101.4MHz:空閑頻段。
前面的曲線顯示,每當設置一次頻率,RDA5807內部的RSSI都是從0開始測量,經過大約0.5秒之后,測量值大都穩(wěn)定在恒定的數(shù)值。
所以通過設定頻率掃描測量不同頻率下的射頻信號強度的時候,需要等到0.5秒鐘之后再讀取RSSI,才能夠獲得比較穩(wěn)定的數(shù)值。
(2)通過外部信號源的變化,讀取RSSI的變化情況
外部的射頻信號源使用普通的數(shù)字合成信號發(fā)生器。DS345可以產生高達30Mhz的信號。通過使用它的方波信號,利用其三次諧波可以達到80~110Mhz范圍內的射頻信號。來檢測RDA5807接受信息的情況。
下面是設置DS345輸出掃頻,掃頻的范圍是28.970Mhz~29.030Mhz。掃描的速度為1kHz, 掃描的波形呈現(xiàn)等腰三角形。這就模擬了一個使用三角波形進行調頻的輸出。
RDA5807的頻道設置在87Mhz,在這個頻率范圍內,沒有本地的調頻電臺。 使用示波器觀察RDA5807的左右輸出。輸出波形如下圖所示,基本上與調制信號是一致的。
信號源的頻率從28Mhz變化到29Mhz。它的三次諧波從84Mhz,變化到87Mhz,RDA5807接收到的射頻信號強度從29變化到55。變化曲線如下圖所示:
信號的的頻率從29Mhz增加到30MHz,它的三次諧波的頻率從87Mhz變化到90Mhz。RDA5807接收到的射頻信號的強度從55下降到30。數(shù)值變化去下如下圖所示。
從前面的變化可以看到,信號的整個的變化過程大約持續(xù)了0.3秒左右。這表明了RDA5807測量RSSI的時間響應大約是0.3秒。
如果外部信號的強度變化速率大于0.3秒,在RDA5807的RSSI數(shù)值就會反應不了這么快速的變化。所獲得的是信號強度變化的平均值。
(3)掃描80MHz~110MHz之間的調頻廣播信號強度
為了獲得更加精細的掃描頻譜的頻率分辨率,將RDA5807的頻率間隙設置為:25kHz。
相關的設置將會影響到寄存器03H的部分設置。見下面的表格:
相應的設置代碼修改如下:
//------------------------------------------------------------------------------ #define RDA5807_TUNE_CONFIG_LENGTH 4 uint8_t RDA5807_tune_config[] = { 0xd0, 0x0d, // Register 2 0x00, 0x00, // Reigster 3 }; void RDA5807SetTuneConfig(uint16_t channel) { RDA5807_tune_config[2] = (uint8_t)(channel >> 2); // RDA5807_tune_config[3] = (uint8_t)(((channel & 0x3) << 6) | 0x10); RDA5807_tune_config[3] = (uint8_t)(((channel & 0x3) << 6) | 0x13); } void RDA5807SetChannel(float freq) { // g_nRDA5807Channel = (int)((freq - 87.0) * 10.0 + 0.5); g_nRDA5807Channel = (int)((freq - 87.0) * 40.0 + 0.5); RDA5807SetTuneConfig(g_nRDA5807Channel); RDA5807I2CWrite(RDA5807_tune_config, RDA5807_TUNE_CONFIG_LENGTH); }
根據(jù)前兩部的實驗結果可以知道RDA5807的RSSI信號的響應時間大于0.3秒,所以在掃描頻率的時候,每設置一個新的頻率,等待1秒之后,再讀取RDA5807內部的RSSI的數(shù)值。
掃描頻率范圍從80MHz到110Mhz,每隔25kHz測量一次,總共1200個數(shù)據(jù)。下面的曲線是經過20分鐘的掃描之后獲得的北京地區(qū)星期五下午2點鐘左右的各個調頻廣播信號的強度數(shù)據(jù)。
包括了總共22個FM電臺的頻譜,對于所有RSSI大于33的頻率設定為一個電臺,它們對應的頻率如下:
編輯:hfy
-
接收機
+關注
關注
8文章
1180瀏覽量
53458 -
RF
+關注
關注
65文章
3051瀏覽量
166974 -
RSSI
+關注
關注
2文章
95瀏覽量
27743 -
RDA5807
+關注
關注
1文章
9瀏覽量
3900
發(fā)布評論請先 登錄
相關推薦
評論