作者MasterChang (我爱ASM)
看板ASM
标题Re: [问题] 比较不易受干扰的平价RF module
时间Tue Dec 20 00:31:07 2016
因为对象是linux跟arduino.....
: UART的问题是比较慢(我指把接收到的讯号传输给cpu)
: 根据规格好像是115200bps?
:
对,uart是比较慢,不过发送资料不用等待全部资料都送出才往下执行程式。
: 那如果我传送个4 bytes的资料至少需要278us
: 如果buffer里面还有东西没传完搞不好加倍。
:
linux是写到传送缓冲区,没记错buffer size是4k,你也可以修改更大的值
Arduino是64bytes,所以发送函式将资料写到缓冲区就射後不理,除非它满了。
: spi的话RPI可以支援8Mb/s(似乎更多),我传4 bytes大概才4us
:
你要考虑的是RF模组的buffer,因为无线电频宽才是决定资料能传多快。
uart多,除了介面简单,就是无线频宽不高,uart足以应付。
: 如果还有real time的要求+CPU的load很紧的时候这就差很多了....
: 我一个控制周期4ms,I2C就占掉1ms左右,
: 如果用在无线传输的时间太久我得花更多心力去处理超时问题....
linux很难做real time,real time至少要保证回应时间,好歹用thread解决这问题。
要不就把xenomai移植进来。
--
不要问我从哪来,我只是一个浪迹天涯的工程师....
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.232.57.227
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ASM/M.1482165071.A.FA6.html
1F:→ cs8425: Arduino的预设buffer size是64Byte喔 12/20 12:27
2F:→ cs8425: 而且不是射後不理,是靠中断一个byte一个byte丢(没硬体FIFO 12/20 12:27
buffer size误植已修正。
射後不理看你用什麽角度看,基本上主程式就是射後不理,中断的部份
已经不需要使用者care。care那个就别用arduino。
※ 编辑: MasterChang (118.232.57.227), 12/20/2016 22:01:47