1 引 言
隨著計(jì)算機(jī)應(yīng)用技術(shù)在工業(yè)控制領(lǐng)域的推廣及其自身的革新,,以工業(yè)現(xiàn)場(chǎng)總線為應(yīng)用背景的網(wǎng)絡(luò)控制系統(tǒng)在業(yè)界被廣泛使用和推廣。CAN總線作為工業(yè)現(xiàn)場(chǎng)串行總線的一種,,因其具有較高的位速率和極高的抗電磁干擾能力,,能偵測(cè)和處理產(chǎn)生的任何總線錯(cuò)誤,并且具有高可靠性,、實(shí)時(shí)性和靈活性,,在監(jiān)測(cè)和控制系統(tǒng)中倍受青睞。然而傳統(tǒng)的工業(yè)現(xiàn)場(chǎng)遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)主要通過(guò)單總線傳輸,,往往因?yàn)榭偩€通訊故障而影響系統(tǒng)工作效率,,不利于遠(yuǎn)程監(jiān)測(cè)和控制,在某些控制領(lǐng)域里甚至存在很大危險(xiǎn),,造成難以維護(hù),,系統(tǒng)監(jiān)測(cè)數(shù)據(jù)不連續(xù)、難以管理和監(jiān)測(cè)效率低下等缺點(diǎn),。
通過(guò)將冗余CAN總線技術(shù)應(yīng)用到現(xiàn)場(chǎng)遠(yuǎn)程數(shù)據(jù)采集傳輸系統(tǒng)中,,采用嵌入式控制方式很好地解決了上述問(wèn)題。
2 遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)的組成
考慮到工業(yè)現(xiàn)場(chǎng)的環(huán)境比較復(fù)雜,,為提高系統(tǒng)工作的可靠性和抗干擾能力,,本系統(tǒng)設(shè)計(jì)采用嵌入式智能系統(tǒng)作為數(shù)據(jù)采集器,以PC104系統(tǒng)作為嵌人式信息處理單元,,通過(guò)冗余CAN總線接口開(kāi)放式互聯(lián)的結(jié)構(gòu)組成采集系統(tǒng),。系統(tǒng)的組成框圖如圖l所示。系統(tǒng)由信息處理單元,、遠(yuǎn)程嵌人式采集器,、狀態(tài)顯示、外圍控制和維護(hù)接口等輔助接口單元組成,,嵌人式信息處理單元和遠(yuǎn)程數(shù)據(jù)采集器配置雙CAN總線接口,。
嵌入式信息處理單元是該系統(tǒng)的主控單元,是系統(tǒng)信息處理的核心,。它主要負(fù)責(zé)信息的采集和管理,并將采集信息處理后定期送往數(shù)據(jù)存儲(chǔ)單元和數(shù)據(jù)顯示單元,,同時(shí)解析來(lái)自維護(hù)接口的用戶指令,,根據(jù)指令要求執(zhí)行相應(yīng)的采集器維護(hù)命令和主控單元本身的日常維護(hù)。遠(yuǎn)程數(shù)據(jù)采集器周期接收信息處理的采集指令,,周期性地將采集數(shù)據(jù)發(fā)給信息處理,。系統(tǒng)通過(guò)高速網(wǎng)絡(luò)接口實(shí)現(xiàn)了與其他網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換,,可實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)的共享和信息綜合。維護(hù)接口可提供無(wú)線指令響應(yīng)服務(wù)和現(xiàn)場(chǎng)指令響應(yīng)服務(wù),,以滿足本地和遠(yuǎn)程的系統(tǒng)維護(hù),。
圖1 系統(tǒng)組成示意圖
3 遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)
本系統(tǒng)的硬件設(shè)計(jì)重點(diǎn)在于信息處理單元和遠(yuǎn)程數(shù)據(jù)采集器的設(shè)計(jì)。
3.1 信息處理單元設(shè)計(jì)
遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)實(shí)現(xiàn)的關(guān)鍵是對(duì)現(xiàn)場(chǎng)傳感器數(shù)據(jù)的實(shí)時(shí)采集,、本地和遠(yuǎn)程命令的接收與采集信息的轉(zhuǎn)換和處理,。信息處理單元對(duì)數(shù)據(jù)采集器進(jìn)行正常的運(yùn)行監(jiān)視、操作,、測(cè)量記錄和統(tǒng)計(jì)分析,、故障運(yùn)行的監(jiān)視、報(bào)警和事件順序記錄與運(yùn)行操作,,緊急控制,、維修狀態(tài)信息處理等功能。
信息處理單元采用x86架構(gòu)的PC104計(jì)算機(jī)系統(tǒng)和CAN總線接口卡組成,。盛博SCM一7020B是一款“all~in—one”PC/104 CPU模塊¨ ,,它在板上集成了10/100Base—T以太網(wǎng)接口及高性能圖形處理。采用X86兼容的64位第六代處理器,,最高運(yùn)行速度可達(dá)300MHz,,外圍接口豐富,同時(shí)配置64MB SRAM和1GB CF卡存儲(chǔ)器,,并通過(guò)以太網(wǎng)接口進(jìn)行軟件調(diào)試和后期維護(hù),。為了實(shí)現(xiàn)雙CAN總線通訊接口,選用盛博SEM/CSD一4 CAN通訊模塊,,該模塊集成了2路獨(dú)立的CAN控制器SJA1000,,同時(shí)還集成4路RS一422串行接口及可配置的8位并行接口,可以直接驅(qū)動(dòng)外部的數(shù)字接口,,滿足系統(tǒng)維護(hù)和遠(yuǎn)程數(shù)據(jù)采集器工作模式設(shè)置的需求,,對(duì)后續(xù)系統(tǒng)升級(jí)都留有較大空間。
3.2 遠(yuǎn)程數(shù)據(jù)采集器設(shè)計(jì)
遠(yuǎn)程數(shù)據(jù)采集器設(shè)計(jì)為以C805 1 F040 3 為處理器的智能采集通訊節(jié)點(diǎn),,C8051F040內(nèi)部集成了數(shù)據(jù)采集系統(tǒng)所需要的幾乎所有模擬和數(shù)字外設(shè),,包括ADC、DAC,、電壓比較器,、定時(shí)器、以及CAN2.0B控制器等,,這種高度集成為設(shè)計(jì)小體積,、低功耗、高可靠和高性能的采集系統(tǒng)統(tǒng)提供了方便。系統(tǒng)中遠(yuǎn)程數(shù)據(jù)采集器的硬件結(jié)構(gòu)示意圖見(jiàn)圖2,。遠(yuǎn)程數(shù)據(jù)采集器從功能上可分為冗余CAN總線接口,、數(shù)據(jù)采集電路和看門(mén)狗超時(shí)電路,其中看門(mén)狗超時(shí)周期為1.6s,。為實(shí)現(xiàn)冗余CAN總線接口,,通過(guò)增加一片獨(dú)立的CAN控制器SJA1000來(lái)實(shí)現(xiàn)。
圖2 遠(yuǎn)程數(shù)據(jù)采集器硬件結(jié)構(gòu)示意圖
3.2.1 采集電路設(shè)計(jì)
采集電路結(jié)構(gòu)如圖3所示,,外部模擬信號(hào)進(jìn)入采集器后,,先經(jīng)低通濾波,對(duì)各種干擾信號(hào)進(jìn)行一定的抑制后,,送入放大器,,再進(jìn)入帶有l(wèi)2位ADC的C8051F040進(jìn)行數(shù)據(jù)采樣和增益轉(zhuǎn)換。
圖3 遠(yuǎn)程數(shù)據(jù)采集器不意圖
在實(shí)際的工程應(yīng)用中,,由于被采集信號(hào)遠(yuǎn)離采集器,,以致兩者的地電位存在一定的電勢(shì)差,不可避免地存在干擾和傳輸網(wǎng)絡(luò)阻抗不對(duì)稱引人的誤差,。因此,。測(cè)量電路必須選擇有較高的輸入阻抗和共模抑制比的集成運(yùn)放,同時(shí)可采用差動(dòng)輸入方式和無(wú)限增益電壓負(fù)反饋放大,。
3.2.2 冗余CAN總線接口設(shè)計(jì)
由于系統(tǒng)采用了冗余CAN總線通訊技術(shù),,因此冗余CAN總線接口設(shè)計(jì)是本系統(tǒng)的關(guān)鍵技術(shù)。
在各個(gè)數(shù)據(jù)采集器和信息處理單元之間設(shè)計(jì)兩條CAN總線,,在每個(gè)數(shù)據(jù)采集器中有2路獨(dú)立的CAN通道,,正常工作時(shí)只有一路CAN通道和一路CAN總線運(yùn)行。遠(yuǎn)程數(shù)據(jù)采集器的冗余CAN總線結(jié)構(gòu)如圖2所示,。系統(tǒng)中冗余CAN總線的基本設(shè)計(jì)思路如下:其中CAN控制器可以是獨(dú)立的CAN控制器或者內(nèi)嵌于MCU內(nèi)部的CAN控制器,。當(dāng)出現(xiàn)總線通訊故障時(shí),根據(jù)錯(cuò)誤類(lèi)型選擇切換到另一路CAN通道或是另一路CAN總線,。在任意時(shí)刻,,只有一路CAN通道處于工作狀態(tài)。
3.3 雙冗余CAN總線管理
為了提高系統(tǒng)的可靠性,,系統(tǒng)中兩套總線采用熱備份方式運(yùn)行,。按照CAN總線出現(xiàn)的錯(cuò)誤類(lèi)型,系統(tǒng)通訊故障可分為通道通訊故障和總線通訊故障,,處理器利用CAN總線控制器的故障界定狀態(tài)機(jī)制判斷通訊故障,,并向處理器發(fā)送故障狀態(tài)。
在總線正常通訊過(guò)程中,,處理器對(duì)CAN總線控制器的接收和發(fā)送錯(cuò)誤計(jì)數(shù)器進(jìn)行實(shí)時(shí)跟蹤監(jiān)控,,一旦發(fā)送和接收出現(xiàn)故障,,其錯(cuò)誤類(lèi)型及出錯(cuò)的各結(jié)點(diǎn)被賦予不同的計(jì)數(shù)值,這些計(jì)數(shù)值將根據(jù)是發(fā)送錯(cuò)誤還是接收錯(cuò)誤進(jìn)行累加,。總線通訊正?;蛴行Ы邮占鞍l(fā)送數(shù)據(jù)時(shí),,這些計(jì)數(shù)器將逐次遞減至最小值0。
當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)器的值超過(guò)最大上限255時(shí)“總線關(guān)閉”,。CAN控制器進(jìn)入離線狀態(tài),,CAN總線控制器產(chǎn)生一個(gè)總線錯(cuò)誤和離線中斷,處理器在收到中斷信號(hào)的同時(shí)檢測(cè)狀態(tài)位得知系統(tǒng)出現(xiàn)通道通訊故障,,通過(guò)“通道切換邏輯機(jī)制”切換CAN通訊通道,,同時(shí)清除中斷信號(hào)。當(dāng)切換完成后,,如果再次進(jìn)入錯(cuò)誤中斷,,則說(shuō)明是總線故障,此時(shí)處理器再切換回以前的CAN通訊通道,,并通過(guò)“總線切換邏輯機(jī)制”切換CAN通訊總線,,同時(shí)清除中斷信號(hào)。采用這種設(shè)計(jì)方法,,當(dāng)兩路CAN通道或兩路CAN總線同時(shí)出現(xiàn)故障時(shí),,通訊節(jié)點(diǎn)“總線關(guān)閉”并退出總線通訊,此時(shí)不會(huì)影響其他節(jié)點(diǎn)的正常通訊,。
4 軟件設(shè)計(jì)
根據(jù)系統(tǒng)功能定義,,軟件設(shè)計(jì)分為兩部分,一是信息處理單元內(nèi)部的軟件,,二是遠(yuǎn)程數(shù)據(jù)采集器內(nèi)部的軟件,。為了提高系統(tǒng)的可靠性和實(shí)時(shí)性,信息處理單元配置了Vxworks實(shí)時(shí)操作系統(tǒng) l,,vxworks支持實(shí)時(shí)多任務(wù)系統(tǒng),,具有高實(shí)時(shí)性、高傳輸速率,、高可靠性的特點(diǎn),,完全適合系統(tǒng)上各單元間的大數(shù)據(jù)量實(shí)時(shí)傳輸。
4.1 信息處理單元系統(tǒng)軟件設(shè)計(jì)
信息處理單元的軟件層次組成見(jiàn)圖4,。整個(gè)軟件分為兩個(gè)層次:系統(tǒng)任務(wù)層和系統(tǒng)服務(wù)層,。系統(tǒng)任務(wù)層是信息處理單元的核心,其中包括數(shù)據(jù)采集任務(wù),、通訊狀態(tài)監(jiān)控任務(wù),、系統(tǒng)狀態(tài)監(jiān)控任務(wù),、系統(tǒng)維護(hù)任務(wù)及系統(tǒng)故障處理、緊急狀況處理任務(wù)等,。
系統(tǒng)服務(wù)層為VxWorks操作系統(tǒng)和一些系統(tǒng)接口,、服務(wù)組成、服務(wù)層封裝了VxWorks操作系統(tǒng),、CAN總線設(shè)備通訊驅(qū)動(dòng)程序,、CAN總線冗余管理模塊、數(shù)據(jù)分區(qū)管理模塊和系統(tǒng)軟件接口及系統(tǒng)服務(wù),,同時(shí)為系統(tǒng)任務(wù)訪問(wèn)硬件設(shè)備提供平臺(tái),。
圖4 信息處理單兀的軟件層次組成示意圖
4.2 遠(yuǎn)程數(shù)據(jù)采集器軟件設(shè)計(jì)
遠(yuǎn)程數(shù)據(jù)采集器軟件包含CAN總線接口管理、外部傳感器信號(hào)采集和轉(zhuǎn)換,、中斷服務(wù)程序,、響應(yīng)信息處理單元系統(tǒng)指令和采集器自診斷功能。
遠(yuǎn)程數(shù)據(jù)采集器是整個(gè)采集系統(tǒng)中要求可靠性較高的單元.除了硬件上增加了看門(mén)狗功能,、高性能采集電路和雙CAN總線接口外,,軟件設(shè)計(jì)也必須考慮其可靠性和穩(wěn)定性要求。因此軟件設(shè)計(jì)上需要重點(diǎn)考慮以下幾個(gè)方面:
(1)軟件校準(zhǔn)ADC,。為了提高ADC采集精度和數(shù)據(jù)可靠度,,需要通過(guò)軟硬件相結(jié)合的方式對(duì)ADC進(jìn)行校準(zhǔn)。校準(zhǔn)包括零點(diǎn)漂移及增益誤差的自校準(zhǔn)和采集誤差修正,,在設(shè)計(jì)中采用分段線性插值的方法對(duì)測(cè)量數(shù)據(jù)通過(guò)軟件進(jìn)行非線性校正_6],,并將補(bǔ)償和校準(zhǔn)參數(shù)存儲(chǔ)在片內(nèi)FLASH中;(2)看門(mén)狗超時(shí)監(jiān)控處理,。為了提高系統(tǒng)運(yùn)行的穩(wěn)定性,,軟件在50ms周期內(nèi)喂一次看門(mén)狗,若看門(mén)狗超時(shí)則采集器復(fù)位,;(3)軟件數(shù)字濾波處理,。為了防止外部干擾信號(hào)引起采集到的數(shù)據(jù)產(chǎn)生突變,導(dǎo)致錯(cuò)誤報(bào)警,,現(xiàn)場(chǎng)數(shù)據(jù)采集節(jié)點(diǎn)發(fā)送數(shù)據(jù)之前對(duì)數(shù)據(jù)進(jìn)行數(shù)字濾波,。
數(shù)字濾波分兩部分完成,一是外部信號(hào)在10ms內(nèi)發(fā)生急脯突變的概率較小,,采集器在10ms的單位時(shí)間內(nèi)監(jiān)測(cè)和統(tǒng)計(jì)信號(hào)的變化率,,根據(jù)事先設(shè)定的門(mén)限值在數(shù)據(jù)轉(zhuǎn)換前端剔除虛警數(shù)據(jù)。二是采集器在lOOms內(nèi)對(duì)相應(yīng)的采樣信號(hào)進(jìn)行l(wèi)O次采集取其平均值 ,,這種算術(shù)平均值濾波方法比中值濾波可靠性更高,,又比防脈沖干擾平均值濾波簡(jiǎn)便,可以有效降低對(duì)瞬間高頻干擾信號(hào)的虛警率,。
5 結(jié)束語(yǔ)
基于冗余CAN總線設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)在實(shí)際應(yīng)用中得到了驗(yàn)證,,整個(gè)系統(tǒng)在惡劣的工作環(huán)境下性能穩(wěn)定,,通訊能力令人滿意。采集器在正常運(yùn)行時(shí)陜速地對(duì)遠(yuǎn)程請(qǐng)求做出響應(yīng),,工作方式多樣,,參數(shù)修改靈活方便,能遠(yuǎn)程維護(hù)管理,,可應(yīng)用于構(gòu)建網(wǎng)絡(luò)化管理系統(tǒng)的環(huán)境,。
利用冗余CAN總線通訊技術(shù),有效解決了單線傳輸故障,,提高了可系統(tǒng)的可靠性和穩(wěn)定性。測(cè)試證明,,在總線或通道處注入故障時(shí),,冗余CAN總線能順利進(jìn)行切換,并保障通訊正常,;在對(duì)兩條總線或兩路CAN通道同時(shí)注入故障時(shí),,數(shù)據(jù)采集器自動(dòng)脫離總線,系統(tǒng)其他單元間的通訊不受影響,。實(shí)驗(yàn)結(jié)果表明,,上述設(shè)計(jì)思想完全可行,能夠滿足大型現(xiàn)場(chǎng)采集和控制需求,。
采用嵌入式模式開(kāi)發(fā)設(shè)計(jì),,具有精度高、運(yùn)行穩(wěn)定,、實(shí)時(shí)性好,、抗干擾能力強(qiáng)和性價(jià)比高的特點(diǎn),可以在各種遠(yuǎn)程監(jiān)測(cè)領(lǐng)域廣泛應(yīng)用,。