首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AX.25协议干扰发送数据包

AX.25协议干扰发送数据包
EN

Stack Overflow用户
提问于 2015-03-17 05:28:45
回答 1查看 277关注 0票数 0

我很抱歉不能为这个问题提供代码,但这更符合逻辑的情况。我的AX.25协议的终止序列是"111111“,即6个1。因此,如果在我的数据包中发现这个1序列,它将表示数据包文件的末尾,并在不正确发送数据包的其余部分的情况下发送它。我会尽我所能解释我的结论和测试结果,以便您能理解我的困境。

字节1包含8位。看看下面,尝试在一个矩形框中描绘一个字节。紧挨着它的是字节2,也包含8位。情景1:

||_1__1_1_1__1__ ||_1_1_1_1_1_1___||

尝试的解决方案1:您可以简单地将1更改为0并跟踪它。

情景2:

||_1__1_1_1__1_1_ ||_1_1_1_1___1__||

尝试的解决方案2:尝试的解决方案1失败了。我被困在这里了。

单独激活AX.25终止序列时,字节是安全的,但组合字节会导致问题。

以下是可能的情况列表:

1)六个1=为数据包末尾激活的终止序列

2)包的实际数据内六个1=提前终止

3)如果将1更改为0,则6个0的序列在恢复更改时可能会出现问题

4)由于内存限制,一次只能读取一个字节(EEPROM)

5)如果两个字节之间出现6个1,也会提前激活终止序列。

提前感谢您的任何帮助。

EN

回答 1

Stack Overflow用户

发布于 2015-04-07 08:33:37

ax.25协议要求的解决方案是位填充。

从概念上讲,只要接收器看到5个连续的1比特和一个0比特,它就会假定该0比特已被发送器填充(以分解数据中的错误帧序列),并在发送接收到的数据之前将其删除。可以未填充发送的6个1比特的唯一序列是成帧序列;所有数据都将被填充发送。接收器必须始终去杂物。

填充或解填充通常需要几个字节的工作ram (或几个字节的寄存器),尽管可能有一些创造性的方法。

引用官方的TAPR协议标准:

为了确保上述标志位序列不会意外地出现在帧中的其他任何位置,发送站监视一组五个或更多连续的“1”位的位序列。任何时候发送五个连续的“1”位,发送站在第五个“1”位之后插入一个“0”位。在帧接收期间,任何时候接收到五个连续的“1”位,紧跟在五个“1”位之后的一个“0”位就会被丢弃。

在谷歌上搜索AX.25位填充应该会返回您可能需要的所有详细信息。

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

https://stackoverflow.com/questions/29087265

复制
相关文章

相似问题

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