3 DSP对NE2000网卡的编程 DSP对NE2000网卡的编程就是DSP对网络接口控制器(NIC)DP8390中各种寄存器进行编程控制,完成数据分组的正确发送和接收。网络通信过程可分为网卡初始化、接收控制和发送控制等三部分。限于篇幅,有关DP8390页面寄存器的详细说明和微机环境下的编程技术请参阅文献5,DSP的完整汇编程序请有兴趣的读者和作者联系。下面只给出DSP读取NE2000网卡物理地址的一段程序,实际中是用来验证上述硬件连接是否正确而编制的。我们购买的网卡物理地址为0040056388E7,在PC机上已经得到验证。实验证明,通过下面的程序运行读到了正确的物理地址,从而表明我们所做的设想和实际结果是完全一致的。 SPLK #0021H,60H ;选择"0"页寄存器,后续操作 为复位操作 OUT 60H,CR SPLK #0049H,60H ;选择16位传输方式 OUT 60H,DCR SPLK #0000H,60H ;清DMA远程字节寄存器 OUT 60H,RBCR0 OUT 60H,RBCR1 SPLK #001FH,60H ;初始化接收状态配置寄存器 OUT 60H,RCR SPLK #0002H,60H ;初始化发送状态配置寄存器 OUT 60H,TCR SPLK #004CH,60H ;设置接收缓冲环起始页面 地址寄存器 OUT 60H,PSTART SPLK #0080H,60H ;设置接收缓冲环终止页面地 址寄存器 OUT 60H,PSTOP SPLK #004CH,60H ;设置边界指针寄存器 OUT 60H,BNRY SPLK #00FFH,60H ;清网卡中断状态 OUT 60H,ISR SPLK #00FFH,60H ;设置中断屏蔽寄存器 OUT 60H,IMR SPLK #0000H,60H ;设置远程DMA起始地址为 0000H OUT 60H,RSAR0 OUT 60H,RSAR1 OUT 60H,RBCR1 SPLK #0006H,60H ;网卡地址长度为6个字节 OUT 60H,RBCR0 SPLK #000AH,60H ;启动远程DMA读 OUT 60H,CR NOP IN 61H,DATA_PORT ;61H中存放网卡首字节地址"00H" IN 62H,DATA_PORT ;62H存放网卡第二字节地址"40H" IN 63H,DATA_PORT ;63H中存放网卡第三字节 地址"05H" IN 64H,DATA_PORT ;64H中存放网卡第四字节 地址"63H" IN 65H,DATA_PORT ;65H中存放网卡第五字 节地址"88H" IN 66H,DATA_PORT ;66H中存放网卡第六字 节地址"E7H" 网卡在DSP中的应用解决了DSP与DSP之间、DSP与PC之间的准确、高速地通信问题。由于网卡中包含了OSI七层模型中物理层和数据链路层的全部内容,用户不必再为这两层的具体连接和实现操心,可把精力和时间用在要解决的实际问题中去,这必将给用户带来极大的方便。