用雙端口RAM實(shí)現(xiàn)與PCI總線接口數(shù)據(jù)通訊
采用雙端口RAM實(shí)現(xiàn)DSP與PCI總線芯片之間的數(shù)據(jù)交換接口電路。
提出了一種使用CPLD解決雙端口RAM地址譯碼和PCI接口芯片局部總線仲裁的的硬件設(shè)計(jì)方案,并給出了PCI總線接口芯片寄存器配置實(shí)例,介紹了軟件包WinDriver開(kāi)發(fā)設(shè)備驅(qū)動(dòng)程序的具體過(guò)程。
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,為滿足外設(shè)間以及外設(shè)與主機(jī)間的高速數(shù)據(jù)傳輸,Intel公司于1991年提出了PCI總線概念。PCI總線是一種能為主CPU及外設(shè)提供高性能數(shù)據(jù)通訊的總線,其局部總線在33MHz總線時(shí)鐘、32位數(shù)據(jù)通路時(shí),數(shù)據(jù)傳輸速率最高可達(dá)133Mbps。實(shí)際應(yīng)用中,可通過(guò)PCI總線實(shí)現(xiàn)主機(jī)與外部設(shè)備的高速數(shù)據(jù)傳輸,有效解決數(shù)據(jù)的實(shí)時(shí)傳輸和存儲(chǔ)問(wèn)題,為信號(hào)的實(shí)時(shí)處理打下良好基礎(chǔ)。
本文主要提供一種基于PCI總線的數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)方案,其中雙口RAM起橋梁作用,完成上位機(jī)與外圍主控單元之間的數(shù)據(jù)握手。
1 雙端口RAM實(shí)現(xiàn)PCI總線接口方案
本系統(tǒng)主要用于解決上位機(jī)與外圍控制單元的數(shù)據(jù)傳輸問(wèn)題。上位機(jī)運(yùn)行信息診斷程序,通過(guò)PCI總線與外圍控制單元以一定速率傳輸數(shù)據(jù),在主機(jī)中實(shí)時(shí)監(jiān)控并保存數(shù)據(jù)。由于實(shí)現(xiàn)高速實(shí)時(shí)數(shù)據(jù)傳輸,數(shù)據(jù)量大,所以在PCI局部總線上插入一個(gè)高速雙端口RAM。雙端口RAM一端作為PCI總線接口的本地端存儲(chǔ)器,一端作為DSP目標(biāo)存儲(chǔ)器。需要傳輸保存的數(shù)據(jù)經(jīng)DSP處理后借助雙端口RAM和PCI總線接口完成了上位機(jī)與DSP的數(shù)據(jù)握手。本文提出的雙端口RAM實(shí)現(xiàn)PCI總線接口方案如圖1。
考慮到PCI總線接口對(duì)局部總線的控制時(shí)序比較復(fù)雜,需要譯碼和控制電路來(lái)實(shí)現(xiàn)局部總線的訪問(wèn)及控制。本系統(tǒng)使用CPLD解決雙口RAM的地址訪問(wèn)競(jìng)爭(zhēng)沖突問(wèn)題。需解決的主要問(wèn)題有:①PCI接口電路設(shè)計(jì);②CPLD地址譯碼和總線仲裁;③PCI總線驅(qū)動(dòng)程序開(kāi)發(fā)。
2 PCI接口電路設(shè)計(jì)
PCI卡的設(shè)計(jì)一般采用兩種方案。一種是根據(jù)PCI協(xié)議在FPGA或CPLD中實(shí)現(xiàn)PCI總線接口控制器,但是由于PCI協(xié)議的復(fù)雜性,使得開(kāi)發(fā)難度大、周期長(zhǎng);另一種使用現(xiàn)成的PCI接口芯片,用戶開(kāi)發(fā)難度降低,只把重點(diǎn)放在PCI接口芯片局部總線的接口設(shè)計(jì)和PCI總線配置空間的初始化,而不用速度考慮PCI總線規(guī)范上眾多的協(xié)議規(guī)范,加快了開(kāi)發(fā)時(shí)間。
本數(shù)據(jù)傳輸系統(tǒng)使用PLX公司的PCI9030總線接口芯片,以CPLD完成邏輯控制及與外設(shè)的連接,整個(gè)系統(tǒng)的硬件框圖如圖2。其中雙端口RAM采用IDT71V321,CPLD選用XILINX公司的XC9536CPLD芯片,EEPROM選用NS公司的93CS56,控制單元DSP選用TMS320LF2407A。
評(píng)論