2023年12月18日发(作者:)

第29卷Vol.29第7期No.7电子设计工程ElectronicDesignEngineering2021年4月Apr.2021基于VxWorks系统下P2020的PCIE转PCI接口设计王琪,邓佳伟,张梅娟(中国电子科技集团公司第五十八研究所,江苏无锡214062)摘要:基于VxWorks嵌入式实时操作系统和PEX8112桥芯片,设计了一种应用于P2020处理器的PCIE转PCI的接口方案,有效解决了航天航空系统中P2020处理器的PCIE控制器与PCI设备的适配问题。方案结合P2020处理器和PEX8112桥片的特点,详细阐述了P2020处理器的PCIE转PCI的接口方案硬件框架设计和基于VxWorks嵌入式实时操作系统中VxBus框架的软件开发设计。对方案进行验证测试,针对不同的以太网帧长度进行速率测试,当以太网帧长度为1518字节,可达到1Gb/s理论数值。测试结果表明,PCIE转PCI接口的数据传输具备高可靠性和高性能的要求。关键词:PCIE转PCI;P2020;PEX8112;VxWorks中图分类号:TP336文献标识码:A文章编号:1674-6236(2021)07-0190-04DOI:10.14022/1674-6236.2021.07.041DesignofPCIEtoPCIintrfacebaseonP2020underVxWorkssystemWANGQi,DENGJiawei,ZHANGMeijuan(TheNo.58ResearchInstituteofChinaElectronicsTechnologyGroupCorporation,Wuxi214062,China)Abstract:FortheP2020processordoesnotintegratePCIcontrollers,designingaPCIEtoPCIinterfacesolutionbasedonVxworksembeddedreal⁃blemofadaptingthePCIEcontrolleroftheP2020processorandthePCIdeviceintheaerospacesystemisPEX8112bridge,andelaboratesthedesignofthesystemecombinesthefeaturesoftheP2020processorandthedevelopmentdesignbasedontheVxBusframeworkoftheVxWorksembeddedreal⁃emeisverifiedandtested,andtheratetestisperformedfordifferentEthernetframePCIEtoPCIinterfaceds:PCIEtoPCI;P2020;PEX8112;VxWorkslengthis1518bytes,thetheoreticalvalueof1Gb/erimentalprovedthatthe随着PCIE总线技术的广泛应用,采用高速差分串行的方式进行数据传输,具有高带宽、高可靠性、高拓展性等优点[1],其很好地弥补了PCI、PCI-X总线的不足。但许多应用场景依然需要适配原有的PCI设备,尤其在航天航空系统中设备更新速度慢,兼容性要求高,该现象更为突出[2]。为了兼容PCIE总线与PCI设备,推动了一系列PCIE转PCI桥芯片的发展[3-5]。收稿日期:2020-03-27稿件编号:202003206优秀,其具备良好的处理性能和丰富的通信接口,在航天航空系统中广泛应用。PowerPC架构处理器在嵌入式系统上表现非常该方案采用FreeScale公司的P2020双核嵌入式处理器,该处理器内置两个最高频率可达1.2GHz的e500v2内核,支持64KB的L1Cache,支持512KB的1000/100/10Mb/s以太网控制器,三路高速PCIE控L2Cache,支持32/64-bitDDR2/DDR3,具有三路制器,两路串行RapidIO控制器。PCIE-PCI转换桥-190-作者简介:王琪(1992—),男,江苏盐城人,助理工程师。研究方向:嵌入式系统设计开发。

王琪,等基于VxWorks系统下P2020的PCIE转PCI接口设计设备驱动程序框架。在VxBus驱动程序框架的支持下,驱动能在总线上发现设备,并执行初始化操作,使驱动与硬件设备之间正常通讯[13-15]。设备的驱动程序的安装、配置和删除都可以通过可视化界面操作。芯片采用PLX公司的PEX8112芯片。1硬件设计方案1.1PEX8112芯片是PLX公司推出的一款PCIE-PEX8112芯片介绍2.2TO-PCI转换桥芯片,通过PCI总线与PCIE×1总线的转换实现了两者之间的透明传输[6-9]。该芯片支持成。设备表示硬件设备,驱动指编程代码,实例则是设备和驱动的一种关联,一个驱动可以匹配一个或多VxBus驱动开发由设备、驱动和实例3个概念组设备驱动设计8KB共享内存,支持MSI中断,支持INTx虚拟中断,支持前向桥模式或后向桥模式,通过配置模块可以分别实现PCIE-PCI转换或PCI-PCIE转换。该方案设计中采用PEX8112桥片前向桥模式,将PCIE信号转换成PCI信号,进行数据传输[10]。PEX8112桥片内部结构如图1所示。图1PEX8112桥片内部结构图1.2硬件系统框架介绍PEX8112P2020处理器使用一路高速PCIE接口连接至桥模式,完成转换芯片,PCIE-PCI并将转换。通过PEX8112芯片设置成前向PEX8112转换芯片的PCI接口连接Intel82546网卡,验证PCIE转PCI接口的数据通路。硬件系统框架中P2020处理器为主控端,外部从设备Intel82546网卡为从设备。具体的硬件系统框架如图2所示。图2硬件系统框架图2软件驱动开发2.1VxWorks操作系统概述持续发展能力以及友好的用户开发环境,操作系统具有卓越的实时性、在嵌入式良好的实时操作系统领域占据重要地位[11],广泛应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域[12]。该方案采用VxWorks6.9操作系统,支持VxBus个设备。设备驱动实例关系如图3所示。图3设备驱动实例关系在VxBus框架下,系统中各个功能模块通过总线进行信息传递,每个设备都可以选择合适的总线和主机相连,总线驱动通过不同的方法实现设备与驱动的匹配。具体配置方式如图4所示。图4VxBus设备配置方式基于VxBus框架下PCIE设备驱动开发主要包含设备初始化、设备驱动适配以及设备驱动组件添加。VxBus驱动架构的初始化流程主要在sysLib.c文件中实现,首先通过sysHwinit()函数调用hardWareInterFaceInit()存分配,接着调用hardWareInterFaceBusInit()函数完成VxBus设备硬函数完件内成VxBus设备实例建立和驱动总线注册,然后通过sysHwinit2()Connect()()函数,函数,函调用注册驱动数调用vxbDevInit()driverNameInstConnect函数和vxDev件的PCIE完成vxbPciAutoConfig()设备的初始化过程中会调用VxBus设备驱动的初始化。函数,完成对PCIEm85xxPci.c链路的扫文描和配置[16]。具体的PCIE链路扫描和配置流程如图3所示。首先根据PCIE设备的配置信息,完成PCIE控-191-

《电子设计工程》2021年第7期图5PCIE链路的扫描和配置过程制器的基地址和地址空间的初始化。然后扫描PCIE是bridge链路上的设备,PCIE分配当前设备,bridge并判断该设备类型。如果设备的总线编号,使用Type1报文完成bridge设备的配置,并重新进行PCIE总线编号,链路扫描;并获取如果是EP设备的地址空间,EP设备,分配当前使用EP设备的Type0报文完成EP设备的配置,并更新PCIe链路上最大的总线编号数值和bridge设备的地址空间分配,最终完成PCIE链路的扫描和配置过程。通过上述PCIE链路的扫描和配置过程,完成PCIE置,通控制器、过标准PEX8112的PCIE接转换桥片及口函数就可Intel以访82546问到的配Intel825462.3设备驱动实现网卡的相关信息。基于VxBus框架下PCIE驱动开发需要添加INCLUDE_PCI_BUS”、“DRV_PCIBUS_M85XX”、“INCLUDE_PCI_BUS_AUTOCONFBUS_SHOW”组件[17]。在PCIE”设和“备的INCLUDE_PCI_注册过程中,注册函数会通过hwConfig.c文件中hcfResource[]和成hcfDevice[]PCIE设备的注册。数组获取PCIE设备的配置信息,最终完基于VxWorks6.9操作系统中hcfResource[]数组的PCIE控制器关键配置信息如下:const{structhcfResourcem85xxPci0Resources[]=/*{VXB_REG_BASE,HCF_RES_INT,{(void*)PCIEPCIE控制器基地址*/X1_REGBASE}},-192-/*{"mem32Addr",HCF_RES_ADDR,{(void*)PCIE的内存地址空间的基地址*/PCIEX1_MEM_ADDR}},/*{"mem32Size",HCF_RES_INT,{(void*)PCIE的内存地址大小*/PCIEX1_MEM_SIZE}},/*{"io32Addr",HCF_RES_ADDR,PCIE的32位I/O地址空间的基地址{(void*)PCIEX1_*/MEMIO_ADRS/*}},PCIEX1_IO_SIZE{"io32Size",HCF_RES_INT,{(void*)PCIE的32位I/O地址空间的大小*//*}},PCIEX1_IO_ADRS{"io16Addr",HCF_RES_ADDR,{(void*)PCIE的16位I/O地址空间的基地址*//*PCIE}},PCIEX1_IO_SIZE{"io16Size",HCF_RES_INT,{(void*)16位I/O地址空间的大小*//*PCIE的地址预取功能}},{"fbbEnable",HCF_RES_INT,{(void*)TRUE*//*PCIE的cache大小*/}},(_CACHE_ALIGN_SIZE{"cacheSize",HCF_RES_INT,{(void*)……/4)}},/*{"autoConfig",HCF_RES_INT,{(voidPCIE的自动配置功能设置*/{"pciExpressHost",HCF_RES_INT,{(void*)*)(TRUE)}},(TRUE)}},/*#ifdefPCIEINCLUDE_INTCTLR_DYNAMIC_LIB{"msiEnable",HCF_RES_INT,的MSI中断功能设置*/TRUE{"dynamicInterrupts",HCF_RES_INT,{(void*){(void*)TRUE}},}},}#endifVxBusm85xxPci0Resources中注册的基本信描息述,了其PCIE中包控括制设器备在(VXB_DEVID_DEVICE)、总线类型(VXB_BUSID号_PCI)在、VxBushcfResource[]版本、设备数组中主要完成了ID和厂商ID信息等。PCIE控制器的基地址、PCIE的内存地址空间、PCIE的I/O地址空间、PCIE的InBound基地址和OutBound窗口属性,以“

王琪,等PCIE控制器的驱动。基于VxWorks系统下P2020的PCIE转PCI接口设计[3]芦俊,张国良,曹菁,等.一种基于PCI总线的数字[4]甄国涌,卫一然,单彦虎,等.基于PCIExpress总线(6):115-117.图形发生器设计[J].电子与封装,2016,16(9):24-27.及PCIE控制器MSI中断使能的配置,从而实现对针对Intel82546网卡驱动,需要在Workbench3.3软件中添加”INCLUDE_GEI825XX_VXB_END”的数据传输卡设计[J].火力与指挥控制,2013,38的配置选项[18-20],完成Intel82546网卡的驱动注册,最终实现Intel82546网卡的数据收发。3测试与验证基于VxWorks操作系统对PCIE转PCI接口进行功能和性能测试,将专业网络分析仪连接Intel82546帧长可选用不同长度网卡的网口进行传输速率测试,(如:64B、512B、测试的以太网1518B等),经过长时测试,Intel82546以太网卡最大传输速率可达到1Gb/s理论数值,验证了基于P2020的PCIE转PCI接口传输满足设计要求。具体测试结果如表1所示。表1不同以太网帧长度速率测试结果以太网帧长度/B传输速率(Mb/s)12864193.09256350.31643.251512880.791024961.461280518991.31997.584结束语该方案主要介绍了基于VxWorks6.9系统下P2020介绍了系统硬件设计方案,处理器PCIE转PCI接口的传输设计与实现,简要概述了VxWorks嵌入式操作系统的特点,详细介绍了基于VxBus框架中设备驱动注册方法和PCIE链路的扫描和配置流程。最终通过Intel82546网卡对PCI接口进行功能和性能的测试,验证了基于P2020与VxWorks系统的PCIE-PCI接口的数据通信的能力。参考文献:[1]王之光DMA控制器的设计,高清运.基于[J].FPGA电子技术应用的PCIe总线接口的,2018,44(1):[2]张涛9-12.的思考与探索,王晶,唐亚刚[J].中国航天.国有航天企业发展商业航天,2019,10(6):34-37.[5]张彪输系统设计,宋红军[J].,刘霖电子测量技术,等.基于PCIE,2015(10):113-117.接口的高速数据传[6]李文磊计与实现.基于[D].PCIE成都总线的高速数据传输系统的设[7]曹欣廷:电子科技大学,2016.像采集系统设计,刘亚斌.基于[J].PCIE电子设计工程总线的红外探测器图,201,21(22):[8]郑桥188-193.列[J].,韩力电子设计工程,邢同鹤,等,2019,27(14):125..基于PCIESwitch的存储阵[9]杨阿锋的驱动程序开发,吴帅,刘凯,[J].等.PCIE中国测试技术接口高速数据传输卡,2008(2):67-[10]陈杨68,115.实现.[D].基于杭州PCIE:浙江大学总线的高速数据采集系统设计与[11]PLX,hnology,ressbridgeLanedataPEX8112-AAbook[EB/OL].[12]陈明义(2008-10)..计及实现,易玲[J]..电子科技基FPGA的,2009,22(7):8112配置模块的设[13]周浩尚电子技术应用,高照玲,2018,44(10):56-59..VxWorks下TRDP协议栈移植[J].[14]王金辉实现[J]..VxWorks嵌入式实时操作系统的原理和[15]向昱丞,周加谊无线电工程程.浅谈VxBus,207,37(1):62-64.电产品开发与创新,2016,29(2):57-58.的设备驱动开发[J].机[16]Windguide6.9River,s[M].ver,Inc,programmer's[17]张伟栋接口设计,刘志敏[J].航空计算技术.基于PowerPC8640,2011,41(3)的PCI-E:119-121.总线[18]Wind[M].2ndRiver,ver,Inc,eloper'sguide6.9[19]金志威件验证方法研究,田毅,芦浩[J].,等现代电子技术.基于模型检测的机载电子硬[20]张朝元,2019(16):移植,邵高平[J].电子科技,汪洋.基于,2018(1):-7000的嵌入式-193-