摘 要:在分析CAN總線雙絞線和光纖傳輸特點的基礎(chǔ)上,提出一種基于光纖收發(fā)一體模塊及CAN總線控制器SJAl000的光纖傳輸接口設(shè)計方案;詳細介紹光纖收發(fā)器的選取及傳輸接口的實現(xiàn);根據(jù)光纖收發(fā)一體模塊對信號源時鐘提取的要求以及CAN總線的非破壞性總線仲裁的特點,設(shè)計了一種CAN總線信號編解碼方法,井用FPGA加以實現(xiàn);通過實際的通信實驗驗證了設(shè)計方案的正確性,并根據(jù)實驗數(shù)據(jù)對CAN總線在兩種介質(zhì)下的傳輸性能作了比較。
關(guān)鍵詞:CAN總線;光纖;傳輸接口;FPGA
引 言
作為一種成熟的現(xiàn)場總線技術(shù),CAN(ControllerArea Network)總線在汽車、電力、機械、化工等工業(yè)控制領(lǐng)域得到了極為廣泛的應(yīng)用。CAN協(xié)議標準中規(guī)定了CAN總線支持的兩種傳輸介質(zhì)——雙絞線和光纖。目前,絕大多數(shù)CAN總線系統(tǒng)采用的都是雙絞線傳輸。光纖一般應(yīng)用于大容量、高速率的傳輸中,對于CAN總線這種傳輸速率較低、數(shù)據(jù)量較小的現(xiàn)場總線通信,光纖傳輸?shù)膬?yōu)勢得不到完全發(fā)揮,因此光纖傳輸?shù)膽?yīng)用還不多。國內(nèi)外多家研究機構(gòu)也都進行了CAN總線光纖傳輸?shù)难芯?,但主要是基于分立光纖收發(fā)元件的方法。本文介紹了一種使用光纖收發(fā)一體模塊,結(jié)合編解碼算法實現(xiàn)CAN總線光纖傳輸接口的方案;根據(jù)CAN總線的特點和實驗數(shù)據(jù),分析了CAN總線在光纖介質(zhì)下傳輸性能的改善。
1 CAN總線的雙絞線及光纖傳輸
1.1 CAN總線雙絞線傳輸
CAN總線典型的網(wǎng)絡(luò)拓撲是總線結(jié)構(gòu)。1993年頒布的同際標準ISOll898對基于雙絞線的CAN總線傳輸介質(zhì)特性做出了建議:總線可具有兩種邏輯狀態(tài),即隱性(邏輯"l")或顯性(邏輯"0")。圖1為基于CAN總線控制器SJA1000和總線驅(qū)動器PCA82C250的CAN雙絞線傳輸網(wǎng)絡(luò)結(jié)構(gòu)圖。
CAN總線雙絞線傳輸接口的特點是技術(shù)上容易實現(xiàn),造價低廉;理論上節(jié)點數(shù)無限制,對環(huán)境電磁輻射有一定抑制能力。但隨著頻率的增長,雙絞線線對的衰減迅速增大;雙絞線還有所謂近端串擾,即在"發(fā)送線對"和"接收線對"之間仔在電磁耦合干擾。另外,雙絞線的傳輸速率受距離限制比較大。這些缺陷使得CAN總線不宜在強干擾、高速率、遠距離的場合下使用雙絞線作為傳輸介質(zhì)。
1.2 CAN總線光纖傳輸
CAN協(xié)議支持光纖作為傳輸介質(zhì),但是由于CAN總線網(wǎng)絡(luò)一般采用總線型結(jié)構(gòu),并且其總線仲裁采取的是具有優(yōu)先級的非破壞性CSMA(載波偵聽多路訪問),而光纖信號的傳輸則是單向的,因此最簡單實用的方法是在某些總線支路上采用光纖介質(zhì),整個CAN網(wǎng)絡(luò)為雙絞線和光纖兩種傳輸介質(zhì)混合使用的方式。結(jié)構(gòu)如圖2所示。
作為傳輸介質(zhì),光纖在抗干擾性、傳輸容量、速率等方面具有許多比雙絞線優(yōu)良的特性。因此,在某些環(huán)境惡劣、地理分布范圍較廣、速率要求較高的CAN總線系統(tǒng)中,可以在相應(yīng)的支路上使用光纖傳輸,從而保證整個CAN網(wǎng)絡(luò)的性能。
2 光纖傳輸接口實現(xiàn)方案
2.1 光纖收發(fā)模塊的選用
實現(xiàn)光纖傳輸?shù)囊粋€重要環(huán)節(jié)就是完成總線信號的光電轉(zhuǎn)換,可以使用專用的光纖收發(fā)器件。目前,光纖收發(fā)器有兩種類型:一種是基于分立元件的,即光接收和光發(fā)送模塊是獨立的。這種光收發(fā)模塊相對比較簡單,光發(fā)射部分主要由光源和偏置控制電路組成;光接收部分主要由光探測器、整形放大電路組成,一般采用塑料或多模光纖進行傳輸。另一種是光纖收發(fā)一體模塊,它在光源、光探測、光器件封裝、驅(qū)動集成電路、放大集成電路技術(shù)進步的基礎(chǔ)上,將接收和發(fā)送集成到一起、符合電信傳輸標準的光電子系統(tǒng);在光發(fā)射部分使用r性能更好的光源,并在接收部分加入了時鐘及再生判決電路等,一般采用單模光纖進行傳輸。因此,光纖收發(fā)一體模塊在信號轉(zhuǎn)換的速率和穩(wěn)定性上都比分立的光纖收發(fā)器件有很大的提高,而且與外圍器件接口方便,單模光纖的色散、傳輸光功率消耗也比多模光纖小。
本設(shè)計中選用一款TTL光纖收發(fā)一體模塊,標準工業(yè)用l×9引腳,單+5V電源供電,光纖傳輸模式為單模,標準ST-ST光纖接口。該模塊驅(qū)動接口如圖3所示。
2.2 設(shè)計方案
由于光纖收發(fā)一體模塊中含有時鐘提取電路,要求所轉(zhuǎn)換的信號流要含有豐富的時鐘信息,以便時鐘提取電路準確地捕獲信號的頻率,因此信號流中不宜包含較長的連"1"或連"0"。而CAN總線在空閑以及發(fā)送某些類型幀時會出現(xiàn)比較長的連"1"或連"0",尤其在通信波特率比較低的情況下,連續(xù)相同電平的時間就會越長,這將會導(dǎo)致接收器捕獲不到信號流的準確波特率,從而導(dǎo)致光電轉(zhuǎn)換后的信號的位時間不準確甚至錯誤。因此,就要求對待轉(zhuǎn)換的CAN信號流進行預(yù)先處理。最常用的方法就是進行編碼,編碼后的信號流中包含豐富的時鐘信息,不會出現(xiàn)較長的連"1"或連"0",經(jīng)過光纖傳輸后再進行解碼還原。也就是說,在CAN控制器、驅(qū)動器與光電轉(zhuǎn)換模塊之間增加一個編解碼器。
據(jù)此提出一種基于CAN總線控制器SJA1000和光纖收發(fā)一體模塊的CAN總線光纖傳輸接口方案,其結(jié)構(gòu)如圖4所示。
接口分為發(fā)送端和接收端。發(fā)送端由CAN總線控制器SJA1000、信號編解碼器和光纖收發(fā)一體模塊組成;接收端由CAN總線驅(qū)動器PCA82C250、信號編解碼器和光纖收發(fā)一體模塊組成。CAN節(jié)點向總線發(fā)送數(shù)據(jù)時,發(fā)送端總線控制器SJA1000的發(fā)送信號TX經(jīng)編碼器進行編碼之后,送至光纖收發(fā)一體模塊進行信號的電一光轉(zhuǎn)換,然后通過光纖傳輸?shù)竭_接收端RX;接收端光纖收發(fā)一體模塊先對收到的光信號進行光一電轉(zhuǎn)換,再由解碼器將編碼信號還原,最后通過總線驅(qū)動器PCA82C250與總線連接,完成數(shù)據(jù)發(fā)送過程。數(shù)據(jù)接收過程同理。
3 光電轉(zhuǎn)換編碼、解碼器設(shè)計
3.1 CAN總線仲裁機制對編解碼方案的要求
CAN總線的非破壞性總線仲裁機制的原理為:當總線空閑時,任何單元均可發(fā)送報文;若同時有2個或更多的節(jié)點開始發(fā)送報文,則會出現(xiàn)總線沖突。對于總線訪問沖突,可借助于標識符ID進行逐位仲裁加以解決。仲裁期間,每個發(fā)送器將發(fā)送位電平同總線上檢測到的電平進行比較:若相等,則節(jié)點繼續(xù)發(fā)送;若不相等,則表明節(jié)點失去仲裁,停止報文發(fā)送。只有總線訪問優(yōu)先權(quán)最高的節(jié)點繼續(xù)報文發(fā)送,其他優(yōu)先權(quán)較低的節(jié)點失去仲裁,主動停止報文發(fā)送,只有當總線空閑時才能繼續(xù)啟動報文發(fā)送。因此,CAN節(jié)點每發(fā)送一位數(shù)據(jù)都要監(jiān)聽總線上的數(shù)據(jù)是否與所發(fā)送的一致。 在不考慮信號在光纖中傳輸時的衰減及CAN節(jié)點自身限制的前提下,為了保證CAN總線通信的正常進行,在CAN總線的通信過程中必須保證信號延遲不能超過CAN總線的允許值,而這主要是由CAN總線物理層的位定時和同步功能決定的。CAN總線的位時間被定義為一位的持續(xù)時間。一個位時間可劃分為4個不重疊的時間段,即同步段(SYNC_SEG)、傳播段(PROP_SEG)、相位緩沖段1(PHASE_SEG1)和相位緩沖段2(PHASE_SEG2)。其中,同步段用于同步總線上不同的節(jié)點,這一段內(nèi)要有一個跳變沿;傳播段用于補償網(wǎng)絡(luò)內(nèi)的物理延遲時間(包括總線上的信號傳播時間和節(jié)點的內(nèi)部延遲時間);相位緩沖段1和相位緩沖段2用于補償邊沿階段的誤差。由于CAN總線中各個節(jié)點的時鐘可能不一致,因此需要進行重新同步。重新同步的結(jié)果,使相位緩沖段1增長,或使相位緩沖段2縮短,內(nèi)部的位時間從同步段重新開始。采樣點位于相位緩沖段1的結(jié)束,在采樣點時刻,CAN節(jié)點讀總線電平。通過編程采樣點的位置可以優(yōu)化總線定時。
綜上所述,假設(shè)信號在光纖中的傳輸時間為t傳輸,信號傳輸中因光電轉(zhuǎn)換造成的延遲時間為t光電延遲,CAN節(jié)點同步及內(nèi)部延遲為t內(nèi)部延遲,則應(yīng)滿足以下關(guān)系:
t傳輸+t光電延遲+t內(nèi)部延遲
式中,對于給定長度和波特率,光纖傳輸時間和節(jié)點內(nèi)部延遲時間是確定的,因此要盡量縮短光電轉(zhuǎn)換的延遲時間,即對CAN信號編解碼算法提出了特殊要求,要盡量縮短編解碼的延遲時間。
3.2 編碼、解碼方案
光纖傳輸中常采用的信號編碼有CMI碼、擾碼、8B/10B碼等。雖然這些編碼都能提供豐富的時鐘信息,但是由于CAN總線的總線仲裁是具有優(yōu)先級的非破壞性CSMA,這個特點決定了信號經(jīng)過編解碼后的延遲要盡可能得小。提出一種1B/16B編碼方法,編、解碼規(guī)則如下:
?。?) 編碼規(guī)則
邏輯"1"——1110101010101010
邏輯"0"——0001010101010101
具體做法是,用是待編碼比特流波特率16倍的時鐘頻率對其每位進行采樣,每一位采樣16次,然后根據(jù)約定好的編碼規(guī)則進行編碼。這樣就將原比特流的一位編碼成新的16位傳輸,每位的長度是原來位時間的1/16,而總的位時間不變。編碼后的信號不會出現(xiàn)較長的連"1"或連"0"(最長的連"1"或連"0"為4位)。
?。?) 解碼規(guī)則
邏輯"1"——連續(xù)采樣3個"1"
邏輯"0"——連續(xù)采樣3個"0"
具體做法是,用是經(jīng)編碼后比特流波特率3倍的時鐘頻率對編碼后的信號進行采樣(即一位采3次,取2次以上一樣的作為本次采樣最終結(jié)果)。如果連續(xù)采到3個"1",則解碼輸出為"1";如果連續(xù)采到3個"0",則解碼輸出為"0"。
從1B/16B編碼、解碼方法可以看出,經(jīng)過編碼之后,CAN信號流中不存在長時間的相同電平信號,有豐富的跳變沿供時鐘提取電路捕獲信號頻率;解碼時利用了編碼信號流中的特征碼,即連續(xù)3個以上的相同電平信號,采樣到連續(xù)的3個"1"或3個"0"就得到解碼結(jié)果。實際上,采用這種編解碼方法,一位編成為16位后,只有前3位是有用的信息,其余的都是冗余碼;但是這樣做可以縮短編解碼的延遲時間,以滿足CAN總線仲裁特性的要求。
3.3 編碼、解碼器的實現(xiàn)
本設(shè)計中采用可編程邏輯器件來實現(xiàn)對信號的編解碼,具體選用Altera公司的FLEX10K10系列FPGA;軟件開發(fā)平臺使用的是QuartusII 5.0和Modelsim SE5.8(第三方仿真工具);開發(fā)語言使用硬件描述語言VHDL。編碼、解碼器的硬件邏輯結(jié)構(gòu)如圖5所示。
邏輯功能的波形仿真結(jié)果如圖6所示。
4 實驗驗證
通過兩個CAN節(jié)點的通信實驗,驗證了該CAN光纖傳輸接口的正確性。實驗平臺結(jié)構(gòu)如圖7所示。
CAN通信節(jié)點使用光纖介質(zhì),與USB-CAN通信節(jié)點進行通信,并在PC機上顯示通信情況。在CAN總線各波特率下進行了兩個節(jié)點的收發(fā)實驗,結(jié)果證明該CAN光纖傳輸接口原理正確,具有可行性。實驗測得信號編、解碼以及光電轉(zhuǎn)換的延時時間(即t光電延遲),見表1。
5 采用光纖對CAN總線通信性能的改善
下面結(jié)合上述光電轉(zhuǎn)換實驗所獲得的實驗數(shù)據(jù),簡要討論一下當使用光纖替代雙絞線作為通信介質(zhì)后,CAN總線在通信性能上的改善。
在給定波特率下,光纖傳輸?shù)淖钸h距離L與信號在光纖中的傳輸時間t傳輸之間滿足以下關(guān)系:
L=V光纖×t傳輸
式中:V光纖為信號在光纖中的傳播速度。電磁波在介質(zhì)中的傳播速度為V=C/n(C為光速,n為介質(zhì)的折射率),光在光纖中的傳播速度近似為260 m/μs,電磁波在雙絞線中的傳播速牢大致為200m/μs。這里取t內(nèi)部延遲=0.4×t位時間,則可以估算出光纖傳輸時CAN總線的最大距離,如表2所列。采用光纖作為傳輸介質(zhì),CAN總線的最大傳輸距離能夠提高約40%。
從表2中可以看,由于CAN總線通信速率較低及非破壞性總線仲裁的特點,使用光纖傳輸介質(zhì),其傳輸距離的增加并不十分明顯,沒能充分發(fā)揮光纖傳輸大容量、遠距離的優(yōu)勢。但是使用光纖仍然有它巨大的潛力:
?、儆捎谝话汶姶泡椛涞念l譜和光波的頻譜相距甚遠,它不會疊加到光信號上或混入光信號中,也很難進入光纖芯內(nèi)影響光信號的傳送。因此,光纖通信系統(tǒng)特別適合于在有強烈電磁干擾的地區(qū)或場合中使用,諸如電力系統(tǒng)、電氣化鐵道中的通信系統(tǒng)等。
?、谟捎诠饫w的主要材料為二氧化硅,所以它比以銅為材料的電纜抗化學(xué)腐蝕和氧化等的性能強,即光纖的化學(xué)穩(wěn)定性好,壽命長,特別適宜在有腐蝕的區(qū)域(如化工廠等)使用。
?、酃饫w的尺寸小,重量輕,因此,光纖通信系統(tǒng)特別適合在一些空間有限的地方使用,比如船艦、飛機、車輛、火箭、導(dǎo)彈等場合。這在國防軍事上有十分重要的意義。
結(jié) 語
CAN總線應(yīng)用范圍的日趨廣泛,能夠適應(yīng)越來越復(fù)雜的環(huán)境,特別是一些強干擾、遠距離、地理分布不均、工作環(huán)境惡劣的應(yīng)用場合。傳統(tǒng)的雙絞線已不能滿足需要,采用光纖介質(zhì)不但能解決這些問題,而且給CAN總線應(yīng)用帶來更大的靈活性。實現(xiàn)光纖傳輸?shù)囊粋€關(guān)鍵點就是光纖傳輸接口的設(shè)計,本文提出了一種基于光纖收發(fā)一體模塊的接口方案及其實現(xiàn),并通過實驗驗證了設(shè)計的正確性,對于在CAN總線這樣速率較低的現(xiàn)場總線中使用光纖傳輸具有一定實用價值。