图1:ALOHA 竞争型MAC
LoRa Radio PHY 物理层有一定的距离优势,但是速率比较低,所以也不太适合做路由多跳之类的MAC层设计。而官方给出的LoRaMAC,即LoRaWAN是一种面向数据采集和星型拓扑的MAC设计,上传采用ALOHA竞争协议,而下发采用TDD预分配方式。
我打算做的是上下传均基于ALOHA的MAC协议。之前找到过Air9的开源代码,但是整合后发现编译时出现CircularBuffer报错,最近才发现原来除了应用层中导入了CircularBuffer模板,mbed/platofrom层里也有一个类似的,而且是同名的CircularBuffer。所以,将应用层的CirularBuffer改名为RingBuffer解决此问题。
接下来,会持续进行ALOHA协议的系统整合,测试完毕后交付给大家测试一下。基于ALOHA,可以在PC/Android等系统中完成一些相对完整的设计了。我会提供基于Python的二次开发代码,至于C#/Java/JavaScript/Lua等就靠大家自己努力了。毕竟基于USB CDC开发,和开发串口一样容易。