技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于CAN總線的機(jī)車實(shí)時(shí)監(jiān)控系統(tǒng)

基于CAN總線的機(jī)車實(shí)時(shí)監(jiān)控系統(tǒng)

時(shí)間:2008-12-12 11:18:11來(lái)源:zhangting

導(dǎo)語(yǔ):?傳統(tǒng)機(jī)車監(jiān)控裝置通過(guò)轉(zhuǎn)存將機(jī)車運(yùn)行過(guò)程中所記錄的數(shù)據(jù)轉(zhuǎn)存到地面二次開(kāi)發(fā)平臺(tái),在地面進(jìn)行機(jī)車運(yùn)行數(shù)據(jù)分析和故障診斷
1 引言 傳統(tǒng)機(jī)車監(jiān)控裝置通過(guò)轉(zhuǎn)存將機(jī)車運(yùn)行過(guò)程中所記錄的數(shù)據(jù)轉(zhuǎn)存到地面二次開(kāi)發(fā)平臺(tái),在地面進(jìn)行機(jī)車運(yùn)行數(shù)據(jù)分析和故障診斷,這樣的檢測(cè)設(shè)備實(shí)時(shí)性不強(qiáng),不能實(shí)時(shí)監(jiān)測(cè)機(jī)車的運(yùn)行狀態(tài);隨著鐵路信息化數(shù)字化的發(fā)展,提出了機(jī)車在線實(shí)時(shí)監(jiān)控以及機(jī)車檢修應(yīng)向狀態(tài)修發(fā)展。近年來(lái)國(guó)內(nèi)現(xiàn)場(chǎng)總線技術(shù)的成熟和不斷發(fā)展以及移動(dòng)通信gprs(通用分組無(wú)線業(yè)務(wù)general packet radioservice)的無(wú)線數(shù)據(jù)傳輸業(yè)務(wù)的成熟,使機(jī)車車輛的實(shí)時(shí)監(jiān)測(cè)成為可能。為此,筆者根據(jù)自己實(shí)踐,介紹一種基于can(controller area network)總線的機(jī)車實(shí)時(shí)監(jiān)控系統(tǒng)。系統(tǒng)通過(guò)gprs的短信息業(yè)務(wù),實(shí)現(xiàn)車載數(shù)據(jù)采集模塊與地面監(jiān)控系統(tǒng)的實(shí)時(shí)通信,實(shí)現(xiàn)地面監(jiān)控中心實(shí)時(shí)監(jiān)控列車運(yùn)行狀態(tài)。 can總線是眾多現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)之一,具有使用簡(jiǎn)單、性能可靠以及系統(tǒng)可擴(kuò)展性能好等優(yōu)點(diǎn)。can總線有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),采用短報(bào)文幀及gsma/cd-amp(帶有信息優(yōu)先權(quán)及沖突檢測(cè)的載波監(jiān)聽(tīng)多路訪問(wèn))的mac(媒介訪問(wèn)控制)方式,在工業(yè)自動(dòng)控制化領(lǐng)域得到廣泛應(yīng)用。特別適用于做優(yōu)化、分析及維護(hù)的系統(tǒng)。90年代,國(guó)內(nèi)開(kāi)始對(duì)can總線應(yīng)用進(jìn)行研究,目前已在諸多領(lǐng)域中應(yīng)用can總線技術(shù)。 2 基本原理 [align=center] 圖1 機(jī)車監(jiān)控系統(tǒng)結(jié)構(gòu)圖[/align] 圖1為機(jī)車實(shí)時(shí)監(jiān)控系統(tǒng)結(jié)構(gòu)圖。包括三個(gè)數(shù)據(jù)采集模塊、一個(gè)存貯發(fā)射模塊和地面監(jiān)控系統(tǒng)(地面系統(tǒng)部分圖中未示)。數(shù)據(jù)采集模塊負(fù)責(zé)采集牽引電機(jī)電樞電壓、電樞電流、勵(lì)磁電流等重要模擬量數(shù)據(jù);各種風(fēng)機(jī)接觸器的開(kāi)閉狀態(tài)的開(kāi)關(guān)量;機(jī)車基本信息(包括機(jī)車速度、機(jī)車位置、機(jī)車車號(hào)等)數(shù)字編碼量。存貯發(fā)射模塊負(fù)責(zé)各數(shù)據(jù)采集模塊的協(xié)調(diào)工作,通過(guò)gprs將各采集的數(shù)據(jù)發(fā)送到地面監(jiān)控系統(tǒng)。地面系統(tǒng)由pc機(jī)與gprs無(wú)線天線等模塊組成,通過(guò)gprs天線向車載系統(tǒng)發(fā)送指令,指示車載模塊按地面要求進(jìn)行工作。地面系統(tǒng)同時(shí)接收存貯發(fā)射模塊發(fā)送來(lái)的現(xiàn)場(chǎng)數(shù)據(jù),數(shù)據(jù)按gprs的短信息業(yè)務(wù)格式發(fā)送接收。地面系統(tǒng)軟件采用visual c++軟件編寫(xiě)。軟件使用友好人機(jī)對(duì)話界面實(shí)時(shí)顯示、跟蹤、監(jiān)控列車運(yùn)行狀態(tài),實(shí)現(xiàn)對(duì)機(jī)車實(shí)時(shí)在線故障檢測(cè)與診斷,機(jī)車出現(xiàn)故障時(shí),還可以及時(shí)向司機(jī)提供操作建議,在機(jī)車庫(kù)檢時(shí),系統(tǒng)還提供檢修指導(dǎo),限于篇幅所限本文將重點(diǎn)介紹車載部分。 3 硬件結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)是一個(gè)依照can2.0b構(gòu)建的控制局域網(wǎng)(controller area network),總線控制器采用philips公司p87c591微控器內(nèi)置的can控制器。p8xc591是一個(gè)單片8位高性能微控制器,具有片內(nèi)can控制器,采用強(qiáng)大的80c51指令集并成功的包括了半導(dǎo)體 sja1000 can控制器的pelican功能。can總線驅(qū)動(dòng)器采用與sja1000 can控制器相匹配的pca82c250,下位機(jī)和上位機(jī)通過(guò)canh、canl屏蔽雙絞線進(jìn)行雙向通信。總線終端需跨接100ω~120ω電阻以抑制信號(hào)反射,保證通信可靠性。雙絞線連接各個(gè)模塊節(jié)點(diǎn),形成多主控制的局域網(wǎng)。為增強(qiáng)can總線節(jié)點(diǎn)的抗干擾能力,p87c591的rxdc和txdc腳,通過(guò)高速光耦6n173后與82c250相連,保證總線上各can節(jié)點(diǎn)間的電氣隔離,光耦部份電路所采用的兩個(gè)電源必須完全隔離。圖2為各節(jié)點(diǎn)和can總線間的接口電路圖。 [align=center] 圖2 can總線接口電路圖[/align] 模擬量采集單元主要功能可以劃分為微處理器及其控制部分、can通訊接口部分、多路模擬量輸入通道選擇開(kāi)關(guān)、模數(shù)轉(zhuǎn)換芯片等。模擬量直接由機(jī)車微機(jī)柜內(nèi)引入,信號(hào)在微機(jī)柜內(nèi)已調(diào)理成適合a/d轉(zhuǎn)換的電平。模擬量信號(hào)的采樣和量化工作由一片ads774完成。ads774是美國(guó)burr-brown公司生產(chǎn)的12位逐次逼近并行a/d轉(zhuǎn)換器,典型轉(zhuǎn)換時(shí)間為8.5μs。選擇mcp506a作為16路信號(hào)通道轉(zhuǎn)換開(kāi)關(guān),分時(shí)對(duì)16路模擬信號(hào)采樣及a/d轉(zhuǎn)換。 開(kāi)關(guān)量采集單元采集的信號(hào)均來(lái)自機(jī)車電氣控制柜,采集板需采用光電隔離,增強(qiáng)抗干擾能力,實(shí)現(xiàn)與采樣電路的電氣隔離。系統(tǒng)采用兩片8255a擴(kuò)展p0口以對(duì)48路開(kāi)關(guān)信號(hào)采樣,兩片8255a的a,b,c口設(shè)定為模式0和輸入方式。四個(gè)模塊結(jié)構(gòu)基本相似,在此不一一綴述。 存貯發(fā)射模塊包括:閃存、帶斷電保護(hù)的時(shí)鐘芯片ds12887以及gprs天線組成。閃存具有斷電后保存數(shù)據(jù)特點(diǎn),作為存放機(jī)車數(shù)據(jù)的黑匣子。gprs天線和單片機(jī)通過(guò)rs-232相聯(lián)接,單片機(jī)通過(guò)讀寫(xiě)串行口實(shí)現(xiàn)和中國(guó)移動(dòng)網(wǎng)絡(luò)之間的數(shù)據(jù)接收和發(fā)送。用一片64kb的hm6264ram存儲(chǔ)有關(guān)控制信息并作為與中國(guó)移動(dòng)網(wǎng)絡(luò)和存貯發(fā)射模塊的數(shù)據(jù)交換區(qū)。 4 系統(tǒng)軟件設(shè)計(jì) 4.1 can初始化子程序 can控制器的初始化是系統(tǒng)設(shè)計(jì)工作中極為重要的部分,它是can總線正常工作的前提,關(guān)系整個(gè)車載系統(tǒng)能否正常工作,初始化工作既是一個(gè)重點(diǎn),也是一個(gè)難點(diǎn)。can通信初始化包括操作模式的設(shè)置、驗(yàn)收濾波器的設(shè)置、總線定時(shí)器的設(shè)置等。驗(yàn)收濾波器的設(shè)置決定了節(jié)點(diǎn)所接收的信息的格式;定時(shí)器設(shè)置確定can總線數(shù)據(jù)傳輸波特率。80c51cpu接口將pelican與p87c591微控制器內(nèi)部總線相連,通過(guò)5個(gè)特殊功能寄存器canadr、candat、canmod、cansta和cancon對(duì)pelican寄存器和ram區(qū)進(jìn)行快捷的訪問(wèn)。對(duì)can進(jìn)行初始化實(shí)際就是對(duì)以上5個(gè)特殊功能寄存器的進(jìn)行讀寫(xiě)訪問(wèn)。以下是用c語(yǔ)言編寫(xiě)的初始化子程序代碼。 void init_can(void) { canmod=0x01; //將can控制器設(shè)置為復(fù)位模式以啟動(dòng)初始化 p1m2=p1m2|0x02; //p1m2.1=`1`,p1m1.1=`0`(默認(rèn)) canadr=btr0; //btr0和btr1編程為125kbit/s@12mhz candat=0x45; canadr=btr1; //tseg1=12,tseg2=3,sjw=2 candat=0x2b; //sample=1->sample point~81% canadr=acr10; //將地址設(shè)置到驗(yàn)收代碼寄存器0(bank1) candat=0x40; //驗(yàn)收濾波代碼 candat=0xe0; //驗(yàn)收濾波代碼 canadr=amr10; //將地址設(shè)置到驗(yàn)收屏蔽寄存器0(bank1) candat=0x00; //bank1:驗(yàn)收屏蔽0 candat=0x0f; //bank1:驗(yàn)收屏蔽1無(wú)關(guān) candat=0xff; //bank1:驗(yàn)收屏蔽2無(wú)關(guān) candat=0xff; //bank1:驗(yàn)收屏蔽3無(wú)關(guān) canadr=acfmod; //將地址設(shè)置到acf模式寄存器 candat=0x55; //單驗(yàn)收濾波器使用11位id(sff) canadr=acfprio; //將地址設(shè)置到acf優(yōu)先級(jí)寄存器 candat=0xff; //所有濾波器都為高優(yōu)先級(jí) canadr=acfen; //將地址設(shè)置到acf使能寄存器 candat=0x01; //使能bank1的驗(yàn)收濾波器 canmod=0x00; //選擇操作模式,退出can控制器復(fù)位模式 } 4.2 can接收發(fā)送子程序 can總線通信采用單濾波器標(biāo)準(zhǔn)幀:使用包括rtr位的完整的識(shí)別碼和頭兩個(gè)數(shù)據(jù)字節(jié)進(jìn)行驗(yàn)收濾波(濾波器設(shè)置見(jiàn)can初始化程序代碼)。標(biāo)準(zhǔn)幀共13個(gè)字節(jié),包括:3個(gè)字節(jié)幀頭(同步字) ,以保證每次接收端都能夠正確的找到幀頭;一個(gè)字節(jié)的命令/數(shù)據(jù)標(biāo)識(shí)位,該標(biāo)識(shí)位在本系統(tǒng)中作為包代碼的身份識(shí)別信息(包括數(shù)據(jù)類型、指令類型等),這樣就把命令和數(shù)據(jù)分開(kāi)處理便于接收端對(duì)命令和數(shù)據(jù)的正確區(qū)分和處理;接著7個(gè)字節(jié)為can數(shù)據(jù)包所包含的具體數(shù)據(jù)或指令最后2個(gè)字節(jié)在標(biāo)準(zhǔn)幀中作備用。各模塊根據(jù)接收到包的標(biāo)識(shí)位的不同來(lái)對(duì)數(shù)據(jù)包進(jìn)行分解、判斷,各模塊根據(jù)包代碼的身分識(shí)別號(hào)將數(shù)據(jù)存放到相應(yīng)的緩沖區(qū),等該源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)全部正確接收完畢后,再一起送入公用緩沖區(qū),以便控制處理子程序根據(jù)收到的數(shù)據(jù)進(jìn)行控制處理。以下是用c語(yǔ)言編寫(xiě)的can接收程序基本代碼。 void rec_can(void) //接收子程序 { uchar length; //can數(shù)據(jù)長(zhǎng)度代碼 uchar i; bit ff; //ff=0(標(biāo)準(zhǔn)can幀);ff=1(擴(kuò)展can幀) while(rbs==0)rbs=0; //檢查rbs是否為1,如不為1說(shuō)明rbf中沒(méi)有可讀的數(shù)據(jù) canadr=rbf; //地址指向can接收緩沖區(qū)地址 receivemessage[0]=candat; //讀取并保存幀信息字節(jié) ff=receivemessage[0]&0x80; //取出幀格式 length=receivemessage[0]&0x0f; //取出幀長(zhǎng)度dlc if(length>0x08)length=0x08; receivemessage[1]=candat; //讀取并保存rx識(shí)別碼1 receivemessage[2]=candat; //讀取并保存rx識(shí)別碼2 if(ff) {receivemessage[3]=candat;eceivemessage[4]=candat;} for(i=0;i{if(ff) receivemessage[i+5]=candat; else receivemessage[i+3]=candat; //標(biāo)準(zhǔn)幀 } cancon=0x04; //釋放接收緩沖區(qū) } can控制器的發(fā)送程序也是模塊間通信的基本程序,下面是用can節(jié)點(diǎn)通信的發(fā)送子程序。 void send_can(void) //發(fā)送子程序 {uchar i; if(tbs==1)//發(fā)送緩沖區(qū)狀態(tài)=釋放? {canadr=tbf;//地址指向591tx緩沖區(qū), candat=message[0]; //寫(xiě)tx幀信息 candat=message[1]; //寫(xiě)tx識(shí)別碼1 candat=message[2]; //寫(xiě)tx識(shí)別碼2 for(i=0;i<8;i++) //寫(xiě)數(shù)據(jù)字節(jié) {candat=message[i+3];} cancon=0x01; //置位發(fā)送請(qǐng)求位 } else{//p8xc591發(fā)送緩沖區(qū)未釋放,運(yùn)行其它程序} } 4.3 系統(tǒng)軟件結(jié)構(gòu) 存貯發(fā)射模塊和三個(gè)數(shù)據(jù)采集模塊按如下協(xié)議工作:數(shù)字量采集單元通過(guò)rs485總線接收機(jī)車基本信息,rs485總線數(shù)據(jù)按一包數(shù)據(jù)共40個(gè)字節(jié),第一個(gè)字節(jié)為節(jié)點(diǎn)地址,最后一個(gè)字節(jié)為校驗(yàn)字節(jié),中間38個(gè)字節(jié)為傳送的機(jī)車基本信息量。數(shù)字量采集單元對(duì)數(shù)據(jù)包解包,取出當(dāng)前機(jī)車速度、位置、機(jī)車號(hào)、線路狀態(tài)等基本信息,將數(shù)據(jù)按can標(biāo)準(zhǔn)幀格式發(fā)給存貯發(fā)射模塊;存貯發(fā)射模塊等待、接收數(shù)字量采集單元采集的數(shù)據(jù)后,向其余模塊發(fā)送數(shù)據(jù)采集命令,采用在運(yùn)行中改變?yōu)V波參數(shù)方式接收各個(gè)模塊發(fā)給存貯發(fā)射的數(shù)據(jù)采集結(jié)果。把接收到數(shù)據(jù)按和地面監(jiān)控系統(tǒng)約定格式存貯在閃存存貯器內(nèi),最后寫(xiě)串口,把一次采集的數(shù)據(jù)通過(guò)gprs天線發(fā)往地面監(jiān)控系統(tǒng)。地面系統(tǒng)收到車載系統(tǒng)數(shù)據(jù)時(shí),發(fā)送一幀確認(rèn)幀給車載系統(tǒng)。圖3所示為存貯發(fā)送模塊基本工作流程圖。 模擬量采集模塊和開(kāi)關(guān)量采集模塊工作流程相似,模擬量單元初始化后等待存貯發(fā)送模塊發(fā)來(lái)的a/d轉(zhuǎn)換指令后,依次啟動(dòng)16路a/d轉(zhuǎn)換,轉(zhuǎn)換完成后將16路a/d轉(zhuǎn)換結(jié)果按can標(biāo)準(zhǔn)幀格式打包發(fā)送給存貯發(fā)送模塊。開(kāi)關(guān)量采集單元初始化后等待上位機(jī)的數(shù)據(jù)采集請(qǐng)求指令后,讀取48路繼電器通斷信號(hào),轉(zhuǎn)換完成后將數(shù)據(jù)按can標(biāo)準(zhǔn)幀格式打包發(fā)送給存貯發(fā)送模塊。 5 結(jié)束語(yǔ) 系統(tǒng)經(jīng)過(guò)實(shí)驗(yàn)室內(nèi)部聯(lián)調(diào), 性能穩(wěn)定, 抗干擾能力強(qiáng),充分體現(xiàn)了can 總線的優(yōu)越性。目前系統(tǒng)已在裝車運(yùn)行,取得了以下良好效益: [align=center] 圖3 存貯發(fā)送模塊程序流程[/align] (1) 實(shí)時(shí)監(jiān)控機(jī)車運(yùn)行狀態(tài),保障列車行車安全。機(jī)車在任何時(shí)間、任何地點(diǎn)產(chǎn)生的運(yùn)行數(shù)據(jù)都可以被地面監(jiān)控系統(tǒng)所監(jiān)控;車載存貯發(fā)送單元實(shí)時(shí)將運(yùn)行數(shù)據(jù)發(fā)送地面監(jiān)控系統(tǒng),當(dāng)機(jī)車出現(xiàn)故障時(shí),該系統(tǒng)可以為機(jī)務(wù)和電務(wù)部門及時(shí)提供原始分析數(shù)據(jù)。 (2) 裝備該系統(tǒng)后減輕了轉(zhuǎn)儲(chǔ)人員的勞動(dòng)強(qiáng)度,提高了生產(chǎn)效率,節(jié)省了勞動(dòng)力。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:基于電力線的OFDM配電自動(dòng)化...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.surachana.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)