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