Re: [問題] 比較不易受干擾的平價RF module

看板ASM (組合語言)作者 (我愛ASM)時間8年前 (2016/12/20 22:20), 8年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《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
文章代碼(AID): #1OMJuRJC (ASM)
文章代碼(AID): #1OMJuRJC (ASM)