0

有人指导我如何禁用 Tinyos 的内置 CRC 吗?

4

1 回答 1

0

转到相关的 receiveP 模块并删除那里的 CRC 校验。例如,在流行的 CC2420 收发器(在 TelosB 中使用)中,CRC 在 CC2420ReceiveP 模块的第 646 行中进行检查(下面的代码摘自CC2420ReceiveP)。

 // We may have received an ack that should be processed by Transmit
      // buf[rxFrameLength] >> 7 checks the CRC
      if ( ( buf[ rxFrameLength ] >> 7 ) && rx_buf ) {
        uint8_t type = ( header->fcf >> IEEE154_FCF_FRAME_TYPE ) & 7;
        signal CC2420Receive.receive( type, m_p_rx_buf );
        if ( type == IEEE154_TYPE_DATA ) {
          post receiveDone_task();
          return;
        }
      }

您应该注意收发器仍会丢弃一些坏数据包,尽管您可以通过各种方式更改它的配置以确保它允许更多的坏数据包通过。

于 2017-05-15T10:03:12.570 回答