gpt4 book ai didi

c - 用于嵌入式设备的良好串行通信协议(protocol)/堆栈?

转载 作者:太空狗 更新时间:2023-10-29 16:20:39 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

3年前关闭。




Improve this question




在为各种项目编写了几种不同的自定义串行协议(protocol)之后,我开始对每次都重新发明轮子感到沮丧。代替继续为每个项目开发定制解决方案,我一直在寻找更通用的解决方案。我想知道是否有人知道满足以下要求的串行协议(protocol)(或更好的实现):

  • 支持多种设备。我们希望能够支持 RS485 总线。
  • 保证交货。某种确认机制和一些简单的错误检测(CRC16 可能没问题)。
  • 不是主/从。理想情况下,从站将能够异步发送数据。这主要是出于审美原因,轮询每个奴隶的概念对我来说并不合适。
  • 操作系统独立性。理想情况下,它根本不会依赖抢占式多任务环境。如果我能得到其他东西,我愿意承认这一点。
  • ANSI C。我们需要能够为几种不同的架构编译它。

  • 速度不是什么大问题,我们愿意放弃一些速度来满足其他一些需求。但是,我们希望尽量减少所需资源的数量。

    我即将开始实现带有背负式 ACK 且没有选择性重复的滑动窗口协议(protocol),但我想也许有人可以为我省去麻烦。有谁知道我可以利用的现有项目?或者也许是更好的策略?

    更新
    我认真考虑过 TCP/IP 实现,但真的希望有更轻量级的东西。 TCP/IP 的许多功能对于我正在尝试做的事情来说太过分了。我愿意(不情愿地)接受我想要的功能可能不包含在更轻的协议(protocol)中。

    更新 2
    感谢您提供有关 CAN 的提示。我过去看过它,将来可能会使用它。不过,我真的希望该库能够处理确认、缓冲、重试等。我想我更多的是寻找网络/传输层而不是数据链路/物理层。

    更新 3
    所以听起来这个领域的最新技术是:
  • 精简的 TCP/IP 堆栈。可能从 lwIP 之类的东西开始或 uIP .
  • 基于 CAN 的实现,它可能严重依赖 CAN 总线,因此在其他物理层上没有用处。像 CAN Festival一路上可以提供帮助。
  • HDLC 或 SDLC 实现(如 this one )。这大概就是我们要走的路。

  • 如果您遇到此问题,请随时发布更多答案。

    最佳答案

    你考虑过HDLCSDLC ?

    还有LAP/D (链路访问协议(protocol),D channel )。

    Uyless Black 的“Data Link Protocols”总是在我的书架附近——你也可以在那里找到一些有用的资料(甚至仔细阅读 TOC 并研究不同的协议(protocol))

    关于c - 用于嵌入式设备的良好串行通信协议(protocol)/堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1159379/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com