基于BF537构建双冗余以太网的设计方案
实际上就是实时读取Basic Status Register,并对结果作出判断。
3.2 程序设计
可以通过操作BF537的寄存器EMAC_STAADD完成其对LAN8187寄存器的读写。对LAN8187寄存器读写的函数定义为:
u16 RdPHYReg(u16 PHYAddr,u16 RegAddr);
void WrPHYReg(u16 PHYAddr,u16 RegAddr,u32 Data);
其中PHYAddr为芯片的物理地址,RegAddr为寄存器地址。
对Basic Status Register的监测采用轮询的机制,即设定一个信号量Link_status,其周期为2 ms,因此每隔2 msEther moniter线程被触发一次。在Ether_moniter中通过调用RdPHYReg()函数,读取Basic Status Register的值,并判断Link位。Ether_moniter线程流程如图3所示。
对于设计方案1来讲,当检测到需要进行网络切换时,需要停用当前网卡初始化备用网络LAN91C111并设定相同的IP地址以及MAC地址。对于方案2,则只需要通知CPLD将通道切换至备用的LAN8187接口。
4 冗余切换测试
用Visual C++6.0开发的简单的上位机测试程序,每隔1ms发送一个UDP数据报,并给每个数据报编写不同的序号。在BF537中编写程序不断接收上位机发来的数据报,然后制造网络通信故障,本文构建的冗余网络将会自动切换到备用通道继续接收上位机的数据报,最后通过检测接收到数据报的序号来确定冗余切换所消耗的时间。分别对两种方案所构建的冗余网络的切换进行测试,结果如表2所示。
从实验结果可以看出方案2具有快速切换的优点,丢包率低;方案l平均丢包数远远大于方案2,并且切换时间长。
5 结束语
本文提出了两种基于BF537构建双冗余以太网的方案,分别论述了其原理、器件选择、连接方法,并做出软件设计。最后经过测试,方案2的切换效果和时间非常理想,最终在实际项目中得到了应用。
设计 方案 以太网 双冗余 BF537 构建 基于 相关文章:
- 直接变频接收机设计可实现多标准/多频带运行(10-11)
- 基于蓝牙芯片的无线通信模块设计与开发(02-03)
- 无线通信网络设计与现场测试(10-10)
- WiMAX数据传输加密方案设计与实现(05-25)
- 高性能TD-SCDMA接收机的设计(03-15)
- 初步设计WiMAX射频系统(03-29)