本發(fā)明涉及光纖通道總線協(xié)議測試技術(shù),屬于總線協(xié)議測試領(lǐng)域,尤其涉及一種具有交互能力的通道協(xié)議數(shù)據(jù)發(fā)生方法。
背景技術(shù):
光纖通道技術(shù)憑借超高速的傳輸速率(最高可達(dá)到10Gbps的傳輸速率),良好的抗干擾性能,穩(wěn)定的傳輸質(zhì)量等特點(diǎn)正在航空通信,海量數(shù)據(jù)存儲(chǔ)等領(lǐng)域到廣泛應(yīng)用,對(duì)光纖通道總線設(shè)備測試需求很高。如何模擬實(shí)際光纖通道設(shè)備的數(shù)據(jù)發(fā)生是光纖通道總線協(xié)議測試的關(guān)鍵技術(shù)之一?,F(xiàn)在一般的光纖通道協(xié)議測試中都是編輯一組幀數(shù)據(jù)或原語,按一定的順序循環(huán)或單次發(fā)送,不具有反饋能力,即不能根據(jù)接收的數(shù)據(jù)選擇性地發(fā)送某些幀,尤其當(dāng)需要模擬一些命令-響應(yīng)方式的高層協(xié)議時(shí),這種的簡單協(xié)議數(shù)據(jù)發(fā)送方式不能很好地模擬實(shí)際光纖通道設(shè)備的通信情況。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問題,提供一種具有交互能力的光纖通道協(xié)議數(shù)據(jù)發(fā)生方法,該方法具有反饋能力,可以等待接收到某種特定類型的幀,原語或錯(cuò)誤再發(fā)送,或者延時(shí)一段時(shí)間再發(fā)送,同時(shí)對(duì)發(fā)送數(shù)據(jù)按優(yōu)先級(jí)分類,可以循環(huán)發(fā)送一組幀也可以單次發(fā)送一組幀。采用這種方法實(shí)現(xiàn)的光纖通道協(xié)議數(shù)據(jù)發(fā)生功能可以很好地模擬實(shí)際光纖通道設(shè)備的通信情況,更準(zhǔn)確地進(jìn)行測試分析。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種具有交互能力的光纖通道協(xié)議數(shù)據(jù)發(fā)生方法,包括FPGA及與FPGA連接的DDR,包括以下步驟:
為每個(gè)發(fā)送端口設(shè)置具有不同優(yōu)先級(jí)別的發(fā)送隊(duì)列,并為每個(gè)發(fā)送隊(duì)列分配存儲(chǔ)空間;
選擇一個(gè)發(fā)送隊(duì)列,插入所需要的幀數(shù)據(jù)、原語、等待條件或時(shí)延;
設(shè)置發(fā)送隊(duì)列的發(fā)送方式;
啟動(dòng)發(fā)送后,將發(fā)送隊(duì)列中的數(shù)據(jù)依次寫入由FPGA控制的DDR對(duì)應(yīng)緩沖區(qū)中,由FPGA讀取DDR中的發(fā)送數(shù)據(jù),根據(jù)控制字判斷發(fā)送類型,如果是等待條件則等待接收到的協(xié)議數(shù)據(jù)滿足條件后,再發(fā)送后面的數(shù)據(jù);如果是時(shí)延則等待指定的時(shí)間再發(fā)送;如果是原語或幀數(shù)據(jù)則將協(xié)議數(shù)據(jù)按照標(biāo)準(zhǔn)的幀格式進(jìn)行組裝和發(fā)送。
為每個(gè)發(fā)送端口設(shè)置三個(gè)發(fā)送隊(duì)列,分別為發(fā)送隊(duì)列1、發(fā)送隊(duì)列2、發(fā)送隊(duì)列3,發(fā)送隊(duì)列1優(yōu)先級(jí)最高,發(fā)送隊(duì)列3優(yōu)先級(jí)最低。
每個(gè)發(fā)送隊(duì)列在分配的存儲(chǔ)空間內(nèi)以4字節(jié)為單位存儲(chǔ);當(dāng)空間滿后,不能再插入發(fā)送數(shù)據(jù)。
所述幀數(shù)據(jù)中能插入錯(cuò)誤,包括CRC、Disparity、長幀、短幀。
插入接收等待條件時(shí),能夠設(shè)置的條件包括:幀定界符、幀內(nèi)容、錯(cuò)誤或原語。
幀定界符、幀內(nèi)容與錯(cuò)誤三個(gè)條件能進(jìn)行與、或邏輯組合,再與原語選擇條件進(jìn)行或,形成等待條件。
所述幀定界符包括選擇一種SOF或EOF;所述幀內(nèi)容包括設(shè)置偏移位置、四字節(jié)數(shù)據(jù)字、四個(gè)字節(jié)掩碼;所述錯(cuò)誤包括CRC、Disparity、短幀、錯(cuò)幀。
所述發(fā)送隊(duì)列的發(fā)送方式包括循環(huán)或單次。
設(shè)置為循環(huán)發(fā)送方式時(shí),循環(huán)發(fā)送該隊(duì)列中的數(shù)據(jù),優(yōu)先級(jí)低于此隊(duì)列中的數(shù)據(jù)將不會(huì)發(fā)送;
設(shè)置為單次方式時(shí),將該隊(duì)列的數(shù)據(jù)發(fā)送完后,發(fā)送低于此發(fā)送隊(duì)列優(yōu)先級(jí)的下一個(gè)發(fā)送隊(duì)列中的數(shù)據(jù)。
在緩沖區(qū)中,每個(gè)4字節(jié)的協(xié)議數(shù)據(jù)字對(duì)應(yīng)一個(gè)4字節(jié)的控制字。
本發(fā)明的有益效果:
1.一種具有交互方式的光纖通道協(xié)議數(shù)據(jù)發(fā)生方法,可以等待接收到某種特定類型的幀或原語時(shí)才發(fā)送一組協(xié)議數(shù)據(jù),也可以延時(shí)一段時(shí)間再發(fā)送。同時(shí)對(duì)發(fā)送數(shù)據(jù)按優(yōu)先級(jí)分類,可以循環(huán)發(fā)送一組數(shù)據(jù)也可以單次發(fā)送一組數(shù)據(jù)。
2.本發(fā)明的方法具有反饋能力,這種數(shù)據(jù)發(fā)生方法可以更好地模擬實(shí)際光纖通道總線設(shè)備,尤其是具有命令-響應(yīng)方式高層協(xié)議的通信方式,使得對(duì)光纖通道設(shè)備的性能測試更準(zhǔn)確。
附圖說明
圖1為交互方式協(xié)議數(shù)據(jù)發(fā)生流程圖;
圖2接收等待條件示意圖。
具體實(shí)施方式
下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
本實(shí)施例給出一種本發(fā)明實(shí)施的系統(tǒng),一種多端口的光纖通道總線協(xié)議測試系統(tǒng),包括FPGA及與FPGA連接的DDR,F(xiàn)PGA的GTX接口與光纖模塊連接,F(xiàn)PGA完成數(shù)據(jù)發(fā)生與捕獲功能。該系統(tǒng)具有光纖通道總線協(xié)議數(shù)據(jù)發(fā)生功能,數(shù)據(jù)捕獲、協(xié)議分析功能,可以對(duì)光纖通道設(shè)備及網(wǎng)絡(luò)進(jìn)行測試分析。
參照?qǐng)D1的數(shù)據(jù)發(fā)生流程圖,一種具有交互能力的光纖通道協(xié)議數(shù)據(jù)發(fā)生方法,包括以下步驟:
(1)、為每個(gè)發(fā)送端口設(shè)置三個(gè)發(fā)送隊(duì)列,三個(gè)隊(duì)列具有不同的發(fā)送優(yōu)先級(jí),發(fā)送隊(duì)列1優(yōu)先級(jí)最高,發(fā)送隊(duì)列3優(yōu)先級(jí)最低。每個(gè)隊(duì)列分配一定的存儲(chǔ)空間,以4字節(jié)為單位。當(dāng)空間滿后,不能再插入發(fā)送數(shù)據(jù)。
(2)、選擇一個(gè)發(fā)送隊(duì)列,插入所需要的幀數(shù)據(jù)、原語、等待條件或時(shí)延;并且?guī)瑪?shù)據(jù)中可插入錯(cuò)誤(CRC、Disparity,長幀、短幀)。
(3)、插入接收等待條件時(shí),可設(shè)置如下條件:幀定界符(選擇某種SOF、EOF)、幀內(nèi)容(設(shè)置偏移位置,四字節(jié)數(shù)據(jù)字,四個(gè)字節(jié)掩碼)、錯(cuò)誤(CRC、Disparity、短幀、錯(cuò)幀)或原語;幀定界符、幀內(nèi)容與錯(cuò)誤三個(gè)條件可進(jìn)行與、或邏輯組合,再與原語選擇條件進(jìn)行或,形成等待條件,參見圖2。
(4)、設(shè)置發(fā)送隊(duì)列的發(fā)送方式:循環(huán)或單次。
(5)、啟動(dòng)發(fā)送后,將三個(gè)發(fā)送隊(duì)列中的數(shù)據(jù)依次寫入由FPGA控制的DDR對(duì)應(yīng)緩沖區(qū)中,每個(gè)4字節(jié)的協(xié)議數(shù)據(jù)字對(duì)應(yīng)一個(gè)4字節(jié)的控制字。由FPGA讀DDR中的發(fā)送數(shù)據(jù),根據(jù)控制字判斷發(fā)送類型,如果是等待條件則等待接收到的協(xié)議數(shù)據(jù)滿足條件后,再發(fā)送后面的數(shù)據(jù);如果是時(shí)延則等待指定的時(shí)間再發(fā)送;如果是原語或幀數(shù)據(jù)則將協(xié)議數(shù)據(jù)按照標(biāo)準(zhǔn)的幀格式進(jìn)行組裝和發(fā)送。
(6)、如果設(shè)置為循環(huán)發(fā)送方式,則循環(huán)發(fā)送該隊(duì)列中的數(shù)據(jù),優(yōu)先級(jí)低于此隊(duì)列中的數(shù)據(jù)將不會(huì)發(fā)送;如選擇單次方式,則將該隊(duì)列的數(shù)據(jù)發(fā)送完后,發(fā)送低于此發(fā)送隊(duì)列優(yōu)先級(jí)的下一個(gè)發(fā)送隊(duì)列中的數(shù)據(jù)。
可以等待接收到某種特定類型的幀、原語或錯(cuò)誤時(shí)才發(fā)送一組協(xié)議數(shù)據(jù),也可以延時(shí)一段時(shí)間再發(fā)送。同時(shí)對(duì)發(fā)送數(shù)據(jù)按優(yōu)先級(jí)分類,可以循環(huán)發(fā)送一組數(shù)據(jù)也可以單次發(fā)送一組數(shù)據(jù)。
接收等待條件分為四組:幀定界符(SOF/EOF)、幀內(nèi)容、錯(cuò)誤及原語,其中幀定界符、幀內(nèi)容與錯(cuò)誤三個(gè)條件可進(jìn)行與、或邏輯組合,再與原語選擇條件進(jìn)行或,形成等待條件。
上述雖然結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行了描述,但并非對(duì)本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動(dòng)即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以內(nèi)。