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

上传人:jiups****uk12 文档编号:40019110 上传时间:2018-05-22 格式:DOC 页数:6 大小:108.50KB
返回 下载 相关 举报
基于嵌入式SoPC的以太网接口设备_第1页
第1页 / 共6页
基于嵌入式SoPC的以太网接口设备_第2页
第2页 / 共6页
基于嵌入式SoPC的以太网接口设备_第3页
第3页 / 共6页
基于嵌入式SoPC的以太网接口设备_第4页
第4页 / 共6页
基于嵌入式SoPC的以太网接口设备_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于嵌入式SoPC的以太网接口设备》由会员分享,可在线阅读,更多相关《基于嵌入式SoPC的以太网接口设备(6页珍藏版)》请在金锄头文库上搜索。

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

2、理器,基于 VME 总线的以太网接口设备,它通过以太网和 VME 总线接口,实现 VME 系统与外部局域网的实时数据交换。硬件开发硬件开发开发采用 Xilinx 公司的 EDK7.1(嵌入式开发套件)和 ISE7.1 工具软件。EDK 工具包中集成了硬件平台生成器(Platgen)、软件平台生成器(Libgen)、仿真模型生成器(Simgen)、软件编译器(Mb-gcc/ppc-gcc)和软件调试工具(Mb-gdb/ppc- gdb)等,通过提供的集成开发环境XPS,用户可以调用上述所有工具,来完成嵌入式系统开发的整个流程。首先在 XPS 界面环境下生成硬件系统框架并添加所需的 IP 核,也可

3、以用文本编辑器直接编写硬件描述文件? (.MHS 文件),再调用 Platgen 将其生成嵌入式处理系统的网表文件(.NGC 文件);然后通过系统生成或手工编辑的软件描述文件(.MSS 文件) 来设置系统软件配置,并调用 Libgen 生成驱动层和库。虽然 EDK 的 IP 库中有一些很有用的功能模块和外设接口的 IP 核,如 DCM(数字时钟管理器)、处理器复位、PLB/OPB 总线接口、外部存储控制器(EMC)、UART、GPIO、中断控制器、定时器等,充分利用这些资源就可以构建一个较为完善的嵌入式微处理器系统,但是对于许多有特殊专用电路的嵌入式计算机系统的应用还是不够的。如何将用户专用电

4、路设计到 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 设计并要满足 ED

5、K 的规范,如有专门目录结构和处理器外设定义文件(.MPD)、外设分析定义文件(.PAO)等。如果自定义的 IP Core 要具有软件驱动,那设计还要完全符合相应的 PLB或 OPB 总线接口规范。完成了硬件和驱动的设计后,就可以在 XPS 工程中添加应用软件项目并编写应用软件,然后调用处理器对应的编译器编译并和硬件综合后生成的.bit 文件合成后下载到目标板便可以进行调试了。本系统硬件组成框图如图 1 所示。本设计选用 Virtex-II Pro 系列 FPGA 芯片 XC2VP40,将系统的程序存储器和数据存储器都放在片内用 Block RAM 来实现,在系统中添加 DCM模块,将外部参考

6、时钟 4 倍频提供给 PowerPC 405 作处理器时钟,并分频后再送给 OPB总线作总线时钟,降低慢速外设的总线速度,使系统搭配更合理。图图 1 系统硬件组成框图系统硬件组成框图PowerPC 405 是此嵌入式系统的核心,它通过 PLB 总线实现和程序存储器和数据存储器的快速通道,并通过 PLB-OPB 桥实现了片上的 OPB 总线,然后通过 OPB 总线进行各种外设的扩展,OPB 外设包括一个 RS232 串口,一个 OPB_EMC 用于扩展以太网控制器芯片,一个 GPIO 作以太网控制器输出的中断请求,一个中断控制器 OPB_INTC 将 GPIO 输入的外部中断通知 PowerPC

7、 405 并可以设置优先级,还有一个用户自定义的 IP Core 用于实现和 VME 总线的接口电路。PowerPC 405 是专门为嵌入式应用而设计的高性能 32 位 PowerPC 系列处理器芯核,对于 Virtex-II Pro 系列 FPGA,其实现型号为 PowerPC 405D5。PLB 是处理器本机总线,它为指令和数据一侧提供独立的 32 位地址和 64 位数据总线。PLB 总线架构支持多主从设备,每一个 PLB 主控机通过独立的地址总线、读数据总线和写数据总线与 PLB 连接,有一个中央判决机构来授权对 PLB 的访问以允许主控机通过竞争来获得总线的所有权。OPB 是片上外设总

8、线,提供分离的 32 位地址总线和 32 位数据总线,一般用来访问低速和低性能的系统资源。它是一种完全同步总线,但不直接连接到处理器内核,处理器内核通过 “PLB to OPB”桥和 OPB 总线来访问 OPB 接口外设。网络控制器采用 Cirrus Logic 公司的通用单片 10/100M 以太网控制器 CS8900A,该芯片完全遵从与 IEEE 802.3 以太网标准,支持完全的全双工操作。应用 EDK 的 OPB_EMC IP可以很方便地将 CS8900A 扩展为系统 OPB 总线上的一个设备,只要将 EMC 端口的地址、数据总线以及控制信号分别接到 CS8900A 的地址、数据总线和

9、控制端口上,并将 EMC 的时序参数设置成与 CS8900A 手册上要求的一致就可以了。另外将 CS8900A 的中断输出INTRQ 作为一个 GPIO 引入系统以实现以太网的中断服务功能。自定义的 IP Core 内容如图 2 所示,它用 FPGA 内的 Block RAM 资源实现 64KB 的双口RAM 用来完成和 VME 总线上其他设备的通信和数据交换。我们用上述的第二种方法来实现将用户专用电路嵌入微处理器系统中,自定义的 IP 主要包括 OPB 总线接口和用户电路两部分,我们用 EDK 提供的 OPB 总线的 IPIF 模板修改后,作为自定义 IP 的总线接口,64KB 的双口 RA

10、M 和 VME 总线接口是真正的用户电路。图图 2 自定义的自定义的 IP Core 结构结构软件开发软件开发嵌入式开发环境 EDK(Embedded Development Kit)将软件开发分为两大部分,一是底层系统软件的开发,主要完成 BSP(板级支持包)的功能;另一部分则是用户应用软件的开发(包括用户硬件驱动及用户上层应用软件)。由于 EDK 中带有许多 IP 核以及相应的驱动软件,因此底层系统软件的开发大部分可以借助 EDK 集成开发环境来完成的,如操作系统的选择、设备驱动程序的选择、中断/异常处理例程的设置、操作系统参数设置等在内的各种系统级软件参数的设置。而用户应用软件的开发由于

11、有底层驱动的隔离,可移植性好。整个用户软件的开发及调试工作都可以在 EDK 中完成。 底层系统软件开发底层系统软件开发在本设计中,没有使用操作系统,使用所谓的 standalone 模式,即 EDK 仅提供硬件初始化及引导代码。此外还需要对 GPIO、EMC、 RS232、中断控制器等一些外设生成底层驱动,这些都可以通过在 EDK 集成环境 XPS 中选择菜单 Project-Software Platform Settings 的对话框进行设置,如图 3 所示。其实质是自动修改工程的.MSS 文件。例如中断函数的处理例程可在如图 4 所示的界面中加以设置。也可以手工编辑.MSS 文件如下设置

12、:PARAMETER int_handler = CS8900A_INT_HANDLER, int_port = IP2INTC_Irpt图图 3 在在 XPS 中设置操作系统和驱动程序中设置操作系统和驱动程序图图 4 在在 XPS 中设置中断服务例程中设置中断服务例程设置完成后在 XPS 中运行 Tools-Generate Libraries and BSPs 将调用 LibGen 自动生成驱动库文件,这些 CPU 和外设驱动库的设置、操作函数实现或定义可在工程项目根目录下的以处理器实例名为名字的目录下的 libsrc 目录下相应的各模块子目录中找到,参考其实现有助于深刻理解事实上发生的操

13、作。例如中断向量表可在中段向量控制器模块子目录(本例中为 intc_v1_00_csrc)下的 xintc_g.c 文件中找到。 用户软件开发用户软件开发用户软件主要是对网络控制器、GPIO、RS232 串口等的操作,其中控制 CS8900A 的程序是重要部分,它要完成 TCP/IP 协议。 CS8900A 所有的控制寄存器和数据寄存器都映射在被称为 PacketPage 的片上 4K 地址空间内,这 4K 空间可映射到主机地址空间中(存储器模式),或通过 8 个 16 位 I/O 口进行存取(I/O 模式)。本设计中 CS8900A 工作于 I/O模式,通过 EDK 的 OPB_EMC IP

14、 作为 OPB 总线上的一个设备,并给 EMC 控制器和所映射的设备分配操作地址空间,在程序中用Xuint32 XIo_In32(XIo_Address InAddress);void XIo_Out32(XIo_Address OutAddress, Xuint32 Value);读写映射的设备,这两个 I/O 函数同*pDestMem = Value(直接读写存储器操作)的差别在于前者做了读写同步(调用 eieio 汇编指令)。参考芯片手册编写 CS8900A 的驱动,实现基本I/O 操作 CS8900A_SendFrame 和 CS8900A_RecvFrame。EDK 中有需付费的以太

15、网 IP CORE 并附带有一些 TCP/IP 协议栈,该协议栈实现了大部分常用功能,但也有一些重要功能并未实现,例如 TCP 包的超时未达重发,收发操作的中断工作方式。通过修改、增加和完善这些软件包,实现了真正面向用户更高层应用软件的网络编程接口。 软件开发中的部分问题软件开发中的部分问题软件开发过程中遇到的几个主要问题归纳如下:(1)IEEE 802.3 网络及网络控制器 CS8900A 采用的均是 Little Endian 编码,而 XC2VP40内含的处理器 PowerPC 405D5 采用的是 Big Endian 编码方式,因此在数据 I/O 过程中需要做一下转换。(2)可通过编

16、写链接控制脚本文件控制应用程序的链接过程,从而控制程序映像在存储器中的重定位过程。这在 FPGA 这种存储器资源有限的环境中有时很有用。(3)要将 EDK 提供的默认 bootloop 程序打包到硬件初始化流中,这样做的目的是提供默认的 CPU 复位后运行程序,保证 CPU 处在可预知的状态,而不是因为执行了存储器中的随机代码而处于一种未知的状态。 系统调试方法系统调试方法由于 PowerPC 405 处理器核中已包含调试模块,并用 JTAG 端口引出,只要在系统中添加一个叫做 JTAGPPC 的 IP 模块并和 PowerPC 405 相连便可将其调试端口串入 FPGA的 JTAG 链中,这样只需使用 FPGA 本身的下载电缆和 JTAG 接口便可完成系统软件调试而不需要增加额外电路。EDK 提供的软件调试工具主要有 XMD 和 GDB。值得一提的是利用 XMD 下载可执行程序映像时还会显示各程序段的重定位情况,在发生错误时会报告错误,诸如要求的地址空间大于实际提供的地址空间等错误,而这在 EDK 集成环境下是看不到的。在存在多种类型存储器资源的情况下,编写链接控

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号