專利名稱:基于pci總線的高速數(shù)據(jù)傳輸測(cè)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法。
背景技術(shù):
計(jì)算機(jī)總線是計(jì)算機(jī)各部件之間進(jìn)行信息傳輸?shù)墓餐ǖ?。微型?jì)算機(jī)系統(tǒng)中廣泛采用總線結(jié)構(gòu),其優(yōu)點(diǎn)是系統(tǒng)成本低、組態(tài)靈活、維修方便。采用總線標(biāo)準(zhǔn)設(shè)計(jì)、生產(chǎn)的硬件模塊兼容性強(qiáng),并通過(guò)系統(tǒng)總線可以方便地組合在一起,以構(gòu)成滿足不同需要的微機(jī)系統(tǒng)。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,微型計(jì)算機(jī)的體系結(jié)構(gòu)發(fā)生了顯著的變化。如CPU運(yùn)行速度的提高,多處理器結(jié)構(gòu)的出現(xiàn),高速緩沖存儲(chǔ)器的廣泛采用等,都要求有高速的總線來(lái)傳輸數(shù)據(jù),從而出現(xiàn)了多總線結(jié)構(gòu)。而在多總線結(jié)構(gòu)中,PCI局部總線不受制于處理器,為中央處理器及高速外圍設(shè)備提供一座橋梁,更可作為總線之間的交通指揮員,提高數(shù)據(jù)吞吐量,所以PCI局部總線被使用在越來(lái)越多的設(shè)備上?,F(xiàn)有的大部分PCI設(shè)備都帶有較大的動(dòng)態(tài)存儲(chǔ)器作為數(shù)據(jù)緩沖空間,數(shù)據(jù)的傳輸效率得到了進(jìn)一步提高。數(shù)據(jù)傳輸速率的提高對(duì)傳輸數(shù)據(jù)進(jìn)行測(cè)試的方法提出了更高的要求,但是現(xiàn)有的PCI總線數(shù)據(jù)傳輸測(cè)試方法不能滿足高速數(shù)據(jù)傳輸情況下驗(yàn)證傳輸數(shù)據(jù)正確性的要求。目前常用的PCI總線數(shù)據(jù)傳輸測(cè)試方法是通過(guò)PCI總線向底層設(shè)備存儲(chǔ)空間寫入數(shù)據(jù),然后再將數(shù)據(jù)讀回,對(duì)比寫入的數(shù)據(jù)和讀出的數(shù)據(jù)是否相同,即,對(duì)比寫入的數(shù)據(jù)和讀出的數(shù)據(jù)中的所以數(shù)據(jù)幀、每幀數(shù)據(jù)中的每一個(gè)數(shù)據(jù)是否相同,從而驗(yàn)證數(shù)據(jù)傳輸是否正確。該P(yáng)CI總線數(shù)據(jù)傳輸測(cè)試方法適用于進(jìn)行較低速率傳輸?shù)臄?shù)據(jù)測(cè)試,對(duì)于高速傳輸?shù)臄?shù)據(jù)測(cè)試卻難以勝任。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中所存在的上述不足,提供一種基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法,該方法能夠?qū)Ω咚賯鬏數(shù)臄?shù)據(jù)進(jìn)行測(cè)試。為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供了以下技術(shù)方案基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法,其原理是對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行檢測(cè)時(shí),如果應(yīng)用程序讀取的傳輸數(shù)據(jù)中每相鄰數(shù)據(jù)的差值不為1,則表明數(shù)據(jù)傳輸過(guò)程中出現(xiàn)數(shù)據(jù)錯(cuò);如果相鄰數(shù)據(jù)幀相同位置的數(shù)據(jù)的差值不是固定的值,則表明數(shù)據(jù)傳輸過(guò)程中出現(xiàn)丟幀現(xiàn)象;只有當(dāng)傳輸數(shù)據(jù)中每相鄰數(shù)據(jù)的差值為1,并且相鄰數(shù)據(jù)幀相同位置的數(shù)據(jù)的差值為固定的值,則說(shuō)明數(shù)據(jù)傳輸沒(méi)有出錯(cuò)?;赑CI總線的高速數(shù)據(jù)傳輸測(cè)試方法的具體步驟如下步驟I :初始化應(yīng)用程序,設(shè)置每一次檢測(cè)讀取的數(shù)據(jù)幀數(shù)目,分配數(shù)據(jù)緩沖區(qū)用于保存數(shù)據(jù),應(yīng)用程序向驅(qū)動(dòng)程序注冊(cè)讀取事件,等待事件觸發(fā);步驟2 :事件觸發(fā)后,調(diào)用驅(qū)動(dòng)程序中讀文件操作函數(shù)讀取數(shù)據(jù),并將讀取到的數(shù)、據(jù)按順序填入數(shù)據(jù)緩沖區(qū)保存;步驟3 :判斷讀取的數(shù)據(jù)幀數(shù)目是否達(dá)到預(yù)先設(shè)定的值,如果數(shù)據(jù)幀數(shù)目沒(méi)有達(dá)到設(shè)定的值,則返回步驟2,如果數(shù)據(jù)幀數(shù)目達(dá)到設(shè)定的值,則進(jìn)入步驟4 ;步驟4 :判斷數(shù)據(jù)緩沖區(qū)每幀數(shù)據(jù)中相鄰數(shù)據(jù)的差值是否為1,如果差值為1,則進(jìn)入步驟5,如果差值不為1,則進(jìn)入步驟7 ;步驟5 :判斷相鄰兩幀數(shù)據(jù)的相同位置數(shù)據(jù)的差值是否為16384,如果差值為16384,則進(jìn)入步驟6,如果差值不是16384,則進(jìn)入步驟7 ;由于FPGA產(chǎn)生的數(shù)據(jù)幀大小為64KB,而整型數(shù)值占4個(gè)字節(jié)的存儲(chǔ)空間,所以64KB的數(shù)據(jù)幀共有16384個(gè)整型數(shù)值; 步驟6 :通過(guò)測(cè)試,說(shuō)明數(shù)據(jù)在傳輸過(guò)程中沒(méi)有出錯(cuò);步驟7 :未通過(guò)測(cè)試,說(shuō)明數(shù)據(jù)在傳輸過(guò)程中出現(xiàn)錯(cuò)誤或丟幀現(xiàn)象,顯示錯(cuò)誤信息,即打印出錯(cuò)誤的位置及數(shù)據(jù),便于查找出現(xiàn)問(wèn)題的原因;按照上述步驟循環(huán)測(cè)試,逐漸縮短FPGA產(chǎn)生中斷的時(shí)間,以提高FPGA產(chǎn)生遞增數(shù)據(jù)的速度,實(shí)現(xiàn)對(duì)高速數(shù)據(jù)傳輸?shù)姆€(wěn)定性、可靠性檢測(cè)。根據(jù)本發(fā)明的實(shí)施例,上述基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法中,步驟I設(shè)置的每一次檢測(cè)讀取的數(shù)據(jù)幀數(shù)目為4096。FPGA產(chǎn)生的數(shù)據(jù)幀大小為64KB,4096個(gè)數(shù)據(jù)幀占用256MB內(nèi)存空間,如果數(shù)據(jù)幀數(shù)太多,系統(tǒng)可能分配不到足夠的內(nèi)存空間存放數(shù)據(jù),若將數(shù)據(jù)保存到硬盤上,則會(huì)影響測(cè)試速度。設(shè)置每次檢測(cè)讀取4096個(gè)數(shù)據(jù)幀利于快速檢查數(shù)據(jù)。優(yōu)選地,上述基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法中,步驟5的操作是判斷相鄰兩幀數(shù)據(jù)的第一個(gè)數(shù)據(jù)的差值是否為16384,如果差值為16384,則進(jìn)入步驟6,如果差值不是16384,則進(jìn)入步驟7。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果本發(fā)明基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法,通過(guò)判斷傳輸數(shù)據(jù)中每相鄰數(shù)據(jù)的差值,以及相鄰數(shù)據(jù)幀相同位置的數(shù)據(jù)的差值,逐漸縮短FPGA產(chǎn)生中斷的時(shí)間,提高FPGA產(chǎn)生遞增數(shù)據(jù)的速度,實(shí)現(xiàn)了基于PCI總線高速傳輸?shù)臄?shù)據(jù)穩(wěn)定性、可靠性檢測(cè),即,本發(fā)明基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法能夠?qū)Ω咚賯鬏數(shù)臄?shù)據(jù)進(jìn)行檢測(cè)。
圖I為本發(fā)明基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法工作流程圖。
具體實(shí)施例方式下面結(jié)合試驗(yàn)例及具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。但不應(yīng)將此理解為本發(fā)明上述主題的范圍僅限于以下的實(shí)施例,凡基于本發(fā)明內(nèi)容所實(shí)現(xiàn)的技術(shù)均屬于本發(fā)明的范圍。如圖I所示,本實(shí)施例列舉的基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法的步驟如下SlOl :初始化應(yīng)用程序,設(shè)置每一次檢測(cè)讀取的數(shù)據(jù)幀數(shù)目為4096,分配數(shù)據(jù)緩沖區(qū)用于保存數(shù)據(jù),應(yīng)用程序向驅(qū)動(dòng)程序注冊(cè)讀取事件,等待事件觸發(fā);
S102 :事件觸發(fā)后,應(yīng)用程序調(diào)用驅(qū)動(dòng)程序中讀文件操作函數(shù),讀取數(shù)據(jù);S103 :將從設(shè)備讀取到的數(shù)據(jù)按順序填入數(shù)據(jù)緩沖區(qū),保存;S104:為了測(cè)試方便,設(shè)備上的FPGA不斷產(chǎn)生遞增的數(shù)據(jù),判斷讀取的數(shù)據(jù)幀數(shù)目是否達(dá)到4096,如果數(shù)據(jù)幀數(shù)目沒(méi)有達(dá)到4096,則返回S102,如果數(shù)據(jù)幀數(shù)目達(dá)到4096,則進(jìn)入S105 ;S105 :檢查數(shù)據(jù)緩沖區(qū)中每幀數(shù)據(jù)相鄰數(shù)據(jù)的差值;S106 :判斷每幀數(shù)據(jù)相鄰數(shù)據(jù)的差值是否為1,如果差值為1,則進(jìn)入S107,如果差值不為1,則進(jìn)入S109 ;S107:檢查并判斷相鄰兩幀數(shù)據(jù)的第一個(gè)數(shù)的差值是否為16384,如果差值為16384,則進(jìn)入S108,如果差值不是16384,則進(jìn)入S109 ; S108 :通過(guò)測(cè)試,說(shuō)明數(shù)據(jù)在傳輸過(guò)程中沒(méi)有出錯(cuò);S109:未通過(guò)測(cè)試,說(shuō)明數(shù)據(jù)在傳輸過(guò)程中出現(xiàn)錯(cuò)誤或丟幀現(xiàn)象,顯示錯(cuò)誤信息,即打印出錯(cuò)誤的位置及數(shù)據(jù),便于查找出現(xiàn)問(wèn)題的原因。按照上述步驟循環(huán)測(cè)試,逐漸縮短FPGA產(chǎn)生中斷的時(shí)間,以提高FPGA產(chǎn)生遞增數(shù)據(jù)的速度,實(shí)現(xiàn)對(duì)高速數(shù)據(jù)傳輸?shù)姆€(wěn)定性、可靠性檢測(cè)。由于本發(fā)明基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法在進(jìn)行測(cè)試時(shí),只需檢查每幀數(shù)據(jù)中相鄰數(shù)據(jù)的差值、以及相鄰數(shù)據(jù)幀相同位置的數(shù)據(jù)差值,所以能夠?qū)崿F(xiàn)高速傳輸數(shù)據(jù)的測(cè)試。
權(quán)利要求
1.基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法,其特征在干,該測(cè)試方法包括如下步驟 步驟I :初始化應(yīng)用程序,設(shè)置每一次檢測(cè)讀取的數(shù)據(jù)幀數(shù)目,分配數(shù)據(jù)緩沖區(qū)用于保存數(shù)據(jù),應(yīng)用程序向驅(qū)動(dòng)程序注冊(cè)讀取事件,等待事件觸發(fā); 步驟2 :事件觸發(fā)后,調(diào)用驅(qū)動(dòng)程序中讀文件操作函數(shù)讀取數(shù)據(jù),并將讀取到的數(shù)據(jù)按順序填入數(shù)據(jù)緩沖區(qū)保存; 步驟3 :判斷讀取的數(shù)據(jù)幀數(shù)目是否達(dá)到預(yù)先設(shè)定的值,如果數(shù)據(jù)幀數(shù)目沒(méi)有達(dá)到設(shè)定的值,則返回步驟2,如果數(shù)據(jù)幀數(shù)目達(dá)到設(shè)定的值,則進(jìn)入步驟4 ; 步驟4 :判斷數(shù)據(jù)緩沖區(qū)每幀數(shù)據(jù)中相鄰數(shù)據(jù)的差值是否為1,如果差值為1,則進(jìn)入步驟5,如果差值不為I,則進(jìn)入步驟7 ; 步驟5 :判斷相鄰兩幀數(shù)據(jù)的相同位置數(shù)據(jù)的差值是否為16384,如果差值為16384,則進(jìn)入步驟6,如果差值不是16384,則進(jìn)入步驟7 ; 步驟6 :通過(guò)測(cè)試,說(shuō)明數(shù)據(jù)在傳輸過(guò)程中傳輸正確; 步驟7 :未通過(guò)測(cè)試,說(shuō)明數(shù)據(jù)在傳輸過(guò)程中出現(xiàn)錯(cuò)誤或丟幀現(xiàn)象,顯示錯(cuò)誤信息,即打印出錯(cuò)誤的位置及數(shù)據(jù),便于查找出現(xiàn)問(wèn)題的原因; 按照上述步驟I 步驟7循環(huán)測(cè)試,逐漸縮短FPGA產(chǎn)生中斷的時(shí)間,提高FPGA產(chǎn)生遞增數(shù)據(jù)的速度,實(shí)現(xiàn)對(duì)高速數(shù)據(jù)傳輸?shù)姆€(wěn)定性、可靠性檢測(cè)。
2.根據(jù)權(quán)利要求I所述的基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法,其特征在于,所述步驟I中設(shè)置的每一次檢測(cè)讀取的數(shù)據(jù)幀數(shù)目為4096。
3.根據(jù)權(quán)利要求I所述的基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法,其特征在于,所述步驟5的操作是判斷相鄰兩幀數(shù)據(jù)的第一個(gè)數(shù)據(jù)的差值是否為16384,如果差值為16384,則進(jìn)入步驟6,如果差值不是16384,則進(jìn)入步驟7。
全文摘要
本發(fā)明公開(kāi)了一種基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法,該方法包括步驟設(shè)置每次檢測(cè)數(shù)據(jù)幀的數(shù)目,分配數(shù)據(jù)緩沖區(qū);讀取數(shù)據(jù)并保存在數(shù)據(jù)緩沖區(qū);判斷讀取的數(shù)據(jù)幀數(shù)目是否達(dá)到設(shè)定的值,若沒(méi)有,則返回上一步繼續(xù)讀取數(shù)據(jù);若達(dá)到設(shè)定值,則判斷每幀數(shù)據(jù)中相鄰數(shù)據(jù)的差值是否為1,若不為1,則顯示錯(cuò)誤信息;若差值為1,則判斷兩相鄰數(shù)據(jù)幀相同位置數(shù)據(jù)的差值是否為16384,若不為16384,則顯示錯(cuò)誤信息;若差值為16384,則通過(guò)測(cè)試。本發(fā)明基于PCI總線的高速數(shù)據(jù)傳輸測(cè)試方法在進(jìn)行測(cè)試時(shí),只需檢查每幀數(shù)據(jù)中相鄰數(shù)據(jù)的差值、及相鄰數(shù)據(jù)幀相同位置的數(shù)據(jù)差值,故能夠?qū)崿F(xiàn)高速傳輸數(shù)據(jù)的測(cè)試。
文檔編號(hào)G06F11/22GK102736966SQ20121019297
公開(kāi)日2012年10月17日 申請(qǐng)日期2012年6月12日 優(yōu)先權(quán)日2012年6月12日
發(fā)明者何戎遼, 吳偉林, 姜維, 王亮, 肖躍先 申請(qǐng)人:成都林海電子有限責(zé)任公司