0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

米尔ARM+FPGA架构开发板PCIE2SCREEN示例分析与测试

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-07-08 14:38 次阅读

本次测试内容为基于ARM+FPGA架构的米尔MYD-JX8MMA7开发板其ARM端的测试例程pcie2screen并介绍一下FPGA端程序的修改。

01.测试例程pcie2screen
例程pcie2screen是配合MYD-JX8MMA7开发板所带的MYIR_PCIE_5T_CMOS 工程的测试例,它的作用是显示FPGA所连接的摄像头所采集的视频。运行该程序后屏幕会显示一个标题为demo的窗口。

1677209322118083.png

使用鼠标点击 ready按钮,demo 窗口会显示连续的视频,说明摄像头、DDR、PCIE接口各部分正常。如果没有接摄像头,该程序会显示杂乱无章的图像。

该测试例的源码没有包括在SDK中,可以向米尔公司的技术人员索取。该实例程序是用Qt开发的,使用了OpenGL技术。程序包括以下几个主要的类:

·MainWindow:QMainWindow子类,是显示窗口的。

·uOpenglYuv:QOpenGLWidget子类,用于显示采集到的图像。该类的initializeGL函数用于初始化OpenGL。paintGL函数是用于绘制图像的,其中最核心的语句是:

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, vW, vH, 0, GL_RGBA, GL_UNSIGNED_BYTE, pRGB);

其中的pRGB保存从FPGA读取的数据。从这句我们可以看出该程序所要求的图像的格式。

·xdma_getImg:主线程类

·xdma_programe:对RIFFA接口进行了封装,其中的read_pack用于读取FPGA数据,被主线程循环调用。其函数定义如下:

int xdma_programe::read_pack(char *pData, int len)
{
//int buffer[1920 * 1080];
//int buffer[1024 * 768];
int buffer[1280 * 720];
int i;

if(dev_fd != NULL)
{
fpga_send(dev_fd, 0, buffer, len / 4, 0, 1, 25000);
fpga_recv(dev_fd, 0, buffer, len / 4, 25000);
memcpy(pData, (char *)buffer, len);

return len;
}
else
{
return 0;
}
}

从函数中可以看出,在每次读数据前,该函数先向FPGA写一次数据(数据无意义,和FPGA的状态机有关),每次读入一整帧的数据。

02.FPGA端程序的修改
FPGA端的逻辑控制在chnl_tester.v中,它定义了一个状态机,用于对数据收发进行控制。状态机定义如下:

always @(posedge CLK or posedge RST) begin
if (RST) begin
rLen <= #1 0;
rCount <= #1 0;
rState <= #1 0;
rData <= #1 0;
vout_vs_r <= #1 0;
end
else begin
case (rState)


3'd0: begin // Wait for start of RX, save length
if (CHNL_RX) begin
rLen <= #1 CHNL_RX_LEN;
rCount <= #1 0;
rState <= #1 3'd1;
end
end


3'd1: begin // Wait for last data in RX, save value
if (CHNL_RX_DATA_VALID) begin
rData <= #1 CHNL_RX_DATA;
rCount <= #1 rCount + (C_PCI_DATA_WIDTH/32);
end
if (rCount >= rLen)begin
rState <= #1 3'd2;
end
end

3'd2: begin // Prepare for TX
if (read_valid) begin
rCount <= #1 0;
rState <= #1 3'd3;
end
end

3'd3: begin // Start TX with save length and data value
if (CHNL_TX_DATA_REN) begin
//rData <= #1 data_in;
rCount <= #1 rCount + (C_PCI_DATA_WIDTH/32);
if (rCount >= rLen)
rState <= #1 3'd4;               
end
end
3'd4: begin
if (vout_vs_r)
rState <= #1 3'd5;
else begin
vout_vs_r <= #1 1;
rState <= #1 3'd4;
rCount <= #1 0;
end
end
3'd5: begin
if (vs_flag) begin
rState <= #1 3'd0;
vout_vs_r <= #1 0;
end
else
rState <= #1 3'd5;
end
endcase
end
end

我们手头没有摄像头进行测试,所以简单修改该程序,使程序发送蓝色渐变色带信号
核心修改如下:

……
reg [31:0] rColor = 0;
……
assign CHNL_TX_DATA = (read_en)? {rColor, rColor}:64'd0;
……
3'd3: begin // Start TX with save length and data value
if (CHNL_TX_DATA_REN) begin
//rData <= #1 data_in;
// if (rCount % 5 == 4)
rColor <= #1 rColor + 1;
if(rColor >= 255)
rColor <= #1 0;
rCount <= #1 rCount + (C_PCI_DATA_WIDTH/32);
if (rCount >= rLen)
rState <= #1 3'd4;               
end
end
……

03.测试结果
我们没有修改ARM端的测试程序,仍然使用厂家提供的pcie2screen,只是重新烧写FPGA程序。程序的运行效果参见如下:

米尔MYC-JX8MMA7核心板及开发板。米尔MYC-JX8MMA7核心板及开发板,采用ARM+FPGA的处理架构,采用NXP i.MX8M Mini及XilinxArtix-7处理器,四核Cortex-A53、Cortex-M4、Artix-7CPU,1.8GHz主频,基于ARM+FPGA处理架构,具备高性能、低成本、低功耗等特点,两者各司其职,各自发挥原本架构的独特优势。搭载的Artix-7 CPU对标Zynq 7010的FPGA资源,能够满足高速数据采集的需求,并且采用PCIE高速通信,支持200~300MB/S的通信能力。能够提供出色的视频和音频体验,将媒体的特定功能与针对低功耗优化的高性能处理相结合,具备1080p 60Hz的H.265和VP9解码器,满足高清显示的要求。

为了方便开发者研究评估,米尔提供配套MYD-JX8MMA7开发板,采用12V/2A直流供电,搭载了1路千兆以太网接口、2路SFP光模块接口、1路USB2.0协议M.2 B型插座的5G模块接口、1路SDIO/串口协议的WIFI/蓝牙接口、1路HDMI显示接口、1路LVDS显示接口、1路MIPI CSI接口、1路DVP摄像头接口、1路音频输入输出接口、2路USB HOST Type A、1路USB Type-C、2路Micro SD、1路FMC扩展接口、1路兼容树莓派扩展模块接口。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1624

    文章

    21597

    浏览量

    601004
  • 米尔
    +关注

    关注

    0

    文章

    47

    浏览量

    7900
收藏 人收藏

    评论

    相关推荐

    工程师深谈ARM+FPGA的设计架构

    最近学习了ARM+FPGA的设计架构ARMFPGA结构的通信大致可以分为两种。
    发表于 05-25 10:35 2.2w次阅读

    米尔MYD-JX8MMA7开发板-ARM+FPGA架构试用体验】ARM开发环境搭建

    CPU,1.8GHz主频。MYC-JX8MMA7核心开发板是基于ARM+FPGA处理架构,以ARM处理性能为主,
    发表于 12-24 16:45

    米尔MYD-JX8MMA7开发板-ARM+FPGA架构试用体验】PCIE传输框架RIFF分析

    、Artix-7 CPU,1.8GHz主频。MYC-JX8MMA7核心开发板是基于ARM+FPGA处理架构,以ARM处理性能为主,
    发表于 01-30 14:14

    米尔MYD-JX8MMA7开发板-ARM+FPGA架构试用体验】PCIE2SCREEN示例分析测试

    本帖最后由 zealsoft 于 2023-2-14 10:26 编辑 PCIE2SCREEN示例分析测试感谢“电子发烧友网”和
    发表于 02-13 17:57

    米尔MYD-JX8MMA7开发板-ARM+FPGA架构试用体验】2.搭建C/C++与QT开发环境

    米尔MYD-JX8MMA7开发板-ARM+FPGA架构试用体验】2.搭建C/C++与QT开发
    发表于 04-10 01:11

    米尔科技MYD-Y7Z010/20开发板介绍

    Programmable SoC平台的一款ARM+FPGA的嵌入式开发板。其采用的28nm工艺制程的双/单核Cortex-A9+FPGA处理器,性能高、功耗低,并通过AXI 吉比特级片上总线将
    的头像 发表于 11-12 14:09 3239次阅读
    <b class='flag-5'>米尔</b>科技MYD-Y7Z010/20<b class='flag-5'>开发板</b>介绍

    ARM+FPGA架构开发板PCIE2SCREEN示例分析测试-米尔MYD-JX8MMA7

    本次测试内容为米尔MYD-JX8MMA7开发板ARM端的测试例程pcie2screen并介绍一
    的头像 发表于 02-24 16:56 1002次阅读
    <b class='flag-5'>ARM+FPGA</b><b class='flag-5'>架构</b><b class='flag-5'>开发板</b><b class='flag-5'>PCIE2SCREEN</b><b class='flag-5'>示例</b><b class='flag-5'>分析</b>与<b class='flag-5'>测试</b>-<b class='flag-5'>米尔</b>MYD-JX8MMA7

    米尔瑞萨RZ/G2L开发板 TF卡读写速度测试

    米尔瑞萨RZ/G2L开发板TF卡读写测试
    的头像 发表于 05-22 09:07 1331次阅读
    <b class='flag-5'>米尔</b>瑞萨RZ/G<b class='flag-5'>2</b>L<b class='flag-5'>开发板</b> TF卡读写速度<b class='flag-5'>测试</b>

    米尔MYD-YG2开发板触摸屏测试

    米尔MYD-YG2开发板测试米尔触摸屏
    的头像 发表于 05-24 13:12 29.4w次阅读

    ARM+FPGA架构匠心之作,米尔MYC-JX8MMA7新品发布!

    对高清显示、数据采集双重要求的场景下,ARM+FPGA架构的需求也应运而生,它不但具备了ARM的运算能力,还兼备了FPGA的对数据的高速采集能力。因此,
    的头像 发表于 11-08 09:44 793次阅读
    <b class='flag-5'>ARM+FPGA</b><b class='flag-5'>架构</b>匠心之作,<b class='flag-5'>米尔</b>MYC-JX8MMA7新品发布!

    Demo演示:ARM+FPGA主流嵌入式架构板卡-HDMI显示摄像画面

    的MYD-JX8MMXA7开发板基于ARM+FPGA架构,集成i.MX8MMini和ARTIX7处理器,在实现高速采集和高清显示二合一上具有明显的成本优势。01.接口及模块
    的头像 发表于 01-13 15:24 873次阅读
    Demo演示:<b class='flag-5'>ARM+FPGA</b>主流嵌入式<b class='flag-5'>架构</b>板卡-HDMI显示摄像画面

    ARM+FPGA架构开发板PCIE2SCREEN示例分析测试-米尔MYD-JX8MMA7

    本篇测评由电子发烧友的优秀测评者“zealsoft”提供。本次测试内容为米尔MYD-JX8MMA7开发板ARM端的测试例程
    的头像 发表于 03-02 09:44 738次阅读
    <b class='flag-5'>ARM+FPGA</b><b class='flag-5'>架构</b><b class='flag-5'>开发板</b><b class='flag-5'>PCIE2SCREEN</b><b class='flag-5'>示例</b><b class='flag-5'>分析</b>与<b class='flag-5'>测试</b>-<b class='flag-5'>米尔</b>MYD-JX8MMA7

    ARM+FPGA开发板上电体验——米尔基于NXP i.MX 8M Mini+Artix-7处理器的开发板

    本篇测评由电子发烧友的优秀测评者“qinyunti”提供。点击观看视频米尔基于NXPi.MX8MMini和Artix-7处理器推出的MYD-JX8MMXA7开发板,采用了ARM+FPGA异核
    的头像 发表于 03-28 16:48 1109次阅读
    <b class='flag-5'>ARM+FPGA</b><b class='flag-5'>开发板</b>上电体验——<b class='flag-5'>米尔</b>基于NXP i.MX 8M Mini+Artix-7处理器的<b class='flag-5'>开发板</b>

    测评米尔ARM+FPGA异构开发板

    米尔基于ARM+FPGA异构开发板,根据下图文件内容可以知道myir-image-full系统支持的功能,其支持OpenCV,也就不用在格外安装相关驱动包等,省了很多事情。
    的头像 发表于 07-10 09:59 793次阅读
    测评<b class='flag-5'>米尔</b><b class='flag-5'>ARM+FPGA</b>异构<b class='flag-5'>开发板</b>

    米尔ARM+FPGA架构开发板PCIE2SCREEN示例分析测试

    本次测试内容为基于ARM+FPGA架构米尔MYD-JX8MMA7开发板ARM端的
    的头像 发表于 07-07 14:15 626次阅读
    <b class='flag-5'>米尔</b><b class='flag-5'>ARM+FPGA</b><b class='flag-5'>架构</b><b class='flag-5'>开发板</b><b class='flag-5'>PCIE2SCREEN</b><b class='flag-5'>示例</b><b class='flag-5'>分析</b>与<b class='flag-5'>测试</b>