《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的PROFIBUS-DP總線光電收發(fā)器設(shè)計(jì)
基于FPGA的PROFIBUS-DP總線光電收發(fā)器設(shè)計(jì)
杜軍釗
摘要: 為了延長PROFIBUS-DP總線的傳輸距離、增加總線上的負(fù)載數(shù)目和提高通訊的穩(wěn)定性,文中給出了一種基于FPGA的PROFIBUS-DP總線光電收發(fā)器模塊來實(shí)現(xiàn)信號(hào)在RS-485雙絞線與光纖兩種介質(zhì)之間的相互轉(zhuǎn)換方法。
Abstract:
Key words :

O 引言
    PROFIlBUS-DP現(xiàn)場總線以其高速、低成本等優(yōu)點(diǎn)而廣泛應(yīng)用于制造業(yè)自動(dòng)化、流程工業(yè)自動(dòng)化和樓宇自動(dòng)化等行業(yè),它的物理層數(shù)據(jù)傳輸依賴RS-485接口。RS-485接口是一種工業(yè)領(lǐng)域內(nèi)廣泛使用的串行通信接口,可采用“差分”方式在屏蔽雙絞線中傳輸信號(hào),因而具有較好的抗共模干擾能力,通信距離可達(dá)千米。PROFIBUSDP總線信號(hào)也可使用屏蔽雙絞線傳輸,數(shù)據(jù)速率為9.6 kbps時(shí)的理論傳輸距離為1200米,波特率為12:Mbps時(shí)的理論傳輸距離為100米。但是,由于工業(yè)現(xiàn)場情況錯(cuò)綜復(fù)雜,各種干擾相互疊加,且RS-485標(biāo)準(zhǔn)規(guī)定單段網(wǎng)絡(luò)最多可支持32個(gè)節(jié)點(diǎn)(標(biāo)準(zhǔn)負(fù)載),因此,有必要使用一種中繼設(shè)備來將信號(hào)更準(zhǔn)確、更完整地傳輸?shù)竭h(yuǎn)端設(shè)備。而光纖和其他傳輸介質(zhì)相比具有寬頻、低損耗、屏蔽電磁輻射、重量輕等優(yōu)點(diǎn),因此,用光電收發(fā)器實(shí)現(xiàn)兩線制DP(RS-485)差分信號(hào)數(shù)據(jù)與光信號(hào)之間的轉(zhuǎn)換,能夠有效的提高信號(hào)傳輸距離和傳輸質(zhì)量,從而提高系統(tǒng)的可靠性與穩(wěn)定性。

1 光電收發(fā)模塊的配置原理
    本光電收發(fā)模塊的使用配置如圖1所示。從物理層來說,原來的一個(gè)網(wǎng)段被光纖分成兩段,此時(shí)。收發(fā)器應(yīng)視為相應(yīng)段的總線末端,因此,在收發(fā)器中默認(rèn)內(nèi)置了有終端匹配電阻,以使負(fù)載端輸入阻抗與傳輸線的特征阻抗相匹配,從而達(dá)到消除負(fù)載端信號(hào)反射的目的。每一個(gè)光電收發(fā)器在電氣性能上都占一個(gè)節(jié)點(diǎn),因此,每段總線上最多可以帶30個(gè)標(biāo)準(zhǔn)RS-485負(fù)載設(shè)備。



2 總體設(shè)計(jì)方案
   
圖2所示是光電收發(fā)器的硬件結(jié)構(gòu)框圖。該設(shè)計(jì)方案整體上由DP總線數(shù)據(jù)收發(fā)部分、光纖數(shù)據(jù)收發(fā)部分和數(shù)據(jù)傳輸方向控制部分組成。  FPGA作為主控制器負(fù)責(zé)控制數(shù)據(jù)傳輸?shù)姆较?、檢測波特率和數(shù)據(jù)交換功能。其中電源部分采用隔離的DC/DC來減少外部電路的影響。電端DP總線的RS-485收發(fā)器可選用SN75HVD06D,該芯片可支持10 Mbps數(shù)據(jù)速率;而光端的數(shù)據(jù)接收器和發(fā)送器則可選擇AVAGO公司的光發(fā)送器HFBR-14x4Z和光接收器HFBR-24x2Z,它們?cè)?0mA電流驅(qū)動(dòng)下,其62.5/125μm的多模光纖傳輸距離可達(dá)2 km。FPGA芯片選用ALTERA公司的Cvclone系列芯片EPlC3T144C8N,該芯片有2910個(gè)LE單兀、1個(gè)PLL和144個(gè)IO引腳,且性價(jià)比較高。



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


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


3.2 波特率檢測邏輯
    首先應(yīng)對(duì)由數(shù)據(jù)傳輸方向檢測功能塊選擇輸出的數(shù)據(jù)進(jìn)行濾波。不同的波特率分別用相應(yīng)的時(shí)鐘對(duì)濾波后的數(shù)據(jù)進(jìn)行采樣,若采到連續(xù)16個(gè)“1”,則說明總線目前處于空閑狀態(tài),下一個(gè)到來的低電平既是數(shù)據(jù)字節(jié)的起始位,之后即可開始接收數(shù)據(jù),在一個(gè)字節(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)確定的波特率位清零。而當(dāng)該波特率連續(xù)找到6次關(guān)鍵字時(shí),則代表找到了新的波特率,此時(shí)可將剛找到的波特率確定為當(dāng)前系統(tǒng)通訊速率,并將相應(yīng)標(biāo)志位置1。
3.3 數(shù)據(jù)交換邏輯
    數(shù)據(jù)傳輸方向和波特率確定之后,就可以進(jìn)行電端和光端的數(shù)據(jù)交換了。當(dāng)數(shù)據(jù)傳輸方向?yàn)殡姸说焦舛藭r(shí),電端RS-485收發(fā)器處于接收狀態(tài),數(shù)據(jù)由電端經(jīng)光發(fā)送器發(fā)送到光端線線路上;當(dāng)數(shù)據(jù)傳輸方向?yàn)楣舛说诫姸藭r(shí),在起始位數(shù)據(jù)“0”發(fā)送完畢之后,即可將電端RS-485收發(fā)器改為發(fā)送狀態(tài),在經(jīng)過10個(gè)當(dāng)前通訊波特率的bit時(shí)間后,再將RS-485收發(fā)器改為接收狀態(tài),并等待接收新的數(shù)據(jù)。圖5所示為數(shù)據(jù)交換流程圖。



4 結(jié)束語
    該設(shè)計(jì)的創(chuàng)新點(diǎn)在于其采用FPGA硬件實(shí)現(xiàn)光電信號(hào)之間的轉(zhuǎn)換,可以自適應(yīng)波特率變化,并自動(dòng)檢測波特率變化。能支持PROFIBUS-DP協(xié)議規(guī)定的所有波特率,且轉(zhuǎn)發(fā)數(shù)據(jù)無錯(cuò)包。與一般的RS-485中繼設(shè)備相比,不但在傳輸距離和總線的負(fù)載能力上有很大提高。而且在抗干擾和通訊的穩(wěn)定性方面也有突出優(yōu)勢(shì),可用于各種的PROFIBUS-DP總線工業(yè)現(xiàn)場。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。