光纖接口適配器的研究與實現
馬銀平 宣亮亮
現代電子技術
摘要: 隨著存儲技術的迅速發(fā)展,存儲容量得到了迅速的增長,存儲系統(tǒng)的數據傳輸速度成為了主要的瓶頸。光纖的傳輸具有其速度上的優(yōu)勢,然而,在光纖傳輸要受到光纖通道接口的限制,因此光纖通道應用于高速數據傳輸的一個關鍵技術問題是接口的設計問題,本文對有效地解決高數據傳輸在接口處的瓶頸具有現實意義。
Abstract:
Key words :
引言
隨著經濟的高速發(fā)展和科技的快速進步,近幾年,光纖通信技術應運而生并快速成長。根據摩爾定律,CPU的處理速度每18個月翻一番。而光纖通信的傳輸帶寬每9個月就增加一倍,而成本降低一半。同時全球因特網流量每6個月就翻一番。作為當代通信領域的支柱技術,光纖通信正以每10年速率增長100倍的速度發(fā)展。其總的發(fā)展趨勢是速率越來越塊,可靠性越來越高,提供的業(yè)務種類越來越多。
隨著存儲技術的迅速發(fā)展,存儲容量得到了迅速的增長,存儲系統(tǒng)的數據傳輸速度成為了主要的瓶頸。光纖的傳輸具有其速度上的優(yōu)勢,然而,在光纖傳輸要受到光纖通道接口的限制,因此光纖通道應用于高速數據傳輸的一個關鍵技術問題是接口的設計問題,本文對有效地解決高數據傳輸在接口處的瓶頸具有現實意義。
1 方案設計
完整的實現要包含PC機軟件編程、Virtex-5開發(fā)板的底層鏈路實現。PC機的軟件編寫主要實現鏈路的創(chuàng)建注銷控制、數據的組幀、數據的傳輸控制、傳輸過程中的顯示;VirteX-5開發(fā)板主要實現數據的鏈路貫通、支持上位機所定義的幀結構的傳輸過程。
如圖1所示,接口適配器功能實現過程主要包含協(xié)議的正確理解,按照協(xié)議的幀結構和數據結構的組織、具體的實現模塊的設計與編寫、結合VirteX-5底層鏈路的貫通實現光纖通信接口適配器功能。
2 設計的具體實現
2.1 協(xié)議的分析與與裁剪
針對不同的應用環(huán)境應當對FC協(xié)議進行適當的裁剪,盡可能地有效利用協(xié)議標準。FC協(xié)議是一個具有五層組成的協(xié)議體系。包括:FC-0層、FC-1層、FC-2層、FC-3層、FC-4層。
各層的功能分別為:
(1):FC-O:主要規(guī)定了物理接口,包含傳輸介質,收發(fā)器及接口等。
(2)FC-1:8 B/10 B編碼;串化解串;比特與字同步。
(3)FC-2規(guī)定了光纖通道的傳輸機制:
有序集的檢測與識別;FC端口狀態(tài)機;幀的發(fā)送與接收,幀接收時要進行有效性檢查;流量控制;幀管理;交換與序列管理;數據幀與響應;多播與廣播;分段與重組;差錯檢測與回復。
(4)FC-3:基本鏈路服務;擴展鏈路服務;查詢組。
(5)FC-4:映射上層協(xié)議,本文主要是映射MILstd-1553B協(xié)議。
2.2 軟件編程中各模塊的代碼的設計
軟件實現的設計部分:GUI模塊設計、設備抽象層的設計、任務處理模塊的設計、FC的協(xié)議及物理功能模塊的設計。
(1)GUI部分主要是顯示作用,可以對接口適配器的相關參數進行設置和界面顯示。GUI模塊設計內容有:整體界面、鏈路參數區(qū)、鏈路建立區(qū)、信息顯示區(qū)。
(2)設備抽象層的設計。該部分在于屏蔽下層不同物理設備間的差異;提供較為簡便的方式,使上層模塊同邏輯進行通信。本層需要提供對上層支持的設備操作接口及在內部通過封裝WinDriver驅動提供的功能接口,實現對上層的功能支持。
(3)任務處理模塊的設計。主要實現對鏈路和數據各自的不同的任務操作情況。鏈路數據區(qū)與文件數據區(qū)分別需要保存各自的任務數據及狀態(tài),另外,它是GUI模塊變更LIST的依據,從而還需要保存下層協(xié)議所具備的狀態(tài)及數據。
(4)FC協(xié)議及物理功能模塊的設計。該部分主要描述任務發(fā)送協(xié)議與鏈路建立協(xié)議。
①鏈路建立的注冊過程:數據傳輸前,需要通過注冊建立發(fā)送端與接收端的鏈路。首先,發(fā)送端把待注冊的地址ID等信息嵌入幀信息中,發(fā)送幀信息給接收端;然后,接收端收到幀信息后,解讀出相關的信息,若符合幀的完整性等檢查,則兩端建立鏈路。若不滿足相關檢查則終止該次注冊過程。
②鏈路的注銷過程:當需要注銷鏈路時,首先,發(fā)送端把待注銷的地址ID等信息嵌入幀信息中,發(fā)送幀信息給接收端;然后,接收端收到幀信息后,解讀出相關的信息,若符合幀的完整性等檢查,則兩端注銷鏈路,若不滿足相關檢查則終止該次注銷過程。
③數據傳輸過程:數據傳輸是鏈路建立的根本目的,簡化的數據傳輸過程如圖2所示。
2.1 協(xié)議的分析與與裁剪
針對不同的應用環(huán)境應當對FC協(xié)議進行適當的裁剪,盡可能地有效利用協(xié)議標準。FC協(xié)議是一個具有五層組成的協(xié)議體系。包括:FC-0層、FC-1層、FC-2層、FC-3層、FC-4層。
各層的功能分別為:
(1):FC-O:主要規(guī)定了物理接口,包含傳輸介質,收發(fā)器及接口等。
(2)FC-1:8 B/10 B編碼;串化解串;比特與字同步。
(3)FC-2規(guī)定了光纖通道的傳輸機制:
有序集的檢測與識別;FC端口狀態(tài)機;幀的發(fā)送與接收,幀接收時要進行有效性檢查;流量控制;幀管理;交換與序列管理;數據幀與響應;多播與廣播;分段與重組;差錯檢測與回復。
(4)FC-3:基本鏈路服務;擴展鏈路服務;查詢組。
(5)FC-4:映射上層協(xié)議,本文主要是映射MILstd-1553B協(xié)議。
2.2 軟件編程中各模塊的代碼的設計
軟件實現的設計部分:GUI模塊設計、設備抽象層的設計、任務處理模塊的設計、FC的協(xié)議及物理功能模塊的設計。
(1)GUI部分主要是顯示作用,可以對接口適配器的相關參數進行設置和界面顯示。GUI模塊設計內容有:整體界面、鏈路參數區(qū)、鏈路建立區(qū)、信息顯示區(qū)。
(2)設備抽象層的設計。該部分在于屏蔽下層不同物理設備間的差異;提供較為簡便的方式,使上層模塊同邏輯進行通信。本層需要提供對上層支持的設備操作接口及在內部通過封裝WinDriver驅動提供的功能接口,實現對上層的功能支持。
(3)任務處理模塊的設計。主要實現對鏈路和數據各自的不同的任務操作情況。鏈路數據區(qū)與文件數據區(qū)分別需要保存各自的任務數據及狀態(tài),另外,它是GUI模塊變更LIST的依據,從而還需要保存下層協(xié)議所具備的狀態(tài)及數據。
(4)FC協(xié)議及物理功能模塊的設計。該部分主要描述任務發(fā)送協(xié)議與鏈路建立協(xié)議。
①鏈路建立的注冊過程:數據傳輸前,需要通過注冊建立發(fā)送端與接收端的鏈路。首先,發(fā)送端把待注冊的地址ID等信息嵌入幀信息中,發(fā)送幀信息給接收端;然后,接收端收到幀信息后,解讀出相關的信息,若符合幀的完整性等檢查,則兩端建立鏈路。若不滿足相關檢查則終止該次注冊過程。
②鏈路的注銷過程:當需要注銷鏈路時,首先,發(fā)送端把待注銷的地址ID等信息嵌入幀信息中,發(fā)送幀信息給接收端;然后,接收端收到幀信息后,解讀出相關的信息,若符合幀的完整性等檢查,則兩端注銷鏈路,若不滿足相關檢查則終止該次注銷過程。
③數據傳輸過程:數據傳輸是鏈路建立的根本目的,簡化的數據傳輸過程如圖2所示。

2.3 Virtex-5開發(fā)板的底層保證
(1)系統(tǒng)構造邏輯設計主要完成以下幾點功能:
控制PCIE硬核實現與上層軟件交互;對上層傳輸數據加CRC校驗;完成FC鏈路初始化過程;完成FC流控功能;完成FC-2差錯處理;控制ROCKET I/O把上層軟件數據通過ROCKET I/O發(fā)送;控制ROCKET、I/O把接收恢復的數據傳輸到上層軟件。
(2)邏輯設計的模塊組成:底層邏輯控制模塊主要完成FC物理層通信,它主要包括發(fā)送模塊、接收模塊和PCIE控制模塊三部分,每個模塊又根據功能不同劃分多個子模塊,在PCIE控制模塊中,有一些緩存來存放接收模塊傳送過的數據和相應的數據信息,發(fā)送模塊也會從PCIE控制模塊的緩存中讀取數據傳送出去,其原理框圖如圖3所示。
(1)系統(tǒng)構造邏輯設計主要完成以下幾點功能:
控制PCIE硬核實現與上層軟件交互;對上層傳輸數據加CRC校驗;完成FC鏈路初始化過程;完成FC流控功能;完成FC-2差錯處理;控制ROCKET I/O把上層軟件數據通過ROCKET I/O發(fā)送;控制ROCKET、I/O把接收恢復的數據傳輸到上層軟件。
(2)邏輯設計的模塊組成:底層邏輯控制模塊主要完成FC物理層通信,它主要包括發(fā)送模塊、接收模塊和PCIE控制模塊三部分,每個模塊又根據功能不同劃分多個子模塊,在PCIE控制模塊中,有一些緩存來存放接收模塊傳送過的數據和相應的數據信息,發(fā)送模塊也會從PCIE控制模塊的緩存中讀取數據傳送出去,其原理框圖如圖3所示。

數據發(fā)送模塊
該模塊通過讀取上位機的狀態(tài)信息來發(fā)送不同的信息,當ACK使能時,該模塊發(fā)ACK,當數據使能時,該模塊就發(fā)送固定幀數的數據,發(fā)送的數據是從緩存中讀取,CRC由該模塊添加。空閑時就發(fā)送IDLE碼。
數據接收模塊
接收模塊包括接收控制模塊、CRC模塊和臨時緩存模塊。主要完成數據和鏈路控制幀以及準備信號的接收,并實現CRC校驗,根據幀頭來判斷不同類型的數據幀或控制幀,并存入緩存中,同時將幀的相關信息也放入相應的緩存中。
PCIE接口控制模塊 該模塊主要根據PCIE總線上的地址對應的寄存器的值,譯碼成相應的使能把PCIE總線上數據寫入相應的數據發(fā)送buf-f,ACK發(fā)送buff反之根據邏輯輸入的使能,譯碼成對應的PCIE總線上對應地址的對應寄存器的值,并把數據接收的buffACK接收buff數據寫入相應的PCIE地址上。
2.4 最終實現
通過上位機與FPGA開發(fā)板的結合,實現了光纖通道接口適配器的高速性。傳輸效果圖如圖4所示。
該模塊通過讀取上位機的狀態(tài)信息來發(fā)送不同的信息,當ACK使能時,該模塊發(fā)ACK,當數據使能時,該模塊就發(fā)送固定幀數的數據,發(fā)送的數據是從緩存中讀取,CRC由該模塊添加。空閑時就發(fā)送IDLE碼。
數據接收模塊
接收模塊包括接收控制模塊、CRC模塊和臨時緩存模塊。主要完成數據和鏈路控制幀以及準備信號的接收,并實現CRC校驗,根據幀頭來判斷不同類型的數據幀或控制幀,并存入緩存中,同時將幀的相關信息也放入相應的緩存中。
PCIE接口控制模塊 該模塊主要根據PCIE總線上的地址對應的寄存器的值,譯碼成相應的使能把PCIE總線上數據寫入相應的數據發(fā)送buf-f,ACK發(fā)送buff反之根據邏輯輸入的使能,譯碼成對應的PCIE總線上對應地址的對應寄存器的值,并把數據接收的buffACK接收buff數據寫入相應的PCIE地址上。
2.4 最終實現
通過上位機與FPGA開發(fā)板的結合,實現了光纖通道接口適配器的高速性。傳輸效果圖如圖4所示。

3 結語
通過上位機與FPGA開發(fā)板的結合,模擬并實現了光纖通道在高速數據傳輸過程中接口處的設計。盡管該設計是上位機配合FPGA的形式實現,但僅就設計思路而言,對于實際開發(fā)光纖通道接口適配器具有一定的借鑒意義。
通過上位機與FPGA開發(fā)板的結合,模擬并實現了光纖通道在高速數據傳輸過程中接口處的設計。盡管該設計是上位機配合FPGA的形式實現,但僅就設計思路而言,對于實際開發(fā)光纖通道接口適配器具有一定的借鑒意義。
此內容為AET網站原創(chuàng),未經授權禁止轉載。