新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的PROFIBUS-DP集線器設(shè)計(jì)

基于FPGA的PROFIBUS-DP集線器設(shè)計(jì)

作者: 時(shí)間:2010-06-30 來源:網(wǎng)絡(luò) 收藏


SD3的數(shù)據(jù)域長度可變,常用于SRD(發(fā)送數(shù)據(jù),且要求回復(fù)數(shù)據(jù))服務(wù),格式為:


SD4是令牌幀,格式如下:


SC為短應(yīng)答,格式為:


在PROFIBUS―DP協(xié)議中,RS485和光纖通常使用UART編碼格式,而在UART編碼中,每個(gè)字符由一個(gè)UART結(jié)構(gòu)的11位構(gòu)成,具體如下:


其中,Start=0;Parity=偶校驗(yàn)位;Stop=1
為了保證數(shù)據(jù)的準(zhǔn)確傳輸,必須知道起始位和結(jié)束位。判斷起始和結(jié)束的條件是要知道DP的傳輸速率。

3 DP數(shù)據(jù)轉(zhuǎn)發(fā)方式比較
DP HUB的數(shù)據(jù)轉(zhuǎn)換方式大體可分為兩種,即不檢驗(yàn)幀結(jié)束轉(zhuǎn)發(fā)和檢驗(yàn)幀結(jié)束轉(zhuǎn)發(fā)。
3.1 不檢驗(yàn)幀結(jié)束轉(zhuǎn)發(fā)
不檢驗(yàn)幀結(jié)束轉(zhuǎn)發(fā)是當(dāng)一路485檢測到信號(hào)線上有低電平信號(hào)時(shí)(DP協(xié)議定義信號(hào)線上閑時(shí)為高電平),由將其余七路485設(shè)置成發(fā)送狀態(tài),而把一路進(jìn)來的低電平脈沖信號(hào)轉(zhuǎn)發(fā)給其余七路。低電平脈沖結(jié)束后,再將其余七路恢復(fù)成接收狀態(tài),以等待下一個(gè)低脈沖的到來。
該方法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡單,缺點(diǎn)是當(dāng)HUB的主站給從站發(fā)送數(shù)據(jù)時(shí),其余路端如果進(jìn)來低電平干擾且恰好遇到主站485接收的是高電平信號(hào),則系統(tǒng)就會(huì)誤認(rèn)為主站發(fā)送數(shù)據(jù)結(jié)束而將其變?yōu)閺恼?。然后將有低電平干擾的從站變?yōu)橹髡荆瑢⒌碗娖礁蓴_當(dāng)作正常數(shù)據(jù)向其他從站轉(zhuǎn)發(fā)。
3.2 檢驗(yàn)幀結(jié)束轉(zhuǎn)發(fā)
檢驗(yàn)幀結(jié)束式轉(zhuǎn)發(fā)即一路485檢測到信號(hào)到來時(shí),由將其余七路485設(shè)置成發(fā)送狀態(tài),并按位將其轉(zhuǎn)發(fā)。它采用一定方法判斷幀的結(jié)束位,并當(dāng)判斷這個(gè)幀結(jié)束時(shí),由FPGA將七路485重新設(shè)置成接收狀態(tài),以等待下一個(gè)幀的到來。
該方式的優(yōu)點(diǎn)是數(shù)據(jù)傳輸準(zhǔn)確率高,但是也存在著系統(tǒng)資源占用較多的缺點(diǎn)。事實(shí)上,考慮到DP通信的安全性和可靠性,還是先檢測波特率后按位傳輸較好。下文將介紹DP―HUB是如何判斷幀結(jié)束這種方法來實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)的。

4 幀結(jié)束檢測
幀結(jié)束的檢測理論上可以分為碼元寬度檢測法和窮舉法判斷波特率兩種方法。
4.1 碼元寬度檢測法
本方法檢測的基本思想是找出13個(gè)脈沖中長度最小的位寬,該位寬即為碼元寬度,因?yàn)閁ART編碼和傳輸?shù)姆绞绞沟迷谝粋€(gè)字節(jié)包括11
個(gè)編碼位加上其前后2位共13個(gè)位,其中一定有1位碼元存在。這個(gè)碼元的寬度可用nT表示,其中T為時(shí)鐘周期,n為時(shí)鐘周期的個(gè)數(shù)。然后可以檢驗(yàn)數(shù)據(jù)的高電平持續(xù)長度,如果這個(gè)數(shù)據(jù)有一段高電平的長度大于16nT,則認(rèn)為該幀結(jié)束。這樣的依據(jù)是:一個(gè)幀的最短長度為一個(gè)字節(jié),一個(gè)字節(jié)是由11個(gè)碼元組成。通常為了保證結(jié)束判斷準(zhǔn)確而需要多取幾位,這里將其定為16個(gè)碼元。同時(shí)由于DP協(xié)議中規(guī)定報(bào)文幀中間的各個(gè)字符沒有空閑靜止?fàn)顟B(tài),而且數(shù)據(jù)通信上要有33個(gè)碼元的空閑時(shí)間來做為同步表示(SYN)。這樣,取16個(gè)碼元長度既能判斷出幀的結(jié)束,而又不會(huì)把下一次通信中的高電平信號(hào)誤認(rèn)為是上一個(gè)幀的結(jié)束。
這種方法的優(yōu)點(diǎn)是算法簡單,不需要解析幀的結(jié)構(gòu)。缺點(diǎn)是檢測碼元的時(shí)鐘頻率要求較高(為了準(zhǔn)確的測量碼元的寬度),因而功耗較大。



評(píng)論


相關(guān)推薦

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

關(guān)閉