宋洪儒, 王宜懷, 楊 凡,3
(1.蘇州大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006; 2.銅陵學(xué)院 電氣工程學(xué)院,安徽 銅陵 244000;3.銅陵學(xué)院 數(shù)學(xué)與計算機(jī)學(xué)院,安徽 銅陵 244000)
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展和智慧城市建設(shè)的需求,智能燃?xì)獗硪阎鸩綉?yīng)用到千家萬戶。目前常用智能燃?xì)獗碛兄悄芸ū砗蜔o線抄表,其中智能卡表在使用中自動扣除費(fèi)用,方便公司管理收費(fèi),但也存在需要生產(chǎn)智能充值卡增加成本的問題。無線抄表主要采用無線射頻或ZigBee進(jìn)行數(shù)據(jù)傳輸,這種表存在傳輸距離短、覆蓋范圍小、需要基站多,增加了建設(shè)和維護(hù)成本[1,2]。窄帶物聯(lián)網(wǎng)(narrow-band Internet of things,NB-IoT)技術(shù)相比4G網(wǎng)絡(luò)、ZigBee等短距離通信技術(shù),具有大容量、廣覆蓋、低成本、低功耗等特點,能夠帶來更加豐富的應(yīng)用場景,將會成為無線網(wǎng)絡(luò)發(fā)展的主要趨勢[3,4]。
本文采用NB-IoT技術(shù)的數(shù)據(jù)傳輸方式進(jìn)行燃?xì)獗碓O(shè)計,其優(yōu)點是通過個人電腦(personal computer,PC)進(jìn)行控制管理,信號抗干擾能力強(qiáng),能實現(xiàn)遠(yuǎn)距離的數(shù)據(jù)傳輸,還能在線實時監(jiān)控燃?xì)獗淼倪\(yùn)行狀況,出現(xiàn)發(fā)生故障或欠費(fèi)時,在PC上發(fā)出報警提示,使用該智能燃?xì)獗砟軌蚬?jié)約人工資源和降低建設(shè)成本,便于燃?xì)夤緦崿F(xiàn)智能化的管理工作。
智能燃?xì)獗硎腔贜B-IoT技術(shù)實現(xiàn),系統(tǒng)框架結(jié)構(gòu)如圖1所示。參考物聯(lián)網(wǎng)分層模型,將系統(tǒng)分為感知層、網(wǎng)絡(luò)層和應(yīng)用層。感知層完成傳感器數(shù)據(jù)采集、物理量回歸、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)等功能;網(wǎng)絡(luò)層中的服務(wù)器將感知層發(fā)來的數(shù)據(jù)存儲到數(shù)據(jù)庫中,并檢查數(shù)據(jù)庫中數(shù)據(jù)的變化發(fā)送回去。應(yīng)用層用于在電腦或手機(jī)上顯示每個燃?xì)獗淼膶崟r數(shù)據(jù)和歷史數(shù)據(jù)等信息。將感知層采集燃?xì)獗淼母鞣N數(shù)據(jù),利用NB-IoT技術(shù)將數(shù)據(jù)傳送到網(wǎng)絡(luò)層的服務(wù)器,在應(yīng)用層上借助手機(jī)、電腦訪問存儲在服務(wù)器上的數(shù)據(jù)。
圖1 系統(tǒng)框架結(jié)構(gòu)
硬件結(jié)構(gòu)如圖2所示。KL36微控制器為主控模塊,通過KL36引腳與各個模塊之間連接,實現(xiàn)其模塊功能。BC95模塊為無線通信模塊,利用NB-IoT技術(shù)的通信功能,將KL36采集的各種數(shù)據(jù)發(fā)送到應(yīng)用層,實現(xiàn)系統(tǒng)的控制功能。電源模塊為KL36和BC95提供工作電源,保障模塊的正常工作。LCD模塊是顯示設(shè)置的信息數(shù)據(jù),如燃?xì)饬?、時間、使用費(fèi)用等,當(dāng)人工查詢時,觸發(fā)觸摸鍵工作,使LCD顯示數(shù)據(jù),并將查詢數(shù)據(jù)發(fā)送出去。偷氣/漏氣檢測模塊是防止氣體泄漏設(shè)置的安全檢測,當(dāng)發(fā)生天然氣泄漏時,觸發(fā)報警模塊發(fā)出報警信號,提醒用戶注意安全,并將信息上傳到公司管理中心,以便維修和管理。燃?xì)庥嬃磕K主要由KL36引腳PTA1和PTA4采集值之差控制磁開關(guān),確定燃?xì)饬俊?/p>
圖2 硬件結(jié)構(gòu)
微控制器選用MKL36Z64VLH4作為主控芯片,為保障KL36模塊能正常工作,外部需要連接電源電路、晶振電路和復(fù)位電路組成最小工作系統(tǒng)[5]。根據(jù)KL36連接各模塊的功能要求,對芯片I/O引腳進(jìn)行分配,列出部分的功能管腳如表1所示。
表1 KL36 I/O分配
電源模塊電路如圖3所示,圖中TPS709系列芯片為低壓降線性穩(wěn)壓器,工作輸入電壓范圍為2.7~30 V,輸出電壓范圍為1.5~6.5 V。其中TPS70933芯片輸出3.3 V電壓,為KL36提供額定工作電壓,TPS70939芯片輸出3.9 V電壓,為BC95模塊提供工作電壓,在進(jìn)行發(fā)送或接收數(shù)據(jù)時,由單片機(jī)(micro controller unit,MCU)發(fā)出命令使TPS70939芯片的EN引腳為高電平,使芯片工作,輸出3.9 V電壓,否則,使EN引腳為低電平,TPS70939芯片停止工作,達(dá)到低功耗的目的,節(jié)約電池電能。C105功能是備用電源。
圖3 電源電路
燃?xì)獗黹y門開關(guān)由直流電機(jī)進(jìn)行控制,電機(jī)正轉(zhuǎn)時,打開閥門,電機(jī)反轉(zhuǎn)時,關(guān)閉閥門,控制電機(jī)電路如圖4所示。其中:R201~R206是偏置電阻器,功能是為三極管Q201~Q206導(dǎo)通提供偏置電壓,C202起穩(wěn)壓作用,R207為C202的放電電阻器,P201為直流電機(jī)來控制燃?xì)忾y門。AD1,AD2為采樣接口,給MCU提供AD采樣值。閥門打開的情況根據(jù)AD1和AD2采樣值之差進(jìn)行判斷。電路工作分為三種情況:1)當(dāng)VDJZ為高電平、VDJF為低電平時,三極管Q201~Q203導(dǎo)通,Q204~Q206截止,電流流向為Q202→P201→Q203,此時電機(jī)正轉(zhuǎn),打開閥門;2)當(dāng)VDJZ低電平,VDJF高電平時,三極管Q201~Q203截止,Q204~Q206導(dǎo)通,電流流向為Q205→P201→Q206,電機(jī)為反轉(zhuǎn),關(guān)閉閥門;3)當(dāng)VDJF,VDJZ同時為低電平或高電平時,電機(jī)不能轉(zhuǎn)動。
圖4 控制電機(jī)電路
BC95是一種高性能、低功耗的NB-IoT無線通信模塊,在設(shè)計上兼容全球移動通信系統(tǒng)/通用分組無線業(yè)務(wù)(GSM/GPRS)系列的M95模塊,工作電壓為VBAT=3.1~4.2V,典型值3.8 V,BC95芯片控制引腳NET_LIGHT為高電平時,網(wǎng)絡(luò)正常工作,為低電平的時,網(wǎng)絡(luò)不能工作。BC95模塊工作電路包含:電源模塊、通用異步收發(fā)器(UART)模塊、模/數(shù)轉(zhuǎn)換(analog to digital conversion,ADC)模塊、射頻(radio frequency,RF)模塊、串行調(diào)試(serial wire debug,SWD)模塊及復(fù)位模塊組成[6]。具體的電路如圖5所示。用戶身份識別模塊(subscriber identity module,SIM)用于存放SIM卡。
圖5 BC95工作電路
軟件設(shè)計采用嵌入式集成開發(fā)環(huán)境KDS—3.0軟件作為開發(fā)平臺,利用C語言編寫程序。軟件設(shè)計有KL36底層驅(qū)動程序和主程序。
KL36芯片底層驅(qū)動軟件設(shè)計根據(jù)功能要求,分為通用輸入/輸出(general purpose input/output,GPIO)模塊,定時器模塊、通信(Uecom)模塊、閥門開關(guān)模塊、LCD模塊和TSI模塊等[6]。KL36底層驅(qū)動模塊體系結(jié)構(gòu)如圖6所示。
圖6 KL36底層驅(qū)動模塊體系結(jié)構(gòu)
G_var模塊的功能是存儲全局變量,將Main函數(shù)和中斷函數(shù)需要使用的所有全局變量都存放在該模塊內(nèi),以便于進(jìn)行變量的修改。ComData模塊功能為存儲數(shù)據(jù)結(jié)構(gòu),進(jìn)行網(wǎng)絡(luò)通信數(shù)據(jù)幀轉(zhuǎn)發(fā)和處理等操作。Uecom模塊通過調(diào)用GPIO模塊和定時器模塊來實現(xiàn)對數(shù)據(jù)的發(fā)送和接收功能。中斷服務(wù)處理(interrupt service routines,ISR)通過調(diào)用定時器模塊和TSI模塊實現(xiàn)中斷函數(shù)功能。ADC模塊將采集到的各種信號進(jìn)行轉(zhuǎn)換,傳送到微控制器中處理。LCD模塊功能是顯示設(shè)置的各種信息,便于用戶實時查詢。
BC95通信模塊軟件流程如圖7所示,芯片通電后,BC95模塊首先初始化工作,利用AT指令對模塊進(jìn)行波特率、IMSI號、IP地址等信息設(shè)置,需要判斷是否有SIM卡以及信號的強(qiáng)度能夠達(dá)到通信的要求,再根據(jù)NB—IOT技術(shù)通信的要求數(shù)據(jù)組幀,由BC95完成發(fā)送和接收數(shù)據(jù)工作,最后芯片進(jìn)入低功耗模式工作。為了保證數(shù)據(jù)模塊通信成功,完成數(shù)據(jù)發(fā)送和接收任務(wù),都設(shè)置了重復(fù)發(fā)送的次數(shù),能夠避免由于外界干擾引起的數(shù)據(jù)傳輸失敗[7,8]。在通信中采用IP地址+IMSI號的方法分辨不同的設(shè)備,在每個設(shè)備通信的IMSI號是唯一的,在數(shù)據(jù)包中加入目的設(shè)備IP地址,以保證數(shù)據(jù)包能到達(dá)目的設(shè)備并進(jìn)行響應(yīng)。通信中一幀數(shù)據(jù)格式:數(shù)據(jù)總長為68B,其中:幀頭占2B、IMSI號占15B、傳輸數(shù)據(jù)占32B、IP地址占15B、驗證碼占2B、幀尾占2B。
圖7 BC95軟件設(shè)計流程
主程序設(shè)計流程如圖8所示,系統(tǒng)通電后完成初始化工作,先判斷是否符合開閥門條件,如存在欠費(fèi)、漏氣等情況發(fā)生,不能打開閥門并進(jìn)行報警。符合打開閥門條件,進(jìn)入低功耗工作模式,當(dāng)觸摸鍵觸摸次數(shù)達(dá)到設(shè)定值或者達(dá)到定時器設(shè)置的發(fā)送數(shù)據(jù)時間,調(diào)用中斷函數(shù)進(jìn)入BC95發(fā)送和接收數(shù)據(jù)程序,進(jìn)行數(shù)據(jù)的傳輸,在人機(jī)界面上顯示出發(fā)送的數(shù)據(jù)。
圖8 主程序設(shè)計流程
測試界面開發(fā)環(huán)境為Visual studio 2013,采用C#語言[9]開發(fā)設(shè)計。測試界面如圖9所示。
圖9 測試界面
通過測試結(jié)果可以看出,采用NB—IoT技術(shù)設(shè)計的智能燃?xì)獗?,很好地解決了數(shù)據(jù)傳輸距離遠(yuǎn),覆蓋范圍廣等問題,具有很強(qiáng)的實用性、可靠性和穩(wěn)定性。該技術(shù)研發(fā)已經(jīng)處于最后測試階段,一旦實際產(chǎn)品投入到生活中,將會降低企業(yè)投資成本,提高管理水平,加強(qiáng)對用氣安全的監(jiān)管,具有很好的推廣前景。