一 概述
LoRa技術具有遠距離、低功耗、多節點、低成本和抗干擾的特點。另一方面,LoRa低速率支持較小的數據傳輸。
服務器、終端(內置LoRa模塊)、網關(或基站)、云四部分組成了LoRa網絡。如圖
Lora技術可用于很多場合,例如隧道通信、電網監視、電表、水表、智能農業、智能水利、智能交通、智能社區、環境監視、工業自動化測試、水產養殖等電表的數據收集等。
二 輪詢模式
輪詢的優點在于其簡單性和能夠同時檢查多個設備的能力。它不需要復雜的中斷設置和管理,因此更容易實現和維護。輪詢的主要缺點是它可能無法及時處理快速變化的事件或數據,因為它只在輪詢周期到達時才檢查設備狀態。
因此,必須注意,如果數據與信號有相關的截止時間(deadlines),那么輪詢時間加上響應時間必須始終小于這些截止時間。如果數據到達的速度快于輪詢時間,那么數據將會丟失。這在許多應用中可能不是問題,但在某些情況下可能是致命的。
相比之下,中斷處理可以立即響應設備狀態的變化,因為它是由設備本身觸發的。但是,中斷處理需要更復雜的設置和管理,包括中斷向量的配置、中斷服務例程的編寫和中斷優先級的設置等。此外,如果多個設備同時觸發中斷,還需要處理中斷嵌套和優先級的問題。
因此,在選擇使用輪詢還是中斷處理時,需要根據具體的應用場景和需求進行權衡。
輪詢模式:將網關設置為該模式后,連接到網絡的節點模塊將處于被動狀態。此時,網關將根據Web設置發出前導(前導期間與喚醒期間相同),喚醒網絡上的所有節點。將數據傳輸到節點發送數據后,當網關收到來自模塊的數據響應時,會立即發送下一個數據。否則,在接收時間到期之前不發送下一個數據。
功能說明:
1.在使用此模式之前,客戶必須設置與插座相關的參數。配置完成后,網關進入監視狀態,節點連接到網絡。網關響應網絡信息,保存節點信息。如果網絡節點的數目超過0或者數據庫能夠訪問該網絡,則該網關將基于設置的喚醒時間、輪詢時間和周期來輪詢喚醒數據并由用戶設置。
2.當節點接收到數據時,節點采取適當的操作并響應相關數據來完成數據交換,然后節點進入睡眠狀態,并且網關等待下一個周期中出現第二個喚醒數據。此模式最多可設置16個喚醒數據。一旦完成了對所有節點(存儲在數據庫中的網絡節點)的喚醒數據的輪詢,第二個輪詢數據將被替換,并重復上述步驟直到下一個輪詢周期。完成后,在輪詢周期結束之前,將重新開始輪詢,從數據庫中保存的第一個數據開始啟動。
輪詢數據設置:由已發布的條目數和輪詢數據組成,在被動喚醒模式下啟用。
發布的條目數:確定下一輪詢數據的數量。例如,如果發布的條目數為4,則僅輪詢數據1~4的數據,最多對應16個命令數據,數據格式為“十六進制”,因此請嚴格以數據格式填寫。
輪詢數據:用戶必須輪詢發出的數據或命令。“十六進制”輸入,最多64字節。請務必以十六進制格式輸入。
三 使用場景
輪詢模式適合設備一直在線的情況下,就像是教室里老師挨個點名,學生挨個回答一樣,這樣子每個人都會在點名的時候進行回答,不會沖突。
四 輪詢組件的使用
1 Gitee鏈接地址
Demo位于amaziot_bloom_os_sdkproductsam-lora-gatewaylora_gateway
Gitee源碼地址:https://gitee.com/ning./hongdou
Github源碼地址:https://github.com/ayumid/hongdou
編譯指令:.build.bat -l .amaziot_bloom_os_sdkproductsam-lora-gatewaylora_gateway
2 組件功能介紹
主機按照設置的間隔輪詢從機,從機收到主機輪詢消息后再上報。
3 代碼講解
1 dtu_lora_call_task_init
功能:該函數用于,初始化輪詢任務。
參數:無
返回值:無
示例:
dtu_lora_call_task_init();
2 dtu_lora_call_task
功能:該函數用于,輪詢主任務。
參數:無
返回值:無
示例:
status = OSATaskCreate(&dtu_lora_call_msgq_task_ref, dtu_lora_call_task_stack, DTU_LORA_CALL_TASK_STACK_SIZE, 151, "dtu_lora_call_task", dtu_lora_call_task, NULL);
3 dtu_lora_call_interval_timer_stop
功能:該函數用于,定時器停止。
參數:無
返回值:無
示例:
dtu_lora_call_task_init();
4 dtu_lora_call_interval_timer_start
功能:該函數用于,開始輪詢定時器。
參數:無
返回值:無
示例:
dtu_lora_call_interval_timer_start();
5 dtu_lora_call_interval_timer_init
功能:該函數用于,輪詢定時器初始化。
參數:無
返回值:無
示例:
dtu_lora_call_task_init();
6 dtu_lora_call_interval_timer_callback
功能:該函數用于,輪詢定時器回調函數。
參數:無
返回值:無
示例:
OSATimerStart(st_dtu_lora.lora_call_ref, dtu_file_ctx->lora.interval * 200, dtu_file_ctx->lora.interval * 200 , dtu_lora_call_interval_timer_callback, 0);
7 dtu_lora_call_task_send_msgq
功能:該函數用于,定時器超時給主任務發送消息,驅動主任務通過lora模塊發送消息。
參數:無
返回值:無
示例:
dtu_lora_call_task_send_msgq(&uart_send);
4 Demo實戰
參考開源項目Lora網關
本文章源自奇跡物聯開源的物聯網應用知識庫Cellular IoT Wiki,更多技術干貨歡迎關注收藏Wiki:Cellular IoT Wiki 知識庫(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)
歡迎同學們走進AmazIOT知識庫的世界!
這里是為物聯網人構建的技術應用百科,以便幫助你更快更簡單的開發物聯網產品。
Cellular IoT Wiki初心:
在我們長期投身于蜂窩物聯網 ODM/OEM 解決方案的實踐過程中,一直被物聯網技術碎片化與產業資源碎片化的問題所困擾。從產品定義、芯片選型,到軟硬件研發和測試,物聯網技術的碎片化以及產業資源的碎片化,始終對團隊的產品開發交付質量和效率形成制約。為了減少因物聯網碎片化而帶來的重復開發工作,我們著手對物聯網開發中高頻應用的技術知識進行沉淀管理,并基于 Bloom OS 搭建了不同平臺的 RTOS 應用生態。后來我們發現,很多物聯網產品開發團隊都面臨著相似的困擾,于是,我們決定向全體物聯網行業開發者開放奇跡物聯內部沉淀的應用技術知識庫 Wiki,期望能為更多物聯網產品開發者減輕一些重復造輪子的負擔。
Cellular IoT Wiki沉淀的技術內容方向如下:
奇跡物聯的業務服務范圍:基于自研的NB-IoT、Cat1、Cat4等物聯網模組,為客戶物聯網ODM/OEM解決方案服務。我們的研發技術中心在石家莊,PCBA生產基地分布在深圳、石家莊、北京三個工廠,滿足不同區域&不同量產規模&不同產品開發階段的生產制造任務。跟傳統PCBA工廠最大的區別是我們只服務物聯網行業客戶。
連接我們,和10000+物聯網開發者一起降低技術和成本門檻
讓蜂窩物聯網應用更簡單~~
哈哈你終于滑到最重要的模塊了,
千萬不!要!劃!走!忍住沖動!~
歡迎加入飛書“開源技術交流群”,隨時找到我們哦~
點擊鏈接如何加入奇跡物聯技術話題群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以獲取加入技術話題群攻略
Hey 物聯網從業者,
你是否有了解過奇跡物聯的官方公眾號“eSIM物聯工場”呢?
這里是奇跡物聯的物聯網應用技術開源wiki主陣地,歡迎關注公眾號,不迷路~
及時獲得最新物聯網應用技術沉淀發布
審核編輯 黃宇
-
數據傳輸
+關注
關注
9文章
1891瀏覽量
64601 -
物聯網
+關注
關注
2909文章
44635瀏覽量
373366 -
組網
+關注
關注
1文章
353瀏覽量
22348 -
LoRa
+關注
關注
349文章
1689瀏覽量
231952
發布評論請先 登錄
相關推薦
評論