2.mesh組網通信
接上一篇,其實對我來說plutosdr最有意義的是這個自組網通信的應用,上一篇講的三維頻譜圖只是顯示效果比較酷炫,而且可以脫機使用,但是其實頻譜圖本身不太稀奇,玩sdr看了不少能畫頻譜圖的工具了,
但是這個自組網通信十分厲害,我認為它的優點有以下幾個:
1.不需要像LTE基站那樣,所有無線設備都必須圍繞基站,脫離基站范圍后終端不能互相通信,
2.所有信號處理都在sdr板子上完成,不需要電腦處理基帶資料,這樣電腦運行的作業系統是任意的,
3.部署快速,配置完成后,直接上電就能在幾秒鐘內開始運行,
4.所有無線口都可以自己加功放(得有業余無線電執照),可以實作遠距離通信,
刷韌體步驟其實比上一次講的還要簡單,
https://github.com/tvelliott/charon
到上面這個鏈接里下載,build_pluto_image是已經編譯好的韌體,這里面就一個檔案pluto.frm,把它放到plutosdr的u盤里,然后彈出,就刷好了,
刷完以后還不能馬上用,因為既然是自組網,到時候會有好多個設備接在一起,要確保所有設備的ip地址都是不一樣的,而剛刷完韌體后,ip都是一樣的,我說的ip包含2個ip,一個是plutosdr自己的ip,還有接在plutosdr上的電腦的ip,都需要不一樣,
比如我今天測驗的時候有2個plutosdr,和兩臺電腦,
第一套設備的plutosdr ip是192.168.2.1,電腦ip(host ip)是192.168.2.10,
第二套設備的plutosdr ip是192.168.2.3,電腦ip(host ip)是192.168.2.50,
這些都在plutosdr的u盤里config.txt里面改,
# Device Configuration File
# Edit, Save and then Eject the USB Drive
[NETWORK]
hostname = pluto3
ipaddr = 192.168.2.3
ipaddr_host = 192.168.2.50
netmask = 255.255.255.0
[WLAN]
ssid_wlan =
pwd_wlan =
ipaddr_wlan =
[USB_ETHERNET]
ipaddr_eth =
netmask_eth = 255.255.255.0
[SYSTEM]
xo_correction =
udc_handle_suspend = 0
[ACTIONS]
diagnostic_report = 0
dfu = 0
reset = 0
calibrate = 0
我的其中一個檔案是這樣的,為避免重復我把hostname也改為不一樣的了,改完了保存后,彈出u盤就行,
但是我發現光這樣還不行,如果用ssh登錄plutosdr,它的ip其實還是默認的192.168.2.1,需要登錄進去運行一遍重啟服務
/etc/init.d/S100-start_charon restart
才能把ip改過來,你可以看到終端視窗上啟用了新ip,這時候ssh會中斷,因為ip變了,所以以后都需要用新的ip才能登錄,
我不知道這是不是bug,因為照道理設備啟動就會啟動這一套程式,而這個restart只不過是作者為了讓人能在終端上看到設備狀態才用的,不知道為啥設定ip也需要手動呼叫這個restart,
總之這樣就設定好ip了,
設定完ip后,可能你會發現你電腦還是無法ssh登錄plutosdr,這是因為plutosdr的dhcp服務有時候有點問題,你只需要在你電腦的網卡(plutosdr會在你的電腦上創建虛擬網卡)設定里手動設定ip就行,電腦ip就是你前面設定的host ip,網關和dns都是plutosdr的ip,
這樣其實就設定完成了,如果你是第一次使用還不太會用,你可以用之前運行過的那個restart命令在終端上觀察一下plutosdr內部的報文,
程式一啟動會有好多初始化,里面也會說有一些service有點問題,不用理會,
接著就是跳出下面這樣的內容,
TAPDEV_IN -> RF_OUT , len=54
RF_IN->TAPDEV_OUT_, len=54, rssi: -77.4 dBm, rx EVM -22.7 dB, in-gain: 65 dB, d-rate 272 Kbps, #sub-carriers=64, mod: qam16
TAPDEV_IN -> RF_OUT , len=54
TAPDEV_IN -> RF_OUT , len=54
RF_IN->TAPDEV_OUT_, len=54, rssi: -82.6 dBm, rx EVM -21.7 dB, in-gain: 65 dB, d-rate 272 Kbps, #sub-carriers=64, mod: qam16
TAPDEV_IN -> RF_OUT , len=54
RF_IN->TAPDEV_OUT_, len=54, rssi: -88.4 dBm, rx EVM -21.9 dB, in-gain: 65 dB, d-rate 272 Kbps, #sub-carriers=64, mod: qam16
TAPDEV_IN -> RF_OUT , len=54
RF_IN->TAPDEV_OUT_, len=54, rssi: -78.9 dBm, rx EVM -20.9 dB, in-gain: 65 dB, d-rate 272 Kbps, #sub-carriers=64, mod: qam16
RF_IN->TAPDEV_OUT_, len=54, rssi: -76.2 dBm, rx EVM -23.7 dB, in-gain: 65 dB, d-rate 272 Kbps, #sub-carriers=64, mod: qam16
TAPDEV_IN -> RF_OUT , len=54
TAPDEV_IN -> RF_OUT , len=54
RF_IN->TAPDEV_OUT_, len=54, rssi: -82.1 dBm, rx EVM -21.1 dB, in-gain: 65 dB, d-rate 272 Kbps, #sub-carriers=64, mod: qam16
TAPDEV_IN -> RF_OUT , len=54
RF_IN->TAPDEV_OUT_, len=54, rssi: -76.5 dBm, rx EVM -27.9 dB, in-gain: 65 dB, d-rate 272 Kbps, #sub-carriers=64, mod: qam16
RF_IN->TAPDEV_OUT_, len=54, rssi: -89.3 dBm, rx EVM -25.0 dB, in-gain: 65 dB, d-rate 272 Kbps, #sub-carriers=64, mod: qam16
TAPDEV_IN -> RF_OUT , len=54
比較短的TAPDEV_IN -> RF_OUT表示你在發射,比較長的RF_IN -> TAPDEV_OUT_表示你從另一個plutosdr上收到的資料包,一開頭你可能只有比較短的報文,沒有長的報文,你可能要等待一會,挪動2個plutosdr(不是越近越好),或者調整一下頻率(因為時鐘有誤差,導致你設定的915MHz,不一定正好在915MHz上,如果2個設備的收發頻點對不上,就收不到了),如果看到比較長的那種報文,就表示大功告成了,
接下來你就可以在兩臺電腦上互相ping對方的ip了,比如在192.168.2.10那臺電腦上ping 192.168.2.50,
一開頭要等一段時間建立arp表,然后才會ping通,我這里實測ping的延遲在100ms以下,搞定以后也可以嘗試ssh登錄對方電腦并且復制檔案,我實測速度80kbps,比原作的慢,原作4個節點,沒有多跳狀態下也能達到114kbps,理論應該在272kbps,
我估計是ppm導致的問題,我雖然能成功連接2個設備,但是還是有誤差,導致浪費了一些資源,但是暫時還不敢去改這個引數,
我前兩天用mobaxterm改組態檔,結果提示crc錯誤,然后那個plutosdr就變磚了,dfu模式也進不去,看來以后還是得用linux內部的vi來改,

這是我的一臺電腦的照片,大的終端視窗是登錄到plutosdr上然后顯示的自組網程式的輸出,小的終端視窗是我用的這臺電腦在ping自組網里的另一個電腦的ip,
使用視頻(2套系統): https://www.bilibili.com/video/BV1sa4y1j7PX/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/122999.html
標籤:其他
