基于FPGA的PROFIBUS-DP總線光電收發(fā)器設(shè)計(jì)
3 FPGA邏輯設(shè)計(jì)
FPGA包括數(shù)據(jù)傳輸方向檢測功能塊、波特率檢測功能塊、數(shù)據(jù)交換功能塊等三個邏輯功能塊。它們的電端和光端都默認(rèn)為接收狀態(tài)。數(shù)據(jù)傳輸方向檢測功能塊用于判斷哪個端口先來數(shù)據(jù),然后把該端口數(shù)據(jù)輸出到波特率檢測功能塊以檢測其數(shù)據(jù)波特率,數(shù)據(jù)交換功能塊可根據(jù)確定好的數(shù)據(jù)傳輸方向和波特率來切換RS-485收發(fā)器的收發(fā)狀態(tài),并最終實(shí)現(xiàn)數(shù)據(jù)的光電轉(zhuǎn)換傳輸。該三個邏輯功能塊之間的關(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ā)元器件的特性造成的毛刺,可對接收到的電端數(shù)據(jù)和光端數(shù)據(jù)先進(jìn)行濾波去抖動處理。圖4所示為數(shù)據(jù)傳輸方向檢測流程圖。
評論