嵌入式PIC单片机通过互联网与服务器通信的最佳协议?

时间:2013-12-24 01:43:58

标签: networking snmp network-protocols tcp-ip microchip

首先,感谢您抽出时间阅读这篇文章。

我正在寻求使用Microchip的PIC18或PIC32系列嵌入式微控制器和Microchip的TCP / IP协议栈开发支持TCP / IP的器件。但是,我对网络的了解目前非常基础,因此就是这篇文章的原因。

有人可以推荐用于我的TPC / IP嵌入式设备的最佳协议,以便它可以与数据中心的服务器通信吗?我的目的是让嵌入式设备位于互联网上某处的远程位置,服务器可以与设备通信并下载温度计探头读数等数据,以存储在数据库中。我还希望数据中心服务器能够在需要时重新配置远程设备上的设置和变量。

到目前为止,我对协议的研究使我有了以下选择:

  • SNMP v3(由于加密和身份验证而导致版本3)
  • UDP(虽然我读到这可能不可靠但速度很快)
  • TCP(我对此还不太了解)

有人可以向我提供有关最佳路线的建议吗?我不希望你得到详细的答案,但我真的想了解哪些主题/协议需要研究和研究。

我的目的是通过互联网部署许多这些嵌入式设备,他们都将数据发送回服务器。

我认为远程嵌入式设备必须连接到服务器而不是反之亦然,因为服务器将具有静态IP地址或DNS名称,而远程设备地址将是未知的。

对此的任何建议都将非常感激。如果我错过了这篇文章中的任何关键信息,请不要犹豫。

非常感谢。

Rob

*更新 * 有人指出,我可能误用了Web服务器这个术语,所以我修改了我的帖子,改为在数据中心中提到服务器。谢谢你指出这一点。

3 个答案:

答案 0 :(得分:1)

如果目标是Web服务器,则您没有任何选择。您必须使用通过TCP运行的HTTP。

否则你滥用“网络服务器”一词。

答案 1 :(得分:1)

在很多方面,这取决于您的具体要求。 TCP / IP能够提供非常可靠的连接,因为它提供了一种方法来确定客户端是否已连接,何时连接以及何时断开连接。 UDP是无连接的,因此服务器打开一个端口并侦听数据,但没有自动连接管理,因此客户端需要在服务器到达或正在运行时明确“告知”服务器(这也意味着您需要自己制作)超时设施)。

此外,如果您的内存/处理资源非常有限,请注意UDP是一种不那么“昂贵”的协议,因为它避免了TCP因内置连接管理而产生的大量开销。

虽然这些都是协议,但它们实际上只是处理连接本身。您可能仍需要创建自己的协议来管理数据本身。例如,当您通过TCP或UDP发送数据时,您发送的字节可能不会同时到达服务器。这意味着您需要一种方法来验证您收到的每个数据包,以确保您拥有所有数据包。这通常通过校验和和表示发送数据总大小的字节的组合来实现。

答案 2 :(得分:0)

你也可以考虑mqtt(http://mqtt.org)。它是一种轻量级消息传递协议。要对邮件进行编码,您可以考虑使用protobuf(https://code.google.com/p/protobuf/