最近使用了433MHZ的模塊進行了一個通信項目,選用的是SX1208模塊,對接了RTOS和Linux兩個操做系統,使用心得以下:linux
1. 首先要拿來datasheet看一遍,通攬一下它的功能。能夠獲得一些信息,好比緩存
2.由於它這個datasheet東西不少,物理層的不少參數也能夠調整。因此拿現成的代碼拿來修改比較快,能夠大大加快開發進度。在網上找到了相似的代碼,把它看懂一遍而後重寫。發現它裏面有一個邏輯有問題,死循環讀取TX中斷腳的電平來判斷數據有沒有發送完,我在RTOS上面仍是能夠正常跑的,可是linux下面就掛死了,由於中斷裏面不能卡過久的(while死循環), 會把linux內核搞瘋掉的。因此仍是要進行中斷和TX線程作分離的。對於RST腳是必定要用到的, 否則會不穩定。底層的緩存隊列也要搞好。dom
下圖是中斷腳的映射關係,通常來講,DIO0就能夠搞定了。性能
3.當底層TRX代碼弄好,性能測試完畢以後,就開始本身寫一個MAC協議了。固然這個MAC協議參考下WiFi的幀格式,把WiFi協議精簡作一下就行了。本身實現完這個MAC的時候作一下壓力測試,TRX同時打,跑了幾天還算穩定的,跑的時候要用不一樣的datarate跑,收集下原始數據,這個階段是比較重要的,由於協議設計的很差會把速率拖慢的。。要注意的MAC層是必定要作random backoff,否則根據實測結果是會陷入死區,數據永遠發送不成功。實測四五個SX1208在環境裏面跑數據徹底是沒問題的。固然不要給它太大的數據吞吐量,原本就不是爲了性能而準備的。額外提一下,AES加密和物理頭過濾必定要作,否則別人收到你的數據就很差了。作一下也不難的,由於是硬件實現,因此沒有負擔。和WiFi配網相似,這裏也要作一個私有的配網。加入按鈕和LED以後也能夠很簡單地作起來,實測OK。測試
4.當MAC層實現好以後就能夠作應用層了。這個就是各自發揮的步驟了,再也不贅述。對於linux下面須要作成驅動,對於buildroot來講能夠放在一個軟件包裏面搞成ko的形式,比較方便,這樣就不要去編譯內核了。對於應用來講,這個模塊佔用了RST,中斷和SPI 四個腳以後腳可能不夠用,拿一個芯片作一下GPIO擴展,老闆說買74HC595,那就買個直插的74HC595(便宜),本身焊個電路,修改下外設代碼,一天內也很快能夠搞定了。加了這個芯片還能夠多出幾個腳,等之後產品形態變了再使用也不遲。ui
5.硬件上來講,拿到的模塊沒有屏蔽殼,驗證,焊接,吹電路容易搞壞仍是要當心一點,這個東西須要天線匹配。讓硬件PCB弄好,最後拿矢網搞定一下。加密
6.展望:這東西有好幾個信道能夠用,後面考慮在Master端作下跳頻,也就是auto channel selection功能。spa