1. 程式人生 > >基於LORA SX1278的溫度監控控制系統開發設計-軟體方案基於時分複用TDMA

基於LORA SX1278的溫度監控控制系統開發設計-軟體方案基於時分複用TDMA

軟體是硬體的靈魂,靈活的軟體設計賦予硬體不同的功能。

使用lora組網一般有兩種方式,一種是使用semtech官方的sx1301基帶和他的射頻方案,1301擁有8個射頻通道相當於8個車道併發能力非常好。但是應用成本很高,一片1301晶片好幾百,而且1301對於普通公司來說一直處於半封閉狀態,即使買成熟的方案成本也非常高。實際上1301配合LORAWAN設計出來是為了構建城市的商用運營商級別網路的,Semtch在歐美甚至中國香港都有部署。就像中國的聯通或者移動運營商,中國要建運營商網路叫NB-IoT。下圖是lorawan的資料流結構圖,上層使用NetworkServer和ApplicationServer實現節點入網和節點漫遊等大型物聯網的複雜管理工作。

說到這裡大家明白了,雖然1278只有一個射頻通道,但是對於我們普通私有的物聯網路來說走這個獨木橋更符合實際。這不能說明我們窮,這叫窮的智慧,技術的發展不都是窮的智慧嗎。

什麼是TDMA,英文叫time division multiple access,中文叫分時多重進接。為什麼要這樣做呢,因為1278是一個半雙工的射頻晶片,只有一個通道,而這一個通道就是我們要說的獨木橋,這個獨木橋有個特點,在一個時間內他只能讓一個人過,而大家都想過橋怎麼辦呢,分開時間順序通過唄。

複雜的事情簡單做你就是專家。具體到組建一個基於TDMAlora無線網路,其實我們只要解決兩個問題就好了。第一:時間同步,用來同步各個節點和閘道器的時鐘,保證各個節點的時鐘誤差始終保持在網路設計的誤差範圍內;第二

:安排資料收發策略,就是過獨木橋順序的演算法。

時間同步的方法很多,比如gps授時,可以實時獲取納秒級的UTC時間,缺點是功耗大,適合應用於市電的閘道器上或者需要UTC時間的地方。也可以使用高精度的有源晶振,在裝置上電時候校準,這種方式不太靈活,而且這種高精度晶振成本很高,上電校準操作複雜;剩下的就是自力更生自己解決了,依靠我們自己的網路進行時間同步,閘道器固定週期每2分鐘廣播一次時鐘校準訊號,節點定時喚醒接收同步訊號。我們使用普通的10ppm晶體2分鐘的誤差是1ppm*120=1.2毫秒,1小時誤差是36毫秒,節點在喚醒同步時候需要判斷誤差的具體資料,如果誤差很小需要延長時鐘的同步週期以達到省電的目的。同步時鐘還有一個問題,因為無線傳輸本身是需要時間的,而

lora是擴頻通訊,傳輸時間受到前導碼長度、擴頻碼、誤位元速率等共同影響,還好lorawan的開原始碼中已為我們提供了這個複雜的計算方法,為了減少節點mcu的計算工作,我們提前計算好固定長度時鐘同步幀的無線傳輸時間。

關於資料的傳輸策略演算法也很多,一類是固定序列法,常用的是陣列序列和雜湊查詢法,這種演算法簡單且高效但是需要為每個節點配置,工作量多大,適合節點數量較少的情況;另一種是動態解演算法,資料的傳輸策略儲存在閘道器或者後端伺服器中,節點首次需要進行入網操作來動態獲取自己的資料傳輸策略,即時鐘同步後執行CADCAD成功後傳送入網申請,這種方式複雜度較高,但是後期維護方便。




TDMA溫溼度系統已實現,有任何需求詳細聯絡QQ286851918或者微信qxfy2011交流