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