基于AX88796B的网络接口模块的设计与实现
时间:06-24
来源:今日电子
点击:
3 中断处理
中断的处理和CPU关联密切,在软件中必须先配置好网卡的片选线和中断信号线。数据包到来时,网卡将其保存在SARM中,同时触发一个中断。处理器接收到中断信号后,进入中断处理程序。在中断处理程序中读AX88796B的中断状态寄存器ISR来判断是什么样类型的中断,如果读出的值的最低位为1,则代表是数据包接收中断,这时需触发一个消息,进入到读网卡函数。读网卡函数的功能是将网络数据包从网卡的内存接收到主机中,接着向上层传递,进行相应的处理。
一个报文的发送过程就是通过调用写网卡函数,将报文发送到网卡的内存中去。然后将AX88796的控制寄存器(CR)的发送位TXP(Transmit packet)位置1,即将报文发送。
中断处理子程序的关键代码:
/*IRQ0_handler*/
uint8 InterruptStatus;
InterruptStatus=read(ISR);//读中断状态寄存器
write(IMR,0x00);//禁止中断
write(ISR,InterruptStatus);//清除中断状态寄存器
if(InterruptStatus&0x01)//是否为数据包接收中断
OSQPost(TcpIpMsgQ,&idx);//通知上位机接收到数据包
write(IMR,0x11);//使能接收中断和覆写中断
- 基于AX88796B的网络接口设计与实现(01-16)
- 基于RTL8019AS的串口与以太网接口转换器(04-29)
- RJ45网络接口双绞线的接法介绍(04-24)