CC1100接收模式下的数据包滤波
CC1100支持2种不同的数据包滤波标准:地址滤波和最大长度滤波。置PKTCTRL1.ADR_CHK大于0将开启数据包地址滤波。数据包处理机制将数据包种的目的地址字节同ADDR寄存器中已设定的节点地址及0x00广播地址(PKTCTRL1.ADR_CHK=10时)或同时0x00和0xFF广播地址(PKTCTRL1.ADR_CHK=11时)相比较。如果接收地址同有效地址匹配,则数据包被接收且被写入RX FIFO。若地址匹配失败,则数据包被丢弃。
可变数据包长度模式下,PKTLEN.PACKET_LENGTH寄存器的值用来设置最大允许数据包长度。若接收长度字节值比这个值大,则数据包被丢弃。
这2种情况下,在丢弃当前数据包后接收模式会重新开启(与MCSM1.RXOFF_MODE中的设置无关)。
传输模式下的数据包处理
将被传送的有效载荷必须写入TX FIFO。当可变数据包长度可得时,第一个待写入的字节必须是长度字节。长度字节的值等于数据包(包括可选地址字节)的有效载荷。如果固定数据包的长度可得,则第一个写入TX FIFO的字节被解释为目的地址,若此功能在接收端可用的话。
调制器会先送入控制数目的前导字节。如果TX FIFO中的数据可用,调制器会发送2字节(或4字节)同步词汇,接着是TX FIFO中的有效载荷。若CRC可用,则计算所有拉入TX FIFOZ中数据的检验合。然后在有效载荷数据末端,这个结果被以2个额外字节发送。
若白化可用,则长度字节,有效载荷数据合2个CRC字节将被白化。这一步在可选FEC/交错器阶段完成。设置PKTCTRL0.WHITE_DATA=1,则白化可用。
若FEC/交错器可用,则长度字节,有效载荷数据合2个CRC字节将被交错器混杂。在被调制之前,FEC被编码。
接收模式下的数据包处理
在接收模式下,解调器和数据包处理装置将会搜寻有效的前导和同步词汇。找到后,解调器就得到了位和字节同步,然后开始接收第一个有效载荷字节。
若FEC/交错开启,则FEC译码器将开始对第一个有效载荷字节进行译码。交错装置将在任何其他处理数据的过程之前对比特进行反交错运算。
如果白化开启,则这个阶段数据将被反白化。
若可变数据包长度开启,则第一个字节为长度字节。数据包处理装置把这个值作为数据包长度存储,且接收长度字节数目的字节。如果固定数据包长度开启,则数据包处理装置会接收程序控制数目的字节。
然后,数据包处理装置随意地检查地址,地址匹配时才继续进行接收。若自动CRC检查开启,则数据包处理装置计算CRC,并将它同附加CRC检验和相匹配。
在有效载荷末端,数据包处理装置将随意写入2个包含CRC状态,连接质量指示和RSSI值的额外数据包状态字节。
注:整理自网络