基于PROFIBUS-DP現場(chǎng)總線(xiàn)的光電收發(fā)器設計
O 引言
PROFIBUS-DP現場(chǎng)總線(xiàn)以其高速、低成本等優(yōu)點(diǎn)而廣泛應用于制造業(yè)自動(dòng)化、流程工業(yè)自動(dòng)化和樓宇自動(dòng)化等行業(yè),它的物理層數據傳輸依賴(lài)RS-485接口。RS-485接口是一種工業(yè)領(lǐng)域內廣泛使用的串行通信接口,可采用“差分”方式在屏蔽雙絞線(xiàn)中傳輸信號,因而具有較好的抗共模干擾能力,通信距離可達千米。PROFIBUSDP總線(xiàn)信號也可使用屏蔽雙絞線(xiàn)傳輸,數據速率為9.6 kbps時(shí)的理論傳輸距離為1200米,波特率為12:Mbps時(shí)的理論傳輸距離為100米。但是,由于工業(yè)現場(chǎng)情況錯綜復雜,各種干擾相互疊加,且RS-485標準規定單段網(wǎng)絡(luò )最多可支持32個(gè)節點(diǎn)(標準負載),因此,有必要使用一種中繼設備來(lái)將信號更準確、更完整地傳輸到遠端設備。而光纖和其他傳輸介質(zhì)相比具有寬頻、低損耗、屏蔽電磁輻射、重量輕等優(yōu)點(diǎn),因此,用光電收發(fā)器實(shí)現兩線(xiàn)制DP(RS-485)差分信號數據與光信號之間的轉換,能夠有效的提高信號傳輸距離和傳輸質(zhì)量,從而提高系統的可靠性與穩定性。
1 光電收發(fā)模塊的配置原理
本光電收發(fā)模塊的使用配置如圖1所示。從物理層來(lái)說(shuō),原來(lái)的一個(gè)網(wǎng)段被光纖分成兩段,此時(shí)。收發(fā)器應視為相應段的總線(xiàn)末端,因此,在收發(fā)器中默認內置了有終端匹配電阻,以使負載端輸入阻抗與傳輸線(xiàn)的特征阻抗相匹配,從而達到消除負載端信號反射的目的。每一個(gè)光電收發(fā)器在電氣性能上都占一個(gè)節點(diǎn),因此,每段總線(xiàn)上最多可以帶30個(gè)標準RS-485負載設備。
2 總體設計方案
圖2所示是光電收發(fā)器的硬件結構框圖。該設計方案整體上由DP總線(xiàn)數據收發(fā)部分、光纖數據收發(fā)部分和數據傳輸方向控制部分組成。 FPGA作為主控制器負責控制數據傳輸的方向、檢測波特率和數據交換功能。其中電源部分采用隔離的DC/DC來(lái)減少外部電路的影響。電端DP總線(xiàn)的RS-485收發(fā)器可選用SN75HVD06D,該芯片可支持10 Mbps數據速率;而光端的數據接收器和發(fā)送器則可選擇AVAGO公司的光發(fā)送器HFBR-14x4Z和光接收器HFBR-24x2Z,它們在50mA電流驅動(dòng)下,其62.5/125μm的多模光纖傳輸距離可達2 km。FPGA芯片選用ALTERA公司的Cvclone系列芯片EPlC3T144C8N,該芯片有2910個(gè)LE單兀、1個(gè)PLL和144個(gè)IO引腳,且性?xún)r(jià)比較高。

3 FPGA邏輯設計
FPGA包括數據傳輸方向檢測功能塊、波特率檢測功能塊、數據交換功能塊等三個(gè)邏輯功能塊。它們的電端和光端都默認為接收狀態(tài)。數據傳輸方向檢測功能塊用于判斷哪個(gè)端口先來(lái)數據,然后把該端口數據輸出到波特率檢測功能塊以檢測其數據波特率,數據交換功能塊可根據確定好的數據傳輸方向和波特率來(lái)切換RS-485收發(fā)器的收發(fā)狀態(tài),并最終實(shí)現數據的光電轉換傳輸。該三個(gè)邏輯功能塊之間的關(guān)系如圖3所示。

3.1 數據傳輸方向檢測邏輯
PROHBUS-DP總線(xiàn)協(xié)議的傳輸依賴(lài)RS-485接口,故在總線(xiàn)空閑狀態(tài)下,依靠RS-485接口前端的上拉和下拉電阻即可保證總線(xiàn)上的電平為“1”,RS-485收發(fā)器一般默認為接收狀態(tài)。由于RS-485數據傳輸為半雙工方式,同一時(shí)刻。線(xiàn)上的數據傳輸方向是單向的,且傳輸數據字節的起始位為低電平,這樣,就可以根據電端接收數據和光端接收數據的低電平到來(lái)的先后順序來(lái)判斷數據的傳輸方向是從電端到光端,還是從光端到電端。為了避免由于線(xiàn)路上的干擾或者數據收發(fā)元器件的特性造成的毛刺,可對接收到的電端數據和光端數據先進(jìn)行濾波去抖動(dòng)處理。圖4所示為數據傳輸方向檢測流程圖。

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所示為數據交換流程圖。

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)。
評論