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