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