吳建斌,成 亞
(華中師范大學物理科學與技術學院,武漢430000)
一直以來,水務公司對水表用戶抄表都是采用傳統的人工抄表的方式,這種抄表方式人為誤差嚴重,漏抄,估抄,冒抄現象時有發生,不僅費時費力,而且不能及時準確更新用戶的用水情況[1-2]。為解決人工抄表困難和及時掌握用水信息等類似問題,近年來出現了多種智能遠傳水表,大體上分為脈沖式與直讀式。由于脈沖式水表會因為電池斷電與線路中斷等情況產生數據錯誤。而大多數直讀式水表采用絕對編碼數據采集技術。絕對編碼數據采集技術采用了光電等物理方式,通過一種專門的傳感器和特殊的編碼計算方法進行位置編碼。該水表較為直觀且平時不需供電,只在讀取數據的時刻上電,數據不會因斷電而清零,但是其編碼器結構、信號處理和識別方式比較復雜,要求的制造工藝和制造成本普遍相對較高[3-5]。設計采用攝像式的直讀式水表[6],只需設計圖像采集模塊采集水表圖像數據,經過簡單的圖像識別算法就可以提取水表示數,不僅克服了脈沖式水表需持續供電的困難而且結構簡單容易實現。目前我國大部分地區仍然采用人工抄表的方式,而且現有的智能水表價格都普遍較高,根據中國智能水表網的數據顯示普通智能水表價格一般在250元左右,并且對存量機械水表進行改造需要停水和改變管道,所以不適合智能水表的大面積推廣。為了降低智能水表的成本,使其能夠被廣泛的推廣應用,以及在不停水和改變供水管道的前提下實現現有存量機械水表的智能化改造,設計了一種低功耗,低成本的攝像直讀式遠傳水表。
系統微處理器采用意法半導體公司的基于超低功耗的ARM32位Cortex-M0處理器內核STM32F030CCT6單片機,一塊芯片成本低至7元。它具有48MHz的工作頻率,片上集成256KB的Flash以及32KB的SRAM,1個12位的μs級A/D轉換器,8個定時器,10個通信接口(其中包括2個I2C,2個 SPI,6個 USART接口),37個 I/O 端口,工作電壓范圍為2.4V~3.6V[7]。它同時也具備了多種工作模式的選擇,能夠使系統在不需要工作時處于休眠狀態,有效的降低了工作功耗。
近年來無線射頻技術飛速發展[8],無線遠傳抄表無需布線,安裝方便,易實現。本系統通信模塊采用LORA組網技術。基于LORA模塊的遠程抄表系統,不僅具有易嵌入、組網容量大、低功耗等優點,而且接收靈敏度高達-140dBm,信號穿透性強,傳輸距離遠[9]。由于系統使用電池供電,而LORA采用點對點通信方式,實現遠距離傳輸,不需要網格化網絡,適用于長期以電池供電的方式[10],滿足系統長期電池供電的需求,所以本系統采取LORA通信方式。
基于STM32單片機的智能水表的總體硬件設計框圖如圖1所示,它以STM32F030CCT6單片機為核心,附加其他外圍模塊組成。其中,主要的外圍模塊包括電源模塊、圖像數據采集模塊、LORA無線通信模塊、LED照明模塊以及電壓檢測模塊。考慮到低成本和低功耗的需求,系統所選用器件的單片采購價不超過60元,其中主控模塊單片采購價大約7元,攝像頭模塊單片采購價大約20元,LORA通信模塊單片采購價大約12元。

圖1 智能水表硬件框圖
系統的低功耗設計主要體現在兩方面:一方面是各個模塊芯片的選擇,本系統選取的芯片都是低功耗低成本的器件。另外一方面是合理優化系統的工作流程,采用各模塊逐步喚醒和斷電的工作機制,各個模塊均設計了開關電路。當系統需要用到某個模塊時才為其供電,其它時刻處于斷電狀態,有效的降低了系統功耗。
系統的工作流程為:首先啟動MCU,啟動電壓檢測功能,檢測電池剩余電量,當電量不足時,打開LORA電源開關,系統通過LORA發出警示,最后關閉LORA電源;當電池電量充足時,打開攝像頭電源開關,啟動攝像頭,當攝像頭啟動成功,則打開LED燈進行照明,攝像頭拍照,當攝像頭拍照結束,關閉LED燈。攝像頭采集的圖像則寫入FIFO。單片機讀取FIFO數據并進行圖像處理,同時關閉攝像頭電源,接著打開LORA電源開關。通過LORA將主控處理獲取的結果發送出去,最后關閉LORA開關,系統進入休眠狀態,等待下一次的喚醒啟動。工作流程如圖2所示。

圖2 工作流程圖
系統不僅在硬件選型上降低了成本和功耗,而且本系統工作流程的設計,有效的降低了系統的功耗。
由于水表安裝在一個比較密閉的黑暗環境中,因此本系統設計了兩個LED燈用于圖像采集時的照明,這樣才能保證系統采集數據的準確性。LED照明電路如圖3所示。發光二極管的陽極接電源,電源由開關控制。LED1和LED2端口與MCU的IO端口連接,由軟件控制拉低或拉高LED1和LED2端口。當攝像頭準備拍照時,打開攝像頭電源開關。當攝像頭啟動完畢開始拍照,拉低LED1和LED2,使LED燈照明。當拍照完成,拉高LED端口,使LED燈熄滅。充分的降低了燈光照明時間,有效的降低了功耗。

圖3 照明電路
系統圖像采集選用的是OV公司生產的CMOS VGA圖像傳感器OV7670。該傳感器采用CMOS結構,由單電源供電,體積小,工作電壓低,不僅能夠提供VGA攝像頭和影像處理器的所有功能,而且功耗非常小[11]。因為OV7670的像素時鐘(PCLK)最高可達24MHz,一般單片機(如STM32F0)的IO口直接抓取是非常困難的,也十分耗占CPU[12],所以本系統圖像采集模塊通過采用FIFO存儲來自OV7670的圖像數據,它能完整的存一幀的圖像數據并且可以隨時讀取,有效的降低了OV7670對單片機的性能依賴。
圖像采集模塊如圖4所示。

圖4 圖像采集模塊
其中,U6是12M的有源晶振,產生12M的時鐘信號作為OV7670的XCLK輸入,為OV7670提供時鐘。
PAM3101DAB是一塊穩壓芯片,將3.3V電壓轉為2.8V,為OV7670提供穩定的2.8V工作電壓。
U7是一個二輸入與非門,OV7670的行同步信號HREF與MCU的W_EN引腳作為與非門的輸入,輸出信號WE連接到FIFO的WE端口,作為OV7670向FIFO寫數據使能。
緩存AL422B的DO0到DO7連接到MCU的IO口,MCU通過此數據口從FIFO中讀取圖像數據,進行處理。AL422B的寫指針復位WRST引腳連接到MCU,由MCU控制寫指針操作。WRST低電平有效,當WRST為低電平時,寫指針復位,開始從0地址寫數據;當WRST為高電平時,寫指針運動。AL422B的讀指針復位RRST引腳連接到MCU,由MCU控制讀指針操作。RRST低電平有效,當RRST為低電平時,讀指針復位,開始從0地址讀取數據;當RRST為高電平時,讀指針運動。AL422B的RCLK引腳連接到MCU的IO端口,由MCU向其提供讀數據時鐘。AL422B的OE引腳連接到MCU,由MCU控制FIFO讀操作。OE低電平有效,當OE信號為低電平時,FIFO輸出使能狀態,隨著讀時鐘RCLK的運轉,數據輸出管腳D07到DO0會按地址遞增的方式輸出數據;當OE信號為高電平時,關閉輸出,隨著讀時鐘RCLK的運轉,數據輸出管腳DO7到DO0會呈現高阻態。OV7670的PCLK引腳連接到緩存AL422B的WCLK引腳,作為OV7670向FIFO寫數據的時鐘。OV7670的數據口Y2到Y9連接到AL422B的DIO到DIO7端口,作為OV7670向FIFO的寫圖像數據端口。
通信模塊是智能遠傳水表的一個重要部分。攝像頭采集水表圖像數據后,進行圖像識別,提取水表示數,最后通過LORA通信模塊將水表數據傳送出去。本系統通信模塊采用最新的LoRa擴頻調制技術芯片SX1278。SX1278是一款高性能、低功耗、遠距離的微功率無線模塊,內部自動擴頻計算和硬件校驗處理,使用起來簡單,而且SX1278的射頻芯片基于擴頻跳頻技術,在穩定性、抗干擾能力以及接收靈敏度上都超越現有的GFSK射頻模塊,通信距離是普通FSK模塊的三倍以上[13-14]。SX1278具有以下特性:
1)基于LoRa擴頻調制技術;
2)半雙工通信,SPI通信控制;
3)工作在2.1-3.6V寬電壓范圍;
4)微功率發射,標準100mW;
5)接收靈敏度高達-148dBm,最大發射功率+20dBm;
6)硬件檢驗、硬件擴頻編碼、可以自定義調頻機制;
7)接收、發射、CAD檢測、休眠等多種模式任意切換。
通信模塊電路如圖5所示。SPI_OUT、SPI_IN、SPI_CLK、NSS引腳連接到MCU相應的端口,作為SPI接口的4條總線信號。NSS為片選信號,當NSS信號線為低電平時,片選有效。SPI_CLK為時鐘信號線,由主通信設備產生。STM32的SPI時鐘頻率最大為fPCLK/2。SPI_OUT為主設備輸入/從設備輸出引腳,主機從這條信號線讀入數據,從機的數據則由這條信號線輸出。SPI_IN為主設備輸出/從設備輸入引腳,主機的數據從這條信號線輸出,從機由這條信號線讀入數據[15]。RESET_LORA為SX1278的復位引腳,連接到MCU。DIO_0-DIO_5為SX1278的數據IO口,由軟件配置。VCC_LORA為SX1278提供電源。ANT為天線接口。

圖5 LORA通信模塊
完善良好的硬件環境是軟件正常運行的必備條件。因此在進行軟件設計前,首先要檢測硬件性能是否達到預期的效果。在系統硬件設計完成后,需要對硬件電路反復的進行測試。經過反復測試,確認本系統各元器件引腳連接正常,無短路、斷路情況。各外圍模塊硬件測試均達到預期效果,可以正常使用。圖6為攝像頭OV7670采集的水表圖像。
由于水表處于黑暗環境,用于照明的兩個LED燈為減小水表玻璃蓋產生的鏡面反射作用,應該對稱的安裝在距離攝像頭盡可能遠的左右上方。為了攝像頭采集到最清晰的圖像,攝像頭應該安裝在水表正上方約5cm高處。由圖6可知,圖像采集模塊拍攝出的水表示數比較清晰,為下一步軟件設計中的圖像識別提高了識別率,有效減小了智能水表的錯誤率。本系統最大的優點在于低功耗和低成本的設計。智能水表使用的器件均為低壓、低功耗器件。此外,電路中還設計了多個電源開關,僅當用到某個模塊時,其電源開關才閉合,有效的降低了功耗。系統在最后的測試中,電源端串聯了一個電流表,測量了系統待機狀態以及工作狀態下的電流。測得待機狀態下的電流為20μA;系統處于工作狀態下的工作電流為50mA。假設水表每個月采集并發送數據3次,每次采集數據到發送數據需要的時間在2s以內。因此,采用2600mAh左右的電池并考慮20%的功耗損耗,在理論上可以使用一年。

圖6 攝像頭OV7670采集的水表圖像
本文對基于STM32F030CCT6的遠傳智能水表的硬件設計與電路實現做了詳細闡述。首先描述了基于STM32F030CCT6的遠傳智能水表的整體硬件框圖,給出了主芯片與各外圍模塊的關系。接著介紹了STM32F030CCT6選型優勢以及其特性和功能,其次分別闡述了各個外圍模塊的接口電路,從硬件的角度闡述了各個硬件模塊的工作原理與實現功能,最后進行了硬件測試和結果分析。從硬件上實現了低功耗遠傳智能水表的設計。系統設計難點就是對器件的選型,由于涉及到低功耗,所以要求所選器件都是低壓供電、低功耗器件。盡管系統實現了低功耗遠傳智能水表,但是功耗可能沒有實現到最低。為了在以后的發展中更好地滿足用戶的需求,系統功能需要不斷地升級優化,未來在圖像采集及識別準確度、通信距離數據傳輸精確度等通信能力、產品功耗和成本等方面都有待進一步的改進。
[1]李浩,田野,楊大偉.水表抄表方式的優缺點及應用前景分析[J].山東水利,2015,40(10):55-56.LIHao,TIANYe,YANGDawei.Advantagesanddisadvantages of meter reading method and application prospect analysis[J].Shandong Water Resources,2015,40(10):55-56.
[2]辛增念,冀春濤.智能水表無線抄表系統的設計[J].科技創新導報,2008(36):95-97.XINZengnian,JIChuntao.Smartmeterwirelessmeterreading system design[J].Science and Technology Innovation Herald,2008(36):95-97.
[3]郭惠均.智能水表核心技術分析[J].科技創新導報,2012(25):49-51.GUO Huijun.Analysis of core technology of intelligent water meter[J].Science and Technology Innovation Herald,2012(25):49-51.
[4]張明達,黃建明.基于Si4432的無線遠傳智能階梯計費水表設計[J].電子測量技術,2017,40(8):235-239.ZHANGMingda,HUANGJianming.BasedonSi4432wireless remote transmission intelligent ladder meter design[J].Electronic Measurement Technology,2017,40(8):235-239.
[5]林思克.基于絕對編碼數據采集技術的智能水表抄表系統——紅外數據采集系統的設計[J/OL].輕工科技,2014,30(3):56-57.LIN Sike.Intelligent water meter reading system based on absolute coding data acquisition system-design of infrared data acquisitionsystem[J/OL].LightIndustrialScienceandTechnology,2014,30(3):56-57.
[6]陳龍龍.攝像式智能水表監測系統中圖像壓縮方法的研究[D].鄭州大學,2016.CHENLonglong.Researchonimagecompressmethodinvideo surveillance system[D].Zhengzhou University,2016.
[7]STlife.augmented.Value-line ARM?-based 32-bitMCU with up to 256-KB Flash,timers,ADC,communication interface,2.4-3.6Voperation.STM32F030x4 STM32F030x6 STM32F-030x8 STM32F030xC Datasheet-production data,Rev2[Z].STMicroelectronics,2015.
[8]葛熠,陳為剛.基于嵌入式USRP的無線通信實現[J].電子測量技術,2016,39(6):167-171.GEYi,CHENWeigang.Wireless comunication system implementation using embedded USRP[J].Electronic Measurement Technology,2016,39(6):167-171.
[9]王陽,溫向明,路兆銘,等.新興物聯網技術——LoRa[J].信息通信技術,2017,11(1):55-59.WANG Yang,WEN Xiangming,LU Zhaoming,et al.New Internet of things technology-LoRa[J].Information and Communications Technology,2017,11(1):55-59.
[10]應小軍,李瑜煜.基于FPGA的CMOS圖像傳感器驅動電路設計[J/OL].廣東工業大學學報,2015,32(1):71-74.YING Xiaojun,LI Yuyu.Design of drive circuit of CMOS image sensor based on FPGA[J/OL].Journal of Guangdong University of Technology,2015,32(1):71-74.
[11]李慧敏,樊記明,楊笑.基于STM32和OV7670的圖像采集與顯示系統設計[J/OL].傳感器與微系統,2016,35(9):114-117.LI Huimin,FAN Jiming,YANG Xiao.Design of image acquisition and display system based on STM32 and OV-7670[J/OL].Transducerand MicrosystemTechnologies,2016,35(9):114-117.
[12]徐潔瑩,劉云飛.基于STM32F107的圖像采集傳輸系統設計[J].山西電子技術,2015(6):26-28.XUJieyin,LIUYunfei.Designofimageacquisitionandtransmission system based on STM32F107[J].Shanxi Electronic Technology,2015(6):26-28.
[13]趙太飛,陳倫斌,袁麓,等.基于LoRa的智能抄表系統設計與實現[J].計算機測量與控制,2016,24(9):298-301.ZHAO Taifei,CHEN Lunbin,YUAN Lu,et al.Design and implementation of the smart meter reading system based on LoRa[J].Computer Measurement&Control,2016,24(9):298-301.
[14]王瑞,李躍忠.基于SX1278的水表端無線抄表控制器[J].電子質量,2015(12):67-68.WANG Rui,LI Yuezhong.Wireless meter reading controller based on SX1278[J].Electronics Quality,2015(12):67-68.
[15]梁德堅,劉玉瓊.SPI總線數據遠距離傳輸實現[J].電子測試,2009(1):72-75.LIANGDejian,LIUYuqiong.RemotetransmissionofSPIbus data[J].Electronic Test,2009(1):72-75.