新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)與一個(gè)PCI設(shè)備間通信的情況解析方案

單片機(jī)與一個(gè)PCI設(shè)備間通信的情況解析方案

作者: 時(shí)間:2012-06-18 來源:網(wǎng)絡(luò) 收藏

2 設(shè)計(jì)接口實(shí)現(xiàn)

2.1 CPLD ABEL HDL程序設(shè)計(jì)

我們針對(duì)8位控制以太網(wǎng)卡進(jìn)行了程序設(shè)計(jì),CPLD器件選用ALTERA的MAX7000系列。針對(duì)以太網(wǎng)卡的特點(diǎn)在邏輯上進(jìn)行了再次簡化,最張程序?qū)⑦m配進(jìn)EPM7128芯片中,并在實(shí)踐中檢驗(yàn)通過。

以太網(wǎng)卡僅支持對(duì)配置空間和I/O空間的讀寫操作,而且這兩個(gè)空間的地址都可以設(shè)置在0xFF以內(nèi),所以可以只用pci_address0寄存器,其它地址都直接設(shè)為“0”;如果再限制,每次只往網(wǎng)卡寫入字節(jié)數(shù)據(jù),則可以只用pci_datas0寄存器,其它數(shù)值在具體操作時(shí)設(shè)成與pci_datas0寄存器的一樣即可。

以下是ABEL HDL主要源碼。其中16dmux是4~16位譯碼器,用于地址譯碼,選通CPLD內(nèi)的寄存器;8dffe是8位的DFFE;abelcounter是8位移位計(jì)數(shù)器;mylatch8與mylatch1分別為8位與1位鎖存器,而mylatchc是帶清零1位鎖存器;其它以“my”開始的變量都是三態(tài)緩沖器,以“out”開始的變量是三態(tài)節(jié)點(diǎn),以“e”開始的變量是普通節(jié)點(diǎn)。這此在程序中不再聲明。

SUBDESIGN abelpci

(

P2[7..3] : INPUT;

READ0 : INPUT

WRITE0 : INPUT;

P0[7..0] : BIDIR;

CLK : INPUT;

TRDY0 : INPUT;

AD[31..] : BIDIR;

CBE[3..0] : BIDIR;

IRDY0 : OUTPUT;

FRAME0 : OUTPUT;

)

VARIABLE

decoder : 16dmux;

mycounter : abelcounter;

pci_c


上一頁 1 2 3 4 5 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉