gpt4 book ai didi

communication - 开始和停止位(串行通信)

转载 作者:行者123 更新时间:2023-12-05 00:19:29 24 4
gpt4 key购买 nike

  • 如果串行通信中没有开始和停止位会发生什么?
  • 起始位和停止位有什么用?
  • 最佳答案

    如果您愿意,整个位集合就是一个数据包。否则,起始位和停止位与数据位无法区分。例如,假设您有一个起始位、一个停止位、无奇偶校验和 8 个数据位。这意味着有一个低位(开始)8 个数据位(可以是 256 种组合中的任何一种)和高位(停止)。接收器必须被告知这是 8N1,所以它正在寻找一个低位、8 位和一个高位,如果它没有看到,那么它没有锁定数据,并且很可能它基本上丢弃第一位,移入再一个,然后在中间寻找一个开始和停止的 8。一旦它看到,它就会假定它是真实数据并允许字节/字符进入接收缓冲区。如果接下来的 10 位没有那个起始 8 位停止模式,那么这是一个帧错误,它会再次开始搜索。所以如果这个模式进来

    000000000000011111

    前 10 位没有开始和停止

    0000000000

    所以丢弃第一个零并重试

    00000000000011111

    0000000000

    不,仍然没有开始和停止

    这重复直到串行流移入看起来像这样

    00000000011111xxxxxxxxxxxx

    0000000001

    我们有一个开始、8 位和一个停止,所以我们认为一个好的字符 0x00 在 rx 缓冲区中保存了 0x00。

    从停止位之后的下一位开始,我们取下一个 10

    1111xxxxxxxxxxxx

    并且不以起始位开始,所以这是一个帧错误

    1111xxxxxx

    我们回到寻找起始位 8 位和停止位。

    如果您使用奇偶校验位,那么它是相同的,但您不仅需要开始和停止,还需要中间的位具有特定的奇偶校验,偶数或奇数。所以为了获得一个好的字符,你需要开始,一些具有正确奇偶校验和停止位的位,然后你可以提取字符并在停止位之后开始寻找另一个起始位。

    关于communication - 开始和停止位(串行通信),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35809616/

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