基于嵌入式SoPC的以太网接口设备

2008-02-23 05:28:16来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

SoC(片上系统)的概念已日益普及,而随着FPGA技术的迅速发展,可编程系统芯片(SoPC)作为一种特别的嵌入式微处理器系统,融合了SoC和FPGA各自的长处,并具备软件和硬件在系统可编程、可裁减、可扩充、可升级的功能,已逐渐成为一个新兴的技术方向。SoPC的核心是在FPGA上实现的嵌入式微处理器核,现在主要有Xilinx公司的32位软核MicroBlaze、32位PowerPC系列处理器硬核PowerPC 405,连同Altera公司的Nios系列微处理器软核等。

本文介绍的系统是个以PowerPC 405为微处理器,基于VME总线的以太网接口设备,他通过以太网和VME总线接口,实现VME系统和外部局域网的实时数据交换。

硬件研发

研发采用Xilinx公司的EDK7.1(嵌入式研发套件)和ISE7.1工具软件。EDK工具包中整合了硬件平台生成器(Platgen)、软件平台生成器(Libgen)、仿真模型生成器(Simgen)、软件编译器(Mb-gcc/ppc-gcc)和软件调试工具(Mb-gdb/ppc-gdb)等,通过提供的集成研发环境XPS,用户能够调用上述任何工具,来完成嵌入式系统研发的整个流程。

首先在XPS界面环境下生成硬件系统框架并添加所需的IP核,也能够用文本编辑器直接编写硬件描述文档 (.MHS文档),再调用Platgen将其生成嵌入式处理系统的网表文档(.NGC文档);然后通过系统生成或手工编辑的软件描述文档(.MSS文档)来配置系统软件配置,并调用Libgen生成驱动层和库。虽然EDK的IP库中有一些很有用的功能模块和外设接口的IP核,如DCM(数字时钟管理器)、处理器复位、PLB/OPB总线接口、外部存储控制器(EMC)、UART、GPIO、中断控制器、定时器等,充分利用这些资源就能够构建一个较为完善的嵌入式微处理器系统,但是对于许多有特别专用电路的嵌入式电脑系统的应用还是不够的。如何将用户专用电路设计到EDK系统中,一般有两种方法,第一种是将EDK工程作为一个子系统在XPS中用Export to PorjNav生成ISE工程,然后在ISE中将专用电路和处理器子系统(system.vhd)合成为顶层HDL文档(system_stub.vhd)后,在ISE中完成综合布线,最后在XPS中用Import from PorjNav得到硬件的.bit文档,便能够回到XPS中完成和应用软件的合成、下载和调试了。第二种方法是将专用电路设计成为用户自定义的IP Core,然后直接在系统中调用来实现。自定义的IP Core用HDL设计并要满足EDK的规范,如有专门目录结构和处理器外设定义文档(.MPD)、外设分析定义文档(.PAO)等。假如自定义的IP Core要具备软件驱动,那设计还要完全符合相应的PLB或OPB总线接口规范。完成了硬件和驱动的设计后,就能够在XPS工程中添加应用软件项目并编写应用软件,然后调用处理器对应的编译器编译并和硬件综合后生成的.bit文档合成后下载到目标板便能够进行调试了。

本系统硬件组成框图如图1所示。本设计选用Virtex-II Pro系列FPGA芯片XC2VP40,将系统的程式存储器和数据存储器都放在片内用Block RAM来实现,在系统中添加DCM模块,将外部参考时钟4倍频提供给PowerPC 405作处理器时钟,并分频后再送给OPB总线作总线时钟,降低慢速外设的总线速度,使系统搭配更合理。

图1 系统硬件组成框图

PowerPC 405是此嵌入式系统的核心,他通过PLB总线实现和程式存储器和数据存储器的快速通道,并通过PLB-OPB桥实现了片上的OPB总线,然后通过OPB总线进行各种外设的扩展,OPB外设包括一个RS232串口,一个OPB_EMC用于扩展以太网控制器芯片,一个GPIO作以太网控制器输出的中断请求,一个中断控制器OPB_INTC将GPIO输入的外部中断通知PowerPC 405并能够配置优先级,更有一个用户自定义的IP Core用于实现和VME总线的接口电路。

PowerPC 405 是专门为嵌入式应用而设计的高性能32位PowerPC系列处理器芯核,对于Virtex-II Pro系列FPGA,其实现型号为PowerPC 405D5。

PLB是处理器本机总线,他为指令和数据一侧提供单独的32位地址和64位数据总线。PLB总线架构支持多主从设备,每一个PLB主控机通过单独的地址总线、读数据总线和写数据总线和PLB连接,有一个中央判决机构来授权对PLB的访问以允许主控机通过竞争来获得总线的任何权。OPB是片上外设总线,提供分离的32位地址总线和32位数据总线,一般用来访问低速和低性能的系统资源。他是一种完全同步总线,但不直接连接到处理器内核,处理器内核通过“PLB to OPB”桥和OPB总线来访问OPB接口外设。

网络控制器采用Cirrus Logic公司的通用单片10/100M以太网控制器CS8900A,该芯片完全遵从和IEEE 802.3以太网标准,支持完全的全双工操作。应用EDK的OPB_EMC IP能够很方便地将CS8900A扩展为系统OPB总线上的一个设备,只要将EMC端口的地址、数据总线连同控制信号分别接到CS8900A的地址、数据总线和控制端口上,并将EMC的时序参数配置成和CS8900A手册上需要的一致就能够了。另外将CS8900A的中断输出INTRQ作为一个GPIO引入系统以实现以太网的中断服务功能。

自定义的IP Core内容如图2所示,他用FPGA内的Block RAM资源实现64KB的双口RAM用来完成和VME总线上其他设备的通信和数据交换。我们用上述的第二种方法来实现将用户专用电路嵌入微处理器系统中,自定义的IP主要包括OPB总线接口和用户电路两部分,我们用EDK提供的OPB总线的IPIF模板修改后,作为自定义IP的总线接口,64KB的双口RAM和VME总线接口是真正的用户电路。

图2 自定义的IP Core结构

软件研发

嵌入式研发环境EDK(Embedded Development Kit)将软件研发分为两大部分,一是底层系统软件的研发,主要完成BSP(板级支持包)的功能;另一部分则是用户应用软件的研发(包括用户硬件驱动及用户上层应用软件)。由于EDK中带有许多IP核连同相应的驱动软件,因此底层系统软件的研发大部分能够借助EDK集成研发环境来完成的,如操作系统的选择、设备驱动程式的选择、中断/异常处理例程的配置、操作系统参数配置等在内的各种系统级软件参数的配置。而用户应用软件的研发由于有底层驱动的隔离,可移植性好。整个用户软件的研发及调试工作都能够在EDK中完成。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 高效率嵌入式程式研发

下一篇: C 语言编程常见错误 2