LoRa 之一 旧版驱动(sx12xxDrivers | 您所在的位置:网站首页 › STM32官方驱动 › LoRa 之一 旧版驱动(sx12xxDrivers |
在之前的项目中,一直使用 LoRa 通信。很早之前就想写写文章记录一下学习过程。怎奈一直是一知半解的状态,想写不敢写!LoRa 这个东西在国内用的貌似不是太多。 对于无线通信,各个国家或者地区都有严格的限制。例如,我们国家就有。前两年,工信部出了个指导意见还是啥东西来着,差点把 LoRa 搞黄了!LoRa 是工作在免费频段的。关于免费频段各个国家或者地区是有区别的!我们国家的各种规定在工信部官网可以找到!废话不多说,想要了解 LoRa 是啥的自己去搜索,我们重点说用法! LoRa 和 LoRaWAN在介绍使用之前,我们必须要先区分好这两个概念!LoRa 是低功耗广域网通信技术中的一种,而按照 LoRa 联盟官方白皮书《what is LoRaWAN》的介绍,LoRaWAN 是为 LoRa 远距离通信网络设计的一套通讯协议和系统架构。类比于我们的网络通信,LoRa 定了物理层,而 LoRaWAN 定义了 MAC 层、数据链路层。LoRaWAN 定义了一套通信系统的架构,底层使用的是 LoRa 通信。这个应该就和我们的网络协议栈差不多吧。 在我们的实际使用中,我们可以仅仅使用 LoRa 进行最基本的通信,通信的应用层协议则有我们自己定义。当然,我们的通信只能和我们自己定义的应用层协议的设备通信。Semtech 出了好几款 LoRa 收发器芯片供我们选择。当然也可以按照 LoRaWAN 的要求来实现系统中的通信,这个就要复杂好多了,完整的 LoRaWAN 网络架构中包含了终端、网关、NS(网络服务器)、应用服务器这四个部分。 当前有好多公司都出了各种各样的 LoRa 模块以及 LoRa 网关模块。我的环境是自己画的 LoRa 模块,使用了的芯片时 SX1276。我这里也不需要 LoRaWAN。 驱动 首先,我们需要知道 Semtech 的 LORA 芯片支持 LORA 模式和 FSK 模式,所以驱动中是包含对这两种模式的处理的。目前,Semtech 官网有两款驱动,一款是旧的驱动,驱动内部只实现了对于 LoRa 芯片的基本操作,另一个款是最新的包含对 LoRa 芯片的基本操作和 LoRaWAN 定义的实现。老版驱动 Semtech 已经停止更新了,也不建议用在新的生成环境中。两种驱动对比如下图: 驱动的架构并不复杂,如下图所示: 下面是对各文件(夹)的一个简单的介绍: * src * │ main.c 这其中有个给出了使用方法(初始化、收发数据等),作为参考在自己的项目中使用。!!!知道如何测试后删除即可!!! * ├─platform * │ │ platform.h 在此文件中对驱动进行配置。!!!这个必须要保留!!! * │ ├─bleeper 以下这些平台自己在移植时其实我们就需要其中的某个文件即可。所以所谓的平台对我自己的项目来说根本无用。 * │ ├─stm32libs 其他代码文件都是一些针对测试开发版的文件,我们不需要。 * │ ├─sx1200dvk 因为,我们自己的项目中必然有自己的实现。 * │ ├─sx1243ska 其实,最终我们就需要其中一个文件:xxx-Hal.c(根据自己的芯片类型) * │ └─sx12xxEiger Process() 以处理驱动库的状态机![]() ![]() |
CopyRight 2018-2019 实验室设备网 版权所有 |