




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第2章 LoRa無線通信技術(shù)開發(fā)2.3 LoRa協(xié)議棧協(xié)議棧解析與應用開發(fā)項目場景LoRa無線系統(tǒng)ContikiLoRa無線函數(shù)接口分析傳感器應用接口分析項目實踐項目場景LoRa網(wǎng)絡相較于其他無線傳感網(wǎng)絡擁有更遠的傳輸距離、擁有更好的抗干擾能力以及可控的數(shù)據(jù)收發(fā)數(shù)據(jù),同時LoRa節(jié)點的計算能力可控。因此LoRa模塊在無線傳感網(wǎng)絡領(lǐng)域擁有很大的使用優(yōu)勢,在智慧畜牧方面擁有廣泛的應用。但正因為他的這些特點使得LoRa模塊的配置變的復雜,企業(yè)為了方便LoRa模塊的物聯(lián)網(wǎng)項目的快速開發(fā)專門為其制定了物聯(lián)網(wǎng)協(xié)議棧,用戶通過物聯(lián)網(wǎng)協(xié)議??梢詫崿F(xiàn)快速的項目開發(fā)。因此學習協(xié)議棧的使用可以實現(xiàn)LoRa無線網(wǎng)絡的
2、快速開發(fā)。任務目標通過基于LoRa無線網(wǎng)的畜牧大棚空氣質(zhì)量采集和調(diào)節(jié)項目實例了解LoRa的網(wǎng)絡協(xié)議棧的工作原理和協(xié)議棧的關(guān)鍵接口,學習和掌握邏輯接口的使用,掌握應用接口的使用,通過使用應用接口能夠?qū)崿F(xiàn)快速的LoRa無線傳感網(wǎng)絡開發(fā)。LoRa無線系統(tǒng)ContikiContiki 兩個主要機制:事件驅(qū)動和 protothread 機制,前者是為了降低功耗,后者是為了節(jié)省內(nèi)存。在 Contiki 系統(tǒng)中,事件被分為以下三種類型:定時器事件(timer events)進程可以設置一個定時器,在給定的時間完成之后生成一個事件,進程一直阻塞直到定時器終止,才繼續(xù)執(zhí)行。外部事件(external event
3、s)外圍設備連接到具有中斷功能的微處理器 IO 引腳, 觸發(fā)中斷時可能生成事件。內(nèi)部事件(internal events)任何進程都可以為自身或其它進程指定事件。事件驅(qū)動LoRa無線系統(tǒng)Contiki傳統(tǒng)的操作系統(tǒng)使用棧保存進程上下文,每個進程需要一個棧,這對于內(nèi)存極度受限的傳感器設備將難以忍受。protothread 機制恰解決了這個問題,通過保存進程被阻塞處的行數(shù)(進程結(jié)構(gòu)體的一個變量,unsiged short 類型,只需兩個字節(jié)),從而實現(xiàn)進程切換,當該進程下一次被調(diào)度時,通過 switch(_LINE_)跳轉(zhuǎn)到剛才保存的點,恢復執(zhí)行。整個 Contiki 只用一個棧,當進程切換時清空
4、,大大節(jié)省內(nèi)存。 protothread 機制LoRa無線系統(tǒng)ContikiContiki的用戶進程建立較為簡單。用戶進程的建立有三個步驟,分別是定義用戶進程,在進程列表中添加進程信息,編寫進程實體。定義用戶進程PROCESS(hello, hello); 進程列表中添加進程信息struct process * const autostart_processes = &hello,NULL;autostart_start(autostart_processes);編寫進程實體PROCESS_THREAD(hello, ev, data) . contiki用戶進程與程序LoRa無線系統(tǒng)Cont
5、iki編寫進程實體/hello進程主體PROCESS_THREAD(hello, ev, data) PROCESS_BEGIN(); /進程啟動while(1) /進程循環(huán)體printf(HelloWorld!rn); /進程打印信息etimer_set(&hello_timer, CLOCK_SECOND); /進程定時進入執(zhí)行設置process_status = 2; PROCESS_YIELD(); /進程跳轉(zhuǎn)PROCESS_END(); /進程結(jié)束LoRa無線系統(tǒng)ContikiContiki包含一個時鐘模型和5個定時器模型(timer, stimer, ctimer, etimer,
6、 and rtimer) 5種timer簡述如下:timer、stimer提供了最簡單的時鐘操作,即檢查時鐘周期是否已經(jīng)結(jié)束。程序從timer中讀出狀態(tài),判斷時鐘是否過期。tmiers 是使用的系統(tǒng)時鐘的ticks,而stimers是使用的秒。Ctimer回調(diào)定時器,驅(qū)動某一個回調(diào)函數(shù)。etimer事件定時器,驅(qū)動某一個事件。Rtimer實時時鐘。 Contiki定時器LoRa無線函數(shù)接口分析LoRa協(xié)議棧工程主要包含三個文件夾。LoRa appLoRa無線應用層api at-uart.c調(diào)試串口初始化 at.c提供給串口調(diào)試的AT交互協(xié)議 lora-net.cLoRa無線數(shù)據(jù)收發(fā)api接口
7、zxbee-sys-command.c處理下行的用戶命令 zxbee.c無線數(shù)據(jù)包封包、解包 devLoRa射頻驅(qū)動及部分硬件驅(qū)動 sx1278-a.cLoRa無線進程 sx1278-io.cLoRa SPI總線驅(qū)動 sx1278.cLoRa無線射頻驅(qū)動 sensorLoRa節(jié)點傳感器驅(qū)動 autoapps.cContiki操作系統(tǒng)進程列表 sensor.c傳感器進程、驅(qū)動及應用 contiki-conf.hLoRa網(wǎng)絡參數(shù)配置 contiki-conf.cContiki操作系統(tǒng)入口LoRa無線函數(shù)接口分析LoRa無線協(xié)議運行于Contiki操作系統(tǒng),在系統(tǒng)啟動后會運行LoRa無線進程進行無線
8、協(xié)議的處理,并執(zhí)行:LoRa射頻初始化、LoRa網(wǎng)絡參數(shù)初始化、循環(huán)監(jiān)聽無線收發(fā)數(shù)據(jù)響應。LoRa無線相關(guān)主要程序文件如下:函數(shù)名稱函數(shù)說明sx1278-a.c啟動LoRa無線協(xié)議進程,完成無線網(wǎng)絡參數(shù)的初始化,循環(huán)監(jiān)聽無線收發(fā)數(shù)據(jù)響應sx1278-io.cSX1278 LoRa射頻模塊SPI總線讀寫驅(qū)動sx1278.cSX1278 LoRa射頻模塊驅(qū)動lora-net ()LoRa無線協(xié)議初始化,無線數(shù)據(jù)收發(fā)api接口LoRa無線函數(shù)接口分析智云框架下SX1278模塊的物聯(lián)網(wǎng)項目開發(fā)均在sensor.c文件下進行。sensor.c文件中為上層應用開發(fā)設置了五個接口函數(shù),這五個應用開發(fā)接口函數(shù)
9、功能描述如下表所示:智云傳感器框架函數(shù)名稱函數(shù)說明sensorInit()傳感器硬件初始化sensorUpdate()傳感器數(shù)據(jù)定時上報sensorControl()傳感器/執(zhí)行器控制函數(shù)sensorCheck ()傳感器預警監(jiān)測及處理函數(shù)ZXBeeInfRecv()解析接收到的傳感器控制命令函數(shù)PROCESS_THREAD(sensor, ev, data)傳感器進程(處理傳感器上報、傳感器預警監(jiān)測)LoRa無線函數(shù)接口分析智云框架下LoRa無線節(jié)點示例程序基于Contiki系統(tǒng)框架開發(fā),詳細程序流程圖如下:智云傳感器程序解析項目實踐畜牧氣體采集和調(diào)節(jié)硬件框圖設計如下:硬件功能設計項目實踐L
10、oRa無線節(jié)點示例程序LoRaApiTest基于LoRa無線協(xié)議框架開發(fā)的詳細程序流程圖如下:軟件邏輯設計項目實踐通信協(xié)議設計為了實現(xiàn)LoRa節(jié)點的數(shù)據(jù)能夠?qū)崿F(xiàn)遠程與本地的識別,需要設計一套約定的通訊協(xié)議,約定的通信協(xié)議可以被遠程設備和本地節(jié)點識別。根據(jù)項目特性設計通信協(xié)議如下:數(shù)據(jù)方向協(xié)議格式說明上行(節(jié)點往應用發(fā)送數(shù)據(jù))gas=XX表示采集的氣體濃度值下行(應用往節(jié)點發(fā)送指令)cmd=XX為0表示關(guān)閉風扇,1表示開啟風扇。項目實踐運行LoRaApiTest工程,通過IAR工具的進行程序的開發(fā)、調(diào)試,設置 斷點理解LoRa無線框架程序調(diào)用關(guān)系。項目實踐LiteB-LR節(jié)點每隔20s會上傳一次氣體數(shù)據(jù)到應用層(氣體數(shù)據(jù)是通過隨機數(shù)產(chǎn)生)。同時通過ZCloudTools工具發(fā)送風扇控制
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字化背景下消費者權(quán)益保護的挑戰(zhàn)與對策-洞察闡釋
- 畜牧獸醫(yī)考證題目及答案
- 助劑工段新員工考試題矩陣復習試題
- 初中物理宿遷題目及答案
- 傳染病副高考試試題及答案
- 2025家庭清潔服務合同衛(wèi)生維護
- 櫥窗考試試題及答案
- Unit 2 詞匯基礎知識檢測
- 2025企業(yè)間借款合同協(xié)議范本
- 線性代數(shù)c期末考試試題及答案
- DBJ-T13-483-2025 預拌流態(tài)固化土技術(shù)標準
- 2025年全國中學生漢字聽寫大會比賽題庫及解析(共八套)
- 洗煤廠安全管理制度
- 琉璃瓦維修專項施工方案
- 《西安交通大學》課件
- 科室醫(yī)療質(zhì)量與安全管理小組成員及職責
- 公車駕駛員安全教育
- 《選品與采購》課件-4.電商采購
- T-HSPP 0017-2024 含多肽氨基酸水溶肥料
- 《慢性腎臟病肌少癥診斷、治療與預防專家共識(2024年版)》解讀
- 突發(fā)公共衛(wèi)生事件衛(wèi)生應急
評論
0/150
提交評論