首页 > 其他分享 > UWB MAC层技术浅谈

UWB MAC层技术浅谈

时间:2023-06-27 19:00:48浏览次数:45  
标签:浅谈 信道 MAC 时隙 UWB 节点 设备

前言

​ 对于大多数人来说,使用DW1000相关测距例程,按着教程实现简单的一对一测距不会有什么大问题。但当应用到实际场景后,现场环境同时出现几台,几十台设备时就会发现整套系统会出现严重的丢包、通信不良问题。而这其中的原因,是因为DW1000芯片只提供了UWB PHY层的实现,只完成了设备之间的基本一对一收发通信功能。而对于数据链路的管理,则需要由用户自行在主控上实现更上层的协议,来自行对其进行分配和管理。

​ IEEE802系列标准把数据链路层分成LLC(Logical Link Control,逻辑链路控制)和MAC(Media Access Control,介质访问控制)两个子层。上面的LLC子层实现数据链路层与硬件无关的功能,比如流量控制、差错恢复等;较低的MAC子层提供LLC和物理层之间的接口,在IEEE802.15.4-2011规范中,对MAC层的功能定义如下:

  • 如果设备是coordinator,则生成网络beacon
  • 同步网络中的beacon
  • 提供个人局域网(PAN)的组成和断开
  • 提供设备安全
  • 为信道访问提供CSMA-CA(带有冲突避免的载波侦听多路访问)机制
  • 处理和维护GTS(可靠时隙)机制
  • 为对端MAC实体提供可靠的连接

IEEE802.15.4规范中,对上述相关MAC功能的定义和说明长达数十页,本文并不想花大量的时间去做逐一介绍和分析,这里我只对MAC协议中一些我认为的关键功能做简要介绍,用于提供一个基本的入门分享,想了解的更详细的可以直接阅读IEEE协议原文。

数据链路管理

​ 一般而言,对于UWB多设备通信,有如下几种的访问链路的方式

  • 纯Aloha方式:即不作任何管理,设备有数据要发送就直接发送到链路中,不考虑与其他设备数据发生碰撞的可能

  • 带CCA的Aloha方式:在aloha方式上加上信道评估(clear channel access),信道空闲才发数据到链路中去,避免去其他设备抢资源。

  • 时分复用方式(Super Frame),由专门的设备作为coordinator,为其他设备划分好单独的信道使用时隙(Slot)。

对于第一种纯Aloha方式无需多言,特点便是实现简单,缺点便是解决不了多设备碰撞问题。

对于第二种带CCA的Aloha方式,只能保证正在通信的设备数据包不会被其他设备碰撞损坏,但对于通信时序要求高的测距应用来说,如果当根据时序要发送测距包时信道被占用,就会无法通信导致测距失败。当设备增多到一定程度时,还会出现信道一直被占用导致无法通信的问题。

对于这种方式,在DW1000中可以通过检查是否有收到前导码来确认信道是否干净。

而对于第三种使用时分复用的方式,是IEEE协议中使用的方式。整个信道资源按时间分成一片片的时隙(slot),由coordinator来分配各个设备的数据收发时隙,每个设备只能在分配给自己的是时隙里进行数据的收发,保证beacon之间不会相互干扰。

为什么不考虑频分复用呢,这是由于UWB带宽宽,信道少,没那么多信道做频分。那码分行不行,码分也是不行的,由于正交码数量有限,也是无法支持大规模节点部署

时分复用方式

超帧

​ 通过使用时分复用技术,单一信道上的所有节点可通信的时间被逐一划分为一个个时隙(Slot),所有节点都完成一轮通信的时隙加起来便叫做超帧(SuperFrame)。即

\[Superframe = Slot_0+Slot_1+Slot_2+....+Slot_n \]

时隙

​ 一般而言,这种时分复用的系统中会包含coordinator(协调者)和beacon(节点)两个角色。coordinator对整个系统的时隙进行管理,规定每个beacon可以使用哪一个时隙进行通信。超帧中的时隙一般会分为两类:

  • 控制时隙:用于Coordinator管理PAN系统中beacon的入网出网,时间同步等网络维护
  • 普通时隙:用于对应beacon发起通信,一般有N个beacon就会有N个这样的时隙

​ 时隙的大小决定了整个系统的容量,普通时隙约大,通信的时间越长,可以容纳的节点就越少。

​ 而在这些时隙中又可以根据其属性分为竞争时隙和非竞争时隙。对于非竞争时隙可以很好理解,即由系统分配好的时隙,不会出现设备相关竞争的情况。而竞争时隙属于不受系统分配的时隙,会出现设备竞争的情况。对于整个系统,绝大多少时隙属于非竞争时隙,但只有在进行节点设备入网时会出现需要竞争时隙的情况。

​ 在时隙中也会划分更细小的时间帧片段,用于节点设备的发送、接收、保护间隔。这里需要根据协议设计做进一步设计。

PAN的维护

​ 一般而言对于Coordinator来说,维护PAN系统有如下基本工作:

  • ​ 新节点入网
  • ​ 旧节点出网
  • ​ 系统时间同步

​ 入网指的是移动节点从独立状态加入到整个PAN系统的过程,在这个过程中新节点需要在合适的时隙中向Coordinator发起入网请求,让Coordinator评估好信道资源是否有空余后,准许新节点加入并分配对应的工作时隙。

​ 出网和入网相反,但要注意的是入网是节点主动发起的,但出网既可以是节点主动发起的,也可以是被动离开的。这里的被动离开考虑的是当节点突然下线(比如没电、距离过远),Coordinator需要及时发现,并释放相关时隙的使用权,保证链路资源不会浪费。

​ TDMA系统以时间来划分链路资源,系统时间的准确是至关重要的。由于现实因素影响,设备长时间工作后时间逐渐偏移是很正常的,这种偏移会导致收发双方会在非对应时隙内发起通信,从而干扰到其他设备的正常运行。

参考设计

​ 对于实际的UWB测距或者定位系统来说,实现一个可靠MAC层,可以大大提高系统的节点的容量和吞吐率,降低其丢包率。上述内容介绍只是一些简单介绍,对于更多功能例如自组网、移动节点漫游、加密鉴权等功能还需要更多协议的支持。目前对于UWB来说并没有和Wifi、蓝牙那样拥有成熟的公用协议可以直接使用,各个方案商更多的是根据实际应用场景来实现私有的MAC协议,也并非走的IEEE的标准。

​ 对于想要自己实现自己私有的MAC协议的朋友来说,这里提供一些我看到的公开的MAC协议给大家参考:

1、由Qorvo官方基于DW1000+STM32做的一套TOF系统DEMO,包括软硬件,叫做TREK1000 EVK。其中软件实现一套MAC层协议,支持多节点测距以及定位功能。这套DEMO目前原厂已不再销售维护,但相关设计资料还是在流传,有兴趣的朋友可以到Qorvo官网上搜下。

2、github上有很多优秀的开源MAC协议,例如Z-MAC、S-MAC、AdHoc。这些协议有时分复用的、有基于CSMA/CA的Aloha的,有兴趣的可以到github官网上搜下有很多。

3、在知网上有看到一些论文也对UWB MAC技术做了分析。其中一些硕士论文写的很好,基本上把相关UWB MAC协议的各种实现方案描述的很清楚。例如一篇《基于TDMA的UWB高密度室内精准定位系统的设计与开发-张世锟》的,有兴趣的朋友可以到知网上搜下。

4、淘宝上有些类似于正点原子那种的工作室在卖开发板和资料,几百块就能拿到一套软硬件资料,做的东西看演示效果也挺不错的,拿来应付下大学生毕设可以,商用还要再做进一步开发。这里有兴趣的朋友可以上淘宝搜下。

4、钞能力解决一切,市场上有些专门方案公司,实在搞不定的就外包吧。这里有兴趣的朋友可以上百度搜下。

标签:浅谈,信道,MAC,时隙,UWB,节点,设备
From: https://www.cnblogs.com/simpleGao/p/17509718.html

相关文章

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot
    regaddHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot/vAvailableUpdates/tREG_DWORD/d0x10/f命令是用于在注册表中添加一个名为"AvailableUpdates"的DWORD值,并将其设置为十六进制值"0x10"。此操作需要管理员权限才能执行。这个命令的作用是向......
  • 浅谈“信创”时代,恒辉软件发展前景
    随着中国的发展,很多技术因为一些原因越来越受制于人,尤其是上游核心技术。为了解决这个问题,中国明确了“数字中国”建设战略,抢占数字经济产业链制高点。自主创新与国产化已成为我国实现科技强国、经济强国的发展趋势与行业共识,中国要逐步建立基于自己的IT底层架构和标准,促使信创......
  • MacOS 清除软件缓存和配置文件
    MacOS清除软件缓存和配置文件最近在mac上安装并激活软件的时候遇到问题,不论如何重新安装软件,软件都不会更新软件信息,推断需要删除软件的配置文件macos软件安装后,文件所在的路径在macos上,软件安装会将缓存等文件存放到如下可能的路径:Binaryanddockiconsarelocatedin/Ap......
  • mac 使用 brew安装包报错 fatal: not in a git directory,Error: Command failed with
    在mac下使用brew安装包的时候,最后一行会报错:fatal:notinagitdirectoryError:Commandfailedwithexit128:git导致包安装不成功,解决办法:brew-v 绿色框就是提示你需要做的,输入gitconfig--global--addsafe.directory/opt/homebrew/Library/Taps/homeb......
  • mac 下使用 brew 安装包报错 error: Cannot install under Rosetta 2 in ARM default
    mac下使用brew安装包报错error:CannotinstallunderRosetta2inARMdefaultprefix(/opt/homebrew)!TorerununderARMuse:arch-arm64brewinstall...Toinstallunderx86_64,installHomebrewinto/usr/local. 解决:arch-arm64brewinstallxxx ......
  • 浅谈基于企业微电网平台的食用菌工厂的能源管理--安科瑞张田田
    摘要:从食用菌生产经营者角度指出食用菌工厂化生产的产品生鲜属性、微生物培养的技术特点和竞争战略难以突破决定了成本控制是经营的核心。分析食用菌生产的成本构成,指出加强能源管理是节本增效的重要途径,从电费的分类和改善方式、灭菌的燃料选择和改善方法、未来能源可拓展方向(太阳......
  • mac电脑安装软件报错“软件已经损坏”的解决方案
    尝试以下解决方案:在终端中输入以下命令:xattr-r-dcom.apple.quarantine把app文件拖动进来,最后回车,就可以正常运行了。如图......
  • macos中回退键是Command+shift+z,我该如何改成Command+y?
    在使用macOS操作系统时,回退键的默认快捷键是Command+Shift+Z。然而,对于一些用户来说,这种组合键可能不太方便,因此他们希望将其改为其他组合键,例如Command+Y。如果你也想更改回退键的快捷键,请按照以下步骤进行操作。操作如下,打开系统设置-键盘 mac技巧及软件安 ......
  • mac系统使用合集
    开启/关闭任何来源终端命令macOS开启任何来源:sudospctl--master-disablemacOS关闭任何来源:sudospctl--master-enable查看SIP系统完整性保护状态方式一:终端命令输入:csrutilstatus方式二:按住option+点击屏幕作上方的......
  • MAC安装多个版本node命令
    背景:在实际项目开发中,不同的项目我们往往需要用到不同版本的node做支持,并且需要根据项目需要切换,以下就是常用的命令行。Mac下使用n去安装多个指定版本的Node.js,并使用命令随时切换。1.全局安装nnpminstall-gn2.指定版本的Node安装sudo-En16.17.03.查看已经安装的Noden......