微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于NETFPGA的可重构科学计算平台

基于NETFPGA的可重构科学计算平台

时间:06-04 来源:互联网 点击:

EDK中还带有一些外设接口的IP核,如LMB、OPB总线接口、外部存储控制器、SDRAM控制器、UART、中断控制器、定时器等。利用这些资源,可以构建一个较为完善的嵌入式微处理器系统。

在FPGA上设计的嵌入式系统层次结构为5级。可在最低层硬件资源上开发IP核,或或已开发的IP核搭建嵌入式系统,这是硬件开发部件;开发IP核的设备驱动、应用接口(API)和应用层(算法),属软件开发内容。

利用MicroBlaze构建基本的嵌入式系统。通过标准总线接口—LMB总线和OPB总线的IP核,MicroBlaze就可以和各种外设IP核相连。

EDK中提供的IP核均有相应的设备驱动和应用接口,使用者只需利用相应的函数库,就可以编写自己的应用软件和算法程序。对于用户自己开发的IP核,需要自己编写相应的驱动和接口函数。

2.3.4MAC

MAC的控制采用了XILINX的IP EthernetLITE,简化以太网子系统。对于远程监视或控制应用中所需要的简单网络接口来说,最小化网络子系统就足够了。

MicroBlaze “Lite” Ethernet Subsystem:MicroBlaze以太网简化子系统

简化以太网子系统

利用不带中断的Ethernet Lite IP在简单的查询模式下实现设计就可以了。同时还可以将全部软件,包括简单的应用层,都存储在Xilinx FPGA中的本地存储器中。利用XPS中的基本系统构建向导(Base System Builder wizard)可以容易地创建这样的MicroBlaze设计。

2.3.5HTTP接口

·lwip网络协议栈

Lwip是Light Weight IP的缩写,它是专门为嵌入式系统应用的TCP/IP协议栈。Lwip既可以移植到操作系统上,又可以在无操作系统的情况下独立运行。Lwip支持多网络接口下的IP转发,ICMP协议,UDP协议,TCP协议。不同于一般的TCP/IP协议栈,在Lwip的处理器模型中,所有TCP/IP协议栈都在一个进程当中完成,而不是在每一层都有一个单独的进程。这样TCP/IP协议栈就和操作系统内核分开了,避免了跨层传输数据时频繁的上下文操作。而应用层程序既可以是单独的进程也可以驻留在TCP/IP进程中。如果应用程序是单独的进程,可以通过操作系统的邮箱、消息队列等和TCP/IP进程进行通讯。如果应用层程序驻留TCP/IP进程中,那应用层程序就利用内部回调函数接口和TCP/IP协议栈通讯。

·SOCKET编程

网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符,它具有类似于打开文件的函数调用Socket()。基于操作系统的Socket编程有三种类型:流式套接字,数据报式套接字,原始式套接字。其中只有流式套接字提供一个面向连接的可靠的数据传输服务。

·服务器端HTTP协议的实现

HTTP协议是一种较为常用的应用层协议,它是Hypertext Transfer Protocol的缩写。HTTP协议采用客户端和服务器的模式,通过客户端向服务器发出请求,获得服务器端的响应。在本系统设计中SOPC系统作为HTTP协议的服务器。HTTP请求和响应的报文格式是相似的,报文有一个请求行/状态行和一个头部组成,有时还可能包括主体。在请求行中包括了请求类型,URL,版本等。在响应行中包括状态码,状态短语等。头部格式为:(头部名字:头值)。下面是一个HTTP请求的例子。

请求

应答

GET /usr/bin/image HTTP/1.1

Accept: image/gif

Accept: image/jpeg

HTTP/1.1 200 OK

Date: Mon,08-Jan-05 13:15:14 GMT

Server: Challenger

MIME-Version: 1.0

Content-length: 2048

(图像文件主体)

表4-1 一个HTTP请求的例子

在EDK中,每一个外设IP模块都有自己的软件函数库。利用Libgen工具,将所需外设函数数库的头文件添加进工程中,通过调用这些函数可以操作和控制这些外设。例如对串口的操作如下:

//初始化串口,设置波特率等参数,清空发送和接收缓冲,禁止中断;

使用标准C语言进行应用程序的开发,编写相应的算法软件,完成系统功能。

将编写的程序代码利用mb-gcc编译工具,根据系统的软件一并,生成.ELF文件。在编译链接之前,若选择调试方式,就会在生成文件中加入调试接口SMDstub,进行程序的硬件调试。

利用系统的硬件模型以及RAM块的组织结构文件、ELF文件和用户结束文件,应用FPGA综合实现工具(如Xilinx XST)进行综合,然后下载生成的配置BIT文件到目标板上。利用EDK中提供的GDB调试工具可以进行程序调试。有两种调试方法:软件仿真和硬件调试。软件仿真可以进行程序的功能调试,在开发工具内部就可以进行,不需要硬件支持。硬件调试就是通过JTAG接口或串口(可在硬件设计时选择),连接到目标板上的应用系统中的XMD调试接口,将软件程序下载到系统中进行调试。本课题使用的目标板上的主芯片为Xilinx Spa

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top