一種基于數(shù)字電路的fc網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,特別涉及一種基于數(shù)字電路的FC 網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法。
【背景技術(shù)】
[0002] 在計算機(jī)通信領(lǐng)域,F(xiàn)C網(wǎng)絡(luò)因其高速、高可靠性、低延時、抗干擾能力強(qiáng)而得到廣 泛應(yīng)用,而能夠正確的處理故障數(shù)據(jù)是網(wǎng)絡(luò)健壯性的基本要求,因此注入故障數(shù)據(jù)就成為 FC網(wǎng)絡(luò)必不可少的一種檢驗手段,在FC網(wǎng)絡(luò)的測試驗證階段必不可少?,F(xiàn)有的FC網(wǎng)絡(luò)專用 測試設(shè)備提供此種功能,不過價格昂貴,而且使用較為繁瑣。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的是提供一種基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,通過在 底層對發(fā)送數(shù)據(jù)進(jìn)行處理,直接發(fā)送包含錯誤FC幀頭的數(shù)據(jù),進(jìn)而達(dá)到實現(xiàn)簡單,使用靈 活,降低成本的目的。
[0004] 為達(dá)到以上目的,本發(fā)明是采取如下技術(shù)方案予以實現(xiàn)的:
[0005] -種基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,包括以下步驟
[0006] 1)主機(jī)寫配置寄存器組;
[0007] 2)主機(jī)啟動錯誤注入模塊,錯誤注入模塊包括錯誤注入控制狀態(tài)機(jī)、計算單元、幀 頭組織單元和多路選擇單元;
[0008] 3)錯誤注入控制狀態(tài)機(jī)檢測發(fā)送緩沖是否未滿,當(dāng)發(fā)送緩沖未滿時,則啟動主機(jī) 數(shù)據(jù)傳輸;
[0009] 4)錯誤注入控制狀態(tài)機(jī)啟動計算單元和幀頭組織單元,并控制多路選擇單元選擇 幀頭輸出到發(fā)送緩沖中、或選擇主機(jī)數(shù)據(jù)輸出到發(fā)送緩沖中;
[0010] 5)計算單元在數(shù)據(jù)輸出完成后更新發(fā)送緩沖尾指針;
[0011] 6)發(fā)送模塊根據(jù)發(fā)送緩沖頭尾指針的值判斷是否有數(shù)據(jù)需要發(fā)送,若有則將發(fā)送 緩沖中的數(shù)據(jù)讀出并發(fā)送;
[0012] 7)發(fā)送模塊在發(fā)送完成后更新發(fā)送緩沖頭指針的值,等待下一次發(fā)送。
[0013] 上述配置寄存器組包括傳輸啟動寄存器、主機(jī)數(shù)據(jù)長度寄存器、FC幀頭模式選擇 寄存器、DID注入值寄存器、SID注入值寄存器、TYPE注入值寄存器、OXID注入值寄存器、RXID 注入值寄存器、RCTL注入值寄存器和FCTL注入值寄存器。
[0014]上述傳輸啟動寄存器主機(jī)寫有效,每寫一次表不啟動一幀傳輸;主機(jī)數(shù)據(jù)長度寄 存器主機(jī)可讀可寫,存儲主機(jī)發(fā)送數(shù)據(jù)的長度值;FC幀頭模式選擇寄存器主機(jī)可讀可寫,最 低位有效,〇表示主機(jī)數(shù)據(jù)中無 FC幀頭,1表示主機(jī)數(shù)據(jù)中有FC幀頭;DID注入值寄存器主機(jī) 可讀可寫,存儲要注入到FC幀頭中的DID值;SID注入值寄存器主機(jī)可讀可寫,存儲要注入到 FC幀頭中的SID值;TYTO注入值寄存器主機(jī)可讀可寫,存儲要注入到FC幀頭中的TYTO值; OXID注入值寄存器主機(jī)可讀可寫,存儲要注入到FC幀頭中的OXID值;RXID注入值寄存器主 機(jī)可讀可寫,存儲要注入到FC幀頭中的RXID值;RCTL注入值寄存器主機(jī)可讀可寫,存儲要注 入到FC幀頭中的RCTL值;FCTL注入值寄存器主機(jī)可讀可寫,存儲要注入到FC幀頭中的FCTL 值。
[0015] 上述錯誤注入控制狀態(tài)機(jī)控制計算單元和多路選擇單元的工作時序,包括5種狀 態(tài):空狀態(tài)SO、主機(jī)數(shù)據(jù)傳輸狀態(tài)Sl、幀頭傳輸狀態(tài)S2、幀尾傳輸狀態(tài)S3和傳輸完成狀態(tài)S4;
[0016] 錯誤注入控制狀態(tài)機(jī)最初處于空狀態(tài)SO,主機(jī)啟動傳輸后就轉(zhuǎn)移到主機(jī)數(shù)據(jù)傳輸 狀態(tài)Sl,主機(jī)數(shù)據(jù)傳輸完畢后轉(zhuǎn)移到幀頭傳輸狀態(tài)S2,幀頭傳輸完畢后轉(zhuǎn)移到幀尾傳輸狀 態(tài)S3,傳輸結(jié)束后轉(zhuǎn)移到完成狀態(tài)S4,最后回到空狀態(tài)SO。
[0017] 錯誤注入控制狀態(tài)機(jī)的啟動條件為傳輸啟動寄存器的寫操作。
[0018] 上述計算單元在錯誤注入控制狀態(tài)機(jī)的控制下計算發(fā)送緩沖的寫入地址和產(chǎn)生 寫信號,同時計算傳輸?shù)臄?shù)據(jù)長度。
[0019] 計算單元的工作流程如下:
[0020] ①當(dāng)錯誤注入控制狀態(tài)機(jī)處于SO狀態(tài)時,初始化主機(jī)數(shù)據(jù)長度計數(shù)器和幀頭長度 計數(shù)器為〇;
[0021] ②當(dāng)錯誤注入控制狀態(tài)機(jī)處于Sl狀態(tài)時,每個時鐘周期將主機(jī)數(shù)據(jù)長度計數(shù)器的 值自增1,并將發(fā)送緩沖尾指針的值、加主機(jī)數(shù)據(jù)長度計數(shù)器的值、再加6的結(jié)果作為發(fā)送緩 沖寫地址輸出,同時產(chǎn)生寫信號;
[0022] ③當(dāng)主機(jī)數(shù)據(jù)長度計數(shù)器的值等于主機(jī)長度寄存器的值時,產(chǎn)生主機(jī)數(shù)據(jù)傳輸完 成信號;
[0023] ④當(dāng)錯誤注入控制狀態(tài)機(jī)處于S2狀態(tài)時,每個時鐘周期將幀頭數(shù)據(jù)長度計數(shù)器的 值自增1,并將發(fā)送緩沖尾指針加幀頭數(shù)據(jù)長度計數(shù)器的值作為發(fā)送緩沖寫地址輸出,同時 產(chǎn)生寫信號;
[0024] ⑤當(dāng)幀頭數(shù)據(jù)長度計數(shù)器的值等于7時,產(chǎn)生幀頭數(shù)據(jù)傳輸完成信號;
[0025] ⑥當(dāng)錯誤注入控制狀態(tài)機(jī)處于S3狀態(tài)時,將發(fā)送緩沖尾指針的值、加主機(jī)數(shù)據(jù)長 度寄存器的值、再加7的結(jié)果作為發(fā)送緩沖寫地址輸出,同時產(chǎn)生寫信號;
[0026]⑦當(dāng)錯誤注入控制狀態(tài)機(jī)處于S4狀態(tài)時,將發(fā)送緩沖尾指針的值加1,跳回步驟 ①。
[0027] 幀頭組織單元根據(jù)配置寄存器組中、各字段注入值寄存器的值組織幀頭,并在錯 誤注入控制狀態(tài)機(jī)轉(zhuǎn)移到S2狀態(tài)前完成,將組織的幀頭保存在第一寄存器、第二寄存器、第 三寄存器、第四寄存器、第五寄存器、第六寄存器中。
[0028] 多路選擇單元根據(jù)錯誤注入控制狀態(tài)機(jī)所處的狀態(tài)選擇輸出相應(yīng)的數(shù)據(jù),具體如 下:
[0029]①當(dāng)錯誤注入控制狀態(tài)機(jī)處于SO或S4狀態(tài)時,多路選擇單元輸出全為0;
[0030] ②當(dāng)錯誤注入控制狀態(tài)機(jī)處于Sl狀態(tài)時,多路選擇單元選擇輸出主機(jī)數(shù)據(jù);
[0031] ③當(dāng)錯誤注入控制狀態(tài)機(jī)處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為1時選 擇輸出主機(jī)數(shù)據(jù);
[0032] ④當(dāng)錯誤注入控制狀態(tài)機(jī)處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為2時選 擇輸出第一寄存器的值;
[0033] ⑤當(dāng)錯誤注入控制狀態(tài)機(jī)處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為3時選 擇輸出第二寄存器的值;
[0034] ⑥當(dāng)錯誤注入控制狀態(tài)機(jī)處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為4時選 擇輸出第三寄存器的值;
[0035] ⑦當(dāng)錯誤注入控制狀態(tài)機(jī)處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為5時選 擇輸出第四寄存器的值;
[0036] ⑧當(dāng)錯誤注入控制狀態(tài)機(jī)處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為6時選 擇輸出第五寄存器的值;
[0037] ⑨當(dāng)錯誤注入控制狀態(tài)機(jī)處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為7時選 擇輸出第六寄存器的值;
[0038] ⑩當(dāng)錯誤注入控制狀態(tài)機(jī)處于S 3狀態(tài)時選擇輸出主機(jī)數(shù)據(jù)。
[0039] 與現(xiàn)有方法相比,本發(fā)明的有益效果是:
[0040] a)支持FPGA等集成電路的使用,易于實現(xiàn);
[0041] b)簡單易行,使用方便;
[0042] c)操作靈活,成本較低。
【附圖說明】
[0043]圖1是本發(fā)明的技術(shù)方案示意圖;
[0044]圖2是本發(fā)明技術(shù)方案工作流程圖;
[0045] 圖3是錯誤注入控制狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移示意圖;
[0046] 圖4是錯誤注入模塊計算單元工作流程圖;
[0047] 圖5是錯誤注入模塊多路選擇單元工作流程圖;
[0048]圖6是發(fā)送模塊工作流程圖。
【具體實施方式】
[0049] 本發(fā)明提出了一種基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,能夠根據(jù)主機(jī) 的配置,控制每一個發(fā)送FC幀的幀頭字段的填充值,從而直接產(chǎn)生并發(fā)送包含錯誤FC幀頭 的數(shù)據(jù)。與現(xiàn)有方法相比,本發(fā)明在實現(xiàn)相同功能的情況下,具有成本低,使用靈活,易于實 現(xiàn)的特點。
[0050] 如圖1所示,本發(fā)明包括配置寄存器組、錯誤注入模塊、發(fā)送緩沖和發(fā)送模塊。其 中,配置寄存器組用來儲存控制信息和需要注入的幀頭字段的值,由主機(jī)進(jìn)行配置;錯誤注 入模塊使用注入值寄存器中的值替換傳輸數(shù)據(jù)中相應(yīng)字段,并將最終數(shù)據(jù)填入相應(yīng)的發(fā)送 緩沖單元中;發(fā)送緩沖由M個Nbits的緩沖單元構(gòu)成,采用環(huán)形隊列方式管理。
[0051] 下面結(jié)合附圖及具體實例對本發(fā)明做進(jìn)一步的詳細(xì)說明。
[0052] 如圖1所示,一種基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,包括
[0053] 1)配置寄存器組
[0054]配置寄存器組的定義和說明如表1所示。
[0055] 表1配置寄存器組說明
[0056]
[0058] 2)錯誤注入t旲塊
[0059] 錯誤注入模塊包括錯誤注入控制狀態(tài)機(jī)、計算單元、幀頭組織單元和多路選擇單 元四部分,其實現(xiàn)方式分別如下所述。
[0060] a)錯誤注入控制狀態(tài)機(jī)
[0061] 錯誤注入控制狀態(tài)機(jī)控制計算單元、多路選擇單元的工作時序,確保兩個單元能 夠協(xié)調(diào)工作。狀態(tài)轉(zhuǎn)移關(guān)系如圖3所示,設(shè)計了 5種狀態(tài):空狀態(tài)S0、主機(jī)數(shù)據(jù)傳輸狀態(tài)S1、幀 頭傳輸狀態(tài)S2、幀尾傳輸狀態(tài)S3和傳輸完成狀態(tài)S4。狀態(tài)機(jī)最初處于空狀態(tài),一旦主機(jī)啟動 傳輸就轉(zhuǎn)移到主機(jī)數(shù)據(jù)傳輸狀態(tài),主機(jī)數(shù)據(jù)傳輸完畢后轉(zhuǎn)移到幀頭傳輸狀態(tài),幀頭傳輸完 畢后轉(zhuǎn)移到幀尾傳輸狀態(tài),傳輸結(jié)束后轉(zhuǎn)移到完成狀態(tài),最后回到空狀態(tài)。
[0062]錯誤注入控制狀態(tài)機(jī)啟動條件為fc_trans_en_reg的寫操作。
[0063] b)計算單元
[0064] 計算單元在錯誤注入控制狀態(tài)機(jī)的控制下計算發(fā)送緩沖的寫入地址和產(chǎn)生寫信 號,同時計算傳輸?shù)臄?shù)據(jù)長度,并在傳輸完成后更新發(fā)送緩沖尾指針。工作流程如圖4所示, 具體說明如下:
[0065] ①當(dāng)錯誤注入控制狀態(tài)機(jī)處于SO狀態(tài)時,初始化主機(jī)數(shù)據(jù)長度計數(shù)器和幀頭長度 計數(shù)器為〇;
[0066] ②當(dāng)錯誤注入控制狀態(tài)機(jī)處于Sl狀態(tài)時,每個時鐘周期將主機(jī)數(shù)據(jù)長度計數(shù)器的 值自增I,并將發(fā)送緩沖尾指針加主機(jī)