DSP

关于smsc lan91c111

2019-07-13 16:53发布

使用这块网卡芯片需要注意的几个问题
1,Transmit control register 中的SWFDUP是用于控制duplex模式的,而FDUPLX不是
2,Autonegotiation 的使用问题,需要严格按照文档的要求,每次等待1.5秒以上
3,MMU, 91c111使用了较为先进的内存管理方式,当处理器想要使用它发送数据时,需要先分配内存,得到一个Packet Number,并需要从 Allocation Result Register中取出,填入Packet Number Register,然后还要写Pointer Register, 然后把要发送的数据写入91c111中的SRAM,执行MMU的ENQUEUE PACKET NUMBER TO TX FIFO命令,并等待发送完成。
这里有几个概念:
    a,Packet Number,对于发送是指从MMU申请到的Packet Number值,对于接收,这个packet number其实也是从MMU申请的,只是,不是由处理器控制申请的,而是由CSMA/CD模块申请的。
    b,TX/RX area指的是和Packet Number相对应的SRAM中的内存
    c,FIFO Ports Register, 里面放的是Packet Number
    d,Pointer Register 是指当前Packet Number 所对应的那段SRAM的指针
4,Multicast Table Registers 由8个寄存器构成,同Recivie Frame Status 寄存器中的Hash Value共同使用,用于地址filter
Hash Value = Most 6 Significant Bit(Destination Address from received packet)
      Hash Value 中的Bits 5, 4, 3, 选择8个Multicast Table Registers中的一个(不妨叫做A),Bits 2,1,0选择A中的一个位,如果该位置位,则,filter 通过,否则,不通过。
5,Phycial Register需要使用 Management Interface 寄存器按照文档要求,串行设置