光纖CAN總線自愈環(huán)網(wǎng)的研究
CAN總線是德國Bosch公司于20世紀80年代初為解決汽車中眾多數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議。由于其具有卓越的特性,CAN總線成為目前公認的幾種最有前途的現(xiàn)場總線之一。CAN總線的傳輸介質可以是雙絞線、光纖和同軸電纜。目前雙絞線CAN總線已得到了廣泛應用,各項技術已經(jīng)成熟。雙絞線CAN網(wǎng)絡在技術在容易實現(xiàn)、造價低廉,且對環(huán)境電磁輻射有一定抑制能力。但是當工作環(huán)境特別復雜時,其抗干擾能力并不十分令人滿意。如在電動汽車現(xiàn)場,情況較為復雜,車載電氣系統(tǒng)會產(chǎn)生強電磁干擾,將導致雙絞線CAN網(wǎng)絡不能正常工作。與雙絞線和同軸電纜相比,光纖的優(yōu)越性能--強大的抗EMI能力引起人們的關注。為進一步提高CAN網(wǎng)絡的性能,應采用光纖作傳輸介質。由于車載局域網(wǎng)傳送距離短,同時為了降低車載光纖CAN網(wǎng)絡的成本,可選用塑料光纖(POF)作為傳輸介質。塑料光纖在高速短距離通信傳輸中成本低、易連接、可繞性好、重量輕,故組網(wǎng)成本低。德國寶馬公司在2002年3月上市的最高級新款轎車BMW7系列中采用于50m POF構筑車內(nèi)局域網(wǎng)。
本文引用地址:http://butianyuan.cn/article/201710/368682.htm光纖CAN網(wǎng)作為一種工業(yè)底層控制局域網(wǎng),其拓撲結構與常用局域網(wǎng)一樣,基本拓撲結構有總線形、環(huán)形和暈形。在光纖單環(huán)CAN網(wǎng)絡中,由于器件的延時將導致環(huán)路信號自激,使環(huán)形CAN網(wǎng)絡堵塞(或稱為鎖死)。為遵守CAN總線控制器在鏈路層的協(xié)議,應設計一種光纖CAN單環(huán)網(wǎng)專用邏輯控制單元LCU。該單元的功能是:對CAN總線數(shù)據(jù)實現(xiàn)收發(fā)控制,即主節(jié)點對接收到的數(shù)據(jù)不轉發(fā),當數(shù)據(jù)沿光纖環(huán)回到原發(fā)送節(jié)點時,立即被剔除;從節(jié)點對接收數(shù)據(jù)實現(xiàn)轉發(fā)。同時還可消除環(huán)形光纖CAN總線網(wǎng)絡的自激現(xiàn)象,保證環(huán)網(wǎng)不被堵塞。
Q光纖單環(huán)網(wǎng)絡中,節(jié)點或鏈路的故障可能造成網(wǎng)絡的癱瘓。為了提高光纖環(huán)網(wǎng)的生存性,應構成具有自愈功能的光纖雙環(huán)自愈網(wǎng)。
圖1
1 光纖自愈環(huán)CAN網(wǎng)總體設計
1.1 光纖自愈環(huán)結構
光纖自愈環(huán)CAN網(wǎng)絡如圖1所示。該網(wǎng)絡有兩條光纖環(huán)路--順時針環(huán)和逆時針環(huán),各節(jié)點CAN控制器SJAl000通過接口電路與雙環(huán)光纖網(wǎng)相連,接口電路由Altera公司出產(chǎn)的復雜可編程邏輯器件(CPLD)EPM7128S、兩個光發(fā)送器LEDR和LEDL、兩個光接收器PINR和PINL組成。
1.2 接口電路的功能
光纖自愈環(huán)CAN網(wǎng)接口電路的功能是:(1)當光纖雙環(huán)通信正常時(如圖2(a)所示),各節(jié)點右端光發(fā)送器 LEDR傳送左端光接收器PINL的數(shù)據(jù),信號順時針傳送;同理LEDL傳送PINR的數(shù)據(jù),信號逆時針傳送,即發(fā)送器選擇對側數(shù)據(jù)轉發(fā)。(2)當單根光纖故障時(如圖2(b)所示),下游C節(jié)點接口電路實現(xiàn)環(huán)回,由于左側光接收器PINL無信號,右端光發(fā)送器LEDR選擇同側光接收器PINR數(shù)據(jù)轉發(fā)。(3)當任意節(jié)點間兩根光纖故障時(如圖2(c)所以),如BC節(jié)點間光纖被切斷時,則B、C兩個節(jié)點與光纖切斷點相連執(zhí)行環(huán)回功能。此時,從A到C的信號AC則先經(jīng)順時針環(huán)到B,再經(jīng)逆時針環(huán)過A、D后到達C。而信號CA則仍經(jīng)順時針環(huán)傳輸。這種自愈功能保證在故障情況下仍能維持環(huán)的連續(xù)性。故障排除后,倒換開關自動返回原來位置。(4)實現(xiàn)節(jié)點CAN控制器數(shù)據(jù)選擇接收。其原則為:對于各節(jié)點接收的順、逆時針數(shù)據(jù),選擇PINL、PINR中先到達的數(shù)據(jù)接收。(5)實現(xiàn)節(jié)點數(shù)據(jù)選擇發(fā)送。其原則為:當總線空閑時,選擇本節(jié)點CAN控制器發(fā)送端TX發(fā)送數(shù)據(jù),可消除環(huán)形光纖CAN總線網(wǎng)絡的自激現(xiàn)象,保證環(huán)網(wǎng)不被堵塞;當本節(jié)點CAN控制器為接收節(jié)點時,選擇對側數(shù)據(jù)發(fā)送;當本節(jié)點CAN控制器為接收節(jié)點時,且對側光纖通道故障,則選擇同側數(shù)據(jù)發(fā)送。(6)判別各通道幀起始和幀結束,鑒別總線是否空閑,網(wǎng)絡是否故障。如判斷到左測光接收器PINL有數(shù)據(jù)幀正在傳送時,產(chǎn)生左側發(fā)送數(shù)據(jù)標志flag_l和網(wǎng)絡通信狀態(tài)標志sync_l。
2 接口電路設計
光纖CAN自愈網(wǎng)的自愈功能及收發(fā)控制功能由可編程邏輯器件(ALTERA EPM7128SLC84一15)實現(xiàn),編程采用VHDL語言。下面進行具體介紹。
2.1 輸入輸出口設置
圖3為接口電路CPLD的I/O口示意圖。其中,輸入輸出pin_l、led_l、1ed_r、pin_r分別與光/電轉換模塊PINL、LEDL、LEDR、PINR相連:txd、rxd分別與CAN痙制器的數(shù)據(jù)發(fā)送端TX、接收端RX相連;flag_txd=1代表本節(jié)點CAN控制器TX0正在發(fā)送數(shù)據(jù)幀;flag_l=1代表左側通道正在發(fā)送數(shù)據(jù)幀;flag__r=1代表右側通道正在發(fā)送單據(jù)幀。sync_l為左側網(wǎng)絡通信狀態(tài)標志,sync_r為右側網(wǎng)絡通信狀態(tài)標志。當左通道正常時,輸出sync_1=l,驅動網(wǎng)絡狀態(tài)發(fā)光二極管D_sl亮;當右通道正常時,輸出sync_r=1,驅動網(wǎng)絡狀態(tài)發(fā)光二極管D_sr亮;若網(wǎng)絡狀態(tài)發(fā)光二極管D_sr或D_sl滅,表示網(wǎng)絡對應光纖通道出了故障。當本節(jié)點CAN控制器選擇左通道數(shù)據(jù)接收時,輸出端rx_l/r為高電平;當本節(jié)點CAN控制器選擇右通道數(shù)據(jù)接收時,輸出端rx_l/r為低電平。輸入端reset為復位端,低電平有效;clk0為時鐘輸入端,輸入時鐘的頻率為20MHz。
圖2
2.2 CPLD功能結構
CPLD為控制環(huán)網(wǎng)自愈接口單元,控制電路由分頻器、中心狀態(tài)機、發(fā)送數(shù)據(jù)選擇器、接收數(shù)據(jù)選擇器組成,如圖4所示。
2.3 分頻器
通訊接口CPLD時鐘頻率為20MHz。在光纖CAN自愈環(huán)網(wǎng)中,各節(jié)點CAN控制器SJAl000和CPLD接口采用獨立的工作時鐘。為使狀態(tài)機產(chǎn)生的flag的信號與CAN控制器數(shù)據(jù)傳送同步,以保證兩個數(shù)據(jù)選擇器的切換和數(shù)據(jù)傳送同步,應正確選擇狀態(tài)機的時鐘。本文中CAN網(wǎng)數(shù)據(jù)傳送波特率是125kbit/s,狀態(tài).機時鐘rxclk的速率設計為數(shù)據(jù)傳送波特率的8倍,即1Mbit/s,保證在一個CAN數(shù)據(jù)位周期中可對數(shù)據(jù)讀取多次,提高抗干擾能力。所以分頻器的功能為產(chǎn)生1MHz的時鐘頻率。
2.4 中心狀態(tài)機
依據(jù)CAN 2.0B協(xié)議,CAN網(wǎng)絡數(shù)據(jù)幀由7個不同的位場組成,即幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC場、應答場、幀結束。數(shù)據(jù)場長度可為0~8個字節(jié)。幀起始位是一個顯性位低電?quot;0;幀結束是由7個隱性位1組成的序列;在數(shù)據(jù)幀傳送中,使用位添充技術編碼,保證數(shù)據(jù)幀位流中不會出現(xiàn)5個連續(xù)的1或0。
中心控制狀態(tài)機是本設計的核心單元。中心狀態(tài)機的功能是:(1),檢測CAN數(shù)據(jù)幀的幀起始和幀結束,產(chǎn)生相應的發(fā)送數(shù)據(jù)標志信號flag_txd、flag_r和flag_l。(2)產(chǎn)生網(wǎng)絡通信狀態(tài)標志sync_r和sync_l。中心狀態(tài)機由:三個狀態(tài)機組成:本節(jié)點CAN控制器狀態(tài)機、左通道狀態(tài)機和右通道狀態(tài)機。它們分別判別各通道(TX、PIN_L和PIN_R)是否有數(shù)據(jù)傳送。下面對各處狀態(tài)機的解釋均以本節(jié)點CAN控制器狀態(tài)機為例。
各狀態(tài)機設置了61個狀態(tài), 即idle、S1、S2、S3…S60。當總線空閑時,狀態(tài)機處于空閑態(tài)idle,此時rxclk上沿到來,檢測到txd=0時,狀態(tài)機轉向S1,同時發(fā)送數(shù)據(jù)標志置位信號flag_txd=1;第二上沿時,狀態(tài)機無條件轉向S2;第三上沿時,狀態(tài)機無條件轉向S3;第四上沿時,狀態(tài)機無條件轉向S4;第五上沿到來時,此時是數(shù)據(jù)位的中央位置,數(shù)據(jù)穩(wěn)定,對數(shù)據(jù)再次讀取,若txd=0的條件仍成立,表示幀起始到來,狀態(tài)機轉向S5;否則flag_txd=0,同時狀態(tài)機轉向空閑態(tài)idle,等待幀起始的到來。
當狀態(tài)機處于S5時,此后rxclk(1MHz)每過一個時鐘周期,狀態(tài)機狀態(tài)前進一步(S6、S7、S8、S9、S10、S11、S12、……、S58、S59、S60);每過8個時鐘周期,對CAN總線上的數(shù)據(jù)位進行一次檢測(S12、S20、S28、S36、S44、S52、S60),保證每次檢測在數(shù)據(jù)位(位周期)中央。當連續(xù)7次txd=1時,檢測到1表示幀結束到來,發(fā)送數(shù)據(jù)標志復位flag_txd=0,等待下一次幀起始的到來;否則狀態(tài)機返回狀態(tài)S5,等待幀結束的到來。
網(wǎng)絡通信狀態(tài)sync_r、sync _l是進行環(huán)網(wǎng)自愈的重要依據(jù)。如上所述,當左右通道發(fā)送數(shù)據(jù)狀態(tài)標志flag=1時,各通道網(wǎng)絡通信狀態(tài)sync=1,網(wǎng)絡狀態(tài)發(fā)光二極管D_sr、D_sl亮;當幀結束到來時,flag=0,啟動網(wǎng)絡通信狀態(tài)計數(shù)群count,其時鐘為rxclk=1MHz,當計數(shù)器為30000時(30ms),sync=0,網(wǎng)絡狀態(tài)發(fā)光二極管D_sr、D_sl滅。這表示某數(shù)據(jù)幀傳輸后,如果再也檢測不到其它數(shù)據(jù)幀起始,則網(wǎng)絡出了故障。如果在30ms內(nèi)能檢測到數(shù)據(jù)幀起始(flag置位),網(wǎng)絡通信狀態(tài)標志sync持續(xù)為1。 計數(shù)器達到滿值的時間應為估算的幀間最短時間間隔。
2.5 數(shù)據(jù)選擇器
發(fā)送數(shù)據(jù)選擇器和接收數(shù)據(jù)選擇器的功能是實現(xiàn)鏈路搭建(即通道選擇)。為保證網(wǎng)絡正常工作,CAN網(wǎng)絡延時應小于一個數(shù)據(jù)寬度(位周期)。為使鏈路搭建時間盡可能短,使用最高時鐘頻率(20MHz)控制兩個數(shù)據(jù)選擇器。
在發(fā)送數(shù)據(jù)選擇器中,CPLD檢測三路通道數(shù)據(jù)txd、pin_l、pin_r。各通道數(shù)據(jù)具有不同的優(yōu)先級。優(yōu)先級的設置為:當本節(jié)點發(fā)送數(shù)據(jù)(txd=0或flag_txd=1)時,左右通道發(fā)送CAN控制鞣⑺投薚X的數(shù)據(jù),即led_r=txd,led_l=txd。若本節(jié)點不發(fā)送數(shù)據(jù),則依據(jù)sync_r和sync_l選擇發(fā)送數(shù)據(jù),當左右通道均正常時,選擇對側數(shù)據(jù)發(fā)送,led_r=pin_l,led_l=pin_r。如果某通道故障,接收不到對側數(shù)據(jù),則選擇本側數(shù)據(jù)發(fā)送,led_l=pin_l,led_r=pin_r。據(jù)此,不僅實現(xiàn)了網(wǎng)絡自愈,也消除了環(huán)網(wǎng)阻塞問題。
在接收數(shù)據(jù)選擇器中,設定左通道為首選接收通道;當左通道數(shù)據(jù)未到時(flag_l=0)或左通道故障時,不需人為干預,自動選擇右通道接收。據(jù)此實現(xiàn)了接收優(yōu)化(選擇優(yōu)先到達通道數(shù)據(jù)接收)以及光纖CAN總線雙環(huán)網(wǎng)的自愈功能。
在電動車內(nèi)組建光纖CAN自愈環(huán)網(wǎng),采用塑料光纖作為傳輸介質,塑料光纖在可見光區(qū)有低損耗窗口,選用工作波長為650nm(紅光)的光/電轉換模塊--Agilent公司生產(chǎn)的光發(fā)送器HFBR-1528和光接收器HFBR--2528。各節(jié)點CAN控卸器選用SJAl000或帶CAN控制器的TMS320LF2407 DSP芯片,組成4個節(jié)點車載光纖CAN自愈環(huán)網(wǎng)。CAN網(wǎng)絡的數(shù)據(jù)傳送速率設置為125kbit/s,當設置某條通道故障時,網(wǎng)絡能實現(xiàn)圖2(b)所不的自愈功能;當設置任意節(jié)點之間的兩根光纖故障時,網(wǎng)絡能實現(xiàn)圖2(c)所示的自愈功能。當CAN節(jié)點故障時,接口電路仍能保證雙環(huán)網(wǎng)正常工作;但當接口電路故障時,將導致本節(jié)點脫離總線,其它節(jié)點實現(xiàn)網(wǎng)絡自愈,構成單環(huán)網(wǎng)。通過示波器觀測波形,發(fā)送節(jié)點通過總線競爭發(fā)送數(shù)據(jù);接收節(jié)點能向總線上發(fā)送應答信號;節(jié)點數(shù)據(jù)通過4節(jié)點光纖CAN自愈環(huán)返回原節(jié)點的時間小于100ns。經(jīng)測試,通道故障網(wǎng)絡自愈時間為301ms
評論