郭少雄+杜珊珊
摘 要: CAN總線是一種廣泛應用于工業控制中的現場總線,AVR系列單片機作為一種微控制器,其應用也變的越來越廣泛。通過介紹CAN總線技術的特點,研究了CAN總線通信節點的設計方案,給出了具體的硬件設計方案和軟件流程,比較了CAN總線與RS 485總線在通信距離、實時性、可靠性及靈活性等方面的優缺點,并介紹了CAN總線通信在車站通信系統中的具體應用。通過實踐證明,CAN總線在車站通信系統中具有良好的實用價值,為鐵路信號系統的技術升級奠定了堅實的基礎。
關鍵詞: CAN總線; AT90CAN128; TJA1050; 車站通信系統; 通信節點
中圖分類號: TN911?34; TP336 文獻標識碼: A 文章編號: 1004?373X(2014)18?0086?05
Design of railway station communication system based on CAN?bus
GUO Shao?xiong, DU Shan?shan
(MOE Key Laboratory of Optoelectronic Technology and Intelligent Control, Lanzhou Jiaotong University, Lanzhou 730070, China)
Abstract: CAN?bus (controller area network bus) is a field bus which is widely used in industrial control. As a microcontroller, AVR SCM and its applications are becoming more and more widespread. The design scheme of CAN?bus communication node is studied by means of the characteristic introduction of CAN?bus technology. The specific hardware design scheme and software processes are offered in this paper. compares The advantages and disadvantages in the aspects of communication distance, real?time performance, reliability and flexibility between CAN?bus and RS?485 bus. The specific application of CAN?bus technology in the railway station communication system is introduced. The practical application proves that the CAN?bus has a good practical value in the railway station communication system, which lays a solid foundation for the technological upgrade of the railway signaling system.
Keywords: CAN?bus; AT90CAN128; TJA1050; railway station communication system; communication node
車站通信系統應用于鐵路車站,用以交互室內與室外的信息,實現行車指揮,保證站內列車或調車車列運行時不發生追尾、迎面相撞、側面沖突等事故。由于車站通信系統數據采集量大、實時性要求高和比較強糾錯要求,所以為了滿足以上條件,采用現場總線組成分布式控制系統,即用CAN總線作為通信總線對車站信號控制系統中的參數進行采集與控制,并通過車站通信系統進行傳輸和接收,滿足鐵路信號中的可靠性和安全性。
1 CAN總線概述
CAN是當今世界存在的40多種現場總線中的一種,它是德國博世公司(BOSCH公司)1986年提出的,用于解決汽車執行部件與內部測量之間的通信協議,后由ISO國際化組織認證成為標準串行通信協議。由于CAN總線技術先進、可靠性高、實時性強、功能完善、成本合理,已被廣泛應用到自動控制、電子、電力系統及安全監控等各領域的自動化控制系統中。其特點可以概括如下[1?4]:
(1) CAN是一種多主網絡,也就是說,CAN總線上的任何一個節點都可以向其他節點發送信息,不分主從,通信方式靈活。
(2) CAN節點設置了不同的優先級,保證高優先級的節點信息得到優先發送。
(3) CAN傳輸或者接收數據可采用一點與一點,一點與多點等方式。
(4) CAN節點數目前已經達到110個;有2 000多個標準格式的報文標識符,特別是CAN節點可對擴展格式報文標識符數目不給予界定。
(5) CAN的信息傳輸采用短幀格式,傳輸時間短,受干擾概率低,且每幀信息都有CRC校驗及其他檢錯措施,降低了數據傳輸的出錯率。
(6) CAN具有非破壞性,即同時有2個或2個以上節點向總線傳輸數據,先保證最高一級的節點數據的優先發送,待最先輸出的一級節點傳送完數據后,其余節點再重新繼續向總線傳輸數據。也就是說,最高優先級節點不受影響可以繼續信息傳輸,避免了總線沖突。
(7) CAN節點具有自身關閉與總線聯系的功能,以保證總線不因該節點錯誤而影響到其他節點的正常通信。因此,CAN具有較強的抗干擾能力。
(8) 5 Kb/s以下通信速率條件下,直接通信距離方面,CAN最遠可達10 km;通信距離最長40 m的條件下,通信速率方面,CAN最大可實現1 Mb/s。
(9) CAN總線的通信介質可采用雙絞線、同軸電纜和光導纖維,選擇靈活。
(10) CAN結構選取OSI模型中的物理層、數據鏈路層和應用層,方便完成對通信數據的成幀處理。
2 CAN總線通信節點硬件設計
CAN總線通信節點的框圖如圖1所示。
圖1 CAN總線通信節點系統框圖
由圖1可知,微控制器(帶CAN控制器)、光電隔離和CAN收發器組成CAN總線通信節點的硬件原理[5]。在設計中微控制器采用AT90CAN128,光電隔離芯片采用6N137,CAN收發器選用芯片TJA1050,而且單片機內部已集成CAN控制器,因此省略了CAN控制器。AT90CAN128是低功耗的8位單片機,采用先進的RISC 結構。特別要強調的是,CAN 控制器已經完全集成在本款單片機芯片里,并且芯片兼容擴展幀2.0B和CAN標準幀2.0A,在晶振頻率8 MHz條件下數據傳輸速率高達1 Mb/s。光電隔離芯片6N137通過把工業現場與控制器分開,提升系統的抗干擾能力。CAN收發器TJA1050的引腳和PCA82C250的引腳完全兼容[6]。CAN總線通信節點的硬件電路如圖2所示。
3 CAN總線通信節點軟件設計
要保證有效、實時地完成通信任務,在軟件上對CAN總線通信節點進行設計是很重要的環節,關鍵運行過程如圖3所示。本設計采用模塊化,下面對各模塊的內容分別進行了詳細闡述[6]。
圖2 CAN總線節點硬件原理圖
圖3 關鍵運行過程圖
3.1 CAN控制器初始化
指的是設置接收代碼寄存器、設置中斷允許寄存器和設置輸出控制寄存器等。初始化完成以后,CAN總線就可以進行數據的接收和發送。其初始化流程如圖4所示。
圖4 CAN控制器初始化流程圖
3.2 數據發送程序
數據的發送是通過CAN 控制器操作的,是從CAN控制器到CAN總線。首先,將要發送的數據存儲到CAN控制器發送緩沖區,然后將命令寄存器(CMR)中的“發送請求(TR)”標志置位,完成發送過程,最后釋放發送緩沖區。具體工作流程如圖5所示[7]。
圖5 數據發送程序流程圖
3.3 數據接收程序
首先,從CAN控制器接收緩沖區中取得數據后,將數據儲存在對應數據區,完成后讓出緩沖區。具體過程如圖6所示[8]。
圖6 數據接收程序流程圖
4 CAN總線在車站通信系統中的應用和設計
本設計以蘭州大成鐵路信號有限公司自主研發的、采用硬件表決的全電子計算機聯鎖系統為開發背景,用以實現聯鎖機與全電子執行機之間信號的雙向傳輸。CAN總線應用于鐵路車站通信系統的原理框圖如圖7所示[9?12]。
從圖7中可以看出,要實現對車站與室內之間的信息通信,車站通信系統需有以下幾部分:上位監控機,聯鎖機,維修機和全電子執行單元。
(1) 上位監控機是高性能、高可靠的工業控制計算機,主要完成操作命令的下發以及實時顯示接收的信息。
(2) 聯鎖機也是高性能、高可靠的工業控制計算機,它和CAN通信接口組成聯鎖主機單元,主要完成聯鎖邏輯運算以及對各種信息的處理,然后產生相關的輸出信息讓執行單元予以執行,其與上位監控機之間的通信是由以太網實現的。CAN通信接口是為了實現聯鎖機與CAN總線之間的物理連接,把聯鎖機掛接在CAN總線上,方便實現信息的交互。
(3) 維修機主要是監視上位監控機和聯鎖機之間的通信,獲取運行狀態數據并進行記錄,實時刷新界面顯示,而且將上位監控機的操作命令、聯鎖機處理的信息以及CAN通信情況實時的記錄,便于出現故障后的處理以及其他情況處理。
(4) 全電子執行單元包括道岔執行單元、信號機執行單元、軌道執行單元以及其他執行單元,主要完成對轉轍機、信號機、軌道電路及其他現場設備的控制和狀態采集。執行單元和聯鎖主機的通信是通過兩條獨立的CAN總線相連,代替了原來的RS 485總線。聯鎖主機將聯鎖命令根據規定的協議通過CAN總線下發給各個執行單元,各執行單元將兩條CAN總線接收的命令進行對比,當結果一致后則通過聯鎖命令來控制現場設備;同時采集現場設備的執行情況和狀態信息,并通過CAN總線傳送給聯鎖主機,通過這種方式來完成聯鎖主機與執行單元的雙向通信[13]。
(5) 執行單元和聯鎖主機之間用兩條獨立的CAN總線代替了RS 485總線,形成了分布式控制,提高了實時控制的效果,豐富了傳輸的控制信息,加強了通信的可靠性和實時傳輸效率,保證了車站通信系統的安全性和可靠性,為鐵路信號設備安全性的深入研究奠定了堅實的基礎。
圖7 應用于車站通信系統的原理框圖
5 結 語
首先CAN總線在低速以5 Kb/s傳輸時距離可達10 km,RS 485只能到1 219 m 左右;其二RS 485一旦壞一個節點,整個總線網絡就會癱瘓,CAN總線有CAN控制器,可以對總線任何錯誤進行檢測,當節點發生嚴重錯誤的情況下具有自動關閉輸出的功能;此外RS 485通信方式只能以主站輪詢的方式進行,實時性、可靠性較差,而CAN總線的數據通信具有抗干擾性強、安全性高、實時性強、功能完善和成本合理等特點,因此在車站通信系統中用CAN總線代替RS 485總線進行通信。實踐證明,CAN總線通信能實現很多優勢,如安全性高、實時性強、功能完善、成本合理、通信距離遠等,已成功的應用于大成公司的鐵路車站全電子通信系統中。
參考文獻
[1] 吳志玲,靳鴻,武耀艷.基于 CAN 總線的分布式測試系統節點設計[J].儀表技術與傳感器,2013(4):56?58.
[2] 葛新宇,黨建武.基于CAN總線的CBTC仿真測試系統數據結構設計[J].鐵道標準設計,2013(5):106?110.
[3] 朱悅涵,林立,邵明.基于 CAN 總線的智能節點設計[J].電子設計工程,2012,20(24):90?92.
[4] 邵玉華.基于SJA1000的CAN總線通信系統的設計[J].鐵道通信信號,2010,46(3):56?58.
[5] 陳應豪,羅飛,許玉格.基于AVR處理器at90can128的CAN總線應用[J].微處理機,2010(4):94?97.
[6] 王文海.基于AT90CAN128的CAN總線節點的實現方案[J].科技傳播,2011,42(5):208?209.
[7] 陳珍.基于CAN總線和無線的數據通信系統的設計與實現[D].上海:華東師范大學,2011.
[8] 張建文,馮林,李百余.CAN總線通信接口設計[J].東華理工大學學報,2010,33(3):293?296.
[9] 柳京京.分布式現場總線控制在鐵路信號系統中的應用[J].鐵道通信信號,2011,47(10):10?12.
[10] 蘇虎平,沈三民,劉文怡,等.基于冗余CAN總線的實時通信系統設計[J].自動化與儀表,2013(1):26?29.
[11] YANG Chun?jie, YAO Ji. The design of distributed control system based on CAN bus [J].Electronic and Mechanical Engineering and Information Technology, 2011, 8: 3956?3958.
[12] 馬龍珠.基于CAN總線的計算機聯鎖通信系統研究[J].電子世界,2012(5):22?24.
[13] XU Guangli, ZHANG Hao. Research and development for the communication interface conversion of Profibus and CAN bus [J]. Computer Application and System Modeling, 2010, 8: 66?68.
[14] ATMEL Corporation. AT90CAN128 [EB/OL]. [2010?05?07]. http:// www.waveshare.net/Shop.
[15] 邱浩淼.基于CAN總線的在線更新機制的設計與實現[J].現代電子技術,2013,36(12):78?80.
[16] 劉向明,方建安.CAN總線網絡的實時性研究和改進[J].現代電子技術,2011,34(22):46?49.
[17] 劉培國,周希偉,劉志勇.CAN總線智能檢測儀的設計與實現[J].現代電子技術,2012,35(18):44?46.
參考文獻
[1] 吳志玲,靳鴻,武耀艷.基于 CAN 總線的分布式測試系統節點設計[J].儀表技術與傳感器,2013(4):56?58.
[2] 葛新宇,黨建武.基于CAN總線的CBTC仿真測試系統數據結構設計[J].鐵道標準設計,2013(5):106?110.
[3] 朱悅涵,林立,邵明.基于 CAN 總線的智能節點設計[J].電子設計工程,2012,20(24):90?92.
[4] 邵玉華.基于SJA1000的CAN總線通信系統的設計[J].鐵道通信信號,2010,46(3):56?58.
[5] 陳應豪,羅飛,許玉格.基于AVR處理器at90can128的CAN總線應用[J].微處理機,2010(4):94?97.
[6] 王文海.基于AT90CAN128的CAN總線節點的實現方案[J].科技傳播,2011,42(5):208?209.
[7] 陳珍.基于CAN總線和無線的數據通信系統的設計與實現[D].上海:華東師范大學,2011.
[8] 張建文,馮林,李百余.CAN總線通信接口設計[J].東華理工大學學報,2010,33(3):293?296.
[9] 柳京京.分布式現場總線控制在鐵路信號系統中的應用[J].鐵道通信信號,2011,47(10):10?12.
[10] 蘇虎平,沈三民,劉文怡,等.基于冗余CAN總線的實時通信系統設計[J].自動化與儀表,2013(1):26?29.
[11] YANG Chun?jie, YAO Ji. The design of distributed control system based on CAN bus [J].Electronic and Mechanical Engineering and Information Technology, 2011, 8: 3956?3958.
[12] 馬龍珠.基于CAN總線的計算機聯鎖通信系統研究[J].電子世界,2012(5):22?24.
[13] XU Guangli, ZHANG Hao. Research and development for the communication interface conversion of Profibus and CAN bus [J]. Computer Application and System Modeling, 2010, 8: 66?68.
[14] ATMEL Corporation. AT90CAN128 [EB/OL]. [2010?05?07]. http:// www.waveshare.net/Shop.
[15] 邱浩淼.基于CAN總線的在線更新機制的設計與實現[J].現代電子技術,2013,36(12):78?80.
[16] 劉向明,方建安.CAN總線網絡的實時性研究和改進[J].現代電子技術,2011,34(22):46?49.
[17] 劉培國,周希偉,劉志勇.CAN總線智能檢測儀的設計與實現[J].現代電子技術,2012,35(18):44?46.
參考文獻
[1] 吳志玲,靳鴻,武耀艷.基于 CAN 總線的分布式測試系統節點設計[J].儀表技術與傳感器,2013(4):56?58.
[2] 葛新宇,黨建武.基于CAN總線的CBTC仿真測試系統數據結構設計[J].鐵道標準設計,2013(5):106?110.
[3] 朱悅涵,林立,邵明.基于 CAN 總線的智能節點設計[J].電子設計工程,2012,20(24):90?92.
[4] 邵玉華.基于SJA1000的CAN總線通信系統的設計[J].鐵道通信信號,2010,46(3):56?58.
[5] 陳應豪,羅飛,許玉格.基于AVR處理器at90can128的CAN總線應用[J].微處理機,2010(4):94?97.
[6] 王文海.基于AT90CAN128的CAN總線節點的實現方案[J].科技傳播,2011,42(5):208?209.
[7] 陳珍.基于CAN總線和無線的數據通信系統的設計與實現[D].上海:華東師范大學,2011.
[8] 張建文,馮林,李百余.CAN總線通信接口設計[J].東華理工大學學報,2010,33(3):293?296.
[9] 柳京京.分布式現場總線控制在鐵路信號系統中的應用[J].鐵道通信信號,2011,47(10):10?12.
[10] 蘇虎平,沈三民,劉文怡,等.基于冗余CAN總線的實時通信系統設計[J].自動化與儀表,2013(1):26?29.
[11] YANG Chun?jie, YAO Ji. The design of distributed control system based on CAN bus [J].Electronic and Mechanical Engineering and Information Technology, 2011, 8: 3956?3958.
[12] 馬龍珠.基于CAN總線的計算機聯鎖通信系統研究[J].電子世界,2012(5):22?24.
[13] XU Guangli, ZHANG Hao. Research and development for the communication interface conversion of Profibus and CAN bus [J]. Computer Application and System Modeling, 2010, 8: 66?68.
[14] ATMEL Corporation. AT90CAN128 [EB/OL]. [2010?05?07]. http:// www.waveshare.net/Shop.
[15] 邱浩淼.基于CAN總線的在線更新機制的設計與實現[J].現代電子技術,2013,36(12):78?80.
[16] 劉向明,方建安.CAN總線網絡的實時性研究和改進[J].現代電子技術,2011,34(22):46?49.
[17] 劉培國,周希偉,劉志勇.CAN總線智能檢測儀的設計與實現[J].現代電子技術,2012,35(18):44?46.