王公堂,于國棟
(山東師范大學(xué)物理與電子科學(xué)學(xué)院,山東濟(jì)南250014)
隨著城市化建設(shè)的快速發(fā)展,智能住宅小區(qū)不斷涌現(xiàn),小區(qū)中生產(chǎn)和供應(yīng)熱水的太陽能集熱熱水工程設(shè)備多、分散安裝在各個樓頂,通常管理人員需要上到樓頂才能實現(xiàn)控制和管理,十分不便。遠(yuǎn)程測控系統(tǒng)能夠?qū)ιa(chǎn)和供應(yīng)熱水的設(shè)備進(jìn)行遠(yuǎn)程測控,降低管理成本,管理方便。
一般測控網(wǎng)絡(luò)多采用RS-485作為現(xiàn)場總線[1],但由于其存在著傳輸距離小于1 km、通訊失敗率高的局限性,決定了RS-485不適合小區(qū)范圍里5 km以內(nèi)的通訊。與RS-485相比,CAN總線[2]是一種有效支持分布式的串行通信網(wǎng)絡(luò),實時性強(qiáng),可靠性高,抗干擾能力強(qiáng)。CAN總線在傳輸距離小于40 m時,最大傳輸速率可達(dá)到1 MB/s,當(dāng)傳輸距離為10 km時,目前CAN總線仍可提供高達(dá)5 kB/s的數(shù)據(jù)傳輸速率。因此,采用CAN總線來設(shè)計遠(yuǎn)程水溫水位測控系統(tǒng),具有明顯的實用價值和現(xiàn)實意義。
測控系統(tǒng)主要由上位機(jī)和N個測控節(jié)點組成。上位機(jī)核心為PIC18F458單片機(jī),通過CAN總線與測控節(jié)點通信,顯示各測控節(jié)點采集的水溫、水位數(shù)據(jù),并完成功能設(shè)置,把設(shè)置好的溫差循環(huán)參數(shù)和供水參數(shù)等數(shù)據(jù)傳送給測控節(jié)點。測控節(jié)點也是以PIC18F458為主控器,完成數(shù)據(jù)采集和控制執(zhí)行。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖Fig.1 General structure diagram of system
測控節(jié)點整體結(jié)構(gòu)框圖如圖2所示。測控節(jié)點在設(shè)計上采用了模塊化結(jié)構(gòu),由PIC微處理器、水溫水位采集模塊、繼電器控制模塊、CAN通訊模塊和實時時鐘模塊組成,可根據(jù)具體情況只選用其中的部分模塊。
圖2 測控節(jié)點結(jié)構(gòu)框圖Fig.2 Structure diagram of control node
目前,有兩種CAN總線器件可以選擇。一種是片內(nèi)集成CAN的微控制器,如8XC591/2、MC68376等,另一種是獨立的CAN控制器,如SJA1000、82C200等,但是獨立的CAN控制芯片需要外接一個微處理器才能運行。本設(shè)計選用的是Microchip公司的帶有片內(nèi)CAN控制器的PIC18F458微處理器,這樣大大簡化了節(jié)點的硬件電路設(shè)計,減少了程序的復(fù)雜程度,系統(tǒng)的可靠性高。而且該微處理器內(nèi)置10位A/D轉(zhuǎn)換模塊,可直接實現(xiàn)8通道模擬信號的A/D轉(zhuǎn)換,自帶256 B的E2PROM,可以實現(xiàn)數(shù)據(jù)的掉電保護(hù),滿足測控節(jié)點的設(shè)計要求。
溫度測量選用NTC熱敏電阻器作測溫傳感器,每路測溫電路完全相同,都是用一個阻值固定的電阻與一個熱敏電阻串聯(lián),對5 V電源電壓分壓,利用熱敏電阻上的壓降隨溫度變化而變化實現(xiàn)溫度的測量[3]。當(dāng)選用玻璃封裝精度為50 kΩ±0.5%,B值為4 050 k±1%的NTC熱敏電阻,阻值固定的電阻選用精度為20 kΩ±0.5%的金屬膜電阻時,不需進(jìn)行線性補(bǔ)償,經(jīng)PIC自帶的10位A/D轉(zhuǎn)換器轉(zhuǎn)換后,直接查表獲得水溫值,精度可達(dá)±1℃。
水位測量采用非對稱式多諧振蕩器電路[4],先把水位傳感器RW的電阻大小轉(zhuǎn)換為振蕩信號的頻率高低。振蕩器電路由74HC04、C1、R5、R6、R7和水位傳感器的電阻RW組成,振蕩頻率為f=1/[2.2(R5+R6+RW)C1],如圖3所示。采用捕捉法測量振蕩信號的頻率。振蕩信號由RC2輸入單片機(jī),利用CCP對上升沿進(jìn)行捕捉,每次捕捉都記錄下TMR1中的值,根據(jù)相鄰兩次上升沿時TMR1的值計算得振蕩頻率[5],誤差可控制在1 Hz以內(nèi)。
圖3 水位測量電路Fig.3 Circuit diagram of water level measurement
繼電器控制模塊電路如圖4。繼電器控制模塊由RD7輸出來控制繼電器的開關(guān)。通過光耦TLP521來隔離,增強(qiáng)繼電器的穩(wěn)定性,光耦輸入端使用單片機(jī)電源VCC,輸出端為直流+5 V電源供電,有效地減少了電源間的互相干擾。繼電器可能會長時間工作在通電狀態(tài),且電流較大。如果直接用光偶的輸出端來驅(qū)動繼電器,會降低光偶的使用壽命,甚至燒壞光耦,因此,在光耦輸出端加入三極管8050驅(qū)動電路,由三極管直接驅(qū)動光耦。
圖4 繼電器控制電路Fig.4 Control circuit of Relay
2.4.1 C AN通訊模塊的硬件設(shè)計
CAN通訊模塊的硬件電路如圖5。設(shè)計中使用CAN總線收發(fā)器82C250,它是CAN控制器與物理總線間的接口,可以提供對總線的差動發(fā)送和接受能力,與ISO11898標(biāo)準(zhǔn)完全兼容,并具有抗瞬間干擾、保護(hù)總線的能力。PIC18F458自帶CAN控制器,82C250并不是必須使用的器件,但82C250有較強(qiáng)驅(qū)動能力,可支持多達(dá)110個節(jié)點,并能延長通訊距離,滿足對多個測控節(jié)點遠(yuǎn)程通訊的設(shè)計要求。為了進(jìn)一步提高系統(tǒng)的可靠性和抗干擾能力,在CAN控制器和CAN收發(fā)器之間采用高速光耦6N137進(jìn)行隔離。
圖5 CAN通訊電路Fig.5 Communication circuit of CAN
整個測控系統(tǒng)的CAN總線長度在5 km以內(nèi),因此將82C250的第8腳直接接地,使82C250工作在高速模式,來減少延時增加總線長度。這種模式的總線輸出信號用盡可能快的速度切換,因此一般要求使用屏蔽雙絞線電纜來防止可能的擾動。
2.4.2 C AN通訊模塊的軟件設(shè)計
CAN通信模塊的軟件主要由初始化程序、發(fā)送程序、接收程序3部分組成。其中初始化程序是實現(xiàn)通信的關(guān)鍵,它主要用來完成CAN控制器工作方式的選擇,即對PIC18F458中CAN控制器控制段中的寄存器進(jìn)行設(shè)置[6],包括方向控制寄存器設(shè)置,CAN控制寄存器設(shè)置,接收驗收濾波寄存器和濾波屏蔽寄存器設(shè)置,設(shè)置發(fā)送數(shù)據(jù)幀類型、標(biāo)識符、數(shù)據(jù)長度。PIC自帶的CAN控制器必須進(jìn)入設(shè)置模式才能進(jìn)行初始化,CAN控制器初始化程序流程如圖6所示。
圖6 CAN初始化程序流程圖Fig.6 Flow chart of CAN Initialization
測控節(jié)點與CAN總線之間的數(shù)據(jù)交換是通過發(fā)送程序和接收程序?qū)崿F(xiàn)的。上位機(jī)通過定期的訪問來獲取測控節(jié)點的數(shù)據(jù),而不是實時傳送,從而減輕了總線負(fù)擔(dān)。這也是分布式控制方法相對于集中控制方法的一個優(yōu)點。測控節(jié)點一般不主動發(fā)起通訊,但如果測控節(jié)點出現(xiàn)異常,會主動發(fā)起CAN通訊向上位機(jī)報錯。
測控節(jié)點具有依據(jù)時間來進(jìn)行控制的功能,這里選用串行日歷時鐘芯片PCF8563。PIC18F458自帶I2C控制器,可方便的實現(xiàn)與PCF8563高速穩(wěn)定的通訊,簡化了編程過程。為了防止在意外掉電后需要對PCF8563進(jìn)行重新設(shè)置,加入了3.6 V后備電源。
上位機(jī)主要由CAN通信、鍵盤輸入、LCD顯示等幾個模塊組成。上位機(jī)的CAN通訊模塊與測控節(jié)點一樣,這里主要介紹LCD顯示模塊。在LCD顯示中,將每一界面顯示的內(nèi)容分為靜態(tài)內(nèi)容和動態(tài)內(nèi)容兩部分。靜態(tài)內(nèi)容是在同一界面中不用實時更新的部分,只需寫入一次LCD模塊即可。動態(tài)內(nèi)容為界面中需要實時更新的數(shù)據(jù)。為此,設(shè)計了兩個對應(yīng)的顯示模塊。靜態(tài)內(nèi)容顯示模塊,只在進(jìn)入某一界面時才調(diào)用,如果界面沒有切換,僅調(diào)用一次。動態(tài)顯示模塊,一直隨程序的運行而被調(diào)用,不斷更新所顯示的數(shù)據(jù)。這樣的設(shè)計大大減少單片機(jī)與LCD模塊的通訊數(shù)據(jù)量,既能實時更新數(shù)據(jù),又能提高系統(tǒng)的穩(wěn)定性。
基于CAN總線的遠(yuǎn)程水溫水位測控系統(tǒng)以PIC18F458為主控制芯片,采用CAN總線技術(shù),當(dāng)通信距離為5 km時,仍可提供10 kB/s的通訊速率,并且通訊穩(wěn)定,較好地解決了現(xiàn)代化小區(qū)對水溫水位的遠(yuǎn)程測控問題。在軟/硬件設(shè)計中均采用了模塊化的結(jié)構(gòu),靈活性高和適用性好。在太陽能熱水工程快速普及居民小區(qū)的今天,該系統(tǒng)具有良好的應(yīng)用前景。
[1]張修太,馬金元,翟亞芳,等.基于RS485的溫度采集系統(tǒng)設(shè)計[J].微計算機(jī)信息,2010,26(10):102-104.
ZHANG Xiu-tai,MA Jin-yuan,ZHAI Ya-fang,et al.The design of the temperature acquisition system based on RS485[J].Microcomputer Information,2010,26(10):102-104.
[2]饒運濤,鄒繼軍,鄭勇蕓.現(xiàn)場總線CAN原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2003.
[3]任國興,王曉影,杜立彬.基于AD7799的熱敏電阻高精度測溫系統(tǒng)[J].電子設(shè)計工程,2010,18(11):82-84.
REN Guo-xing,WANG Xiao-ying,DU Li-bin.Design of high precision thermistor temperature measurement system based on AD7799[J].Electronic Design Engineering,2010,18(11):82-84.
[4]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006:480-483.
[5]李海濤,儀維,吳筱堅,等.PIC單片機(jī)應(yīng)用開發(fā)典型模塊[M].北京:人民郵電出版社,2007:28-38.
[6]劉和平,劉釗,鄭群英,等.PIC18Fxxx單片機(jī)程序設(shè)計及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.