2017-03-08 70 views
0

任何人指導我如何禁用從Tinyos內置CRC?如何從Tinyos禁用內置CRC(循環冗餘校驗)?

+0

你是指無線電接收機中的CRC?提供更多的細節:什麼平臺,什麼無線電芯片,等等。 – maral

+0

是的,有關tinyos無線芯片的一些信息:CC2420是一款真正的單芯片2.4 GHz IEEE 802.15.4兼容RF收發器,專爲低功耗和低電壓無線應用而設計。 CC2420包含一個數字直接序列擴頻基帶調制解調器,可提供9 dB的擴頻增益和250 kbps的有效數據速率。 –

回答

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; 
     } 
     } 

你應該注意的收發器仍然會刪除一些不好的數據包,雖然你可以改變它以各種方式配置,以確保它通過讓更多的壞數據包。