首页 » 技术文章 » 基于AX88796B的网络接口设计与实现

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

作者:  时间:2011-01-18 10:56  来源:EDN

  0 引言

  在网络技术应用日益普及的今天,许多数字设备需要网络接口来进行网络通信。本设计是以TI公司的TMS320C6722为核心的信息处理系统,为满足大量数据的实时网络交换,用ASIX公司的AX88796B扩展了网络接口。在此主要论述了该网络接口的设计与实现。

  1 前言

  美国TI公司的TMS320C6722是一款主要面向嵌入式应用的高性能32DSP,它数据运算处理能力可达2 000 MIPS1 500 FLOPS,具有丰富的片上资源,目前已经被广泛应用在各种数字应用中。AX88796B是由台湾ASIX公司推出的一款与NE2000兼容的快速以太网控制器,其内部集成10100M自适应的介质访问层MAC和物理层收发器PHY以及8K×16bSRAMSK支持8位、16位的通用CPU总线类型,执行基于IEEE802.3IE-EE80.3u局域网标准的以太网控制功能,并且提供发送队列功能来增强标准NE2000的发送性能。该控制器采用64LQFP封装,仅占用9 mm×9mm的印制板面积,分析其性能可以满足系统需要。

  2 系统硬件设计

  (1)AX88796B的硬件结构。AX88796B芯片内部集成了816CPU接口、串行E2PROM接口、8 K×16 bSRAM、包缓存管理、MACPHY、以及电源和时钟等部件。DSP通过读写NE2000寄存器来控制AX88796B的工作状态,通过DMA方式与AX88796B的内部缓存SRAM进行数据交换。芯片自动在SRAMMAC核之间进行数据发送接收,再经由内部的PHY层发送至RJ45接口。串行 E2PROM接口可以用来连接串行EEPROM,用于存储MAC地址,供AX88796B每次初始化时读取。AX88796B芯片的内部结构如图1所示。

  (2)系统硬件连接。主控制单元TMS320C6722B与网络芯片AX88796B的连接方式如图2所示。TMS320C6722B内部为32 b的总线结构,对外扩展EMIF16 b的宽度,采用异步总线方式可以直接与网络芯片无缝连接。片选的连接,用EM_CS2连接到网络的CS,使AX88796B工作在186_l-ike模式,在配置引脚EECK接上拉电阻。本设计没有连接EEPROM,所有对AX88796B的配置均由TMS320C6722B在初始化时写入。

  3 系统的软件设计

  AX88796B的网络驱动程序是TMS320C6722AX88796B硬件的接口,因此编写网络驱动程序模块应满足的主要功能有:AX88796B的初始化、报文的接收、报文的发送;

  (1)初始化。在AX88796B的初始化过程中除了完成对相关寄存器的定义与赋值外,还要完成对接收缓冲环的构造。对TMS320C6722B,要完成对应EMIF的设置和中断的初始化。与网卡有关的初始化如下:

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

相关推荐

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

网络接口  AX88796B  2011-01-18

NI新推高性能FlexRay和CAN接口

2009-09-08

NXP TJA1021汽车LIN网络接口方案

基于ARM9的嵌入式网络接口设计

ARM9  嵌入式  网络接口  2009-04-23

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

AX88796B  网络接口  模块  2009-02-27

网络磁性元件的原理及应用

在线研讨会
焦点