基于AX88796B的网络接口模块的设计与实现

技术分类: 通信  | 2008-07-31
重庆邮电大学 崔巍

  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);//使能接收中断和覆写中断

0
0
(请您对文章做出评价)
1】【2】【3】【4
加载中

对文章的评论

更多评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

  • 博客推荐

  • 论坛推荐

  • 在线研讨会