陳白寧,趙 明,任亞軍
(沈陽理工大學 機械工程學院,沈陽 110168)
當前水表自動抄表系統主要有四大類型:智能卡式水表、分線制集中式水表、總線制智能式水表、無線發射式水表。總線制水表的采集計量工作單元均裝配在水表內并密封,數據采集、處理、存貯等工作全由智能水表本身完成,手抄器或電腦不參與底層數據采集,僅進行通訊聯系,而通訊方式又多種多樣。本系統采用GPRS通訊和USB通訊,系統正常工作時以GPRS通訊為主,當GPRS通訊出現故障時,工作人員可從集中器中通過USB通訊讀出數據。該系統的安全性、穩定性和可靠性都比較高。
水表遠程集中抄表系統主要由脈沖水表、采集器、集中器和管理機組成。脈沖水表主要完成用水量數據的采集,將水量數據轉化成脈沖信號;采集器對脈沖信號進行處理、存儲,并通過485總線與集中器進行通訊,當接收到上層指令后,可通過控制電動閥來控制用戶用水;集中器的作用為數據中轉和總線隔離,它的主要任務有兩項:一是通過485總線與智能水表通訊,根據管理機的要求查詢某個水表的數據;二是通過GPRS網絡與管理機通訊,將采集器的數據信息傳輸給管理機;為避免GPRS網絡故障導致無法抄表,在集中器中設置USB接口,工作人員可用電腦或手抄器通過集中器抄讀數據;管理機對用戶的購水量和用水量信息進行管理,并可通過發送特定指令遠程控制用戶用水。其系統框圖如圖1所示。

圖1 系統框圖
采集器主要由CPU、閥門控制電路、低電壓檢測電路、485通訊接口電路、數據顯示、數據存儲、故障報警電路組成,其硬件框圖如圖2所示。
由于采集器通過電池供電,CPU選擇TI公司MSP430系列超低功耗的混合信號控制器,MSP430系列單片機,在1.8~3.6V電壓、1MHz的時鐘條件下運行,工作電流在0.1~400μA之間,并且外設資源豐富。
閥門是系統工作的重要器件,本系統中采用的是電動球閥,它對工作電壓要求不高,在3V電壓下也能正常工作,而且工作電流低,可以直接驅動。正常供水情況下,電動閥處于常開狀態,驅動機構不消耗電能;當預購水量用完時,電磁閥關閉并自鎖于常閉狀態。為防止閥門生銹出現不能關閉的情況,在程序上應設定每運行一定時間,控制閥門開閉一次。

圖2 采集器硬件框圖
采集器采用專用協議與集中器通信,RS-485的傳輸距離最大可達1200m。RS-485標準中沒有規定總線上允許連接的收發器數量,但規定了最大總線為32個單位負載,可以通過增大收發器輸入電阻擴展總線節點數。
采集器通過LCD模塊顯示的信息包括總用水量、當月用水量、開關閥狀態、電池狀態和故障等。為滿足低功耗的要求,LCD平時處于休眠狀態,可用中斷喚醒的方式使其顯示。
集中器主要通過GPRS網絡與管理機通訊。集中器的電源采用市電,為保證系統的可靠運行,配有備用電源。其硬件框圖如圖3所示。

圖3 集中器硬件框圖
由于系統采用外部電源供電,低功耗不再是系統設計的主要目標。為實現集中器的功能,選擇C8051F340作為集中器的CPU,C8051F340是Silicon Laboratories公司推出的可提供USB功能的混合信號微控制器,其USB功能控制器具有完整的USB2.0認證,支持全速與低速操作,可用于大多數USB外設設計。Silicon Laboratories公司還為USB驅動程序開發提供了USBXpress開發套件,使USB主機和從機驅動程序開發可以快捷、高效地完成。
目前,用于工業系統的GPRS數據傳輸模塊比較多,本系統選擇M32模塊。其主要特點是:內嵌TCP/IP協議,免除了編寫上網通信協議的繁雜過程,縮短了開發周期;內部使用通用AT命令集控制數據的收發;支持所有的通信方式。
為確保通訊成功,通訊雙方必須在軟件上有一系列的約定,通常稱為通訊協議。本系統的通訊協議如下:
集中器發出的信息幀由前導字節、幀起始符、儀表類型、采集器地址域、控制碼、數據長度、數據域、幀信息、縱向校驗碼及幀結束符等九個域組成,每個域由若干字節組成,信息幀的結構如圖4所示。

圖4 信息幀的結構
其中前導字節是由集中器或采集器發送的所有幀前面的一串規定數目的十六進制的字符,本系統采用3個字符;幀起始符為68H,表示一幀信息的開始;儀表類型是指參與通信的采集器屬于何種類型的計量儀表,水表抄表系統的儀表類型為10H-19H中任意一個數據,本系統選擇10H;采集器地址域由7個字節組成(A0A1A2A3A4A5A6),每個字節為2位BCD碼格式,地址長度為14位十進制數,其中A6A5為廠商代碼,低地址在前,高地址在后。當某一字節以AAH尋址時,忽略該字節地址;當地址為AAAAAAAAAAAAAAH時,為廣播地址。控制碼的格式如圖5所示:其中D7為0時表示由集中器發出的控制幀,為1時表示由采集器發出的應答幀。D6為0時表示采集器正確應答,為1時表示采集器對異常信息的應答。D5-DO為控制碼,部分控制碼及其功能如下:

圖5 控制格式
數據長度字段包含一個表示字節數的整數,用十六進制表示,是數據長度字段和校驗字段之間(不包括該兩個字段)的數據字節的計數值。讀數據時,數據長度小于或等于64H。寫數據時,數據長度小于或等于32H。數據長度等于0,表示無數據域。校驗碼采用累加和校驗,一個字節從幀起始符開始到校驗碼之前的所有各字節進行二進制算術累加,不計超過FFH的溢出值。
采集器的軟件功能主要包括脈沖數據的采集、數據顯示、閥門控制和485通訊等部分組成。主程序主要負責初始化,初始化完成后即進入低功耗模式,等待中斷,由各個中斷服務程序完成采集器的全部功能。中斷服務程序包括計數脈沖信號中斷、通訊中斷、顯示中斷、低電量中斷、防拆信號中斷。采集器的中斷服務程序流程如圖6所示。
3.3.1 接入GPRS網絡
集中器主程序的主要任務是通過AT指令控制M32模塊接入GPRS網絡和USB功能的初始化。其登入GPRS網絡的AT指令為
AT+CGDCONT=1,“IP”,“CMNET”;這條指令指使用中國移動的APN。
AT%CGPCO=1 “PAP,,”,1;這條指令完成PAP驗證。

圖6 采集器中斷服務程序流程圖
AT$DESTINFO=“XXXX.XXXX.XXXX.XXXX”,1,1234;這條指令中XXXX.XXXX.XXXX.XXXX為管理機的公網IP地址,1234為管理機中管理軟件接收/發送數據所用端口。
ATD*97#;這條指令直接用于撥號。
完成上述AT指令后,集中器與管理機建立了透明傳輸連接。
3.3.2 USB通訊API程序設計
借助USBXpress提供的USB器件API,可以簡便地實現C8051F340單片機作為USB器件的USB通信。USBXpress提供了10個USB器件API函數。在對C8051F340單片機進行編程時,只需將USBXpress提供的API函數的封裝庫USBX_F34X.LIB調入編譯軟件的鏈接器中,并在主程序中用“include”命令包含USB_API.h頭文件,就可以調用USBXpress提供的10個USB器件API函數,從而實現對USB數據包的讀寫,其程序流程圖如圖7所示,圖7a為USB器件的初始化,圖7b為中斷服務程序。

圖7 USB通訊API程序流程圖
實現水表的遠程集中抄表,可以有效地解決入戶抄表效率低的問題,提高自來水公司的用水管理水平和管理效率,使管理部門隨時了解居民的用水情況,并且抄表工作不受時間限制,杜絕拖欠水費,避免干擾居民生活,減少安全隱患。
[1] 中華人民共和國建設部.GB/T 778.1~3-2007飲用冷水水表和熱水水表,北京:中國標準出版社[S].
[2] 王鐵流,吳丹丹.李成.基于C8051F320 USB接口的數據采集存儲電路[J].電子產品世界,2006,12:101-103.
[3] 姚靈.水表自動抄表系統技術現狀與發展趨勢[J].上海計量測試,2008,3:2-4.
[4] 朱磊,劉東.C8051F340與Labview基于API的USB通信[J].單片機與嵌入式系統應用,2007,(11):35-37.
[5] 中華人民共和國建設部.CJ/T 224—2006電子遠傳水表,北京:中國標準出版社[S].
[6] 中華人民共和國建設部.JG/T 162—2004住宅遠傳抄表系統,北京:中國標準出版社[S].