FPGA的光纖通道接口控制芯片設計
4 軟件設計
接口控制芯片的軟件部分負責進行參數協商和處理與端到端數據傳輸相關的事務,包括端口注冊和交換注冊、提供不同類型的服務、端到端流量控制、序列級差錯檢測和恢復。
為了簡化軟件的設計,以嵌人式Linux操作系統作為接口控制芯片的軟件運行環境。通過設計一系列的操作函數,實現整個軟件系統。最重要的函數包括:端口注冊函數、IU發送函數和接收幀處理函數。
4.1 端口注冊函數PLogin_in()
注冊包含端口注冊和交換注冊。兩種注冊的流程類似,這里僅分析端口注冊。系統啟動后,需要對芯片的工作參數進行配置,注冊函數根據用戶的配置選擇注冊方式。如果用戶指定隱式注冊,那么注冊函數從配置文件中讀取默認配置參數配置芯片;如果用戶指定顯式注冊,那么注冊函數發送注冊請求,等對方端口返回響應后,注冊函數用響應的數據配置參數。端口注冊函數的工作流程如圖6所示。
4.2 IU發送函數Sen
4.3 接收幀處理函數Frm_Rcved()
當光纖通道傳輸核將正確的幀接收到并存儲于接收緩沖區后,通過狀態接口通知PowerPC。此時Frm_Rcved()函數開始處理幀頭,幀頭中需要檢查的參數很多,這里不在贅述。如果幀頭中的參數沒有錯誤,那么函數為這個新接收到的幀分配存儲空間,然后從接收緩沖區中將幀取到存儲器中,并以一定的方式和之前接收到的幀關聯起來(例如鏈表);如果幀頭中的參數有誤,則將幀丟棄并啟動中止序列協議進行序列恢復。
結 語
本文提出的方案以嵌入式技術和FPGA技術為基礎,使其具有極大的靈活性和可擴展性。在不同的應用環境中只需要對相應的軟硬件代碼進行適當的裁減或擴展即可,無需對PCB電路進行任何更改,具有極其廣泛的應用價值。
評論