版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第4章 LTE無線通信技術(shù)開發(fā)4.3 LTE協(xié)議棧解析與應(yīng)用開發(fā)協(xié)議棧工作流程協(xié)議棧執(zhí)行原理協(xié)議棧關(guān)鍵接口函數(shù)開發(fā)場景智慧交通是一個綜合性的城市服務(wù)項目,項目中蘊含著多種使用場景,如交通關(guān)鍵節(jié)點的數(shù)據(jù)信息采集,采集后的數(shù)據(jù)需要通過LTE網(wǎng)絡(luò)發(fā)送到遠(yuǎn)程控制中心;如城市交通路障管理,當(dāng)城市路障節(jié)點接收到控制指令時可以執(zhí)行相應(yīng)的控制操作;這些復(fù)雜的功能操作都需要一個強大的軟件系統(tǒng)。任務(wù)目標(biāo)通過基于LTE無線網(wǎng)的城市空氣質(zhì)量采集和調(diào)節(jié)項目實例了解LTE的網(wǎng)絡(luò)協(xié)議棧的工作原理和協(xié)議棧的關(guān)鍵接口,學(xué)習(xí)和掌握企業(yè)協(xié)議棧接口的使用,掌握應(yīng)用接口的使用,通過使用應(yīng)用接口能夠?qū)崿F(xiàn)快速的LTE無線傳感網(wǎng)絡(luò)開發(fā)。co
2、ntiki操作系統(tǒng)Contiki 是一個開源的、高度可移植的多任務(wù)操作系統(tǒng),適用于聯(lián)網(wǎng)嵌入式系統(tǒng)和無線傳感器網(wǎng)絡(luò)。Contiki 適用于存儲器資源十分受限的嵌入式單片機系統(tǒng),典型的配置下 Contiki 只占用約 2Kbytes 的 RAM 以及 40Kbytes 的 Flash 存儲器。Contiki 操作系統(tǒng)是基于事件驅(qū)動(Event-driven)內(nèi)核的操作系統(tǒng)。Contiki 系統(tǒng)內(nèi)部集成了兩種類型的無線傳感器網(wǎng)絡(luò)協(xié)議棧:uIP 和 Rime。事件驅(qū)動Contiki 兩個主要機制:事件驅(qū)動和 protothread 機制,前者是為了降低功耗,后者是為了節(jié)省內(nèi)存。在 Contiki 系統(tǒng)
3、中,事件被分為以下三種類型:定時器事件(timer events)進(jìn)程可以設(shè)置一個定時器,在給定的時間完成之后生成一個事件,進(jìn)程一直阻塞直到定時器終止,才繼續(xù)執(zhí)行。外部事件(external events)外圍設(shè)備連接到具有中斷功能的微處理器 IO 引腳, 觸發(fā)中斷時可能生成事件。內(nèi)部事件(internal events)任何進(jìn)程都可以為自身或其它進(jìn)程指定事件。protothread 機制傳統(tǒng)的操作系統(tǒng)使用棧保存進(jìn)程上下文,每個進(jìn)程需要一個棧,這對于內(nèi)存極度受限的傳感器設(shè)備將難以忍受。protothread 機制恰解決了這個問題,通過保存進(jìn)程被阻塞處的行數(shù)(進(jìn)程結(jié)構(gòu)體的一個變量,unsiged
4、 short 類型,只需兩個字節(jié)),從而實現(xiàn)進(jìn)程切換,當(dāng)該進(jìn)程下一次被調(diào)度時,通過 switch(_LINE_)跳轉(zhuǎn)到剛才保存的點,恢復(fù)執(zhí)行。整個 Contiki 只用一個棧,當(dāng)進(jìn)程切換時清空,大大節(jié)省內(nèi)存。Contiki的系統(tǒng)運行分析Contiki內(nèi)核是基于事件驅(qū)動的,系統(tǒng)運行可以視為不斷處理事件的過程。Contiki運行通過事件觸發(fā)完成,一個事件綁定相應(yīng)的進(jìn)程。contiki用戶進(jìn)程與程序Contiki的用戶進(jìn)程建立較為簡單。用戶進(jìn)程的建立有三個步驟,分別是定義用戶進(jìn)程,在進(jìn)程列表中添加進(jìn)程信息,編寫進(jìn)程實體。定義用戶進(jìn)程PROCESS(hello, hello); 進(jìn)程列表中添加進(jìn)程信息
5、struct process * const autostart_processes = &hello,NULL;autostart_start(autostart_processes);編寫進(jìn)程實體PROCESS_THREAD(hello, ev, data) . 進(jìn)程實體編寫進(jìn)程實體/hello進(jìn)程主體PROCESS_THREAD(hello, ev, data) PROCESS_BEGIN(); /進(jìn)程啟動while(1) /進(jìn)程循環(huán)體printf(HelloWorld!rn); /進(jìn)程打印信息etimer_set(&hello_timer, CLOCK_SECOND); /進(jìn)程定時進(jìn)入
6、執(zhí)行設(shè)置process_status = 2; PROCESS_YIELD(); /進(jìn)程跳轉(zhuǎn)PROCESS_END(); /進(jìn)程結(jié)束Contiki的多種定時器Contiki包含一個時鐘模型和5個定時器模型(timer, stimer, ctimer, etimer, 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ū)動某一個事件。Rti
7、mer實時時鐘。LTE無線函數(shù)接口分析EC20協(xié)議棧文件結(jié)構(gòu)EC20協(xié)議棧工程目錄結(jié)構(gòu)協(xié)議棧的工程目錄比較簡單,總的目錄下只有三個文件分組,分別是app、core、zonesion。app是系統(tǒng)的contiki的腳本文件。Core是contiki-3.0微操作系統(tǒng)的系統(tǒng)文件。zonesion是和NB-IOT相關(guān)的驅(qū)動文件以及相關(guān)的協(xié)議文件。EC20的項目開發(fā)目錄LTE appLTE無線應(yīng)用層api at-uart.c調(diào)試串口初始化 at.c提供給串口調(diào)試的AT交互協(xié)議 zhiyun.c智云平臺LTE通信接口 zxbee-sys-command.c處理下行的用戶命令 zxbee.c無線數(shù)據(jù)包封包
8、、解包 devLTE射頻驅(qū)動及部分硬件驅(qū)動 lte-ec20.cEC20模塊的AT指令操作文件 lte-inf.cEC20模塊的接口操作文件 lte-tcp.cEC20的TCP連接配置文件 sensorNB-IoT節(jié)點傳感器驅(qū)動 autoapps.cContiki操作系統(tǒng)進(jìn)程列表 sensor.c傳感器進(jìn)程、驅(qū)動及應(yīng)用 contiki-conf.hLTE網(wǎng)絡(luò)參數(shù)配置 contiki-conf.cContiki操作系統(tǒng)入口EC20無線關(guān)鍵函數(shù)解析了方便操作,企業(yè)將EC20模塊的操作通過AT指令進(jìn)行了封裝,通過contiki協(xié)議棧實現(xiàn)了EC20模塊的高效利用。EC20的AT指令封裝代碼放置在協(xié)議棧
9、工程目錄的zonesion/LTE/dev目錄下.編號文件名說明1lte-ec20.cEC20模塊的AT指令操作文件2lte-inf.cEC20模塊的接口操作文件3lte-tcp.cEC20的TCP連接配置文件4config.cSTM32F103系列內(nèi)部Flash讀寫操作 5debug.c調(diào)試信息處理文件6key.c按鍵處理7leds-arch.cLED數(shù)據(jù)收發(fā)提示文件8relay.c繼電器驅(qū)動代碼EC20無線關(guān)鍵函數(shù)解析協(xié)議棧中真正涉及到EC20模塊的操作的文件時Lte-ec20.c、Lte-inf.c和Lte-tcp.c文件,根據(jù)從底層到上層的程序設(shè)計流程,文件的操作順序為Lte-inf.
10、c(初始化EC20模塊的串口接口操作)、Lte-ec20.c(AT指令操作及執(zhí)行文件)、Lte-tcp.c(TCP連接與數(shù)據(jù)收發(fā)操作)。傳感器應(yīng)用接口分析智云傳感器框架智云框架是在應(yīng)用接口和無線協(xié)議接口上搭建起來的,通過合理調(diào)用這些接口,使項目的開發(fā)形成一套系統(tǒng)的開發(fā)邏輯。函數(shù)名稱函數(shù)說明sensorInit()傳感器硬件初始化sensorUpdate()傳感器數(shù)據(jù)定時上報sensorControl()傳感器/執(zhí)行器控制函數(shù)sensorCheck ()傳感器預(yù)警監(jiān)測及處理函數(shù)ZXBeeInfRecv()解析接收到的傳感器控制命令函數(shù)PROCESS_THREAD(sensor, ev, data
11、)傳感器進(jìn)程(處理傳感器上報、傳感器預(yù)警監(jiān)測)智云傳感器程序解析智云框架下LTE無線節(jié)點示例程序基于Contiki系統(tǒng)框架開發(fā),詳細(xì)程序流程圖如下:智云框架硬件API節(jié)點傳感器初始化函數(shù)與數(shù)據(jù)更新函數(shù):void sensor_init(void) /執(zhí)行傳感器設(shè)備初始化操作代碼段 void sensorUpdate(void)char pData16;/獲取系統(tǒng)傳感器數(shù)據(jù)/更新更新數(shù)值并上報if (pData != NULL) ZXBeeInfSend(pData, strlen(pData); / 上傳數(shù)據(jù)到智云平臺開發(fā)實踐硬件功能設(shè)計從上圖中可以得知,大氣壓力傳感器使用內(nèi)部隨機數(shù)發(fā)生器產(chǎn)生
12、虛擬數(shù)據(jù),而繼電器使用I/O進(jìn)行控制。繼電器原理圖如下:開發(fā)實踐軟件邏輯設(shè)計開發(fā)實踐設(shè)計通信協(xié)議為了實現(xiàn)LTE節(jié)點的數(shù)據(jù)能夠?qū)崿F(xiàn)遠(yuǎn)程與本地的識別,需要設(shè)計一套約定的通訊協(xié)議,約定的通信協(xié)議可以被遠(yuǎn)程設(shè)備和本地節(jié)點識別。根據(jù)項目特性設(shè)計通信協(xié)議如下:數(shù)據(jù)方向協(xié)議格式說明上行(節(jié)點往應(yīng)用發(fā)送數(shù)據(jù))airPressure=XX表示采集的大氣壓力值下行(應(yīng)用往節(jié)點發(fā)送指令)cmd=XX為0表示關(guān)閉,1表示開啟。開發(fā)實踐LTE無線框架關(guān)鍵函數(shù)理解節(jié)點工程LTEApiTest內(nèi)源碼文件,理解無線協(xié)議進(jìn)程及無線數(shù)據(jù)收發(fā)函數(shù)的處理。1)LTE無線協(xié)議進(jìn)程zhiyun.c-PROCESS_THREAD(u_zh
13、iyun, ev, data)。2)LTE無線數(shù)據(jù)收發(fā)api接口:void zhiyun_send(char *pkg) package_data_send(pkg);開發(fā)實踐LTE無線框架關(guān)鍵函數(shù)int package_data_send(char *zxbee) if (tcp_con-status != TCP_STATUS_CONNECTED) return -1; char *pbuf = gsm_tcp_buf(); if (pbuf = NULL) Debug(package_data(): error tcp buffer busy.rn); return -1; int len = sprintf(pbuf, method:sensor,data:%s, zxbee); gsm_tcp_send(tcp_con, len); /*修改心跳包時間*/ e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年重慶市安全員知識題庫
- 2025江蘇省建筑安全員考試題庫附答案
- 入職與團(tuán)隊建設(shè)培訓(xùn)課件
- 有機合成的關(guān)鍵課件
- 【大學(xué)課件】建設(shè)工程 投標(biāo)
- 【初中數(shù)學(xué)課件】中考《整式》復(fù)習(xí)課件
- 《廣西大學(xué)商學(xué)院》課件
- 會計憑證課件
- 《EMD原理動畫演示》課件
- 一年級數(shù)學(xué)蘇教版元角分
- 2023-建筑施工技02課件講解
- 2024高考物理一輪復(fù)習(xí):觀察電容器的充、放電現(xiàn)象(練習(xí))(學(xué)生版+解析)
- 2024年度內(nèi)蒙古自治區(qū)國家電網(wǎng)招聘之電工類綜合練習(xí)試卷A卷附答案
- 零售服務(wù)質(zhì)量提升
- 新型電力系統(tǒng)背景下新能源發(fā)電企業(yè)技術(shù)監(jiān)督管理體系創(chuàng)新
- 北京市海淀區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 英語 含答案
- 幼小銜接-認(rèn)識植物-課件
- 蘇教版三年級上冊數(shù)學(xué)口算題1000道帶答案
- 南孔儒學(xué)完整版本
- 小學(xué)語文一年級上冊《秋天》評課稿
- 《公共科目》軍隊文職考試試題及解答參考(2024年)
評論
0/150
提交評論