tag 标签: 异核架构

相关博文
  • 热度 8
    2023-2-24 16:26
    1227 次阅读|
    0 个评论
    嵌入式ARM+FPGA架构开发板PCIE2SCREEN示例分析与测试-米尔MYD-JX8MMA7
    本篇测评由电子发烧友的优秀测评者“zealsoft”提供。 本次测试内容为米尔MYD-JX8MMA7开发板其ARM端的测试例程pcie2screen并介绍一下FPGA端程序的修改。 ​ 01. 测试例程pcie2screen 例程pcie2screen是配合MYD-JX8MMA7开发板所带的MYIR_PCIE_5T_CMOS 工程的测试例,它的作用是显示FPGA所连接的摄像头所采集的视频。运行该程序后屏幕会显示一个标题为demo的窗口。 使用鼠标点击 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 ; //int buffer ; int buffer ; 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 = 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); = 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 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; = 255) rColor <= #1 0; rCount <= #1 rCount + (C_PCI_DATA_WIDTH/32); = rLen) rState <= #1 3'd4; end end ……
  • 2022-12-2 15:50
    0 个评论
    随着通信与网络技术、互联网的发展,工业管理数据化、网络化、智能化已成大势所趋,利用工业物联网完成工业控制是智慧工厂中必不可少的一部分。传统的控制与数据采集系统,主机一旦需要同时与多个数据采集设备保持高速通信,并要承担更复杂的数据处理、保持高清的多媒体显示等功能,传统的工业数据采集硬件系统就相形见绌了。而基于ARM和FPGA架构的嵌入式系统自带丰富外设接口,具备高清显示、高速传输等功能,还可以并行完成对于工业数据高速采集任务。是工业4.0硬件升级必备选择之一。 图片来自网络 工业数据采集控制系统主要分两大结构。首先是数据采集系统,以FPGA处理器为主,主要用于工业协议数据的高速采集和获取;其次是嵌入式控制平台,以ARM处理器为主,作为主控中心进行各模块的协调管理和资源调度,同时接收FPGA端数据、结果可视化以及人机交互。利用通信模块将获取的数据传输到工业MES+ERP系统上,既降低人工数据录入的风险,又减少人力资源的浪费。 工业数据采集控制系统-框 架图 工业数据采集控制系统,主要可以分为高速数据采集系统和嵌入式人机交互系统,两大系统是构成工业自动化数据采集系统重要组成部分,是工业4.0升级必不可少的工业系统之一。 工业数据采集控制系统-流程图 高速数据采集系统: FPGA芯片+工业信号采集系统,共同组成的高速数据采集系统是快速获取工业信息数据的重要途径。通过外部各种数据采集模块,例如摄像头,位移传感器,高精度ADC采样模块等,FPGA芯片把各模块的数据信号进行并行采样处理,存储。从而实现高速工业数据采集功能。 嵌入式人机交互系统: 人机交互系统作为整个系统的核心,一方面通过SPI/PCIE发送采集指令信号给到信号控制系统FPGA进行数据采集,数据采集处理后通过SPI/PCIE上传到ARM芯片进行数据处理和分析。另一方面可以通过USB连接鼠标键盘,人工输入指令,进行脚本自动抓取数据,并通过触摸显示系统进行数据结果展示;还可以通过网络上传工业MES+ERP系统,对工业数据进行云存储。 基于MYC-JX8MMA7的工业数据采集控制系统图 基于米尔刚发布新品MYC-JX8MMA7核心板的工业数据采集控制系统解决方案,可以一板满足硬件系统的两大处理器需求。FPGA+ARM的异核架构核心板,可以极大降低客户硬件成本和硬件设计难度,并提供丰富的开发资源,可以加速产品开发进程。 满足高速数据采集需求 MYC-JX8MMA7核心板搭载的Xilinx Artix-7对标Zynq 7010的FPGA资源,满足【数据采集系统】的高速数据采集的需求。 优异的人机交互和实时操控功能 MYC-JX8MMA7核心板搭载的NXP i.MX8M Mini芯片具备4颗Cortex-A53内核和Cortex-M4内核能够提供出色的数据处理能力和人机交互界面,并且可以实时操控电机驱动模块,满足【实时操控系统】的数据处理、任务调度和人机交互要求。 高速通信能力 MYC-JX8MMA7核心板MPU与FPGA之间采用PCIE高速通信,高达200~300MB/S的通信能力,满足数据的快速传输需求。 为了方便开发者进行前期功能评估和软件调试,米尔同时开发了MYD-JX8MMA7开发板,助力产品开发。 ARM+FPGA架构、ARM+FPGA架构处理器、ARM+FPGA架构核心板、ARM+FPGA开发板、异核架构、异核核心板、异核开发板、MPU+FPGA、i.MX8M Mini+ARTIX-7、artix-7、artix-7核心板、artix-7开发板、i.MX8M Mini核心板、i.MX8M Mini开发板