基于FPGA的PROFIBUS-DP總線光電收發(fā)器設(shè)計
3.2 波特率檢測邏輯
首先應(yīng)對由數(shù)據(jù)傳輸方向檢測功能塊選擇輸出的數(shù)據(jù)進行濾波。不同的波特率分別用相應(yīng)的時鐘對濾波后的數(shù)據(jù)進行采樣,若采到連續(xù)16個“1”,則說明總線目前處于空閑狀態(tài),下一個到來的低電平既是數(shù)據(jù)字節(jié)的起始位,之后即可開始接收數(shù)據(jù),在一個字節(jié)(8 bits)的數(shù)據(jù)接收完畢后,即可判斷接收到的數(shù)據(jù)是否為關(guān)鍵字(關(guān)鍵字為PROFIBUS-DP總線協(xié)議數(shù)據(jù)幀的開始定界符SDx)。如果某一波特率連續(xù)找到3次關(guān)鍵字,則將其它波特率連續(xù)找到關(guān)鍵字的次數(shù)清零。并將原來已經(jīng)確定的波特率位清零。而當該波特率連續(xù)找到6次關(guān)鍵字時,則代表找到了新的波特率,此時可將剛找到的波特率確定為當前系統(tǒng)通訊速率,并將相應(yīng)標志位置1。
3.3 數(shù)據(jù)交換邏輯
數(shù)據(jù)傳輸方向和波特率確定之后,就可以進行電端和光端的數(shù)據(jù)交換了。當數(shù)據(jù)傳輸方向為電端到光端時,電端RS-485收發(fā)器處于接收狀態(tài),數(shù)據(jù)由電端經(jīng)光發(fā)送器發(fā)送到光端線線路上;當數(shù)據(jù)傳輸方向為光端到電端時,在起始位數(shù)據(jù)“0”發(fā)送完畢之后,即可將電端RS-485收發(fā)器改為發(fā)送狀態(tài),在經(jīng)過10個當前通訊波特率的bit時間后,再將RS-485收發(fā)器改為接收狀態(tài),并等待接收新的數(shù)據(jù)。圖5所示為數(shù)據(jù)交換流程圖。本文引用地址:http://www.ex-cimer.com/article/156953.htm
4 結(jié)束語
該設(shè)計的創(chuàng)新點在于其采用FPGA硬件實現(xiàn)光電信號之間的轉(zhuǎn)換,可以自適應(yīng)波特率變化,并自動檢測波特率變化。能支持PROFIBUS-DP協(xié)議規(guī)定的所有波特率,且轉(zhuǎn)發(fā)數(shù)據(jù)無錯包。與一般的RS-485中繼設(shè)備相比,不但在傳輸距離和總線的負載能力上有很大提高。而且在抗干擾和通訊的穩(wěn)定性方面也有突出優(yōu)勢,可用于各種的PROFIBUS-DP總線工業(yè)現(xiàn)場。
評論