<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于網(wǎng)絡(luò)編碼的多信源組播通信系統(tǒng),包括源代碼,原理圖等(二)

          基于網(wǎng)絡(luò)編碼的多信源組播通信系統(tǒng),包括源代碼,原理圖等(二)

          作者: 時間:2016-12-06 來源:網(wǎng)絡(luò) 收藏

          模塊中的狀態(tài)和階段,任何一個模塊都可以響應(yīng)來自PCI總線寄存器的訪問和控制要求,而PCI總線寄存器可以通過軟件來控制。也就是說,硬件和軟件的通信是通過PCI總線完成的。

          本文引用地址:http://www.ex-cimer.com/article/201612/326828.htm

            數(shù)據(jù)以及控信息在硬件和主機(jī)系統(tǒng)之間是通過PCI總線傳輸?shù)?,以Linux網(wǎng)絡(luò)存儲棧作為接口的。NetFPGA向主機(jī)發(fā)送分組數(shù)據(jù)的過程如圖2.5-2a所示:

            分組到達(dá),發(fā)往CPU隊(duì)列;

            中斷程序通知驅(qū)動程序有分組到達(dá);

            驅(qū)動程序設(shè)置和初始化DMA傳送器;

            NetFPGA通過DMA總線發(fā)送分組;

            中斷程序發(fā)送DMA結(jié)束信號;

            驅(qū)動程序把分組傳遞到網(wǎng)絡(luò)存儲棧;

            

            圖2.5-2a:NetFPGA向主機(jī)發(fā)送數(shù)據(jù) 圖2.5-2b:主機(jī)向NetFPGA發(fā)送數(shù)據(jù)

            主機(jī)向NetFPGA發(fā)送分組數(shù)據(jù)的過程如圖2.5-2b所示:

            控制軟件通過網(wǎng)絡(luò)socket發(fā)送分組,分組被遞交給驅(qū)動程序;

            驅(qū)動程序設(shè)置和初始化DMA傳送器;

            中斷程序發(fā)送DMA結(jié)束信號;

            主機(jī)訪問寄存器是通過系統(tǒng)調(diào)用系統(tǒng)內(nèi)核的ioctl( )函數(shù)作為接口的。讀寫寄存器的操作函數(shù)如下,這兩個函數(shù)內(nèi)部調(diào)用了ioctl( )函數(shù)。

            readReg(nf2device *dev, int address, unsigned *rd_data)

            writeReg(nf2device *dev, int address, unsigned *wr_data)

            例如: readReg(&nf2, OQ_NUM_PKTS_STORED_0, &val);

            主機(jī)訪問NetFPGA寄存器的過程如下:

            (1)控制軟件調(diào)用ioctl( )函數(shù)操作網(wǎng)絡(luò)socket,由函數(shù)ioctl傳遞給驅(qū)動程序;

            (2)驅(qū)動程序完成PCI寄存器的讀寫


          上一頁 1 2 3 下一頁

          評論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();