集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

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

[复制链接]
 楼主| lcytms 发表于 2017-10-18 14:28:00 | 显示全部楼层
利用不带中断的Ethernet Lite IP在简单的查询模式下实现设计就可以了。
同时还可以将全部软件,包括简单的应用层,都存储在Xilinx FPGA中的本地存储器中。
利用XPS中的基本系统构建向导(Base System Builder wizard)可以容易地创建这样的MicroBlaze设计。
 楼主| lcytms 发表于 2017-10-18 14:33:22 | 显示全部楼层
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请求的例子。

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-18 14:36:52 | 显示全部楼层
在EDK中,每一个外设IP模块都有自己的软件函数库。利用Libgen工具,将所需外设函数数库的头文件添加进工程中,通过调用这些函数可以操作和控制这些外设。
例如对串口的操作如下:
//初始化串口,设置波特率等参数,清空发送和接收缓冲,禁止中断;
使用标准C语言进行应用程序的开发,编写相应的算法软件,完成系统功能。

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

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

H TTP 协议及其实现
嵌入式Web 服务器技术的核心是HTTP (超文本传送协议) 引擎。
HTTP 是WWW 上的协议。
HTTP 协议使Web 服务器和浏览器可以通过Web 交换数据。
他是一种请求/ 响应协议,即服务器等待并响应客户方请求。
当用户要浏览服务器上的一个网页时,一个HTTP 请求就会从用户的浏览器发到HTTP 服务器。
服务器响应这个请求, 把指定的网页传送回来, 用户才看到了网页。

HTTP协议不维护与客户方的连接,他使用可靠的TCP连接,通常采用TCP 的80 端口。
客户/ 服务器传输过程可分为4 个基本步骤:浏览器与服务器建立连接;浏览器向服务器请求文档;服务器响应浏览器请求;断开连接。
服务器程序开始运行时,主进程就创建一个套接字,并与主机地址绑定到一起,随后置为被动监听状态,等待客户端连接请求的到来。
一旦接收一个连接,就返回一个新的套接字描述符,主程序则开辟一个新的子程序来处理这个新的连接。
这样系统可以同时接收多个客户端的请求。
首先创建套接字,将套接字与本地地址和端口绑定,并设置套接字处于监听状态。
Web 服务器在接收一个连接请求后,读取用户的请求,根据用户的请求进行相应的处理。
当请求位静态文本时,文档直接提交输出,当请求位动态文本时,请求模块自动调用脚本引擎,将脚本替换位现场数据,再提交输出,当请求为带参数的执行命令时,请求解析器调用命令执行模块分析命令并控制监控前端。

Http 设计模型

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-18 14:37:50 | 显示全部楼层
CPU 本身是以软核的方式实现,其功能可根据需要进行定制,非常灵活。
EDK 不但在硬件设计上提供了支持,在软件上也为设计者提供了较好的支持,提供了现成的网络协议栈。
加上EDK提供的集成开发环境使得软件开发更加便利。
采用这种方式的控制系统具有控制分散、开放性好、使用简单、稳定性好等优点,而且可以通过浏览器进行远程多点监控和远程支持,是未来控制系统发展的一个趋势。
 楼主| lcytms 发表于 2017-10-18 14:38:21 | 显示全部楼层
2.3.6IP核封装

设计使用输入GPIO 32位,输出GPIO 32位。
 楼主| lcytms 发表于 2017-10-18 14:40:29 | 显示全部楼层
2.3.7设计过程

Software:Xilinx ISE Design Suite 10.1 SP3

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-18 14:42:20 | 显示全部楼层

        ISE主界面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-18 14:43:47 | 显示全部楼层
本帖最后由 lcytms 于 2017-10-18 14:45 编辑

          新建一个工程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-18 14:46:27 | 显示全部楼层
本帖最后由 lcytms 于 2017-10-18 14:47 编辑

选择FPGA信号和嵌入式处理器型号

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
小舍YZ 发表于 2017-10-23 14:52:16 | 显示全部楼层
H TTP 协议及其实现
嵌入式Web 服务器技术的核心是HTTP (超文本传送协议) 引擎。
HTTP 是WWW 上的协议。
HTTP 协议使Web 服务器和浏览器可以通过Web 交换数据。
他是一种请求/ 响应协议,即服务器等待并响应客户方请求。
当用户要浏览服务器上的一个网页时,一个HTTP 请求就会从用户的浏览器发到HTTP 服务器。
服务器响应这个请求, 把指定的网页传送回来, 用户才看到了网页。
谢谢分享。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-23 14:59 , Processed in 0.068829 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表