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