UWB定位产品不可忽视的MAC层实现

从开源的代码以及DW1000提供的代码,均没有很好的MAC层控制实现,对于定位模块的产品化来说,这是缺少关键的一层,只实现了功能,绝不能算是产品;


MAC:MAC协议全称Media Access Control(媒体访问控制子层),该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。


DW1000的官方文档明确提出了DW1000的收发器模块并没有实现MAC层,但对MAC层的实现提供了支撑能力:


11 APPENDIX 2: The IEEE 802.15.4 MAC layer


The DW1000 transceiver does not implement the MAC layer. The MAC layer implementation is 

the responsibility of the host microprocessor system controlling the DW1000. However the DW1000 

includes some features to help with the MAC layer implementation. These are:

> CRC generation and checking, (see section 5.1 – Cyclic redundancy check).

> Frame filtering, (see section 5.2 – Frame filtering).

> Automatic acknowledgement, (see section 5.3 – Automatic Acknowledgement).

> Automatic turn-around to receive acknowledgement and other responses, (see section 5.4 – Transmit and automatically wait for response)


中国大学MOOC网中的无线传感网技术课程中,有介绍S-MAC协议 Z-MAC协议,对周期性的侦听和睡眠机制的协议算法实现有较为详细的介绍,没有基础的同学可以听听。


MAC层设计主要考虑的是如下因素:

 ① 能量效率:功耗问题,保证标签模块节能。

 ② 可扩展性和自适应性:系统网络规模、拓扑结构可能发生变化。

 ③ 其他:公平性、延时、吞吐量、带宽利用率等。



UWB应用在煤矿等场景时,通常要求1秒钟能完成200个标签的测距,这就是一个吞吐量和时延的性能指标,如何实现,这就涉及到MAC层的控制;


MAC协议是保证无线传感器网络正常运作、高效通信的关键,主要用于在传感器节点间公平有效地共享通信媒介,对传感器网络的性能有较大影响。


无线传感器网络的无线信道分配机制主要有基于竞争的CSMA/CA载波侦听多址接入技术、时分多路复用TDMA机制、频分多路复用FDMA机制以及码分多路复用CDMA机制;


CSMA/CA载波侦听多址接入技术包括有: S-MAC协议、T-MAC协议、ARC-MAC协议、Sift-MAC协议、Wise-MAC协议等。

S-MAC(Sensor MAC)协议是一种以CSMA为基础、基于竞争的MAC协议,它采用了类似IEEE802.11mac协议的冲突避免机制;


感器无线通信模块状可分为发送、接收、侦听、休眠,耗能依次减少。从能耗出发,MAC协议通常采用侦听/休眠交替的无线停产使用策略,采用按需使用信道的方式,通过竞争方式占用无线信道。
1、S-MAC协议:特点让所有节点进行周期性侦听与休眠,达到节能目的。明显的节能效果,无法适应负载的变化,固定的周期增加了网络的时延,降低吞吐量。
2、T-MAC协议:特点根据流量动态调整侦听时间,通过进一步缩短侦听时间降低能耗。更节能,牺牲了网络的时延和吞吐量,早睡问题、额外通信开销、网络冲突、协议复杂性等问题。


多址接入技术的目的是让多个用户能同时接入基站,享受基站提供的通信服务,保证各个用户之间的信号不会互相干扰。 

主要采用频分多址接入方式(FDMA);

第二代移动通信系统(2G)主要采用时分多址接入方式(TDMA);

第三代移动通信系统(3G)主要采用码分多址接入方式(CDMA);

第四代通信系统(4G)主要采用正交频分复用多址接入方式(OFDMA),而非正交多址接入方式;


那么这些协议的实现有没有源码参考呢?比方在github上找到的:

https://github.com/wpond/Orient-TDMA

https://github.com/mdislam/TDMA-Implementation


TDMA-Implementation例子由三个子程序组成,可以较好的理解TDMA的实现:

command for Broadcaster: ./broadcaster 192.168.0.255

command for DataServer: ./dataServer

command for listener (client): ./listener


broadcaster 充当信标广播者,每隔100 milliseconds发送一个信标广播给 client,如果client_id匹配,则在100ms内 发送数据给dataServer,测试程序发送了 94 milliseconds  数据,然后就结束发送,继续等待信标通知;



参考阅读IEEE 802.15.4 - 2011 中文版:

https://github.com/tidyjiang8/ieee-802.15.4/blob/v2011/SUMMARY.md



参考:

https://blog.csdn.net/weixin_42353331/article/details/86527421

https://blog.csdn.net/qq_43872529/article/details/104278276



呱牛笔记

本文为呱牛笔记原创文章,转载无需和我联系,但请注明来自呱牛笔记 ,it3q.com

请先登录后发表评论
  • 最新评论
  • 总共0条评论