新闻中心

EEPW首页>嵌入式系统>设计应用> 基于RapidIO的双主机节点嵌入式系统互联设计

基于RapidIO的双主机节点嵌入式系统互联设计

作者: 时间:2016-09-12 来源:网络 收藏

(2)STATUS rioMapInb(UINT32 lstart,UINT32rstart,UINT32 size,UINT32 flags)rioMapInb映射大小为size的本地地址lstart到空间地址rstart;

本文引用地址://m.amcfsurvey.com/article/201609/305086.htm

(3)STATUS rioMapOutb4(UINT32 lstart,UINT32rstart,UINT32 size,UINT32 tid0,UINT32 tid1,UINT32tid2,UINT32 tid3,UINT32 flags)

rioMapOutb一次只能映射一个外部节点的内存空间,为了提升软件效率,使用rioMapOutb4接口一次性对4个外部节点进行映射。

2.3 网络通信

的网络通信主要有消息、门铃、Nread和Nwrite等方式。软件中使用的函数接口如下:

(1)void rioSendMsg(BYTE localPort,BYTEmailBox,BYTE dstID,BYTE*msgPtr,WORD len)rioSendMsg函数接口用来在两个处理部件之间发送消息,loealPort为本地端口号,mailBox为邮箱号,dstID为目标RapidIO ID号,msgPtr为消息内容数组指针,len为消息长度。

(2)void rioSendDoorbell(BYTE localport,BYTEdstPortID,WORD data)rioSendDoorbell函数接口发送门铃信息,门铃信息一般用于处理器间的中断。Localport为端口号,dstPortID为目标端口号,data为16位门铃信息。

(3)DWORD rioDmaNread(BYTE chan,DWORDlocaladr,DWORD rioaddr,DWORD bytecnt)应用程序调用rioDmaNread接口进行Nread操作,rioDmaNread接口调用DMA控制器直接从RapidIO空间读取数据块到本地内存空间。

(4)DWORD rioDmaNwrite(BYTE chan,DWORDlocaladdr,DWORD rioaddr,DWORD bytecnt)应用程序调用rioDmaNwrite接口进行Nwrite操作,rioDmaNwrite接口调用DMA控制器直接将本地内存空间的数据块写到RapidIO空间上。

(5)DWORD rioDmaTransfer(BYTE ehan,DWORDsouraddr,DWORD desaddr,DWORD datasize,DWORDphyNextDescPtr)rioDmaTransfer接口实现DMA传输功能,该接口使用了DMA中断功能,有阻塞,当DMA没有完成时不会退出。

2.4 Rapidio网络故障恢复

在实际应用中,RapidIO网络上的节点可能出现故障,需进行重启操作。重启后的节点,其硬件配置均回到最初状态,RapidIO部分功能(节点ID等)需要进行重新初始化,因此需进行RapidIO网络的故障恢复。

RapidIO网络的故障恢复具有以下3种基础形式:

(1)普通节点的故障恢复。主节点或从节点进行一次RapidIO网络的初始化即可恢复普通节点的RapidIO网络故障。

(2)从节点的故障恢复。需要主节点进行一次RapidIO网络的初始化。

(3)主节点的故障恢复。主节点自动恢复后从节点进行一次RapidIO网络的初始化。

在某些情况下,由于芯片上RapidIO控制器的问题,主节点无法进行自身的自动恢复。因此,在故障恢复的第3种基础形式中,仅能使用从节点进行一次RapidIO网络的初始化这种方式恢复主节点的故障。在这种情况下,主节点和从节点之间需要具有通信机制,使得主节点能够将其发生故障的事件通知给从节点,从而触发从节点进行一次RapidIO网络的初始化,完成主节点的故障恢复。主节点和从节点之间需要具有通信机制,由于主节点和从节点同属于一块板卡,且之间具有互相的中断触发功能,因此使用中断触发方式完成主节点和从节点之间的故障通知。

3 系统验证

完成系统和驱动软件的设计后,在具体应用环境中对系统的功能和性能进行验证。

3.1 功能验证

系统采用主从方式初始化,系统上电后,两个CPU各自调用初始化函数进行系统初始化,先运行的CPU自动设置为主节点,后运行的CPU和网络上的其他设备为从节点,主节点通过网络枚举发现系统中的其他从节点,从而完成网络配置。系统验证了如下功能:

(1)RapidIO网络动态接入和故障恢复功能,RapidIO网络能够动态接入其他网络节点并且完成对新接入节点的网络配置,同时系统具备故障恢复功能。

(2)传输1.25 Gbit·s-1、25 Gbit·s-1、3.125Gbit·s-1,3种速率时的高速RapidIO信号,3种工作速度可通过软件动态配置。

3.2 性能验证

为了验证网络传输性能,选取RapidIO网络中的两个主机节点进行通信功能测试。RapidIO端口工作在4x模式下,速率为3.125Gbit·s-1,测试传输不同大小的包时Nread和Nwrite的传输带宽,实际的传输带宽如表1所示。

基于RapidIO的双主机节点嵌入式系统互联设计

从表中可看出,RapidIO实际的传输速率和理论传输速率之间有一定的差距。当单包数据为128 Byte时,数据传输速率比较低。随着包的大小增加,传输速率也在增加,但是速率增长趋势变缓。当单包数据为4kB时,RapidIO的传输速率是最高的,此时NWRITE的传输带宽为720.5 Mbit·s-1,NREAD的传输带宽为716.8/Mbit·s-1。

4 结束语

RapidIO是一种高效、稳定、低成本的总线,为新一代高性能嵌入式提供了良好的解决方案。本文介绍了一种基于RapidIO的具有双主机节点的嵌入式设计与实现方案,系统中两块PowerPC主控制器采用主从方式工作,并通过交换机连接外部的其他系统,该设计性能稳定可靠,能够满足并行分布式系统的高速数据传输需求,具有广泛的应用前景。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭