PCI9054芯片初始化过程就是对PCI9054芯片的相关寄存器进行初始化,这些寄存器包括DMRR、DMLBAM、PCICR、CNTRL等。
点击看原图
网卡初始化过程对网卡的初始化就是对网卡相关寄存器进行初始化。这些寄存器包括CR,DCR,RBCR PSTART,PSTOP,ISR,IMR,PAR0~PAR5,MAR0~MAR5D等。PSTART接收缓冲区的起始页的地址。PSTOP接收缓冲区的结束页地址(该页不用于接收)。BNRY指向最后一个已经读取的页(读指针)CURR当前的接收结束页地址(写指针)。
发送控制过程在网络中,帧传输的过程就是发送方将待发送数据按帧格式要求封装成帧,然后通过网卡发送到网络的传输线上的工程。发送程序框图如图4所示。
接收控制过程帧的接收过程分为2步[3]:
第1步有本地DMA将帧存入接收缓冲区中;
第2步由远程DMA将接收缓冲区中的帧读入内存。即将网络上的数据帧接收并存在网卡的接收缓冲区中,然后由主机程序将缓存区中的帧读走并存入内存中。帧的接收工作由网卡自动完成,只需对相关的寄存器和PSTART,PSTOP,CURR和BNRY进行适当的初始化即可。帧读入之前,必须初始化相应的寄存器RSAR,RBCR,然后再启动远程DMA读操作和主机程序的读端口操作。为了获得数据长度,先读入18 B的数据,然后根据有效数据的长度将帧完整的读入。启动远程DMA读操作,应该令CR=0AH,远程DMA将从接收缓冲区的DMA地址处读入1 B并送往I/O数据端口,由主机程序读入内存。
这一过程将一直持续到RBCR寄存器为0。
4 结语
本文提出了一种用8位单片机80C51和PCI 总线 主控I/O加速器芯片9054来驱动PCI总线网卡,实现RS232串行设备与以太网的连接以传送控制信令和数据文件,实现单片机上网的设计方案,设计了相关硬件,编制了相应的驱动程序。整个方案结构简单,实现方便,缩短了开发周期,降低了系统开发成本。