代码之家  ›  专栏  ›  技术社区  ›  geschema

如何选择同步词?

  •  7
  • geschema  · 技术社区  · 15 年前

    我使用的是一个数据传输系统,它在每一个超级帧的开头使用一个固定的同步字(0xd21db8)。我很想知道如何选择这种同步词,也就是说,设计师根据什么标准来选择这种同步词的长度和值。

    2 回复  |  直到 15 年前
        1
  •  11
  •   jldupont    15 年前

    简而言之:

    • 唯一性概率高

    • 高密度过渡

    它取决于底层的“服务器层”(在通信术语中)。如果说 服务器层 不提供区分的方法 有效载荷数据 控制信号 然后必须制定一个协议。在面向同步比特流的传输层中,通常依靠同步模式来描述 有效载荷 单位。SONET/SDH/OTN就是这种技术的一个很好的例子,它是主要的光传输通信技术。

    通常,选择同步词的主要标准是 唯一性概率高 . 当然是什么让它 独特性 属性取决于用于 有效载荷 .

    例子: 在SONET/SDH中,一旦同步字 建立 ,它被验证为 超帧 (我不记得有多少)在声明 同步 州。这是必需的,因为 假阳性 可能发生:同步位流上的编码不能保证生成与同步字正交的编码有效负载模式。

    还有一个标准:高密度的跃迁。有时, 服务器层 两者都是 时钟 数据 信号(即不分离)。在这种情况下,接收器能够 符号 从流中,确保最大数量的0->1、0->1转换以提取 时钟 信号。

    希望这有帮助。

    更新的 这些 presentations 也可能感兴趣。

        2
  •  6
  •   Steve Melnikoff    15 年前

    在物理层,另一个考虑因素(除了jldupont的答案中提到的那些)是,可以使用同步字将接收器的通信时钟与发送器的通信时钟同步。同步可能只需要将接收器的时钟调零,但也可能需要更改时钟的频率,以便与发送方的时钟更接近。

    对于典型的异步协议,发送方和接收方需要具有相同的时钟。当然,在现实中,时钟永远不会完全相同,因此通常会指定最大误差。

    有些协议不要求接收器调整其时钟频率,而是通过过采样或其他方法来容忍错误。例如,一个典型的UART能够通过在起始位的第一个边缘归零来处理错误,然后在期望每个位的中间位置采集多个样本。在这种情况下,同步字只是开始位,并确保在消息开始时进行转换。

    HART 工业协议中,同步字是0xFF,加上零校验位,重复多次。这表示为模拟波形,使用 FSK ,并显示为1200赫兹正弦波的8个周期(等于8比特次),然后是2200赫兹时的一个比特时间。此模式允许接收器检测到存在有效信号,然后通过检测从2200 Hz到1200 Hz的转换,同步到字节的起始位置。如果需要,接收器也可以使用此波形来调整其时钟。