新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > CAN總線在機(jī)車監(jiān)控系統(tǒng)中的應(yīng)用

CAN總線在機(jī)車監(jiān)控系統(tǒng)中的應(yīng)用

作者: 時間:2012-04-12 來源:網(wǎng)絡(luò) 收藏

中的應(yīng)用

本文引用地址:http://m.butianyuan.cn/article/196965.htm

以Philips公司的SJA1000為例,介紹了現(xiàn)場的特點,控制器的功能、結(jié)構(gòu)和2.0B協(xié)議的基本內(nèi)容,闡述了一個基于CAN總線的火車,及其性能要求、系統(tǒng)硬件構(gòu)建、軟件設(shè)計思路和應(yīng)用結(jié)果,由此說明CAN總線的優(yōu)點及其用于工業(yè)現(xiàn)場控制系統(tǒng)的一個通用設(shè)計過程。

關(guān)鍵詞:CAN,現(xiàn)場總線,SJA1000初始化,系統(tǒng),信號檢測,局域網(wǎng)

1 引 言

對火車機(jī)車監(jiān)控系統(tǒng)而言,數(shù)據(jù)測量/傳輸?shù)目焖傩?、?zhǔn)確性、可靠性、通訊的靈活性都是至關(guān)重要的。以前的機(jī)車數(shù)據(jù)監(jiān)控僅僅提供現(xiàn)場數(shù)據(jù)的顯示和報警,在各設(shè)備上加智能儀表,比較分散,不便于觀察機(jī)車運行情況和進(jìn)行及時檢修,機(jī)車運行數(shù)據(jù)也無法保存,而這些數(shù)據(jù)是查清機(jī)車故障原因和檢修的重要依據(jù);智能儀表的各種操作,如調(diào)零、限值、精度都因環(huán)境和人為因素,影響了簡單儀表的顯示、報警功能,加之工作現(xiàn)場環(huán)境惡劣(高溫、震動、電磁波輻射等),導(dǎo)致其實時性、準(zhǔn)確性都較差。隨著國內(nèi)現(xiàn)場總線技術(shù)的發(fā)展,有必要及時更新原來的檢測系統(tǒng)。

機(jī)車監(jiān)控系統(tǒng)本身有幾十個數(shù)據(jù)采集節(jié)點(采用單片微機(jī)AT89C51),一個上位工控機(jī)負(fù)責(zé)數(shù)據(jù)存儲和記錄,由于采集點多、采集頻率較高(20Hz),因此,總線上的數(shù)據(jù)通常比較擁擠,而系統(tǒng)對數(shù)據(jù)傳輸?shù)臏?zhǔn)確性、報警數(shù)據(jù)的實時性要求特別高,鑒于此,我們選擇CAN現(xiàn)場總線搭建數(shù)據(jù)平臺,它兼具了靈活性、實時性、準(zhǔn)確性、可靠性各方面的優(yōu)勢。

CAN是控制器局域網(wǎng)絡(luò)(Controller Area Net)的簡稱,是80年代德國奔馳汽車公司制定的一種串行通訊協(xié)議,主要用于汽車多個控制設(shè)備和多個儀器儀表之間的數(shù)據(jù)通訊,鏈路層采用CAN2.0B協(xié)議?,F(xiàn)在,它已廣泛應(yīng)用于各種工業(yè)現(xiàn)場,特別適用于做優(yōu)化、分析及維護(hù)的系統(tǒng)。90年代,國內(nèi)開始對CAN總線應(yīng)用進(jìn)行研究,目前已在諸多領(lǐng)域中應(yīng)用CAN總線技術(shù)。

本系統(tǒng)就是一個依照CAN2.0B構(gòu)建的局域網(wǎng),總線控制器采用德國Philips公司的SJA1000,驅(qū)動器為與其匹配的PCA82C250,下位機(jī)和上位機(jī)通過CANH、CANL雙絞線進(jìn)行雙向通信。此系統(tǒng)的整個硬件結(jié)構(gòu)又可以作為CAN網(wǎng)絡(luò)的一個標(biāo)準(zhǔn)節(jié)點,構(gòu)成樹狀網(wǎng)絡(luò),它是CAN總線系統(tǒng)的最小構(gòu)成和典型應(yīng)用。

2 CAN總線特點簡介

CAN總線的最大特征就是,網(wǎng)絡(luò)內(nèi)各節(jié)點以多主方式工作,各節(jié)點在任意時刻都可以點對點、一點對多點向其他節(jié)點發(fā)送信息,不分主從,靈活性好。

CAN總線上同時傳送的數(shù)據(jù)采用非破壞性仲裁,ID小的優(yōu)先傳送,低優(yōu)先級數(shù)據(jù)延遲發(fā)送,這對負(fù)載較重的網(wǎng)絡(luò)解決網(wǎng)絡(luò)癱瘓、網(wǎng)絡(luò)阻塞及提高效率很有效。

CAN還有較強(qiáng)的校驗功能,出錯的數(shù)據(jù)自動重新發(fā)送,可靠性很高。

另外,CAN通訊介質(zhì)選擇雙絞線,機(jī)車現(xiàn)場空間狹窄,雙絞線的現(xiàn)場布線、安裝、拆卸都比較簡單。最大通信距離長達(dá)10km,比特率可達(dá)1Mbps(通信距離較大時,比特率會有所降低),可同時傳送16個報文。Philips公司的SJA1000的工作溫度范圍:-40℃~+125℃,存儲溫度范圍:-65℃~+150℃。

對于系統(tǒng)選用的SJA1000CAN控制器,其功能模塊主要有:接口管理邏輯(Interface ManagementLogic)、接收FIFO棧(Receive FIFO)、接收過濾器(Acceptance Filter)、發(fā)送緩沖器(Transmit Buffer)和CAN核心模塊(CAN Core Block),結(jié)構(gòu)如圖1所示(見Philips Semiconductors公司的資料:ApplicationNote——SJA1000 Stand-alone CAN ControllerAN97076,1997)。

11.jpg

接口管理邏輯主要處理和微控制器的信號交換,通過CS、ALE/AS、RD、WR、INT等控制信號與微控制器進(jìn)行數(shù)據(jù)讀寫。而CAN核心模塊就是CAN2.0B的執(zhí)行部分。

接收過濾器接收經(jīng)CAN核心模塊轉(zhuǎn)換過的數(shù)據(jù),通過寄存器接收碼寄存器(Acceptance CodeRegister,ACR)、接收屏蔽寄存器(Acceptance MaskRegister,AMR)做過濾處理,符合ID要求的數(shù)據(jù)才予以接收。ACR提供本機(jī)ID,AMR提供ID過濾時的有效位信息。接收FIFO棧用來暫存通過過濾器過濾而接收的數(shù)據(jù)。

發(fā)送緩沖器(TB)存儲欲發(fā)送的數(shù)據(jù),CAN核心模塊從發(fā)送緩沖器讀數(shù),依照CAN2.0B協(xié)議發(fā)送數(shù)據(jù)。

3 系統(tǒng)功能及硬件實現(xiàn)

此系統(tǒng)除了常規(guī)系統(tǒng)提供的功能之外,還具有模塊優(yōu)先級可調(diào)(ID可調(diào))、報警限值可調(diào)、報警歷史數(shù)據(jù)的保存等功能。

工作現(xiàn)場由多個模擬儀表和一些開關(guān)信號組成,每一個儀表配一塊數(shù)據(jù)采集板,開關(guān)量的采集由一個和模擬量采集板相似的單獨模塊完成。下位機(jī)采用ATMEL公司的AT89C51微型單片機(jī),主要做通信數(shù)據(jù)的采集、簡單判斷和數(shù)據(jù)發(fā)送的準(zhǔn)備工作;通信部分由總線控制器SJA1000及其配套的驅(qū)動器PCA82C250構(gòu)成,它們可以完成數(shù)據(jù)鏈路層和物理層的所有工作;另有上位工控機(jī),帶有5M字節(jié)的閃存E2PROM,能提供10萬次擦除和10年的數(shù)據(jù)保存期,用以存儲各個采集模塊報警前、后1min的數(shù)據(jù),機(jī)車每個運行周期結(jié)束后,就將E2PROM中的數(shù)據(jù)導(dǎo)出,以備日后的性能分析;監(jiān)控報警模塊,用來進(jìn)行數(shù)據(jù)的實時顯示及報警,為了防止上位機(jī)出現(xiàn)瓶頸現(xiàn)象,各模塊的報警任務(wù)分散給下位機(jī)完成,向上位機(jī)發(fā)送數(shù)據(jù)只需將報警標(biāo)志位置復(fù)位即可;總線終端接100Ω~120Ω電阻以抑制信號反射,保證通信可靠性。雙絞線連接各個模塊節(jié)點,形成多主控制的局域網(wǎng)。另外,為了防止系統(tǒng)運行意外,還加了X25045(美國Xicor公司的外圍器件,集成了Watchdog、復(fù)位控制器、帶Block鎖的CMOS串行E2PROM陣列三種功能)作看門狗,4KB的SPI(Serial Peripheral Interface)E2PROM可以存儲此節(jié)點的報警限值等一些重要數(shù)據(jù)。系統(tǒng)拓?fù)浣Y(jié)構(gòu)如圖2所示。

22.jpg

4 上位/下位機(jī)的數(shù)據(jù)通訊

SJA1000支持CAN2.0B規(guī)范協(xié)議,且有2種工作方式:BasicCAN和PeliCAN,本系統(tǒng)采用BasicCAN。

各AT89C51單片機(jī)每隔0.05s主動給上位機(jī)發(fā)送一次數(shù)據(jù),下位機(jī)的CPU相對上位機(jī)來說不太忙,因此,為了防止外部干擾信號引起錯誤報警,下位機(jī)發(fā)送數(shù)據(jù)之前對數(shù)據(jù)進(jìn)行數(shù)字濾波:0.05s分為5次采集,取其平均值發(fā)送,這樣就可以避免對瞬間高頻干擾信號的誤報警。

而上位工控機(jī)發(fā)給下位機(jī)的數(shù)據(jù)一般都是針對某個下位機(jī)的命令,下位單片機(jī)接收數(shù)據(jù)是用外部中斷INT0完成的。上位機(jī)時刻監(jiān)聽所有下位單片機(jī),下位機(jī)也時時監(jiān)聽上位機(jī),接收發(fā)給自己的命令。

SJA1000以BasicCAN工作模式接收數(shù)據(jù)時,先裝入到過濾器中,順序如下:

22a.jpg

其中,ID的高八位接收AMR碼屏蔽之后,與ACR八位接收碼進(jìn)行比較,符合則傳入接收FIFO,否則不予接收。因CAN2.0B協(xié)議中ID越小的優(yōu)先級越高,所以,可以將ID最高位ID10設(shè)為報警數(shù)據(jù)的標(biāo)志(數(shù)據(jù)超限時此位為零),以保證有報警的模塊數(shù)據(jù)優(yōu)先傳送。而對于上位機(jī),要接收所有下位單片微機(jī)的數(shù)  據(jù),ID高八位應(yīng)全部屏蔽,而低三位ID2~I(xiàn)D0用來作為上位工控機(jī)向下位單片機(jī)發(fā)送命令(如修改報警限值等)的標(biāo)志位,因此,在系統(tǒng)工作期間各個模塊的限值可以由上位機(jī)發(fā)送命令加以調(diào)節(jié)。

下位機(jī)在發(fā)送數(shù)據(jù)時,先從寄存器讀入限值,判斷是否超限,如超限,ID10置0,否則置1。然后在ID9~I(xiàn)D3填入本模塊的ID號,將發(fā)送命令位置位,之后單片機(jī)就不參與此次數(shù)據(jù)發(fā)送進(jìn)程了,其他工作就由SJA1000和PCA82C250完成。由于ID也可以決定數(shù)據(jù)的優(yōu)先級,單片機(jī)復(fù)位時總是先從P2口上讀入外部8位撥動開關(guān)作為ID,這樣,各個模塊的優(yōu)先級就可以人為改變,增強(qiáng)了系統(tǒng)的靈活性。

AT89C51在主程序中向上位機(jī)發(fā)送數(shù)據(jù),在0#外部中斷程序中接收上位機(jī)的命令,利用ID低三位判斷約定命令的意義,在此不再細(xì)述,只給出主程序和SJA1000的初始化程序流程,其中,在各個主程序開始,為了防止網(wǎng)絡(luò)由于所有下位機(jī)復(fù)位的時間、采集周期、軟件均一致而導(dǎo)致BUS上負(fù)荷不均勻,上位機(jī)工作量時而很大的問題,各個下位機(jī)每次復(fù)位時主程序特意安排不同時間長短的延時,這樣,各模塊發(fā)送數(shù)據(jù)的時刻就能均勻分布。

33.jpg

44.jpg

上位機(jī)接收到數(shù)據(jù)后,先查看報警標(biāo)志位,判斷是否報警,若是,將寄存器中前1分鐘的數(shù)據(jù)及對應(yīng)的時間向E2PROM中寫入,并且繼續(xù)寫入接收到的報警實時數(shù)據(jù),直到報警停止以后一分鐘。否則,將數(shù)據(jù)加上當(dāng)前時間以隊列方式存入寄存器,寄存器滿,將最舊的數(shù)據(jù)刷掉。

監(jiān)控報警模塊和上位工控機(jī)一樣接收數(shù)據(jù),只是每個儀表模塊對應(yīng)一個報警裝置,n個報警裝置實時顯示各個儀表的超限狀態(tài),另有液晶屏一塊,顯示有報警模塊的實時數(shù)據(jù),無報警時顯示ID最小的模塊的實時數(shù)據(jù)。

以上介紹的就是一個單獨的下位采集模塊和上位機(jī)通訊的基本過程和原理,整個系統(tǒng)由若干個相對獨立的、相似的下位模塊和一個上位機(jī)組成,下位機(jī)之間暫時無通信。

5 結(jié)束語

此系統(tǒng)是為西安某公司改進(jìn)機(jī)車控制臺開發(fā)的,經(jīng)過試驗、軟件調(diào)試直到試車運行(采集模塊20個)表明,性能穩(wěn)定,采集數(shù)據(jù)的波動幅度小于0.05%,試車時數(shù)據(jù)傳輸率設(shè)為125kbps,無數(shù)據(jù)丟失,上位機(jī)和下位機(jī)間無數(shù)據(jù)傳送出錯現(xiàn)象,最高比特率可達(dá)1Mb/s,抗干擾能力、抗高溫能力(-40℃~+120℃)、數(shù)據(jù)準(zhǔn)確性都令人滿意,充分體現(xiàn)了CAN總線的優(yōu)越性。遺憾的是,機(jī)車儀表報警以后,目前還只能以人工方式解決問題。

下一步還會考慮更高一層的上位機(jī)與次系統(tǒng)的通信(仍會采用CAN現(xiàn)場總線),若能實現(xiàn),車站及相關(guān)部門與各列車的聯(lián)絡(luò)、運行情況的及時匯報和監(jiān)控等問題都將迎刃而解。

參考文獻(xiàn)

1 何立民.單片機(jī)應(yīng)用技術(shù)選編.北京:北京航空航天大學(xué)出版社,1999

2 鄔寬明.單片機(jī)外圍器件實用手冊——數(shù)據(jù)傳輸接口器件分冊.北京:北京航空航天大學(xué)出版社,1998

3 鄔寬明.CAN總線原理及應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社,1996



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉