微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 基于AX88796B的网络接口模块的设计与实现

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top