Profibus和CAN現(xiàn)場總線的幀轉(zhuǎn)換
1、概述
現(xiàn)場總線是一種用于智能化現(xiàn)場設(shè)備和自動(dòng)化系統(tǒng)的開放式、數(shù)字化、雙向串行、多節(jié)點(diǎn)的通信總線。
在實(shí)際的生產(chǎn)建設(shè)中,我們將會(huì)經(jīng)常遇到將不同現(xiàn)場總線的設(shè)備集成在一起或者在某一現(xiàn)場總線中利用其他現(xiàn)場總線協(xié)議的設(shè)備的問題。這就涉及到了不同的現(xiàn)場總線協(xié)議的協(xié)議轉(zhuǎn)化。數(shù)據(jù)鍵路層的幀轉(zhuǎn)換是這些協(xié)議轉(zhuǎn)化中的一個(gè)很關(guān)鍵的問題。
在這里,我們以Profibus-DP和CAN這兩種當(dāng)今使用廣泛的現(xiàn)場總線來研究現(xiàn)場總線的協(xié)議幀轉(zhuǎn)化。
2、CAN現(xiàn)場總線的傳輸層協(xié)議簡介
傳輸層是CAN協(xié)議的核心。它把接收到的報(bào)文提供給對(duì)象層,以及接收來自對(duì)象層的報(bào)文。傳輸層負(fù)責(zé)位定時(shí)及同步、報(bào)文分幀、仲裁、應(yīng)答、錯(cuò)誤檢測和標(biāo)定、故障界定。
報(bào)文路由:報(bào)文的內(nèi)容由識(shí)別符命名。識(shí)別符不指出報(bào)文的目的地,但解釋數(shù)據(jù)的含義。因此,網(wǎng)絡(luò)上所有的節(jié)點(diǎn)可以通過報(bào)文濾波確定是否應(yīng)對(duì)該數(shù)據(jù)做出反應(yīng)。
報(bào)文傳輸由以下4個(gè)不同的幀類型所表示和控制:
? 數(shù)據(jù)幀:數(shù)據(jù)幀攜帶數(shù)據(jù)從發(fā)送器至接收器。
? 遠(yuǎn)程幀:總線單元發(fā)出遠(yuǎn)程幀,請求發(fā)送具有同一識(shí)別符的數(shù)據(jù)幀。
? 錯(cuò)誤幀:任何單元檢測到一總線錯(cuò)誤就發(fā)出錯(cuò)誤幀。
? 過載幀:過載幀用以在先行的和后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí)。
數(shù)據(jù)幀(或遠(yuǎn)程幀)通過幀間空間與前述的各幀分開。
在這里我們以數(shù)據(jù)幀為例來分析CAN的幀結(jié)構(gòu)。
2.1 數(shù)據(jù)幀
數(shù)據(jù)幀由7個(gè)不同的位場組成,如圖1所示:
圖1 數(shù)據(jù)幀的結(jié)構(gòu)
(1)幀起始
它標(biāo)志數(shù)據(jù)幀和遠(yuǎn)程幀的起始,由一個(gè)單獨(dú)的“顯性”位組成。
(2)仲裁域
仲裁域包括識(shí)別符(ID)和遠(yuǎn)程發(fā)送請求位(RTR)。
識(shí)別符(ID):識(shí)別符的長度為11位。這些位的發(fā)送順序是從ID-10到ID-0。最低位是ID-0。最高的7位(ID-10到ID-4)必須不能全是“隱性”。
RTR位:該位在數(shù)據(jù)幀里必須為“顯性”,而在遠(yuǎn)程幀里必須為“隱性”。
圖2 仲載域
圖3 控制域
(3)控制域
控制域由6個(gè)位組成,包括數(shù)據(jù)長度代碼和兩個(gè)將來作為擴(kuò)展用的保留位。所發(fā)送的保留位必須為“顯性”。數(shù)據(jù)長度代碼指示了數(shù)據(jù)域中字節(jié)數(shù)量,長度為4個(gè)位。
(4)CRC域
CRC域包括CRC序列,其后是CRC界定符,它包含一個(gè)單獨(dú)的“隱性”位。
(5)應(yīng)答域
應(yīng)答域長度為2位,包含應(yīng)答間隙和應(yīng)答界定符。在應(yīng)答域里,發(fā)送站發(fā)送兩個(gè)“隱性”位。當(dāng)接收器正確地接收到有效的報(bào)文,接收器就會(huì)在應(yīng)答間隙期間發(fā)送ACK信號(hào),向發(fā)送器發(fā)送一“顯性”的位以示應(yīng)答。
(6)幀結(jié)尾
每一個(gè)數(shù)據(jù)幀和遠(yuǎn)程幀均由一標(biāo)志序列界定。這個(gè)標(biāo)志序列由7個(gè)“隱性”位組成。
2.2 傳輸控制
(1)幀間空隙
對(duì)于不是“錯(cuò)誤被動(dòng)”的站,或者此站已作為前一報(bào)文的接收器,其幀間空隙如圖4所示:
圖4 幀間空隙(非錯(cuò)誤被動(dòng))
對(duì)于已作為前——報(bào)文發(fā)送器的“錯(cuò)誤被動(dòng)”的站,其幀間空間如圖5所示:
圖5 幀間空間(錯(cuò)誤被動(dòng))
其中,intermission是強(qiáng)制性的3個(gè)隱性位。
(2)位流編碼
幀的部分,諸如幀起始、仲裁域、控制域、數(shù)據(jù)域以及CRC序列,均通過位填充的方法編碼。無論何時(shí),發(fā)送器只要檢測到位流里有5個(gè)連續(xù)識(shí)別值的位,便自動(dòng)在位流里插入——補(bǔ)碼位。
數(shù)據(jù)幀或遠(yuǎn)程幀(CRC界定符、應(yīng)答域和幀末尾)的剩余位域形式相同,不填充。錯(cuò)誤幀和過載幀的形式也相同,但并不通過位填充的方法進(jìn)行編碼。其報(bào)文里的位流根據(jù)“不返回到零”之方法來編碼。這就是說,在整個(gè)位時(shí)間里,位電平要么為“顯性”,要么為“隱性”。
CAN協(xié)議范圍只規(guī)定了“顯性”和“隱性”兩種邏輯值,而沒有明確規(guī)定表示這些邏輯電平的物理狀態(tài)。根據(jù)邏輯關(guān)系,我們可以設(shè)“顯性”邏輯值為邏輯“0”,“隱性”邏輯值為邏輯1。
3、Profibus數(shù)據(jù)鏈路層幀格式及相關(guān)的地址規(guī)定
(1)幀字符(UART字符)
幀由幀字符組成
每個(gè)幀字符由11個(gè)位組成:1個(gè)開始位(ST);8個(gè)信息位;1個(gè)奇偶校驗(yàn)位(P);1個(gè)停止位。
評(píng)論