【有约源码】【新房 源码】【clover源码】gige驱动源码_gip驱动原理介绍

时间:2024-11-30 02:21:08 编辑:仿网贷天眼源码 来源:rviz源码

1.工业相机的驱动p驱丢帧的问题是由什么原因引起的?
2.GigE Vision概述
3.ZYNQ+linux网口调试笔记(3)PL-ETH
4.机器视觉—常见的2D工业相机数据接口介绍

gige驱动源码_gip驱动原理介绍

工业相机的丢帧的问题是由什么原因引起的?

       一般而言,工业相机丢帧与工业相机所采用的源码传输接口是没有关系的,无论是动原USB,还是理介、GigE、驱动p驱或者是源码有约源码CameraLink。设计不良的动原驱动程序或工业相机硬件才是造成丢帧的真正原因: 设计不良的工业相机之所以会发生丢帧的现象,其实就是理介资料通道的堵塞,无法及时处理,驱动p驱所以新的源码图像进来时,前一张可能被迫 丢弃,动原或是理介新的图像被迫丢弃。

       要解决这问题,驱动p驱需要设计者针对驱动程序与工业相机硬件资料传输的源码每个环节进行精密的设计。

       Regem Marr 研祥金码旗下的动原新房 源码R-系列读码器,能够快速、全方位的条码捕捉读取。内置丰富的IO接口,支持复杂现场需求。集成多组可控光源,实现光源分路独立控制,响应你的柔性化生产需求。多核并行处理,提高整体读取速度。即插即用快速安装,一步到位轻松设定。不仅仅是智能读码器,更是业务好帮手,生产统计,clover源码计件统计功能强大超乎想象。

       通过官方网站(www.evocjm.com),可在线获取相关技术文件、工具、驱动及常见问答库,即时享受专业官方服务。您还可以通过在线沟通工具,直接发起对话申请,或提交留言,我们的客服人员将第一时间与您取得联系。

       Regem Marr 研祥金码分支机构遍布全国,各分机构配备多名现场专家快速响应,提供优质的专业服务;全国联保,小时内回应客户需求。psi 源码

GigE Vision概述

       在图像传输领域,GigE Vision作为一种基于千兆以太网的标准,由自动化影响协会AIA发起制定。该标准具有传输距离长(无中继时可达米)、传输效率高(可升级至万兆网)、通信控制方便、软硬件互换性强、可靠性高等显著优势。因此,GigE Vision正成为数字图像领域的主要接口标准,受到越来越多商家的青睐。标准委员会的主要成员包括国际知名图像系统软硬件提供商。

       GigE Vision与标准千兆以太网相机在硬件架构上基本一致,仅在底层驱动软件上有所不同。his 源码主要解决了标准千兆网的两个关键问题:数据包传输效率低和CPU占用率过高的问题。标准千兆网的数据包大小为字节,而GigE Vision通过采用“Jumbo packet”技术,最大数据包可达字节。此外,GigE Vision驱动采用UPD/IP协议,并通过完全的DMA控制,显著降低了CPU的占用率。在同等配置下,当传输速度达到MB/s时,CPU占用率仅为2%,显著提高了系统性能和效率。

       总之,GigE Vision标准通过优化数据包传输和降低CPU负载,有效地解决了标准千兆以太网在图像传输中的瓶颈问题。其高速、高效和高可靠性使得其成为现代图像系统不可或缺的接口标准之一,受到广泛采用与推崇。

扩展资料

         GigE Vision

ZYNQ+linux网口调试笔记(3)PL-ETH

       åœ¨ZYNQ上使用gigE Vision协议的网络接口相机。

        第一步:调通PS侧网口GEM0(Xilinx BSP默认配好)。

        第二步:调通PS侧网口GEM1(见前一篇文档:开发笔记(1))。

        第三步:调通PL侧网口(本文阐述)。

        第四步:在PL侧网口上验证Jumbo Frame特性,并在应用层适配gigE Vision协议。

        根据《xapp》可知,PL侧的PHY支持Base-X和SGMII两种配置,这两种配置对应两种不同的PHY引脚接口(连接到MAC)。而我们的hdf文件使用的是Base-X的配置。

        关于网口的Linux驱动,我们在官网找到一份资料: Xilinx Wiki - Zynq PL Ethernet 。资料很长,我们只看与我们相关的2.4.1 PL Ethernet BSP installation for Base-X”这一章节就可以了。

        首先导入FPGA设计同事提供的hdf文件:

        在弹出的图形界面里,进入Subsystem AUTO Hardware Settings——Ethernet Settings——Primary Ethernet,确认可以看到PL侧网络设备axi_ethernet_0,说明hdf文件里已包含了必要的网口硬件信息:

        上图中被选中的网口将成为Linux上的设备eth0。这里我们默认选择ps7_ethernet_0,即使用GEM0作为首选网口。

        启用Xilinx AXI Ethernet驱动

        进入Device Drivers -- Network device support – 选中Xilinx AXI Ethernet(以及Xilinx Ethernet GEM,这是PS侧网口的驱动)

        进入Networking support – 选中 Random ethaddr if unset

        进入Device Drivers -- Network device support -- PHY Device support and infrastructure – 启用Drivers for xilinx PHYs

        进入~~~~Device Drivers -- DMA Engine Support -– 禁用~~~~Xilinx AXI DMAS Engine~~~ (对应的配置项名为 ~~ CONFIG_XILINX_DMA ~~~)

        注意: Xilinx Wiki里对设备树节点的引用有误(&axi_ethernet),导致编译报错,应改为&axi_ethernet_0。

        注:PL-ETH驱动所在路径:<project>/build/tmp/work-shared/plnx_arm/kernel-source/drivers/net/ethernet/xilinx/xilinx_axienet_main.c和xilinx_axienet_mdio.c。对应的内核配置项为CONFIG_NET_VENDOR_XILINX和CONFIG_XILINX_AXI_EMAC。

        启用ethtool和tcpdump(调试用,非必须):

        然后将生成的BOOT.BIN和image.ub拷贝到SD卡根目录下,将SD卡插入板子上,上电运行。

        上电后,使用ifconfig eth1查看网口信息,观察MAC地址与设置的一致,且ifconfig eth1 ..1. up没有报错。

        测试网络通路:ping PC是通的。说明网口工作正常。

        Linux下eth1(即PL-ETH)的MAC地址有误

        问题描述:

        开机打印:

        注意:

        MAC地址是错的,驱动里解析出的是GEM0的MAC地址。

        试验发现,即使在system-user.dtsi里不写local-mac-address,也照样解析出的是GEM0的MAC。

        而将system-user.dtsi里的local-mac-address改名为pl-mac-address,并将驱动里解析的字符串也对应更改为pl-mac-address,则可以正确解析出来:

        Passing MAC address to kernel via Device Tree Blob and U-Boot:

       /support/answers/.html

        U-Boot里的环境变量ethaddr会覆盖掉设备树里pl-eth的local-mac-addr字段,从而影响Linux启动后的网卡MAC地址;

        但U-Boot里的环境变量ipaddr不会对Linux启动后的配置产生任何影响。因为设备树里根本就没有关于IP地址的配置。

        phy-mode怎么会是sgmii?查了下官方的提供的BSP里,也是“sgmii”。说明这个没问题。具体原因不清楚。

        @TODO: 设备树里的中断号的顺序如何影响功能?

        为何读出来的IRQ号不对呢?这是因为这里读到的不是硬件的中断号,而是经过系统映射之后的软件IRQ number。两者不具有线性关系。

        关于中断号的疑问:

        Linux上的网口eth0、eth1的顺序,似乎是按照phy地址从小到大来排布的。

        Xilinx xapp-zynq-eth.pdf (v5.0) July ,

       /support/documentation/application_notes/xapp-zynq-eth.pdf

        Xilinx Wiki - Zynq PL Ethernet:

       /wiki/spaces/A/pages//Zynq+PL+Ethernet

        Xilinx Wiki - Linux Drivers:

       /wiki/spaces/A/pages//Linux+Drivers

        Xilinx Wiki - Linux Drivers - Macb Driver:

       /wiki/spaces/A/pages//Macb+Driver

        Xilinx Wiki - Zynq Ethernet Performance:

       /wiki/spaces/A/pages//Zynq+Ethernet+Performance

        查到关于Jumbo frame MTU的定义,当前值为,可否改大一些?

        驱动源码里关于jumbo frame的说明:

        设置MTU为,发现ping包最大长度只能设为ping ..1. -s

       https://lore.kernel.org/patchwork/patch//

        【完】

机器视觉—常见的2D工业相机数据接口介绍

       工业相机在工业自动化、检测、监控等应用场景中起着关键作用,其数据接口的选择直接影响着相机的性能和应用范围。常见的工业相机数据接口包括GIGE、USB2.0/3.0、CameraLink、CoaXPress等。

       GIGE(千兆以太网)接口是工业相机中使用最广泛的一种,它不仅传输距离远,集成方便,而且在大规模集成场景下,可以使用千兆路由器与网口采集卡实现高效的数据传输。网口相机还可能具备POE供电功能,通过网线即可提供电力,无需额外连接相机电源线。

       USB2.0/3.0接口具有即插即用的便利性与较快的传输速度,其中USB3.0的最大传输速度可达5.0GB/s。但这类接口的传输线路较短,不适用于长距离、大批量工业相机的应用场景。工业应用中通常不需要单独配置采集卡,因为USB接口本身不带供电功能,因此相机需要额外连接电源线。

       CameraLink接口是一种专门用于工业级视觉产品的标准,其传输速度可达5.Gbit/s,适用于一些高速相机。然而,使用CameraLink的相机需要额外的图像采集卡,并且价格昂贵(一条线缆成本可能高达元)。此外,该接口需要自己编写相机驱动,不支持热插拔操作,可能会损坏相机。由于物理拆分的特性,用户需要对CameraLink采集卡进行编程,处理相机驱动、软件等问题。

       CoaXPress接口则在速度、传输距离以及独立供电方面表现出色,旨在取代CameraLink接口。这类相机需要额外的接口卡,接口卡仅作为相机采集到数据的中转站,不会对数据进行任何处理。CoaXPress相机传输速度较快,若将数据拷贝工作交给CPU处理,CPU将消耗大量资源。因此,接口卡在设计上应避免这一情况,确保数据传输的高效性。

       不同数据接口的选择取决于具体应用需求、成本考虑、性能需求以及可扩展性等因素。在选择时,应综合考虑接口的传输速度、距离、供电方式、成本以及易于集成与维护等多方面因素,以确保工业相机在特定应用环境中的最佳性能。