趙 巖, 張永成, 康 軍, 朱慶亮, 王鎣鑫, 李鴻燕
(1. 天津理工大學(xué)電氣工程與自動(dòng)化學(xué)院,天津 300384; 2. 天津市復(fù)雜系統(tǒng)控制理論及應(yīng)用重點(diǎn)實(shí)驗(yàn)室,天津 300384)
物聯(lián)網(wǎng)在不同的垂直應(yīng)用領(lǐng)域?qū)o線通信技術(shù)的需求也不同,如果需要較低的通信速率和實(shí)時(shí)性不強(qiáng)的場合,那么 NB-IoT 通信技術(shù)就可以派上用場。目前,大多數(shù)運(yùn)營商選擇 NB-IoT 作為低功耗廣域技術(shù)的首個(gè)蜂窩網(wǎng)絡(luò)[1]。NB-IoT 與其他的通信技術(shù),如 ZigBee、GPRS 以及LTE相比有很大優(yōu)勢,主要表現(xiàn)在以下幾個(gè)方面:1)網(wǎng)絡(luò)覆蓋能力方面,NB-IoT相比于GPRS 、LTE等技術(shù),其網(wǎng)絡(luò)覆蓋能力增強(qiáng)了20 dB,信號的傳輸覆蓋范圍更大[2];2)成本方面,由于低速率和低功耗, NB模組與其他2G/3G/4G模組相比有較低的復(fù)雜度,這就大大節(jié)省了終端的制作成本[3];3)組網(wǎng)方面,NB-IoT可以直接部署在目前非常成熟的4G網(wǎng)絡(luò),而ZigBee卻通過ZigBee網(wǎng)關(guān)進(jìn)行組網(wǎng);4)功耗方面,NB-IoT集成了多種節(jié)電技術(shù),大部分時(shí)間均處于休眠狀態(tài)。最終NB-IoT憑借其自身優(yōu)勢在環(huán)境監(jiān)測方面很快就占據(jù)了一席之地,依靠其低功耗、廣覆蓋的特點(diǎn),讓環(huán)境感知設(shè)備能夠使用電池供電,有效解決了人們長期對于工農(nóng)業(yè)等場所需要現(xiàn)場布線的問題。
國內(nèi)外科研院所、商業(yè)公司以及高校都對NBIoT通信技術(shù)進(jìn)行了研究。國外方面,英國的沃達(dá)豐很早就青睞于NB-IoT技術(shù),早在2017年8月,就宣布其在愛爾蘭建成全國覆蓋的 NB-IoT 網(wǎng)絡(luò)[4]。日本的NB-IoT技術(shù)也得到了快速的發(fā)展,在ARM宣布其在NB-IoT 上的投資后,日本軟銀也加快其NB-IoT 網(wǎng)絡(luò)的部署[5]。國內(nèi)方面,對于物聯(lián)網(wǎng)標(biāo)準(zhǔn)的發(fā)展,華為推行得最早,早在2014年華為就提出了窄帶技術(shù)NB M2M,并在后期研發(fā)了NB-IoT模組;唐強(qiáng)在“基于NB-IoT電力數(shù)據(jù)采集方案的研究與設(shè)計(jì)”一文中利用NB-IoT技術(shù)實(shí)現(xiàn)了將電力數(shù)據(jù)準(zhǔn)確上傳到電力計(jì)量系統(tǒng),解決了電表抄表使用GPRS技術(shù)面臨的成本高、中繼環(huán)節(jié)多的問題[6];陳虹豆在 “基于NB-IoT的農(nóng)業(yè)生態(tài)監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)”一文中提出了用STM32L單片機(jī)作為主控芯片,BC35-G 模組完成數(shù)據(jù)傳輸,NB模組向云平臺上傳數(shù)據(jù)使用的是COAP(constrained application protocol)協(xié)議[7];任博在“基于NB-IOT技術(shù)的低功耗無線數(shù)據(jù)集中器”中提出了MCU+NBIOT+LORA的模式,此模式在采集終端和云平臺之間需要用到一個(gè)數(shù)據(jù)集中器,采集終端和數(shù)據(jù)集中器之間的通信是采用低功耗的LORA(long range radio)技術(shù),數(shù)據(jù)集中器到云平臺之間用NB-IoT通信技術(shù)進(jìn)行數(shù)據(jù)傳輸[8];呂衛(wèi)、趙佳麗在“一種低功耗高精度的NB-IoT溫度采集系統(tǒng)設(shè)計(jì)”中提出了PIC18F24K22單片機(jī)為處理器,以PT100為溫度傳感器,以高精度的AD7794為A/D轉(zhuǎn)換器, 利用NB-IoT通信模塊進(jìn)行無線傳輸并且整個(gè)系統(tǒng)使用電池供電[9];智源物聯(lián)科技公司,公開了 “一種基于窄帶物聯(lián)網(wǎng)的NB-IoT數(shù)據(jù)采集終端”專利,用于光電檢測組件數(shù)據(jù)的傳輸,降低了現(xiàn)場布線的成本,節(jié)約了生產(chǎn)環(huán)境[10]。
本文提出了一種基于 STM8L+BC28+TPL5010+UDP的低功耗架構(gòu),在此架構(gòu)中以低功耗的STM8L 作為主控芯片,實(shí)現(xiàn)了低功耗任務(wù)調(diào)度和設(shè)備管理,并采用了具有看門狗功能的超低功耗外部定時(shí)器TPL5010將單片機(jī)從休眠中喚醒,并利用三極管的開關(guān)特性控制傳感器的電源,UDP協(xié)議快速向監(jiān)測系統(tǒng)發(fā)送數(shù)據(jù),此套方案在一定程度上降低了采集器的功耗,延長了電池供電的時(shí)間。
傳統(tǒng)的物聯(lián)網(wǎng)系統(tǒng)一般由采集終端層、通信層、和用戶層構(gòu)成。采集終端層主要是將所采集到的環(huán)境信息通過NB-IoT模組發(fā)送到監(jiān)測平臺,便于用戶進(jìn)行環(huán)境監(jiān)測和管理[11-12]。采集終端層主要由三個(gè)模塊構(gòu)成,分別是作為主控芯片的STM8L、采集環(huán)境溫濕度的SHT20傳感器和向監(jiān)測系統(tǒng)發(fā)送數(shù)據(jù)的 BC28 模組。方案設(shè)計(jì)如圖1 所示。
圖1 整體方案設(shè)計(jì)
采集器所選用的微控制器是STM8L,此單片機(jī)的一大優(yōu)勢就在于兼顧性能的前提下功耗也進(jìn)一步降低,低功耗特點(diǎn)如下:
1)擁有一種超低功耗的模式halt,僅為0.35 μA;
2)只需 5 μs就可以將單片機(jī)從halt模式喚醒。
由于采集器需要在休眠一段時(shí)間后自動(dòng)喚醒,那么選擇喚醒的方法就顯得尤為重要,目前低功耗設(shè)備主要是由內(nèi)部的RTC模塊或外部的實(shí)時(shí)時(shí)鐘模塊實(shí)現(xiàn)喚醒功能[13]。
采集器采用外部實(shí)時(shí)時(shí)鐘模塊定時(shí)的方法,STM8L可以進(jìn)入功耗最低的halt模式。由于此模式下CPU和外設(shè)的時(shí)鐘都被停止,單片機(jī)想要從此模式下喚醒,必須通過外部中斷或者復(fù)位的方式。因此,本設(shè)計(jì)由外部硬件定時(shí)器TPL5010完成對單片機(jī)在休眠時(shí)的喚醒。STM8L的 halt 模式和定時(shí)器TPL5010 的組合擁有較低的耗流,前者為0.35 μA后者為 0.035 μA。因此,單片機(jī)用這種方法實(shí)現(xiàn)定時(shí),其總體功耗進(jìn)一步降低。
TPL5010可以實(shí)現(xiàn)系統(tǒng)喚醒功能,并且當(dāng)MCU 死機(jī)時(shí),其可以從外部強(qiáng)制復(fù)位,不僅解決了功耗問題,還解決了系統(tǒng)的死機(jī)問題。TPL5010 電路如圖2 所示。
圖2 TPL5010電路圖
引腳DELAY/M_RST與GND之間的電阻R1和R2決定了定時(shí)時(shí)間;引腳DONE默認(rèn)為低電平,所以在下位機(jī)軟件設(shè)計(jì)中,只需將該引腳的電平拉高一段時(shí)間,然后再拉低,計(jì)數(shù)器將重新開始計(jì)數(shù)。引腳WAKE從TPL5010端由電阻R1和R2設(shè)定的定時(shí)時(shí)間,主動(dòng)向單片機(jī)發(fā)送信號,當(dāng)單片機(jī)收到WAKE信號后,可以知道定時(shí)時(shí)間結(jié)束,要開始喚醒單片機(jī)進(jìn)行數(shù)據(jù)的采集和發(fā)送。
當(dāng) SHT20 溫濕度傳感器將測量數(shù)值發(fā)送到單片機(jī)后利用三極管的開關(guān)特性,對傳感器電源進(jìn)行斷電處理,進(jìn)一步降低了系統(tǒng)的功耗。傳感器電源管理設(shè)計(jì)如圖3 所示[14]。
圖3 傳感器電源管理
BC28模組性能的好壞在很大程度上取決于模組的電源設(shè)計(jì)。采集器在BC28模組的電源方面進(jìn)行了如下設(shè)計(jì),在模組的電壓輸入端并聯(lián)了一個(gè)C1為100 μF的鉭電容,確保了更好的供電性能;同時(shí)在輸入端也并聯(lián)了 C2、C3 和 C4,分別為 100 nF、100 pF 和 22 pF 的 3 個(gè)電容起到濾波作用;最后在電壓輸入端并聯(lián)了一個(gè) TVS 管 D1,用來增加其對浪涌電壓的承受能力。BC28電源電路設(shè)計(jì)如圖4所示。
圖4 BC28 電源輸入設(shè)計(jì)
單片機(jī)控制BC28模組的工作模式,當(dāng)需要向監(jiān)測系統(tǒng)上傳數(shù)據(jù)時(shí)使用活動(dòng)模式;當(dāng)數(shù)據(jù)上傳完畢后由單片機(jī)發(fā)送命令控制模組進(jìn)入省電模式,從而降低采集器的整體功耗。
如圖3所示,SHT20傳感器的電源由單片機(jī)通過 sht20 vcc ctr引腳控制。當(dāng) sht20 vcc ctr 引腳為高電平時(shí),由三極管特性可知,三極管Q2導(dǎo)通,從而三極管Q1導(dǎo)通,傳感器電源導(dǎo)通;當(dāng) sht20 vcc ctr 引腳為低電平時(shí),傳感器電源關(guān)閉,從而降低了傳感器的功耗。
為了更加方便地對采集器功耗進(jìn)行控制,下位機(jī)軟件中設(shè)置了活動(dòng)模式和停止模式。活動(dòng)模式的主要功能是進(jìn)行單片機(jī)時(shí)鐘的配置,開啟串口時(shí)鐘、使能串口接收中斷以及使能串口等操作。停止模式的主要功能是開啟單片機(jī)的快速喚醒使能、超低功耗使能;關(guān)閉串口時(shí)鐘、串口接收中斷;配置I/O口電平和外部中斷觸發(fā)方式。進(jìn)入睡眠模式之前需要進(jìn)行的配置如下:
第一,在整個(gè)控制的過程中,對于采集器沒有使用的引腳,需將此類引腳所有的I/O口時(shí)鐘打開,并將這些引腳配置為推挽輸出低電平慢速或者模擬輸入模式,然后關(guān)閉時(shí)鐘;第二,對于采集器已經(jīng)開啟的外設(shè),將其全部關(guān)閉;第三,對于加入外部上拉電阻的電路,需要在初始化端口時(shí)設(shè)置為推挽輸出高電平慢速模式。由于電路外部已經(jīng)上拉,所以輸出高電平功耗是最低的。
采集器對網(wǎng)絡(luò)帶寬需求較小、大部分時(shí)間無需維持連接以及需要低功耗等設(shè)計(jì)要求。因此,采集器采用收發(fā)速度快且沒有阻塞的 UDP 協(xié)議。
電池供電系統(tǒng)對功耗的要求非??量?,因此功耗測試是項(xiàng)目中重要的部分。采集器功耗的高低與實(shí)驗(yàn)環(huán)境的NB-IoT網(wǎng)絡(luò)信號質(zhì)量密切相關(guān),下面以CSQ(信號強(qiáng)度)、RSRP(參考信號接收功率)、SNR(信噪比)、TX POWER(終端發(fā)射功率)、RSSI(參考信號接收強(qiáng)度指示)5個(gè)參數(shù)來衡量NB-IoT網(wǎng)絡(luò)信號質(zhì)量。采集器進(jìn)行功耗實(shí)驗(yàn)時(shí),相應(yīng)的網(wǎng)絡(luò)信號質(zhì)量如圖5所示。
采集器功耗測試所用的儀器是Fluke8845A 高精度數(shù)字多用表,該儀表可以通過 PC 端軟件將數(shù)據(jù)進(jìn)行圖形化顯示,而且可以自動(dòng)計(jì)算某段時(shí)間內(nèi)的平均值。功耗實(shí)驗(yàn)是在圖5所示的網(wǎng)絡(luò)環(huán)境下進(jìn)行的,采集器每10 min上傳一次數(shù)據(jù)。采集器5個(gè)周期(15點(diǎn)02分到15點(diǎn)52分)功耗情況如圖6所示。
圖5 功耗實(shí)驗(yàn)網(wǎng)絡(luò)信號質(zhì)量
圖6 采集器功耗測試
最后通過儀表顯示的數(shù)據(jù)可知采集器正常工作的最大電流在45 mA左右,休眠時(shí)的電流約為6 μA。
本文的功耗分析基于圖6第一個(gè)周期(15點(diǎn)02分到15點(diǎn)12分)進(jìn)行,主要思路如下:由Fluke8845A多用表可以測出采集器第一個(gè)周期活動(dòng)時(shí)間和休眠時(shí)間的平均電流,從而計(jì)算出其功耗。具體步驟如下:
1)采集器第一個(gè)周期的工作時(shí)間是 4 s,由Fluke8845A 數(shù)字多用表計(jì)算出其平均電流約為40 mA ,而一天(以24 h計(jì)算)的工作時(shí)間為:0.16 h,所以一天工作時(shí)間耗能為:6.4 mAh。
2)采集器第一個(gè)周期的休眠時(shí)間為9 min 56 s,由Fluke8845A數(shù)字多用表計(jì)算出其平均電流約為6 μA,而一天的休眠時(shí)間為23.84 h,所以休眠時(shí)間耗能為:0.143 mAh。
從而每天共計(jì)耗能為:6.543 mAh。
所以,一節(jié)8 000 mAh的電池,使用時(shí)長為1 222 d。
在不同的環(huán)境中,NB-IoT網(wǎng)絡(luò)覆蓋情況也不同,所以采集器的功耗也會發(fā)生變化。由于實(shí)驗(yàn)條件有限,采集器的功耗分析是通過圖6第一個(gè)周期的功耗估算電池的使用時(shí)長,后期還需放到不同的環(huán)境中進(jìn)行長期的功耗測試。
本文設(shè)計(jì)了基于B/S架構(gòu)的監(jiān)測系統(tǒng),該監(jiān)測系統(tǒng)能夠?qū)崟r(shí)接收采集器上傳的數(shù)據(jù),然后按照自定義協(xié)議解析入庫,最后實(shí)現(xiàn)數(shù)據(jù)的查詢與可視化展示,如圖7是2021年5月30日至6月20日的歷史數(shù)據(jù)圖形化顯示。
圖7 歷史數(shù)據(jù)圖形化顯示
在采集器功耗測試結(jié)束之后,為檢驗(yàn)其運(yùn)行的可靠性,進(jìn)行了實(shí)驗(yàn)驗(yàn)證。由于實(shí)驗(yàn)條件有限,本文以數(shù)據(jù)有效上傳率來衡量采集器的可靠性。實(shí)驗(yàn)地點(diǎn)為室內(nèi),將采集器連續(xù)置于室內(nèi)一段時(shí)間,進(jìn)行了空氣溫濕度測試。數(shù)據(jù)有效上傳率與實(shí)驗(yàn)地點(diǎn)NB-IoT網(wǎng)絡(luò)信號質(zhì)量密切相關(guān)。因此,在數(shù)據(jù)采集過程中需要對實(shí)驗(yàn)地點(diǎn)進(jìn)行網(wǎng)絡(luò)測試。具體測試過程如下:
1)采集數(shù)據(jù)時(shí)間段為5月30日至6月9日,共11 d數(shù)據(jù)。
2)選取采集數(shù)據(jù)當(dāng)天9點(diǎn)至21點(diǎn)時(shí)間段,以每3 h為單位測量一次網(wǎng)絡(luò)信號。一天測4次,11天測44次。
3)直至11天數(shù)據(jù)采集完畢,網(wǎng)絡(luò)信號質(zhì)量如圖8所示。
圖8 溫濕度實(shí)驗(yàn)地點(diǎn)網(wǎng)絡(luò)信號質(zhì)量
采集器10 min上傳一次數(shù)據(jù),則24 h上傳的數(shù)據(jù)量應(yīng)該為144條,本實(shí)驗(yàn)選取5月30日至6月9日的數(shù)據(jù)量作為數(shù)據(jù)樣本,理論下應(yīng)該為1 440條數(shù)據(jù)。通過查詢監(jiān)測系統(tǒng)的歷史數(shù)據(jù),可知在11天中上傳的數(shù)據(jù)總量,就可知采集器的有效數(shù)據(jù)上傳情況,監(jiān)測系統(tǒng)第1天(2021年5月30日)數(shù)據(jù)查詢,部分?jǐn)?shù)據(jù)如表1所示。
表1 第1天部分?jǐn)?shù)據(jù)查詢
監(jiān)測系統(tǒng)第11天(2021年6月9日)數(shù)據(jù)查詢,部分?jǐn)?shù)據(jù)如表2所示。
表2 第11天部分?jǐn)?shù)據(jù)查詢
通過歷史數(shù)據(jù)的ID號可以知道5月30日到6月9日期間,上傳的數(shù)據(jù)為1 436條,而理論狀態(tài)下采集器傳輸數(shù)據(jù)總量是1 440條,所以數(shù)據(jù)有效上傳率為99.72%。具體實(shí)驗(yàn)數(shù)據(jù)如表3所示。
表3 采集器可靠性分析
本采集器利用各種低功耗元器件、通訊協(xié)議以及下位機(jī)軟件系統(tǒng)的協(xié)調(diào)調(diào)度,在一定程度上降低了系統(tǒng)的整體功耗。通過功耗實(shí)驗(yàn)和系統(tǒng)性能分析,可知采集器功耗較低、穩(wěn)定性較好。因此,本文設(shè)計(jì)的采集器適用于供電不便、布線不便、需要環(huán)境監(jiān)測且NB-IoT網(wǎng)絡(luò)覆蓋較好的工業(yè)、農(nóng)業(yè)等場所。