新闻中心

EEPW首页>电源与新能源>设计应用> 基于网络编码的多信源组播通信系统,包括源代码,原理图等(二)

基于网络编码的多信源组播通信系统,包括源代码,原理图等(二)

作者: 时间:2016-12-06 来源:网络 收藏

模块中的状态和阶段,任何一个模块都可以响应来自PCI总线寄存器的访问和控制要求,而PCI总线寄存器可以通过软件来控制。也就是说,硬件和软件的通信是通过PCI总线完成的。

本文引用地址://m.amcfsurvey.com/article/201612/326828.htm

  数据以及控信息在硬件和主机系统之间是通过PCI总线传输的,以Linux网络存储栈作为接口的。NetFPGA向主机发送分组数据的过程如图2.5-2a所示:

  分组到达,发往CPU队列;

  中断程序通知驱动程序有分组到达;

  驱动程序设置和初始化DMA传送器;

  NetFPGA通过DMA总线发送分组;

  中断程序发送DMA结束信号;

  驱动程序把分组传递到网络存储栈;

  图2.5-2a:NetFPGA向主机发送数据 图2.5-2b:主机向NetFPGA发送数据

  主机向NetFPGA发送分组数据的过程如图2.5-2b所示:

  控制软件通过网络socket发送分组,分组被递交给驱动程序;

  驱动程序设置和初始化DMA传送器;

  中断程序发送DMA结束信号;

  主机访问寄存器是通过系统调用系统内核的ioctl( )函数作为接口的。读写寄存器的操作函数如下,这两个函数内部调用了ioctl( )函数。

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

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

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

  主机访问NetFPGA寄存器的过程如下:

  (1)控制软件调用ioctl( )函数操作网络socket,由函数ioctl传递给驱动程序;

  (2)驱动程序完成PCI寄存器的读写


上一页 1 2 3 下一页

评论


技术专区

关闭