999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于嵌入式腳本實現的NB-IoT內存優化通信方案設計

2021-11-07 01:41:34徐獻圣張震
電腦知識與技術 2021年25期
關鍵詞:優化

徐獻圣 張震

摘要:針對基于OpenCPU的NB-IoT模塊上作為兼任主處理器和數據傳輸功能時具有的內存壓力,該文設計一種嵌入式腳本Lua腳本語言實現NB-IoT模塊的內存優化方案。通過該方案,利用Lua腳本語言中自動內存管理和增量垃圾回收的特點彌補C語言的短板,從而優化內存空間,節省NB-IoT模塊資源的消耗,降低功耗。

關鍵詞:OpenCPU;嵌入式腳本;Lua;NB-IoT模塊;內存;優化

中圖分類號:TP393.409? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2021)25-0051-02

為了適應物聯網的發展,滿足更多的應用場景和市場需求,傳感網中誕生了一批適合物與物之間遠距離通信的無線通信技術,統稱為低功耗廣域網,即LPWAN。NB-IoT是一種工作于授權頻譜下的LPWAN,其具有廣覆蓋、低功耗、低成本、大連接等多個優點,深受國內物聯網企業的青睞。在傳統方案中,往往會將NB-IoT外接至MCU。這種方式主要由MCU接收傳感器采集的數據,再通過UART方式將數據傳至NB-IoT模組,最后上傳至云平臺[1-2]。肖磊[3]提出將OpenCPU應用到NB-IoT模組上,讓NB-IoT模塊本身成為處理器,這樣用戶能夠在NB-IoT模塊上同時實現數據采集和數據上云,降低了MCU成本,節省了MCU功耗,提高了系統的穩定性和數據上傳的實時效率。但是,由于處理器功能的轉移,是以犧牲NB-IoT模組的內部資源作為代價,影響自身的運行效率。

針對此類問題,本文提出一種基于Lua腳本語言實現內置中移M5311模組的LM-NB-M-01模塊通信的解決方案,以TCP協議傳輸作為使用案例。此方案將外圍設備數據獲取和TCP通信任務都交由Lua虛擬機處理,根據獲取的數據,決定是否調用啟動關于TCP通信任務的Lua腳本,由此節省NB-IoT模組資源的消耗,提升運行效率。

1 Lua腳本語言簡介

Lua[4-6]是一種遵循標準C寫成的輕量級嵌入式腳本語言,其具有擴展性好、簡單小巧、與平臺無關的特點。Lua提供了易于使用的擴展接口和機制,尤其是當C/C++作為其宿主語言時,它們之間很容易完成交互,如同本身就是內置的功能一樣,因此Lua非常方便移植到基于C語言的OpenCPU中使用,不會引起硬件增大消耗的額問題?;贚ua實現TCP協議傳輸的NB-IoT通信方案,主要依靠Lua的下列特點。

(1)Lua是動態類型語言,即其變量沒有預定義的類型,值才有類型,并且函數也可以看成是一個值。Lua還提供了一種通用類型的表,用它可以實現數組,哈希表,集合。這些特點使得Lua除了支持面向過程編程和函數式編程,還支持面向對象編程,彌補了C語言在設計上的短板。

(2)Lua簡單小巧,Lua5.3.4發行版所有標準庫加起來只有640kb大小,編譯后僅一百余K,能夠有效節省系統內部資源。

(3)Lua具有自動內存管理和增量垃圾回收功能。設計者不需要擔心如何管理資源,只需要分配內存,同時這個內存由Lua管理。當程序不需要某個對象時,Lua會自動刪除這個失效的對象,節省系統內部資源。

(4)Lua提供的協同進程機制使得Lua腳本作為獨立線程,與主程序和其他線程互不影響地同時工作,提升程序的運行效率。

2 設計方案介紹

本方案圍繞基于中移M5311 NB-IoT模組的LM-NB-M-01模塊與私有云平臺實現TCP通信來進行設計,系統設計方案框架如圖1所示,系統運行流程圖如圖2所示。

啟動LM-NB-M-01模塊,主程序建立OpenCPU任務,等待注冊網絡。網絡在線后,外圍傳感器設備開始將感知到的數據通過外設接口傳入至LM-NB-M-01模塊中,接著主程序對數據進行處理,判斷是否需要將數據傳上云平臺。例如數據在所設閾值范圍內,不向云平臺執行發送行為。這種情況在監測系統[7]尤為常見。當終端模塊判斷數據超過閾值時,需要發送報警信號給云平臺,此時創建Lua虛擬機,將編寫的TCP通信的C函數注冊到Lua虛擬機中,然后讀取Flash文件中獨立于C程序的Lua腳本文件,完成TCP任務。之后關閉虛擬機,依靠Lua本身特點自動收集垃圾并清理內存,節省內存資源。

私有云服務器的設計,采用IOCP高并發架構設計,通過花生殼內網穿透軟件,實現云服務器與私有內網服務器建立連接,同時把內網端口映射到云端。

3設計方案介紹

為了節省系統內部資源和提升程序的運行效率,本設計重點不在如何實現獲取或處理傳感器數據,而是著重于采用Lua與C語言混合編程的方案如何實現NB-IoT基于TCP協議的傳輸。具體步驟如下。

(1)將Lua移植到LM-NB-M-01模塊的OpenCPU環境

將Lua5.3.4源碼包中src目錄內部除了lua.c與luac.c外的所有.c和.h加入到M5311-OPENCPU_SDK 3.3.0中。由于OpenCPU采用make-clean編譯方式,因此可以使用Visual Studio Code IDE完成此項工作。但要編譯成功,還需要注意將Lua源碼中用到的clock()、remove(filename)以及rename(fromname, toname)函數刪掉或修改,否則與原來OpenCPU的源碼有沖突。

(2)建立Lua與C交互環境

C與Lua之間通過C API進行交互,其關鍵在于構建一個虛擬的棧,通過操作棧上的值來實現API調用和C與Lua之間數據交換。

①通過以下格式創建Lua虛擬機。

lua_State *L = NULL;

L = luaL_newstate();? //創建Lua狀態機

猜你喜歡
優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
PEMFC流道的多目標優化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
圍繞“地、業、人”優化產業扶貧
今日農業(2020年16期)2020-12-14 15:04:59
事業單位中固定資產會計處理的優化
消費導刊(2018年8期)2018-05-25 13:20:08
4K HDR性能大幅度優化 JVC DLA-X8 18 BC
幾種常見的負載均衡算法的優化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 亚洲二三区| 国产成人精品在线1区| 国产成人高清亚洲一区久久| 一级一级一片免费| 成人国内精品久久久久影院| 精品国产一区91在线| 亚洲欧美另类日本| 99在线视频精品| 亚洲欧美不卡| 中文字幕伦视频| 婷婷亚洲天堂| 亚洲资源在线视频| 国产精品无码一区二区桃花视频| 日本人妻丰满熟妇区| 国产流白浆视频| 久久人妻xunleige无码| 国内嫩模私拍精品视频| 婷婷开心中文字幕| 欧美激情第一欧美在线| 午夜免费小视频| 亚洲中文无码av永久伊人| 亚洲成在线观看 | 国产毛片基地| 亚洲黄色高清| 无码专区在线观看| 亚洲综合欧美在线一区在线播放| 亚洲欧美另类视频| 色偷偷男人的天堂亚洲av| 国产在线视频导航| 日韩美毛片| 国产va在线| 国产爽妇精品| 国产女人喷水视频| 国产美女精品一区二区| 久久午夜夜伦鲁鲁片不卡| 精品伊人久久大香线蕉网站| 一级毛片在线播放免费| 国产成人三级在线观看视频| 亚洲国产日韩一区| 91探花国产综合在线精品| 无码有码中文字幕| 国产一区二区三区在线观看免费| 欧美三级日韩三级| 五月综合色婷婷| 久久中文无码精品| 欧美一级色视频| 亚洲AV成人一区国产精品| www.91在线播放| 亚洲成人网在线观看| 久久综合结合久久狠狠狠97色| 51国产偷自视频区视频手机观看| 国产黑丝视频在线观看| 亚洲Av激情网五月天| 一区二区午夜| 91综合色区亚洲熟妇p| 国产一级在线观看www色 | 亚洲天堂首页| 无码aaa视频| 精品人妻一区二区三区蜜桃AⅤ | 国模粉嫩小泬视频在线观看| 免费观看无遮挡www的小视频| 国产精品香蕉在线| 中文字幕在线观看日本| 精品色综合| 99久久精品视香蕉蕉| 国产精品综合色区在线观看| 国产精品jizz在线观看软件| 国产日韩精品一区在线不卡 | 亚洲va在线观看| 亚洲国产欧美自拍| 国产女人18水真多毛片18精品 | 国内精品久久人妻无码大片高| 国产成人综合日韩精品无码首页| 国产精品男人的天堂| 999在线免费视频| 日韩视频免费| 欧美综合成人| 怡红院美国分院一区二区| 欧美a在线看| 国产精品手机在线播放| 91在线高清视频| 亚洲首页在线观看|