0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于SJA1000和光纖收發(fā)一體模塊實(shí)現(xiàn)CAN總線光纖傳輸接口的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:單片機(jī)與嵌入式系統(tǒng)應(yīng)用 ? 作者:習(xí)亮;夏繼強(qiáng) ? 2021-05-20 10:15 ? 次閱讀

作為一種成熟的現(xiàn)場總線技術(shù),CAN(ControllerArea Network)總線在汽車、電力、機(jī)械、化工等工業(yè)控制領(lǐng)域得到了極為廣泛的應(yīng)用。CAN協(xié)議標(biāo)準(zhǔn)中規(guī)定了CAN總線支持的兩種傳輸介質(zhì)--雙絞線和光纖。目前,絕大多數(shù)CAN總線系統(tǒng)采用的都是雙絞線傳輸。光纖一般應(yīng)用于大容量、高速率的傳輸中,對于CAN總線這種傳輸速率較低、數(shù)據(jù)量較小的現(xiàn)場總線通信,光纖傳輸?shù)膬?yōu)勢得不到完全發(fā)揮,因此光纖傳輸?shù)膽?yīng)用還不多。國內(nèi)外多家研究機(jī)構(gòu)也都進(jìn)行了CAN總線光纖傳輸?shù)难芯?,但主要是基于分立光纖收發(fā)元件的方法。本文介紹了一種使用光纖收發(fā)一體模塊,結(jié)合編解碼算法實(shí)現(xiàn)CAN總線光纖傳輸接口的方案;根據(jù)CAN總線的特點(diǎn)和實(shí)驗(yàn)數(shù)據(jù),分析了CAN總線在光纖介質(zhì)下傳輸性能的改善。

1 CAN總線的雙絞線及光纖傳輸

1.1 CAN總線雙絞線傳輸

CAN總線典型的網(wǎng)絡(luò)拓?fù)涫强偩€結(jié)構(gòu)。1993年頒布的同際標(biāo)準(zhǔn)ISOll898對基于雙絞線的CAN總線傳輸介質(zhì)特性做出了建議:總線可具有兩種邏輯狀態(tài),即隱性(邏輯“1”)或顯性(邏輯“0”)。圖1為基于CAN總線控制器SJA1000和總線驅(qū)動器PCA82C250的CAN雙絞線傳輸網(wǎng)絡(luò)結(jié)構(gòu)圖。

基于SJA1000和光纖收發(fā)一體模塊實(shí)現(xiàn)CAN總線光纖傳輸接口的設(shè)計(jì)

CAN總線雙絞線傳輸接口的特點(diǎn)是技術(shù)上容易實(shí)現(xiàn),造價低廉;理論上節(jié)點(diǎn)數(shù)無限制,對環(huán)境電磁輻射有一定抑制能力。但隨著頻率的增長,雙絞線線對的衰減迅速增大;雙絞線還有所謂近端串?dāng)_,即在“發(fā)送線對”和“接收線對”之間仔在電磁耦合干擾。另外,雙絞線的傳輸速率受距離限制比較大。這些缺陷使得CAN總線不宜在強(qiáng)干擾、高速率、遠(yuǎn)距離的場合下使用雙絞線作為傳輸介質(zhì)。

1.2 CAN總線光纖傳輸

CAN協(xié)議支持光纖作為傳輸介質(zhì),但是由于CAN總線網(wǎng)絡(luò)一般采用總線型結(jié)構(gòu),并且其總線仲裁采取的是具有優(yōu)先級的非破壞性CSMA(載波偵聽多路訪問),而光纖信號的傳輸則是單向的,因此最簡單實(shí)用的方法是在某些總線支路上采用光纖介質(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 光纖傳輸接口實(shí)現(xiàn)方案

2.1 光纖收發(fā)模塊的選用

實(shí)現(xiàn)光纖傳輸?shù)囊粋€重要環(huán)節(jié)就是完成總線信號的光電轉(zhuǎn)換,可以使用專用的光纖收發(fā)器件。目前,光纖收發(fā)器有兩種類型:一種是基于分立元件的,即光接收和光發(fā)送模塊是獨(dú)立的。這種光收發(fā)模塊相對比較簡單,光發(fā)射部分主要由光源和偏置控制電路組成;光接收部分主要由光探測器、整形放大電路組成,一般采用塑料或多模光纖進(jìn)行傳輸。另一種是光纖收發(fā)一體模塊,它在光源、光探測、光器件封裝、驅(qū)動集成電路、放大集成電路技術(shù)進(jìn)步的基礎(chǔ)上,將接收和發(fā)送集成到一起、符合電信傳輸標(biāo)準(zhǔn)的光電子系統(tǒng);在光發(fā)射部分使用r性能更好的光源,并在接收部分加入了時鐘及再生判決電路等,一般采用單模光纖進(jìn)行傳輸。因此,光纖收發(fā)一體模塊在信號轉(zhuǎn)換的速率和穩(wěn)定性上都比分立的光纖收發(fā)器件有很大的提高,而且與外圍器件接口方便,單模光纖的色散、傳輸光功率消耗也比多模光纖小。

本設(shè)計(jì)中選用一款TTL光纖收發(fā)一體模塊,標(biāo)準(zhǔn)工業(yè)用l×9引腳,單+5V電源供電,光纖傳輸模式為單模,標(biāo)準(zhǔn)ST-ST光纖接口。該模塊驅(qū)動接口如圖3所示。

2.2 設(shè)計(jì)方案

由于光纖收發(fā)一體模塊中含有時鐘提取電路,要求所轉(zhuǎn)換的信號流要含有豐富的時鐘信息,以便時鐘提取電路準(zhǔn)確地捕獲信號的頻率,因此信號流中不宜包含較長的連“1”或連“0”。而CAN總線在空閑以及發(fā)送某些類型幀時會出現(xiàn)比較長的連“1”或連“0”,尤其在通信波特率比較低的情況下,連續(xù)相同電平的時間就會越長,這將會導(dǎo)致接收器捕獲不到信號流的準(zhǔn)確波特率,從而導(dǎo)致光電轉(zhuǎn)換后的信號的位時間不準(zhǔn)確甚至錯誤。因此,就要求對待轉(zhuǎn)換的CAN信號流進(jìn)行預(yù)先處理。最常用的方法就是進(jìn)行編碼,編碼后的信號流中包含豐富的時鐘信息,不會出現(xiàn)較長的連“1”或連“0”,經(jīng)過光纖傳輸后再進(jìn)行解碼還原。也就是說,在CAN控制器、驅(qū)動器與光電轉(zhuǎn)換模塊之間增加一個編解碼器。

據(jù)此提出一種基于CAN總線控制器SJA1000和光纖收發(fā)一體模塊的CAN總線光纖傳輸接口方案,其結(jié)構(gòu)如圖4所示。

接口分為發(fā)送端和接收端。發(fā)送端由CAN總線控制器SJA1000、信號編解碼器和光纖收發(fā)一體模塊組成;接收端由CAN總線驅(qū)動器PCA82C250、信號編解碼器和光纖收發(fā)一體模塊組成。CAN節(jié)點(diǎn)向總線發(fā)送數(shù)據(jù)時,發(fā)送端總線控制器SJA1000的發(fā)送信號TX經(jīng)編碼器進(jìn)行編碼之后,送至光纖收發(fā)一體模塊進(jìn)行信號的電一光轉(zhuǎn)換,然后通過光纖傳輸?shù)竭_(dá)接收端RX;接收端光纖收發(fā)一體模塊先對收到的光信號進(jìn)行光一電轉(zhuǎn)換,再由解碼器將編碼信號還原,最后通過總線驅(qū)動器PCA82C250與總線連接,完成數(shù)據(jù)發(fā)送過程。數(shù)據(jù)接收過程同理。

3 光電轉(zhuǎn)換編碼、解碼器設(shè)計(jì)

3.1 CAN總線仲裁機(jī)制對編解碼方案的要求

CAN總線的非破壞性總線仲裁機(jī)制的原理為:當(dāng)總線空閑時,任何單元均可發(fā)送報(bào)文;若同時有2個或更多的節(jié)點(diǎn)開始發(fā)送報(bào)文,則會出現(xiàn)總線沖突。對于總線訪問沖突,可借助于標(biāo)識符ID進(jìn)行逐位仲裁加以解決。仲裁期間,每個發(fā)送器將發(fā)送位電平同總線上檢測到的電平進(jìn)行比較:若相等,則節(jié)點(diǎn)繼續(xù)發(fā)送;若不相等,則表明節(jié)點(diǎn)失去仲裁,停止報(bào)文發(fā)送。只有總線訪問優(yōu)先權(quán)最高的節(jié)點(diǎn)繼續(xù)報(bào)文發(fā)送,其他優(yōu)先權(quán)較低的節(jié)點(diǎn)失去仲裁,主動停止報(bào)文發(fā)送,只有當(dāng)總線空閑時才能繼續(xù)啟動報(bào)文發(fā)送。因此,CAN節(jié)點(diǎn)每發(fā)送一位數(shù)據(jù)都要監(jiān)聽總線上的數(shù)據(jù)是否與所發(fā)送的一致。 在不考慮信號在光纖中傳輸時的衰減及CAN節(jié)點(diǎn)自身限制的前提下,為了保證CAN總線通信的正常進(jìn)行,在CAN總線的通信過程中必須保證信號延遲不能超過CAN總線的允許值,而這主要是由CAN總線物理層的位定時和同步功能決定的。CAN總線的位時間被定義為一位的持續(xù)時間。一個位時間可劃分為4個不重疊的時間段,即同步段(SYNC_SEG)、傳播段(PROP_SEG)、相位緩沖段1(PHASE_SEG1)和相位緩沖段2(PHASE_SEG2)。其中,同步段用于同步總線上不同的節(jié)點(diǎn),這一段內(nèi)要有一個跳變沿;傳播段用于補(bǔ)償網(wǎng)絡(luò)內(nèi)的物理延遲時間(包括總線上的信號傳播時間和節(jié)點(diǎn)的內(nèi)部延遲時間);相位緩沖段1和相位緩沖段2用于補(bǔ)償邊沿階段的誤差。由于CAN總線中各個節(jié)點(diǎn)的時鐘可能不一致,因此需要進(jìn)行重新同步。重新同步的結(jié)果,使相位緩沖段1增長,或使相位緩沖段2縮短,內(nèi)部的位時間從同步段重新開始。采樣點(diǎn)位于相位緩沖段1的結(jié)束,在采樣點(diǎn)時刻,CAN節(jié)點(diǎn)讀總線電平。通過編程采樣點(diǎn)的位置可以優(yōu)化總線定時。

綜上所述,假設(shè)信號在光纖中的傳輸時間為t傳輸,信號傳輸中因光電轉(zhuǎn)換造成的延遲時間為t光電延遲,CAN節(jié)點(diǎn)同步及內(nèi)部延遲為t內(nèi)部延遲,則應(yīng)滿足以下關(guān)系:

t傳輸+t光電延遲+t內(nèi)部延遲

式中,對于給定長度和波特率,光纖傳輸時間和節(jié)點(diǎn)內(nèi)部延遲時間是確定的,因此要盡量縮短光電轉(zhuǎn)換的延遲時間,即對CAN信號編解碼算法提出了特殊要求,要盡量縮短編解碼的延遲時間。

3.2 編碼、解碼方案

光纖傳輸中常采用的信號編碼有CMI碼、擾碼、8B/10B碼等。雖然這些編碼都能提供豐富的時鐘信息,但是由于CAN總線的總線仲裁是具有優(yōu)先級的非破壞性CSMA,這個特點(diǎn)決定了信號經(jīng)過編解碼后的延遲要盡可能得小。提出一種1B/16B編碼方法,編、解碼規(guī)則如下:

(1) 編碼規(guī)則

邏輯“1”--1110101010101010

邏輯“0”--0001010101010101

具體做法是,用是待編碼比特流波特率16倍的時鐘頻率對其每位進(jìn)行采樣,每一位采樣16次,然后根據(jù)約定好的編碼規(guī)則進(jìn)行編碼。這樣就將原比特流的一位編碼成新的16位傳輸,每位的長度是原來位時間的1/16,而總的位時間不變。編碼后的信號不會出現(xiàn)較長的連“1”或連“0”(最長的連“1”或連“0”為4位)。

(2) 解碼規(guī)則

邏輯“1”--連續(xù)采樣3個“1”

邏輯“0”--連續(xù)采樣3個“0”

具體做法是,用是經(jīng)編碼后比特流波特率3倍的時鐘頻率對編碼后的信號進(jìn)行采樣(即一位采3次,取2次以上一樣的作為本次采樣最終結(jié)果)。如果連續(xù)采到3個“1”,則解碼輸出為“1”;如果連續(xù)采到3個“0”,則解碼輸出為“0”。

從1B/16B編碼、解碼方法可以看出,經(jīng)過編碼之后,CAN信號流中不存在長時間的相同電平信號,有豐富的跳變沿供時鐘提取電路捕獲信號頻率;解碼時利用了編碼信號流中的特征碼,即連續(xù)3個以上的相同電平信號,采樣到連續(xù)的3個“1”或3個“0”就得到解碼結(jié)果。實(shí)際上,采用這種編解碼方法,一位編成為16位后,只有前3位是有用的信息,其余的都是冗余碼;但是這樣做可以縮短編解碼的延遲時間,以滿足CAN總線仲裁特性的要求。

3.3 編碼、解碼器的實(shí)現(xiàn)

本設(shè)計(jì)中采用可編程邏輯器件來實(shí)現(xiàn)對信號的編解碼,具體選用Altera公司的FLEX10K10系列FPGA;軟件開發(fā)平臺使用的是QuartusII 5.0和Modelsim SE5.8(第三方仿真工具);開發(fā)語言使用硬件描述語言VHDL。編碼、解碼器的硬件邏輯結(jié)構(gòu)如圖5所示。

邏輯功能的波形仿真結(jié)果如圖6所示。

4 實(shí)驗(yàn)驗(yàn)證 通過兩個CAN節(jié)點(diǎn)的通信實(shí)驗(yàn),驗(yàn)證了該CAN光纖傳輸接口的正確性。實(shí)驗(yàn)平臺結(jié)構(gòu)如圖7所示。

CAN通信節(jié)點(diǎn)使用光纖介質(zhì),與USB-CAN通信節(jié)點(diǎn)進(jìn)行通信,并在PC機(jī)上顯示通信情況。在CAN總線各波特率下進(jìn)行了兩個節(jié)點(diǎn)的收發(fā)實(shí)驗(yàn),結(jié)果證明該CAN光纖傳輸接口原理正確,具有可行性。實(shí)驗(yàn)測得信號編、解碼以及光電轉(zhuǎn)換的延時時間(即t光電延遲),見表1。

5 采用光纖對CAN總線通信性能的改善

下面結(jié)合上述光電轉(zhuǎn)換實(shí)驗(yàn)所獲得的實(shí)驗(yàn)數(shù)據(jù),簡要討論一下當(dāng)使用光纖替代雙絞線作為通信介質(zhì)后,CAN總線在通信性能上的改善。

在給定波特率下,光纖傳輸?shù)淖钸h(yuǎn)距離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總線通信速率較低及非破壞性總線仲裁的特點(diǎn),使用光纖傳輸介質(zhì),其傳輸距離的增加并不十分明顯,沒能充分發(fā)揮光纖傳輸大容量、遠(yuǎn)距離的優(yōu)勢。但是使用光纖仍然有它巨大的潛力:

①由于一般電磁輻射的頻譜和光波的頻譜相距甚遠(yuǎn),它不會疊加到光信號上或混入光信號中,也很難進(jìn)入光纖芯內(nèi)影響光信號的傳送。因此,光纖通信系統(tǒng)特別適合于在有強(qiáng)烈電磁干擾的地區(qū)或場合中使用,諸如電力系統(tǒng)、電氣化鐵道中的通信系統(tǒng)等。

②由于光纖的主要材料為二氧化硅,所以它比以銅為材料的電纜抗化學(xué)腐蝕和氧化等的性能強(qiáng),即光纖的化學(xué)穩(wěn)定性好,壽命長,特別適宜在有腐蝕的區(qū)域(如化工廠等)使用。

③光纖的尺寸小,重量輕,因此,光纖通信系統(tǒng)特別適合在一些空間有限的地方使用,比如船艦、飛機(jī)、車輛、火箭、導(dǎo)彈等場合。這在國防軍事上有十分重要的意義。

結(jié) 語

CAN總線應(yīng)用范圍的日趨廣泛,能夠適應(yīng)越來越復(fù)雜的環(huán)境,特別是一些強(qiáng)干擾、遠(yuǎn)距離、地理分布不均、工作環(huán)境惡劣的應(yīng)用場合。傳統(tǒng)的雙絞線已不能滿足需要,采用光纖介質(zhì)不但能解決這些問題,而且給CAN總線應(yīng)用帶來更大的靈活性。實(shí)現(xiàn)光纖傳輸?shù)囊粋€關(guān)鍵點(diǎn)就是光纖傳輸接口的設(shè)計(jì),本文提出了一種基于光纖收發(fā)一體模塊的接口方案及其實(shí)現(xiàn),并通過實(shí)驗(yàn)驗(yàn)證了設(shè)計(jì)的正確性,對于在CAN總線這樣速率較低的現(xiàn)場總線中使用光纖傳輸具有一定實(shí)用價值。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 光纖
    +關(guān)注

    關(guān)注

    19

    文章

    3795

    瀏覽量

    72716
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2848

    瀏覽量

    87839
收藏 人收藏

    評論

    相關(guān)推薦

    CAN控制器SJA1000及其應(yīng)用

    協(xié)議說明了種通用型CAN總線的開發(fā)與設(shè)計(jì)。    關(guān)鍵詞:CAN總線 
    發(fā)表于 10-03 14:15

    基于SJA1000CAN總線智能控制系統(tǒng)設(shè)計(jì)

    基于SJA1000CAN總線智能控制系統(tǒng)設(shè)計(jì)
    發(fā)表于 08-20 18:55

    CAN總線應(yīng)用sja1000 首發(fā)數(shù)據(jù)。

    _rcv_data(unsigned char * rcvdatabuf); //CAN總線接收數(shù)據(jù)函數(shù)bit SJA_command_control(unsigned char order);//
    發(fā)表于 11-18 17:34

    CAN總線光纖傳輸接口設(shè)計(jì)

    行解碼還原。也就是說,在CAN控制器、驅(qū)動器與光電轉(zhuǎn)換模塊之間增加個編解碼器。據(jù)此提出種基于CAN
    發(fā)表于 12-04 10:41

    種基于DSP與SJA1000CAN總線系統(tǒng)設(shè)計(jì)介紹

    ,于是就要通過加等待來延長訪問時間。ADSP2106x支持兩種等待方式,即內(nèi)等待(軟等待)和外等待(硬等待)。SJA1000CAN總線的連接選擇82C250作為收發(fā)器,選擇6N137
    發(fā)表于 06-06 05:00

    C8051F020型單片機(jī)與SJA1000型控制器接口電路

    。為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,SJA1000的TX1與RX1通過6N137型高速光耦后與TJA1050相連。這樣就很好地實(shí)現(xiàn)總線
    發(fā)表于 06-14 05:00

    如何用CH368驅(qū)動SJA1000 can總線板卡?

    沁恒工程師您好,公司打算開發(fā)CAN總線板卡,我看了貴司的CH368芯片,打算使用CH368外加SJA1000實(shí)現(xiàn),麻煩您幫忙評估下是否可
    發(fā)表于 10-10 09:00

    SJA1000CAN 總線系統(tǒng)節(jié)點(diǎn)的應(yīng)用

    介紹CAN 總線控制器SJA1000; 給出其在CAN 總線系統(tǒng)節(jié)點(diǎn)中的應(yīng)用方法、節(jié)點(diǎn)電路原理圖及初始化程序; 針對應(yīng)用
    發(fā)表于 05-13 16:43 ?62次下載

    SHARC DSP與SJA1000CAN總線接口設(shè)計(jì)

    SHARC DSP與SJA1000CAN總線接口設(shè)計(jì) 本文討論了DSP與CAN控制器SJA1000
    發(fā)表于 09-27 16:10 ?1395次閱讀
    SHARC DSP與<b class='flag-5'>SJA1000</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>接口</b>設(shè)計(jì)

    SJA1000 獨(dú)立的CAN 控制器應(yīng)用指南

    SJA1000 獨(dú)立的CAN 控制器應(yīng)用指南。
    發(fā)表于 05-06 11:29 ?31次下載

    CAN總線控制器SJA1000的初始化程序設(shè)計(jì)

    CAN總線控制器SJA1000的初始化程序設(shè)計(jì)。
    發(fā)表于 05-06 11:29 ?12次下載

    基于DSP與SJA1000CAN總線系統(tǒng)設(shè)計(jì)方案

    所要求的全部必要功能,因此,CAN控制器與其它微處理器的接口設(shè)計(jì)成為設(shè)計(jì)CAN總線系統(tǒng)的首要工作。本文重點(diǎn)介紹以SHARC DSP為核心的、基于SJ
    發(fā)表于 10-23 15:48 ?13次下載
    基于DSP與<b class='flag-5'>SJA1000</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>系統(tǒng)設(shè)計(jì)方案

    DSP與CAN控制器SJA1000總線接口的差別

    )的替代品,而且增加了種新的工作模式(PeliCAN),這種模式支持具有很多新功能的CAN2.0B協(xié)議。 SJA1000與微處理器的接口主要由8根數(shù)據(jù)和地址分時復(fù)用線完成:AD0~A
    發(fā)表于 10-30 15:00 ?5次下載

    CAN總線的雙絞線及光纖傳輸

    在分析CAN總線雙絞線和光纖傳輸特點(diǎn)的基礎(chǔ)上,提出種基于光纖
    發(fā)表于 04-20 10:24 ?33次下載

    基于SJA1000CAN節(jié)點(diǎn)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于SJA1000CAN節(jié)點(diǎn)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-13 11:40 ?6次下載
    基于<b class='flag-5'>SJA1000</b>的<b class='flag-5'>CAN</b>節(jié)點(diǎn)設(shè)計(jì)