<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Profibus和CAN現(xiàn)場總線的幀轉(zhuǎn)換

          Profibus和CAN現(xiàn)場總線的幀轉(zhuǎn)換

          作者: 時間:2016-12-20 來源:網(wǎng)絡(luò) 收藏

          CAN幀里的數(shù)據(jù)域的長度最大只有8個字節(jié)。而且在我們給定的高層協(xié)議HiLon B中,又在數(shù)據(jù)域里拿了兩個字節(jié)作為目的地址和幀索引了,這樣就只剩下6個字節(jié)給我們傳輸數(shù)據(jù)。在最長的Profibus數(shù)據(jù)幀中,有246個數(shù)據(jù)字節(jié)。那么容納這個長幀的數(shù)據(jù)就需要246/6=41個CAN幀。剛才我們在CAN的幀里采用一個字節(jié)作為幀的索引字節(jié)。

          我們在進(jìn)行幀轉(zhuǎn)化時,把Profibus的幀拆分成每部分6字節(jié)后,加上目的地址和幀索引,就可以成為CAN幀中的內(nèi)容了。目的節(jié)點(diǎn)收齊這些幀之后再把它們連接還原,就得到了要傳送給它的信息。

          反向傳輸時,我們所要做的只是順序完全相反的事情。

          4.3 幀的控制信息的轉(zhuǎn)換

          Profibus數(shù)據(jù)幀中的其他控制信息還有 SD2 (68H),LE(數(shù)據(jù)長度),F(xiàn)C(幀控制八位組),F(xiàn)CS(幀檢查序列),ED(16H),這些信息都是根據(jù)幀本身的數(shù)據(jù)計算出來的,用于接收方對數(shù)據(jù)的識別。所以在協(xié)議轉(zhuǎn)換器正確的接收了幀之后,這些信息也就不需要了。接下來的工作就是把收到的信息編人CAN的幀,加上CAN的控制信息,計算出CRC序列,和在一起組成CAN的幀發(fā)到CAN節(jié)點(diǎn)上去;反過來,當(dāng)協(xié)議轉(zhuǎn)換器要把CAN的幀轉(zhuǎn)換成Profibus的幀時,也是在正確地接收CAN的幀之后,只提取其數(shù)據(jù)內(nèi)容,然后按照Profibus的協(xié)議生成一幅Profibus幀。

          5、差錯控制

          每種現(xiàn)場總線通訊協(xié)議幀都有它自己的錯誤檢測方式。我們在協(xié)議轉(zhuǎn)換的兩側(cè),要按照它們各自的方法去檢測錯誤。我們的協(xié)議轉(zhuǎn)換器如果檢測到一個錯誤,應(yīng)當(dāng)攔截這個錯誤。

          5.1 Profibus的錯誤檢測及控制

          如前所述,Profibus幀中用的是UART字符。第10位是奇偶校驗(yàn)位。檢測到任何一個字符的奇偶校驗(yàn)出錯,我們就知道該字符有錯誤了。

          Profibus的數(shù)據(jù)幀中有一個FCS位,是通過計算DA,SA,F(xiàn)C 和DATA UNIT的算術(shù)和獲得的一個檢驗(yàn)八位組。這個八位組可供 我們在接收到一個幀時來檢驗(yàn)數(shù)據(jù)的正確性。

          另外,還有些能明顯被發(fā)現(xiàn)的錯誤:如超時運(yùn)行、有缺陷的開始定界符和結(jié)束定界符、無效的幀長度、相應(yīng)次數(shù)等。協(xié)議轉(zhuǎn)化器在Profibus總線一側(cè),就是作為一個Profibus的節(jié)點(diǎn)在運(yùn)行。當(dāng)它不正確地接收到一個主動幀時,將不處理、應(yīng)答或回答。在此時隙 時間期滿后,發(fā)起方將再重試此請求。僅在接收到一個有效回答或重試(多次)不成功后,發(fā)起方才算完成了此請求。同理,如果協(xié)議轉(zhuǎn)換器發(fā)送主動幀后沒有正確的收到一個應(yīng)答幀,那么它也會不停的重試,直到一定次數(shù),才會把對方標(biāo)記為不運(yùn)行。

          5.2 CAN的錯誤檢測及控制

          5.2.1 錯誤類型

          CAN協(xié)議列出了以下5種不同的錯誤類型。協(xié)議轉(zhuǎn)換器必須捕捉并處理這些錯誤。

          (1)位錯誤

          站單元在發(fā)送位的同時也對總線進(jìn)行監(jiān)視。如果所發(fā)送的位值與所監(jiān)視的位值不相符合,則在此位時間里檢測到一個位錯誤(BIT ERROR)。

          (2)填充錯誤

          如果在使用位填充法進(jìn)行編碼的信息中,出現(xiàn)了第6個連續(xù)相同的位電平時,將檢測到一個填充錯誤。

          (3)CRC錯誤

          CRC序列包括發(fā)送器的CRC計算結(jié)果。接收器計算CRC的方法與發(fā)送器相同。如果計算結(jié)果與接收到CRC序列的結(jié)果不相符,則檢測到一個CRC錯誤(CRC ERROR)。

          (4)形式錯誤

          當(dāng)一個固定形式的位域含有1個或多個非法位,則檢測到一個“形式錯誤”(FORM ERROR)。

          (5)應(yīng)答錯誤

          只要在ACK間隙(ACK SLOT)期間所監(jiān)視的位不為“顯性”,則發(fā)送器會檢測到一個“應(yīng)答錯誤”(ACKNOWLEDGMENT ERROR)。

          5.2.2 故障界定狀態(tài)

          CAN定義了一個故障界定狀態(tài)機(jī)制。一個節(jié)點(diǎn)可能處于下列三種錯誤狀態(tài)中。

          (1)錯誤主動當(dāng)一個錯誤主動結(jié)點(diǎn)檢測到上述某個錯誤時,它將發(fā)送一個錯誤主動幀,該幀由6個連續(xù)的顯性位組成。這已發(fā)送覆蓋其他任何同時發(fā)送的幀,并導(dǎo)致其他節(jié)點(diǎn)都檢測到一個填充錯誤,并依次放棄當(dāng)前幀。

          (2)錯誤被動當(dāng)一個錯誤被動節(jié)點(diǎn)檢測到上述的某一個錯誤時,它將發(fā)出一個錯誤被動幀。該幀由6個連續(xù)的隱性位組成。這個幀會被同時出現(xiàn)的其他發(fā)送所覆蓋,如果其他站點(diǎn)沒有檢測到這一錯誤,不會丟棄當(dāng)前幀。

          (3)離線

          5.2.3 錯誤處理過程

          為進(jìn)行故障界定,我們的協(xié)議轉(zhuǎn)換器也應(yīng)當(dāng)設(shè)兩種計數(shù)器:發(fā)送錯誤計數(shù)器和接受錯誤計數(shù)器。然后,我們就可以把它作為一個普通的CAN接點(diǎn)參與到CAN網(wǎng)絡(luò)的運(yùn)行,故障的處理方法也是一樣的。

          (1)初始化錯誤計,數(shù)器的值等于0,節(jié)點(diǎn)開始錯誤主動狀態(tài),此時假設(shè)檢測到的所有錯誤都不是由該節(jié)點(diǎn)引起的。

          (2)根據(jù)檢測到的錯誤類型使相應(yīng)的計數(shù)器的值累加,有效的發(fā)送或接收又使這些計數(shù)器遞減,直至0。

          (3)當(dāng)這些計數(shù)器中的任何一個超出CAN定義的閾值時,該節(jié)點(diǎn)進(jìn)人錯誤被動狀態(tài)。該節(jié)點(diǎn)被認(rèn)為是導(dǎo)致錯誤的原因。

          (4)當(dāng)錯誤被動節(jié)點(diǎn)的發(fā)送及接收錯誤計數(shù)器值都減小到CAN定義的閾值以下時,節(jié)點(diǎn)重新進(jìn)人錯誤主動狀態(tài)。

          (5)當(dāng)發(fā)送錯誤計數(shù)值超過CAN定義的另一個閾值時,該節(jié)點(diǎn)進(jìn)人離線狀態(tài)。從離線狀態(tài)再進(jìn)人錯誤主動狀態(tài)就需要人的干預(yù)了。

          以上所述,是我們研究的現(xiàn)場總線協(xié)議轉(zhuǎn)換器在兩邊各自的現(xiàn)場總線范圍內(nèi)的錯誤控制和處理方法。一定要先解決各自的錯誤,才能再進(jìn)行幀的轉(zhuǎn)換。

          從Pfofibus的幀轉(zhuǎn)換到CAN的幀時,就是在通過校驗(yàn)確認(rèn)幀的內(nèi)容無誤后,才進(jìn)行地址和內(nèi)容的轉(zhuǎn)換,然后還要計算出該幀的CRC序列,供CAN段通訊用。反過來也是一樣。

          6、結(jié)語

          本文分析了Profibus和CAN的幀的特點(diǎn),構(gòu)思了在這兩種總線之間實(shí)現(xiàn)幀轉(zhuǎn)換的方法。但單純的幀轉(zhuǎn)換沒有意義,幀轉(zhuǎn)換只是現(xiàn)場總線的協(xié)議轉(zhuǎn)換中的一環(huán)。要實(shí)現(xiàn)幾種現(xiàn)場總線的協(xié)作,還有其他很多工作要做。

          國際電工委員會IEC在1984年就開始籌備制定單一現(xiàn)場總線國際標(biāo)準(zhǔn)。然而,由于行業(yè)與地域發(fā)展等歷史原因,加上各公司和企業(yè)集團(tuán)受自身利益的驅(qū)使,圍繞著現(xiàn)場總線技術(shù)的標(biāo)準(zhǔn)進(jìn)行了一場大戰(zhàn),最后經(jīng)過多方妥協(xié),于1999年年底通過了包含F(xiàn)F,Profibus等八種總線在內(nèi)的IEC61158,沒有實(shí)現(xiàn)制定單一標(biāo)準(zhǔn)的目標(biāo)。這個結(jié)局表明,在今后相當(dāng)長一段時間內(nèi)多種現(xiàn)場,總線將并存,控制網(wǎng)絡(luò)的系統(tǒng)集成與信息集成會面臨困難的復(fù)雜局面。無論是最終用戶還是制造商,普遍都在關(guān)注現(xiàn)場總線技術(shù)的發(fā)展新動向,都在尋求高性能低成本的解決方案。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: ProfibusCAN現(xiàn)場總線幀轉(zhuǎn)

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();