Re: [問題] 比較不易受干擾的平價RF module
※ 引述《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你不用也不行阿)
--
不要問我從哪來,我只是一個浪跡天涯的工程師....
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.232.57.227
※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1482243611.A.4CC.html
※ 編輯: MasterChang (118.232.57.227), 12/20/2016 22:25:00
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章