CS8900A在实现以太包的发送和接收前,一定要进行配置.配置在加电或复位时进行,主要是对CS8900A的寄存器进行初始化,包括内存基地址,网络物理地址,接收以太帧 的类型,使用10Base-T还是AUI接口等.其配置步骤如下:
(1)配置Memo~Base Address寄存器,写入内存基地址0xl000;
(2)配置Bus Conlrol寄存器,设置访问方式为Memo~方式:置Memo~E位和UseSA位为l;
(3)配置Line Conlrol寄存器,设置物理接口为l0BASE-T:置AUIonly位和AutoAUl/lOBT位为0;
(4)配置Receiver Configuration寄存器,设置接收以太帧时引起中断的类型:
置RxOKiE位为l,当接收到的以太帧没有错误时,引起中断;
置CRCerroriE位为l,当接收到的以太帧有CRC错误时,引起中断;
置RuntiE位为l,当接收到的以太帧小于64 Bytes时,引起中断;
置ExtradataiE位为l,当接收到的以太帧大于l 5l 8 Bytes 时,引起中断;
(5)配置Receiver Control寄存器,设置接收的以太帧类型:置RxOKA位为l,接收有正确的CRC校验和有效长度的以太帧;置MulticastA位为l,接收目的地址为多点广播的以太帧;置lndividualA位为l,接收目的地址与IndividualAddress相匹配的以太帧;置BrodcastA位为l,接收目的地址为全F的广播帧;
(6)配置Transmit Configuration寄存器,设置发送以太包时引起中断的类型:置TxOKiE位为l,当一个以太包被完全发送时,引起中断;置Out-of-windowiE位为l,当发送头5l2位后有碰撞时,引起中断;置JabberiE位为l,当一次发送时间大于26 ms时引起中断; 置l6colliE位为l,当发送一个以太包检测到l6次碰撞时引起中断;
(7)配置Buffer Configuration寄存器,设置更多的中断类型;置Rdy4TxiE位为l,当CS8900A准备从主机接收发送帧时,引起中断;置TxUnderruniE位为I,当CS8900A在到达帧结束之前没有数据发送时,引起中断;置RxMissiE位为l,当接收到的以太帧丢失时,引起中断;置TxColOvfiE位为l,当TxCOL计数器从lFFh变为200h时,引起中断;置MissOvfloiE位为l,当RxMISS计数器从1FFh变为200h时,引起中断;
(8)配置Individual Address寄存器,设置物理地址Individual Address;
(9)配置Interrupt Number寄存器,设置CS8900A使用的中断引脚;
(IO)配置Logical Address Filter寄存器;
(I1)配置Line Conlrol寄存器,置SerRxON位为l,打开接收; 置SerTxON位为l,打开发送;
(12)配置Bus Control寄存器,置EnablelRQ位为l,打开中断. 在初始化完成后,CS8900A处于中断模式.当有中断产
生时,进入中断服务子程序,读取中断状态队列(ISQ),查看中断类型,进行相应的处理.