在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種基于CPLD的單片機(jī)與PCI接口設(shè)計方案

            一種基于CPLD的單片機(jī)與PCI接口設(shè)計方案

            作者: 時間:2009-11-11 來源:網(wǎng)絡(luò) 收藏

            內(nèi)設(shè)有13個8位寄存器用來保存進(jìn)行一次PCI總線讀寫時所需要的數(shù)據(jù),其中pci_address0~pci_address3是讀寫時的地址數(shù)據(jù);

            一種基于CPLD的單片機(jī)與PCI接口設(shè)計方案

            圖1 簡化的PCI寫操作時序

            pcidatas0~pci_datas3是要往PCI設(shè)備寫的數(shù)據(jù);pci_cbe[3~0]保存地址周期時的總線命令;pci_cbe[7~4]保存數(shù)據(jù)周期時的字節(jié)使能命令;pci_data0~pci_data3保存從PCI設(shè)備返回的數(shù)據(jù);pci_request是PCI總線讀寫操作狀態(tài)寄存器,用于向返回一些信息。當(dāng)往pci_cbe寄存器寫入一個字節(jié)的時候,會復(fù)位中的狀態(tài)機(jī),觸發(fā)進(jìn)行PCI總線的讀寫操作;則通過查詢pci_request寄存器得知讀寫操作完成,再從pci_data寄存器讀出PCI設(shè)備返回的數(shù)據(jù)。

            CPLD中狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖如圖2所示。每一個狀態(tài)對應(yīng)FRAME與IRD信號的一種輸出,而其它輸入輸出信號線可由這兩個信號線和pci_cbe的值及TRDY的狀態(tài)決定。當(dāng)FRAME為有效時,AD[31~0]由pci_address驅(qū)動,而C/BE[3~0]由pci_cbe低4位驅(qū)動;當(dāng)IRDY有效時,C/BE[3~0]視總線命令,要么由pci_cbe高4位驅(qū)動,要么設(shè)為高阻態(tài),而AD[31~0]在pci_cbe[0]為“0” (PCI讀命令)時,設(shè)為高阻態(tài),而在pci_cbe[0]為“1” (PCI寫命令)時由pci_datas驅(qū)動。另外一方面,一旦TRDY信號線變?yōu)榈碗娖?,AD[31~0]線上的數(shù)據(jù)被送入pci_data寄存器,而C/BE[3~0]線上的數(shù)據(jù)被送入pci_request寄存器的低4位。

            狀態(tài)轉(zhuǎn)移圖

            圖2 狀態(tài)轉(zhuǎn)移圖

            考慮到在不正常情況下,PCI設(shè)備不會對PCI總線作出響應(yīng),即TRDY不會有效,為了不使?fàn)顟B(tài)機(jī)陷入狀態(tài)S2的僵持局面,另外增設(shè)了一個移位計

            數(shù)器mycounter。當(dāng)IRD信號有效時,計數(shù)器開始計數(shù)。計數(shù)溢出之后,不論PCI總線操作是否完成,狀態(tài)機(jī)都會從狀態(tài)S2轉(zhuǎn)移到狀態(tài)S3,即結(jié)束PCI總線操作。當(dāng)TRDY有效時,會立即置位mycounter.cout。

            PCI總線操作是否正確完成,可查詢pci_request的最高位是否為“1”,而IRDY與FRAME的值可分別查詢pci_request的第4位和第5位。這兩位反映了PCI總線操作所處的狀態(tài),兩位都為“1”時可以認(rèn)為PCI總線操作已經(jīng)完成。在實踐中,如果單片機(jī)的速度不是足夠快的話,可以認(rèn)為PCI總線操作總是即時完成的。

            2 PCI接口實現(xiàn)

            2.1 CPLD VHDL程序

            我們針對8位單片機(jī)控制PCI以太網(wǎng)卡進(jìn)行了程序,CPLD器件選用Xilinx的XC95216系列。針對以太網(wǎng)卡的特點在邏輯上進(jìn)行了再次簡化,最終程序?qū)⑦m配進(jìn)XC95261芯片中,并在實踐中檢驗通過。

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



            評論


            相關(guān)推薦

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

            關(guān)閉