美文网首页LoRa相关LPWAN设计
物联网网关基础代码

物联网网关基础代码

作者: 小鱼儿他老汉 | 来源:发表于2018-01-20 12:24 被阅读136次

Linux与USB

物联网的核心操作系统还是Linux,而我主张将所有接口都通过USB转接,而避免使用SoC的原生GPIO/PWM/I2C/SPI总线。因为Linux操作系统本身虽然运行速度比较快,却并非实时操作系统。需要外部慢速设备、或复杂协议设备更加适用MCU级别产品。SoC/MCU之间通过USB之上的某种RPC进行沟通。

Linux的所有设备都是虚拟文件,而USB CDC中的ACM和ECM分别对应串口和套接字编程。无论采用何种编程语言,只要连接技术转换到这两种编程方式,就可以有大量的参考设计可以重用。简单、高效、标准、统一。

Python与串口

Linux中C/C++中的串口编程通过termios,Java有Javacom,Python中的pyserial是一个跨平台的解决方案。但是不同版本的Linux支持的Python版本不同,会带来一些兼容问题。比如OpenWRT带的Python是2.7.3,支持的pyserial版本却只有2.4!理论上说,pyserial 2.7/3.4应该是兼容的,但是我还没有在OpenWRT测试过。所以,谨慎起见,我先移植了pyserial 2.7中的example。

线程与异步

pyserial example中有两个例子:

  1. tcp_serial_redirect.py,采用多线程模型,构建了单一serial/socket通道;
  2. multiport_publisher.py,采用select模型,构建了多串口/socket通道。

LoRaWAN单通道网关

LoRaWAN单通道网关的主要任务是设备与空口参数管理,以及LoRaWAN报文转发。这种编程模型适用第一个例子。但是pyserial 2.7和3.4的tcp_serial_redirect例子中采用了两个不同的类来实现。3.4中采用了async,编程风格类似于Twisted的方法,且增加了TCP socket server/client两种连接方式。此外还使用了大量的serial url。

我使用了2.7的例子开始开发,支持TCP socket/client,同时修改了opt。目前设计完毕,并通过Twisted echo server对接。

LoRaWAN多通道网关

某个角度看,pyserial的第二个例子适合多通道,但是Windows下不支持对于非文件的select,而太多线程设计起来也很烦,可能会采用多进程配合消息队列的方式重新设计。

其他

  • 增加LoRaWAN规范和协议;
  • 后台服务化;
  • USB udev检测;
  • 标准安全协议接入,包括TLS;
  • 错误推送;
  • 容错;
  • Admin Web和Web API集成,通过zeromq或其他方式。

相关文章

  • 物联网网关基础代码

    Linux与USB 物联网的核心操作系统还是Linux,而我主张将所有接口都通过USB转接,而避免使用SoC的原生...

  • 用于智能家居网关的802.11ac双频WiFi模块SKW93A

    无线连接技术使设备可以通过手机或网关连接到物联网云端,或者直接连到基础设施。物联网设备的联网方法是通过WiFi、蓝...

  • 多串口网关与Web APP更新

    此篇针对物联网网关和Web APP设计做些更新总结。 物联网网关 基于ARM Cortex-M4的MicroPyt...

  • 物联网网关有哪些功能

    相比于互联网时代,物联网的通信协议更加多样,物的碎片化非常严重,网关的重要性也就由此凸显——物联网网关能够把...

  • 物联网简述

    工业智能网关也叫工业物联网关,是一款具备协议解析,数据边缘计算并标准化的物联网网关终端服务器,利用公用 3G/4G...

  • 物联网网关-万物互联的缔造者

    在物联网的体系架构中,在感知层和网络层两个不同的网络之间需要一个中间设备,那就是“物联网网关”。物联网网关既可以用...

  • 网关在工业互联网领域的作用

    工业物联网关键技术 工业物联网[http://www.hignton.com/sipuyun/]的体系架构 典型的...

  • 物联网学习(8)——物联网网关

    11 物联网网关 很多时候,我们的物联网种的设备会将消息上传到云平台,我们前面将的MQTT协议就可以实现这个功能。...

  • 乐洋昊天:物联网安全重要性不容忽视

    物联网网关是标准的网元设备,是传感网与通信网络实现互联互通的重要设备。运营商通过物联网网关设备可以管理底层的各感知...

  • 实现一个Mqtt网关(一)启用NettyServer.md

    物联网是现在比较热门的软件领域,众多云厂商都有自己的物联网平台,而物联网平台其中一个核心的模块就是Mqtt网关。 ...

网友评论

    本文标题:物联网网关基础代码

    本文链接:https://www.haomeiwen.com/subject/fkxtaxtx.html