c++ - 通过软件提高 IR 串行可靠性

标签 c++ c serial-port serial-communication infrared

我在 Google 上找到的最好的东西是 Reed-Solomon 编码;但这似乎很激烈。

基本上,我正在与一个具有串行端口的资源受限的小型设备进行通信。通过红外线进行通信;串行端口直接连接到红外编码器/解码器硬件,然后连接到红外收发器。

通信是半双工的。这是一个硬件限制,否则 IR 收发器会看到自己的传输。我与主机轮询并在客户端上使用中断来了解何时传回。

我遇到的问题是硬件对静电放电极其敏感。我已经采取了所有实用的硬件措施来减少这个问题,但它们还不够好;我现在正在查看软件问题。

谁能建议错误恢复的任何实现,理想情况下不需要重传?

越简单越好。如果那里有免费图书馆,那就更好了!

最佳答案

如果你不想使用 Reed-Solomon,Golay 怎么样?编码?它是一种非常小的算法,这段代码在一个 C 文件中完全实现了它,并且看起来很适合用于商业项目(尽管它不是标准的开源许可证之一)。

您可能还可以找到其他实现。格雷码是低比特率数字 radio 系统中用于错误恢复的几种机制之一。

link to source code

关于c++ - 通过软件提高 IR 串行可靠性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7838782/

相关文章:

c++ - 树上的多线程

c - C语言中的模数

c# - 当传入串口的数据是异步的时,如何通过 Web 服务存储数据?

检查引脚上的电压并打开 LED

c - 如何使 C 中的排序程序对于大型输入集更快

c++ - 串口未读取完整传输

c++ - 串行端口性能 - VB.NET 与 C++ & Boost

c++ - 无法正确比较两个数字

c++ - 为什么线程随机这么慢,-(或者我的代码哪里错了!)

c++ - 在构造函数中初始化成员