ARM技术william hill官网
登录
直播中
创龙科技
10年用户
285经验值
擅长:嵌入式技术
私信
关注
[经验]
基于AM57x平台的PCIe通信案例(二)
AM5728
嵌入式
本次PCIe
通信
案例测试基于AM5728平台,篇幅较长,共分为三部分,分别阐述:
AM57x与Ar
ti
x-7
FPGA
、AM57x与Kintex-7 FPGA、AM57x与TMS320C66x DSP的PCIe通信测试,供大家参考学习。
2 AM57x与Kintex-7FPGA的PCIe通信
2.1 实验准备
介绍说明
PCI-Express是一种高速串行计算机扩展总线标准,由英特尔在2001年提出,属于高速串行点对点双通道高带宽传输。本实验主要介绍AM57x
开发板
与Kintex-7FPGA之间的PCIe通信测试,本次测试使用AM57x(广州创龙TL5728-EasyEVM)开发板作为RC—Root Complex,TL-K7FMC采集卡作为EP—Endpoint。
TL5728-EasyEVM是一款广州创龙基于TIAM5728(浮点双DSPC66x +双ARMCortex-A15)SOM-TL5728核心板设计的开发板,它为用户提供了SOM-TL5728核心板的测试平台,用于快速评估SOM-TL5728核心板的整体性能。底板采用沉金无铅工艺的4层板设计,为客户提供丰富的AM5728入门教程,协助客户进行底板的开发,提供长期、全面的技术支持,帮助客户以最快的速度进行产品的二次开发,实现产品的快速上市。除此之外,不仅提供丰富的Demo程序,还提供DSP+ARM多核通信开发教程,全面的技术支持,协助用户进行底板设计和调试以及DSP+ARM软件开发。
基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;
强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;
双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;
外设接口丰富,集成双千兆网、PCIe、GPMC、USB 2.0、UART、SPI、QSPI、SATA 2.0、I2C、DCAN等工业控制总线和接口,支持极速接口USB 3.0;
应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。
TL-K7FMC采集卡是一款由广州创龙基于Xilinx Kintex-7系列FPGA自主研发的FMC数据采集卡,采用沉金无铅工艺的8层板设计,可配套广州创龙AM57x、TMS320C6655、TMS320C6657、TMS320C6678开发板使用。
硬件连接
将开发板PCIe接口连接到TL-PCIE-TC转接板的“PCIE HOST”插槽,将TL-K7FMC采集卡连接到转接板的“PCIE SLAVE”插槽。
测试时将开发板、TL-K7FMC采集卡和TL-PCIE-TC转接板通过螺丝和PCIe固定架固定,避免因连接松动造成测试失败的情况。以TL5728-EasyEVM开发板为例,开发板、采集卡、PCIe转接板硬件连接如下图所示:
2.2 案例编译
编译PCIe驱动
编译PCIe驱动前,需要根据《Linux内核编译方法》文档编译内核,避免内核版本号和PCIe驱动版本号不对应,导致PCIe驱动无法加载的情况。
将光盘资料“DemoPCIeKintex-7_PCIe”整个文件夹复制到Ubuntu上的AM57xx工作目录,进入Kintex-7_PCIe文件夹下的“srcdriver”目录,执行以下命令编译生成驱动。
HOST# make KDIR=/home/tronlong/AM57xx/kernel/Linux-4.4.19/ CROSS_COMPILE=arm-linux-gnueabihf- //“KDIR=”路径为AM57x内核源码实际所在路径
编译完成后,会在当前路径路径下生成pcieLoader.ko驱动文件,将该驱动文件复制到开发板文件系统目录下。
编译测试文件
进入Kintex-7_PCIe文件夹下的“srcpcie-test”目录,执行以下命令编译测试文件。
HOST# arm-linux-gnueabihf-gcc pcie-test.c -o pcie-test
编译完成后,会在当前目录下生成pcie-test可执行文件,将该可执行文件复制到开发板文件系统目录下。
为了方便测试,我司提供经过验证的pcieLoader.ko和pcie-test文件位于光盘资料“DemoPCIeKintex-7_PCIebin”目录下,将其拷贝到开发板文件系统目录下测试即可。
2.3 PCIe设备连接测试
参照TL-K7FMC采集卡光盘资料《TL-K7FMC开发例程使用手册》文档操作步骤,将TL-K7FMC采集卡光盘资料“DemoFPGA_PCIE_DSPFPGAForDownloadPCEI_DSP.bin”文件烧写到TL-K7FMC采集卡的SPI FLASH。烧写成功后,将TL-K7FMC采集卡拨码开关拨为MASTER SPI模式,ON为1,相反为0。
参照“硬件连接”步骤连接开发板,使用Micro USB线连接开发板的调试串口到PC端。分别使用独立
电源
给采集卡和开发板供电,并将AM57x开发板断电,电源开关拨至OFF档。这样是为了让TL-K7FMC采集卡FPGA端程序先启动,避免出现FPGA端的PCIe驱动无法被AM57x识别的情况。
将采集卡上电,等待FPGA端的程序启动,此时采集卡PROG DONE红色指示灯和一盏绿色的用户指示灯会同时点亮,再给AM57x开发板上电,进入开发板文件系统后进行如下操作测试。
开发板文件系统下执行如下指令,查看PCIe设备类型:
Target# lspci -v
执行如下指令查看PCIe的连接方式,由下图可见连接方式为“x1”,速率为“5GT/s”:
Target# lspci -vv
执行如下指令查看TL-K7FMC采集卡的PCI vendor和device codes:
Target# lspci -n
104c和8888分别为ARM端的PCI vendor和device codes。
10ee和7022分别为FPGA端的PCI vendor和device codes。
2.4 PCIe通信测试
在文件系统pcieLoader.ko驱动所在目录,执行如下指令安装驱动,完成地址映射:
Target# insmod pcieLoader.ko
在pcie-test文件所在路径执行如下指令,往BAR0写入0x07000000。指令成功执行后在TL-K7FMC采集卡看到实验现象:3盏用户指示LED同时被点亮。
Target# ./pcie-test -a 20200000 -v 07000000
执行如下指令,往BAR0写入0x00000000,可以在TL-K7FMC采集卡看到实验现象:3盏用户指示LED同时熄灭。
Target# ./pcie-test -a 20200000 -v 00000000
执行如下指令,往BAR0写入0x01000000,TL-K7FMC采集卡实验现象:其中一盏LED点亮,其余两盏LED熄灭。
Target# ./pcie-test -a 20200000 -v 01000000
执行如下指令,往BAR0写入0x02000000,TL-K7FMC采集卡实验现象:其中一盏LED点亮,其余两盏LED熄灭。
Target# ./pcie-test -a 20200000 -v 02000000
执行如下指令,往BAR0写入0x03000000,TL-K7FMC采集卡实验现象:其中两盏LED点亮,其余一盏LED熄灭。
Target# ./pcie-test -a 20200000 -v 03000000
ARM端的数据格式是小端模式,FPGA端的数据格式是大端模式。其中,关于大端小端的模式解释如下:
大端模式:指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。
小端模式:指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。
所以命令“./pcie-test -a 20200000 -v 01000000”相当于写入0x00000001到FPGA端。
回帖
(2)
lee_st
2018-7-6 13:46:45
看着板子就很贵啊
看着板子就很贵啊
举报
douzi707
2018-7-6 20:55:24
谢谢提供。要仔细看看
谢谢提供。要仔细看看
举报
更多回帖
rotate(-90deg);
回复
相关帖子
AM5728
嵌入式
基于
AM57x
平台
的
PCIe
通信
案例(三)
5699
基于
AM57x
平台
的
PCIe
通信
案例(一)
3230
基于
AM57x
平台
调试串口修改说明
2776
适合智能电网应用的
AM57x
处理器
1494
TI
AM57X
FPGA MicroBlaze裸机案例开发
10
AM57x
、DRA7
x
和TDA2
x
EMIF工具
0
AM57x
处理器实施多种内核
2348
AM57x
处理器介绍
234
采用TI
AM57x
处理器的电源管理集成威廉希尔官方网站 参考
平台
2555
TI Sitara
AM57x
DSP+ARM 核心板规格书
5
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分