新聞中心

        EEPW首頁 > 網絡與存儲 > 設計應用 > 用雙端口RAM實現與PCI總線接口的數據通訊

        用雙端口RAM實現與PCI總線接口的數據通訊

        作者:姚利民 孫逢春 李軍求 張承寧 時間:2008-05-28 來源:電子技術應用 收藏

          采用雙端口實現芯片之間的數據交換接口電路。

        本文引用地址:http://www.104case.com/article/83198.htm

          提出了一種使用解決雙端口地址譯碼和PCI接口芯片局部總線仲裁的的硬件設計方案,并給出了接口芯片寄存器配置實例,介紹了軟件包WinDriver開發設備驅動程序的具體過程。

          隨著計算機技術的不斷發展,為滿足外設間以及外設與主機間的高速數據傳輸,Intel公司于1991年提出了概念。PCI總線是一種能為主CPU及外設提供高性能的總線,其局部總線在33MHz總線時鐘、32位數據通路時,數據傳輸速率最高可達133Mbps。實際應用中,可通過PCI總線實現主機與外部設備的高速數據傳輸,有效解決數據的實時傳輸和存儲問題,為信號的實時處理打下良好基礎。

          本文主要提供一種基于PCI總線的數據傳輸系統設計方案,其中雙口起橋梁作用,完成上位機與外圍主控單元之間的數據握手。

          1 雙端口RAM實現PCI總線接口方案

          本系統主要用于解決上位機與外圍控制單元的數據傳輸問題。上位機運行信息診斷程序,通過PCI總線與外圍控制單元以一定速率傳輸數據,在主機中實時監控并保存數據。由于實現高速實時數據傳輸,數據量大,所以在PCI局部總線上插入一個高速雙端口RAM。雙端口RAM一端作為PCI總線接口的本地端存儲器,一端作為目標存儲器。需要傳輸保存的數據經處理后借助雙端口RAM和PCI總線接口完成了上位機與DSP的數據握手。本文提出的雙端口RAM實現PCI總線接口方案如圖1。

                

          考慮到PCI總線接口對局部總線的控制時序比較復雜,需要譯碼和控制電路來實現局部總線的訪問及控制。本系統使用解決雙口RAM的地址訪問競爭沖突問題。需解決的主要問題有:①PCI接口電路設計;②地址譯碼和總線仲裁;③PCI總線驅動程序開發。

          2 PCI接口電路設計

          PCI卡的設計一般采用兩種方案。一種是根據PCI協議在FPGA或CPLD中實現PCI總線接口控制器,但是由于PCI協議的復雜性,使得開發難度大、周期長;另一種使用現成的PCI接口芯片,用戶開發難度降低,只把重點放在PCI接口芯片局部總線的接口設計和PCI總線配置空間的初始化,而不用速度考慮PCI總線規范上眾多的協議規范,加快了開發時間。

          本數據傳輸系統使用PLX公司的PCI 9030總線接口芯片,以CPLD完成邏輯控制及與外設的連接,整個系統的硬件框圖如圖 2。其中雙端口RAM采用IDT71V321,CPLD選用XILINX公司的XC9536CPLD芯片,EEPROM選用NS公司的93CS56,控制單元DSP選用TMS 320LF2407A。

                

          2.1 PCI 9030內部結構及其數據傳輸

          PCI 9030是PLX公司開發的PCI總線目標接口芯片。其特點:低功耗,PQFP176針封裝,符合PCI V2.2規范;在PCI總線上是從設備,但在局部總線上是主設備;PCI 9030支持突發傳輸,有5個PCI總線到局部總線地址空間,9個可編程的通用I/O,4個可編程的片選,支持熱插拔。PCI 9030主要由PCI總線接口邏輯、局部總線接口邏輯、串行E2PROM接口邏輯和內部邏輯組成,結構框圖見圖3。

                

          PCI 9030支持PCI主設備直接訪問局部總線上的設備,數據傳輸方式分為內存映射的突發傳輸和I/O映射的單次傳輸,并且由PCI基址寄存器設置在PCI內存和I/O空間中的合適位置,另外局部映射寄存器允許PCI地址空間轉換到局部地址空間。

          2.2 配置實例

          系統訪問的雙口RAM存儲空間為2KB,要求將這個存儲器空間映射到局部地址空間0,采用內存方式映射,存儲器的數據寬度為 8位,并且不采用突發傳輸,讀寫時不可預取。下面介紹這個地址空間各個寄存器的具體配置過程。

          (1)配置地址范圍寄存器

          根據PCI配置寄存器與LAS0RR的對應關系以及雙口RAM的地址空間800H,取7FFH的補碼得到FFFFF800H。又因為按照設計要求,要映射到內存空間的任何位置并且設置為不可預取的,這樣LASORR寄存器后3位應該為000H。所以LAS0RR的值應該最終確定為FFFFF800H。

          (2)配置基址寄存器

          該寄存器的基址必須是地址空間范圍的整數倍,在本例中必須是2K的整數倍,可將基地址定為 00004000H,又由于基址寄存器位0為空間使能位,所以應將這一位設置1;至于位 2、位3,由于是映射到內存空間,設為00H即可。所以LAS0BA的值最終被確定為00004001H。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平潭县| 盐边县| 武威市| 托里县| 安徽省| 台山市| 葫芦岛市| 澄迈县| 姜堰市| 麻栗坡县| 河源市| 陇西县| 瑞金市| 阳朔县| 策勒县| 富源县| 财经| 都匀市| 武功县| 阳江市| 剑阁县| 炎陵县| 抚远县| 阿坝| 民乐县| 都兰县| 治县。| 东辽县| 临潭县| 衡阳县| 津南区| 射洪县| 海林市| 大竹县| 涞源县| 西安市| 西乌| 安庆市| 禹州市| 柳江县| 横山县|