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

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

3天内不再提示

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

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

01.测试例程pcie2screen

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

图1.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路兼容树莓派扩展模块接口。

图3.jpg

关注米尔,领先的嵌入式处理器模组厂商


审核编辑:汤梓红

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

    关注

    1602

    文章

    21320

    浏览量

    593201
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8651

    浏览量

    361816
  • 开发板
    +关注

    关注

    25

    文章

    4429

    浏览量

    93999
收藏 人收藏

    评论

    相关推荐

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

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

    分立式ARM+FPGA与ZYNQ SoC相比哪个好

    目录1 ARM+FPGA架构有什么优势2 分立式ARM+FPGA有哪些好处2.1 接口资源更多2.2 HMI体验更好2.3 ARM主频更高2
    发表于 12-13 07:39

    米尔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架构试用体验】1.从上电到连接和刷机过程

    米尔MYD-JX8MMA7开发板ARM+FPGA架构试用体验】1.从上电到连接和刷机过程大信(QQ:8125036)感谢电子发烧友网与米尔
    发表于 04-10 00:29

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

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

    米尔MYD-JX8MMA7开发板-ARM+FPGA架构试用体验】3.使用GStream开发高清视频实时编码与推流

    本帖最后由 ALSET 于 2023-4-10 10:40 编辑 【米尔MYD-JX8MMA7开发板-ARM+FPGA架构试用体验】3.使用GStream
    发表于 04-10 01:58

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

    Programmable SoC平台的一款ARM+FPGA的嵌入式开发板。其采用的28nm工艺制程的双/单核Cortex-A9+FPGA处理器,性能高、功耗低,并通过AXI 吉比特级片上总线将
    的头像 发表于 11-12 14:09 2726次阅读
    <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 773次阅读
    <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

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

    各位工程师小伙伴们,大家好,ARM+FPGA作为一种主流的嵌入式系统的处理架构。相对于单纯的的ARM开发或单纯的FPGA
    的头像 发表于 01-13 15:24 583次阅读
    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 520次阅读
    <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 785次阅读
    <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 545次阅读
    测评<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-08 14:38 436次阅读
    <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>