基于BF537的双冗余以太网的设计与实现
随着信息技术的高速发展,网络通信显得越发重要,以太网成为了各种控制系统接口互联的主要媒介。在金融机构、军事应用等特殊应用场合对网络系统的稳定性要求非常高,为了提高系统的可靠性和抗毁性,采用双冗余的设计方式。双冗余网络实现是以故障检测为基础,通过软件检查、交换机及网络节点的网卡协同处理。冗余网络的构建方式通常是在每个网络节点采用双网卡,中间用2个HUB或交换机相连。这样当某个节点的一块网卡、网线或者HUB出现故障时,系统会启用另一块冗余网卡使得系统仍能够正常运行。本文提出了两种基于BF537的冗余网络构建方案。
1 BF537的结构特点
BF537是Blackfin家族的升级产品,其在标准Blackfin内核的基础上拥有丰富接口,并在内部集成有以太网MAC控制器。Blackfin内核包含2个乘/累加器(MAC),2个40位的ALU,4个视频专用8位ALU和1个40位移位器。运算单元处理来自寄存器组的8、16或32位数据。每个MAC每周期可完成一个16位×16位的乘法运算,并把结果累加到40位的累加器中,提供8位的精度扩展。ALU单元执行标准的算术和逻辑运算,由于2个ALU具备对16或32位数据操作的能力,因此运算单元具备的灵活性可以满足各种应用中信号处理的要求。每个32位的输入寄存器可以作为2个16位的寄存器,因此每个ALU可以完成非常灵活的单16位算术运算。通过把寄存器当作2个16位的操作数使用,双16位或单32位操作可以在一个周期中完成。更好地利用第2个ALU,4个16位操作可以简单地完成,加速了每个周期的吞吐量。强大的40位移位器功能丰富,可以对数据进行移位、循环移位、归一化、提取和存储等操作。运算单元所使用的数据来自具有16个16位操作数或8个32位操作数的寄存器组。
同时BF537把存储器视为统一的4 GB的地址空间,使用32位地址并采用分级的存储器结构。Level 1(L1)存储器一般以全速运行,没有或只有很少延迟。Level 2(L2)/Level 3(L3)分布在片内或片外,对其访问会耗费多个处理器周期。在L1级,指令存储器只存放指令,2个数据存储器存放数据,1个专用的临时数据存储器存放堆栈和局部变量信息。在L2/L3级可以存放指令和数据。
2 双冗余以太网构建方案
以太网接口电路主要由MAC控制器和物理层接口(PHY)两大部分构成,这里从是否具备独立的MAC控制器出发提出了2种不同的构建双冗余以太网的方案。
2.1 基于独立MAC控制器的设计方案(方案1)
BF537内部集成了一个支持IEEE802.3 MAC控制层协议的MAC控制器,只需要在外部外接一个以太网接口器件,便可以形成一个完整的以太网通道。因此选择了SMSC公司的LAN8187,它提供了标准的MII总线接口,方便地与BF537相连接,连接方式如图1所示。在MII总线上进行数据的收发,MDC和MDIO则用来完成对接口芯片LAN8187寄存器的读写。以下称由BF537的MAC控制器与物理层接口芯片LAN8187构成的以太网通道为主网络通道。
如果要求双冗余网络通道拥有独立的MAC控制器,则需要在BF537外部扩展一个以太网控制器,如图1所示,选择同样来自于SMSC公司的LAN91C111,通过BF537的外部总线与之相连。选择LAN91C111的16位总线工作方式使其A0~A15与BF537的地址总线相连,D0~D15与BF537的数据总线相连,并由BF537的AMS信号控制LAN9lClll的片选,外部PF引脚来响应来自LAN91C111的中断请求。
2.2 基于共用MAC控制器的设计方案(方案2)
从应用角度分析,即使系统拥有独立的MAC控制器,在实际应用中也要求2个MAC控制器拥有相同的物理地址,因为若MAC地址不同,冗余切换将引起协议层中ARP绑定表的变化,重新映射ARP表中物理地址和IP地址之间的关系将增加冗余切换的时间,影响到网络通信的实时性。
因此提出一套MAC控制器,2个以太网接口芯片的设计方案。该设计方案通过1片CPLD将BF537的MII总线分别转接到2片IAN8187上,并由BF537来控制转接的时机。这样形成了2个以太网通信通道,大大简化了设计,提高了冗余切换的实时性。该设计方案如图2所示。
3 冗余切换软件设计
3.1 网络状态监测
冗余切换的实现首先在于对网络进行实时在线监测,其检测的方法是基于LAN8187的寄存器,表1为IAN8187寄存器的定义。
评论