《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 基于MC9S12NE64的千兆以太网交换机设计

基于MC9S12NE64的千兆以太网交换机设计

2009-01-13
作者:黄秀珍1, 蒋文荣2, 石旭刚3

    摘  要: 介绍了MC9S12NE64单片机的功能特性及以MC9S12NE64为CPU的交换机设计,详细阐述了8FE+2GE千兆以太网交换机的软硬件设计,比较了本设计与单芯片实现以太网设计的优缺点。本设计突出特点是交换机之间可以连成自愈环,有快速故障检测和恢复的功能。 

    关键词: MC9S12NE64; 千兆以太网; 88E6095交换模块

 

    千兆位以太网能提供10倍于快速以太网的性能,以高效、高速、高性能而著称。已经广泛应用在金融、商业、教育、政府机关及厂矿企业等各行各业。 

    千兆位以太网最大的优点在于它对现有以太网的兼容性,提供了完美无缺的迁移途径,充分保护在现有网络基础设施上的投资。千兆位以太网将保留802.3和以太网帧格式以及 802.3 受管理的对象规格,从而将使企业能够在升级至千兆性能的同时,保留现有的线缆、操作系统、协议、桌面应用程序和网络管理战略与工具。 

    现有的千兆以太网交换机设计是基于FPGA的。它没有内嵌的功能模块,如MAC、PHY,需要外部的器件支持,也不能实时调试,相对设计比较复杂。 

    而本设计用MC9S12NE64为CPU设计千兆以太网交换机。MC9S12NE64单片机内部带有EMAC功能模块,是专用在以太网上的CPU,而且网站上有免费的TCP/IP协议栈使用。 

1 MC9S12NE64功能简介 

    MC9S12NE64是Freescale公司生产的基于HCS12 CPU内核的16位单片机,内嵌EMAC和EPHY模块,针对以太网设计的高性能嵌入式处理器。MC9S12NE64的内部功能模块框图如图1所示,主要特性如下: 

 

 

    (1)内核采用高性能16位HCS12CPU,工作频率为25MHz。提供免费的软件开发工具Freescale Codewarrior,可以用C/C++语言编程,具有优化的C语言体系结构,可以生成十分简洁的代码,以提高可读性。 

    (2)内部带有BDM调试模块,可以进行实时在线仿真和调试,而无需仿真器。集成了64KB的Flash内存和8KB的静态RAM,能够满足大多数的应用场合,如果需要还可以通过PTA、PTB口外部扩展。 

    (3)内部嵌入10/100Mb/s的以太网媒介访问控制器(EMAC),支持标准的媒介独立接口(MII),可以实现地址识别及过滤、以太类型过滤,支持半双工和全双工通信。EMAC还有可配置的一个发送缓冲区和两个接收缓冲器,并与8KB RAM共用。MC9S12N64的RAM以2倍于CPU的速度运行,使得CPU和EMAC缓冲区可以交叉存取数据。 

    (4)内部嵌入10/100Mb/s以太网物理层(EPHY),支持自动协商模式,支持半双工和全双工的通信,并具有自诊断功能。

    (5)内部还包含有6个模块:8通道10位模数转换器(ADC)、4通道16位定时器、2个串行通信接口(SCI)、1个高速串行外设接口(SPI)、1个具有256种时钟速度选项的I2C接口、具备使用锁相回路的时钟及复位发生器(CRG)模块。 

    MC9S12NE64具有80引脚TQFP-EP和112引脚LQFP两种封装,多达70个通用I/O口。基于MC9S12NE64的设计方案与同等功能的多芯片方案相比,具有体积小、结构简单、集成度高、可靠性好等优点。 

2 工业以太网交换机硬件设计 

    硬件设计主要有两个部分:CPU模块和交换模块。 

2.1 CPU模块 

    CPU模块由电源和CPU及外围电路部分构成,其原理框图如图2所示。 

 

 

2.1.1 电源 

    该设计中交换机采用并联的双电源电路,采用冗余电源的供电方式,这两路电源互为备份,只要其中一路电源是正常的,即可使系统正常供电。 

    电源部分要求提供两路12~24V的直流电源,这两路电源的正常与否由连接单片机的两个LED发光管指示。当其中某一电源通路出现故障时,控制电路能够使故障电源自动从系统中断开,并进行故障报警,此时由另一个电源通路向交换机供电,因此出现供电中断的情况非常小。 

    电源的输入电压是12~24V,通过稳压器MIC4575输出3.3V。同时低压降的稳压芯片MAX1818把3.3V的电压降到2.5V。 

2.1.2  CPU外围电路 

    本设计中CPU采用Freescale公司的MC9S12NE64单片机。该单片机内部集成有8KB RAM、64KB Flash,采用外部PHY的形式,通过MII接口与交换模块连接进行传输管理数据。通过MC9S12NE64单片机的SMI_MAC和SMI_PHY来配置交换芯片MAC和PHY的初始化状态,例如,对端口状态、传输速率、全/半双工及流量的控制等。 

    MC9S12NE64单片机和交换模块使用的外部时钟都是25MHz,用同一个时钟源。 

    (1)IIC电路:64KB的AT24C64N的IIC芯片,与单片机的IIC模块接口SDA、SCL相连。开机时CPU读取存储在AT24C64N的配置数据。 

    (2)电源LED:两路电源的工作指示灯,一个双色报警指示,通过CPU单片机来控制指示状况,主从电源都正常时,报警指示绿色常亮;有一路不正常时,常熄;电路有不可修复的错误时,黄色常亮。 

    (3)复位电路:对MC9S12NE64单片机的电源监测复位,单片机的Reset引脚接ADM708AR芯片。 

    (4)编程口:MC9S12NE64单片机有实时调试的功能,用multilink P&E下载调试程序。 

    (5)交换模块Reset信号:开机时,CPU单片机给交换模块传输一个外部的复位信号,使交换模块各引脚都处于读取状态,初始化配置交换模块。 

2.2 交换模块 

    交换模块用了一块Marvell公司生产的88E6095主芯片。该芯片集成MAC和PHY,有11个端口,可配置成8FE+3GE,时钟源频率为25MHz。其中P0~P7 8个端口支持10BAST-T/100BAST-T;P8、P9、P10端口都支持三种接口:SERDES接收器、外接10/10/1000M Copper PHYs、1000BASE-X的光纤端口,直接连接到光放大器。 

    另外,P9还支持MII-MAC/PHY,P10还支持(G)MII-MAC/PHY,该接口可以同MC9S12NE64的MII接口相连,传输并处理MGMT帧和网络层数据。 

    交换模块的原理框图如图3所示。本设计把88E6095的11个端口配置成8FE+2GE+MII。 

 

 

    (1)8个FE端口:P0~P7配成10/100M快速以太网端口,支持半/全双工。 

    (2)2个GE端口:P8和P10配置成SERDES接口,外接88E1112_PHY接收器,配置成2个GE的铜缆或光纤接口。这两个接口可以连成自愈环,链路发生故障时,可以很快启动备用链路,以防止故障带来的损失。 

    (3)1个MII接口:P9端口与CPU连接,来接收处理MGMT数据及网络管理数据。 

    本应用是8FE+2GE 88E6095×1,还可以通过88E6095的SERDES接口进行级联扩展。例如,16FE+2GE 88E6095×2、24FE+2GE 88E6095×3、48FE+4GE 88E6095×6+88E6185等。 

    88E6095的工作电压有3.3V、2.5V、1.5V、1.2V。其中,1.5V和1.2V通过88E6095引脚control_15、control_12外接PNP晶体管产生。 

3 软件设计 

    MC9S12NE64有免费的软件开发工具 Freescale codewarrior,可以实现C/C++语言的编程,使代码更具有可读性。其软件设计主要实现以下功能: 

    (1)初始化 

    主要完成对MC9S12NE64各寄存器的初始值设置和对交换模块的各个寄存器的初始值设置。 

    MC9S12NE64单片机在工作之前,必须进行必要的初始化,主要包括时钟、复位发生器(CRG)模块和EMAC模块。 

    刚上电时,MC9S12NE64单片机I/O口对交换模块发送一个复位信号,使得交换模块各端口为输入,读取各端口的状态,启动交换模块开始工作。再通过SWI_MAC和SWI_PHY接口对88E6095和88E1112端口寄存器进行初始化,使它们能正常工作。 

    (2)快速生成树算法 

    本设计的交换机是千兆光纤环自愈的设计思想,所以在初始化以后,进入主程序。执行生成树算法,去除环冗余回路,确定拓扑结构。 

    (3)网络协议 

    要实现以太网交换机与以太网上其他设备(如PC机)的通信,只需要实现TCP/IP协议栈就可以了。由于单片机内部资源不足,难以支持完整的TCP/IP协议栈,故针对各个系统的特点和功能来设定特定的TCP/IP协议栈,仅实现与需要相关的协议即可,如ARP协议、IP协议、ICMP协议、TCP协议、UDP协议、SMTP协议、HTTP协议等。 

    (4)网络管理及功能设置 

    通过MC9S12NE64的MII接口传输和接收网络数据。在实现上述网络协议的基础上,可以直接通过网络实现对交换机的参数设置和实时状态监视。 

    (5)故障诊断及自愈实现 

    当电源及交换机其他部件出现故障时,有自诊断和报警功能。交换机在链路上定时发送MGMT数据,监视网络当前的连接状态,当出现故障时,立即实现网络的自愈功能。 

4 与单芯片设计比较 

    单芯片以太网设计用了MC9S12NE64 内部嵌入的EMAC和EPHY,单RJ45连接。虽然设计简单,但只有一个快速以太网端口可以用,不支持千兆端口,而且不易扩展,只能完成简单的数据存储转发,不支持生成树、VLAN和故障自恢复等功能。 

    本设计用MC9S12NE64的MAC和Marvell公司生产的88E6095交换芯片的PHY,通过MII相连。虽然提高了成本,但它带来了性能的大幅度提高,扩展到8个快速以太网端口,另有2个千兆以太网光纤端口。这2个端口可以连成自愈环,当发生链路故障时,可以很快恢复,适合用在工业以太网上。且可扩展性好,112脚的MC9S12NE64可扩展外部地址和数据,以及扩展EEPROM等模块。通过级联88E6095,可以生成16FE+2GE、24FE+2GE、48FE+4GE等结构。 

    本设计用MC9S12NE64单片机为CPU,88E6095为外部的PHY,设计了千兆以太网交换机。MC9S12NE64单片机接收和处理MGMT帧,监测和管理链路。同时,MC9S12NE64单片机可以嵌入开发商免费提供的TCP/IP协议栈。对交换机参数也可以通过网管软件进行配置,增加了灵活性,用户可以配置成自己所需要的交换机。而且通过级联多块88E6095,可以用来扩展工业以太网接口和千兆以太网接口。 

参考文献 

[1] Freescale, Inc. MC9S12NE64V1 datasheet. 2004. 

[2] 88E6092/6095/6095F. Marvell datesheet.2005. 

[3] 葛永明.光纤环路工业以太网交换机的设计.自动化与仪器仪表,2003,(3). 

[4] 胡荣强, 李涛.基于MC9S12NE64 型单片机的嵌入式以太网连接. 国外电子元器件,2006,(10). 

[5] 杨振伦,李军.基于MC9S12NE64的以太网数据采集终端的设计与实现.现在电子科技,2006,(10). 

[6] 牟 滨,陶智勇.弹性分组环的两种保护方式研究[J].光通信研究,2003,(2).

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。