CAN總線在車輛分布式控制系統(tǒng)中的應用 Application of CAN Bus in Dis tributed Control Sys tem of Railcar (北京工業(yè)大學)孫樹文楊建武張慧慧鄭剛 SUN SHUWEN YANG J IANWU ZHANG HUHUI ZHENG GANG 摘要: 針對軌道車輛分布式控制系統(tǒng)中驅動電機多而分散、系統(tǒng)信息量大、布線復雜、調(diào)試不方便等特點, 設計了一種基于CAN 總線技術的多電機分布式控制系統(tǒng)。通過CAN 總線, 監(jiān)控主機和電機驅動節(jié)點可直接進行通信, 形成分布式網(wǎng)絡, 簡化了系統(tǒng)結構, 實現(xiàn)多電機的分散安裝和集中控制功能。本文介紹了監(jiān)控系統(tǒng)的整體結構、工作原理、驅動節(jié)點的軟/硬件設計。經(jīng)系統(tǒng)測試和實際運行表明, 該系統(tǒng)安裝使用方便、工作可靠性較高, 達到了設計要求, 具有一定的參考和推廣價值。 關鍵詞: CAN 總線; 軌道車輛; 分布式系統(tǒng); 驅動節(jié)點 Abstr act:Countering the problems existing in the distributed control system of railcar, such as the condition of excessive and distributed driving motor, many information exchange, complex wiring, and inconvenient installation and debugging, a distributed control system about the multi- motor based on CAN bus is designed. Via CAN- BUS, the monitor host computer and these nodes of driving motor can communicate with each other directly, like a distributed network. The system structure is more concise. The function of distributed setting and concentrated control is realized in this system. The whole structure and principle of system, the hardware circuit, and the software programming were discussed in detail. Practical using shows that this monitor system has the better control effect and is suitable for similar practical engineering. Key words: CAN bus, r ailcar , distr ibuted system, dr iving node 對于多電機的系統(tǒng), 特別是多電機驅動的軌道車輛控制系統(tǒng), 需要實現(xiàn)大量的信息采集、分布式的協(xié)調(diào)控制、實時的反應速度等功能。傳統(tǒng)的集散型控制系統(tǒng)存在系統(tǒng)不開放、硬件投資大、布線復雜、維修不便的缺點, 具有明顯的局限性, 顯然是不適合的。現(xiàn)場總線控制系統(tǒng)( FCS) 是繼直接數(shù)字控制(DDC) 、集散控制系統(tǒng)(DCS) 之后的一種新型的控制系統(tǒng), 是一種全開放、全數(shù)字、多點通信的底層控制網(wǎng)絡, 具有全分散性控的體系結構。其顯著特點是通過開放性總線把現(xiàn)場設備連接成網(wǎng)絡,各智能設備能夠完成自動控制和運行狀態(tài)的自行診斷, 并且能夠通過總線實現(xiàn)設備之間的通信, 從而簡化了系統(tǒng)結構, 提高了可靠性。因此本文提出了一種基于CAN (Controller AreaNetwork) 總線控制系統(tǒng)的設計方案, 將計算機通訊、現(xiàn)場總線技術很好的結合起來, 設計出了一套結構簡單、實時性高、擴展性強的分布式監(jiān)控系統(tǒng), 實現(xiàn)了多電機控制與監(jiān)測的實時調(diào)節(jié)、設備狀態(tài)的數(shù)字化和圖形化顯示。 2 控制系統(tǒng)整體方案設計 整個控制系統(tǒng)由監(jiān)控計算機、PC- CAN 接口卡、操作臺節(jié)點、智能驅動節(jié)點( n<110) 、CAN 總線網(wǎng)絡組成, 其系統(tǒng)結構如圖1 所示。分布在整個車輛的驅動節(jié)點接收操作臺發(fā)來的控制指令, 對驅動電機進行智能控制, 并采集車載電源的電壓、電流和溫度信號, 經(jīng)過處理后發(fā)送給監(jiān)控計算機;監(jiān)控計算機可以通過CAN 總線網(wǎng)和各個控制節(jié)點之間進行實時通信, 并顯示電源電壓、驅動電流、車輛速度等狀態(tài), 從而實現(xiàn)軌道車輛的分布式驅動和集中監(jiān)控。
控制系統(tǒng)中的驅動節(jié)點由微處理器、CAN 控制器、CAN 收發(fā)器和外圍電路( 如:信號調(diào)理、光耦隔離、I2C、撥碼開關等) 組成。監(jiān)控計算機可以選用普通PC 或工控機IPC。PC- CAN 適配卡用來完成CAN 總線和監(jiān)控計算機之間的協(xié)議轉換, 可以選用PCI 總線適配卡、ISA 總線適配卡或RS232 串行通信適配器。操作臺節(jié)點用于車輛運行方向與運行速度的控制。各個控制節(jié)點之間通過屏蔽雙絞線互聯(lián)構成CAN 總線網(wǎng)絡, 總線兩端連接120Ω的阻抗匹配電阻, 用來提高系統(tǒng)的穩(wěn)定性、增強系統(tǒng)的抗力。 3 驅動節(jié)點的硬件設計 CAN 總線器件有兩種選擇方案: 一種是片內(nèi)集成CAN 的微控制器, 如P8XC591/2、87C196CA/CB、MC68376 等;另一種是獨立的CAN控制器, 如控制Philips 公司的SJA1000、82C200、, Intel公司的82526、以及Microchip 公司的MCP2510 等, 但是獨立的CAN 控制芯片需要外接一個微處理器才能運行。為了簡化設計, 提高可靠性, 本文設計中選用的是Philips 公司的帶有在片CAN 控制器的P87C591 微型控制器, 自帶CAN 總線控制器(SJA1000) 的微處理器, 不占用處理器的端口資源, 大大簡化了接口電路的設計, 減少了程序的復雜程度, 提高了系統(tǒng)的穩(wěn)定性。整個車輛分布式控制系統(tǒng)設計的重點和和難點都是驅動節(jié)點。驅動節(jié)點硬件電路設計上采用了模塊化結構, 由微控制器、CAN 通信模塊、信號采集模塊、電機控制模塊、參數(shù)設置模塊組成, 驅動節(jié)點的整體結構如圖2 所示。 驅動節(jié)點各個組成模塊的功能如下: (1)CAN 通信模塊:CAN 總線通信接口電路主要由P87C591的片內(nèi)CAN 驅動器SJA1000、6N137 高速光隔、CAN 收發(fā)器PCA82C250 組成。P87C591 完成CAN 協(xié)議的應用層功能;SJA1000 *兼容CAN2.0 協(xié)議, 完成物理層和數(shù)據(jù)鏈路層的功能;PCA82C250 提供了對總線差動發(fā)送和接受數(shù)據(jù)的功能,有效地提高了總線的抗力, 實現(xiàn)了保護總線、降低射頻干擾等功能。為了進一步提高了系統(tǒng)的可靠性, 在P87C591 和PCA82C250 之間光耦(如:6N137 等)隔離電路, 并采取了雙電源, 有效地抑制由總線引入的干擾。 (2) 信號采集模塊:P87C591 自帶的6 路模擬輸入的10 位ADC, 可設置為8 位快速ADC, 可以基本滿足本系統(tǒng)對采集的精度要求, 完成對電機、電池狀態(tài)的測量任務;采集電路將各個傳感器采集到電信號進行調(diào)理(濾波、放大、電量轉換)后, 接入微處理器的ADC 接口。為抑制共模干擾, 放大器基本采用差動輸入。CPU 得到信息做出相應的判斷, 并送至不同的子程序進行相應的處理, 如:把電池的電壓、電流、溫度信息通過通信程序發(fā)送給監(jiān)控計算機;若電池電壓過低, 則自動切斷本節(jié)點的驅動電機, 并把節(jié)點的停機信息通知監(jiān)控計算機。 (3) 電機控制模塊:CPU 接收到控制臺發(fā)來的運行信息, 并做出處理。接通驅動電機的主接觸器、正反轉接觸器, 通過I2C獨立的CAN控制器, 如控制Philips 公司的SJA1000、82C200、, Intel公司的82526、以及Microchip 公司的MCP2510 等, 但是獨立的CAN 控制芯片需要外接一個微處理器才能運行。為了簡化設計, 提高可靠性, 本文設計中選用的是Philips 公司的帶有在片CAN 控制器的P87C591 微型控制器, 自帶CAN 總線控制器(SJA1000) 的微處理器, 不占用處理器的端口資源, 大大簡化了接口電路的設計, 減少了程序的復雜程度, 提高了系統(tǒng)的穩(wěn)定性。整個車輛分布式控制系統(tǒng)設計的重點和和難點都是驅動節(jié)點。驅動節(jié)點硬件電路設計上采用了模塊化結構, 由微控制器、CAN 通信模塊、信號采集模塊、電機控制模塊、參數(shù)設置模塊組成, 驅動節(jié)點的整體結構如圖2 所示??偩€把速度信號傳給數(shù)字電位計, 用來控制電機驅動器的輸出電流, 進而控制電機轉速。若電池的電壓、電流、溫度的任一項值超出正常值范圍時, 或接到總線的報警信息, 電機控制模塊都會做出相應的反應, 使驅動單元得到保護。 (4)參數(shù)設置模塊:報警電壓、報警電流、報警溫度、節(jié)點地址、波特率等信息通過RS232 接口及相應的設置軟件存儲于基于X25045 的E2PROM中, 實現(xiàn)節(jié)點工作參數(shù)現(xiàn)場設定能。節(jié)點地址通過撥碼開關設置。 驅動節(jié)點的硬件部分除了以上介紹的以外, 還有電源電路以及看門狗電路。電源電路提供所需隔離電源, 用于提高節(jié)點的穩(wěn)定性和安全性;看門狗電路主要是保證系統(tǒng)運行的穩(wěn)定性,在上電、掉電以及警戒情況下復位輸出。
4 控制系統(tǒng)的軟件設計 4.1 監(jiān)控計算機的軟件設計 計算機監(jiān)控軟件主要分為用戶應用層、數(shù)據(jù)分析處理層及硬件設備驅動層三個部分, 其系統(tǒng)流程如圖3 所示。用戶應用層和用戶需求緊密相關, 它主要完成的任務是為用戶提供各類信息的監(jiān)控界面, 進行人機交互, 也就是通常所說的人機界面設計, 通過它來顯示收集到的實測數(shù)據(jù)和狀態(tài)信息, 提供駕駛員與控制系統(tǒng)的交互平臺; 數(shù)據(jù)分析處理層完成總線數(shù)據(jù)的接收分類、判斷、處理、發(fā)送, 數(shù)據(jù)的存取操作等任務;硬件設備驅動層通過PC- CAN 接口卡建立監(jiān)控計算與CAN 總線的連接,并與驅動節(jié)點進行數(shù)據(jù)交換。 4.2 驅動節(jié)點的軟件設計 與驅動節(jié)點硬件設計相一致, 軟件設計也遵循模塊化的設計原則, 使控制軟件具有易讀、易擴展和易維護的優(yōu)點。通過C51 語言編寫相應的軟件模塊實現(xiàn)驅動節(jié)點的各種功能。軟件的各功能模塊之間通過入口和出口參數(shù)相互聯(lián)系, 組合靈活且方便, 加少了調(diào)試時間, 縮短了開發(fā)周期。驅動節(jié)點的軟件設計流程如圖3 所示。 4.3 驅動節(jié)點通信程序設計 監(jiān)控節(jié)點的通信采用CAN 總線2.0A 協(xié)議, 通信模塊的軟件設計主要由初始化子程序、報文接收子程序、報文發(fā)送子程序三部分組成。其中初始化子程序是實現(xiàn)通信的關鍵, 它主要用來完成CAN 控制器工作方式的選擇, 即對P87C591 中CAN控制器控制段中的寄存器進行設置, 包括:總線定時寄存器和輸出控制寄存器設置; 接收驗收濾波寄存器和濾波屏蔽寄存器設置;設置發(fā)送數(shù)據(jù)幀類型(標準幀或擴展幀)、標識符、數(shù)據(jù)長度。監(jiān)控節(jié)點與CAN 總線之間的數(shù)據(jù)交換是通過發(fā)送子程序和接收子程序實現(xiàn)的。 報文發(fā)送時只需將等待發(fā)送的數(shù)據(jù)按照特定格式組合成一幀報文, 送入SJA1000 的發(fā)送緩沖區(qū)中, 然后啟動SJA1000發(fā)送。在這之前必須先作一些判斷, 如:是否正在接收, 發(fā)送緩沖區(qū)是否鎖定等。當SJA1000 正在發(fā)送報文時, 發(fā)送緩沖器被寫鎖定。所以在放置一個新報文到發(fā)送緩沖器之前, 主控制器必須檢查狀態(tài)寄存器的“發(fā)送緩沖器狀態(tài)標志”。否則, 發(fā)送緩沖器被鎖定, 新的報文不能被寫入。一個正在等待的報文會從存儲器復制到發(fā)送緩沖器后, 置位命令寄存器TR 標志產(chǎn)生發(fā)送請求, 發(fā)送過程由SJA1000 獨立完成。 報文接收子程序只負責節(jié)點報文的接收?;赟JA1000 的報文接有兩種方式:中斷方式和查詢方式。為了保證接收報文的準確性, 選擇實時性較高的中斷方式。在中斷方式下, 如果SJA1000 已接收一個報文, 并且報文已通過驗收濾波器并放接收FIFO, 那么會產(chǎn)生一個接收中斷, 通知處理器有報文已接收。接收子程序就是完成響應這個中斷并把數(shù)據(jù)分類、解碼, 最后發(fā)送到相應的報文存儲器。 5 結束語 本文設計的基于CAN 總線在軌道車輛分布式控制系統(tǒng)經(jīng)過現(xiàn)場調(diào)試, 可以對驅動電機的運行速度、方向進行實時控制;電源的電壓、電流、溫度信號通過驅動節(jié)點傳送給監(jiān)控計算機;操作臺節(jié)點、驅動節(jié)點與監(jiān)控計算機之間的數(shù)據(jù)通信穩(wěn)定可靠; 可以通過參數(shù)設置模塊修改節(jié)點的地址和波特率。實驗表明了控制系統(tǒng)的適用性和可靠性, 開發(fā)過程中所提出的技術方案和實現(xiàn)方法可以在分布式監(jiān)控系統(tǒng)及工業(yè)底層監(jiān)控網(wǎng)絡的設計中推廣應用。 本文作者創(chuàng)新點: 在軌道車輛控制系統(tǒng)設計中采用CAN總線技術, 實現(xiàn)了多電機的分布式驅動控制; 并在驅動節(jié)點的軟/硬件設計中均采用了模塊化的結構, 縮短了設計開發(fā)周期。 |