自來水管網(wǎng)的分布廣泛,難以由人工完成大范圍壓力測量點的高頻率和高精度數(shù)據(jù)記錄。針對這一情況設(shè)計了基于SIM900A的無線遠(yuǎn)傳壓力表。該壓力表能夠?qū)崿F(xiàn)壓力的高精度測量,壓力數(shù)據(jù)的等時間間隔采集、保存和無線遠(yuǎn)傳。為了實現(xiàn)高精度的壓力測量,設(shè)計了精度高、溫漂小、噪聲低、負(fù)載接地的恒流源,采用了24-bitCS5530模數(shù)轉(zhuǎn)換器以相對測量的方式完成模數(shù)轉(zhuǎn)換,利用了光耦隔離電路實現(xiàn)模擬電路與數(shù)字電路的完全隔離。最后單片機控制SIM900八模塊與服務(wù)器之間建立基于GPRS的TCP連接,完成壓力數(shù)據(jù)無線遠(yuǎn)傳。
1.引言
為了保障人們的用水需求和減少漏損,必須對城市自來水管網(wǎng)的壓力進行嚴(yán)格控制。在控制壓力過程中,需要對壓力進行測量并得知管網(wǎng)的壓力分布。由于管網(wǎng)分布廣泛,壓力測量和傳輸多由遠(yuǎn)傳壓力表完成。傳統(tǒng)遠(yuǎn)傳壓力表利用滑動變阻器原理和長距離布線實現(xiàn)了壓力的測量和傳輸。這種測量和傳輸方式精度不高,易受干擾,不便維護,難以大規(guī)模使用,無法直觀反映管網(wǎng)的壓力分布。本文的無線遠(yuǎn)傳壓力表采用靈敏度高的壓阻式OEM壓力傳感器;設(shè)計了精度高、溫漂小、噪聲低的恒流源電路和24-bitA/D轉(zhuǎn)換電路,實現(xiàn)了壓力的高精度測量;利用了光耦將模擬電路與數(shù)字電路完全隔離,減少了測量電路的干擾;通過無線遠(yuǎn)程傳輸壓力數(shù)據(jù)到服務(wù)器,幾乎不需要維護,節(jié)省人力物力,非常適合大規(guī)模使用。服務(wù)器接收到壓力數(shù)據(jù)后繪制出管網(wǎng)壓力分布圖,能夠直觀地反映管網(wǎng)壓力分布狀態(tài),為管網(wǎng)的壓力控制提供依據(jù)。
2.系統(tǒng)總體設(shè)計
系統(tǒng)的總體設(shè)計思想是壓力傳感器在恒流源供電的條件下,輸出與作用壓力成正比的差分信號,該信號在A/D測量部分經(jīng)過濾波、放大后以相對測量的方式轉(zhuǎn)換為數(shù)字信號;RTC時鐘為單片機提供實時時間基準(zhǔn);當(dāng)壓力數(shù)據(jù)采集時刻到來,單片機通過光耦讀取A/D測量部分的數(shù)字信號;該數(shù)字信號會被換算為當(dāng)前壓力數(shù)值并被存儲在Flash中;當(dāng)壓力數(shù)據(jù)發(fā)送時刻到來,存儲在Flash中的壓力數(shù)據(jù)通過SIM900A發(fā)送給服務(wù)器。系統(tǒng)的整體結(jié)構(gòu)如圖1所示。
3.系統(tǒng)硬件設(shè)計
3.1恒流源
壓力傳感器采用壓阻式OEM壓力傳感器,其基本參數(shù)如表1所示。該壓力傳感器靈敏度高、穩(wěn)定性好、體積小、價格低廉。傳感器內(nèi)部原理圖如圖2所示,圖中帶箭頭的電阻橋路為敏感元件,私和風(fēng)為零位溫漂補償電阻,風(fēng)和風(fēng)為調(diào)零電阻,及為靈敏度溫度補償電阻。+IN、一IN為供電輸入端,接入恒定電流;十OUT和一OUT為信號輸出端,和U—ajT分別為十OUT和一OUT端的對地電壓。+OU丁與一OU丁之間的差分信號U—與激勵電流IL、外界作用壓力P之間的關(guān)系如式(1):
Uslgnai—U+OUT一U—OUT=KSIlP十KZIL(1)
式(1)中,KS為靈敏度系數(shù)、K2為零點系數(shù),均為常數(shù)。當(dāng)遼恒定,USP成線性關(guān)系。
由式(1)可知恒流源的精度和穩(wěn)定性會影響壓力傳感器輸出信號的質(zhì)量,因此對恒流源的精度、溫漂和噪聲提出了要求。王金晨設(shè)計的恒流源中[4],負(fù)載懸浮使噪聲增加。陳笑風(fēng)構(gòu)造的的電流源結(jié)構(gòu)[]復(fù)雜,電阻難以匹配。本文設(shè)計的恒流源為負(fù)載接地恒流源,具有精度高、溫漂小、結(jié)構(gòu)簡單、無需電阻匹配、噪聲低等特點考慮了運放的正向端、負(fù)向端輸入電流的影響輸出了A/D轉(zhuǎn)換器的參考電壓。
圖2傳感器內(nèi)部原理圖恒流源電路原理如圖3所示。REF192為高精度、低溫漂的帶隙參考電壓芯片,正常工作時其OUTPUT引腳與GND引腳之間電壓差為2.5V;Rs為5Kn的低溫漂電阻是壓力傳感器的等效電阻RF是5Kn的低溫漂電阻,一方面其兩端的電壓作為A/D轉(zhuǎn)換器的參考電壓,另一方面使壓力傳感器輸出信號的共模電壓滿足后續(xù)A/D測量的要求R是普通電阻;C9、C10是濾波電容。下面對該電路的直流狀態(tài)進行分析。
Uo、UN、UP分別為運放輸出端、負(fù)向端、正向端的對地電壓;分別為運放負(fù)向端、正向端的輸入電流;、是運放的輸入失調(diào)電流;Us是
REF192的OUTPUT引腳與GND引腳之間電壓差,Us=2.5V。
故運放處于負(fù)反饋狀態(tài),能夠穩(wěn)定。
Il為流經(jīng)傳感器等效電阻Rl的電流,s為流經(jīng)采樣電阻Rs的電流。在節(jié)點A處利用KCL定理可得:
3.2A/D測量
a/d測量是將傳感器輸出的差分信號濾波、放大和A/D轉(zhuǎn)換后得到數(shù)字信號。
A/D測量原理圖如圖4所示。U廳是恒流電路產(chǎn)生的電壓,提供A/D轉(zhuǎn)換器CS5530基準(zhǔn)電壓;A5V提供CS5530的模擬電源;另一路5V電源經(jīng)過一階低通濾波器后提供CS5530的數(shù)字電源。
壓力傳感器的輸出端+OU丁和一out經(jīng)過二階低通濾波器后接入模數(shù)轉(zhuǎn)換芯片CS5530,通過CS5530內(nèi)部斬波穩(wěn)定儀表放大器將差分信號放大64或128倍。一般情況下就無需額外設(shè)計信號放大電路,提高測量精度,降低成本。
在A/D轉(zhuǎn)換之前,通過程序控制將CS5530的信號輸入引腳短路,測量出共模噪聲,在最后的測量結(jié)果中將該噪聲減去,來降低噪聲對測量結(jié)果的影響。通過內(nèi)部的數(shù)字濾波器濾除工頻干擾,減少了單片機的數(shù)字濾波處理,節(jié)約了單片機軟件資源。
CS5530的通信端口是串行SPI接口,包括CS、SDI、SDO、SCLK。CS為片選端口,直接拉低選中;SDI為數(shù)據(jù)輸入端口;SDO為數(shù)據(jù)輸出端口;SLCK為時鐘輸入端口,這樣就只需要占用單片機的三個I/O口。相比于并行模數(shù)轉(zhuǎn)換器而言,CS5530節(jié)約了單片機的硬件資源。
采用CS5530設(shè)計A/D測量部分使電路簡潔、精度高、成本低,從硬件和軟件兩個方面減少對單片機資源的占用。
下面就A/D測量進行分析:
U5-a/為壓力傳感器輸出的差分信號,A=64為該差分信號的放大倍數(shù),Uf=IlRf為參考電壓,ADC為Um-的模數(shù)轉(zhuǎn)換結(jié)果。24-bit的模數(shù)轉(zhuǎn)換滿量程ADCmax=16777215。由模數(shù)轉(zhuǎn)換原理得如下關(guān)系:
數(shù),建立了模數(shù)轉(zhuǎn)換結(jié)果ADC與壓力P的線性關(guān)系。線性系數(shù)k與激勵電流八無關(guān),減小了激勵電流波動對測量結(jié)果的影響;僅與電阻Rf有關(guān),測量精度由電阻Rf決定,提高電阻Rf的精度和穩(wěn)定性能夠增加測量精度和穩(wěn)定性,實現(xiàn)了相對測量。
3.3光耦
在混合電路設(shè)計過程中,數(shù)字電路干擾比較大,如果模擬電路與數(shù)字電路不隔離,就會導(dǎo)致模擬電路受到干擾,影響測量精度。為了抑制這種干擾一般采用的辦法是將模擬電路與數(shù)字電路分開布局,模擬地和數(shù)字地最后在某一點短接。
上述辦法雖然可以減小數(shù)字電路對模擬電路的干擾,卻難以消除這種干擾。為了使數(shù)字電路不會干擾模擬電路,這里采用的辦法是通過光耦將數(shù)字電路和模擬電路完全隔離。這種處理能夠降低PCB設(shè)計的難度,消除數(shù)字電路對模擬電路的干擾,增加測量精度。
將A/D轉(zhuǎn)換器CS5530歸為模擬電路,單片機歸為數(shù)字電路。單片機通過光耦與CS5530進行通信。光耦一端連接CS5530的SDI,SDO,SCLK引腳,另一端連接單片機引腳MCU_SDO,MCU—SDI,MCU_SCLK。這樣就完成了模擬電路部分與數(shù)字電路部分之間信息的傳遞,實現(xiàn)了二者的完全隔離。單片機通過光耦與CS5530連接原理圖如圖5所示,圖中3.3V為單片機的電源電壓,5V為CS5530的數(shù)字電源電壓。
3.4數(shù)字電路部分
在數(shù)字電路部分,RTC時鐘DS3231為單片機提供時間基準(zhǔn)。當(dāng)壓力采樣時刻到來,單片機會通過光耦啟動CS5530的A/D轉(zhuǎn)換,并且保存當(dāng)前日
圖6發(fā)送流程圖采用SIM900A通過GPRS網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的過程:首先設(shè)置網(wǎng)絡(luò),數(shù)值到串行Flash存儲M25P128中。當(dāng)數(shù)據(jù)發(fā)送時刻到來,單片機啟動SIM900A與服務(wù)器進行無線通信。單片機與外設(shè)連接原理圖如圖5所示。
RTC時鐘DS3231的I2C接口和INT引腳會分別連接到單片機的I/O口和外部中斷引腳。通過程序設(shè)置DS3231的INT引腳輸出周期為1S的方波,觸發(fā)單片機中斷。
CS5530的SPI接口通過光耦與單片機的I/O口連接。單片機可以發(fā)送命令給CS5530啟動A/D轉(zhuǎn)換,讀取A/D轉(zhuǎn)換結(jié)果和停止A/D轉(zhuǎn)換。
單片機與串行FlashM25P128通過SPI接口連接,可以對其進行讀、寫、擦除等操作。該Flash的最小讀寫單元是1個字節(jié),可以提高存儲利用率。在壓力數(shù)據(jù)采集完后將其保存在M25P128中;當(dāng)無線發(fā)送時,將壓力數(shù)據(jù)從M25P128讀出。
單片機通過UART串口發(fā)送AT命令給SIM900A實現(xiàn)壓力數(shù)據(jù)的無線遠(yuǎn)傳功能。
4.系統(tǒng)軟件設(shè)計
4.1SIM900A程序設(shè)計
SIM900A內(nèi)嵌TCP/IP協(xié)議可以實現(xiàn)語音、SMS和GPRS數(shù)據(jù)的傳輸。用戶可以通過AT命令控制SIM900A。在AT命令操作過程中,當(dāng)?shù)却帐殖瑫r后,即判斷AT命令發(fā)送失敗終止等待。
采用SIM900A通過GPRS網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的過程:首先設(shè)置網(wǎng)絡(luò),與服務(wù)器建立TCP連接;然后單片機發(fā)送壓力數(shù)據(jù);發(fā)送完成后,關(guān)閉該TCP連接減輕服務(wù)器的負(fù)擔(dān)。由于無線網(wǎng)絡(luò)不穩(wěn)定,會出現(xiàn)連接不上、中途掉線和TCP握手超時等現(xiàn)象,因此需要設(shè)置重傳機制。發(fā)送流程如圖6所示,采取的措施是連續(xù)三次出現(xiàn)數(shù)據(jù)發(fā)送不成功就關(guān)閉SIM900A,等到下次發(fā)送時刻到來繼續(xù)發(fā)送。
4.2系統(tǒng)程序框架設(shè)計
系統(tǒng)軟件的運行框架如圖7所示,主要有兩部分:主程序和1S中斷程序。
系統(tǒng)上電后,首先在主程序中進行系統(tǒng)初始化工作:R丁C時鐘DS3231、A/D轉(zhuǎn)換器CS5530、FlashM25P128和UAR丁串口的初始化。然后單片機進入低功耗模式,暫停繼續(xù)執(zhí)行。DS3231輸出的1S方波的上升沿會觸發(fā)單片機的1S中斷程序。在1S中斷程序中,判斷壓力數(shù)據(jù)采集時刻是否到來,一旦到來采集壓力數(shù)據(jù)保存到M25P128中,喚醒單片機跳出低功耗模式。1S中斷程序結(jié)束后,主程序繼續(xù)執(zhí)行,判斷壓力數(shù)據(jù)發(fā)送時刻是否到來,一旦到來就通過SIM900A發(fā)送壓力數(shù)據(jù)到服務(wù)器,然后進入低功耗模式,就這樣不斷循環(huán)。該款單片機進入低功耗模式后會保持其引腳的上升沿中斷和UAR丁串口發(fā)送、接收中斷的響應(yīng)。
壓力數(shù)據(jù)采集部分在1S中斷程序中進行,壓力數(shù)據(jù)發(fā)送部分在主程序中執(zhí)行,這樣使數(shù)據(jù)采集的優(yōu)先級更高,保證了壓力數(shù)據(jù)采集的時間間隔恒定不變。由于壓力數(shù)據(jù)采集和壓力數(shù)據(jù)發(fā)送都需要使用M25P128,故需要做好對臨界資源的互斥訪問。
上述處理方式使單片機在1S的大部分時間內(nèi)處于低功耗模式,既滿足功能要求又避免了因判斷時間是否到來而頻繁地讀取R丁C時鐘,節(jié)約了單
片機的軟件資源、降低了功耗。
5.結(jié)語
本文設(shè)計了恒流源電路、a/d測量電路和光耦隔離電路,利用光耦完成模擬電路部分和數(shù)字電路部分的通信,達(dá)到了這兩個部分有效隔離的目的,在采樣率為100Sps情況下,實現(xiàn)了16位的精確測量;設(shè)計了數(shù)字電路部分,通過SIM900A實現(xiàn)了壓力數(shù)據(jù)無線遠(yuǎn)傳的功能。該裝置已在自來水管網(wǎng)中使用,測量精度達(dá)到0.2%。、數(shù)據(jù)發(fā)送穩(wěn)定。 |