《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動(dòng)態(tài) > 基于CAN總線的橋梁數(shù)據(jù)采集系統(tǒng)研究

基于CAN總線的橋梁數(shù)據(jù)采集系統(tǒng)研究

2009-05-12
作者:廖傳書, 張 培

??? 摘? 要: 提出了一種基于CAN總線的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案,介紹了數(shù)據(jù)采集系統(tǒng)的系統(tǒng)功能、硬件結(jié)構(gòu)以及軟件設(shè)計(jì)方案。實(shí)際應(yīng)用表明,該系統(tǒng)簡單、運(yùn)行穩(wěn)定、可靠性高。

??? 關(guān)鍵詞: CAN總線; 橋梁監(jiān)測; 數(shù)據(jù)采集; 控制系統(tǒng)

?

??? 在橋梁健康監(jiān)測工作中,數(shù)據(jù)采集是整個(gè)監(jiān)測系統(tǒng)中最重要的一個(gè)環(huán)節(jié)。為了避免造成重大的經(jīng)濟(jì)損失,應(yīng)該對(duì)橋梁結(jié)構(gòu)進(jìn)行實(shí)時(shí)監(jiān)控和結(jié)構(gòu)狀態(tài)的智能化評(píng)估,通過測定其關(guān)鍵性能指標(biāo),獲取反映結(jié)構(gòu)狀況的信息,分析其健康運(yùn)行情況,分析其是否受到損傷,以便將未知的危害降到最低。這對(duì)確保橋梁的運(yùn)營安全,及早發(fā)現(xiàn)橋梁問題,延長橋梁的使用壽命起著積極的作用[1]。?

??? 本系統(tǒng)采用應(yīng)力式傳感器,設(shè)計(jì)了橋梁的數(shù)據(jù)采集及其監(jiān)控系統(tǒng)。包括數(shù)據(jù)采集模塊、控制模塊和通信模塊,通過CAN總線將采集到的數(shù)據(jù)傳送到工控機(jī),并通過Internet將數(shù)據(jù)傳送到遠(yuǎn)端的控制室的終端PC機(jī)上,在終端PC機(jī)上遠(yuǎn)程監(jiān)控橋梁的健康情況。?

1 系統(tǒng)總體結(jié)構(gòu)?

??? 由于CAN總線為多主方式工作,最多可掛接110個(gè)節(jié)點(diǎn),系統(tǒng)采用現(xiàn)場總線分布式數(shù)據(jù)采集控制方式。系統(tǒng)主要包括現(xiàn)場數(shù)據(jù)采集控制系統(tǒng)、現(xiàn)場控制室、遠(yuǎn)端控制室3部分。其系統(tǒng)總體結(jié)構(gòu)如圖1所示[2]。?

?

?

??? 現(xiàn)場數(shù)據(jù)采集控制系統(tǒng),可分為A/D轉(zhuǎn)換單元、MCU以及CAN控制器、光耦隔離、CAN驅(qū)動(dòng)器等接口電路單元。其主要功能是采集分布于不同橋墩現(xiàn)場的拉力傳感器所采集的實(shí)時(shí)信息,并根據(jù)所得的信息發(fā)送控制命令,控制現(xiàn)場的設(shè)備,并實(shí)現(xiàn)故障報(bào)警等功能。?

??? 由于CAN總線的通信距離有限,并且遠(yuǎn)端控制室和現(xiàn)場相隔較遠(yuǎn),所以需對(duì)數(shù)據(jù)進(jìn)行預(yù)處理?,F(xiàn)場控制室主要由CAN接口適配卡以及上位PC機(jī)組成,并且通過代理服務(wù)器將數(shù)據(jù)發(fā)送到遠(yuǎn)端的控制室。?

??? 遠(yuǎn)端的控制室主要由客戶端PC機(jī)通過Internet以及客戶端的操作軟件,對(duì)CAN節(jié)點(diǎn)傳送來的數(shù)據(jù)進(jìn)行存儲(chǔ)、分析、打印等基本操作。?

2 電路設(shè)計(jì)?

??? 整個(gè)系統(tǒng)的電路設(shè)計(jì),分為傳感器和單片機(jī)組成的現(xiàn)場數(shù)據(jù)采集控制部分、現(xiàn)場工控機(jī)和CAN接口適配卡以及代理服務(wù)器組成的現(xiàn)場控制室的傳輸部分、終端PC機(jī)和操作軟件組成的數(shù)據(jù)處理部分。其中關(guān)鍵是現(xiàn)場的數(shù)據(jù)采集控制部分,本文將對(duì)這一部分進(jìn)行重點(diǎn)介紹。?

2.1 數(shù)據(jù)采集?

??? 基于CAN總線的分布式數(shù)據(jù)采集與控制系統(tǒng)的結(jié)構(gòu)特點(diǎn),能夠?qū)⑾到y(tǒng)功能盡可能地分散到各個(gè)節(jié)點(diǎn),各節(jié)點(diǎn)以微處理器為核心,完成各種數(shù)據(jù)采集與監(jiān)控功能。為了讓各個(gè)節(jié)點(diǎn)不同種類、不同格式的信息在基于CAN的協(xié)議標(biāo)準(zhǔn)下通信,每個(gè)節(jié)點(diǎn)都設(shè)有與CAN總線接口的電路。數(shù)據(jù)采集部分的電路如圖2所示。?

?

?

??? 由圖2可知,此電路是以單片機(jī)STC89C52為核心處理芯片,整個(gè)硬件電路由5部分組成:?

??? (1) CAN總線接口電路:由SJA1000[3]及STC82C250組成,STC89C52對(duì)SJA1000的操作,類似于對(duì)外部RAM的操作,其P0口接SJA1000的AD0~AD7,ALE、/WR、/RD、P2.5端分別接SJA1000的ALE、/WR、/RD、/CS端,另外SJA1000的中斷信號(hào)/INT接STC89C52的/INT0端,使得STC89C52可收發(fā)各類信息。CAN總線收發(fā)器STC82C250提供了CAN控制器與物理總線之間的接口,提供總線的差動(dòng)發(fā)送和接收能力及抗干擾能力,使得信號(hào)能夠更遠(yuǎn)更可靠地傳輸。其TXD、RXD端通過高速光耦分別接SJA1000的TX0、RX0,兩個(gè)輸出端CANH和CANL分別與物理總線的CAN_H和CAN_L連接[4],在總線的末端加上120Ω匹配電阻,以減少信號(hào)反射干擾。?

??? (2) A/D轉(zhuǎn)換電路:由11路模/數(shù)轉(zhuǎn)換芯片TLC2543實(shí)現(xiàn),STC89C52的P1.0~P1.3引腳分別與TLC2543的/CS、CLOCK、DATA IN 和DATA OUT 相連,通過這些連接,STC89C52可以控制A/D的轉(zhuǎn)換時(shí)間、選擇轉(zhuǎn)換通道和極性等。當(dāng)A/D轉(zhuǎn)換結(jié)束后,TLC2543通過EOC引腳以中斷的形式通知STC89C52接收數(shù)據(jù)。其中TLC2543為CMOS 12位開關(guān)電容逐次逼近模/數(shù)轉(zhuǎn)換器,具有快速轉(zhuǎn)換和通用的控制能力。片內(nèi)設(shè)有采樣-保持電路。?

??? (3) RS-232協(xié)議轉(zhuǎn)換電路:該電路主要完成現(xiàn)場的數(shù)據(jù)調(diào)試功能。其中STC89C52通過串口TXD、RXD與MAX232的相應(yīng)管腳相連,當(dāng)STC89C52需要將從現(xiàn)場采集到的數(shù)據(jù)或從CAN總線上接收到的數(shù)據(jù)轉(zhuǎn)換成RS-232協(xié)議格式的信息與現(xiàn)場設(shè)備或其他模塊進(jìn)行通信時(shí),可直接將信息通過串口TXD、RXD傳送給MAX232,由芯片MAX232完成數(shù)據(jù)格式的轉(zhuǎn)換。?

??? (4) 多路輸入輸出電路:該部分主要完成現(xiàn)場故障報(bào)警、結(jié)果顯示等功能。由于基于CAN總線的數(shù)據(jù)采集模塊可直接與多種模擬量或數(shù)字量設(shè)備相連,所以當(dāng)模塊需要采集現(xiàn)場的I/O信息或需要根據(jù)處理結(jié)果進(jìn)行顯示、報(bào)警、控制時(shí),可通過由P1.4~P1.7和高速光耦隔離組成的多路輸入輸出電路實(shí)現(xiàn)。?

??? (5) 數(shù)據(jù)存儲(chǔ)器RAM擴(kuò)展電路:為了滿足數(shù)據(jù)存取和處理的需要,電路還擴(kuò)展了8 KB的RAM數(shù)據(jù)存儲(chǔ)器空間。?

2.2 數(shù)據(jù)傳輸?

??? 服務(wù)器擔(dān)負(fù)著與單片機(jī)通信、數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)和與控制室通信等多項(xiàng)任務(wù),是連接橋梁現(xiàn)場和遠(yuǎn)端控制室的重要組成部分,它的優(yōu)劣直接影響整個(gè)系統(tǒng)的性能。本系統(tǒng)最終目標(biāo)是實(shí)現(xiàn)整個(gè)系統(tǒng)的無人值守和長期連續(xù)的工作,因此要求服務(wù)器性能穩(wěn)定、工作可靠。本系統(tǒng)中選擇性能優(yōu)越的工控機(jī)操作系統(tǒng)Windows Server 2003,數(shù)據(jù)庫系統(tǒng)軟件采用SQL Server 2005。另外,由于本系統(tǒng)為連續(xù)工作,而數(shù)據(jù)量很大,所以服務(wù)器外接可移動(dòng)存儲(chǔ)設(shè)備以利于數(shù)據(jù)的更新與備份。?

??? 現(xiàn)場的代理服務(wù)器負(fù)責(zé)接收下位機(jī)采集到的橋梁狀態(tài)信息,在這里信息進(jìn)行預(yù)處理,例如和預(yù)設(shè)的報(bào)警門限值進(jìn)行比較,如果超過門限值則馬上發(fā)出報(bào)警,同時(shí)數(shù)據(jù)在這里存入數(shù)據(jù)庫?,F(xiàn)場服務(wù)器與Internet網(wǎng)絡(luò)連接數(shù)據(jù),經(jīng)過打包實(shí)時(shí)地傳送給遠(yuǎn)端的控制中心,在控制中心進(jìn)行最終的分析和處理實(shí)時(shí)地顯示出狀態(tài)變化。?

2.3 數(shù)據(jù)處理?

??? 數(shù)據(jù)處理部分主要實(shí)現(xiàn)數(shù)據(jù)分析、處理等功能。由客戶端PC機(jī)和操作軟件界面通過Internet接收數(shù)據(jù),并且進(jìn)行數(shù)據(jù)分析、數(shù)據(jù)處理等。?

3 軟件設(shè)計(jì)?

??? 系統(tǒng)的軟件設(shè)計(jì)可以分為數(shù)據(jù)采集、數(shù)據(jù)傳輸和數(shù)據(jù)處理3部分。其中,數(shù)據(jù)傳輸部分包括單片機(jī)與服務(wù)器之間數(shù)據(jù)傳輸、服務(wù)器與控制室PC機(jī)之間的數(shù)據(jù)傳輸,數(shù)據(jù)處理包括客戶端PC機(jī)上的客戶操作、分析、處理軟件等。?

??? 根據(jù)分布式數(shù)據(jù)采集與控制系統(tǒng)的特點(diǎn),系統(tǒng)各個(gè)節(jié)點(diǎn)之間和節(jié)點(diǎn)到操作站的距離較遠(yuǎn),現(xiàn)場環(huán)境干擾大。整個(gè)系統(tǒng)應(yīng)有實(shí)時(shí)數(shù)據(jù)采集、實(shí)時(shí)控制、實(shí)時(shí)故障報(bào)警、現(xiàn)場情況顯示、數(shù)據(jù)存儲(chǔ)、歷史數(shù)據(jù)查詢、打印報(bào)表等功能。?

3.1 數(shù)據(jù)采集部分?

??? 數(shù)據(jù)采集部分的程序流程如圖3[5]所示。?

?

?

??? 由圖3可知,STC89C52先對(duì)自身進(jìn)行初始化,然后立即對(duì)SJA1000進(jìn)行初始化以盡快建立該數(shù)據(jù)采集模塊與CAN總線之間的通信鏈接。其中對(duì)SJA1000的初始化是該軟件設(shè)計(jì)中一個(gè)比較關(guān)鍵的部分,主要包括在復(fù)位模式下設(shè)置通信的波特率、AMR、ACR、OCR、CDR,這些參數(shù)與將要發(fā)送的報(bào)文標(biāo)識(shí)符有關(guān)。BTR0、BTR1寄存器的內(nèi)容可以惟一確定系統(tǒng)的通信波特率和同步跳轉(zhuǎn)寬度,所以整個(gè)系統(tǒng)中的所有節(jié)點(diǎn),這兩個(gè)寄存器的內(nèi)容必須相同,否則無法通信。對(duì)ORC的操作可確定CAN控制器的輸出方式,并建立起CAN總線要求的電平邏輯所需輸出驅(qū)動(dòng)器的配置。?

??? 與CAN總線的通信建立之后,STC89C52就開始采集現(xiàn)場數(shù)據(jù),先是模擬量,然后是數(shù)字量。在對(duì)模擬量的數(shù)據(jù)采集中,為了減少外部干擾帶來的誤差還進(jìn)行了消除誤差處理,主要包括判斷數(shù)據(jù)是否存在超大誤差,對(duì)連續(xù)多次采樣得到的數(shù)據(jù)求平均值作為采樣值等措施,以減少系統(tǒng)采樣誤差。再判斷采集的值是否超出設(shè)定的界限,需要報(bào)警否,是否顯示設(shè)備的狀態(tài),是否準(zhǔn)備往CAN總線發(fā)送數(shù)據(jù)等,如需要?jiǎng)t進(jìn)行不同數(shù)據(jù)的轉(zhuǎn)換。?

3.2 數(shù)據(jù)傳輸部分?

??? 服務(wù)器是整個(gè)系統(tǒng)的核心,它擔(dān)負(fù)著數(shù)據(jù)采集、數(shù)據(jù)管理和傳輸數(shù)據(jù)的任務(wù),因此它的工作直接影響到整個(gè)系統(tǒng)的性能和工作。由于本系統(tǒng)要求服務(wù)器能夠在無人職守的情況下長期穩(wěn)定地工作,因此最好選用性能優(yōu)越的工控機(jī),可以為采集系統(tǒng)提供更多的串行口。?

??? 客戶端的主要任務(wù)是接收數(shù)據(jù)和處理數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牡谝徊绞强蛻舳吮仨氝B上服務(wù)器,首先要設(shè)置服務(wù)器的IP地址和端口號(hào),然后發(fā)送聯(lián)機(jī)請(qǐng)求。?

3.3 數(shù)據(jù)處理部分?

??? 數(shù)據(jù)處理部分是要在遠(yuǎn)端控制室的PC機(jī)上,實(shí)現(xiàn)友好的人機(jī)操作界面,并實(shí)現(xiàn)實(shí)時(shí)控制、實(shí)時(shí)故障報(bào)警、現(xiàn)場情況顯示、數(shù)據(jù)存儲(chǔ)、歷史數(shù)據(jù)查詢、打印報(bào)表等功能,通過Visual C++ 6.0編程,進(jìn)行對(duì)各種數(shù)據(jù)源進(jìn)行操作訪問,遠(yuǎn)程監(jiān)控橋梁的健康情況。?

??? 橋梁的健康狀況監(jiān)測對(duì)于橋梁的安全運(yùn)行有著重要的意義。橋梁結(jié)構(gòu)健康監(jiān)測不只是傳統(tǒng)的橋梁檢測技術(shù)的簡單改進(jìn),而是運(yùn)用現(xiàn)代傳感與通信技術(shù),實(shí)時(shí)監(jiān)測橋梁運(yùn)營階段在各種環(huán)境條件下的結(jié)構(gòu)響應(yīng)與行為,獲取反映結(jié)構(gòu)狀況和環(huán)境因素的各種信息,由此分析結(jié)構(gòu)健康狀態(tài)、評(píng)估結(jié)構(gòu)的可靠性,為橋梁的管理與維護(hù)決策提供科學(xué)依據(jù)。?

??? 本文在詳細(xì)分析了橋梁的結(jié)構(gòu)特點(diǎn)的基礎(chǔ)上,設(shè)計(jì)了利用傳感器、CAN總線以及Internet網(wǎng)絡(luò)實(shí)現(xiàn)橋梁狀態(tài)遠(yuǎn)程監(jiān)測的方法,提高了對(duì)橋梁結(jié)構(gòu)損壞和突發(fā)事件的反應(yīng)速度,節(jié)約人力物力。它改變了傳統(tǒng)的以人工為主的檢測手段,大大提高了橋梁監(jiān)測的實(shí)時(shí)性準(zhǔn)確性及安全性。?

參考文獻(xiàn)?

[1] 周文松,李惠,歐進(jìn)萍,等.大型橋梁健康監(jiān)測系統(tǒng)的數(shù)據(jù)采集子系統(tǒng)設(shè)計(jì)方法[J]. 公路交通科技,2006(3):83-84.?

[2] 王毅峰,李令奇.基于CAN總線的分布式數(shù)據(jù)采集與控制系統(tǒng)[J].工業(yè)控制計(jì)算機(jī),2000(5):34-35.?

[3] Philips Semiconductors. SJA1000 stand-alone CAN controller,1997.?

[4] 鄔寬明. CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1996.?

[5] 亓躍峰,畢衛(wèi)紅,盧輝斌.大型橋梁分布式健康監(jiān)測系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)測量與控制,2004,12(4):327.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。