新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > CPU接口芯片GT-48330在网管交换机中应用

CPU接口芯片GT-48330在网管交换机中应用

作者:时间:2009-12-28来源:网络收藏

  3 电路设计

  的G.Link口的电路设计说明:数据发送和接收线GTXD[15∶0]/GRXD[15∶0]与交换的G.Link口的 接收和发送线相连;GTXCMD/GRXCMD发送和接收与交换的接收和发送命令线相连;GTXOCLK发送数据的参考时钟,通过22Ω的匹配电阻接 到交换的G.Link口的接收时钟;GRXCLK接收数据的参考时钟,由时钟模块来提供;GTXCLK接收数据的参考时钟,由时钟模块来提 供;GTXCLK作为的G.Link口的系统时钟,同样由时钟模块来提供。GTXCLK和GRXCLK的时钟频率为83.33 MHz。电路逻辑图如图2所示。

  的电路设计说明:此设计 使用的是Motorola公司的Coldfire 5206E。由于在16 b时,MCF5205E的数据线数据是交换的,即D[31∶24]表示BYTE0;D[23∶16]表示BYTE1。同时在设计中将GT-48330 的Endian管脚下拉,这样GT-48330将工作在Little Endian模式下,其数据是 不进行交换的,因此在外部需要将数据线进行交换,即将GT-48330的AD[15:18]与的D[23:16]相接,将GT-48330的 AD[7:0]与CPU的D[31:24]相连接;GT-48330的地址线Add[11:0]与CPU的地址线A[11∶0]直接相接;片选信号CS与 MCF5206E的CS1管脚相接;GT-48330的读/写信号RD和WR相连接后,再与MCF5206E的R/W信号相接。当R/W为高电平 时,GT-48330的读信号RD有效;当R/W为低电平时,GT-48330的写信号WR有效;地址锁存信号ALE与MCF5206E的TS信号相接, 低电平有效;中断管脚INT与MCF5206E的中断管脚IRQ4相接,提供中断信号,低电平有效;GT-48330的DTACK与MCF5206E的 TA相接,低电平有效,表示数据传输结束;RST信号直接与复位模块的DSP1832(或MAX811)的输出信号相连接,用于对GT-48330GT- 48330的复位,低电平有效;CLK时钟则由时钟模块提供,其频率为54MHz。复位时GT-48330将对某些管脚进行抽样,以决定系统的工作状态。 在配置中拉高通过4.7 kΩ的电阻接3.3 V来实现,拉低通过4.7kΩ的电阻接地来实现。
4 软件实现

  软件分引导层(BOOT)和CTRL层。MCF5206E上电复位后从BOOT开始执行,BOOT层程序功能包括上电初始化,引导或下装CTRL层程序及上装整片Flash的内容。软件总体框架如图3所示。

  首先对硬件进行配置:包括片选、DRAM参数、初始化定时器、I/O等,然后进行DRAM/CPU ISRAM自检,若自检失败则从超级终端上输出相应的错误信息,然后停机。若自检通过则检测CTRL层程序的完整性,若CTRL层程序完整则将其拷贝到 DRAM的相应位置并将控制权交给CTRL层程序;若CTRL层程序不完整则通过超级终端输出相应信息并允许下装CTRL层程序或上装整片Flash的内 容。

  CTRL层程序提供一个超级终端界面,进行各项功能模块的设置及测试。界面设置的内容如下:初始化设置及配置的读取,GT48330寄存器的操作,交换芯片寄存器的操作,Switch各功能模块操作:帧收发、VLAN设置、TRUNK操作、端口配置、MIB采集等。

 

  在系统上电后,由电源模块为整个系统提供电源支持,然后复位模块将向整个系统提供复位信号,时钟模块向系统提供参考时钟。在MCF5206E和 GT48330模块复位之后,MCF5205E将从存储模块Flash中读取程序进行运行,根据程序运行的结果,  MCF5205E模块将通过GT- 48330模块对系统中的所有的交换芯片进行初始化,完成对系统的配置。在以后的过程中MCF5206E将通过GT-48330模块来进行对系统的管理及 包的接收和发送。而存储模块中的EDODRAM则用于存放在运行过程中所需的程序及数据和包的临时存放。

  5 对于拥塞控制的分析

  由于GT-48330的构架对于接收的G.Link口采用共同的FIFO,然后通过Out Messager Detecter来判别FIFO 中的数据应该送到哪个通道中,这样就有可能产生拥塞。如果某个通道满了,他将不再接受OutMessager Detecter判定要发送给他的数据或消息,这样将使得数据聚集在FIFO中,从而使得FIFO满而产生拥塞。

  对于新地址、包接收、中断接收3个通道,可以通过一个可选的模式来防止拥塞,也就是他们在不能接收时,将通过丢弃新到的消息来防止其聚集在FIFO中导致拥塞。

  如果有许多的数据同时发给包Buffer的话,会使Buffer是满的,同时如果此时设为0(没有丢弃包),这时G.Link口将产 生流控消息,造成G.Link口的堵塞。如果这时CPU对某个设备发送了LW_WRITE消息时,他将一直等待Buffer请求确认(BFR)的到来,在 没有收到此消息时,将不会进行其他的数据处理。而由于G.Link口的拥塞将导致BFR无法送出,因此包Buffer中的数据也将一直得不到CPU的处 理,这样将导致CPU的死锁。死锁的解决方法:

  (1)可以将交换芯片设置成单包模式(SignalPacket Mode),使其只有在一个包被处理完后,才送下一个包。

  (2)使用包拥塞失效位(Disable PacketBlocking),采用对新地址、包接收、中断消息的丢弃来防止。同时CPU也可以通过某些方法来判断潜在的拥塞,从而使得该寄存器置位。例如,可以限制发往CPU的包的类型和数量来控制。

  由上可知,采用相关通道的丢弃功能可以防止CPU的死锁问题,同时,他只对本身的通道有影响;如果仅采用流控功能则有可能导致死锁问题的产生,对整个G.Link口产生影响。

交换机相关文章:交换机工作原理



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭