首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于串行(RS485) ascii传输的简单健壮的纠错

用于串行(RS485) ascii传输的简单健壮的纠错
EN

Stack Overflow用户
提问于 2010-07-15 23:40:53
回答 3查看 821关注 0票数 0

我有一个非常低速的串行数据连接(RS485):9600波特,实际数据传输速率约为该速率的25%。

串行线正在通过一个极高电磁干扰的区域。峰值波动可达3000千伏。

我(目前)还不能强制改变物理介质,但可以很容易地提出一个简单而健壮的前向纠错方案。该方案需要易于在PIC18系列微型计算机上实现。

想法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-16 00:08:06

This site声称在PIC18上实现了里德-所罗门算法。我自己从来没有用过它,但也许它会是一个有帮助的参考?

票数 1
EN

Stack Overflow用户

发布于 2010-09-02 21:00:37

搜索MODBUS ASCII协议中使用的CRC算法。

票数 1
EN

Stack Overflow用户

发布于 2010-09-24 11:10:23

我使用PIC18设备进行开发,目前使用的是MCC18和PICC18编译器。几周前,我注意到PICC18的外设报头错误地将Busy2USART()宏映射到TRMT位,而不是TRMT2位。在我发现这个问题之前的短时间内,这让我头疼不已。例如,一个简单的传输:

代码语言:javascript
复制
putc2USART(*p_value++);
while Busy2USART();
putc2USART(*p_value);

当Busy2USART()宏被错误地映射到TRMT位时,我从不等待字节离开移位寄存器,因为我监控的是错误的位。在我意识到头文件不准确之前,我能够成功地在485上传输一个字节的唯一方法是在字节之间等待1ms。我的波特率是91912,字节之间的延迟杀死了我的吞吐量。我还建议实现一种冲突检测和校验和的方法。校验和很便宜,即使在PIC18上也是如此。如果您能够监听自己的传输,那么这样做可以让您意识到相同环路上的重复地址和不正确的计时可能导致的冲突。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3257238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档