请教无线通讯问题

工程师老师您好,遇到点问题请教一下

我用的RF_PHY_HOP例程,通讯正常,但是有几个问题要咨询一下

1:发送端以高速不间断的状态调用tmos_start_task(taskID, SBP_RF_PERIODIC_EVT, 100)发送,很稳定,也没有误码,但是速度降低以后比如一秒一次,或者手动发送就会频繁出错,有crc错误和RX_MODE_HOP_SHUT..等,还会无响应大概5秒左右自动从新连接,请问这个问题要如何解决

2:如果每次以跳频的方式手动发送,调用tmos_start_task(taskID, SBP_RF_CHANNEL_HOP_TX_EVT, 100);这种状态发送数据不会错误,但是发送会延迟5秒左右,速度很慢,请问是什么原因

3:因为我需要实时性,采集到数据后要以最快的速度发送过去,不希望在感官上有延迟,还有这种发送方式在遇到干扰以后会不会自动跳频,跳频后从新发送所需要的时间是多久,能不能手动设置。

4:如果我用多个发送端往一个主机上发送要怎么做,


以上问题麻烦老师抽时间给看一下,感谢感谢



老师您好,我得问题是不是没有说清楚,我从说一下,我用2.4G通讯传送器数据,如果每秒发送一次。或者手动控制发送一次,就很容易产生错误,比如漏传,或者信号中断。如果每秒发送5-6次并且连续发送就不会漏传,也不会链接中断,请问老师是哪里没弄对,


默认例程使用的内部32k,误差是比较大的,可以使用外部32k,修改CLK_OSC32K为0选择内部,

上述的5s,其实应该是4s多一点,是由HeartPeriod决定的,默认40,单位100ms,也就是4s,

如果是多个发,一个收的话,需要做好包的分类,在发的包中体现是那个设备发的,接收端则接收完数据立即再开启接收,且在跳频例程中不适用,建议是是用RF PHY例程。跳频例程主要是用于1对1有回包的通信的。



感谢老师回复,请问老师,不用跳频会不会容易被干扰甚至丢包?

是不是所有发送端都采用相同地址,如果两个客户端同时发送数据 会不会出现问题?

选择外部32K时钟要在哪里设置

谢谢老师!麻烦您了!


在信号不好或者干扰大的情况下是会丢包的,

一般你是很难做到两个发送端在同一时刻发送,如果两个发送非常接近,这就看接收端的处理了,如果仅是将数据保存下来立马打开接收,这是一个很快的过程,如果加一些自己的处理导致开接收慢了,那么后面的一包是会丢的,

选择32k时钟就是修改config.h文件中的CLK_OSC32K为0。

建议在工程配置中修改,可参考下方链接添加宏,

https://www.cnblogs.com/risc5-ble/p/15990422.html



请问老师两个数据包之间的时间间隔是多少?是否受心跳包100ms的限制?我现在测试好像不能快速连续发包,如果是受100MS限制,目前无法满足需求,请问要如个修改这个间隔时间,谢谢老师


两包数据的间隔就是tmos任务的最小间隔625us,但是间隔小了,包长也是要缩小的,发送间隔是不受心跳包最小单位100ms的限制的。


请问老师问题,RF_PHY例程里面的接收模式,接收后会把收到的数据发出去做效验是吧,请问老师怎么关闭这个功能?发送端设置LLEMODE可以发送后进入空闲,接收端要怎么设置才能让它一直处于接收模式呢?谢谢老师


如果使用的是ch573或者ch582的例程,那么RF_PHY例程默认就是basic模式,接收端是不回包的,接收端想要一直处于接收模式,需要在接受完数据之后再次进入接收模式,也就是例程的处理方式,并不能开一次接收就一直是接收状态。


只有登录才能回复,可以选择微信账号登录