Re: [问题] 比较不易受干扰的平价RF module

楼主: MasterChang (我爱ASM)   2016-12-20 22:20:07
※ 引述《wtchen (没有存在感的人)》之铭言:
: 我是用Arduino发送,RPi接收
了解
: 不管有无buffer,CPU还是必须为了传送资料而被占用。
: (只有4 byte我想应该用不到DMA)
: : 你要考虑的是RF模组的buffer,因为无线电频宽才是决定资料能传多快。
: : uart多,除了接口简单,就是无线频宽不高,uart足以应付。
: 我要用RF module做到的是遥控,buffer太大对我来说没啥帮助。
: (当下的指令才有意思)
RF模组就是这样,不管你用uart或spi写入RF模组,除非下指令立即发送,
一般来说就是等buffer满或等待超时,要不然就是找低延时的RF模组。或
是有些模组会告诉你定长封包反而延时短。
: : linux很难做real time,real time至少要保证回应时间,好歹用thread解决这问题。
: : 要不就把xenomai移植进来。
: 目前的经验,只要不要涉及 file i/o
: (因为SD卡会因为wear leveling机制造成有时写入时间过长)
: 出来的时间都是算很准,我的要求周期4ms误差在1ms就ok
不知道你的实作目标是啥?以前玩机器手臂,real-time是用RTX,
none real time是一般windows应用程式,线上通讯,规划,资料交换都在
windows上,手臂控制用ethercat跑逆运动学是在RTX(100us周期)。两者之
资料是透过goble share memory交换。
所以你应该要思考一下那些是要跑RT?那些不用?资料交换方式怎么实作?
而不是一昧求RF资料交换快,RF不可靠。要快还不如用实体线路,比如Arduino用
w5500建立ethernet用实体线路跟Pi连。
在Pi上RT跑4ms周期,jitter都到0.1ms这样大,jitter 1ms的要求是很有问题
甚至有些控制是不是直接用外部硬件做掉而不是在Pi上跑RT。光抢占核心优先
权其他事情就很难保证了。
: (使用Preempt RT误差不超过0.1ms, Xenomai结果稍差会到0.3ms)
: file i/o后来我是多开一个thread解决,不过会因为这样漏掉一些data
: (这无法避免,wear leveling你不用也不行阿)

Links booklink

Contact Us: admin [ a t ] ucptt.com