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