暢麗紅 裴煥斗 楊佩宗
關鍵詞: 物聯(lián)網(wǎng); 龍芯; 實驗平臺; 無線網(wǎng)絡節(jié)點; ZigBee; Qt框架
中圖分類號: TN915?34 ? ? ? ? ? ? ? ? ? ? ?文獻標識碼: A ? ? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2018)24?0183?04
Design of IoT experimental system based on Loongson platform
CHANG Lihong1,2, PEI Huandou1,2, YANG Peizong1,2
(1. National Key Laboratory of Electronic Testing Technology, North University of China, Taiyuan 030051, China;
2. Shanxi 100 Trust Information Technology Co., Ltd., Taiyuan 030006, China)
Abstract: In allusion to the current need of cultivating Internet of Things (IoT) and embedded type talents and the autonomous controllable trend of information technology, a design scheme of the IoT experimental system based on the Loongson processor independently developed in China is proposed. The experimental platform consists of the security reliable upper computer based on the Loongson 3B1500 multi?core processor and the wireless network node slave?computer based on the Loongson 1C300 single?core processor. The DL?LN33 wireless module is used to realize wireless Zigbee networking of sensors. The visualizable monitoring management software of the upper computer is designed by using the open source Qt framework and its expansion plug?in Qwt. The experimental project design is conducted according to the professional course content relevant to IoT. The testing results show that each part of the platform can operate normally and has good performance.
Keywords: IoT; Loongson; experimental platform; wireless network node; ZigBee; Qt framework
物聯(lián)網(wǎng)被譽為世界上具有顛覆性意義的技術之一[1]。物聯(lián)網(wǎng)是在互聯(lián)網(wǎng)基礎上擴展和延伸的網(wǎng)絡,將進行信息交換和通信的用戶端擴展到物品與物品之間[2]。隨著越來越多的企業(yè)、科研院所及高校將大量的資源和精力投入到物聯(lián)網(wǎng)技術的研究領域,物聯(lián)網(wǎng)教育成為一種迫切的需要[3]。結合當前信息安全被高度重視的形勢,發(fā)展自主可控的信息技術已成為一種趨勢。開發(fā)一種基于國產平臺的實用、可擴展性強的物聯(lián)網(wǎng)實驗平臺意義重大。
本實驗系統(tǒng)采用基于我國自主研發(fā)的龍芯處理器,基于標準MIPS架構與Linux通用操作系統(tǒng),具有高性能、自主可控、系統(tǒng)開放等特點。本實驗平臺從底層處理器芯片到系統(tǒng)軟件都由我國自主研發(fā)或移植,并根據(jù)相關專業(yè)教學課程需要進行精簡與編制,既能滿足正常教學需要,豐富的接口和開源的系統(tǒng),還能給予學生更廣闊的思維發(fā)展空間。
本文基于龍芯平臺的物聯(lián)網(wǎng)實驗系統(tǒng)整體面板框圖如圖1所示,其主要由兩部分組成:基于龍芯1C處理器和CC2530的ZigBee無線傳感器智能節(jié)點和基于龍芯3B1500處理器的上位機管理監(jiān)控平臺。其中,上位機主要完成下位機所需代碼的在線編輯、編譯、下載功能及對下位機無線傳感節(jié)點的管理控制功能;而下位機無線傳感智能節(jié)點主要完成采集數(shù)據(jù)、接收命令、發(fā)送數(shù)據(jù)等功能。拓展節(jié)點主要用于完成1C控制器的基本實驗、拓展實驗及作為ZigBee無線網(wǎng)絡的sink節(jié)點打包發(fā)送上位機命令、打包接收下位機數(shù)據(jù)。以太網(wǎng)路由器用來在上電時將上位機及所有的節(jié)點接入同一個網(wǎng)絡。電源模塊將通用的220 V交流電壓轉換為12 V,5 V的直流電壓。系統(tǒng)拓展節(jié)點與傳感器/控制器節(jié)點之間通過ZigBee網(wǎng)絡實現(xiàn)數(shù)據(jù)的傳輸,拓展節(jié)點與上位機之間通過串口實現(xiàn)數(shù)據(jù)傳輸。
2.1 ?無線智能節(jié)點硬件設計
系統(tǒng)下位機智能節(jié)點均由基于龍芯1C處理器的數(shù)據(jù)處理模塊、傳感器/控制器模塊和深聯(lián)創(chuàng)新DL?LN33無線自組網(wǎng)模塊組成,此傳感器網(wǎng)絡能夠實時地感知外部環(huán)境變量并通過ZigBee網(wǎng)絡和串口把采集到的數(shù)據(jù)信息發(fā)送給上位機[4]。龍芯1C是基于GS 232處理器核的高性價比單芯片系統(tǒng),主頻300 MHz。為開發(fā)者提供豐富的外設接口及片上模塊,包括Camera控制器、USB OTG及USB HOST接口、AC97/I2S控制器、LCD控制器、SPI接口、UART接口等,提供足夠的計算能力和多應用的連接能力[5]。下位機智能節(jié)點具體結構如圖2所示。節(jié)點引出3個串口,其中,UART2和以太網(wǎng)口用來進行節(jié)點軟件的下載與移植;UART1用來連接數(shù)據(jù)處理模塊和無線通信模塊;UART3和I2C,SPI等接口一樣,用來連接傳感器/控制器模塊。拓展節(jié)點不連接任何傳感器/控制器。為了減小節(jié)點體積,這里硬件采取兩層設計,電源和網(wǎng)口放在下層,其余部分放在上層,上下層通過板對板連接器連接。
2.2 ?智能節(jié)點軟件設計
2.2.1 ?DL?LN33模塊
DL?LN33無線自組網(wǎng)模塊是一款基于UART接口的無線傳輸模塊,工作在2 400~2 450 MHz公用頻段,采用TI的CC2530芯片,支持無線自組網(wǎng)多跳傳輸,符合IEEE 802.15.4協(xié)議。該模塊采用定向擴散型自組網(wǎng)協(xié)議,使用UART作為交互接口,模塊無線頻率為2.4~2.45 GHz,屬于全球免費的無線頻段。該模塊工作時,會與周圍的模塊自動組成一個無線多跳網(wǎng)絡,相比于其他常見的自組網(wǎng)無線通信解決方案,本方案更簡潔、方便。
2.2.2 ?無線通信協(xié)議
DL?LN33模塊使用Uart接口作為數(shù)據(jù)交互接口,接口參數(shù):數(shù)據(jù)位8位,起始位1位,停止位1位,校驗位無校驗。該模塊的uart接口波特率可被設置為115 200,可以和龍芯1C的串口進行通信。通信協(xié)議基本格式如圖3所示。
其中,包頭2 B,由FE和包的長度組成,包長為數(shù)據(jù)長度加4;源端口號1 B;目標端口號1 B;目標地址2 B;待傳數(shù)據(jù)長度可變;包尾1 B,固定為FF。
將多個 DL?LN33模塊配置成地址不同,信道和網(wǎng)絡 ID 相同的狀態(tài),模塊將組成一個網(wǎng)絡。微控制器(MCU)或者電腦通過 Uart 告訴模塊目標地址和待發(fā)送的數(shù)據(jù),模塊會通過網(wǎng)絡選擇最優(yōu)的路徑,將信息傳輸給目標模塊,而目標模塊將通過Uart輸出源地址和上述數(shù)據(jù)[6]。圖4為模塊間一個簡單的傳輸例程。
2.2.3 ?模塊驅動移植
系統(tǒng)無線模塊用Uart作為交互接口,移植協(xié)議的目標控制器是龍芯1C300B,因此需要編寫1C300B的串口驅動程序。智能節(jié)點驅動程序層次圖如圖5所示。Uart收到1 B數(shù)據(jù)時通知協(xié)議驅動;協(xié)議驅動需要發(fā)送1 B數(shù)據(jù)時需要通知UART程序,并告訴UART發(fā)送1 B數(shù)據(jù);UART發(fā)完1 B后,若這個字節(jié)不是0XFF,則通知協(xié)議驅動并獲得下一個要發(fā)送的字節(jié)。應用程序需要發(fā)送包時,通知協(xié)議驅動發(fā)包;應用程序通知協(xié)議驅動,檢查現(xiàn)在是否有包要發(fā)送。
發(fā)包程序:程序初始化,包是一個結構體,發(fā)包只需要調用一個函數(shù)。
收包程序:程序收到包后會自動存儲在緩沖中,主函數(shù)需要不斷調用收包函數(shù),查看是否有包到達。驅動完成后,編寫主程序,調用本驅動。
系統(tǒng)上位機能夠實時處理傳感網(wǎng)絡的數(shù)據(jù),并能在液晶屏上進行直觀的顯示;用戶也可通過上位機監(jiān)控管理平臺來控制底層的控制設備,比如電機、LED調光燈等[7]。
3.1 ?上位機硬件選型
系統(tǒng)選用山西百信辰龍L1500?PT主板及鍵盤、鼠標、液晶顯示屏等輸入/輸出設備作為上位機。該主板采用龍芯CPU、昆侖可信固件、華大半導體TPCM卡、中標麒麟可信操作系統(tǒng),提供VGA接口、以太網(wǎng)口、USB 2.0,RS 232,SATA等接口。平臺用到的接口主要有VGA接口、USB接口、以太網(wǎng)口和RS 232接口,其中VGA接口用來接顯示器,USB接口、以太網(wǎng)口和RS 232接口用來進行程序的下載及數(shù)據(jù)的傳輸。龍芯3B1500是國產商用32納米8核處理器,主頻1.2 GHz,支持向量運算加速,峰值計算能力達到150 GFLOPS,具有很高的性能功耗比。龍芯3B1500主要用于服務器、桌面計算機、數(shù)字信號處理等領域[8]。
3.2 ?上位機界面軟件設計
系統(tǒng)采用Qt開源框架及其擴展控件Qwt進行上位機界面監(jiān)控管理軟件開發(fā)。其中參數(shù)設置、命令發(fā)送及通信狀態(tài)顯示使用 Qt 內置類庫實現(xiàn);傳感器的數(shù)據(jù)實時顯示曲線及控制對象狀態(tài)的顯示則主要由擴展類庫 Qwt實現(xiàn)[9]。
系統(tǒng)上位機軟件結構主要由串口通信模塊、數(shù)據(jù)解析模塊和顯示模塊三部分組成。其中,串口通信模塊采用QtSerialPort類進行相關程序的開發(fā)。程序中需要定義一個slot,并將其與這個signal相連接,每次收到數(shù)據(jù),就可在slot完成數(shù)據(jù)讀取,此時利用函數(shù)readAll()將串口緩沖區(qū)中的數(shù)據(jù)全部讀取[10]。數(shù)據(jù)解析模塊主要針對數(shù)據(jù)進行封包、解包。顯示模塊用來直接與用戶進行交互,其主要有兩個功能:將傳感網(wǎng)接收到的數(shù)據(jù)直觀地呈現(xiàn)給用戶及將用戶的輸入傳遞給數(shù)據(jù)處理模塊。用戶通過操作此模塊來實現(xiàn)對整個實驗系統(tǒng)的控制。將拓展節(jié)點通過串口線與上位機相連接,依次打開各個傳感器模塊,并通過上位機進行各個模塊數(shù)據(jù)解析與顯示的測試,觀察各個模塊的數(shù)據(jù)顯示是否正確,控制模塊的響應和返回是否正確。上位機上電后如圖6所示。經測試,各模塊數(shù)據(jù)解析和顯示正確無誤,控制模塊的控制響應迅速準確。以三維物體跟蹤實驗為例,在上位機管理軟件主界面點擊“三維物體跟蹤”按鈕,則進入該實驗界面,點擊實驗界面“讀取信息”按鈕則顯示當前傳感器所采集到的數(shù)值,實驗結果如圖7所示。
系統(tǒng)實驗部分按復雜程度為:系統(tǒng)實驗、基礎實驗、通信類實驗、傳感器類實驗和對象類實驗。系統(tǒng)實驗主要包括交叉編譯環(huán)境的搭建、Linux內核配置及編譯打印實驗;基礎實驗主要包括基于龍芯1C300的外部中斷實驗、定時器實驗、按鍵實驗等;通信類實驗包括串口通信、ZigBee組網(wǎng)通信、GPRS通信及RFID讀寫實驗等;傳感器實驗包括溫濕度傳感器、北斗定位實驗、電機控制實驗等;對象類實驗包括直流電機/步進電機控制實驗、語音錄放實驗等。除此之外,系統(tǒng)提供軟硬件教學包,學生可以發(fā)揮自身技術優(yōu)勢,對系統(tǒng)軟硬件進行二次開發(fā),開發(fā)出更具創(chuàng)新意義的實驗。
本文的創(chuàng)新點在于:系統(tǒng)上位機及下位機智能節(jié)點的主控芯片均采用我國自主研發(fā)龍芯微處理器,可以讓學生在學習專業(yè)知識的同時認識并接觸國人自己的技術,有利于促進國家自主可控事業(yè)的發(fā)展;傳感器/控制器節(jié)點的主控制器是帶有Linux系統(tǒng)的開源龍芯CPU,與傳統(tǒng)的單片機相比,此方案更有利于學生對Linux相關知識的學習及系統(tǒng)二次開發(fā);上位機采用L1500?PT安全可靠主板可實現(xiàn)在線編程、在線訪問及實驗數(shù)據(jù)的安全傳輸;實驗結果以可視化方式展示,效果直觀,通過實時狀態(tài)監(jiān)控,實現(xiàn)對整個實驗過程的控制。
參考文獻
[1] GUBBI J, BUYYA R, MARUSIC S, et al. Internet of Things (IoT): a vision, architectural elements, and future directions [J]. Future generation computer systems, 2013, 29(7): 1645?1660.
[2] MADAKAM S, RAMASWAMY R, TRIPATHI S. Internet of Things (IoT): a literature review [J]. Journal of computer & communications, 2015, 3(5): 164?173.
[3] 孫冠男.基于ZigBee協(xié)議的物聯(lián)網(wǎng)實驗教學平臺的設計與開發(fā)[D].濟南:山東師范大學,2014.
SUN Guannan. Design and development of experimental teaching platform of IoT based on ZigBee protocol [D]. Jinan: Shandong Normal University, 2014.
[4] 賈偉.物聯(lián)網(wǎng)的數(shù)據(jù)采集與信息傳輸技術研究[J].現(xiàn)代電子技術,2016,39(5):33?37.
JIA Wei. Research on data acquisition and information transmission technology of Internet of Things [J]. Modern electronics technique, 2016, 39(5): 33?37.
[5] 龍芯中科技術有限公司.龍芯1C300處理器數(shù)據(jù)手冊(V1.3)[EB/OL].[2015?08?04].http://www.loongson.cn/uploadfile/cpu/1C/Loongson_1C300_data.pdf.
Loongson Technology Corporation Limited. Datasheet of Loongson 1C300 processor (V1.3) [EB/OL]. [2015?08?04]. http://www.loongson.cn/uploadfile/cpu/1C/Loongson_1C300_data.pdf.
[6] 深聯(lián)創(chuàng)新.DL?LN3X系列2.4G自組網(wǎng)無線通信模塊[EB/OL].[2016?08?30].https://wenku.baidu.com/view/940ba675f342336cl?
eb91a37f111f18583d00c7b.html.
Shenlian Innovation. Introduction for DL?LN3X family 2.4G multi?hop Ad Hoc WSN modules [EB/OL].[2016?08?30].https://wenku.baidu.com/view/940ba675f342336c1eb91a37f111f18583
d00c7b.html.
[7] 劉飛.基于ZigBee的物聯(lián)網(wǎng)實驗平臺的設計與實現(xiàn)[D].濟南:山東科技大學,2014.
LIU Fei. Design and implementation of the IoT experiment platform based on ZigBee [D]. Jinan: Shandong University of Science and Technology, 2014.
[8] 龍芯中科技術有限公司.龍芯3B1500處理器數(shù)據(jù)手冊[EB/OL].[2013?05?10].http://www.loongson.cn/uploadfile/cpu/3B1500/Loongson_3B1500_cpu_data.pdf.
Loongson Technology Corporation Limited. Datasheet of Loongson 3B1500 processor [EB/OL]. [2013?05?10]. http://www.loongson.cn/uploadfile/cpu/3B1500/Loongson_3B1500_cpu_data.pdf.
[9] 盧華偉,秦品健,鄭銳.基于Qt/Qwt的操作監(jiān)控系統(tǒng)的設計與實現(xiàn)[J].微計算機信息,2010,26(1):72?74.
LU Huawei, QIN Pinjian, ZHENG Rui. Design and implementation of operating monitoring system based on Qt and Qwt [J]. Microcomputer information, 2010, 26(1): 72?74.
[10] 徐東,劉敬猛,李善鋒,等.一種基于跨平臺Qt的數(shù)控人機交互方法設計[J].組合機床與自動化加工技術,2012(7):30?32.
XU Dong, LIU Jingmeng, LI Shanfeng, et al. Design of human?CNC interaction based on the Qt software [J]. Modular machine tool & automatic manufacturing technique, 2012(7): 30?32.