胡飛龍
(上海鐵路通信有限公司,上海 200436)
CAN總線通信原理及其在ZPW-2000A軌道電路系統(tǒng)中的應(yīng)用
胡飛龍
(上海鐵路通信有限公司,上海 200436)
在ZPW-2000A軌道電路通信系統(tǒng)中,采用CAN總線結(jié)構(gòu),CAN總線有著較強(qiáng)的糾錯能力和抗干擾能力,并且支持差分收發(fā),因此比較適合運(yùn)用于鐵路運(yùn)行環(huán)境,詳細(xì)了解CAN系統(tǒng)的運(yùn)行原理和工作機(jī)制有助于更好的運(yùn)用于實(shí)際電路。
ZPW-2000A;CAN控制器;CAN驅(qū)動器;報(bào)文
控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN),具有高性能、高可靠性、易開發(fā)和低成本等特性,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維,通信速率可達(dá)1 Mbit/s,理論傳輸距離最長可達(dá)10 km。CAN總線的一個最大特點(diǎn)是廢除傳統(tǒng)的站地址編碼,取而代之是以對通信數(shù)據(jù)塊進(jìn)行編碼。由于CAN總線具有較強(qiáng)的糾錯能力,支持差分收發(fā),因而適合高干擾環(huán)境,基于上述優(yōu)點(diǎn),ZPW-2000A軌道電路系統(tǒng)的數(shù)據(jù)通信也是基于CAN總線架構(gòu)。
ZPW-2000A軌道電路系統(tǒng)采用CAN總線的經(jīng)典電路設(shè)計(jì),由于CAN協(xié)議規(guī)定了數(shù)據(jù)通信的格式和應(yīng)用分層,因此在開發(fā)時只需遵循其協(xié)議規(guī)定進(jìn)行程序編寫,CAN總線的硬件電路設(shè)計(jì)實(shí)現(xiàn)主要包含兩個方面:CAN控制器和CAN收發(fā)器,其余還包含傳輸介質(zhì)以及總線拓?fù)洹?/p>
2.1CAN控制器
CAN控制器是規(guī)定通信鏈路層的功能,將需要傳遞的信息通過編碼后放入數(shù)據(jù)報(bào)文中,傳遞到網(wǎng)絡(luò),接收器在總線網(wǎng)絡(luò)中接收自身需要的報(bào)文。在ZPW-2000A軌道電路信號系統(tǒng)中,將需要傳遞的信息通過應(yīng)用層的協(xié)議規(guī)定進(jìn)行編碼,然后經(jīng)CAN總線控制器發(fā)送到網(wǎng)絡(luò),如圖1所示。
圖1 CAN總線在移頻信號中的應(yīng)用
CAN控制器提供與CPU的數(shù)據(jù)接口,CPU通過數(shù)據(jù)接口控制其工作模式、工作狀態(tài)、報(bào)文發(fā)送和報(bào)文接收,從而實(shí)現(xiàn)CAN協(xié)議中復(fù)雜的鏈路層功能。
2.1.1數(shù)據(jù)傳輸
CAN總線主要利用報(bào)文實(shí)現(xiàn)消息傳輸,報(bào)文有4種格式,由這4種幀表示和控制了整個報(bào)文的傳輸,幀由不同內(nèi)容組成,主要包含幀起始、仲裁域、控制域、數(shù)據(jù)域等。標(biāo)準(zhǔn)格式和擴(kuò)展格式如圖2所示。
起始幀(SOF)用于表示數(shù)據(jù)的開始,只有1位且由一個“顯性”位組成,仲裁域用于表達(dá)數(shù)據(jù)幀的優(yōu)先級,遠(yuǎn)程發(fā)送請求位用于表示所發(fā)數(shù)據(jù)幀為數(shù)據(jù)幀還是遠(yuǎn)程幀。當(dāng)該位為顯性是表示該幀為數(shù)據(jù)幀,相反則為遠(yuǎn)程幀,標(biāo)示符擴(kuò)展位(IDE)標(biāo)示該幀為標(biāo)準(zhǔn)格式還是擴(kuò)展格式,顯性位表示標(biāo)準(zhǔn)幀,相反為擴(kuò)展幀??刂朴蛴?位保留位和6位數(shù)據(jù)長度標(biāo)識位組成,保留位在標(biāo)準(zhǔn)幀中,由r0組成,在擴(kuò)展幀中由r1和r0組成,數(shù)據(jù)長度標(biāo)識位由4位組成,采用二進(jìn)制編碼表示。
數(shù)據(jù)域由8個字節(jié)組成,共64位,CRC域全稱是循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check)域,包含兩部分:CRC序列和CRC界定符。CRC序列通過對發(fā)送的數(shù)據(jù)進(jìn)行校驗(yàn)產(chǎn)生,CRC界定符為一個單獨(dú)的隱形位。應(yīng)答域包含應(yīng)答位和應(yīng)答定界符,當(dāng)接收器正確接收有效報(bào)文時,該接收器會在應(yīng)答位期間發(fā)送兩個顯性電平位來通知發(fā)送器。所有接收到匹配的CRC序列節(jié)點(diǎn)會在應(yīng)答位期間,用一個顯性位卸載發(fā)送器的隱形位作為回應(yīng)。最后是幀的結(jié)束,幀結(jié)束由7個隱形位組成,表述幀的結(jié)束。
2.1.2CAN控制器SJA1000
在ZPW-2000A軌道電路系統(tǒng)中,使用的CAN控制器是SJA1000,SJA1000是Philips公司推出的一種獨(dú)立的CAN控制器,包含兩種操作模式Basic CAN和PeliCAN,而PeliCAN支持CAN2.0B協(xié)議,其內(nèi)部主要包含7大模塊,實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)化發(fā)送和接收。SJA1000在正常發(fā)送數(shù)據(jù)幀前,需要初始化,初始化的步驟如圖3所示。
圖2 幀格式
圖3 SJA1000初始化流程圖
先關(guān)閉中斷源,然后進(jìn)入復(fù)位模式,設(shè)再置模式寄存器(MOD)的地址,其中MOD.0為復(fù)位模式控制位,當(dāng)該位為1時,處于復(fù)位狀態(tài),時鐘分頻寄存器(CDR)的CDR.4總是默認(rèn)為0,此位不能被寫入,只能讀取。CD.0-CD.2可以無限制訪問,這些位主要用于定義外部CLKOUT引腳的頻率。CDR.7用于定義CAN的模式,如果CDR.7=0,CAN控制器工作在BasicCAN模式,否則,工作在PeliCAN模式,且此位在復(fù)位模式下才可以寫入。
總線定時寄存器0(BTRO)主要設(shè)置波特率和同步跳轉(zhuǎn)寬度,使用時可根據(jù)自己的要求進(jìn)行設(shè)置??偩€定時寄存器(BTR1)定義每個周期的長度、采樣點(diǎn)的位置和每個采樣點(diǎn)的數(shù)目。
輸出控制寄存器(OCR)的功能是通過程序控制不同配置的輸出,寄存器只有在復(fù)位模式下才可以被讀/寫,在PeliCAN模式下,此寄存器只能被讀取,在BasicCAN模式下總是設(shè)置為0XFF。
2.2CAN驅(qū)動器
CAN驅(qū)動器是CAN控制器與物理傳輸通道的接口電路,為CAN總線提供差動發(fā)送和接收功能,實(shí)現(xiàn)電平轉(zhuǎn)化。CAN驅(qū)動器根據(jù)工作不同的物理層可以分為高速CAN總線驅(qū)動器和容錯CAN總線驅(qū)動器,且兩者不能工作在同一個CAN網(wǎng)絡(luò)中,在ZPW-2000A軌道電路中,采用高速CAN總線驅(qū)動器PCA82C250。
PCA82C250最高速率可達(dá)1 Mbit/s、可連接110個節(jié)點(diǎn)。具有抗瞬間干擾和總線保護(hù)能力,控制斜率可降低射頻干擾(RFI),采用差分接收,可以抗擊范圍很寬的共模干擾和電磁干擾(EMI),PCA82C250的外形如圖4所示。
CAN驅(qū)動器通過串行數(shù)據(jù)輸出線TX和串行數(shù)據(jù)輸入線RX連接到CAN控制器上,CAN驅(qū)動器通過有差動發(fā)送和接收功能的兩個總線終端CANH 和CANL連接到總線電纜,輸入Rs用于模式控制,參考電壓輸出VREF的輸出電壓是額定Vcc的0.5倍,其中收發(fā)器的額定電源電壓是5 V。
圖4 PCA82C250外形圖
ZPW-2000A軌道電路系統(tǒng)使用的CAN控制器通過接口端和控制端與CPU連接,接收CPU的控制和信息傳輸,CAN收發(fā)端通過高光耦和CAN驅(qū)動器連接,CAN驅(qū)動器通過外圍電路與CAN網(wǎng)絡(luò)連接,構(gòu)成完整的傳輸通路,如圖5所示。
圖5 CAN經(jīng)典電路
3.1ZPW-2000A軌道電路系統(tǒng)中的CAN總線外圍電路構(gòu)成
CAN外圍電路設(shè)計(jì)為信息傳遞提供了必要的硬件電路,主要包含控制器外圍電路和驅(qū)動器外圍電路。
3.1.1控制器外圍電路
控制器外圍電路主要有振蕩電路和隔離電路,如果需要和FPGA相連時,還應(yīng)包含電平轉(zhuǎn)化電路,振蕩電路為控制器正常工作提供時鐘信號,SJA1000的最高時鐘可達(dá)24 MHz,一般選用16 MHz晶振,在晶振的輸入輸出端一般連接一個10 MΩ的電阻,其作用是產(chǎn)生負(fù)反饋,確保晶振內(nèi)部兩端的運(yùn)算放大器工作在高增益的線性區(qū),使晶振能更好的起振。隔離電路主要用于增強(qiáng)系統(tǒng)抗干擾能力,通常由高通光耦組成,在ZPW-2000A軌道電路系統(tǒng)中選用6N137。6N137是用于單通道的高速光耦,其內(nèi)部由一個850 nm波長的LED和一個集成檢測器組成,檢測器由一個光敏二極管、高增益線性運(yùn)放器及一個肖特基鉗位集電極開路的三極管組成。具有溫度、電流和電壓補(bǔ)償功能,高的輸入輸出隔離,傳輸延遲時間短,典型值僅為48 ns,已接近TTL電路傳輸延遲時間的水平。選用6N137基本不會影響系統(tǒng)的傳輸速度和傳輸距離,同時如果SJA1000和FPGA相連,經(jīng)常采用74LVC164245電平轉(zhuǎn)換器完成CAN總線5 V TTL電平向3.3 V FPGA I/O電平的轉(zhuǎn)換。
3.1.2驅(qū)動器外圍電路
驅(qū)動器外圍電路包含模式控制電阻、限流電阻、濾波電容以及過壓保護(hù),雖然驅(qū)動器82C250有電流限制功能,但是為了保護(hù)82C250免受沖擊,還需在其CANH和CANL端上各串聯(lián)一個5 Ω電阻用于限制電流,同時還需在這兩端與地之間分別增加30 pF的電容用于消除總線上的高頻干擾,防止電磁輻射,電源和地之間也需就近增加一個0.1 uF的去耦電容,對于總線不穩(wěn)定的系統(tǒng)參考設(shè)計(jì),還建議在總線上分別反接兩個6.8 V瞬態(tài)抑制二極管用于總線過壓保護(hù)。工作模式控制電阻連接在Rs端,用于控制驅(qū)動器的工作模式。驅(qū)動器的工作模式有3種:高速模式、斜率模式和準(zhǔn)備模式,工作模式的調(diào)節(jié)通過外接控制電阻Rext來設(shè)置,3種模式滿足表1設(shè)置條件。
表1 82C250工作模式表
3.1.3傳輸介質(zhì)
ZPW-2000A軌道電路系統(tǒng)使用的傳輸介質(zhì)是雙絞線,差分傳播能更好的抑制共模誤差。但是,使用雙絞線會在傳播過程中出現(xiàn)信號的近端串?dāng)_和信號的反射。
由于瞬時阻抗不均勻?qū)е滦盘柊l(fā)生反射,給信號的傳輸帶來干擾。ZPW-2000A軌道電路系統(tǒng)經(jīng)常會遇到很多因素導(dǎo)致信號反射,如忘記安裝終端電阻導(dǎo)致末端開路,或者因?yàn)樽呔€槽很窄導(dǎo)致走線的彎角過小等。反射系數(shù)的定義:
其中,Z0為變化前的阻抗,Z1為變化后的阻抗。
開路時,如果系統(tǒng)中傳輸電壓為3.5 V,傳輸阻抗為100 Ω,反射系數(shù)ρ≈1,那么反射點(diǎn)的電壓為7 V。同樣情況,短路時反射系數(shù)ρ=-1,反射點(diǎn)電壓為0 V。
由于反射現(xiàn)象的存在,信號傳播路徑中阻抗發(fā)生變化的點(diǎn),其電壓不再是原來傳輸?shù)碾妷?。這種反射電壓會改變信號的波形,從而可能會引起信號完整性問題。
3.2工作原理
CAN控制器輸出串行數(shù)據(jù)流通過高速光耦到CAN驅(qū)動器的TXD的引腳,信號從高通光耦6N137的2腳和3腳輸入,點(diǎn)亮發(fā)光二極管。發(fā)光二極管經(jīng)過光通道傳到光敏二極管,反向偏置的光敏管得到光照后導(dǎo)通,使輸入的電流轉(zhuǎn)換為輸出電壓,送到輸出端的與門電路的一個輸入端。與門的另一個輸入為使能端7腳,此時使能端為高電平,通過與門后輸出為高電平,后經(jīng)輸出三極管反向光耦輸出為低電平。光耦的輸入端發(fā)光二極管正向電流為6.5~15 mA,正向壓降為1.2~1.7 V,輸入VCC為5 V時,那么R1和R6的取值等于(5 V-1.5 V)/10 mA =350 Ω左右。因?yàn)榘l(fā)光二極管導(dǎo)通電流對VCC有很大的沖擊,造成相當(dāng)大的尖峰脈沖噪聲,而分布電感會使地線吸收不了這種噪聲,所以,通常將此電阻的值取大,電路中取值為390 Ω。信號通過光耦的6腳輸出到CAN驅(qū)動器中,6腳為集電極開路輸出端,通過上拉電阻R5輸出。
CAN驅(qū)動器有3種工作模式分別是高速式、斜率式和準(zhǔn)備式,通過Rs引腳進(jìn)行控制。當(dāng)信號傳遞給CAN驅(qū)動器PCA82C250后,經(jīng)驅(qū)動器將控制器傳輸來的串行信號變化為雙線驅(qū)動模式的差分信號。雙線通常稱為CANH和CANL,即CAN高和CAN低,當(dāng)CANH對地為3.5 V,CANL對地為1.5 V時,此時總線狀態(tài)成顯性標(biāo)記為0;當(dāng)CANH對地為2.5 V,CANL對地為2.5 V時,此時總線狀態(tài)成隱性標(biāo)記為1。
CAN驅(qū)動器將差分驅(qū)動信號送入終端組成的網(wǎng)絡(luò)中,每個終端通過接收和發(fā)送消息實(shí)現(xiàn)通信,構(gòu)成了基本通信結(jié)構(gòu)。
3.3ZPW-2000A軌道電路系統(tǒng)中的CAN總線拓?fù)浣Y(jié)構(gòu)設(shè)計(jì)
ZPW-2000A軌道電路系統(tǒng)的CAN總線拓?fù)浣Y(jié)構(gòu)一般采用線性結(jié)構(gòu),ISO11898中定義了單線結(jié)構(gòu)拓?fù)湎到y(tǒng)的連接方式,在單線拓?fù)渲胁捎酶删€和支線的連接方式,干線作為信息的傳輸主干道,各個節(jié)點(diǎn)通過支線連接在干線上,干線形成閉合連接,兩端需接終端電阻,如圖6所示。
圖6 CAN總線的線性拓?fù)浣Y(jié)構(gòu)
線性網(wǎng)絡(luò)中的干線長度最大為10 km,支線最長為6 m,支線的選擇最好越短越好,線性網(wǎng)絡(luò)的擴(kuò)展通過中繼器連接在干線上,如圖7所示。
圖7 線性網(wǎng)絡(luò)的擴(kuò)展
3.4ZPW-2000A軌道電路系統(tǒng)中的CAN總線接口防護(hù)設(shè)計(jì)
ZPW-2000A軌道電路系統(tǒng)中很多設(shè)備處于室外,并且傳輸電壓很低,容易受到外界干擾,因此,對于接口的防護(hù)是不可或缺的,不僅需要在總線上增加保護(hù)器件,當(dāng)室外發(fā)生雷擊或其他強(qiáng)烈干擾時,巨大的能量如果來不及泄放,就會損壞收發(fā)器。為了防止雷電等大電流對收發(fā)器的損壞,終端的總線接口增加防雷管和TVS作總線保護(hù)。當(dāng)受到雷擊時,并接在總線上的防雷管將能量泄放掉。但是一般情況下,防雷管的反應(yīng)速度慢,鉗位電壓高(約為800 V),因此,在防雷管后增加TVS和PTC電阻,TVS能夠?qū)⒖偩€壓差鉗制在6.8 V以下,這樣當(dāng)受到干擾時,TVS能較快地起到保護(hù)作用;而PTC電阻能保護(hù)收發(fā)器免受過流的沖擊。在CANH和CANL與地之間各接一個30 pF的小電容,可以起到濾除總線上的高頻干擾和防電磁輻射的作用。
本文詳細(xì)闡述CAN總線原理及其在軌道電路系統(tǒng)中的應(yīng)用。CAN總線成熟的技術(shù)和高效的性能被成功運(yùn)用于ZPW-2000A軌道電路系統(tǒng),確保了通信系統(tǒng)的可靠性,并保證了列車運(yùn)行的安全性。
[1]Howard Johnson,Martin Graham.高速信號傳輸[M].鄧暉譯.北京:電子工業(yè)出版社,2012:327-330.
[2]李真花,崔健.CAN總線輕松入門與實(shí)[M].北京:北京航空航天大學(xué)出版社,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)