這篇文章來源于DevicePlus.com英語網站的翻譯稿。
最近,當我再次用一些無線模塊和一個Arduino來做實驗時,發現其中一個無法傳輸任何數據。于是我開始思考,怎樣去解決此類問題呢?是代碼出現了問題么?還是模塊本身壞掉了?我需要使用一些便宜的設備來查看正在傳輸中的內容。而RTL-SDR的作用正是如此。
RTL-SDR USB 加密狗 – 官方商店頁面
一些天線
軟件
Zadig 驅動安裝工具
SDR# 應用程序
或者
SDR 控制臺應用程序
您可以從官方商店購買RTL-SDR加密狗,價格為20美元。并且您需要獲取一個可以接收24 MHz至1.766 GHz頻率范圍內所有廣播的寬帶無線電掃描儀。該接收范圍涵蓋了所有AM和FM廣播電臺,以及ham radios,被廣泛使用的ISM 433 MHz頻段和868 MHz頻段,甚至包括了正在運行的船舶、飛機和衛星所傳輸的數據。
什么是軟件無線電?
傳統上來說,無線電接收機僅包含硬件組件,如濾波器、放大器、調制器和解調器等等。從最基本的層面來說,所有這些組件的工作方式都是對一個模擬信號執行各種數學運算操作。但是,隨著計算機處理能力的極大提升,可以將這些操作移至數字域并使用軟件對信號進行處理。
這種方法具有很大的優勢。首先,它大大減少了所需的專用硬件組件的數量。可以想像,這將大大降低系統的總體成本。另一個巨大的優勢是靈活性。您無需更換一半數量的組件,而只需要編寫一些新的代碼就可以支持新的無線協議或調制。
圖1:一個典型SDR框圖
在理想條件下,軟件無線電(SDR)僅需要三個組件:天線、模數轉換器和數字信號處理器。您可以將天線連接到轉換器,將輸出傳送到信號處理器,然后您就可以在計算機上處理數據流了。不幸的是,理想條件是無法實現的。主要障礙是模數轉換器。事實證明,要設計一種能夠足夠快速、準確地轉換所有信號(甚至是納伏級)的轉換器是非常困難的。因此,實際情況中SDR接收器需要使用一些硬件組件,最常使用的是寬頻帶、低噪聲的放大器和帶通濾波器。這些組件會對用于數字組件的信號進行預處理。
基本設置
獲取接收器之后,您將需要一個天線以及放置它的地方。這看起來似乎很簡單,但實際上是最關鍵的步驟之一。置于室內的天線也許可以接收信號較強的FM廣播,但是拾取置于室外的433 MHz發射臺的信號估計就很困難了(即使距離只有幾英尺遠),而且幾乎可以肯定的是,它將無法拾取較弱的信號,例如衛星傳輸(稍后討論)。我使用的是置于室外的1m偶極子天線,并使用同軸電纜和USB電纜傳輸信號。
接下來是驅動程序。當您把基于RTL2832的加密狗插入計算機時,它將會安裝默認的驅動程序。但不幸的是,該驅動程序無法讓您用作軟件無線電。為了得到可以用作軟件無線電的應用程序,您需要使用Zadig—一種可以替換USB設備驅動程序的工具。點擊此處下載exe文件并運行。接下來,將您的RTL加密狗插入一個USB端口。在Zadig工具中,選擇菜單[1] 中的“選項(Options)”,然后點擊“列出所有設備(List All Devices)”。現在,您就能選擇任何USB設備了,包括在列表中顯示為“內置,接口(接口0)(Bulk-In, Interface (Interface 0))”的RTL加密狗[2]。
圖2:Zadig驅動程序工具
重要說明:在更換驅動程序之前,請仔細檢查您是否選擇了正確的設備!例如,您可以檢查“驅動程序”中列出的當前安裝的驅動程序,其中應包含字符串“RTL2832U”[3]。如果您更換成了錯誤的設備,則很有可能會停止工作,想要將其恢復會很困難且很耗時!
確保在第二個文本框[4] 中選擇了WinUSB驅動程序,然后點擊“更換驅動程序(Replace Driver)”按鈕[5]。現在,系統會彈出幾次提示,您只需要確認表示信任該驅動程序即可。稍后,您將會收到一條消息,顯示“驅動程序已成功更換(Driver replaced successfully)”,這意味著最艱難的工作已經完成,現在我們可以使用RTL加密狗作為接收器了!
最后還缺少軟件。我們有很多種選擇,有各種支持不同類型接收器的程序,但因為本項目中僅使用了基于RTL2832芯片的加密狗,所以在這里我將只介紹支持該接收器的軟件。
第一個您可以用來控制接收器的軟件是SDR#。這也許是最廣泛使用的通用SDR了。它可以在Windows上運行,并且是完全免費的。該軟件的使用方法相對簡單,即使是初學者也易于上手。SDR#的最大優點是可以添加大量的插件。
圖3:SDR#
在上圖中,您可以看到其環境的外觀。左側是控制面板,頂部是頻譜,底部是音頻頻譜,屏幕中間是瀑布圖。瀑布圖是對頻譜的實時記錄。如果您看到了一個有趣的信號,但是在想要調諧的時候已經消失了,該信號還會顯示在瀑布圖中,您可以在信號回放的時候嘗試收聽該頻率的信號。您也可以使用瀑布圖來計算信號傳輸的時間,以及觀察頻率在傳輸過程中是否發生了變化。
在所有插件的輔助下,SDR#的使用非常簡單并且可以進行很多自定義設置。我個人更喜歡SDR控制臺。與SDR#一樣,它非常易于使用,但是相比之下SDR提供了一些其他高級功能,例如衛星追蹤,并且提供了更多的解調模式以及許多可用于音頻記錄、噪聲過濾和頻率管理的附加工具。該應用程序還具有一個額外的優點,就是外觀看起來更美觀精致。SDR控制臺應用程序是可以免費下載的,但是如果您很喜歡該應用程序也可以提供一些資助。
圖4:SDR控制臺
因為我真的很喜歡SDR控制臺應用程序,所以在本教程剩余部分的示例中我都將使用該應用程序。當然,您也可以使用任何其他自己喜歡的SDR軟件,絕大多數SDR軟件的外觀和使用方法都是相似的。如果想要查詢其他SDR軟件(Windows、Linux、 Mac、Android或一些基于網頁的工具),您可以訪問https://www.rtl-sdr.com/big-list-rtl-sdr-supported-software/。
示例1:FM廣播
讓我們從一個簡單的示例開始:FM廣播。首先,您必須選擇正確的模式。在本項目中,我們需要用FM(頻率調制)模式或BFM(廣播頻率調制)模式。BFM模式可以提供更好的音頻質量以及RDS文本(無線電數據系統)– 電臺可以選擇性傳輸的文本信息。通常,該文本信息是電臺名稱或者有時候是當前正在播放的歌曲的名稱。
現在,只需要找到您喜歡的FM電臺的頻率,然后將其輸入SDR控制臺即可!如果您沒有喜歡的FM電臺(這在互聯網時代是可以理解的),在FM廣播頻段(87.5 至108 MHz)中搜索凸起的波峰即可。這些波峰就是FM廣播電臺,所以只需要調頻至該電臺然后收聽就可以了!
圖5:FM廣播
示例2:433 MHz ISM頻段
我最初購買RTL-SDR加密狗是為了監視ISM 433 MHz頻段中的通信。ISM(工業—科學—醫學)屬于無許可證頻段。這意味著任何人都可以在該頻段中進行傳輸。當然,某些法律限制可能仍然適用,這要取決于您所居住的地區。433 MHz通常用于各種無線設備:車庫門控制器、遠程門鈴、溫度計,基本上所有需要在數百米范圍內傳輸簡單無線數據的設備都可以使用。
圖6:433 MHz ISM頻段
在上圖中,您可以看到433 MHz頻段的示例。如您所見,不同頻率的信號之間會產生很多干擾。大多數信號都在不到幾秒鐘的時間內發送,并且在兩次發送之間有長達幾分鐘的延遲。可能是因為這些設備中大部分都是用電池供電,所以會通過這種方式節約一些能耗。
示例3:LoRa廣播
現在我們來嘗試一些有趣的事情:LoRa傳輸!正如我在Arduino遠程通信教程 — LoRenz Shield中提到的那樣,LoRa是線性調頻擴頻(CSS)調制。這意味著信號的頻率會隨時間發生變化。LoRa調制用于無線、低功率的廣域網(LPWA),如LoRaWAN。在此我們一定要對其作出區分:LoRa是一種調制方式,而LoRaWAN是一種使用LoRa調制方式作為ISO-OSI模型中的物理層的協議。本示例僅涉及LoRa調制的屬性,而不會介紹LoRaWAN網絡的相關內容。
LoRa調制本身是專有的,這意味著除非我們使用Semtech(創建LoRa調制模式的公司)制造的接收器,否則將無法將傳輸信息解碼為二進制數據。但是,我們可以觀察到LoRa模塊的不同設置是如何影響傳輸的。設置內容包括帶寬、擴展因子以及編碼率。
帶寬很容易理解,表示的是傳輸的頻率范圍。更高的帶寬意味著更高的數據速率,但同時也縮小了傳輸距離并且增加了功耗—這是LoRa系統中的一個關鍵因素,因為調制本身被設計為使用盡可能少的功耗并在盡可能長的距離內進行傳輸。Semtech LoRa模塊支持的最高帶寬為500 kHz,最低為7.80 kHz。
擴展因子的設置有點復雜,因為它與LoRa作為線性擴頻調制的性質有關。它表示的是每個傳輸符號編碼位數的度量,范圍是6到12。越高的擴頻因子意味著在較大距離范圍內具有更低的數據速率。您可以將符號想象為一個比比特更高級的信息單位。舉一個簡單的例子,設想一下通過以前的模擬電話線來進行數據傳輸。這時候傳輸的是聲音而不是數字位。但是,如果將1表示為一種音調,將0表示為另一種音調,那么就可以在一個模擬媒介上傳輸數字信息了。您現在是使用帶有兩種符號的字符,最酷的是:為什么只停留在這兩個符號上呢?您可以將位組合為更長的序列,并用符號來表示這些序列。因此,如果您想要對4位序列進行編碼,就需要將您的字符擴展為16個符號并使用16個音調。
編碼率表示對數據包的前向糾錯量。此參數會更改信息的總長度,因此可以理解的是,相比于較高的編碼率(4/8),較低的編碼率(4/5)下的數據速率略高。
接下來的兩張圖片比較了LoRa傳輸的兩種極端情況。第一個設置為最高的數據速率,也就是帶寬為500 kHz,擴展因子為6以及編碼率值為4/5。如您所見,該數據包(28字節長)的傳輸速率非常高,但是幾乎在一瞬間,傳輸完全阻塞在了433 MHz ISM頻段的很大一部分中。另外,即使在空曠的地方,傳輸距離可能也不會很大。
圖7:最高速率的LoRa設置。瀑布圖中用紅色標記的LoRa傳輸。
另一個是在最低數據速率下傳輸相同的28字節數據。請注意,瀑布圖僅顯示了4秒鐘的數據傳輸。整個過程大概需要30秒,所以您的數據速率大約為每秒不到一個字節。相比之下,之前的傳輸只花了不到1秒鐘!但是,使用該設置,我們僅占據了ISM頻段的一小部分,并且傳輸距離得到了極大的改善。
圖8:使傳輸速率最低的LoRa設置
SDR控制臺使用SAM(同步振幅調制)對該LoRa傳輸進行解調后產生的聲音也非常有趣!
示例4:衛星追蹤
現在到了最精彩的壓軸部分了:接收來自目前在地球軌道上運行的衛星所發射的信號!這將比之前的示例都棘手一些,主要是因為與FM廣播電臺或LoRa發射器不同,衛星往往會移動更大的距離。幸運的是,SDR控制臺有一個很棒的工具,可以讓您輕松地對衛星進行追蹤。首先在SDR控制臺菜單功能區中選擇“查看(View)”選項,然后在最后一部分地“更多選項…(More Options…)”中按下“衛星(Satellites)”按鈕。這時候會打開另一個窗口,即衛星追蹤器。
圖9:SDR控制臺衛星追蹤器
要使用追蹤器,您要做的第一件事是輸入緯度和經度,以便應用程序可以確定可見的衛星進行以及其相對于您所處的位置。在頂部功能區的“主頁(Home)”選項卡中,單擊第二個按鈕“主頁緯度/經度(Home Lat/Lon)”。在彈出的窗口中,輸入您當前的經緯度以及WGS84橢球高度。最后一個參數用于補償多普勒效應,您用谷歌搜索一下,就會找到一些可以通過經緯度來獲取WGS84高度的工具。獲得所有信息后,您就可以搜索出一些衛星了!在“軌跡追蹤統計(Pass Schedule)”窗口中,按下“衛星列表(Satellite List)”按鈕以顯示在接下來的幾小時內從您的位置可見的所有衛星。有很多可以對這些衛星進行過濾的選項(例如,您可以排除仰角小于特定角度的所有衛星)。
雙擊所要追蹤的衛星[1]。現在,主窗口中顯示有該衛星的當前位置[2],名稱[3]和軌跡,以及直到AOS(信號獲取)[4]為止的時間。同時還有衛星的當前方位角[5]以及其相對于您所處位置的仰角[6]。該信息可以告訴您應該將天線指向天空中的哪個位置,以使您有最大的機會接收到該衛星可能正在發射的信號。在“軌跡(Passes)”窗口中還有一個簡潔的小功能,可以在衛星處于從自己的位置可見時,讓您查看預期的衛星軌跡。為了實現該功能,請從列表中選擇一顆衛星,然后將滑塊[7]移動到地圖下方。該窗口將會在滑塊在您身邊經過時顯示衛星軌跡,您可以由此了解方位角是如何隨時間變化的,以及您是否有可能接收到廣播。衛星到達您的位置后,點擊其中一個接收器按鈕[8],主SDR控制臺應用程序將使用所建議的設置自動調諧到該頻率。
為了追蹤衛星,您要做的最后一件事是將天線放在一個與天空接觸良好的地方。房頂就是一個很好的選擇,不過這樣一來您可能無法一直將信號傳回PC。我的天線放置在三樓的露臺上,所以與天空接觸良好,但是如果我使用的是有源USB電纜,我應該會將天線移到屋頂上并將RTL-SDR加密狗一起放在那里。這樣,模擬信號傳輸的路徑就短得多了。
圖10:我的偶極子天線!
是時候聽一聽衛星上的廣播了!由于我的天線大致面向西南方,因此它可以拾取方位角為120°至320°的衛星。而仰角的確認會產生一些問題,如上圖所示,我住在山谷中,因此對于在大約15度或更高仰角位置的衛星,我的接收效果最佳。我也可以接收來自其他方向的衛星發出的信號,但它們的信號較弱。
現在,我們需要選擇要接收信息的衛星。最好的首選是NOAA衛星。這些衛星由美國商務部下屬的國家海洋與大氣管理局(National Oceanic and Atmospheric Administration)運營。就像該機構的名稱所顯示的那樣,它們被用于天氣預報和氣候監測。在137.1 MHz頻率下,它們還可以傳輸低分辨率的圖像,而轉換成聲音后,您可以聽到典型的嗶嗶聲。我追蹤的衛星是2009年發射的NOAA19。這顆衛星處于近極軌道,也就是說它在地球上方的軌跡靠近兩極。每個運行周期為100分鐘。軌道也相對較低,在地面上方約850公里處。
圖11:NOAA 19衛星經過俄羅斯時的信號。信號很弱,但是仍然可以聽到嗶嗶聲。
第一次NOAA 19軌跡離我足夠近的時候,它剛好經過俄羅斯上空,而俄羅斯距離我的位置有點太遠了。大約兩小時后,衛星距離我更近了。當衛星進入接收范圍內時,它處于北非上方,正在經過利比亞和地中海。然后,它經過了意大利,最后越過了德國,其中德國是離我最近的。那時,它的仰角大約為60°,方位角為240°,這種情況下已經是接收信號的理想位置了。您可以通過這里的視頻查看以及聽取在衛星整個15分鐘的運行過程中所記錄的信號。信號最好的時候是在6:00 – 6:30左右,您可以清楚地聽到嗶嗶聲和滴答聲。NOAA 19之后繼續越過北海上空,然后達到北極。
圖12:2小時后,當NOAA 19經過德國時所發處的信號。信號比上一次經過時要好得多。
結論
至此,我們完成了對RTL-SDR的簡要概述。如您所見,即使使用最基本的設置,它也可以出色地完成一些任務。當然,還有一些需要改進的地方。例如,我們可以為不同的調制方式和頻率來創建天線,以獲取盡可能高的信號增益,并自動排除我們不感興趣的頻率。使用軟件的軟件無線電部分,可以輕松地對整個系統進行更改,來完成各種任務,從“簡單”的工作(例如持續接收模擬TV信號)到觀測距離數千光年之外的脈沖星!
Jan Gromes
Jan目前在布爾諾理工大學學習電氣工程。他擁有多年使用Arduino和其他微控制器構建項目的經驗,對機器人系統的機械設計十分感興趣。
審核編輯:湯梓紅
-
SDR
+關注
關注
7文章
233瀏覽量
50461 -
衛星
+關注
關注
18文章
1712瀏覽量
67007 -
ISM
+關注
關注
1文章
75瀏覽量
24816 -
RTL
+關注
關注
1文章
385瀏覽量
59763
發布評論請先 登錄
相關推薦
評論