关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于AX88796B的网络接口设计与实现

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

作者: 时间:2011-01-05 来源:网络 收藏


(2)报文的接收。判断是否接收到新的数据包有2种方式:轮循和中断。单片机用轮循方式较多。由于TMS320C6722在此还要进行其他处理,为了提高DSP性能和实时性要求,这里采用中断方式。当网卡接收到新数据包时进入中断,首先判断cpr是否等于bnry,若相等,则表示接收缓冲区已被存满,则停止接收数据包,而不会覆盖旧的数据;若不等,则将接收缓冲区中待读取的数据包的起始地址写入rsar[0,1]寄存器,数据包的开始4字节写入rbcr[O,1]寄存器,并启动远端DMA读命令,通过读取4个信息字节得到待读取数据包的长度、接收状态和下一个将被读的页的指针信息。然后通过远端DMA读命令,将数据包从网卡sram中读入TMS320C6722内存中,并更新读页指针寄存器bnr-y,DSP每从网卡内存中读走一页数据,bnry便加一,这需要通过程序实现。网卡通过cpr将接收到的数据包写入接收缓冲区,每写完一页,cpr将自动加一,当加到最后的空页(这里是 pstop=0x80)时,cpr将自动恢复为接收缓冲区的首页(pstart=Ox4c)。网卡接收关键性代码如下:
e.JPG

(3)报文的发送。报文的发送过程就是调用写网卡函数,将报文发送到网卡的内存中去。然后将的控制寄存器(CR)的发送位 TXP(transmit packet)位置1,即将报文发送。dsp通过远端dma通道将网卡发送缓冲区的起始地址和要发送的字节数分别写入rsar[O,1]和 rbcr[0,1],然后启动远端dma写命令即可将数据包写入网卡内存,此后将字节数写入tber[O,1]寄存器,启动发送命令就可将数据包发送到上。网卡发送的关键代码如下:

本文引用地址://m.amcfsurvey.com/article/202487.htm


4 结语
在如上所述的底层硬件和软件设计基础上,完成了UDP和TCP/IP协议栈的软件,系统主要使用这2个协议进行数据传输。长期的系统在线验证证明,在TMS320C6722上扩展的接口,传输可靠,性能稳定,在100 Mb/s的速度,负荷超过90%的情况下,没有丢包和错包出现。可见,对这种只有异步总线,又需要网络大数据量传输的应用,该设计是可行的。


上一页 1 2 3 下一页

关键词:88796BAX网络

评论


相关推荐

技术专区

关闭