原创 关于 PTR6000 的实际通讯速率探讨

2010-9-11 13:58 2464 11 11 分类: MCU/ 嵌入式

转贴 http://group.ednchina.com/239/12262.aspx


关于 PTR6000 的实际通讯速率探讨


文章发表于:2008-07-20 16:51



     PTR6000 这类通讯模块近期比较流行,号称是 2.4Ghz 载波,2Mbps,可我在使用中仔细琢磨资料后觉得这 2Mbps 有些“假”,如果你按照一般串口的理解按照 2Mbps 设计,估计会失望 : (


     PTR6000 所使用的无线芯片为 Nodic 公司的 nRF24L01,该系列芯片的主要特征是工作于 ShockBurst? 模式,而 nRF24L01 还增加了一个 Enhanced ShockBurst? 模式,具体如下:


      ShockBurst? 工作模式:主要是将无线收发过程交由芯片自主完成,MCU只负责将数据写入芯片的发送缓冲区,然后通知芯片发送即可。芯片负责打包发送,结束后自动恢复到待命接收态。


     这样处理的主要目的是为了减少空间无线电波的持续时间,降低“碰撞”的概率,从而提高收发的可靠性,也减少了对别的设备的干扰。


     因为发送缓冲区只有 32 字节,所以一个无线数据包最大为 32 字节数据,加上 1字节先导字、3 - 5 字节地址和 0 – 2 字节 CRC,总共只有约 40 字节,按1 – 2M 的bps,只占320 –160 us,由此称之为“突发簇”。


     但是这种方式带来一些副作用,主要是有效数据速率降低了,根据资料介绍,每次接收都有一个 128us 的准备时间,加上辅助的 8 (1 + 5 +2 )字节,以最高效的 32 字节计算,在2Mbps下,需要 288us,等效速率只有约 888 kbps。如果是 1Mbps 的无线速率就只有 444kbps。最低效率为一字节数据发送,只等效于约 40 kbps(20 kbps/1M)。


      如果启用自动应答机制,发送侧收到应答后再发送下一包数据,则等效速率还要低,因为应答仍相当于一个逆向的发送过程,只是没有数据,需占用约 170us(2M),此时发送32字节的等效速率降为约 559 kbps(2M)。


      这些数据在设计程序时要考虑,不能按照标称的2Mbps来计算程序中的时间。


      Enhanced ShockBurst? 工作模式:在上述模式上增加了一个标志字(9位),其中包含了2位的包重发计数,同时支持自动重发,在没有收到应答时,发送侧会自动将发送缓冲区中的数据再次发送,并自动处理计数功能,以减少MCU的处理负担。


     以上是我对手册的理解,如有不妥之处,望指正!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /3 下一条