基于PowerPC的RapidIO高速串行通信设计与实现
本作品内容为基于PowerPC的RapidIO高速串行通信设计与实现,格式为 docx ,大小 42737 KB ,页数为 6页
('基于PowerPC的RapidIO高速串行通信设计与实现纪斌;郑志国【摘要】提出了采用基于PowerPC架构的MPC8548E为主机的高速串行RapidIO实现方案,详细阐述了硬件设计要点和软件初始化流程,为以PowerPC为处理器的嵌入式操作系统实现设备间的高速互连提供了一套行之有效的解决方案.【期刊名称】《电讯技术》【年(卷),期】2011(051)003【总页数】4页(P75-78)【关键词】嵌入式操作系统;系统互联;数据传输;串行RapidIO【作者】纪斌;郑志国【作者单位】中国西南电子技术研究所,成都,610036;中国西南电子技术研究所,成都,610036【正文语种】中文【中图分类】TN919;TP336在传统的嵌入式系统中,受处理器速度和性能的限制,系统对数据传输的速率要求不高。然而,随着CPU、DSP、FPGA和ADC技术的迅速发展,传统的分层共享总线已经无法满足现在高性能嵌入式系统的IO性能需求和信号处理高速数据传输需求。系统互联,即板间各种信号高速实时交互,成了制约嵌入式系统性能提升的一个主要瓶颈。RapidIO作为解决各系统板间数据高速互连的国际通用协议,得到了越来越多主流芯片厂商的支持,有广阔的应用发展空间。串行RapidIO的互连架构是一种高性能、低引脚数、基于包交换的交叉开关互连技术。本文提出了基于PowerPC的RapidIO高速通信协议来解决这一瓶颈的软硬件实现方式。1基于PowerPC的串行RapidIO的硬件设计PowerPC作为高端的嵌入式系统处理器,在航空、航天、雷达终端等电子设备领域有着广泛的应用。RapidIO协议有多种实现方式:可以通过FPGA加入IPCORE的方式,但这种方式受限于IPCORE对器件的限制和对协议实现的不完全,很难运用于嵌入式系统实时的主控操作;还可以通过一些DSP提供的RapidIO硬件接口实现,通过操作DSP提供的RapidIO专用寄存器能轻松进行RapidIO设备间的读写,但是DSP是单线程操作,很难加入实时操作系统对任务进行管理和调度。因此,本次设计最终选择了通过PowerPC提供的RapidIO硬核实现。本次方案设计选用Freescale公司针对SerialRapidIO推出的最新PowerPC——MPC8548E。由于串行RapidIO采用的是点对点技术,在需要2个以上RapidIO接口处理或桥接部分的系统中都需要采用一台交换机。因此,本次设计选用了Tundar公司针对串行RapidIO推出的专用交换机Tsi745。Tsi745交换机可实现与串行RapidIO兼容的微处理器、DSP、FPGA及其它外围设备互联,支持40Gbit/s的整合带宽。作为终端显控的嵌入式系统,本次设计还加入了2个千兆以太网口以及4个串口控制器,作为与外部板卡连接的必要工具,RapidIO信号通过VPX插座传输。整个硬件框图如图1所示。图1MPC8548E硬件连接框图Fig.1BlockdiagramofMPC8548Ehardware在硬件设计方面,首先要注意电源。在上电时,采用单5V供电,MPC8548E的瞬时电流最高能到8A,稳定时为2.5A左右,因此MPC8548E对于电源负载能力要求很高。MPC8548E核心电压为1.1V,为了能在1.5GHz的频率下正常运行,需要一个独立无干扰的电源层,本文采用TI公司的直流开关电源转换芯片TPS54010,最高能提供10A稳定电流。DDR2芯片和MPC8548E自带的控制器的参考电压为1.8V,两者也需要独立回路的电源层。其它大多数器件都只需要3.3V的单电源供电,其回路需要的电流也很大,采用的也是TI公司的开关电源转换芯片TPS54810PWP,也能提供最大10A的稳定电流。由于整个系统对电源的稳定性要求极高,本文采用了MAXSIM公司的MAX16006电源监控芯片,对各个电源实时监控,如果超出输入参考值的1%,它会自动产生全局复位信号,从而保护整个电路。其次是时钟信号,本次设计需要多个不同时钟源满足各个器件的工作需求,MPC8548E需要一个范围为20~80MHz的系统时钟,作为内核PLL以及外围DDR控制器等的时钟参考。Tsi745交换机需要两个独立的时钟,其中一路156.25MHz差分时钟输入用来控制RapidIO信号的传输速率,一路100MHz共模时钟信号用以控制Tsi745内部寄存器的访问,千兆以太网也需要一个25MHz的时钟信号,PCB布线时,要注意它们不要相互干扰,以致传输数据错误。然后在印制板绘制时,需要注意一些差分等长线设计。由于DDR2运行的频率在533MHz以上,其信号线、地址线和差分时钟线都要按照自身手册要求严格等长,RapidIO接收端需要端接一个0.1μF的电容,在高速传输中隔离直流信号。4x的RapidIO信号接收和发送端也必须分别等长,并满足50Ω的阻抗匹配。2RapidIO板间通信的软件实现在进行RapidIO读写前,先要在上电时对MPC8548和Tsi574进行必要的硬件配置。本文设置为RapidIOHost模式,通信速率为1.25Gbit/s。Tsi574端需要通过SP{n}-MODESEL、SP-IO-SPEED[1:0]、SP{n}-PWRDN引脚配置各个端口的模式、速率以及是否使能,本文设置为1x模式,速率是1.25Gbit/s,每个端口都使能。硬件配置完成后,需要对RapidIO内部寄存器进行初始化配置,并完成对内部RapidIO和外部Agent地址空间映射,最终就能像访问外部存储器一样直接对这些地址空间操作,实现各个RapidIO器件的读写。由此可见,软件上的关键就是对RapidIO寄存器的初始化配置和地址映射,简单的流程如图2所示。图2RapidIO初始化软件流程Fig.2RapidIOsoftwareinitializationflow2.1配置本地处理器在启动RapidIO操作之前,首先要配置一些MPC8548E内部寄存器。上电后,第一个要配置的就是TLB(TranslationLookasideBuffers)入口寄存器,为RapidIO读写操作设置内存空间。TLB入口设置通过配置MAS0(MMUAssistRegister0)、MAS1、MAS2、MAS7来实现。由于MAS寄存器是内部特殊寄存器,只能通过汇编指令来访问。然后设置内部区域寄存器(LocalAreaWindow)来重新映射可以访问的RapidIO读写内存空间,需要设置两个寄存器:LAWBAR(LocalAccessWindowBaseAddressRegister)设置RapidIO内存空间的基地址,如0xC0000000;LAWAR(LocalAccessWindowAttributeRegister)设置本窗口的类型和大小,必须设置成RapidIO类型,大小根据实际需要确定,如0x80C0001B,C表示RapidIO,1B表示256M。第三步检查和同步RapidIO外围链路。在任何RapidIO操作前,都要查看有没有正确链接其它RapidIO器件。通过读寄存器ESCSR(ErrorandStatusCommandandStatusRegister)来获得链路的各种信息,ESCSR[PO]表示输入输出口已经初始化完成,可以进行下一步操作,如果有错,就检查ESCSR其它位,找出错误地方,以便进行下一步修改。第四步就是设置Maintenance窗口,为配置外部交换机和其它RapidIO从设备作准备。需要配置RapidIOOutbound窗口的3个寄存器为:ROWBAR(RapidIOOutboundWindowBaseAddressRegister)设置Outbound窗口的32位基地址,如0x000C0000;ROWAR(RapidIOOutboundWindowAttributesRegister)设置Outbound窗口使能、读写和大小等属性,设置为Maintenanceread和write,如0x8007070013;ROWTAR(RapidIOOutboundWindowTranslationAddressRegister)设置Outbound窗口外部器件ID、跳数和Maintenance操作高位地址,如0x3FC00000。2.2查找系统内其它RapidIO设备执行的第一条RapidIO操作指令就是通过Maintenanceread获取外部第一个RapidIO设备的设备ID,对外部RapidIO从设备的寄存器空间读写都需要通过Maintenanceread或write指令操作。本次设计使用的是交换机Tsi574,读出的ID为0x05740002。然后对交换机进行配置,需要读出端口个数(RIO-SW-PORTRegister),锁定ID(HBDIDLCSRRegister),然后更新路由查找表,通过设置RIO-ROUTE-CFG-DESTID和RIO-ROUTE-CFG-PORT确定发给主机的数据都在交换机内,且都通过正确的端口发送。交换机配置好后,需要通过交换机查找下一级的RapidIO从设备,检查到正确的链路后,也需要读出其设备ID,从而判断是哪一类器件。一般从器件的DeviceID都是0xFF,需要把它修改为不同的ID,可以依次设置为1、2、3、4。最后还要更新路由查找表,使每个端口能正确收发数据。2.3使能外部RapidIO配置空间为了正确读写外部RapidIO器件的配置空间,首先要配置各个从器件的LCSBA1CSR(LocalConfigurationSpaceBaseAddress1CommandandStatusRegister),设置RapidIO在这个从器件内的起始地址。然后配置主机Outbound窗口3个寄存器:ROWBAR、ROWAR、ROWTAR,这个在设置Maintenance窗口步骤中已经配置过,但是要进行一些修改,ROWBAR起始空间应从0x000C1100开始,ROWAR窗口属性要设置为NREAD和NWRITE,ROWBAR需要设置TargetID和Outbound传输地址,如0x00401000。使能外部Rapid配置空间,还能在上电时通过主机启动RapidIO从设备。2.4使能内存读写为了使能内存读写,在主机端配置好ROWBAR、ROWAR、ROWTAR寄存器后,还需要对各个从设备的Inbound窗口寄存器进行设置:RIWBAR(RapidIOInboundWindowBaseAddressRegister),设置好从设备端的RapidIOInboundWindow基地址;RIWAR(RapidIOInboundWindowAttributesRegister)设置Inbound窗口属性,包括窗口大小、读写模式和内存映射等;RIWTAR(RapidIOInboundWindowTranslationAddressRegister),设置从设备数据输出起始地址。正常配置好这些寄存器后,就能像访问内存空间一样对RapidIO设备进行读写了。3实验结果本次设计用于某项目中信号处理板与显控板实时数据传输通信中,要求每隔十几微秒就传输3~4kbyte数据。在Linux操作系统中,采用RapidIO1x模式,在1.25Gbit/s速率下进行数据传递检验,实验框图如图3所示。图3RapidIO实验连接图Fig.3RapidIOexperimentalconnectionblockdiagram首先在上电后,PowerPC先配置好交换机Tsi574,通过交换机找到3个RapidIO从设备,然后对这3个设备进行初始化,包括修改DeviceID、RapidIOInbound、Outbound寄存器和配置读写的映射空间,根据通过串口打印在控制台上的信息,一步步判断初始化程度。RapidIO正确配置后,待Linux系统正常启动后,通过上位机电脑网络发送数据到PowerPC,然后PowePC把收到的数据直接通过内存读写分发给3个RapidIO从设备,从设备收到数据后,发送接收完成中断,PowerPC再分别读出3个从设备接收到的数据进行比较。实验结果表明,在1.25Gbit/s速率下使用SerialRapidIO协议通信,4kbyte数据能在1μs内正确实时地传送。【相关文献】[1]FreescaleSemiconductor.MPC8548EPowerQUICCTMIIIIntegratedProcessorFamilyReferenceManual[M]//MPC8548ERMDatasheet.EastKilbride,USA:FreescaleSemiconductorInc,2007:1035-1222.[2]LorraineMcLuckie,ColinCureton.SerialRapidIOBring-UpProcedureonPowerQUICCTMIII[M].EastKilbride,USA:FreescaleSemiconductorInc,2005:3-38.[3]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2009:384-389.WEIDong-shan.ApplicationofembeddedLinuxsystem[M].Beijing:People′sPostsandTelecommunicationsPress,2009:384-389.(inChinese)[4]朱坚,徐光辉,朱利利.基于SerialRapidIO的高速实时数据采集处理系统[J].电子质量,2008(10):6-7.ZHUJian,XUGuang-hui,ZHULi-li.HighSpeedDataAcquisitionandProcessingSystemBasedonSerialRapidIO[J].ElectronicsQuality,2008(10):6-7.(inChinese)[5]邓豹,赵小冬.基于串行RapidIO的嵌入式互连研究[J].航空计算技术,2008,38(3):123-126.DENGBao,ZHAOXiao-dong.ResearchoftheEmbeddedInterconnectionFrameBasedonSerialRapidIOTechnology[J].AeronauticalComputingTechnique,2008,38(3):123-126.(inChinese)[6]王学宝,郑波祥,朱勇.基于TSI568的RapidIO交换模块设计[J].微计算机信息,2009,25(6):104-106.WANGXue-bao,ZHENGBo-xiang,ZHUYong.DesignofRapidIOSwitchBoardBaseonTSI568[J].MicroComputerInformation,2009,25(6):104-106.(inChinese)',)
提供基于PowerPC的RapidIO高速串行通信设计与实现会员下载,编号:1700877855,格式为 docx,文件大小为6页,请使用软件:wps,office word 进行编辑,PPT模板中文字,图片,动画效果均可修改,PPT模板下载后图片无水印,更多精品PPT素材下载尽在某某PPT网。所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系963098962@qq.com进行删除处理。