片上PowerPC在VxWorks下的UDP千兆网通信
当前,SoC向着面积更小、速度更高的方向发展,百兆网通信已不能满足人们的生产和工作需要,用千兆网通信成为工作中迫切的要求。用FPGA实现千兆网的通信,有二种模式可以选择:其一,编写一个IP软核;其二,用FPGA内嵌的MAC内核。方法一的灵活性大,但要实现并不容易,因此,赛灵公司将其归为收费IP;方法二中,MAC的三态可配置特性为实现千兆网通信提供了可能。本设计就是基于此内嵌的Ethernet MAC模块,在Vx-Works操作系统下成功实现了千兆网的通信。
本文引用地址:http://www.amcfsurvey.com/article/83944.htm1 Virtex4 FX系列FPGA中内嵌的千兆通信硬核架构
Virtex4 FX系列FPGA中内嵌了多个用于千兆通信的硬核。以XC4VFX20为例,如图1所示,它通过一个主机接口连接了2个EMAC核。2个EMAC可以一起使用,也可以只使用其中的一个。
Virtex4中嵌入的Ethernet MAC硬核主要特点:
◆支持半双工和(或)全双工操作;
◆设计符合IEEE 802.3-2002标准;
◆支持3种操作模式:1 Gb/s、100 Mb/s、10 Mb/s;
◆支持MII、GMII、RGMII、SGMII通信方式;
◆为不限长度的VLAN帧和JUMBO帧提供技术支持;
◆提供了可选的网络管理特性,包括基于每个分组的统计数据矢量和流程控制。
通过一个与处理器无关的接口,可以对TEMAC核进行配置和监控,其为用户选择适合其应用的理想处理器提供了附加的灵活性。
在1 Gb模式下,TEMAC支持千兆位级媒体独立接口(GMII)和降低千兆位级媒体独立接口(RGMII)。GMII是一个运行频率为125 MHz的字节宽并行SDR接口,而RGMII是一个运行频率为25 MHz的半位元组并行DDR接口,可以提供的总带宽为1 Gb/s。而且,在100 Mb/s和10 Mb/s模式下,TEMAC均支持MII接口。MII接口是4位宽,在100 Mb/s模式下其工作频率为25 MHz。在10 Mb/s模式下,MII接口的工作频率为2.5 MHz。
由于Virtex4中嵌入了Ethernet MAC硬核,同时,FX系列还嵌入了PowerPC,这样,就可以用PowerPC控制Ethernet MAC实现千兆网的通信。
2 VxWorks下BSP的移植
VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS)。它采用微内核的结构,具有支持多种处理器、丰富的网络协议、良好的兼容性和裁剪性等特点,同时具有程序动态链接和下载的功能。自从20世纪80年代问世以来,以其不断推出的升级版本、高性能内核以及友好的用户开发环境,在嵌入式实时操作系统领域逐渐占据一席之地,尤其以成功应用于火星探测车和爱国者导弹等高科技产品而闻名。VxWorks的板级支持包BSP (Board Support Package)是介于底层硬件和上层软件之间的底层软件开发包,主要功能是屏蔽硬件,提供操作系统的驱动。具体功能包括:
◆单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持;
◆为操作系统提供设备驱动和系统中断服务程序;
◆定制操作系统的功能,为软件系统提供一个实时多任务的运行环境;
◆初始化操作系统,为操作系统的正常运行做准备。
在嵌入式系统设计中,BSP的开发是一项非常复杂而繁琐的工作,Xilinx公司提供的EDK套件,可以在很大程度上减轻开发者的工作负担。EDK中的 BSP生成器(BSPgen)可以根据不同的微处理器、外设和RTOS组合自动产生用户可裁剪的BSP。它包含了系统所必需的支持软件,包括Boot代码、设备驱动和RTOS的初始化。利用BSPgen可以把Xilinx器件驱动打包到BSP的子目录下,并且把Xilinx器件驱动与VxWorks及其 Tornado集成开发环境无缝集成,充分缩短开发周期。
但是,BSPgen生成的BSP只是一个固定的BSP模板,并不能正确地反映RAM/ROM的存储器映射,不支持用户通过BSPgen流程自定义的核/驱动等。因此还需要对BSPgen产生的BSP进行修改。
对BSP开发人员来讲,借助EDK的BSPgen,还必须要做以下几项工作:
①修改config.h和Makefile中的RAM、ROM地址及串口速率;
②修改sysSerial.c,对串口进行正确的设置;
③增加不能与VxWorks无缝集成的器件的驱动文件,关键性中断、GPIO接口等;
④配置sysNet.c中的以太网参数,设置MAC地址;
⑤根据EDK中的配置,禁止或使能Cache;
评论