這個WSPR到底是什么。..。..
WSPR(發音為‘whisper’)信標是一個低功率無線電發射機業余頻段分別為2m至160m或約144MHz至1.8MHz。這里介紹的實現可以支持5個頻段,其中我專注于2個頻段--20米和40米。我的特殊天線最適合20米和40米。
WSPR協議是由獲得諾貝爾獎的普林斯頓物理學家喬泰勒博士開發的。這導致基于PC計算機的應用程序于2008年4月首次發布。計算機(通常是PC)獲取一些基本用戶信息并使用WSPR協議對其進行編碼,從而產生162個四級FSK(頻移鍵控)符號。這些符號,然后從偶數分鐘的頂部開始,在110.6秒的時間內緩慢傳輸。編碼的信息包括用戶無線電呼號(我的 - G7IYK),用戶定位器代碼(我的 - IO81)和以dBm為單位的功率級別。所以基本信息如下所示:
WSPR輸入信息示例:G7IYK IO81 30
在這個例子中,30dBm相當于50W匹配天線的1W。
以下在編碼時,合成的FSK信號僅適合6Hz,WSPR頻帶僅200Hz寬。因此,PC將輸出調制數據作為一系列四個FSK音調。然后將這些音頻輸入到設置為適當頻帶頻率的業余無線電裝置。業余無線電裝備隨后將數據傳輸到世界各地。..。..
好 - 很好,有什么意義呢?
世界字面上充斥著WSPR信標和接收器。我在這里展示的項目是一個僅發送信標,但許多(大多數)WSPR設置接收和發送 - 它們是收發器。
這是很酷的部分。..。..
WSPR接收器可以同時解碼200Hz頻帶中的所有消息,導致每兩分鐘窗口可能有數十個解碼消息。此外,WSPR協議可以在大約-28dB的S/N(信噪比)水平下進行解碼 - 因此是耳語描述。通常,解碼器可以拉出并成功解碼來自人耳聽不到的噪聲的信號。這意味著您的低功率信號可以根據傳播條件在很遠的距離進行解碼。
好的,那么您如何知道誰解碼了您的信號呢?
有一個非常酷的網站叫做WSPRnet(wsprnet.org)。該網站顯示了全球每個頻段的所有WSPR解碼活動。運行在全球數千個站點上的WSPR接收器軟件將解碼后的呼號標記數據推送到wsprnet.org網站,在那里顯示它以供任何人查看。您可以將自己或其他任何人的呼號輸入到地圖頁面中,該站點將過濾顯示呼號被解碼的行星位置,解碼時間,解碼對象,真實接收功率等級和距離的信息。來自傳輸源。
你可以這樣做只是為了好玩(而且很有趣),或者你可以將它用于像天線開發那樣嚴肅的事情,畢竟WSPR是傳播記者。您可以隨心所欲地設計和建模天線,但WSPR允許您通過向您顯示其他站點能夠解碼信號的位置來實際查看天線的工作情況。
您也可以使用您自己的解碼傳輸或網站上其他人的解碼,以便在任何特定時間看到哪些頻段是開放的并且傳播良好,并且由于大氣條件而關閉。
我附有顯示該類型的圖像WSPR網站上提供的信息。
那么這個項目究竟是什么呢?
正如我之前提到的,大多數WSPR站由個人計算機和業余無線電收發器組成,接口電纜。接口電纜向PC發送音頻信息或從PC接收音頻信息,并允許PC在發送和接收之間切換無線電。
大多數人都有PC但業余無線電通常非常昂貴并且有更多功能不是WSPR所需的功能。您可能擁有業余無線電許可證,或者正在考慮申請一個,并且想要使用像WSPR這樣的數字模式進行游戲而不是花費在無線電收發器上。
這個項目是獨立的WSPR信標配有數據編碼器,顯示器,GPS接收器和包括低通濾波器的無線電發射器。一旦配置,信標將獨立運行,將WSPR序列GPS鎖定到每個偶數分鐘的頂部。信標還可以通過無線電串行接口連接到PC,使用專用控制應用程序完全配置和下載。信標還預裝了引導加載程序,允許嵌入式固件通過相同的PC串行無線連接進行重新編程。
以下是主要項目功能列表。..
獨立信標,無需PC連接即可運行
GPS接收器提供準確的傳輸時序
LCD顯示傳輸數據,時間,模式等。..
用于PIC固件重新閃存的集成引導加載程序
1MHz至40MHz頻率合成
輸出功率為35dBm或~3.3W
無線發射機每頻段切換輸出低通濾波
li》
基于無線電的57600波特串行鏈接到PC進行配置和引導
基于PC的控制和配置應用
基于PC的串行引導加載程序
為什么我設計并構建了這個WSPR信標?
考慮到我有一個基于PC的WSPR站和Yaesu無線電收發器,這是一個非常好的問題。主要原因只是為了好玩,這是一個偉大的項目,我學習了新的技能
硬件和軟件:我通常選擇包含可能對我來說可能是新功能的項目。作為這個項目的例子,我開發了串行引導程序 - 對于未來的項目非常寶貴,需要將一些RF集成到項目中并使用GPS接收器。..。..更不用說WSPR軟件編碼器和其他具有挑戰性的嵌入式固件任務。
另外,我喜歡編寫項目的樂趣;它給人一種完整感 - 不是一個商業產品,而是一個先進的原型。與更廣泛的社區共享一個項目迫使人們希望提供更高水平的質量,而不僅僅是簡單的替補。通常,記錄項目和解釋決策的行為導致人們意識到可能有更好的做事方式。
向更廣泛的社區發布項目通常會導致其他人想要“去做” ‘在構建設計時,我喜歡在可能的情況下提供支持。將技能傳授給他人,看看他們用新技能做什么,這是非常有益的。
有時候一個項目非常受歡迎,而且產量很低的產品可能會短暫出現以產生一些啤酒資金來資助下一個瘋狂項目!
最后,社區通常會提供好的和壞的反饋。通常,當建設性時,這種反饋增強了我的知識,并且通常是很酷的新想法的來源 - 很高興隨時提供反饋:)
第1步:有關WSPR協議的更多信息
重要:為了避免任何可能的混淆,我強調WSPR協議不是我的設計,我沒有輸入設計過程。正如引言中所提到的,WSPR協議是由普林斯頓大學的Joe Taylor博士設計的。
WSPR協議有兩種操作模式。第一模式在單次通過中生成編碼數據,并且被設計用于單個傳輸間隔。第二擴展模式生成為兩個間隔傳輸而設計的數據。我的信標項目和以下描述僅詳細說明了在一兩分鐘間隔內傳輸的第一個單程方法。
有非常詳細的WSPR協議描述,這里我提供一個簡要說明,旨在幫助澄清后續設計步驟。
1。要編碼的數據(非擴展模式)
呼號最多六個字符AZ,0-9和[空格]
標準4位數的Maidenhead定位器
功率級別從0到60dBm
示例序列:G7IYK IO81 30
為什么首先編碼。..
好問題 - 為什么要首先編碼,為什么不使用說摩爾斯電碼來傳輸字符?
在堅果shell中我們將數據編碼為極大提高在非常低的SNR水平下解碼消息的機會。恢復性能的這種改進稱為編碼增益。如果通過對序列進行編碼,在某些SNR-XdB處可以恢復未編碼的信號,我們可能能夠恢復信號 - 例如 - (X + C)dB,其中C是編碼增益。在WSPR的情況下,這種編碼增益是通過使用具有長約束長度的非遞歸卷積碼對數據進行編碼來實現的。
WSPR傳輸可以在低至-28dB的SNR級別進行解碼。
簡要介紹編碼過程
所以我們從輸入數據開始,例如G7IYK IO81 30.
輸入組件的無損編碼導致呼號為28位,定位器為15位,功率級為7位,因此總共為50位。
將50位打包到11個8位字節的數組中,截斷結果為81位。
使用約束長度32,速率1/2卷積碼對81位進行編碼(FEC,前向糾錯添加),得到162位序列。
為了提供突發錯誤保護,162位是交錯的。
交錯的162位序列與162位偽隨機同步序列合并,產生162個兩位值。
調制
162個兩位符號中的每一個表示每符號值12000/8192或大約1.46Hz的頻移,給出四級FSK調制。發送的符號長度是音調間隔的倒數,或大約0.683秒,因此162個符號的完整消息序列大約需要110.6秒才能發送并占用大約6Hz的帶寬。
傳輸開始否在偶數分鐘的頂部之后的一秒鐘之后。
第2步:WSPR功能和接口
我想我會首先描述PC應用程序界面和圖形用戶界面或GUI。雖然WSPR信標獨立運行但仍需要PC應用程序初始配置和啟動傳輸序列。
考慮此步驟中的第一張圖片。此圖顯示了首次調用WSPR控制面板后我們有以下字段:
COM端口 - 一個下拉菜單,顯示連接到PC的所有當前串行COM端口。一旦選擇了COM端口,應用程序將在將來打開應用程序時記住這一點。
打開端口 - 此按鈕可打開和關閉COM端口。按鈕在顯示打開端口和關閉端口之間交替顯示,具體取決于端口狀態。
Tx消息 - 這些是構成用戶消息的三個字段。首先是呼號,然后是梅登黑德定位器,最后是電源。權力從合法權力的下拉列表中選擇。呼號和定位器都被解析為合法格式,如果格式不正確,則會變為紅色。
頻段/頻率控制 - “以Hz為單位的頻率”字段是從WSPR 200Hz頻段開始的偏移。合法的值范圍是0到194Hz(200Hz,包括6Hz的傳輸帶寬)。接下來是復選框,指示要覆蓋哪些波段。如果檢查多個頻段,則按照波長順序按波段順序進行傳輸。
因此,如果“20m”和“40m”都被檢查和,則“步進Hz”字段為零將發生傳輸在頻帶20上的“頻率以Hz為單位”字段給出的偏移一兩分鐘時段,然后在頻帶40上自動切換到類似的傳輸一兩分鐘。循環將持續到用戶通過WSPR控制應用程序停止傳輸或按下停止/啟動硬件按鈕。
如果“步進Hz”字段為非零,則會發生不同的行為。在這種情況下,傳輸以0Hz的頻率偏移開始,并以“步進Hz”字段給出的頻率間隔在頻帶上進行兩分鐘的傳輸周期。一旦到達當前頻段的結尾,如果通過復選框選擇,則選擇下一個頻段。如果“Step Hz”字段非零,則忽略“Frequency Hz”字段。
調試窗口 - 此復選框打開并關閉調試控制臺窗口。調試窗口通過無線電串行接口顯示PC應用程序和硬件之間的所有上行鏈路和下行鏈路流量。此外,還會顯示許多軟件狀態和其他有用的調試數據。
發送 - 此按鈕使WSPR控制應用程序將Tx消息和其他字段發送到硬件。只有在打開COM端口后才允許發送操作。當每個字段被發送并且硬件確認收到數據時,每個字段從白色變為綠色背景。
硬件報告的當前Tx狀態 - 這些字段代表硬件的直接反饋。顯示回顯的Tx消息。還顯示傳輸電流帶和頻率偏移。
符號進度條 - 此欄顯示當前162 FSK符號傳輸的進度。
GPS狀態 - 顯示GPS接收器的狀態被鎖定或解鎖。
GPS時間 - 顯示GPS模塊報告的當前時間。
當前時間 - 這是GPS模塊顯示的當前時間。這可能與PC顯示的時間不同,因為PC時鐘通常不準確。
Tx啟用 - 一旦打開COM端口且硬件成功完成配置此按鈕啟動GPS模塊給出的下一個偶數分鐘頂部的傳輸。只有在檢測到GPS模塊鎖定后才會啟動傳輸,如果鎖定丟失,傳輸仍會終止。用戶可以通過按下“Tx啟用”按鈕或按下啟動/停止硬件按鈕來終止傳輸。
第二個圖像顯示按下發送按鈕后的WSPR控制面板并且調試控制臺已打開。 GPS被鎖定并顯示時間。按下“Tx Enable”按鈕后,傳輸將在下一個偶數分鐘的頂部開始。
第三個圖像顯示Band Frequency Calibration面板,其中包含以下字段:
每個頻段的頻率偏移 - 這是+/- Hz的偏移,將應用于DDS模塊,以校正由不正確的125MHz參考時鐘引起的任何絕對輸出頻率誤差。
每個頻段的濾波器位置 - 這是物理硬件位置1-5,其中安裝了相應頻段的LPF濾波器。
顯示WSPR控制的視頻正在使用的面板
步驟3:WSPR信標硬件操作
附加視頻顯示WSPR硬件操作。
第4步:燈塔的結果
在我們進入所有設計細節之前,我認為詳細說明信標的結果會很有趣。如果您首先了解設計功能,我認為總是更容易理解設計細節。
所以我設置信標以在20米和40米上傳輸我的信息。信標在我稱之為帶掃描模式的情況下運行。在該模式中,信標開始在20m頻帶的底部發送,并且在每兩分鐘之后發送間隔自動向上移動頻帶,在這種情況下以10Hz步長。因此,在頻帶20內將有二十次傳輸,因此需要四十分鐘才能完成。在遍歷頻帶20之后,信標自動切換到頻帶40并掃描頻帶,然后自動返回頻帶20并再次開始。該操作總共可以在五個頻帶上執行。
附帶的圖片和下面的數據來自WSPRnet網站:
以下三張圖片展示了歐洲和大西洋到美國的數十個成功解碼。
通過無線電串行連接和使用基于PC的WSPR控制面板來完全控制信標。
最遠的解碼是:KD6RF,距離為7392km或4620miles信噪比為-19dB
步驟5:解碼顯示歐洲的地圖
步驟6:顯示美國的解碼地圖
步驟7:設計,頂級硬件概述
在此步驟中,我將介紹硬件方面的內容。從頂層設計并解釋每個組件是什么以及為什么需要它。
我總是通過查看需要解決的問題來開始設計。這通常包括坐著一張紙,一支鉛筆和一瓶漂亮的紅酒(必不可少),可能還有一些奶酪和餅干。在這個階段,我們正試圖找出問題的范圍并得出一套頂級選項。從選項中我們做出設計決策并得出設計解決方案。這是最重要的事情,因此列表可能不會很長或很復雜,但在此階段做出錯誤的決定可能會導致設計過程中的大量浪費時間。
頂級范圍設計清單和決策過程:
已完成的解決方案必須獨立運行,無需外部計算機連接
設計決策:該設計可以單獨實現整個WSPR編碼過程,也可以使用預先計算的序列進行配置,并簡單地調整序列。預加載序列意味著不對用戶呼號,定位器或電源進行任何改變,而無需將信標重新連接到主計算機以計算新序列。但是,單獨計算WSPR序列需要更多的微處理能力和內存。
我首先使用Microsoft Visual C ++編寫了一個編碼器,以使其工作。然后我遷移到編碼器到C并使用Microchip C18編譯器進行編譯。我選擇的28引腳PIC微處理器通常是PIC18F25K22器件,其內部時鐘頻率FOSC為64MHz,因此指令執行速率為每秒16兆指令。此處理器上的編碼器執行時間約為88us,內存開銷很低。
因此決定在PIC微處理器中實現WSPR編碼器。
設計決策: WSPR傳輸必須在偶數分鐘的頂部之后不遲于一秒開始。因此,必須存在一些機制以保持對實時的準確跟蹤。有兩種可能的方法。第一種解決方案是使用實時時鐘模塊(RTC)。 RTC模塊使用正確的時間進行編程,然后自由運行。可以回讀時間并編程基于中斷的報警。一些RTC模塊非常精確,只有幾個PPM的漂移,但它們會漂移,因此在某些時候,傳輸的準確起點將被違反。第二種選擇是使用GPS模塊提供準確的定時信息。 GPS模塊現在非常便宜,隨時可用無源嵌入式天線或外部天線連接。
決定使用通過串行鏈路訪問的外部GPS模塊。
用戶必須能夠獨立查看關鍵信息
設計決策:此問題的最簡單解決方案是使用LCD顯示器。
我選擇使用通過IIC接口連接到PIC的20字符4行顯示器。
用戶必須能夠輕松地從主機重新編程WSPR信標
設計決策:編寫基于PC的Windows GUI以提供所有必需的配置功能。
我使用用戶可選的調試控制臺窗口在C#中編寫了Windows GUI應用程序。
PC應用程序需要連接到PIC固件
設計決策:兩個明顯的連接選擇是USB或S erial。我選擇的PIC18F25K22有兩個串行接口端口,但沒有USB控制器。
我選擇使用基于無線電的串行連接,允許遠程重新配置和監控WSPR信標,無需布線需要。
我使用的串行無線電模塊是APC220設備。
用戶必須能夠更新(重新閃存)PIC固件,無需專業編程器
設計決策:為了更新或重新刷新PIC固件而無需專門的PIC程序員你需要一個bootloader。引導加載程序是PIC上運行的一小塊固件,一旦啟用,就會與主機通信并協調下載新的應用程序固件并將其閃存到PIC程序存儲器中。
我已經有了Microchip USB引導加載程序,我使用帶有嵌入式USB控制器的PIC器件修改并用于其他項目。然而,PIC18F25K22沒有嵌入式USB控制器。
環顧四周后,我找不到一個能正常工作的串口啟動器,或者我很滿意。所以我拿了Microchip USB Bootloader固件和基于PC的應用程序并重新編寫它們以支持我選擇使用的串行無線電鏈路連接。
信標必須能夠生成自己的RF調制信號
設計決策:為了生成所需的頻率范圍以覆蓋大部分HF頻段以及所需的調制,我使用了AD9850 DDS(直接數字頻率合成)模塊,頻率范圍為0 - 40MHz,足以解決WSPR音調分離問題。
獨立的WSPR信標必須能夠生成自己的RF功率輸出
設計決策:我很早就決定采用RF PA模塊,而不是布局我自己的解決方案。有許多不同的帶寬和功率。最后,我選擇了一個規格為1MHz - 700MHz且RF增益為35dB的PA模塊。
在RF PA之后,必須提供低通濾波以抑制二次諧波和其他高頻率的不良成分。最初我打算讓我自己切換低通濾波器。然而,我從QPR實驗室找到了一個非常好的解決方案,因此最初的原型可以節省時間。
以下步驟依次為每個主要硬件組件提供設計詳細信息 - 硬件部分隨后以原理圖結束
步驟8:Microchip PIC18F25K22 PIC單片機
我從事電信電子工程工作近30年,從事家庭項目已超過40年。我的大部分工作時間都是在FPGA和ASIC技術上工作,但后來在軟件方面越來越多。
毫無疑問,對家用電子設備電子產品的影響最大的是具有廉價功能的微處理器,如Microchip系列PIC部件和Arduino板上使用的ATMEGA系列。多年前,電路板將使用許多分立芯片構建,例如4000和7400系列部件。然后是簡單的可編程CPLD,用于掃描邏輯和后來的FPGA技術。后來,一些FPGA技術擁有像Xilinx MicroBlaze這樣的軟微處理器。
微控制器技術的主要優勢在于大量可用部件 - 數百個。每個部件的核心都有一個微處理器,螺栓固定在各種外圍設備上。我甚至試圖描述可用的器件范圍是毫無意義的 - 我建議您訪問Microchip網站并查看器件選項 - 這可能會讓人感到困惑。我想說如果你能想到一個項目就很難找不到合適的部分。
很多人使用Arduino平臺進行項目工作,這是一個很棒的平臺。但是,對我來說,我更喜歡Microchip PIC技術。這是個人偏好,但我喜歡盡可能接近硬件,如果需要,可以絕對控制到時鐘周期。 PIC解決方案可能不是Arduino庫快速編碼的最快路徑。然而,對我來說PIC是最好的。..。
往往會發生什么是你喜歡和喜愛的最喜歡的部分的一端。例如,如果我需要USB解決方案,我通常會對PIC18F2550或18F4550這樣做。但是,如果我不需要USB,我通常會選擇PIC18F25K22或變體。
PIC18F25K22數據手冊大約有500頁,所以我不會在這里詳細介紹 - 下載數據表并有看看。令人驚訝的是,有多少功能包裝在一個28針的小包裝中,并且價格低于5磅(品脫啤酒和一些零食)的價格低于1磅。
然而,這里只是一些PIC18F25K22的功能,我正在使用的那些:
32 KB程序存儲器
1536字節數據存儲器
256字節EEPROM
板載64MHz振蕩器
16 MIPS操作
多個硬件中斷
GPIO的25個引腳
IIC接口
EUSART接口x 2
多個定時器模塊
我已將數據表的前面頁附加到更好地了解該器件的功能。
PIC微處理器軟件開發和編程
對于PIC的編程,我使用PICKIT3。我發現這是一個優秀的程序員,從來沒有遇到過問題。我使用的那個實際上是一個我從eBay拿到大約15英鎊并且工作得很好的克隆。
PIC固件全部用C語言編寫,我使用的是MPLAB IDE版本8.這是一個舊的版本,但我對它非常熟悉,沒有理由升級。我使用Microchip C18編譯器進行優化,再次使用舊版本,但如果沒有損壞,請不要修復它。..。
步驟9:PIC單片機開發板
我是這些PIC單片機開發板的忠實粉絲。它們非常便宜,價格大約10英鎊,并且擁有您開展項目原型所需的一切。該主板具有以下主要功能,可減少開展工作所需的驢工作量:
插座28針PIC插座
5V和3V穩壓器
編程標題
電源指示燈
主復位按鈕
兩個通用按鈕
反極性保護
原型設計區域
一般來說,對于我購買原型的項目然后,如果需要,可以使用2.54mm接頭將原型板搭載到第二塊較大的電路板上。在WSPR項目的情況下,我設法將APC220無線電串行接口模塊和NEO-7M GPS模塊安裝到原型板上,然后將所有剩余的模塊安裝到基板上。基板的所有控制,時鐘,數據和電源引腳均可通過2.54mm接頭連接。可以隨時拔下原型板進行修改或添加其他部件。所有的東西都是使用標準的單芯模擬線和一些去耦電容進行連接,以便進行良好的測量。
步驟10:WSPR信標設計原理圖
這一步是我的項目原理圖。
基于PIC微處理器的項目的優點是硬件通常很簡單,這個項目也不例外。在“過去”中,硬件本來就是大部分工作。如果這個項目在四十年前就可以實現,那么硬件將占用我工作室的一半,并且需要幾個月的時間來構建。現在一切都是高度集成的,硬件設計只包括將模塊連接到微處理器,所有工作都在軟件中。
關于原理圖,有幾點需要注意:
AD9850是一款非常耗電的設備,從內存消耗約300mW并且變得非常熱。這和所有其他懸掛在5V導軌上的東西導致LM7805穩壓器需要散熱器。它不需要強制空氣冷卻,但需要散熱器。我發現沒有散熱器,調節器因熱保護而開始掉電。
用于RF PA的基于FET的電源開關可以用繼電器代替,我碰巧有FET和光電-isolator在車間敲門。
注意GPS模塊UART端口上的470R串聯電阻。這些是必需的,因為PIC UART端口2與PIC編程引腳共用它的引腳。如果您想連接GPS并仍然使用PIC編程器,則需要這些電阻。
注意LCD顯示器端口上的10K上拉電阻。 LCD通過IIR接口控制,需要上拉電阻。
原理圖未顯示使用的某些去耦電容。我傾向于在每個模塊的電源軌上放置一個100nF的去耦電容,以便進行良好的測量。
步驟11:NEO-7M GPS衛星定位模塊
這是一個非常酷的小模塊。..。..
之前我玩過GPS模塊,但這是我第一次真正需要一個模塊集成到項目中的憤怒。
如前所述,WSPR傳輸必須同步到偶數分鐘的頂部,因此PIC micro需要訪問實時時鐘源。我本可以使用預先編程的實時時鐘模塊然后自由運行。
責任編輯:wv
-
編碼器
+關注
關注
45文章
3650瀏覽量
134758 -
接收器
+關注
關注
14文章
2473瀏覽量
71990
發布評論請先 登錄
相關推薦
評論