胡飛龍
(上海鐵路通信有限公司,上海 200436)
CAN總線通信原理及其在ZPW-2000A軌道電路系統中的應用
胡飛龍
(上海鐵路通信有限公司,上海 200436)
在ZPW-2000A軌道電路通信系統中,采用CAN總線結構,CAN總線有著較強的糾錯能力和抗干擾能力,并且支持差分收發(fā),因此比較適合運用于鐵路運行環(huán)境,詳細了解CAN系統的運行原理和工作機制有助于更好的運用于實際電路。
ZPW-2000A;CAN控制器;CAN驅動器;報文
控制器局域網絡(Controller Area Network,CAN),具有高性能、高可靠性、易開發(fā)和低成本等特性,通信介質可以是雙絞線、同軸電纜或光導纖維,通信速率可達1 Mbit/s,理論傳輸距離最長可達10 km。CAN總線的一個最大特點是廢除傳統的站地址編碼,取而代之是以對通信數據塊進行編碼。由于CAN總線具有較強的糾錯能力,支持差分收發(fā),因而適合高干擾環(huán)境,基于上述優(yōu)點,ZPW-2000A軌道電路系統的數據通信也是基于CAN總線架構。
ZPW-2000A軌道電路系統采用CAN總線的經典電路設計,由于CAN協議規(guī)定了數據通信的格式和應用分層,因此在開發(fā)時只需遵循其協議規(guī)定進行程序編寫,CAN總線的硬件電路設計實現主要包含兩個方面:CAN控制器和CAN收發(fā)器,其余還包含傳輸介質以及總線拓撲。
2.1CAN控制器
CAN控制器是規(guī)定通信鏈路層的功能,將需要傳遞的信息通過編碼后放入數據報文中,傳遞到網絡,接收器在總線網絡中接收自身需要的報文。在ZPW-2000A軌道電路信號系統中,將需要傳遞的信息通過應用層的協議規(guī)定進行編碼,然后經CAN總線控制器發(fā)送到網絡,如圖1所示。

圖1 CAN總線在移頻信號中的應用
CAN控制器提供與CPU的數據接口,CPU通過數據接口控制其工作模式、工作狀態(tài)、報文發(fā)送和報文接收,從而實現CAN協議中復雜的鏈路層功能。
2.1.1數據傳輸
CAN總線主要利用報文實現消息傳輸,報文有4種格式,由這4種幀表示和控制了整個報文的傳輸,幀由不同內容組成,主要包含幀起始、仲裁域、控制域、數據域等。標準格式和擴展格式如圖2所示。
起始幀(SOF)用于表示數據的開始,只有1位且由一個“顯性”位組成,仲裁域用于表達數據幀的優(yōu)先級,遠程發(fā)送請求位用于表示所發(fā)數據幀為數據幀還是遠程幀。當該位為顯性是表示該幀為數據幀,相反則為遠程幀,標示符擴展位(IDE)標示該幀為標準格式還是擴展格式,顯性位表示標準幀,相反為擴展幀??刂朴蛴?位保留位和6位數據長度標識位組成,保留位在標準幀中,由r0組成,在擴展幀中由r1和r0組成,數據長度標識位由4位組成,采用二進制編碼表示。
數據域由8個字節(jié)組成,共64位,CRC域全稱是循環(huán)冗余校驗碼(Cyclic Redundancy Check)域,包含兩部分:CRC序列和CRC界定符。CRC序列通過對發(fā)送的數據進行校驗產生,CRC界定符為一個單獨的隱形位。應答域包含應答位和應答定界符,當接收器正確接收有效報文時,該接收器會在應答位期間發(fā)送兩個顯性電平位來通知發(fā)送器。所有接收到匹配的CRC序列節(jié)點會在應答位期間,用一個顯性位卸載發(fā)送器的隱形位作為回應。最后是幀的結束,幀結束由7個隱形位組成,表述幀的結束。
2.1.2CAN控制器SJA1000
在ZPW-2000A軌道電路系統中,使用的CAN控制器是SJA1000,SJA1000是Philips公司推出的一種獨立的CAN控制器,包含兩種操作模式Basic CAN和PeliCAN,而PeliCAN支持CAN2.0B協議,其內部主要包含7大模塊,實現數據的轉化發(fā)送和接收。SJA1000在正常發(fā)送數據幀前,需要初始化,初始化的步驟如圖3所示。

圖2 幀格式

圖3 SJA1000初始化流程圖
先關閉中斷源,然后進入復位模式,設再置模式寄存器(MOD)的地址,其中MOD.0為復位模式控制位,當該位為1時,處于復位狀態(tài),時鐘分頻寄存器(CDR)的CDR.4總是默認為0,此位不能被寫入,只能讀取。CD.0-CD.2可以無限制訪問,這些位主要用于定義外部CLKOUT引腳的頻率。CDR.7用于定義CAN的模式,如果CDR.7=0,CAN控制器工作在BasicCAN模式,否則,工作在PeliCAN模式,且此位在復位模式下才可以寫入。
總線定時寄存器0(BTRO)主要設置波特率和同步跳轉寬度,使用時可根據自己的要求進行設置??偩€定時寄存器(BTR1)定義每個周期的長度、采樣點的位置和每個采樣點的數目。
輸出控制寄存器(OCR)的功能是通過程序控制不同配置的輸出,寄存器只有在復位模式下才可以被讀/寫,在PeliCAN模式下,此寄存器只能被讀取,在BasicCAN模式下總是設置為0XFF。
2.2CAN驅動器
CAN驅動器是CAN控制器與物理傳輸通道的接口電路,為CAN總線提供差動發(fā)送和接收功能,實現電平轉化。CAN驅動器根據工作不同的物理層可以分為高速CAN總線驅動器和容錯CAN總線驅動器,且兩者不能工作在同一個CAN網絡中,在ZPW-2000A軌道電路中,采用高速CAN總線驅動器PCA82C250。
PCA82C250最高速率可達1 Mbit/s、可連接110個節(jié)點。具有抗瞬間干擾和總線保護能力,控制斜率可降低射頻干擾(RFI),采用差分接收,可以抗擊范圍很寬的共模干擾和電磁干擾(EMI),PCA82C250的外形如圖4所示。
CAN驅動器通過串行數據輸出線TX和串行數據輸入線RX連接到CAN控制器上,CAN驅動器通過有差動發(fā)送和接收功能的兩個總線終端CANH 和CANL連接到總線電纜,輸入Rs用于模式控制,參考電壓輸出VREF的輸出電壓是額定Vcc的0.5倍,其中收發(fā)器的額定電源電壓是5 V。

圖4 PCA82C250外形圖
ZPW-2000A軌道電路系統使用的CAN控制器通過接口端和控制端與CPU連接,接收CPU的控制和信息傳輸,CAN收發(fā)端通過高光耦和CAN驅動器連接,CAN驅動器通過外圍電路與CAN網絡連接,構成完整的傳輸通路,如圖5所示。

圖5 CAN經典電路
3.1ZPW-2000A軌道電路系統中的CAN總線外圍電路構成
CAN外圍電路設計為信息傳遞提供了必要的硬件電路,主要包含控制器外圍電路和驅動器外圍電路。
3.1.1控制器外圍電路
控制器外圍電路主要有振蕩電路和隔離電路,如果需要和FPGA相連時,還應包含電平轉化電路,振蕩電路為控制器正常工作提供時鐘信號,SJA1000的最高時鐘可達24 MHz,一般選用16 MHz晶振,在晶振的輸入輸出端一般連接一個10 MΩ的電阻,其作用是產生負反饋,確保晶振內部兩端的運算放大器工作在高增益的線性區(qū),使晶振能更好的起振。隔離電路主要用于增強系統抗干擾能力,通常由高通光耦組成,在ZPW-2000A軌道電路系統中選用6N137。6N137是用于單通道的高速光耦,其內部由一個850 nm波長的LED和一個集成檢測器組成,檢測器由一個光敏二極管、高增益線性運放器及一個肖特基鉗位集電極開路的三極管組成。具有溫度、電流和電壓補償功能,高的輸入輸出隔離,傳輸延遲時間短,典型值僅為48 ns,已接近TTL電路傳輸延遲時間的水平。選用6N137基本不會影響系統的傳輸速度和傳輸距離,同時如果SJA1000和FPGA相連,經常采用74LVC164245電平轉換器完成CAN總線5 V TTL電平向3.3 V FPGA I/O電平的轉換。
3.1.2驅動器外圍電路
驅動器外圍電路包含模式控制電阻、限流電阻、濾波電容以及過壓保護,雖然驅動器82C250有電流限制功能,但是為了保護82C250免受沖擊,還需在其CANH和CANL端上各串聯一個5 Ω電阻用于限制電流,同時還需在這兩端與地之間分別增加30 pF的電容用于消除總線上的高頻干擾,防止電磁輻射,電源和地之間也需就近增加一個0.1 uF的去耦電容,對于總線不穩(wěn)定的系統參考設計,還建議在總線上分別反接兩個6.8 V瞬態(tài)抑制二極管用于總線過壓保護。工作模式控制電阻連接在Rs端,用于控制驅動器的工作模式。驅動器的工作模式有3種:高速模式、斜率模式和準備模式,工作模式的調節(jié)通過外接控制電阻Rext來設置,3種模式滿足表1設置條件。

表1 82C250工作模式表
3.1.3傳輸介質
ZPW-2000A軌道電路系統使用的傳輸介質是雙絞線,差分傳播能更好的抑制共模誤差。但是,使用雙絞線會在傳播過程中出現信號的近端串擾和信號的反射。
由于瞬時阻抗不均勻導致信號發(fā)生反射,給信號的傳輸帶來干擾。ZPW-2000A軌道電路系統經常會遇到很多因素導致信號反射,如忘記安裝終端電阻導致末端開路,或者因為走線槽很窄導致走線的彎角過小等。反射系數的定義:

其中,Z0為變化前的阻抗,Z1為變化后的阻抗。
開路時,如果系統中傳輸電壓為3.5 V,傳輸阻抗為100 Ω,反射系數ρ≈1,那么反射點的電壓為7 V。同樣情況,短路時反射系數ρ=-1,反射點電壓為0 V。
由于反射現象的存在,信號傳播路徑中阻抗發(fā)生變化的點,其電壓不再是原來傳輸的電壓。這種反射電壓會改變信號的波形,從而可能會引起信號完整性問題。
3.2工作原理
CAN控制器輸出串行數據流通過高速光耦到CAN驅動器的TXD的引腳,信號從高通光耦6N137的2腳和3腳輸入,點亮發(fā)光二極管。發(fā)光二極管經過光通道傳到光敏二極管,反向偏置的光敏管得到光照后導通,使輸入的電流轉換為輸出電壓,送到輸出端的與門電路的一個輸入端。與門的另一個輸入為使能端7腳,此時使能端為高電平,通過與門后輸出為高電平,后經輸出三極管反向光耦輸出為低電平。光耦的輸入端發(fā)光二極管正向電流為6.5~15 mA,正向壓降為1.2~1.7 V,輸入VCC為5 V時,那么R1和R6的取值等于(5 V-1.5 V)/10 mA =350 Ω左右。因為發(fā)光二極管導通電流對VCC有很大的沖擊,造成相當大的尖峰脈沖噪聲,而分布電感會使地線吸收不了這種噪聲,所以,通常將此電阻的值取大,電路中取值為390 Ω。信號通過光耦的6腳輸出到CAN驅動器中,6腳為集電極開路輸出端,通過上拉電阻R5輸出。
CAN驅動器有3種工作模式分別是高速式、斜率式和準備式,通過Rs引腳進行控制。當信號傳遞給CAN驅動器PCA82C250后,經驅動器將控制器傳輸來的串行信號變化為雙線驅動模式的差分信號。雙線通常稱為CANH和CANL,即CAN高和CAN低,當CANH對地為3.5 V,CANL對地為1.5 V時,此時總線狀態(tài)成顯性標記為0;當CANH對地為2.5 V,CANL對地為2.5 V時,此時總線狀態(tài)成隱性標記為1。
CAN驅動器將差分驅動信號送入終端組成的網絡中,每個終端通過接收和發(fā)送消息實現通信,構成了基本通信結構。
3.3ZPW-2000A軌道電路系統中的CAN總線拓撲結構設計
ZPW-2000A軌道電路系統的CAN總線拓撲結構一般采用線性結構,ISO11898中定義了單線結構拓撲系統的連接方式,在單線拓撲中采用干線和支線的連接方式,干線作為信息的傳輸主干道,各個節(jié)點通過支線連接在干線上,干線形成閉合連接,兩端需接終端電阻,如圖6所示。

圖6 CAN總線的線性拓撲結構
線性網絡中的干線長度最大為10 km,支線最長為6 m,支線的選擇最好越短越好,線性網絡的擴展通過中繼器連接在干線上,如圖7所示。

圖7 線性網絡的擴展
3.4ZPW-2000A軌道電路系統中的CAN總線接口防護設計
ZPW-2000A軌道電路系統中很多設備處于室外,并且傳輸電壓很低,容易受到外界干擾,因此,對于接口的防護是不可或缺的,不僅需要在總線上增加保護器件,當室外發(fā)生雷擊或其他強烈干擾時,巨大的能量如果來不及泄放,就會損壞收發(fā)器。為了防止雷電等大電流對收發(fā)器的損壞,終端的總線接口增加防雷管和TVS作總線保護。當受到雷擊時,并接在總線上的防雷管將能量泄放掉。但是一般情況下,防雷管的反應速度慢,鉗位電壓高(約為800 V),因此,在防雷管后增加TVS和PTC電阻,TVS能夠將總線壓差鉗制在6.8 V以下,這樣當受到干擾時,TVS能較快地起到保護作用;而PTC電阻能保護收發(fā)器免受過流的沖擊。在CANH和CANL與地之間各接一個30 pF的小電容,可以起到濾除總線上的高頻干擾和防電磁輻射的作用。
本文詳細闡述CAN總線原理及其在軌道電路系統中的應用。CAN總線成熟的技術和高效的性能被成功運用于ZPW-2000A軌道電路系統,確保了通信系統的可靠性,并保證了列車運行的安全性。
[1]Howard Johnson,Martin Graham.高速信號傳輸[M].鄧暉譯.北京:電子工業(yè)出版社,2012:327-330.
[2]李真花,崔健.CAN總線輕松入門與實[M].北京:北京航空航天大學出版社,2011:14-21.
In the communication system of ZPW2000A track circuit system, CAN bus structure is used. Because CAN bus has strong capabilities of error correction and anti-interference and supports the differential transmit-receive, it is very suitable for the application in railways. The paper introduces the operational principles and working mechanism for better use of CAN bus in ZPW-2000A track circuit system.
ZPW2000A; CAN controller; CAN drive; message
10.3969/j.issn.1673-4440.2016.04.027
2016-02-18)