一種基于PCI總線的反射內(nèi)存卡設(shè)計(jì)
3 軟件設(shè)計(jì)
軟件設(shè)計(jì)包括驅(qū)動(dòng)程序和應(yīng)用程序兩部分。驅(qū)動(dòng)程序提供的API 接口主要包含以下四個(gè)方面的功能: 打開和關(guān)閉驅(qū)動(dòng)、配置反射內(nèi)存卡、數(shù)據(jù)傳輸、中斷控制與處理。當(dāng)應(yīng)用程序訪問反射內(nèi)存卡資源時(shí),反射內(nèi)存板必須打開, 一個(gè)句柄將返回到應(yīng)用程序。圖7是應(yīng)用程序處理的流程圖。
圖7 應(yīng)用程序流程圖
4 性能測試
用三塊反射內(nèi)存卡組成環(huán)形反射內(nèi)存網(wǎng), 由節(jié)點(diǎn)1向2 節(jié)點(diǎn)發(fā)送數(shù)據(jù), 節(jié)點(diǎn)2 發(fā)送到節(jié)點(diǎn)3, 由節(jié)點(diǎn)3 向節(jié)點(diǎn)1 發(fā)送確認(rèn)中斷, 記下此時(shí)的終止時(shí)間, 如表1 所示。
該反射內(nèi)存卡在windows 操作系統(tǒng)下進(jìn)行測試,由于windows 為非實(shí)時(shí)操作系統(tǒng),所以需發(fā)送大批量的數(shù)據(jù)進(jìn)行速率測試, 以克服操作系統(tǒng)本身的時(shí)延。試驗(yàn)中每次發(fā)送15Mbit 的數(shù)據(jù),根據(jù)傳輸速率= 總數(shù)據(jù)量/ 總時(shí)間算出傳輸速率。又由編解碼芯片的串行傳輸速率為1062.5MBd,數(shù)據(jù)傳輸速率為106.25MB/s,而數(shù)據(jù)包的長度是可變的, 從1 個(gè)雙字到16 個(gè)雙字, 每包數(shù)據(jù)包括32 位的header、32 位的地址數(shù)據(jù)和32 位的校驗(yàn)和,所以有效的數(shù)據(jù)傳輸速率在26MB/s 至88MB/s,我們測得的數(shù)據(jù)傳輸率為38.9 MB/s 至39.9 MB/s,可以得出該反射內(nèi)存樣卡功能正常。
表1 環(huán)形通訊傳輸速率表
5 結(jié)束語
本文介紹了一種基于PCI 總線的反射內(nèi)存卡的設(shè)計(jì)方法。給出了硬件電路設(shè)計(jì),在FPGA 內(nèi)完成數(shù)據(jù)緩存FIFO 及其控制器、SDRAM 控制器和編解碼控制器的設(shè)計(jì), 結(jié)構(gòu)清晰, 集成度高; 介紹了驅(qū)動(dòng)程序的設(shè)計(jì),提供了應(yīng)用程序接口; 采用三塊反射內(nèi)存卡搭建了驗(yàn)證系統(tǒng), 實(shí)驗(yàn)證明該反射內(nèi)存樣卡功能正常, 工作穩(wěn)定。
評論