首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
嵌入式技术
» 【转】基于嵌入式Linux和FPGA的千兆网数据传输的实现
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
【转】基于嵌入式Linux和FPGA的千兆网数据传输的实现
发短消息
加为好友
samwalton
当前离线
UID
872238
帖子
6518
精华
0
积分
3259
阅读权限
90
在线时间
309 小时
注册时间
2012-3-1
最后登录
2014-7-5
论坛元老
UID
872238
1
#
打印
字体大小:
t
T
samwalton
发表于 2013-7-13 17:14
|
只看该作者
【转】基于嵌入式Linux和FPGA的千兆网数据传输的实现
单片机
,
嵌入式
,
Linux
,
中国
,
成本
引言
中国散裂中子源实验的简图如图1所示,其原理是把中子束打在被测样品(例如新药品或机翼材料)上,探测被反射的中子位置就能计算出样品的内部结构图像,其特点如下: A/D采集通道多,每个通道的数据带宽高,且需要把现场采集的数据传到远程
服务器
上。因此,要求数据传输模块既要成本低、微型化、具备网络功能,也要数据带宽高。
图1 中国散裂中子源实验简图
单片机或
arm
具有微型化、低成本的特点,但数据带宽和灵活性不满足本项目;工控计算机数据处理能力强,有网络接口,但是体积过大,成本高;传统高能物理实验采用的VME系统也因体积大、数据带宽有限而不适合用在中国散裂中子源实验上。
FPGA有很高的性能,而且内部还集成PowerPC处理器、千兆网MAC等硬核资源,这使得在一块FPGA上就能构建一个完整的片上系统,使整个系统体积可以做的很小。在FPGA片内PowerPC硬核上移植
嵌入式
linux
操作系统,用软件来实现网络传输
协议
可以解决用FPGA硬件描述语言实现TCP/IP
协议
难度大的问题。FPGA的高性能、高可靠性和Linux的灵活性完美结合在一个片内,能较好地满足本项目的需求。
1 系统的总体构成及层次
本系统可以分为5个层次,如图2所示,
最低层为外围电路硬件层,每一层都是建立在其下一层之上。
2 系统外围电路的简介
本文在硬件上采用了实验室自行设计的电路板,用的是带PowerPC的xilinx Virtex4 FPGA,电路如图3所示。
图3 系统的硬件模块框图
3 SOPC的构建
SOPC (System on a Programmable Chip) 即可编程片上系统,把整个系统放到一块硅片上,是一种特殊的
嵌入式
系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。
3.1 开发工具
Xilinx 公司提供了FPGA开发工具EDK(Embedded Development Kit),它带有大量可配置可定制的IP核,可以大大提高设计的效率,使设计者把主要精力放在设计系统架构上,能很方便的对FPGA进行模块化的重构和裁剪,提高设计的灵活性,减少了外围器件,符合SOPC的思想。
3.2 SOPC的总体构成
SOPC系统构建完成后的框图如图4所示,其中PowerPC405是已经固化在FPGA内部的硬核,工作频率设为300MHz,配置时要选择cache选项,否则运行嵌入式Linux会很慢。PowerPC405通过PLB(Process Local Bus)总线核和各个IP模块互联构建了一个完整的SOPC系统。
图4 FPGA内部各个IP模块框图
3.3 内存端口的设置
MPMC (Multi-Port Memory Controller)是DDR2内存控制器的IP核,它最多可以接八个数据端口,这样的好处是多个设备都可以通过各自的端口共享内存,本论文使用了四个端口:port0和port1都通过plb总线连接在PowerPC上,分别用于传输指令和数据,port2端口采用的是NPI(Native Port Interface)接口,用于接收A/D模块传输过来的用户数据,port3采用SDMA (Soft Direct Memory Access)接口,通过locallink总线和千兆网IP核相连。在对MPMC配置时要根据内存的型号、大小等实际参数来设置。
3.4 用户自定义数据接口IP核
开发工具虽然提供了一些常用的IP核,但是对于一些特定要求的逻辑,需要用户自己开发。由于从A/D采集板传送过来的数据速度很大,所以本论文在MPMC 的port2上采用NPI接口把A/D模块传过来的数据直接送入DDR2中。需要用硬件描述语言编写基于NPI接口的逻辑,并且还要编写基于PLB总线的IP核来实现对数据传输的控制,例如数据传输开始与停止、握手方式、数据包的大小等等。
3.5 千兆三态以太网硬核的配置
三态以太网TEMAC (Tri-Mode Ethernet Media Access Controller)是嵌在FPGA内部的硬核。本论文通过LocalLink总线使其连在内存控制器MPMC上,采用SDMA方式,使得数据直接从内存到网络接口而不必经过PowerPC的搬运, 这样在很大程度上减轻了CPU的负担,提高了数据传输速度。
4 板级支持包的生成
4.1板级支持包工具的选择和设置
先在
http://git.xilinx.com/
网站上
下载
device-tree.git,它是板级支持包(BSP)生成工具。解压后放在EDK安装目录下的EDKswlibbsp,之后点击Software-->
Software Platform Settings就可以发现并选择它了,如图5所示。
图5 板级支持包工具的选择
在device-tree下要把 bootargs的设置成console=ttyUL0,而不是默认的console =ttyS0,否则超级终端将没有输出。这是因为我们在调试时需要RS232串口作为超级终端,用的是XPS UART Lite核,但板级支持包默认的却是UART16500核。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议