- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TI C66X多核DSP的PCIe接口程序设计
摘 要: TI的C66X多核DSP拥有丰富的接口资源,单片集成了高速串行接口AIF2、SGMIL、PCIe和SRIO等,能够非常方便地进行高速数据传输和系统扩展,其中PCIe接口应用最广,它广泛地应用在信号处理、通信、医疗、自动化等领域。本文阐述了PCIe接口的Inbound和Outbound地址映射寄存器配置方法、PCIe的中断安装过程和EDMA的传输配置与实现过程。用该方法可快速完成多核DSP的PCIe接口配置与编程,方便PCIe接口的推广和应用。
关键词: 多核DSP; PCIe; EDMA; Inbound; Outbound
中?D分类号:TP315 文献标志码:A 文章编号:1006-8228(2017)02-16-04
0 引言
TI的C66X多核DSP拥有丰富的接口资源,单片集成了高速串行接口AIF2、SGMIL、PCIe和SRIO等,能够非常方便地进行高速数据传输和系统扩展,其中PCIe接口应用最广,它广泛地应用在信号处理、通信、医疗、自动化等领域。
本文主要研究多核DSP的PCIe接口程序设计,首先概述PCIe模块,其次阐述了PCIe接口的Inbound和Outbound地址映射寄存器配置方法、PCIe的中断安装过程和EDMA的传输配置与实现过程,最后对本文作出总结。
1 PCIe模块概述
TI C66系列DSP集成了二个通道PCIe模块。该模块主要具备以下特征:支持两种工作模式:RC和EP;支持Genl(2.5Gbps)和Gen2(5.0Gbps)两种链路速率;用户可以选择使能一个或两个通道,当使用双通道时,需配置为相同的链路速率;支持的最大输出净荷大小为128字节,最大输入净荷大小为256字节;支持动态的带宽切换等[1]。
PCIe设备需要使用PCIe地址经PCIe数据链发送数据包,地址翻译单元ATU(Address Translation Unit)将设备内部地址翻译为PCIe地址,反之亦然。PCIe地址可以是32-bit或64-bit。
2 PCIe地址翻译
对于输出处理,Outbound ATU把设备内部地址翻译成PCIe地址,然后含PCIe地址的数据包经PCIe链路被传输到其他设备。
对于输入处理,PCIe模块的基址寄存器BAR (Base Address Register)只接收特定PCIe地址的数据包,这些数据包进入Inbound ATU,经地址翻译后被送至相应的内存空间。C66X DSP的PCIe地址翻译原理图如图1所示[4]。
⑴ 输出地址翻译
TI C66设备中有特定的PCIe数据空间00x6FFFFFFF,专门用于收发PCIe数据。对于输出传输,通过Outbound ATU的配置使该空间与另一侧设备地址空间建立对应关系,再使用EDMA把设备内存数据搬移到PCIe数据空间,这样数据就可以通过PCIe链发送出去。
输出地址翻译主要通过以下寄存器的配置来实现。
OB_SIZE:设定32个等长的翻译区的大小,它们可以为1MB、2MB、4MB、8MB。
OB_OFFSET_INDEXn:代表PCIe地址的bit[31:20],具体哪些位有效需根据OB_SIZE来确定,bit[0]使能输出region。
OB_OFFSETn_HI:代表64位PCIe地址的bit[63:32],使用32-bit地址模式时该寄存器为0。
由于存在32个翻译区域,所以需要根据内部地址的5bits来决定使用哪个区域进行映射。PCIe输出地址翻译示意图如图2所示[4]。
⑵ 输入地址翻译
Inbound ATU用于将外部设备输入的访问地址重定位到DSP片内地址。C66设备的PCIe模块有两个内部地址空间:Address Space 0和Space 1。前者用于本地应用寄存器和配置空间,占用连续的16KB,其中4KB用于配置空间;后者用于数据传输,容量大,可以不连续,为了将PCIe地址映射到该空间,需使用4个区域(region0-3)来协助完成。
PCIe输入地址翻译通过配置寄存器IB_BARn、IB_STARTn_HI、IB_STARTn_LO和IB_OFFSETn来实现,Inbound ATU将PCIe地址映射到内部地址的过程如下[5]。
① 分离偏移值:
Offset=PCIe address-(IB_STARTn_HI:IB_STARTn_LO)
② 计算内部地址:
Internal address=IB_OFFSETn+offset
PCIe输入地址翻译示意图如图3所示。
3 PC
文档评论(0)