rapidio简介&什么是rapidio

rapidio简介&什么是rapidio,第1张

RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能、 低引脚数、 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互连技术标准。RapidIO主要应用于嵌入式系统内部互连,支持芯片到芯片、板到板间的通讯,可作为嵌入式设备的背板(Backplane)连接。

RapidIO协议由逻辑层、传输层和物理层构成。逻辑层定义了所有协议和包格式。这是对终端进行初始化和完成传送的很有必要的信息。传输层为数据包从一个终端到另一个终端通道的必要信息。物理层描述了设备之间接口协议,例如包传装置,流量控制,电特性及低级错误管理等。Rapid IO分为并行Rapid IO标准和串行Rapid IO标准,串行RapidIO是指物理层采用串行差分模拟信号传输的RapidIO标准。

基于CPCI系统的高速数字通信接口电路设计与应用

在CPCI系统环境下高速数字通信AFDX协议端系统接口的电路设计与功能实现。采用Verilog编程实现基于FPGA的硬件设计部分,采用C编程实现基于MicroBlaze的嵌入式软件设计。

0 引 言

随着通信技术的高速发展,嵌入式系统对数据传输速率的要求更高。在航空等军用电子设备中,实现信号处理算法的数字信号处理机,起着至关重要的作用。CPCI总线技术有效解决了高速互联问题。

20世纪90年代,PCI总线技术被广泛应用,但是它可靠性较低,无法满足对正常运行时间要求较高的高可用性系统。加之其主板连接器可靠性低,更换时易被损坏。CPCI的高带宽特点,决定了其适用于高速数据通信场合。随着国外著名计算机系统公司基于CPCI产品和方案的推广及PICMG/PRC对CPCI技术的宣传,我国工业控制领域越来越多地把CPCI应用于高性能嵌入式系统之中。本文研究了在CPCI系统环境下高速数字通信AFDX协议端系统接口的电路设计与功能实现。采用Verilog编程实现基于FPGA的硬件设计部分,采用C编程实现基于MicroBlaze的嵌入式软件设计。

1 基于FPGA的硬件设计

1.1 MAC模块、FIFO模块和MII模块

FIFO模块分为接收FIFO和发送FIFO,通过调用IP核来实现。本文所设计的MAC模块和FIFO模块的基本结构如图1所示。MAC核通过MII接口和PHY芯片进行外部通信,通过发送FIFO和接收FIFO进行FPGA内部数据的通信。

1.2 CRC模块

CRC模块通过检验数据的CRC值,判决接收的数据的正确性和有效性。在数据包被发送后,紧接着该数据包的4 B CRC也会被发送。接收者通过数据包和CRC数据就可以得出新的CRC值。若新CRC值为0,表明接收和发送的数据不一致,crc_error将会置1。其管脚定义如表2所示。

1.3 规整模块和冗余管理模块

规整模块根据每条VL的BAG,Lmax值,对其数据流进行规整。具体方式为:当该VL的BAG时间达到,且Jitter在最大抖动的范围内、帧长小于Lmax,则置FTT标识有效,此时多路复用器模块会申请对该VL进行调度反之,不能对该VL进行调度。将固定带宽分配给每个VL,等价于把接收端与发送端之间的数据传输限制在一个BAG内,即在一个BAG内只有一次数据传输,如果数据包过大,将其分为多个帧进行发送,也将会在各自的BAG内进行发送。所以,为了保证任意时间段使用的带宽都是可以被确定的,必须把一个时间段合理地分配给不同的终端系统使用,规整器的输入输出示意图如图3所示。

从图3可看出,两个数据帧之间的长度大于BAG,那么正常接收当两个数据帧之间的长度小于一个BAG,就将后一个数据帧移动到第二个BAG的起始位置。 在AFDX网络中,通过不同的AFDX网络交换机将两个互为冗余的帧传递到同一个目的端系统。只要交换机输出端口的输入流量大于输出流量,就必定会产生交换延迟。因为不同的交换机的交换延迟不是确定值,所以两个互为冗余的帧到达目的端的时间间隔也是不确定的。设计时,将SkewMax(最大偏斜)用于AFDX的接收冗余管理中以便对冗余帧的接收时间进行限制。冗余管理模块的功能是对接收帧的有效性进行验证,并将重复的有效帧进行消除。冗余管理模块的框图如图4所示。

1.4 发送和接收模块

发送数据的基本过程如下:要发送数据时,将待发送数据传输到MAC的发送缓存中,发送缓存接收到的数据达到设定值时,数据发送模块开始进行帧间隔计时发送帧的前导码发送帧起始定界符帧长计数、CRC校验和计算,同时将数据按半位元组(4 b)发送给MII接口在发送过程中,如果MAC检测到该帧的长度小于最小帧长(64 B),则进行数据填充达到64 B为止。

AFDX发送部分的状态机如图6所示,发送数据主要包括等待、数据长度检测、插入前导码和帧起始界定符、数据发送以及CRC校验结果状态。系统在工作的时候,一直处于wait状态,当需要发送数据的时候,状态机将进入下一个状态从而开始数据的发送。

接收为发送的反过程,首先对接收到的4位信息进行帧检测,当检测到前导码和帧起始定界符的时候,则认为一帧数据接收到了,然后开始对数据帧进行解析,得到帧数据中的各类数据信息。

AFDX接收过程如下:数据通过PHY芯片解码后进入到MAC 核,然后进入接收FIFO。当MAC接收到数据有效后,从MII接口读入数据后检测前导码和帧起始定界符,当检测到有效的帧起始定界符,就会开始对帧长进行计数。接收模块在接收数据的过程中将已接收到的帧的`前导域,SFD域,CRC域和PAD域进行剥离。

2 基于MicroBlaze的软件设计

2.1 设计说明

在MicroBlaze中将主要完成AFDX协议栈中UDP层和IP层的数据发送和接收部分,对数据进行封装、解析和控制。发送部分主要完成以下几个工作:当一个帧数据进入AFDX端口时,发送部分就开始对该帧数据进行封装,其中UDP层将对数据添加UDP头,包括源和目标UDP端口号。IP层将UDP层处理完的数据添加IP 包头和以太网头,然后送入虚链路层并添加序列号。接收部分主要完成如下几个工作:当一个帧信号通过PHY解码送入MAC后,通过接收FIFO送入AFDX接收模块,那么接收过程开始。在链路层首先对该帧信号进行完整性检测和冗余管理,然后进入IP层,进行IP 校验和检查,然后送入UDP层,通过多路分配器后将对应的帧数据发送出去,实现数据的解封装功能。

2.2 设计流程

基于MicroBlaze的系统设计需要分别对系统的硬件和软件进行协同编译。完成MicroBlaze的软件设计之后,将MicroBlaze作为ISE工程下的一个子模块进行调用。为了验证程序的正确性,利用ISE调用ModelSim对其进行仿真。具体做法是在ISE工程中添加一个以MicroBlaze处理器为基础的IP核,并编写测试文件,为处理器的输入信号提供激励,输出信号提供端口。

3 测试与验证

两个MAC核的仿真意义是相同的,所以针对第一个MAC核的仿真波形进行说明。mii_tx_en_0为帧使能信号,当MAC核正常工作时,有数据发送的时候该信号为1当发送为0的时候,该信号使能为0,mii_txd_0为发送的数据。当有接收信号进入MAC核时,mii_rx_dv_0为高电平,对应的数据为接收的数据当接收的数据发生错误时,mii_rx_er_0会出现高电平,如果接收到的数据没有发生错误,那么该信号为低电平。

在接收端,判断接收数据的CRC计算结果是否为0,如果为1,则表明接收过程中有CRC校验错误。CRC 校验模块的仿真结果如图11所示。由图11可以看出,对接收到的数据以及发送过来的这些数据的CRC 校验值(d19167bc)一起计算,计算出来的校验值为0,证明接收的数据没有问题。

规整模块的仿真数据如图12所示。此处接收到的数据位1,2,3,4,…是不等间隔的,通过规整之后输出的数据1,2,3,4是等间隔的,这个模块的初始输出数据是错误的,所以会重复输出第一帧的数据,后面将输出正确的数据。

主机要发送数据时,首先给MAC的发送缓存中发送数据。发送缓存接收到的数据与设定值相符时,开始进行长度检测,检测完成后,数据发送模块开始进行帧间隔计时。根据帧计数器的值开始发送帧的前导码、帧起始定界符,将4位数据发送给MII接口,最后把数据从物理层发送到网络介质上。发送模块的仿真结果如图13所示。

此处仿真波形的信号i_start_or_not为高电平时,AFDX 发送模块开始工作,i_data为需要发送的数据,i_data_number为需要发送数据的个数,i_aim_address 为发送信号的目标地址,i_orig_address为发送的源地址,i_head_ip为发送信号的IP头,i_head_udp为发送信号。当发送开始时,系统首先检测需要发送的数据长度,如果数据长度大于64,则开始发送,如果发送数据长度小于64,那么进行填充,补充到64为止。通过AFDX发送模块,得到发送的帧数据o_AFDX_data以及帧信号对应的帧使能信号o_afdx_frame,完成了数据的正常发送。

接收模块的仿真结果如图14所示。当外部数据通过PHY解码后进入MAC核,接收端开始进入接收状态机,首先检测前导码和帧起始界定符。如果检测正确,那么系统进入下一个状态。从图14的仿真结果可以看出,当检测完前导码和帧起始界定符时,current_state将进入下一个状态。然后开始接收数据,o_data就为接收到的数据。 4 结 论

本文在对航空全双工以太网(AFDX)协议深入研究的基础上,介绍了一种通用信号处理平台中的一块AFDX接口板卡,该板卡扣在相应的XMC载卡上应用于CPCI系统中。该板卡XMC传输速率为3.125 Gb/s,可高速传输RapidIO协议数据,兼容32 b PCI接口和LINK口协议。由于该板卡支持多种接口模式的背板,为各种高速板卡之间的互联提供了平台。

基于AFDX接口板卡,采用FPGA设计了一种AFDX端系统接口功能的实现方法,该方法基于FPGA的硬件设计和基于MicroBlaze的嵌入式软件设计,采用FPGA和PHY芯片实现End System端的AFDX接口,完成传输层(UDP)、网络层(IP)、链路层(Virtual Link)及物理层(PHY)四层协议数据传输,使得该接口具备实时、可靠传输AFDX 数据的能力。由于该网络协议比较复杂,开发设计具有一定难度。本文的设计基本实现了AFDX端系统的接口发送和接收功能,基本达到了预期目标。AFDX端系统作为AFDX网络协议的重要组成部分,为航空电子系统提供了安全可靠的数据交换服务接口,今后必会得到更加广泛的应用。

一、Mobiveil RapidIO 2.2核仿真 *** 作说明 3

二、基于Xilinx GTX的RapidIO可综合wrapper设计说明 4

三、上板调试步骤 4

3.1 chipsocpe观察RapidIO Outbound和 Inbound接口数据 5

3.2 SoC系统调试 *** 作说明 5

一、Mobiveil RapidIO 2.2仿真 *** 作说明

Mobiveil RapidIO源代码需要对其仿真环境进行设置才能完成仿真过程,原因是Mobivieil RapidIO测试激励system verilog代码只能在32位 *** 作系统中运行,且有些 *** 作系统缺少相应仿真运行环境库。具体仿真修改 *** 作如下:

1. 建立64位 *** 作系统镜像,选择rhel-server-6.3-x86_64-dvd.iso为 *** 作系统安装所用 *** 作系统镜像。在现有的 *** 作系统下键入以下命令进行 *** 作系统光盘挂载:mount -o loop ~ver7/rhel-server-6.3-x86_64-dvd.iso /home/RHEL6.3/

2. 在系统etc/yum/repos.d/目录下建立文件名为rhel6-3.repo的文件,文件内键入以下内容:

#[rhel-source]

#name=Red Hat Enterprise Linux $releasever - $basearch - Source

[6.3image]

Name=Red Hat Enterprise Linux 6.3

Baseurl=file:///home/RHEL6.3

Enable=1

gpgcheck=0

3. 使用如下命令查看VCS和DVE软件缺少的库文件:

ldd /export/COREDATA/eda_tools/synopsys/tool_collection/VCS_MX/2011.12/linux/bin/vcs1

ldd /export/COREDATA/eda_tools/synopsys/tool_collection/VCS_MX/2011.12/gui/dve/linux/bin/dve.exe

4. 在.bashrc中设置库搜索的路径,键入以下RapidIO,VCS,verdi库路径:

export LD_LIBRARY_PATH= $NOVAS_HOME/share/PLI/VCS/LINUX:$RAPIDIO_SO:/export/COREDATA/ eda_tools/synopsys/tool_collection/VCS_MX/2011.12/linux/lib :/export/COREDATA/eda_tools/Novas/novas-201210p3/share/FsdbWriter/LINUXAMD64:

5. 搜索缺少的库,键入如下命令:Yum search “X11”。其中X11为需要安装的库名称。

6. 安装缺少的库,一般32位库为有i868的标志,安装后能自动解决库的关联问题,例如键入以下命令进行库安装:Yum install libX11.i686 libX11-common.noarch libX11-devel.i686

7. 部分.so库 *** 作系统不带有该安装包,需要单独下载安装,安装路径为/home/RHEL6.3/Packages/,比如:Rpm -i /home/RHEL6.3/Packages、

安装完成后,进入rapidIO/dv/rundir文件夹下运行./RUN命令进行仿真,各个仿真功能点命令放在rapidIO/dv/config文件夹下,仿真结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8099184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存