基于FPGA的PROFIBUS-DP總線光電收發器設計
3 FPGA邏輯設計
FPGA包括數據傳輸方向檢測功能塊、波特率檢測功能塊、數據交換功能塊等三個邏輯功能塊。它們的電端和光端都默認為接收狀態。數據傳輸方向檢測功能塊用于判斷哪個端口先來數據,然后把該端口數據輸出到波特率檢測功能塊以檢測其數據波特率,數據交換功能塊可根據確定好的數據傳輸方向和波特率來切換RS-485收發器的收發狀態,并最終實現數據的光電轉換傳輸。該三個邏輯功能塊之間的關系如圖3所示。
3.1 數據傳輸方向檢測邏輯
PROHBUS-DP總線協議的傳輸依賴RS-485接口,故在總線空閑狀態下,依靠RS-485接口前端的上拉和下拉電阻即可保證總線上的電平為“1”,RS-485收發器一般默認為接收狀態。由于RS-485數據傳輸為半雙工方式,同一時刻。線上的數據傳輸方向是單向的,且傳輸數據字節的起始位為低電平,這樣,就可以根據電端接收數據和光端接收數據的低電平到來的先后順序來判斷數據的傳輸方向是從電端到光端,還是從光端到電端。為了避免由于線路上的干擾或者數據收發元器件的特性造成的毛刺,可對接收到的電端數據和光端數據先進行濾波去抖動處理。圖4所示為數據傳輸方向檢測流程圖。
評論