0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Linux操作系统和WDMA技术实现EPON系统的设计

电子设计 来源:电子设计应用 作者:胡元兵,刘海,刘 2021-06-11 16:14 次阅读

作者:胡元兵,刘海,刘德明

千兆以太网无源光网络(EPON)是一种点到多点拓扑结构的光接入网技术,采用无源光器件连接局端和远端设备,实现以太网业务的透明传输,并能在同一架构中实现语音、视频等综合业务的接入。EPON作为新兴接入网技术的突出优势在于低成本、易维护和扩展性好。EPON系统由OLT与ONU构成。

ONU硬件系统设计

系统硬件由嵌入式控制模块和网络交换模块两部分构成。嵌入式控制模块是ONU的控制和管理核心,它为嵌入式Linux操作系统的运行提供硬件平台,通过它来实现对网络交换模块的控制与配置,实现网络交换模块的正常运行。网络交换模块提供以太帧的交换与转发功能,嵌入式控制模块通过PCI总线与网络交换模块进行通信,访问网络交换模块内部各芯片寄存器,对各芯片进行配置并获取各个芯片的状态信息。网络交换模块内部的交换芯片BCM5615将嵌入式控制模块对它的访问,转换为自己对网络交换模块内部各芯片的访问,这样就实现了嵌入式控制模块对网络交换模块内部各芯片的管理。

嵌入式控制模块接口设计

嵌入式处理器MPC8245简介

MPC8245由一个外设逻辑块和一个32位超标量体系结构PowerPC处理器内核构成。在外设逻辑块中集成了一个PCI桥、DUART、内存控制器DMA控制器、EPIC中断控制器、一个消息单元和一个I2C控制器。处理器内核支持浮点运算和内存管理,具有16KB指令高速缓存(cache), 16KB数据cache和电源管理特性。MPC8245内含一外设逻辑总线,用于连接处理器内核和外设逻辑块。处理器内核可在多种不同的频率下工作。MPC8245既可用作 PCI host,也可用作PCI代理控制器。支持多达2GB的SDRAM;支持1“8 组的4MB, 16MB, 64MB, 128MB, 或256MB存储器。

时钟电路

MPC8245输入时钟由33MHz的的晶振通过零延时缓冲器产生四路时钟信号,一路作为MPC8245的PCI总线时钟和内核的输入时钟,系统时钟信号OSC_IN未用,需要接地。MPC8245的引脚PLL_CFG[0:4]用于配置倍频因子,经过内部倍频器,产生SDRAM时钟和166MHz的CPU内核时钟。一路作为RTL8139的PCI总线时钟,一路作为BCM5615的PCI总线时钟。

PCI总线接口

PCI总线工作在33MHz,设计中要保证PCI时钟的时钟相位偏移小于2ns,否则,系统可能无法正常工作。MPC8245作为PCI 主处理器,RTL8139和BCM5615的REQ#、GNT#分别连到MPC8245的REQ[0:1]#、GNT[0::1]#,由MPC8245来实现总线的仲裁。利用地址线AD31,AD30来决定RTL8139、BCM5615的IDSEL, 实现PCI总线配置访问时对RTL8139、BCM5615的片选。这种方法会使AD31,AD30线上增加一个负载,因此将它们的IDSEL通过1K?电阻耦合到AD31、AD30上来解决负载加重的问题。PCI总线的控制信号都要求有上拉电阻,保证它们在没有驱动设备驱动总线的情况下仍然具有稳定的值,因而 FRAME#、TRDY#、IRDY#、DEVSEL#、STOP#、SERR#和PERR#这些信号使用10K?电阻上拉。

Flash

本设计中选择512KB的Flash作为Bootloader代码存储器,系统工作在8位模式,对应的地址为0xFF800000”0xFF87FFFF。选用两片AM29LV320B分别作为Bootloader/Linux内核和文件存储器,AM29LV320B是32 Mb、单3.3V电源供电的闪存,编程和擦写电压由内部产生,与JEDEC单电源闪存标准兼容;可组成4M×8Bit或2M×16Bit的存储器。可用标准EPROM编程器进行编程;存取时间最短为70ns;独立的片选(CE#)、写使能(WE#) 和输出使能(OE#)控制,可减小对总线的压力。片选RCS1、RCS2分别选择两片Flash,RCS1选中的Flash对应的地址为0xFF000000“0xFF3FFFFF,RCS2选中的Flash地址由编程决定。

跳线J1用来将RCS0接到Flash1,RCS1接到Flash0,这样在Bootloader代码运行后,将Bootloader代码、Linux内核代码都烧到Flash1,节约一片512KB的Flash,同时留下RCS2、RCS3片选信号,留作以后扩展Flash用。

SDRAM

32MB的SDRAM由两片HY57V283220T组成。MPC8245的SDRAM接口 使用一个片选信号CS1,同时作为两片HY57V 283220T的片选,构成64位数据的SDRAM。 HY57V283220T是4 Bank×1M×32Bit的CMOS SDRAM,单3.3±0.3V电源供电,所有引脚与LVTTL接口兼容,所有输入和输出都以系统时钟的上升沿为参考。

CONSOLE和EMS接口电路

串行通信通过MAX232芯片实现,工作在3.3V工作电压,它的体积比较小,工作稳定。通过串口可实现对ONU的网络管理。使用常用的PHY芯片RTL8139扩展一个10Mbps网口,使得在Bootloader代码引导系统后,通过该网口下载Linux内核代码,系统运行后通过该网口对ONU进行WEB管理。

交换模块接口设计

以太网交换模块由1个BCM5615交换芯片、3个BCM5228B PHY芯片、1个BCM5221PHY芯片、1个HDMP-1636A千兆SERDES和SDRAM芯片组成。该模块提供1个千兆光口(1000BASE-LX),25个百兆光口(100BASE-FX),是实现ONU功能的核心部分。一个千兆口作为PON的接收端口,接收OLT广播发送的数据包;另一个千兆口连接成百兆口,作为PON的发送端口,向OLT发送数据,该端口发射的是特殊波长的光。通过特殊的交换机制来实现ONU与OLT的连接。

BCM5615芯片简介

BCM5615是集成多层交换芯片,是以太网交换模块的核心。它具有24个10/100Mbps和2个10/100/1000Mbps以太网口;具有2层和3层交换和2”7层过滤功能;可实现全线速交换,交换速率达670万包/秒;支持IEEE 802.1Q.D;具有256KB的内部数据包存储器,可以用SDRAM扩展64MB外部数据包存储器。

本设计选用3片BCM5228B来提供24个PHY端口。BCM5228B是物理层器件,单片内包含8个独立的PHY(端口)。BCM5615通过串行MII管理接口管理3个 BCM5228B芯片的24个PHY端口,系统对BCM5228B的访问就是通过转化为BCM5615的串行MII管理接口上的操作来实现的。BCM5228B每个PHY端口的管理地址由PHYADD[4::0]引脚设置,若BCM5228B的PHYADD[4::0]为PHYAD,则每片8个端口对应的管理地址分别为ADDR=PHYAD+ PORTX,PORTX为每个PHY端口的编号。

时钟电路

BCM5615的芯核时钟由133MHz的晶振产生,设计PCB时,应尽量靠近BCM5615的时钟输入引脚,BCM5615的GMII时钟与MII时钟均为125MHz,由125MHz的晶振通过74LCX245缓冲后产生四路125MHz的时钟源,输入到BCM5615的GMII_CLKIN引脚和3片BCM5228的REF_CLK引脚。注意连接到BCM5228B的时钟线应该等长,不管千兆口是否使用,GMII_CLKIN的时钟都必须提供。

系统复位电路

系统复位电路采用IMP811复位芯片,通过74LCX245缓冲后产生多路复位信号,分别接到各个芯片的复位引脚。为了可靠复位,要求复位信号的上升沿不能有振荡现象发生。

系统软件设计

本文选择Linux作为操作系统,使用Broadcom公司提供的软件开发包SDK开发BCM5615的驱动程序。PPCBOOT是独立于其它软件的,它只负责初始化并配置有关硬件,然后调用Linux内核映像引导操作系统运行,其它软件分为用户空间程序和内核空间程序两大部分。在内核空间运行嵌入式Linux操作系统、BCM5615驱动程序、RTL8139网口驱动程序、实现STP的STP内核模块、为方便整个软件系统设计和实现而采用的虚拟设备VND和VCD。它们之间的接口关系是:Linux提供内核API给BCM5615驱动和其它Linux可动态加载内核模块,如STP、VND、VCD、RTL8139网卡驱动等。

ASIC驱动

ASIC 驱动主要是完成对BCM5615的初始化和配置工作,并为上层服务提供接口。其中SAL 层的目的就是把操作系统所提供的各种服务映射为驱动程序本身的API。第二层即中间层,也可以说是整个驱动程序的核心层,它建立在SAL 之上,其设计目标主要是提供底层寄存器和存储器的访问、PCI 总线操作、DMA 操作以及中断处理函数等。驱动程序的顶层是API层,它建立在DRV层之上,是对DRV 有关部分的封装,从而为上层的其他软件模块提供各种服务,其他模块通过调用这一层的函数来访问和控制ASIC。ASIC 驱动提供的API 对用户进程来说是无法直接调用的,因此本文设计了一个虚拟的字符设备(TTY),并编写其驱动程序,同时在/dev 目录下用mknod 命令建立相对应的字符设备文件。

对操作系统来说,BCM5615的26 个端口对应于一个物理PCI 设备,即ASIC,它们共享一个PCI通道和地址空间。这给那些与网络设备紧密相关的软件带来不少麻烦,因此可以把26 个端口设计成26 个虚拟网络设备(VND)并编写其驱动程序。因此,SNMPD 和生成树协议软件所看到的是26 个虚拟网卡,和普通的网卡并无区别。

结语

本文采用波分多址(WDMA)实现的EPON系统,与同类产品相比较,有实现简单、性能好、易于升级、系统造价低的优势,已经在宽带接入网中获得重要应用。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50279

    浏览量

    421233
  • Linux
    +关注

    关注

    87

    文章

    11216

    浏览量

    208766
  • 操作系统
    +关注

    关注

    37

    文章

    6703

    浏览量

    123155
收藏 人收藏

    评论

    相关推荐

    基于Linux等不同操作系统实现异构系统的设计

    通过该设计能够确保装有不同操作系统的各种服务器能够在本系统中正常工作,同时使用消息队列实现系统模块之间的通信便于扩展系统的处理能力,能大大提
    发表于 01-16 09:17 2589次阅读

    Linux与其他操作系统的区别

    Linux与其他操作系统的区别Linux与其他操作系统的区别  Linux可以与MS-DOS、OS/2、Windows等其他
    发表于 09-13 10:12

    LINUX操作系统

    Linux操作系统,分为好几种,它们有什么区别吗?今天安装了个乌班图操作系统,这个LINUX操作系统如何?本人不太清楚,还请前辈指点一下?谢
    发表于 12-16 18:34

    怎么实现EPON系统中ONU的设计?

    本文采用波分多址(WDMA实现EPON系统,与同类产品相比较,有实现简单、性能好、易于升级、系统
    发表于 05-28 06:04

    基于Linux操作系统的嵌入式网关的实现

    基于Linux操作系统的嵌入式网关的实现
    发表于 03-28 09:48 29次下载

    Linux操作系统

    linux的教学内容1 、Linux概述 2 、Linux操作系统安装3、 Linux的内核 4 、Li
    发表于 04-10 16:54 0次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>

    Linux操作系统原理及应用

    Linux操作系统原理及应用 1.1  操作系统的地位 1.2  操作系统的功能 1.3  操作系统的发
    发表于 04-28 14:53 0次下载

    linux操作系统的安全性

    linux操作系统的安全性 计算机系统安全性的内涵 操作系统的安全性功能 操作系统的安全机制 安全
    发表于 04-28 15:05 0次下载

    Linux与其他操作系统的区别

    Linux与其他操作系统的区别 Linux与其他操作系统的区别  Linux可以与MS-DOS、OS/2、Windows等其他
    发表于 01-18 12:42 1650次阅读

    什么是Linux操作系统

    什么是Linux操作系统  简单地说,Linux是一套
    发表于 12-26 12:04 1403次阅读

    手机支持的Linux操作系统

    手机支持的Linux操作系统   Linux系统Linux系统是一个源代
    发表于 01-28 17:07 1815次阅读

    趣谈Linux操作系统

    趣谈Linux操作系统
    的头像 发表于 01-13 16:00 6428次阅读

    基于linux的十大操作系统排名

    基于linux内核开源的特性,并随着linux的不断发展,各种基于Linux操作系统版本也在不断发行出来,其中每一个不同版本的Linux
    发表于 07-10 16:23 1.6w次阅读

    Linux操作系统与Windows操作系统的五大区别

    Linux操作系统和Windows操作系统身为三大操作系统巨头里面的两大巨头,他们有什么区别呢?首先,先要声明一点,所有以Linux内核为基
    发表于 07-10 16:28 7863次阅读

    linux属于什么操作系统

    Linux属于一种类UNIX操作系统Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX
    的头像 发表于 11-08 11:01 4198次阅读