柴華芳,毛德興,陳海華,王 洋,陳富光
(寧波水表(集團(tuán))股份有限公司,浙江 寧波 315032)
為了順應(yīng)發(fā)展潮流,滿足消費(fèi)者隨著科技發(fā)展而日益增長(zhǎng)的萬物互聯(lián)的需求,近年來,一批適合物與物之間遠(yuǎn)距離通信的無線通信技術(shù)飛速發(fā)展,如NB-IoT、CAT.1、CAT.4 等。水表行業(yè)在物聯(lián)網(wǎng)飛速發(fā)展的同時(shí)也在不斷推陳出新,從傳統(tǒng)機(jī)械表到目前技術(shù)成熟的帶電子裝置的機(jī)械表再到電子水表,水表的功能和性能都在逐步提升以滿足不同用戶需求。目前,占據(jù)國(guó)內(nèi)無線遠(yuǎn)傳水表市場(chǎng)首位的無線通訊技術(shù)當(dāng)屬NB-IoT。NB-IoT 是一種具有連接終端設(shè)備多、覆蓋范圍廣、性價(jià)比高、功耗低等多個(gè)優(yōu)點(diǎn)的技術(shù),其發(fā)展迅速,不易受干擾,適用性強(qiáng),深受國(guó)內(nèi)物聯(lián)網(wǎng)企業(yè)的青睞。在以往NB-IoT 無線遠(yuǎn)傳水表的方案中,一般利用NB-IoT 通信模塊外接MCU 上。此類方案中,MCU 負(fù)責(zé)接收傳感器采集的數(shù)據(jù)信息,通過UART 方式將采集的數(shù)據(jù)傳送到NB-IoT 模塊,再由通訊模塊將數(shù)據(jù)上傳至云平臺(tái)[1]。該方案通訊模組與主控制芯片分工明確,但成本較高且不便于后期維護(hù)。因此,提出將基于NBIoT 模組的OpenCPU 解決方案,讓NB-IoT 模塊不止負(fù)責(zé)通訊,還成為處理器,既有利于后期的調(diào)試和維護(hù),還能在NBIoT 模塊上同時(shí)實(shí)現(xiàn)數(shù)據(jù)采集和數(shù)據(jù)傳輸,降低電子物料的成本,降低整機(jī)功耗以提高產(chǎn)品使用年限,提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性和數(shù)據(jù)信息上報(bào)的實(shí)時(shí)效率。
隨著對(duì)用戶用水量的記錄成為水表的一項(xiàng)基本功能,無線遠(yuǎn)傳水表被賦予監(jiān)控用水情況并對(duì)漏損情況產(chǎn)生告警,對(duì)用水?dāng)?shù)據(jù)的存儲(chǔ)和上傳等更廣泛的意義,采集和管理用戶水務(wù)信息成為水表的一項(xiàng)重要進(jìn)階功能。一般無線遠(yuǎn)傳水表采用雙芯的架構(gòu),主控制芯片與通信模塊各司其職,一起完成內(nèi)部數(shù)據(jù)處理和外部數(shù)據(jù)傳輸?shù)墓ぷ?。工作過程中,當(dāng)?shù)筋A(yù)設(shè)的數(shù)據(jù)采樣時(shí)間時(shí),通過傳感模塊對(duì)數(shù)據(jù)進(jìn)行測(cè)量和采集,MCU 對(duì)采集的數(shù)據(jù)進(jìn)行處理,繼而喚醒并激活NB-IoT 通訊模塊,利用NB-IoT 網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸和控制指令的交互[2]。
NB-IoT 支持大規(guī)模設(shè)備連接;有良好的擴(kuò)展性和適應(yīng)性,上行峰值速率250kbps,下行峰值速率可達(dá)170kbps 以上,完美適配低速率傳輸?shù)氖袌?chǎng)需求;提升室內(nèi)信號(hào)覆蓋性能,支持地下室和下水管道等區(qū)域的信號(hào)傳輸;減少設(shè)備的復(fù)雜性,使通訊方式便捷高效;具有降低功耗和延時(shí)的特性。因此,是一種廣泛應(yīng)用于物聯(lián)網(wǎng)中低速傳輸場(chǎng)景的技術(shù),具有海量連接、低時(shí)延、半雙工的優(yōu)勢(shì)。NB-IoT有兩種超低功耗模式,即PSM 與eDRX,這兩種節(jié)電模式符合低功耗的特性,可實(shí)現(xiàn)超長(zhǎng)待機(jī),適用于供電方式為鋰電池且數(shù)據(jù)傳輸頻次中等的環(huán)境,如水表、燃?xì)獗怼㈦姳淼瘸順I(yè)務(wù)類型,此類場(chǎng)景中數(shù)據(jù)傳輸?shù)念l次一般為一天一次至幾天一次。NB-IoT 網(wǎng)絡(luò)憑借其顯著優(yōu)勢(shì),已經(jīng)成為低速率傳輸需求的物聯(lián)網(wǎng)產(chǎn)品的首選技術(shù)。
OpenCPU 是一種以模塊作為主處理器的應(yīng)用方式,這個(gè)系統(tǒng)允許用戶進(jìn)行部分結(jié)構(gòu)設(shè)計(jì)、模塊設(shè)計(jì)、I/O 操作等,后來其所有的技術(shù)文檔和源碼都以共享方式在網(wǎng)上公布,成了一個(gè)開源的CPU 設(shè)計(jì),所以命名為OpenCPU。該方案有很多優(yōu)點(diǎn),如開發(fā)難度小,靈活度更高;可以簡(jiǎn)化研發(fā)人員對(duì)無線應(yīng)用的開發(fā)流程,加快嵌入式開發(fā)速度;具有芯片集成獨(dú)立的專用AP 及相應(yīng)的RAM/ROM,無需外置MCU,只需要增加傳感模塊和電源模塊即可,與之對(duì)應(yīng)的電源也可節(jié)省;精簡(jiǎn)硬件結(jié)構(gòu)設(shè)計(jì),減小終端產(chǎn)品的實(shí)際尺寸;降低產(chǎn)品成本,改善性價(jià)比,提高競(jìng)爭(zhēng)能力;集成多種外設(shè)接口;工作溫度范圍廣;支持不同功耗模式,深度睡眠狀態(tài)時(shí)電流小于1μA,接收狀態(tài)電流約20 mA 等。OpenCPU 應(yīng)用到無線通信模組上,主要是為了使用戶可以共享模塊內(nèi)的處理器和Flash 資源。當(dāng)前較多模組企業(yè)設(shè)計(jì)的通信模組均采用了該種方式,如移遠(yuǎn)的4G 通信模組EC20、海思的Boudica150、Boudica200 等。
圖1 傳統(tǒng)無線遠(yuǎn)傳水表硬件設(shè)計(jì)方案Fig.1 Hardware design scheme of traditional wireless remote water meter
相比于普通模式下的工作模式,OpenCPU 方案中用戶只需要通過串口進(jìn)行通信模塊的控制、數(shù)據(jù)發(fā)送與接收等,避免了繁瑣的AT 指令以及頻繁的API 接口調(diào)用等,可以縮短開發(fā)周期并節(jié)省部分外圍組件成本[3]。
對(duì)于此方案的通訊模塊和主控制模塊,選取了性能優(yōu)秀的芯翼XY1100S 芯片,使數(shù)據(jù)交換更高效、快捷。這也使功能更好地集成,更利于后期調(diào)試、問題排查與維護(hù)。該設(shè)計(jì)采用OPENCPU 的解決方案,以XY1100S 作為主處理器,節(jié)約原本主控芯片的成本同時(shí)可以減小硬件部分體積。為了盡可能減少器件的變換,整體硬件結(jié)構(gòu)仍采用原有方案,減少研發(fā)周期和難度。采用該種方案,可以簡(jiǎn)化用戶對(duì)無線應(yīng)用的開發(fā)流程,精簡(jiǎn)硬件結(jié)構(gòu)設(shè)計(jì),能夠有效降低產(chǎn)品成本的現(xiàn)實(shí)優(yōu)勢(shì),從而提高方案實(shí)施的性價(jià)比,也有利于大面積的推廣應(yīng)用。對(duì)于系統(tǒng)的數(shù)據(jù)存儲(chǔ)與計(jì)算力,也具有很強(qiáng)的擴(kuò)展性[4]。
對(duì)于傳統(tǒng)方案的無線遠(yuǎn)傳水表設(shè)計(jì)如圖1,對(duì)于本方案的具體設(shè)計(jì)如圖2。
圖2 新無線遠(yuǎn)傳水表硬件設(shè)計(jì)方案Fig.2 Hardware design scheme of the new wireless remote water meter
基于OpenCPU 的無線遠(yuǎn)傳水表設(shè)計(jì)實(shí)現(xiàn)了數(shù)據(jù)采集、處理,與抄表平臺(tái)數(shù)據(jù)交互等功能。該方案具備可維護(hù)性和實(shí)用性,可以近端對(duì)水表進(jìn)行升級(jí)、讀取所需數(shù)據(jù),也可以在云平臺(tái)進(jìn)行遠(yuǎn)程操作,并確保與云平臺(tái)的穩(wěn)定快速通信,保證通信安全和數(shù)據(jù)加密,同時(shí)能夠適應(yīng)任何應(yīng)用場(chǎng)景。水務(wù)公司可以實(shí)時(shí)查詢用水?dāng)?shù)據(jù)和水表參數(shù)(如正反向計(jì)量、信噪比、通訊記錄等);設(shè)置水表參數(shù)(底數(shù)、自定上報(bào)周期等);進(jìn)行開關(guān)閥門的控制等。
為避免終端管道故障造成水資源浪費(fèi)和用水量超出實(shí)際應(yīng)用量等現(xiàn)象發(fā)生,造成用戶的損失,水表設(shè)計(jì)了自動(dòng)告警功能。終端設(shè)備采集數(shù)據(jù)超過閾值即遇到故障時(shí),自動(dòng)向系統(tǒng)上報(bào)故障告警,包括過流量報(bào)警、模塊分離報(bào)警、磁干擾報(bào)警、逆流報(bào)警、過流報(bào)警等。同時(shí),為便于水務(wù)公司掌握用戶的使用情況,默認(rèn)將數(shù)據(jù)上傳設(shè)置為一天一次的周期自動(dòng)上報(bào),記錄每日48 組數(shù)據(jù)(即半小時(shí)采樣一次),并保存30 日的用水記錄便于分析用水情況。
設(shè)計(jì)采用芯翼公司的XY1100S 芯片,XY1100S 是一款基于窄帶蜂窩物聯(lián)網(wǎng)通信協(xié)議,采用軟件無線電架構(gòu),同時(shí)對(duì)聯(lián)網(wǎng)通信和低功耗微控制器應(yīng)用有需求的高性能、高集成度的SOC 芯片,封裝尺寸為6 mm×6 mm,60 個(gè)引腳。為支持不同產(chǎn)品的需求差異,具有功耗低、高性價(jià)比的優(yōu)點(diǎn)。XY1100S 可作為低功耗主控MCU(OPENCPU)滿足智能表聯(lián)網(wǎng)的需求,使用Cortex-M3 作為應(yīng)用核處理器。為提高訪問Flash/SRAM 的效率,芯片內(nèi)部在M3 的SBUS 內(nèi)置了8KB Cache 控制器,具有完全開放的處理器內(nèi)核和獨(dú)立的內(nèi)存空間,快速地喚醒響應(yīng)時(shí)間,支持各種低功耗策略和具有低功耗的產(chǎn)品優(yōu)勢(shì),能夠替代額外的MCU 芯片,降低客戶開發(fā)難度和節(jié)約成本。芯片內(nèi)部集成了多種通信協(xié)議,如TCP/UDP、HTTP(s)、MQTT、CoAP 等。XY1100S同時(shí)提供了豐富的外圍接口,方便用戶開發(fā),廣泛應(yīng)用于物聯(lián)網(wǎng)產(chǎn)品。
圖3 水表軟件設(shè)計(jì)部分Fig.3 Water meter software design part
2.2.1 功耗設(shè)計(jì)
該方案選擇用電池對(duì)電子裝置進(jìn)行供電,電池續(xù)航可達(dá)10 年,并且能提供非常全面的室內(nèi)覆蓋,無論是地上建筑還是地下室都可保證通訊的穩(wěn)定性和可靠性。該芯片有3 種不同的休眠狀態(tài),分別為深度休眠模式、待機(jī)模式和等待中斷模式。第一級(jí)別是WFI:等待中斷模式,CPU 停止,發(fā)生任何中斷事件都可以喚醒;第二級(jí)別是STANDBY:輕度睡眠模式,CPU 停止,外設(shè)時(shí)鐘停止,但不掉電,同時(shí)可被特殊中斷(GPI)喚醒;第三級(jí)別是DEEPSLEEP:深度睡眠模式,功耗要比輕度睡眠模式更低,CPU 停止,外設(shè)掉電,但喚醒后復(fù)位運(yùn)行。這三級(jí)低功耗狀態(tài)通過關(guān)閉外設(shè)部分、執(zhí)行SOC 電源管理接口,降低系統(tǒng)功耗。
為降低功耗,延長(zhǎng)電池使用時(shí)間,使終端設(shè)備日常處于睡眠模式,發(fā)生內(nèi)部中斷或是外部中斷時(shí)可被喚醒。到預(yù)設(shè)的采樣時(shí)間時(shí),模塊被喚醒,通過傳感模塊進(jìn)行用水信息采樣。到預(yù)設(shè)的數(shù)據(jù)傳輸時(shí)間時(shí),模塊被喚醒并開始進(jìn)行數(shù)據(jù)傳輸。當(dāng)數(shù)據(jù)傳輸結(jié)束,查看應(yīng)答信息,若有閥門的操控指令,模塊根據(jù)開、關(guān)閥操作指令對(duì)閥門進(jìn)行控制,若沒收到應(yīng)答信息,模塊進(jìn)入低功耗模式。
2.2.2 軟件架構(gòu)
設(shè)計(jì)中模塊兼具主控制功能和NB-IoT 通信功能,XY1100S 的OpenCPU 解決方案有多種的軟件API 接口,例如:AT 接口、看門狗、串口通信接口、時(shí)鐘管理接口、GPIO 與總線控制接口等。因此,該芯片提供的資源完全滿足本方案所需。其集成4M Flash,用來保存數(shù)據(jù),掉電不丟失數(shù)據(jù),最少支持100000 次擦寫。軟件設(shè)計(jì)部分如圖3。
2.2.3 數(shù)據(jù)交互部分
基于OpenCPU 的無線遠(yuǎn)傳水表預(yù)設(shè)為一天一次自動(dòng)上報(bào)表端數(shù)據(jù)終端設(shè)備根據(jù)離散預(yù)設(shè)的估長(zhǎng)將區(qū)域用戶的上報(bào)時(shí)間進(jìn)行離散,當(dāng)表內(nèi)時(shí)間與離散時(shí)間相同時(shí),水表自動(dòng)將數(shù)據(jù)傳輸至平臺(tái),同時(shí),平臺(tái)接收數(shù)據(jù)信息后返回一個(gè)應(yīng)答。若超時(shí)未收到應(yīng)答,上報(bào)失敗,則啟動(dòng)重發(fā)機(jī)制;若上報(bào)后返回應(yīng)答,則說明上報(bào)成功,表端收到應(yīng)答后對(duì)返回信息處理。
該方案中無線遠(yuǎn)傳水表支持遠(yuǎn)程操控的同時(shí),也支持近端通過紅外讀頭對(duì)表端數(shù)據(jù)設(shè)置、讀取,對(duì)模塊內(nèi)程序升級(jí)和控制閥門操作。用磁鐵觸發(fā)干簧管,此時(shí)干簧管吸合,將紅外讀頭放置于模塊中的紅外發(fā)射管和接收管處,進(jìn)而通過PC 端軟件對(duì)水表相關(guān)信息查詢、設(shè)置等。干簧管吸合后的3 min 內(nèi),為紅外有效期,此時(shí)程序循環(huán)檢測(cè)紅外端口接收的數(shù)據(jù),校驗(yàn)數(shù)據(jù)合法性,并根據(jù)協(xié)議對(duì)數(shù)據(jù)處理。3 min 后,干簧管需重新吸合才可繼續(xù)上述操作。近端操作可便于水表長(zhǎng)期的維護(hù)和使用。
受疫情影響,芯片供給失衡,MCU 價(jià)格上漲,導(dǎo)致產(chǎn)品整體生產(chǎn)成本提升。而基于OpenCPU 的無線遠(yuǎn)傳水表將OpenCPU 應(yīng)用于NB-IoT 模塊,讓其作為主處理器不但能解決該問題,還能使硬件設(shè)計(jì)整體成本大幅下降。無需外接MCU 即可對(duì)水表工作的相關(guān)信息進(jìn)行采集,并對(duì)這些數(shù)據(jù)進(jìn)行分析等相關(guān)處理,同時(shí),通過NB-IoT 網(wǎng)絡(luò)與基站傳輸數(shù)據(jù),并連接綜合抄表平臺(tái),實(shí)現(xiàn)便捷抄表,提升數(shù)據(jù)準(zhǔn)確性及遠(yuǎn)程操控閥門等。該無線遠(yuǎn)傳水表方案以實(shí)現(xiàn)水務(wù)公司用水信息采集的時(shí)效性為目標(biāo),以降低水表企業(yè)生產(chǎn)和維護(hù)成本為方向,能夠極大程度提升供水公司用水管理水平,有效地彌補(bǔ)現(xiàn)有水表的局限性,具有廣闊的應(yīng)用前景。