adalm pluto (2) mesh组网通信

2023-12-12 06:38
文章标签 通信 组网 mesh pluto adalm

本文主要是介绍adalm pluto (2) mesh组网通信,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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/

这篇关于adalm pluto (2) mesh组网通信的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/483601

相关文章

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

C++编程:ZeroMQ进程间(订阅-发布)通信配置优化

文章目录 0. 概述1. 发布者同步发送(pub)与订阅者异步接收(sub)示例代码可能的副作用: 2. 适度增加缓存和队列示例代码副作用: 3. 动态的IPC通道管理示例代码副作用: 4. 接收消息的超时设置示例代码副作用: 5. 增加I/O线程数量示例代码副作用: 6. 异步消息发送(使用`dontwait`标志)示例代码副作用: 7. 其他可以考虑的优化项7.1 立即发送(ZMQ_IM

数据集 3DPW-开源户外三维人体建模-姿态估计-人体关键点-人体mesh建模 >> DataBall

3DPW 3DPW-开源户外三维人体建模数据集-姿态估计-人体关键点-人体mesh建模 开源户外三维人体数据集 @inproceedings{vonMarcard2018, title = {Recovering Accurate 3D Human Pose in The Wild Using IMUs and a Moving Camera}, author = {von Marc

AF透明模式/虚拟网线模式组网部署

透明模式组网 实验拓扑  防火墙基本配置 接口配置 eth1  eth3   放通策略  1. 内网用户上班时间(9:00-17:00)不允许看视频、玩游戏及网上购物,其余时 间访问互联网不受限制;(20 分) 应用控制策略   2. 互联网用户只允许访问内网两台服务器的 WEB、SSH 和远程桌面服务,其余 服务均不允许访问;(20 分) 外网访问内网的限制策略   虚拟网线模式组网 实

VB和51单片机串口通信讲解(只针对VB部分)

标记:该篇文章全部搬自如下网址:http://www.crystalradio.cn/thread-321839-1-1.html,谢谢啦            里面关于中文接收的部分,大家可以好好学习下,题主也在研究中................... Commport;设置或返回串口号。 SettingS:以字符串的形式设置或返回串口通信参数。 Portopen:设置或返回串口

深入理解TCP通信

这大概是自己博客上面第三次写TCP通信demo了,总是写同样的内容也不太好啊,不过每一次都比前一次进步一点。这次主要使用了VIM编辑工具、gdb调试、wireshirk、netstat查看网络状态。 参考《C++服务器视频教程》、《Unix网络编程》 一、VIM常用命令 vim server.cpp #打开一个文件:w 写入文件:wq 保存并退出:q! 不保存退出显示行号

电子电气架构---私有总线通信和诊断规则

电子电气架构—私有总线通信和诊断规则 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、