《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 光纖CAN總線自愈環(huán)網(wǎng)的研究

光纖CAN總線自愈環(huán)網(wǎng)的研究

2008-09-03
作者:吳友宇 楊菊芳

??? 摘 要: 介紹了光纖單環(huán)CAN網(wǎng)絡(luò)的工作特點及其不足。為提高光纖CAN網(wǎng)絡(luò)的生存性,設(shè)計了光纖CAN總線自愈環(huán)網(wǎng),。采用塑料光纖(POF)為傳輸介質(zhì),用波長為650nm的紅光光電收發(fā)器件實現(xiàn)光/電轉(zhuǎn)換,。分析了CAN網(wǎng)絡(luò)數(shù)據(jù)幀" title="數(shù)據(jù)幀">數(shù)據(jù)幀的結(jié)構(gòu)特點,給出了基于CPLD的自愈接口電路" title="接口電路">接口電路的實現(xiàn)方法,。通過組建車載光纖CAN總線自愈環(huán)網(wǎng),證明該網(wǎng)絡(luò)不但具有自愈功能,還能消除光纖CAN環(huán)形網(wǎng)絡(luò)中的阻塞現(xiàn)象,。
??? 關(guān)鍵詞: CAN? 自愈環(huán)? CPLD? 接口電路? 塑料光纖

?

??? CAN總線是德國Bosch公司于20世紀(jì)80年代初為解決汽車中眾多數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議[1~2],。由于其具有卓越的特性,CAN總線成為目前公認(rèn)的幾種最有前途的現(xiàn)場總線之一[3],。CAN總線的傳輸介質(zhì)可以是雙絞線,、光纖和同軸電纜。目前雙絞線CAN總線已得到了廣泛應(yīng)用,各項技術(shù)已經(jīng)成熟,。雙絞線CAN網(wǎng)絡(luò)在技術(shù)在容易實現(xiàn),、造價低廉,且對環(huán)境電磁輻射有一定抑制能力。但是當(dāng)工作環(huán)境特別復(fù)雜時,其抗干擾能力并不十分令人滿意,。如在電動汽車現(xiàn)場,情況較為復(fù)雜,車載電氣系統(tǒng)會產(chǎn)生強電磁干擾,將導(dǎo)致雙絞線CAN網(wǎng)絡(luò)不能正常工作,。與雙絞線和同軸電纜相比,光纖的優(yōu)越性能——強大的抗EMI能力引起人們的關(guān)注。為進(jìn)一步提高CAN網(wǎng)絡(luò)的性能,應(yīng)采用光纖作傳輸介質(zhì),。由于車載局域網(wǎng)傳送距離短,同時為了降低車載光纖CAN網(wǎng)絡(luò)的成本,可選用塑料光纖(POF)作為傳輸介質(zhì),。塑料光纖在高速短距離通信傳輸中成本低、易連接,、可繞性好,、重量輕,故組網(wǎng)成本低。德國寶馬公司在2002年3月上市的最高級新款轎車“BMW7系列”中采用了50m POF構(gòu)筑車內(nèi)局域網(wǎng),。
??? 光纖CAN網(wǎng)作為一種工業(yè)底層控制局域網(wǎng),其拓?fù)浣Y(jié)構(gòu)與常用局域網(wǎng)一樣,基本拓?fù)浣Y(jié)構(gòu)有總線形,、環(huán)形和星形。在光纖單環(huán)CAN網(wǎng)絡(luò)中,由于器件的延時將導(dǎo)致環(huán)路信號自激,使環(huán)形CAN網(wǎng)絡(luò)堵塞(或稱為鎖死),。為遵守CAN總線控制器在鏈路層的協(xié)議,應(yīng)設(shè)計一種光纖CAN單環(huán)網(wǎng)專用邏輯控制單元LCU,。該單元的功能是:對CAN總線數(shù)據(jù)實現(xiàn)收發(fā)控制,即主節(jié)點對接收到的數(shù)據(jù)不轉(zhuǎn)發(fā),當(dāng)數(shù)據(jù)沿光纖環(huán)回到原發(fā)送節(jié)點時,立即被剔除;從節(jié)點對接收數(shù)據(jù)實現(xiàn)轉(zhuǎn)發(fā)。同時還可消除環(huán)形光纖CAN總線網(wǎng)絡(luò)的自激現(xiàn)象,保證環(huán)網(wǎng)不被堵塞[4],。
??? 在光纖單環(huán)網(wǎng)絡(luò)中,節(jié)點或鏈路的故障可能造成網(wǎng)絡(luò)的癱瘓,。為了提高光纖環(huán)網(wǎng)的生存性,應(yīng)構(gòu)成具有自愈功能的光纖雙環(huán)自愈網(wǎng)[5],。
1 光纖自愈環(huán)CAN網(wǎng)總體設(shè)計
1.1光纖自愈環(huán)結(jié)構(gòu)

??? 光纖自愈環(huán)CAN網(wǎng)絡(luò)如圖1所示。該網(wǎng)絡(luò)有兩條光纖環(huán)路——順時針環(huán)和逆時針環(huán),各節(jié)點CAN控制器SJA1000通過接口電路與雙環(huán)光纖網(wǎng)相連,接口電路由Altera公司出產(chǎn)的復(fù)雜可編程邏輯器件(CPLD)EPM7128S,、兩個光發(fā)送器LEDR和LEDL,、兩個光接收器" title="光接收器">光接收器PINR和PINL組成。

?


1.2 接口電路的功能
??? 光纖自愈環(huán)CAN網(wǎng)接口電路的功能是:(1)當(dāng)光纖雙環(huán)通信正常時(如圖2(a)所示),各節(jié)點右端光發(fā)送器LEDR傳送左端光接收器PINL的數(shù)據(jù),信號順時針傳送;同理LEDL傳送PINR的數(shù)據(jù),信號逆時針傳送,即發(fā)送器選擇對側(cè)數(shù)據(jù)轉(zhuǎn)發(fā),。(2)當(dāng)單根光纖故障時(如圖2(b)所示),下游C節(jié)點接口電路實現(xiàn)環(huán)回,由于左側(cè)光接收器PINL無信號,右端光發(fā)送器LEDR選擇同側(cè)光接收器PINR數(shù)據(jù)轉(zhuǎn)發(fā),。(3)當(dāng)任意節(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后到達(dá)C。而信號CA則仍經(jīng)順時針環(huán)傳輸,。這種自愈功能保證在故障情況下仍能維持環(huán)的連續(xù)性,。故障排除后,倒換開關(guān)自動返回原來位置。(4)實現(xiàn)節(jié)點CAN控制器數(shù)據(jù)選擇接收,。其原則為:對于各節(jié)點接收的順,、逆時針數(shù)據(jù),選擇PINL,、PINR中先到達(dá)的數(shù)據(jù)接收,。(5)實現(xiàn)節(jié)點數(shù)據(jù)選擇發(fā)送。其原則為:當(dāng)總線空閑時,選擇本節(jié)點CAN控制器發(fā)送端TX發(fā)送數(shù)據(jù),可消除環(huán)形光纖CAN總線網(wǎng)絡(luò)的自激現(xiàn)象,保證環(huán)網(wǎng)不被堵塞;當(dāng)本節(jié)點CAN控制器為接收節(jié)點時,選擇對側(cè)數(shù)據(jù)發(fā)送;當(dāng)本節(jié)點CAN控制器為接收節(jié)點時,且對側(cè)光纖通道故障,則選擇同側(cè)數(shù)據(jù)發(fā)送,。(6)判別各通道幀起始和幀結(jié)束,鑒別總線是否空閑,網(wǎng)絡(luò)是否故障,。如判斷到左側(cè)光接收器PINL有數(shù)據(jù)幀正在傳送時,產(chǎn)生左側(cè)發(fā)送數(shù)據(jù)標(biāo)志flag_l和網(wǎng)絡(luò)通信" title="網(wǎng)絡(luò)通信">網(wǎng)絡(luò)通信狀態(tài)標(biāo)志sync_l。

?


2 接口電路設(shè)計
??? 光纖CAN自愈網(wǎng)的自愈功能及收發(fā)控制功能由可編程邏輯器件(ALTERA EPM7128SLC84—15)實現(xiàn),編程采用VHDL語言,。下面進(jìn)行具體介紹,。
2.1 輸入輸出口設(shè)置
??? 圖3為接口電路CPLD的I/O口示意圖。其中,輸入輸出pin_l,、led_l,、led_r、pin_r分別與光/電轉(zhuǎn)換模塊PINL,、LEDL,、LEDR、PINR相連;txd,、rxd分別與CAN控制器的數(shù)據(jù)發(fā)送端TX,、接收端RX相連;flag_txd=1代表本節(jié)點CAN控制器TX0正在發(fā)送數(shù)據(jù)幀;flag_l=1代表左側(cè)通道正在發(fā)送數(shù)據(jù)幀;flag_r=1代表右側(cè)通道正在發(fā)送數(shù)據(jù)幀。sync_l為左側(cè)網(wǎng)絡(luò)通信狀態(tài)標(biāo)志,sync_r為右側(cè)網(wǎng)絡(luò)通信狀態(tài)標(biāo)志,。當(dāng)左通道正常時,輸出sync_l=“1”,驅(qū)動網(wǎng)絡(luò)狀態(tài)發(fā)光二極管D_sl亮;當(dāng)右通道正常時,輸出sync_r=“1”,驅(qū)動網(wǎng)絡(luò)狀態(tài)發(fā)光二極管D_sr亮;若網(wǎng)絡(luò)狀態(tài)發(fā)光二極管D_sr或D_sl滅,表示網(wǎng)絡(luò)對應(yīng)光纖通道出了故障,。當(dāng)本節(jié)點CAN控制器選擇左通道數(shù)據(jù)接收時,輸出端rx_l/r為高電平;當(dāng)本節(jié)點CAN控制器選擇右通道數(shù)據(jù)接收時,輸出端rx_l/r為低電平。輸入端reset為復(fù)位端,低電平有效;clk0為時鐘輸入端,輸入時鐘的頻率為20MHz,。

?


2.2 CPLD功能結(jié)構(gòu)
??? CPLD為控制環(huán)網(wǎng)自愈接口單元,控制電路由分頻器,、中心狀態(tài)機,、發(fā)送數(shù)據(jù)選擇器" title="數(shù)據(jù)選擇器">數(shù)據(jù)選擇器、接收數(shù)據(jù)選擇器組成,如圖4所示,。

?


2.3 分頻器
??? 通訊接口CPLD時鐘頻率為20MHz,。在光纖CAN自愈環(huán)網(wǎng)中,各節(jié)點CAN控制器SJA1000和CPLD接口采用獨立的工作時鐘。為使?fàn)顟B(tài)機產(chǎn)生的flag的信號與CAN控制器數(shù)據(jù)傳送同步,以保證兩個數(shù)據(jù)選擇器的切換和數(shù)據(jù)傳送同步,應(yīng)正確選擇狀態(tài)機的時鐘,。本文中CAN網(wǎng)數(shù)據(jù)傳送波特率是125kbit/s,狀態(tài)機時鐘rxclk的速率設(shè)計為數(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)絡(luò)數(shù)據(jù)幀由7個不同的位場組成,即幀起始,、仲裁場,、控制場、數(shù)據(jù)場,、CRC場,、應(yīng)答場、幀結(jié)束,。數(shù)據(jù)場長度可為0~8個字節(jié),。幀起始位是一個顯性位低電平“0”;幀結(jié)束是由7個隱性位“1”組成的序列;在數(shù)據(jù)幀傳送中,使用位添充技術(shù)編碼,保證數(shù)據(jù)幀位流中不會出現(xiàn)5個連續(xù)的“1”或“0”。
??? 中心控制狀態(tài)機是本設(shè)計的核心單元,。中心狀態(tài)機的功能是:(1)檢測CAN數(shù)據(jù)幀的幀起始和幀結(jié)束,產(chǎn)生相應(yīng)的發(fā)送數(shù)據(jù)標(biāo)志信號flag_txd,、flag_r和flag_l。(2)產(chǎn)生網(wǎng)絡(luò)通信狀態(tài)標(biāo)志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)機設(shè)置了61個狀態(tài),即idle,、S1,、S2、S3...S60,。當(dāng)總線空閑時,狀態(tài)機處于空閑態(tài)idle,此時rxclk上沿到來,檢測到txd=0時,狀態(tài)機轉(zhuǎn)向S1,同時發(fā)送數(shù)據(jù)標(biāo)志置位信號flag_txd=“1”;第二上沿時,狀態(tài)機無條件轉(zhuǎn)向S2;第三上沿時,狀態(tài)機無條件轉(zhuǎn)向S3;第四上沿時,狀態(tài)機無條件轉(zhuǎn)向S4;第五上沿到來時,此時是數(shù)據(jù)位的中央位置,數(shù)據(jù)穩(wěn)定,對數(shù)據(jù)再次讀取,若txd=“0”的條件仍成立,表示幀起始到來,狀態(tài)機轉(zhuǎn)向S5;否則flag_txd=“0”,同時狀態(tài)機轉(zhuǎn)向空閑態(tài)idle,等待幀起始的到來,。
??? 當(dāng)狀態(tài)機處于S5時,此后rxclk(1MHz)每過一個時鐘周期,狀態(tài)機狀態(tài)前進(jìn)一步(S6、S7,、S8,、S9、S10,、S11,、S12、……,、S58,、S59,、S60);每過8個時鐘周期,對CAN總線上的數(shù)據(jù)位進(jìn)行一次檢測(S12、S20,、S28,、S36、S44,、S52,、S60),保證每次檢測在數(shù)據(jù)位(位周期)中央。當(dāng)連續(xù)7次txd=“1”時,檢測到“1”表示“幀結(jié)束”到來,發(fā)送數(shù)據(jù)標(biāo)志復(fù)位 flag_txd=“0”,等待下一次幀起始的到來;否則狀態(tài)機返回狀態(tài)S5,等待幀結(jié)束的到來,。
??? 網(wǎng)絡(luò)通信狀態(tài)sync_r,、sync_l是進(jìn)行環(huán)網(wǎng)自愈的重要依據(jù)。如上所述,當(dāng)左右通道發(fā)送數(shù)據(jù)狀態(tài)標(biāo)志flag=“1”時,各通道網(wǎng)絡(luò)通信狀態(tài)sync=“1”,網(wǎng)絡(luò)狀態(tài)發(fā)光二極管D_sr,、D_sl亮;當(dāng)幀結(jié)束到來時,flag=“0”,啟動網(wǎng)絡(luò)通信狀態(tài)計數(shù)器count,其時鐘為rxclk=1MHz,當(dāng)計數(shù)器為30000時(30ms),sync=“0”,網(wǎng)絡(luò)狀態(tài)發(fā)光二極管D_sr,、D_sl滅。這表示某數(shù)據(jù)幀傳輸后,如果再也檢測不到其它數(shù)據(jù)幀起始,則網(wǎng)絡(luò)出了故障,。如果在30ms內(nèi)能檢測到數(shù)據(jù)幀起始(flag置位),網(wǎng)絡(luò)通信狀態(tài)標(biāo)志sync持續(xù)為“1”,。計數(shù)器達(dá)到滿值的時間應(yīng)為估算的幀間最短時間間隔。
2.5 數(shù)據(jù)選擇器
??? 發(fā)送數(shù)據(jù)選擇器和接收數(shù)據(jù)選擇器的功能是實現(xiàn)鏈路搭建(即通道選擇),。為保證網(wǎng)絡(luò)正常工作,CAN網(wǎng)絡(luò)延時應(yīng)小于一個數(shù)據(jù)寬度(位周期),。為使鏈路搭建時間盡可能短,使用最高時鐘頻率(20MHz)控制兩個數(shù)據(jù)選擇器。
??? 在發(fā)送數(shù)據(jù)選擇器中,CPLD檢測三路通道數(shù)據(jù)txd,、pin_l,、pin_r,。各通道數(shù)據(jù)具有不同的優(yōu)先級,。優(yōu)先級的設(shè)置為:當(dāng)本節(jié)點發(fā)送數(shù)據(jù)(txd=“0”或flag_txd=“1”)時,左右通道發(fā)送CAN控制器發(fā)送端TX的數(shù)據(jù),即led_r=txd,led_l=txd。若本節(jié)點不發(fā)送數(shù)據(jù),則依據(jù)sync_r和sync_l選擇發(fā)送數(shù)據(jù),當(dāng)左右通道均正常時,選擇對側(cè)數(shù)據(jù)發(fā)送,led_r=pin_l,led_l=pin_r,。如果某通道故障,接收不到對側(cè)數(shù)據(jù),則選擇本側(cè)數(shù)據(jù)發(fā)送,led_l=pin_l,led_r=pin_r,。據(jù)此,不僅實現(xiàn)了網(wǎng)絡(luò)自愈,也消除了環(huán)網(wǎng)阻塞問題。
??? 在接收數(shù)據(jù)選擇器中,設(shè)定左通道為首選接收通道;當(dāng)左通道數(shù)據(jù)未到時(flag_l=“0”)或左通道故障時,不需人為干預(yù),自動選擇右通道接收,。據(jù)此實現(xiàn)了接收優(yōu)化(選擇優(yōu)先到達(dá)通道數(shù)據(jù)接收)以及光纖CAN總線雙環(huán)網(wǎng)的自愈功能,。
??? 在電動車內(nèi)組建光纖CAN自愈環(huán)網(wǎng),采用塑料光纖作為傳輸介質(zhì),塑料光纖在可見光區(qū)有低損耗窗口,選用工作波長為650nm(紅光)的光/電轉(zhuǎn)換模塊——Agilent公司生產(chǎn)的光發(fā)送器HFBR-1528和光接收器HFBR-2528。各節(jié)點CAN控制器選用SJA1000或帶CAN控制器的TMS320LF2407 DSP 芯片,組成4個節(jié)點車載光纖CAN自愈環(huán)網(wǎng),。CAN網(wǎng)絡(luò)的數(shù)據(jù)傳送速率設(shè)置為125kbit/s,當(dāng)設(shè)置某條通道故障時,網(wǎng)絡(luò)能實現(xiàn)圖2(b)所示的自愈功能;當(dāng)設(shè)置任意節(jié)點之間的兩根光纖故障時,網(wǎng)絡(luò)能實現(xiàn)圖2(c)所示的自愈功能,。當(dāng)CAN節(jié)點故障時,接口電路仍能保證雙環(huán)網(wǎng)正常工作;但當(dāng)接口電路故障時,將導(dǎo)致本節(jié)點脫離總線,其它節(jié)點實現(xiàn)網(wǎng)絡(luò)自愈,構(gòu)成單環(huán)網(wǎng)。通過示波器觀測波形,發(fā)送節(jié)點通過總線競爭發(fā)送數(shù)據(jù);接收節(jié)點能向總線上發(fā)送應(yīng)答信號;節(jié)點數(shù)據(jù)通過4節(jié)點光纖CAN自愈環(huán)返回原節(jié)點的時間小于100ns,。經(jīng)測試,通道故障網(wǎng)絡(luò)自愈時間為30ms,。
參考文獻(xiàn)
1 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社,1995
2 程 軍.車輛控制系統(tǒng)CAN總線通信的實施方法.汽車工程,2001;23(5)
3 陽憲惠.現(xiàn)場總線技術(shù)及其應(yīng)用. 北京: 清華大學(xué)出版社,1998
4 吳友宇,楊菊芳,梁 紅.光纖CAN網(wǎng)絡(luò)節(jié)點數(shù)計算方法.武漢大學(xué)學(xué)報(理學(xué)版),2003;49(5):629~632
5 鄧文棟,王傳啟,陳曉蘇等.光纖自愈環(huán)網(wǎng)在變電站自動化系統(tǒng)中的設(shè)計和實現(xiàn).電子技術(shù)應(yīng)用,2002;28(1):29~32

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]