軟件是硬件的靈魂泻肯,靈活的軟件設計賦予硬件不同的功能盅弛。
使用lora組網(wǎng)一般有兩種方式蜡歹,一種是使用semtech官方的sx1301基帶和他的射頻方案憨募,1301擁有8個射頻通道相當于8個車道并發(fā)能力非常好赡突。但是應用成本很高对扶,一片1301芯片好幾百,而且1301對于普通公司來說一直處于半封閉狀態(tài)惭缰,即使買成熟的方案成本也非常高浪南。實際上1301配合LORAWAN設計出來是為了構(gòu)建城市的商用運營商級別網(wǎng)絡的,Semtch在歐美甚至中國香港都有部署漱受。就像中國的聯(lián)通或者移動運營商络凿,中國要建運營商網(wǎng)絡叫NB-IoT。下圖是lorawan的數(shù)據(jù)流結(jié)構(gòu)圖,上層使用NetworkServer和ApplicationServer實現(xiàn)節(jié)點入網(wǎng)和節(jié)點漫游等大型物聯(lián)網(wǎng)的復雜管理工作喷众。
說到這里大家明白了各谚,雖然1278只有一個射頻通道,但是對于我們普通私有的物聯(lián)網(wǎng)絡來說走這個獨木橋更符合實際到千。這不能說明我們窮昌渤,這叫窮的智慧,技術(shù)的發(fā)展不都是窮的智慧嗎憔四。
什么是TDMA膀息,英文叫time division multiple access,中文叫時分多址了赵。為什么要這樣做呢潜支,因為1278是一個半雙工的射頻芯片,只有一個通道柿汛,而這一個通道就是我們要說的獨木橋冗酿,這個獨木橋有個特點,在一個時間內(nèi)他只能讓一個人過络断,而大家都想過橋怎么辦呢裁替,分開時間順序通過唄。
復雜的事情簡單做你就是專家貌笨。具體到組建一個基于TDMA的lora無線網(wǎng)絡弱判,其實我們只要解決兩個問題就好了。第一:時間同步锥惋,用來同步各個節(jié)點和網(wǎng)關的時鐘昌腰,保證各個節(jié)點的時鐘誤差始終保持在網(wǎng)絡設計的誤差范圍內(nèi);第二:安排數(shù)據(jù)收發(fā)策略膀跌,就是過獨木橋順序的算法遭商。
時間同步的方法很多,比如gps授時淹父,可以實時獲取納秒級的UTC時間株婴,缺點是功耗大,適合應用于市電的網(wǎng)關上或者需要UTC時間的地方暑认。也可以使用高精度的有源晶振困介,在設備上電時候校準,這種方式不太靈活蘸际,而且這種高精度晶振成本很高座哩,上電校準操作復雜;剩下的就是自力更生自己解決了粮彤,依靠我們自己的網(wǎng)絡進行時間同步根穷,網(wǎng)關固定周期每2分鐘廣播一次時鐘校準信號姜骡,節(jié)點定時喚醒接收同步信號。我們使用普通的10ppm晶體2分鐘的誤差是1ppm*120=1.2毫秒屿良,1小時誤差是36毫秒圈澈,節(jié)點在喚醒同步時候需要判斷誤差的具體數(shù)據(jù),如果誤差很小需要延長時鐘的同步周期以達到省電的目的尘惧。同步時鐘還有一個問題康栈,因為無線傳輸本身是需要時間的,而lora是擴頻通信喷橙,傳輸時間受到前導碼長度啥么、擴頻碼、誤碼率等共同影響贰逾,還好lorawan的開源代碼中已為我們提供了這個復雜的計算方法悬荣,為了減少節(jié)點mcu的計算工作,我們提前計算好固定長度時鐘同步幀的無線傳輸時間疙剑。
關于數(shù)據(jù)的傳輸策略算法也很多氯迂,一類是固定序列法,常用的是數(shù)組序列和哈希查找法言缤,這種算法簡單且高效但是需要為每個節(jié)點配置囚戚,工作量多大,適合節(jié)點數(shù)量較少的情況轧简;另一種是動態(tài)解算法,數(shù)據(jù)的傳輸策略存儲在網(wǎng)關或者后端服務器中匾二,節(jié)點首次需要進行入網(wǎng)操作來動態(tài)獲取自己的數(shù)據(jù)傳輸策略哮独,即時鐘同步后執(zhí)行CAD,CAD成功后發(fā)送入網(wǎng)申請察藐,這種方式復雜度較高皮璧,但是后期維護方便。
該TDMA溫濕度系統(tǒng)已實現(xiàn)分飞,有任何需求詳細聯(lián)系QQ286851918或者微信qxfy2011交流
硬件實現(xiàn)請參考:基于LORA SX1278的溫度監(jiān)控控制系統(tǒng)開發(fā)設計-硬件方案設計